1 Index: linux-3.10/drivers/staging/octeon-usb/octeon-hcd.c
2 ===================================================================
3 --- linux-3.10.orig/drivers/staging/octeon-usb/octeon-hcd.c 2013-08-03 16:11:44.269610286 +0200
4 +++ linux-3.10/drivers/staging/octeon-usb/octeon-hcd.c 2013-08-04 13:18:54.011421971 +0200
9 -static int octeon_usb_driver_probe(struct device *dev)
10 +static int octeon_usb_driver_probe(struct platform_device *pdev)
12 + struct device *dev = &pdev->dev;
14 int usb_num = to_platform_device(dev)->id;
15 int irq = platform_get_irq(to_platform_device(dev), 0);
20 -static int octeon_usb_driver_remove(struct device *dev)
21 +static int octeon_usb_driver_remove(struct platform_device *pdev)
23 + struct device *dev = &pdev->dev;
25 struct usb_hcd *hcd = dev_get_drvdata(dev);
26 struct octeon_hcd *priv = hcd_to_octeon(hcd);
31 -static struct device_driver octeon_usb_driver = {
32 - .name = "OcteonUSB",
33 - .bus = &platform_bus_type,
34 +static struct platform_driver octeon_usb_driver = {
36 + .name = "OcteonUSB",
37 + .owner = THIS_MODULE,
39 .probe = octeon_usb_driver_probe,
40 .remove = octeon_usb_driver_remove,
43 +static struct resource octeon_usb_resources = {
44 + .start = OCTEON_IRQ_USB0,
45 + .end = OCTEON_IRQ_USB0,
46 + .flags = IORESOURCE_IRQ,
49 +static struct platform_device octeon_usb_device = {
50 + .name = "OcteonUSB",
52 + .resource = &octeon_usb_resources,
56 -#define MAX_USB_PORTS 10
57 -static struct platform_device *pdev_glob[MAX_USB_PORTS];
58 -static int octeon_usb_registered;
59 static int __init octeon_usb_module_init(void)
61 int num_devices = cvmx_usb_get_num_ports();
64 if (usb_disabled() || num_devices == 0)
67 - if (driver_register(&octeon_usb_driver))
70 - octeon_usb_registered = 1;
73 * Only cn52XX and cn56XX have DWC_OTG USB hardware and the
74 * IOB priority registers. Under heavy network load USB
76 cvmx_write_csr(CVMX_IOB_N2C_L2C_PRI_CNT, pri_cnt.u64);
79 - for (device = 0; device < num_devices; device++) {
80 - struct resource irq_resource;
81 - struct platform_device *pdev;
82 - memset(&irq_resource, 0, sizeof(irq_resource));
83 - irq_resource.start = (device == 0) ? OCTEON_IRQ_USB0 : OCTEON_IRQ_USB1;
84 - irq_resource.end = irq_resource.start;
85 - irq_resource.flags = IORESOURCE_IRQ;
86 - pdev = platform_device_register_simple((char *)octeon_usb_driver. name, device, &irq_resource, 1);
88 - driver_unregister(&octeon_usb_driver);
89 - octeon_usb_registered = 0;
90 - return PTR_ERR(pdev);
92 - if (device < MAX_USB_PORTS)
93 - pdev_glob[device] = pdev;
94 + platform_device_register(&octeon_usb_device);
98 + return platform_driver_register(&octeon_usb_driver);
101 static void __exit octeon_usb_module_cleanup(void)
105 - for (i = 0; i < MAX_USB_PORTS; i++)
106 - if (pdev_glob[i]) {
107 - platform_device_unregister(pdev_glob[i]);
108 - pdev_glob[i] = NULL;
110 - if (octeon_usb_registered)
111 - driver_unregister(&octeon_usb_driver);
112 + platform_driver_unregister(&octeon_usb_driver);
115 MODULE_LICENSE("GPL");