# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#                  ChangeSet    1.611.1.1 -> 1.611.1.2
#       drivers/usb/usb-skeleton.c      1.15    -> 1.16   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/09/26      [EMAIL PROTECTED]  1.611.1.2
# USB: convert the usb-skeleton.c driver to work with the latest USB core changes.
# --------------------------------------------
#
diff -Nru a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c
--- a/drivers/usb/usb-skeleton.c        Fri Sep 27 12:30:25 2002
+++ b/drivers/usb/usb-skeleton.c        Fri Sep 27 12:30:25 2002
@@ -1,12 +1,11 @@
 /*
- * USB Skeleton driver - 0.7
+ * USB Skeleton driver - 0.8
  *
- * Copyright (c) 2001 Greg Kroah-Hartman ([EMAIL PROTECTED])
+ * Copyright (c) 2001-2002 Greg Kroah-Hartman ([EMAIL PROTECTED])
  *
  *     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.
+ *     published by the Free Software Foundation, version 2.
  *
  *
  * This driver is to be used as a skeleton driver to be able to create a
@@ -22,6 +21,8 @@
  *
  * History:
  *
+ * 2002_09_26 - 0.8 - changes due to USB core conversion to struct device
+ *                     driver.
  * 2002_02_12 - 0.7 - zero out dev in probe function for devices that do
  *                     not have both a bulk in and bulk out endpoint.
  *                     Thanks to Holger Waechtler for the fix.
@@ -133,8 +134,8 @@
 static int skel_open           (struct inode *inode, struct file *file);
 static int skel_release                (struct inode *inode, struct file *file);
        
-static void * skel_probe       (struct usb_device *dev, unsigned int ifnum, const 
struct usb_device_id *id);
-static void skel_disconnect    (struct usb_device *dev, void *ptr);
+static int skel_probe          (struct usb_interface *intf, const struct 
+usb_device_id *id);
+static void skel_disconnect    (struct usb_interface *intf);
 
 static void skel_write_bulk_callback   (struct urb *urb);
 
@@ -509,10 +510,10 @@
  *     Called by the usb core when a new device is connected that it thinks
  *     this driver might be interested in.
  */
-static void * skel_probe(struct usb_device *udev, unsigned int ifnum, const struct 
usb_device_id *id)
+static int skel_probe(struct usb_interface *interface, const struct usb_device_id *id)
 {
+       struct usb_device *udev = interface_to_usbdev(interface);
        struct usb_skel *dev = NULL;
-       struct usb_interface *interface;
        struct usb_interface_descriptor *iface_desc;
        struct usb_endpoint_descriptor *endpoint;
        int minor;
@@ -525,7 +526,7 @@
        /* See if the device offered us matches what we can accept */
        if ((udev->descriptor.idVendor != USB_SKEL_VENDOR_ID) ||
            (udev->descriptor.idProduct != USB_SKEL_PRODUCT_ID)) {
-               return NULL;
+               return -ENODEV;
        }
 
        down (&minor_table_mutex);
@@ -545,8 +546,6 @@
        memset (dev, 0x00, sizeof (*dev));
        minor_table[minor] = dev;
 
-       interface = &udev->actconfig->interface[ifnum];
-
        init_MUTEX (&dev->sem);
        dev->udev = udev;
        dev->interface = interface;
@@ -619,7 +618,11 @@
 
 exit:
        up (&minor_table_mutex);
-       return dev;
+       if (dev) {
+               dev_set_drvdata (&interface->dev, dev);
+               return 0;
+       }
+       return -ENODEV;
 }
 
 
@@ -628,13 +631,17 @@
  *
  *     Called by the usb core when the device is removed from the system.
  */
-static void skel_disconnect(struct usb_device *udev, void *ptr)
+static void skel_disconnect(struct usb_interface *interface)
 {
        struct usb_skel *dev;
        int minor;
 
-       dev = (struct usb_skel *)ptr;
-       
+       dev = dev_get_drvdata (&interface->dev);
+       dev_set_drvdata (&interface->dev, NULL);
+
+       if (!dev)
+               return;
+
        down (&minor_table_mutex);
        down (&dev->sem);
                


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to