Staging: comedi: add pci and usb wrapper header files
authorDavid Schleef <ds@schleef.org>
Fri, 14 Nov 2008 22:37:37 +0000 (14:37 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 6 Jan 2009 21:52:18 +0000 (13:52 -0800)
This are used by usb and pci comedi drivers to handle the different
kernel versions.  They will be eventually removed, but are needed now
to be able to add comedi drivers to the tree.

From: David Schleef <ds@schleef.org>
Cc: Frank Mori Hess <fmhess@users.sourceforge.net>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/comedi/pci.h [new file with mode: 0644]
drivers/staging/comedi/pci_ids.h [new file with mode: 0644]
drivers/staging/comedi/usb.h [new file with mode: 0644]

diff --git a/drivers/staging/comedi/pci.h b/drivers/staging/comedi/pci.h
new file mode 100644 (file)
index 0000000..962e434
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * linux/pci.h compatibility header
+ */
+
+#ifndef _COMPAT_PCI_H
+#define _COMPAT_PCI_H
+
+#include <linux/version.h>
+
+#include <linux/pci.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+#define pci_get_device pci_find_device
+#define pci_get_subsys pci_find_subsys
+#define pci_dev_get(x) (x)
+#define pci_dev_put(x)
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,22)
+static inline char *pci_name(struct pci_dev *pdev)
+{
+       return pdev->slot_name;
+}
+#endif
+
+#ifndef DEFINE_PCI_DEVICE_TABLE
+#define DEFINE_PCI_DEVICE_TABLE(_table) \
+       struct pci_device_id _table[]
+#endif
+
+#endif /* _COMPAT_PCI_H */
diff --git a/drivers/staging/comedi/pci_ids.h b/drivers/staging/comedi/pci_ids.h
new file mode 100644 (file)
index 0000000..c61ba90
--- /dev/null
@@ -0,0 +1,31 @@
+/***************************************************************************
+ *                                                                         *
+ *   This program 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.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef __COMPAT_LINUX_PCI_IDS_H
+#define __COMPAT_LINUX_PCI_IDS_H
+
+#include <linux/pci_ids.h>
+
+#ifndef PCI_VENDOR_ID_AMCC
+#define PCI_VENDOR_ID_AMCC     0x10e8
+#endif
+
+#ifndef PCI_VENDOR_ID_CBOARDS
+#define PCI_VENDOR_ID_CBOARDS  0x1307
+#endif
+
+#ifndef PCI_VENDOR_ID_QUANCOM
+#define PCI_VENDOR_ID_QUANCOM  0x8008
+#endif
+
+#ifndef PCI_DEVICE_ID_QUANCOM_GPIB
+#define PCI_DEVICE_ID_QUANCOM_GPIB     0x3302
+#endif
+
+#endif // __COMPAT_LINUX_PCI_IDS_H
diff --git a/drivers/staging/comedi/usb.h b/drivers/staging/comedi/usb.h
new file mode 100644 (file)
index 0000000..40ad651
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+
+    linux/usb.h compatibility header
+
+    Copyright (C) 2003 Bernd Porr, Bernd.Porr@cn.stir.ac.uk
+
+    This program 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.
+
+*/
+
+#ifndef __COMPAT_LINUX_USB_H_
+#define __COMPAT_LINUX_USB_H_
+
+#include <linux/version.h>
+#include <linux/time.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+#include <linux/kernel.h>
+
+#define USB_ALLOC_URB(x) usb_alloc_urb(x)
+#define USB_SUBMIT_URB(x) usb_submit_urb(x)
+#define URB_ISO_ASAP USB_ISO_ASAP
+#define PROBE_ERR_RETURN(x) NULL
+#define usb_get_dev(x) (x)
+#define usb_put_dev(x)
+#define interface_to_usbdev(intf) NULL
+#else
+#define USB_ALLOC_URB(x) usb_alloc_urb(x,GFP_KERNEL)
+#define USB_SUBMIT_URB(x) usb_submit_urb(x,GFP_ATOMIC)
+#define PROBE_ERR_RETURN(x) (x)
+#endif
+
+#include <linux/usb.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)
+static inline int USB_CONTROL_MSG(struct usb_device *dev, unsigned int pipe,
+       __u8 request, __u8 requesttype, __u16 value, __u16 index,
+       void *data, __u16 size, int millisec_timeout)
+{
+       return usb_control_msg(dev, pipe, request, requesttype, value, index,
+               data, size, msecs_to_jiffies(millisec_timeout));
+}
+static inline int USB_BULK_MSG(struct usb_device *usb_dev, unsigned int pipe,
+       void *data, int len, int *actual_length, int millisec_timeout)
+{
+       return usb_bulk_msg(usb_dev, pipe, data, len, actual_length,
+               msecs_to_jiffies(millisec_timeout));
+}
+#else
+#define USB_CONTROL_MSG usb_control_msg
+#define USB_BULK_MSG usb_bulk_msg
+#endif
+
+/*
+ * Determine whether we need the "owner" member of struct usb_driver and
+ * define COMEDI_HAVE_USB_DRIVER_OWNER if we need it.
+ */
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,19) \
+       && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)
+#define COMEDI_HAVE_USB_DRIVER_OWNER
+#endif
+
+#endif