Skip to content

Commit

Permalink
Staging: comedi: add pci and usb wrapper header files
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David Schleef authored and Greg Kroah-Hartman committed Jan 6, 2009
1 parent 74b847f commit 94ab11c
Show file tree
Hide file tree
Showing 3 changed files with 137 additions and 0 deletions.
31 changes: 31 additions & 0 deletions drivers/staging/comedi/pci.h
Original file line number Diff line number Diff line change
@@ -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 */
31 changes: 31 additions & 0 deletions drivers/staging/comedi/pci_ids.h
Original file line number Diff line number Diff line change
@@ -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
75 changes: 75 additions & 0 deletions drivers/staging/comedi/usb.h
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 94ab11c

Please sign in to comment.