Convert from class_device to device for drivers/usb/core.
Signed-off-by: Tony Jones <tonyj@suse.de>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
        }
        set_bit (busnum, busmap.busmap);
        bus->busnum = busnum;
-       bus->class_dev = class_device_create(usb_host_class, NULL, MKDEV(0,0),
-                                            bus->controller, "usb_host%d",
-                                            busnum);
-       result = PTR_ERR(bus->class_dev);
-       if (IS_ERR(bus->class_dev))
+
+       bus->dev = device_create(usb_host_class, bus->controller, MKDEV(0, 0),
+                                "usb_host%d", busnum);
+       result = PTR_ERR(bus->dev);
+       if (IS_ERR(bus->dev))
                goto error_create_class_dev;
-       class_set_devdata(bus->class_dev, bus);
+       dev_set_drvdata(bus->dev, bus);
 
        /* Add it to the local list of buses */
        list_add (&bus->bus_list, &usb_bus_list);
 
        clear_bit (bus->busnum, busmap.busmap);
 
-       class_device_unregister(bus->class_dev);
+       device_unregister(bus->dev);
 }
 
 /**
 
 }
 
 static ssize_t
-show_async (struct class_device *class_dev, char *buf)
+show_async(struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct usb_bus          *bus;
        struct usb_hcd          *hcd;
 
        *buf = 0;
 
-       bus = class_get_devdata(class_dev);
+       bus = dev_get_drvdata(dev);
        hcd = bus_to_hcd(bus);
        ehci = hcd_to_ehci (hcd);
        next = buf;
 
        return strlen (buf);
 }
-static CLASS_DEVICE_ATTR (async, S_IRUGO, show_async, NULL);
+static DEVICE_ATTR(async, S_IRUGO, show_async, NULL);
 
 #define DBG_SCHED_LIMIT 64
 
 static ssize_t
-show_periodic (struct class_device *class_dev, char *buf)
+show_periodic(struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct usb_bus          *bus;
        struct usb_hcd          *hcd;
                return 0;
        seen_count = 0;
 
-       bus = class_get_devdata(class_dev);
+       bus = dev_get_drvdata(dev);
        hcd = bus_to_hcd(bus);
        ehci = hcd_to_ehci (hcd);
        next = buf;
 
        return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR (periodic, S_IRUGO, show_periodic, NULL);
+static DEVICE_ATTR(periodic, S_IRUGO, show_periodic, NULL);
 
 #undef DBG_SCHED_LIMIT
 
 static ssize_t
-show_registers (struct class_device *class_dev, char *buf)
+show_registers(struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct usb_bus          *bus;
        struct usb_hcd          *hcd;
        static char             fmt [] = "%*s\n";
        static char             label [] = "";
 
-       bus = class_get_devdata(class_dev);
+       bus = dev_get_drvdata(dev);
        hcd = bus_to_hcd(bus);
        ehci = hcd_to_ehci (hcd);
        next = buf;
 
        return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL);
+static DEVICE_ATTR(registers, S_IRUGO, show_registers, NULL);
 
 static inline void create_debug_files (struct ehci_hcd *ehci)
 {
-       struct class_device *cldev = ehci_to_hcd(ehci)->self.class_dev;
+       struct device *dev = ehci_to_hcd(ehci)->self.dev;
        int retval;
 
-       retval = class_device_create_file(cldev, &class_device_attr_async);
-       retval = class_device_create_file(cldev, &class_device_attr_periodic);
-       retval = class_device_create_file(cldev, &class_device_attr_registers);
+       retval = device_create_file(dev, &dev_attr_async);
+       retval = device_create_file(dev, &dev_attr_periodic);
+       retval = device_create_file(dev, &dev_attr_registers);
 }
 
 static inline void remove_debug_files (struct ehci_hcd *ehci)
 {
-       struct class_device *cldev = ehci_to_hcd(ehci)->self.class_dev;
+       struct device *dev = ehci_to_hcd(ehci)->self.dev;
 
-       class_device_remove_file(cldev, &class_device_attr_async);
-       class_device_remove_file(cldev, &class_device_attr_periodic);
-       class_device_remove_file(cldev, &class_device_attr_registers);
+       device_remove_file(dev, &dev_attr_async);
+       device_remove_file(dev, &dev_attr_periodic);
+       device_remove_file(dev, &dev_attr_registers);
 }
 
 #endif /* STUB_DEBUG_FILES */
 
 /*-------------------------------------------------------------------------*/
 
 /* Display the ports dedicated to the companion controller */
