Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[linux-2.6-block.git] / drivers / usb / gadget / pxa25x_udc.c
index f7ff9e8e746a796f944713414ecb8acb43248f2a..907ad3ecb341b0c3dc285b478b3d34dc57b450d5 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/ioport.h>
 #include <linux/types.h>
 #include <linux/errno.h>
+#include <linux/err.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
 #include <linux/init.h>
@@ -993,7 +994,7 @@ static int pxa25x_udc_vbus_draw(struct usb_gadget *_gadget, unsigned mA)
 
        udc = container_of(_gadget, struct pxa25x_udc, gadget);
 
-       if (udc->transceiver)
+       if (!IS_ERR_OR_NULL(udc->transceiver))
                return usb_phy_set_power(udc->transceiver, mA);
        return -EOPNOTSUPP;
 }
@@ -1299,7 +1300,7 @@ fail:
        DMSG("registered gadget driver '%s'\n", driver->driver.name);
 
        /* connect to bus through transceiver */
-       if (dev->transceiver) {
+       if (!IS_ERR_OR_NULL(dev->transceiver)) {
                retval = otg_set_peripheral(dev->transceiver->otg,
                                                &dev->gadget);
                if (retval) {
@@ -1359,7 +1360,7 @@ static int pxa25x_stop(struct usb_gadget_driver *driver)
        stop_activity(dev, driver);
        local_irq_enable();
 
-       if (dev->transceiver)
+       if (!IS_ERR_OR_NULL(dev->transceiver))
                (void) otg_set_peripheral(dev->transceiver->otg, NULL);
 
        driver->unbind(&dev->gadget);
@@ -2159,7 +2160,7 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
        dev->dev = &pdev->dev;
        dev->mach = pdev->dev.platform_data;
 
-       dev->transceiver = usb_get_transceiver();
+       dev->transceiver = usb_get_phy(USB_PHY_TYPE_USB2);
 
        if (gpio_is_valid(dev->mach->gpio_pullup)) {
                if ((retval = gpio_request(dev->mach->gpio_pullup,
@@ -2200,19 +2201,15 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev)
 
 #ifdef CONFIG_ARCH_LUBBOCK
        if (machine_is_lubbock()) {
-               retval = request_irq(LUBBOCK_USB_DISC_IRQ,
-                               lubbock_vbus_irq,
-                               IRQF_SAMPLE_RANDOM,
-                               driver_name, dev);
+               retval = request_irq(LUBBOCK_USB_DISC_IRQ, lubbock_vbus_irq,
+                                    0, driver_name, dev);
                if (retval != 0) {
                        pr_err("%s: can't get irq %i, err %d\n",
                                driver_name, LUBBOCK_USB_DISC_IRQ, retval);
                        goto err_irq_lub;
                }
-               retval = request_irq(LUBBOCK_USB_IRQ,
-                               lubbock_vbus_irq,
-                               IRQF_SAMPLE_RANDOM,
-                               driver_name, dev);
+               retval = request_irq(LUBBOCK_USB_IRQ, lubbock_vbus_irq,
+                                    0, driver_name, dev);
                if (retval != 0) {
                        pr_err("%s: can't get irq %i, err %d\n",
                                driver_name, LUBBOCK_USB_IRQ, retval);
@@ -2237,8 +2234,8 @@ lubbock_fail0:
        if (gpio_is_valid(dev->mach->gpio_pullup))
                gpio_free(dev->mach->gpio_pullup);
  err_gpio_pullup:
-       if (dev->transceiver) {
-               usb_put_transceiver(dev->transceiver);
+       if (!IS_ERR_OR_NULL(dev->transceiver)) {
+               usb_put_phy(dev->transceiver);
                dev->transceiver = NULL;
        }
        clk_put(dev->clk);
@@ -2279,8 +2276,8 @@ static int __exit pxa25x_udc_remove(struct platform_device *pdev)
 
        clk_put(dev->clk);
 
-       if (dev->transceiver) {
-               usb_put_transceiver(dev->transceiver);
+       if (!IS_ERR_OR_NULL(dev->transceiver)) {
+               usb_put_phy(dev->transceiver);
                dev->transceiver = NULL;
        }