.. | .. |
---|
9 | 9 | #include <linux/delay.h> |
---|
10 | 10 | #include <linux/device.h> |
---|
11 | 11 | #include <linux/errno.h> |
---|
12 | | -#include <linux/gpio.h> |
---|
13 | 12 | #include <linux/init.h> |
---|
14 | 13 | #include <linux/interrupt.h> |
---|
15 | 14 | #include <linux/io.h> |
---|
.. | .. |
---|
54 | 53 | * |
---|
55 | 54 | * If use_dma is disabled, pio will be used instead. |
---|
56 | 55 | */ |
---|
57 | | -static bool use_dma = 0; |
---|
| 56 | +static bool use_dma = false; |
---|
58 | 57 | module_param(use_dma, bool, 0644); |
---|
59 | 58 | |
---|
60 | 59 | /* |
---|
.. | .. |
---|
573 | 572 | |
---|
574 | 573 | /* completion */ |
---|
575 | 574 | if (unlikely(cleanup || is_short || |
---|
576 | | - ((req->req.actual == req->req.length) |
---|
577 | | - && !req->req.zero))) { |
---|
| 575 | + req->req.actual == req->req.length)) { |
---|
578 | 576 | |
---|
579 | 577 | if (cleanup) { |
---|
580 | 578 | net2272_out_flush(ep); |
---|
.. | .. |
---|
1179 | 1177 | size = PAGE_SIZE; |
---|
1180 | 1178 | spin_lock_irqsave(&dev->lock, flags); |
---|
1181 | 1179 | |
---|
1182 | | - if (dev->driver) |
---|
1183 | | - s = dev->driver->driver.name; |
---|
1184 | | - else |
---|
1185 | | - s = "(none)"; |
---|
1186 | | - |
---|
1187 | 1180 | /* Main Control Registers */ |
---|
1188 | 1181 | t = scnprintf(next, size, "%s version %s," |
---|
1189 | 1182 | "chiprev %02x, locctl %02x\n" |
---|
.. | .. |
---|
1694 | 1687 | net2272_write(dev, USBTEST, mode); |
---|
1695 | 1688 | |
---|
1696 | 1689 | /* load test packet */ |
---|
1697 | | - if (mode == TEST_PACKET) { |
---|
| 1690 | + if (mode == USB_TEST_PACKET) { |
---|
1698 | 1691 | /* switch to 8 bit mode */ |
---|
1699 | 1692 | net2272_write(dev, LOCCTL, net2272_read(dev, LOCCTL) & |
---|
1700 | 1693 | ~(1 << DATA_WIDTH)); |
---|
.. | .. |
---|
2202 | 2195 | static void |
---|
2203 | 2196 | net2272_gadget_release(struct device *_dev) |
---|
2204 | 2197 | { |
---|
2205 | | - struct net2272 *dev = dev_get_drvdata(_dev); |
---|
| 2198 | + struct net2272 *dev = container_of(_dev, struct net2272, gadget.dev); |
---|
| 2199 | + |
---|
2206 | 2200 | kfree(dev); |
---|
2207 | 2201 | } |
---|
2208 | 2202 | |
---|
.. | .. |
---|
2211 | 2205 | static void |
---|
2212 | 2206 | net2272_remove(struct net2272 *dev) |
---|
2213 | 2207 | { |
---|
2214 | | - usb_del_gadget_udc(&dev->gadget); |
---|
| 2208 | + if (dev->added) |
---|
| 2209 | + usb_del_gadget(&dev->gadget); |
---|
2215 | 2210 | free_irq(dev->irq, dev); |
---|
2216 | 2211 | iounmap(dev->base_addr); |
---|
2217 | 2212 | device_remove_file(dev->dev, &dev_attr_registers); |
---|
.. | .. |
---|
2241 | 2236 | |
---|
2242 | 2237 | /* the "gadget" abstracts/virtualizes the controller */ |
---|
2243 | 2238 | ret->gadget.name = driver_name; |
---|
| 2239 | + usb_initialize_gadget(dev, &ret->gadget, net2272_gadget_release); |
---|
2244 | 2240 | |
---|
2245 | 2241 | return ret; |
---|
2246 | 2242 | } |
---|
.. | .. |
---|
2279 | 2275 | if (ret) |
---|
2280 | 2276 | goto err_irq; |
---|
2281 | 2277 | |
---|
2282 | | - ret = usb_add_gadget_udc_release(dev->dev, &dev->gadget, |
---|
2283 | | - net2272_gadget_release); |
---|
| 2278 | + ret = usb_add_gadget(&dev->gadget); |
---|
2284 | 2279 | if (ret) |
---|
2285 | 2280 | goto err_add_udc; |
---|
| 2281 | + dev->added = 1; |
---|
2286 | 2282 | |
---|
2287 | 2283 | return 0; |
---|
2288 | 2284 | |
---|
.. | .. |
---|
2329 | 2325 | goto err; |
---|
2330 | 2326 | } |
---|
2331 | 2327 | |
---|
2332 | | - mem_mapped_addr[i] = ioremap_nocache(resource, len); |
---|
| 2328 | + mem_mapped_addr[i] = ioremap(resource, len); |
---|
2333 | 2329 | if (mem_mapped_addr[i] == NULL) { |
---|
2334 | 2330 | release_mem_region(resource, len); |
---|
2335 | 2331 | dev_dbg(dev->dev, "can't map memory\n"); |
---|
.. | .. |
---|
2376 | 2372 | |
---|
2377 | 2373 | err: |
---|
2378 | 2374 | while (--i >= 0) { |
---|
| 2375 | + if (i == 1) |
---|
| 2376 | + continue; /* BAR1 unused */ |
---|
2379 | 2377 | iounmap(mem_mapped_addr[i]); |
---|
2380 | 2378 | release_mem_region(pci_resource_start(pdev, i), |
---|
2381 | 2379 | pci_resource_len(pdev, i)); |
---|
.. | .. |
---|
2407 | 2405 | goto err; |
---|
2408 | 2406 | } |
---|
2409 | 2407 | |
---|
2410 | | - mem_mapped_addr[i] = ioremap_nocache(resource, len); |
---|
| 2408 | + mem_mapped_addr[i] = ioremap(resource, len); |
---|
2411 | 2409 | if (mem_mapped_addr[i] == NULL) { |
---|
2412 | 2410 | release_mem_region(resource, len); |
---|
2413 | 2411 | dev_dbg(dev->dev, "can't map memory\n"); |
---|
.. | .. |
---|
2455 | 2453 | |
---|
2456 | 2454 | if (pci_enable_device(pdev) < 0) { |
---|
2457 | 2455 | ret = -ENODEV; |
---|
2458 | | - goto err_free; |
---|
| 2456 | + goto err_put; |
---|
2459 | 2457 | } |
---|
2460 | 2458 | |
---|
2461 | 2459 | pci_set_master(pdev); |
---|
.. | .. |
---|
2478 | 2476 | |
---|
2479 | 2477 | err_pci: |
---|
2480 | 2478 | pci_disable_device(pdev); |
---|
2481 | | - err_free: |
---|
2482 | | - kfree(dev); |
---|
| 2479 | + err_put: |
---|
| 2480 | + usb_put_gadget(&dev->gadget); |
---|
2483 | 2481 | |
---|
2484 | 2482 | return ret; |
---|
2485 | 2483 | } |
---|
.. | .. |
---|
2540 | 2538 | |
---|
2541 | 2539 | pci_disable_device(pdev); |
---|
2542 | 2540 | |
---|
2543 | | - kfree(dev); |
---|
| 2541 | + usb_put_gadget(&dev->gadget); |
---|
2544 | 2542 | } |
---|
2545 | 2543 | |
---|
2546 | 2544 | /* Table of matching PCI IDs */ |
---|
.. | .. |
---|
2631 | 2629 | ret = -EBUSY; |
---|
2632 | 2630 | goto err; |
---|
2633 | 2631 | } |
---|
2634 | | - dev->base_addr = ioremap_nocache(base, len); |
---|
| 2632 | + dev->base_addr = ioremap(base, len); |
---|
2635 | 2633 | if (!dev->base_addr) { |
---|
2636 | 2634 | dev_dbg(dev->dev, "can't map memory\n"); |
---|
2637 | 2635 | ret = -EFAULT; |
---|
.. | .. |
---|
2653 | 2651 | err_req: |
---|
2654 | 2652 | release_mem_region(base, len); |
---|
2655 | 2653 | err: |
---|
2656 | | - kfree(dev); |
---|
| 2654 | + usb_put_gadget(&dev->gadget); |
---|
2657 | 2655 | |
---|
2658 | 2656 | return ret; |
---|
2659 | 2657 | } |
---|
.. | .. |
---|
2668 | 2666 | release_mem_region(pdev->resource[0].start, |
---|
2669 | 2667 | resource_size(&pdev->resource[0])); |
---|
2670 | 2668 | |
---|
2671 | | - kfree(dev); |
---|
| 2669 | + usb_put_gadget(&dev->gadget); |
---|
2672 | 2670 | |
---|
2673 | 2671 | return 0; |
---|
2674 | 2672 | } |
---|