diff options
Diffstat (limited to 'drivers/staging/meilhaus/medummy.c')
-rw-r--r-- | drivers/staging/meilhaus/medummy.c | 1264 |
1 files changed, 0 insertions, 1264 deletions
diff --git a/drivers/staging/meilhaus/medummy.c b/drivers/staging/meilhaus/medummy.c deleted file mode 100644 index 2423745f957..00000000000 --- a/drivers/staging/meilhaus/medummy.c +++ /dev/null @@ -1,1264 +0,0 @@ -/* Device driver for Meilhaus ME-DUMMY devices. - * =========================================== - * - * Copyright (C) 2005 Meilhaus Electronic GmbH (support@meilhaus.de) - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * User application could also include the kernel header files. But the - * real kernel functions are protected by #ifdef __KERNEL__. - */ -#ifndef __KERNEL__ -# define __KERNEL__ -#endif - -/* - * This must be defined before module.h is included. Not needed, when - * it is a built in driver. - */ -#ifndef MODULE -# define MODULE -#endif - -#include <linux/module.h> -#include <linux/slab.h> - -#include "meerror.h" -#include "meinternal.h" - -#include "meids.h" -#include "mecommon.h" -#include "medevice.h" -#include "medebug.h" - -#include "medummy.h" - -static int medummy_io_irq_start(me_device_t *device, - struct file *filep, - int subdevice, - int channel, - int irq_source, - int irq_edge, int irq_arg, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_irq_wait(me_device_t *device, - struct file *filep, - int subdevice, - int channel, - int *irq_count, - int *value, int timeout, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_irq_stop(me_device_t *device, - struct file *filep, - int subdevice, int channel, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_reset_device(me_device_t *device, - struct file *filep, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_reset_subdevice(me_device_t *device, - struct file *filep, - int subdevice, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_single_config(me_device_t *device, - struct file *filep, - int subdevice, - int channel, - int single_config, - int ref, - int trig_chan, - int trig_type, int trig_edge, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_single_read(me_device_t *device, - struct file *filep, - int subdevice, - int channel, - int *value, int time_out, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_single_write(me_device_t *device, - struct file *filep, - int subdevice, - int channel, - int value, int time_out, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_stream_config(me_device_t *device, - struct file *filep, - int subdevice, - meIOStreamConfig_t *config_list, - int count, - meIOStreamTrigger_t *trigger, - int fifo_irq_threshold, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_stream_new_values(me_device_t *device, - struct file *filep, - int subdevice, - int timeout, int *count, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_stream_read(me_device_t *device, - struct file *filep, - int subdevice, - int read_mode, - int *values, int *count, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_stream_start(me_device_t *device, - struct file *filep, - int subdevice, - int start_mode, int time_out, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_stream_status(me_device_t *device, - struct file *filep, - int subdevice, - int wait, - int *status, int *values, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_stream_stop(me_device_t *device, - struct file *filep, - int subdevice, int stop_mode, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_io_stream_write(me_device_t *device, - struct file *filep, - int subdevice, - int write_mode, - int *values, int *count, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_lock_device(me_device_t *device, - struct file *filep, int lock, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_lock_subdevice(me_device_t *device, - struct file *filep, - int subdevice, int lock, int flags) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_description_device(me_device_t *device, - char **description) -{ - medummy_device_t *instance = (medummy_device_t *) device; - - PDEBUG("executed.\n"); - -// if (instance->magic != MEDUMMY_MAGIC_NUMBER) -// { -// PERROR("Wrong magic number.\n"); -// return ME_ERRNO_INTERNAL; -// } - - switch (instance->device_id) { - - case PCI_DEVICE_ID_MEILHAUS_ME1000: - - case PCI_DEVICE_ID_MEILHAUS_ME1000_A: - - case PCI_DEVICE_ID_MEILHAUS_ME1000_B: - *description = ME1000_DESCRIPTION_DEVICE_ME1000; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1400: - *description = ME1400_DESCRIPTION_DEVICE_ME1400; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME140A: - *description = ME1400_DESCRIPTION_DEVICE_ME1400A; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME140B: - *description = ME1400_DESCRIPTION_DEVICE_ME1400B; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME14E0: - *description = ME1400_DESCRIPTION_DEVICE_ME1400E; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME14EA: - *description = ME1400_DESCRIPTION_DEVICE_ME1400EA; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME14EB: - *description = ME1400_DESCRIPTION_DEVICE_ME1400EB; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME140C: - *description = ME1400_DESCRIPTION_DEVICE_ME1400C; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME140D: - *description = ME1400_DESCRIPTION_DEVICE_ME1400D; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_4U: - *description = ME1600_DESCRIPTION_DEVICE_ME16004U; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_8U: - *description = ME1600_DESCRIPTION_DEVICE_ME16008U; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_12U: - *description = ME1600_DESCRIPTION_DEVICE_ME160012U; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_16U: - *description = ME1600_DESCRIPTION_DEVICE_ME160016U; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_16U_8I: - *description = ME1600_DESCRIPTION_DEVICE_ME160016U8I; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4610: - *description = ME4600_DESCRIPTION_DEVICE_ME4610; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4650: - *description = ME4600_DESCRIPTION_DEVICE_ME4650; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4660: - *description = ME4600_DESCRIPTION_DEVICE_ME4660; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4660I: - *description = ME4600_DESCRIPTION_DEVICE_ME4660I; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4660S: - *description = ME4600_DESCRIPTION_DEVICE_ME4660S; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4660IS: - *description = ME4600_DESCRIPTION_DEVICE_ME4660IS; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4670: - *description = ME4600_DESCRIPTION_DEVICE_ME4670; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4670I: - *description = ME4600_DESCRIPTION_DEVICE_ME4670I; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4670S: - *description = ME4600_DESCRIPTION_DEVICE_ME4670S; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4670IS: - *description = ME4600_DESCRIPTION_DEVICE_ME4670IS; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4680: - *description = ME4600_DESCRIPTION_DEVICE_ME4680; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4680I: - *description = ME4600_DESCRIPTION_DEVICE_ME4680I; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4680S: - *description = ME4600_DESCRIPTION_DEVICE_ME4680S; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4680IS: - *description = ME4600_DESCRIPTION_DEVICE_ME4680IS; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6004: - *description = ME6000_DESCRIPTION_DEVICE_ME60004; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6008: - *description = ME6000_DESCRIPTION_DEVICE_ME60008; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME600F: - *description = ME6000_DESCRIPTION_DEVICE_ME600016; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6014: - *description = ME6000_DESCRIPTION_DEVICE_ME6000I4; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6018: - *description = ME6000_DESCRIPTION_DEVICE_ME6000I8; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME601F: - *description = ME6000_DESCRIPTION_DEVICE_ME6000I16; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6034: - *description = ME6000_DESCRIPTION_DEVICE_ME6000ISLE4; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6038: - *description = ME6000_DESCRIPTION_DEVICE_ME6000ISLE8; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME603F: - *description = ME6000_DESCRIPTION_DEVICE_ME6000ISLE16; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6104: - *description = ME6000_DESCRIPTION_DEVICE_ME61004; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6108: - *description = ME6000_DESCRIPTION_DEVICE_ME61008; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME610F: - *description = ME6000_DESCRIPTION_DEVICE_ME610016; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6114: - *description = ME6000_DESCRIPTION_DEVICE_ME6100I4; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6118: - *description = ME6000_DESCRIPTION_DEVICE_ME6100I8; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME611F: - *description = ME6000_DESCRIPTION_DEVICE_ME6100I16; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6134: - *description = ME6000_DESCRIPTION_DEVICE_ME6100ISLE4; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6138: - *description = ME6000_DESCRIPTION_DEVICE_ME6100ISLE8; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME613F: - *description = ME6000_DESCRIPTION_DEVICE_ME6100ISLE16; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6044: - *description = ME6000_DESCRIPTION_DEVICE_ME60004DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6048: - *description = ME6000_DESCRIPTION_DEVICE_ME60008DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME604F: - *description = ME6000_DESCRIPTION_DEVICE_ME600016DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6054: - *description = ME6000_DESCRIPTION_DEVICE_ME6000I4DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6058: - *description = ME6000_DESCRIPTION_DEVICE_ME6000I8DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME605F: - *description = ME6000_DESCRIPTION_DEVICE_ME6000I16DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6074: - *description = ME6000_DESCRIPTION_DEVICE_ME6000ISLE4DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6078: - *description = ME6000_DESCRIPTION_DEVICE_ME6000ISLE8DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME607F: - *description = ME6000_DESCRIPTION_DEVICE_ME6000ISLE16DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6144: - *description = ME6000_DESCRIPTION_DEVICE_ME61004DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6148: - *description = ME6000_DESCRIPTION_DEVICE_ME61008DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME614F: - *description = ME6000_DESCRIPTION_DEVICE_ME610016DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6154: - *description = ME6000_DESCRIPTION_DEVICE_ME6100I4DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6158: - *description = ME6000_DESCRIPTION_DEVICE_ME6100I8DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME615F: - *description = ME6000_DESCRIPTION_DEVICE_ME6100I16DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6174: - *description = ME6000_DESCRIPTION_DEVICE_ME6100ISLE4DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6178: - *description = ME6000_DESCRIPTION_DEVICE_ME6100ISLE8DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME617F: - *description = ME6000_DESCRIPTION_DEVICE_ME6100ISLE16DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6259: - *description = ME6000_DESCRIPTION_DEVICE_ME6200I9DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6359: - *description = ME6000_DESCRIPTION_DEVICE_ME6300I9DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME0630: - *description = ME0600_DESCRIPTION_DEVICE_ME0630; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME8100_A: - *description = ME8100_DESCRIPTION_DEVICE_ME8100A; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME8100_B: - *description = ME8100_DESCRIPTION_DEVICE_ME8100B; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME0940: - *description = ME0900_DESCRIPTION_DEVICE_ME0940; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME0950: - *description = ME0900_DESCRIPTION_DEVICE_ME0950; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME0960: - *description = ME0900_DESCRIPTION_DEVICE_ME0960; - - break; -/* - case USB_DEVICE_ID_MEPHISTO_S1: - *description = MEPHISTO_S1_DESCRIPTION_DEVICE; - - break; -*/ - default: - *description = EMPTY_DESCRIPTION_DEVICE; - PERROR("Invalid device id in device info.\n"); - - return ME_ERRNO_INTERNAL; - } - - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_info_device(me_device_t *device, - int *vendor_id, - int *device_id, - int *serial_no, - int *bus_type, - int *bus_no, - int *dev_no, int *func_no, int *plugged) -{ - medummy_device_t *instance = (medummy_device_t *) device; - - PDEBUG("executed.\n"); - -// if (instance->magic != MEDUMMY_MAGIC_NUMBER) -// { -// PERROR("Wrong magic number.\n"); -// return ME_ERRNO_INTERNAL; -// } - - *vendor_id = instance->vendor_id; - *device_id = instance->device_id; - *serial_no = instance->serial_no; - *bus_type = instance->bus_type; - *bus_no = instance->bus_no; - *dev_no = instance->dev_no; - *func_no = instance->func_no; - *plugged = ME_PLUGGED_OUT; - - return ME_ERRNO_SUCCESS; -} - -static int medummy_query_name_device_driver(me_device_t *device, char **name) -{ - PDEBUG("executed.\n"); - *name = MEDUMMY_NAME_DRIVER; - return ME_ERRNO_SUCCESS; -} - -static int medummy_query_name_device(me_device_t *device, char **name) -{ - medummy_device_t *instance = (medummy_device_t *) device; - - PDEBUG("executed.\n"); - -// // // if (instance->magic != MEDUMMY_MAGIC_NUMBER) -// // // { -// // // PERROR("Wrong magic number.\n"); -// // // return ME_ERRNO_INTERNAL; -// // // } - - switch (instance->device_id) { - - case PCI_DEVICE_ID_MEILHAUS_ME1000: - - case PCI_DEVICE_ID_MEILHAUS_ME1000_A: - - case PCI_DEVICE_ID_MEILHAUS_ME1000_B: - *name = ME1000_NAME_DEVICE_ME1000; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1400: - *name = ME1400_NAME_DEVICE_ME1400; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME140A: - *name = ME1400_NAME_DEVICE_ME1400A; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME140B: - *name = ME1400_NAME_DEVICE_ME1400B; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME14E0: - *name = ME1400_NAME_DEVICE_ME1400E; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME14EA: - *name = ME1400_NAME_DEVICE_ME1400EA; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME14EB: - *name = ME1400_NAME_DEVICE_ME1400EB; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME140C: - *name = ME1400_NAME_DEVICE_ME1400C; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME140D: - *name = ME1400_NAME_DEVICE_ME1400D; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_4U: - *name = ME1600_NAME_DEVICE_ME16004U; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_8U: - *name = ME1600_NAME_DEVICE_ME16008U; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_12U: - *name = ME1600_NAME_DEVICE_ME160012U; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_16U: - *name = ME1600_NAME_DEVICE_ME160016U; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME1600_16U_8I: - *name = ME1600_NAME_DEVICE_ME160016U8I; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4610: - *name = ME4600_NAME_DEVICE_ME4610; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4650: - *name = ME4600_NAME_DEVICE_ME4650; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4660: - *name = ME4600_NAME_DEVICE_ME4660; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4660I: - *name = ME4600_NAME_DEVICE_ME4660I; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4670: - *name = ME4600_NAME_DEVICE_ME4670; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4670I: - *name = ME4600_NAME_DEVICE_ME4670I; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4670S: - *name = ME4600_NAME_DEVICE_ME4670S; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4670IS: - *name = ME4600_NAME_DEVICE_ME4670IS; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4680: - *name = ME4600_NAME_DEVICE_ME4680; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4680I: - *name = ME4600_NAME_DEVICE_ME4680I; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4680S: - *name = ME4600_NAME_DEVICE_ME4680S; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME4680IS: - *name = ME4600_NAME_DEVICE_ME4680IS; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6004: - *name = ME6000_NAME_DEVICE_ME60004; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6008: - *name = ME6000_NAME_DEVICE_ME60008; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME600F: - *name = ME6000_NAME_DEVICE_ME600016; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6014: - *name = ME6000_NAME_DEVICE_ME6000I4; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6018: - *name = ME6000_NAME_DEVICE_ME6000I8; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME601F: - *name = ME6000_NAME_DEVICE_ME6000I16; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6034: - *name = ME6000_NAME_DEVICE_ME6000ISLE4; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6038: - *name = ME6000_NAME_DEVICE_ME6000ISLE8; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME603F: - *name = ME6000_NAME_DEVICE_ME6000ISLE16; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6104: - *name = ME6000_NAME_DEVICE_ME61004; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6108: - *name = ME6000_NAME_DEVICE_ME61008; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME610F: - *name = ME6000_NAME_DEVICE_ME610016; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6114: - *name = ME6000_NAME_DEVICE_ME6100I4; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6118: - *name = ME6000_NAME_DEVICE_ME6100I8; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME611F: - *name = ME6000_NAME_DEVICE_ME6100I16; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6134: - *name = ME6000_NAME_DEVICE_ME6100ISLE4; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6138: - *name = ME6000_NAME_DEVICE_ME6100ISLE8; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME613F: - *name = ME6000_NAME_DEVICE_ME6100ISLE16; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6044: - *name = ME6000_NAME_DEVICE_ME60004DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6048: - *name = ME6000_NAME_DEVICE_ME60008DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME604F: - *name = ME6000_NAME_DEVICE_ME600016DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6054: - *name = ME6000_NAME_DEVICE_ME6000I4DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6058: - *name = ME6000_NAME_DEVICE_ME6000I8DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME605F: - *name = ME6000_NAME_DEVICE_ME6000I16DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6074: - *name = ME6000_NAME_DEVICE_ME6000ISLE4DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6078: - *name = ME6000_NAME_DEVICE_ME6000ISLE8DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME607F: - *name = ME6000_NAME_DEVICE_ME6000ISLE16DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6144: - *name = ME6000_NAME_DEVICE_ME61004DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6148: - *name = ME6000_NAME_DEVICE_ME61008DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME614F: - *name = ME6000_NAME_DEVICE_ME610016DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6154: - *name = ME6000_NAME_DEVICE_ME6100I4DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6158: - *name = ME6000_NAME_DEVICE_ME6100I8DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME615F: - *name = ME6000_NAME_DEVICE_ME6100I16DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6174: - *name = ME6000_NAME_DEVICE_ME6100ISLE4DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME6178: - *name = ME6000_NAME_DEVICE_ME6100ISLE8DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME617F: - *name = ME6000_NAME_DEVICE_ME6100ISLE16DIO; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME0630: - *name = ME0600_NAME_DEVICE_ME0630; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME8100_A: - *name = ME8100_NAME_DEVICE_ME8100A; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME8100_B: - *name = ME8100_NAME_DEVICE_ME8100B; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME0940: - *name = ME0900_NAME_DEVICE_ME0940; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME0950: - *name = ME0900_NAME_DEVICE_ME0950; - - break; - - case PCI_DEVICE_ID_MEILHAUS_ME0960: - *name = ME0900_NAME_DEVICE_ME0960; - - break; -/* - case USB_DEVICE_ID_MEPHISTO_S1: - *name = MEPHISTO_S1_NAME_DEVICE; - - break; -*/ - default: - *name = EMPTY_NAME_DEVICE; - PERROR("Invalid PCI device id.\n"); - - return ME_ERRNO_INTERNAL; - } - - return ME_ERRNO_SUCCESS; -} - -static int medummy_query_number_subdevices(me_device_t *device, int *number) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_number_channels(me_device_t *device, - int subdevice, int *number) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_number_ranges(me_device_t *device, - int subdevice, int unit, int *count) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_subdevice_type(me_device_t *device, - int subdevice, int *type, int *subtype) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_subdevice_caps(me_device_t *device, - int subdevice, int *caps) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_subdevice_caps_args(me_device_t *device, - int subdevice, - int cap, int *args, int count) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_NOT_SUPPORTED; -} - -static int medummy_query_subdevice_by_type(me_device_t *device, - int start_subdevice, - int type, - int subtype, int *subdevice) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_range_by_min_max(me_device_t *device, - int subdevice, - int unit, - int *min, - int *max, int *maxdata, int *range) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_range_info(me_device_t *device, - int subdevice, - int range, - int *unit, int *min, int *max, int *maxdata) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -int medummy_query_timer(me_device_t *device, - int subdevice, - int timer, - int *base_frequency, - uint64_t *min_ticks, uint64_t *max_ticks) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_DEVICE_UNPLUGGED; -} - -static int medummy_query_version_device_driver(me_device_t *device, - int *version) -{ - PDEBUG("executed.\n"); - - *version = ME_VERSION_DRIVER; - return ME_ERRNO_SUCCESS; -} - -static void medummy_destructor(me_device_t *device) -{ - PDEBUG("executed.\n"); - kfree(device); -} - -static int init_device_info(unsigned short vendor_id, - unsigned short device_id, - unsigned int serial_no, - int bus_type, - int bus_no, - int dev_no, - int func_no, medummy_device_t *instance) -{ - PDEBUG("executed.\n"); - -// instance->magic = MEDUMMY_MAGIC_NUMBER; - instance->vendor_id = vendor_id; - instance->device_id = device_id; - instance->serial_no = serial_no; - instance->bus_type = bus_type; - instance->bus_no = bus_no; - instance->dev_no = dev_no; - instance->func_no = func_no; - - return 0; -} - -static int medummy_config_load(me_device_t *device, struct file *filep, - me_cfg_device_entry_t *config) -{ - PDEBUG("executed.\n"); - return ME_ERRNO_SUCCESS; -} - -static int init_device_instance(me_device_t *device) -{ - PDEBUG("executed.\n"); - - INIT_LIST_HEAD(&device->list); - - device->me_device_io_irq_start = medummy_io_irq_start; - device->me_device_io_irq_wait = medummy_io_irq_wait; - device->me_device_io_irq_stop = medummy_io_irq_stop; - device->me_device_io_reset_device = medummy_io_reset_device; - device->me_device_io_reset_subdevice = medummy_io_reset_subdevice; - device->me_device_io_single_config = medummy_io_single_config; - device->me_device_io_single_read = medummy_io_single_read; - device->me_device_io_single_write = medummy_io_single_write; - device->me_device_io_stream_config = medummy_io_stream_config; - device->me_device_io_stream_new_values = medummy_io_stream_new_values; - device->me_device_io_stream_read = medummy_io_stream_read; - device->me_device_io_stream_start = medummy_io_stream_start; - device->me_device_io_stream_status = medummy_io_stream_status; - device->me_device_io_stream_stop = medummy_io_stream_stop; - device->me_device_io_stream_write = medummy_io_stream_write; - - device->me_device_lock_device = medummy_lock_device; - device->me_device_lock_subdevice = medummy_lock_subdevice; - - device->me_device_query_description_device = - medummy_query_description_device; - device->me_device_query_info_device = medummy_query_info_device; - device->me_device_query_name_device_driver = - medummy_query_name_device_driver; - device->me_device_query_name_device = medummy_query_name_device; - - device->me_device_query_number_subdevices = - medummy_query_number_subdevices; - device->me_device_query_number_channels = medummy_query_number_channels; - device->me_device_query_number_ranges = medummy_query_number_ranges; - - device->me_device_query_range_by_min_max = - medummy_query_range_by_min_max; - device->me_device_query_range_info = medummy_query_range_info; - - device->me_device_query_subdevice_type = medummy_query_subdevice_type; - device->me_device_query_subdevice_by_type = - medummy_query_subdevice_by_type; - device->me_device_query_subdevice_caps = medummy_query_subdevice_caps; - device->me_device_query_subdevice_caps_args = - medummy_query_subdevice_caps_args; - - device->me_device_query_timer = medummy_query_timer; - - device->me_device_query_version_device_driver = - medummy_query_version_device_driver; - - device->me_device_destructor = medummy_destructor; - device->me_device_config_load = medummy_config_load; - return 0; -} - -me_device_t *medummy_constructor(unsigned short vendor_id, - unsigned short device_id, - unsigned int serial_no, - int bus_type, - int bus_no, int dev_no, int func_no) -{ - int result = 0; - medummy_device_t *instance; - - PDEBUG("executed.\n"); - - /* Allocate structure for device attributes */ - instance = kmalloc(sizeof(medummy_device_t), GFP_KERNEL); - - if (!instance) { - PERROR("Can't get memory for device instance.\n"); - return NULL; - } - - memset(instance, 0, sizeof(medummy_device_t)); - - /* Initialize device info */ - result = init_device_info(vendor_id, - device_id, - serial_no, - bus_type, bus_no, dev_no, func_no, instance); - - if (result) { - PERROR("Cannot init baord info.\n"); - kfree(instance); - return NULL; - } - - /* Initialize device instance */ - result = init_device_instance((me_device_t *) instance); - - if (result) { - PERROR("Cannot init baord info.\n"); - kfree(instance); - return NULL; - } - - return (me_device_t *) instance; -} -EXPORT_SYMBOL(medummy_constructor); - -// Init and exit of module. - -static int __init dummy_init(void) -{ - PDEBUG("executed.\n"); - return 0; -} - -static void __exit dummy_exit(void) -{ - PDEBUG("executed.\n"); -} - -module_init(dummy_init); - -module_exit(dummy_exit); - -// Administrative stuff for modinfo. -MODULE_AUTHOR("Guenter Gebhardt <g.gebhardt@meilhaus.de>"); -MODULE_DESCRIPTION("Device Driver Module for Meilhaus ME-DUMMY Devices"); -MODULE_SUPPORTED_DEVICE("Meilhaus ME-DUMMY Devices"); -MODULE_LICENSE("GPL"); |