-static ssize_t show_companion(struct class_device *class_dev, char *buf)
+static ssize_t show_companion(struct device *dev,
+                             struct device_attribute *attr,
+                             char *buf)
 {
        struct ehci_hcd         *ehci;
        int                     nports, index, n;
        int                     count = PAGE_SIZE;
        char                    *ptr = buf;
 
-       ehci = hcd_to_ehci(bus_to_hcd(class_get_devdata(class_dev)));
+       ehci = hcd_to_ehci(bus_to_hcd(dev_get_drvdata(dev)));
        nports = HCS_N_PORTS(ehci->hcs_params);
 
        for (index = 0; index < nports; ++index) {
  * Syntax is "[-]portnum", where a leading '-' sign means
  * return control of the port to the EHCI controller.
  */
-static ssize_t store_companion(struct class_device *class_dev,
-               const char *buf, size_t count)
+static ssize_t store_companion(struct device *dev,
+                              struct device_attribute *attr,
+                              const char *buf, size_t count)
 {
        struct ehci_hcd         *ehci;
        int                     portnum, new_owner, try;
        u32 __iomem             *status_reg;
        u32                     port_status;
 
-       ehci = hcd_to_ehci(bus_to_hcd(class_get_devdata(class_dev)));
+       ehci = hcd_to_ehci(bus_to_hcd(dev_get_drvdata(dev)));
        new_owner = PORT_OWNER;         /* Owned by companion */
        if (sscanf(buf, "%d", &portnum) != 1)
                return -EINVAL;
        }
        return count;
 }
-static CLASS_DEVICE_ATTR(companion, 0644, show_companion, store_companion);
+static DEVICE_ATTR(companion, 0644, show_companion, store_companion);
 
 static inline void create_companion_file(struct ehci_hcd *ehci)
 {
 
        /* with integrated TT there is no companion! */
        if (!ehci_is_TDI(ehci))
-               i = class_device_create_file(ehci_to_hcd(ehci)->self.class_dev,
-                               &class_device_attr_companion);
+               i = device_create_file(ehci_to_hcd(ehci)->self.dev,
+                                      &dev_attr_companion);
 }
 
 static inline void remove_companion_file(struct ehci_hcd *ehci)
 {
        /* with integrated TT there is no companion! */
        if (!ehci_is_TDI(ehci))
-               class_device_remove_file(ehci_to_hcd(ehci)->self.class_dev,
-                               &class_device_attr_companion);
+               device_remove_file(ehci_to_hcd(ehci)->self.dev,
+                                  &dev_attr_companion);
 }
 
 
 
 }
 
 static ssize_t
-show_async (struct class_device *class_dev, char *buf)
+show_async(struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct usb_bus          *bus;
        struct usb_hcd          *hcd;
        size_t                  temp;
        unsigned long           flags;
 
-       bus = class_get_devdata(class_dev);
+       bus = dev_get_drvdata(dev);
        hcd = bus_to_hcd(bus);
        ohci = hcd_to_ohci(hcd);
 
 
        return temp;
 }
-static CLASS_DEVICE_ATTR (async, S_IRUGO, show_async, NULL);
+static DEVICE_ATTR(async, S_IRUGO, show_async, NULL);
 
 
 #define DBG_SCHED_LIMIT 64
 
 static ssize_t
-show_periodic (struct class_device *class_dev, char *buf)
+show_periodic(struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct usb_bus          *bus;
        struct usb_hcd          *hcd;
                return 0;
        seen_count = 0;
 
-       bus = class_get_devdata(class_dev);
+       bus = dev_get_drvdata(dev);
        hcd = bus_to_hcd(bus);
        ohci = hcd_to_ohci(hcd);
        next = buf;
 
        return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR (periodic, S_IRUGO, show_periodic, NULL);
+static DEVICE_ATTR(periodic, S_IRUGO, show_periodic, NULL);
 
 
 #undef DBG_SCHED_LIMIT
 
 static ssize_t
-show_registers (struct class_device *class_dev, char *buf)
+show_registers(struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct usb_bus          *bus;
        struct usb_hcd          *hcd;
        char                    *next;
        u32                     rdata;
 
-       bus = class_get_devdata(class_dev);
+       bus = dev_get_drvdata(dev);
        hcd = bus_to_hcd(bus);
        ohci = hcd_to_ohci(hcd);
        regs = ohci->regs;
        spin_unlock_irqrestore (&ohci->lock, flags);
        return PAGE_SIZE - size;
 }
-static CLASS_DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL);
+static DEVICE_ATTR(registers, S_IRUGO, show_registers, NULL);
 
 
 static inline void create_debug_files (struct ohci_hcd *ohci)
 {
-       struct class_device *cldev = ohci_to_hcd(ohci)->self.class_dev;
+       struct device *dev = ohci_to_hcd(ohci)->self.dev;
        int retval;
 
-       retval = class_device_create_file(cldev, &class_device_attr_async);
-       retval = class_device_create_file(cldev, &class_device_attr_periodic);
-       retval = class_device_create_file(cldev, &class_device_attr_registers);
+       retval = device_create_file(dev, &dev_attr_async);
+       retval = device_create_file(dev, &dev_attr_periodic);
+       retval = device_create_file(dev, &dev_attr_registers);
        ohci_dbg (ohci, "created debug files\n");
 }
 
 static inline void remove_debug_files (struct ohci_hcd *ohci)
 {
-       struct class_device *cldev = ohci_to_hcd(ohci)->self.class_dev;
+       struct device *dev = ohci_to_hcd(ohci)->self.dev;
 
-       class_device_remove_file(cldev, &class_device_attr_async);
-       class_device_remove_file(cldev, &class_device_attr_periodic);
-       class_device_remove_file(cldev, &class_device_attr_registers);
+       device_remove_file(dev, &dev_attr_async);
+       device_remove_file(dev, &dev_attr_periodic);
+       device_remove_file(dev, &dev_attr_registers);
 }
 
 #endif
 
 #ifdef CONFIG_USB_DEVICEFS
        struct dentry *usbfs_dentry;    /* usbfs dentry entry for the bus */
 #endif
-       struct class_device *class_dev; /* class device for this bus */
+       struct device *dev;             /* device for this bus */
 
 #if defined(CONFIG_USB_MON)
        struct mon_bus *mon_bus;        /* non-null when associated */