From 9648d47b54a2bca5d97ab7775ff8aace261e30de Mon Sep 17 00:00:00 2001 From: David Schleef Date: Fri, 14 Nov 2008 14:37:37 -0800 Subject: Staging: comedi: add pci and usb wrapper header files From: David Schleef 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 Cc: Frank Mori Hess Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/pci.h | 31 ++++++++++++++++ drivers/staging/comedi/pci_ids.h | 31 ++++++++++++++++ drivers/staging/comedi/usb.h | 75 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+) --- /dev/null +++ b/drivers/staging/comedi/pci.h @@ -0,0 +1,31 @@ +/* + * linux/pci.h compatibility header + */ + +#ifndef _COMPAT_PCI_H +#define _COMPAT_PCI_H + +#include + +#include + +#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 */ --- /dev/null +++ b/drivers/staging/comedi/pci_ids.h @@ -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 + +#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 --- /dev/null +++ b/drivers/staging/comedi/usb.h @@ -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 +#include + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) +#include + +#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 + +#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