]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
usb: hcd: move controller wakeup setting initialization to individual driver
authorPeter Chen <peter.chen@freescale.com>
Tue, 5 Nov 2013 02:46:02 +0000 (10:46 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Dec 2013 02:06:46 +0000 (18:06 -0800)
Individual controller driver has different requirement for wakeup
setting, so move it from core to itself. In order to align with
current etting the default wakeup setting is enabled (except for
chipidea host).

Pass compile test with below commands:
make O=outout/all allmodconfig
make -j$CPU_NUM O=outout/all drivers/usb

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
64 files changed:
drivers/staging/dwc2/hcd.c
drivers/staging/octeon-usb/octeon-hcd.c
drivers/staging/ozwpan/ozhcd.c
drivers/usb/c67x00/c67x00-hcd.c
drivers/usb/core/hcd-pci.c
drivers/usb/core/hcd.c
drivers/usb/host/ehci-atmel.c
drivers/usb/host/ehci-exynos.c
drivers/usb/host/ehci-fsl.c
drivers/usb/host/ehci-grlib.c
drivers/usb/host/ehci-mv.c
drivers/usb/host/ehci-mxc.c
drivers/usb/host/ehci-octeon.c
drivers/usb/host/ehci-omap.c
drivers/usb/host/ehci-orion.c
drivers/usb/host/ehci-platform.c
drivers/usb/host/ehci-pmcmsp.c
drivers/usb/host/ehci-ppc-of.c
drivers/usb/host/ehci-ps3.c
drivers/usb/host/ehci-sead3.c
drivers/usb/host/ehci-sh.c
drivers/usb/host/ehci-spear.c
drivers/usb/host/ehci-tegra.c
drivers/usb/host/ehci-tilegx.c
drivers/usb/host/ehci-w90x900.c
drivers/usb/host/ehci-xilinx-of.c
drivers/usb/host/fhci-hcd.c
drivers/usb/host/fotg210-hcd.c
drivers/usb/host/fusbh200-hcd.c
drivers/usb/host/hwa-hc.c
drivers/usb/host/imx21-hcd.c
drivers/usb/host/isp116x-hcd.c
drivers/usb/host/isp1362-hcd.c
drivers/usb/host/isp1760-hcd.c
drivers/usb/host/ohci-at91.c
drivers/usb/host/ohci-da8xx.c
drivers/usb/host/ohci-exynos.c
drivers/usb/host/ohci-jz4740.c
drivers/usb/host/ohci-nxp.c
drivers/usb/host/ohci-octeon.c
drivers/usb/host/ohci-omap.c
drivers/usb/host/ohci-omap3.c
drivers/usb/host/ohci-platform.c
drivers/usb/host/ohci-ppc-of.c
drivers/usb/host/ohci-ps3.c
drivers/usb/host/ohci-pxa27x.c
drivers/usb/host/ohci-s3c2410.c
drivers/usb/host/ohci-sa1111.c
drivers/usb/host/ohci-sm501.c
drivers/usb/host/ohci-spear.c
drivers/usb/host/ohci-tilegx.c
drivers/usb/host/ohci-tmio.c
drivers/usb/host/oxu210hp-hcd.c
drivers/usb/host/r8a66597-hcd.c
drivers/usb/host/sl811-hcd.c
drivers/usb/host/u132-hcd.c
drivers/usb/host/uhci-grlib.c
drivers/usb/host/uhci-platform.c
drivers/usb/host/whci/hcd.c
drivers/usb/host/xhci-plat.c
drivers/usb/musb/musb_host.c
drivers/usb/phy/phy-msm-usb.c
drivers/usb/phy/phy-mv-usb.c
drivers/usb/renesas_usbhs/mod_host.c

index 3cfd2d5152c92b001ce3fba0752665612a04d2c7..078cd9168b1afc5f526d22a718c093574856a42b 100644 (file)
@@ -2921,6 +2921,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg, int irq,
        if (retval < 0)
                goto error3;
 
+       device_wakeup_enable(hcd->self.controller);
+
        dwc2_hcd_dump_state(hsotg);
 
        dwc2_enable_global_interrupts(hsotg);
index d118952c0a74c9ff7d59597ccf76e5a16a4bd60d..47e0a91238a107da2db14ab873685c582dcb59b9 100644 (file)
@@ -3498,6 +3498,7 @@ static int octeon_usb_driver_probe(struct device *dev)
                kfree(hcd);
                return -1;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        dev_dbg(dev, "Registered HCD for port %d on irq %d\n", usb_num, irq);
 
index d9c43c3282e7bd7dbc94459d5f966dae9ed1d0c8..efaf26f734c396c010945e42a45ae4f5eb08f571 100644 (file)
@@ -2270,6 +2270,8 @@ static int oz_plat_probe(struct platform_device *dev)
                usb_put_hcd(hcd);
                return -1;
        }
+       device_wakeup_enable(hcd->self.controller);
+
        spin_lock_bh(&g_hcdlock);
        g_ozhcd = ozhcd;
        spin_unlock_bh(&g_hcdlock);
index 75e47b860a53137db00a99581c06782a6c75c7a9..20ec4eee1ac8af88d780970e5a7488b2f117c4c8 100644 (file)
@@ -384,6 +384,8 @@ int c67x00_hcd_probe(struct c67x00_sie *sie)
                goto err2;
        }
 
+       device_wakeup_enable(hcd->self.controller);
+
        spin_lock_irqsave(&sie->lock, flags);
        sie->private_data = c67x00;
        sie->irq = c67x00_hcd_irq;
index dfe9d0f229780653c2bcb505e73ee00f4b372197..d59d99347d543b145e615c8854667f145bdd994f 100644 (file)
@@ -282,6 +282,7 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 
        if (retval != 0)
                goto unmap_registers;
+       device_wakeup_enable(hcd->self.controller);
 
        if (pci_dev_run_wake(dev))
                pm_runtime_put_noidle(&dev->dev);
index d3a9bcde53c39e4604f9b9eab3e05d17e51c0d25..6297c9e50de21da314d6580eeffb72b1f8fc8a6e 100644 (file)
@@ -2712,12 +2712,6 @@ int usb_add_hcd(struct usb_hcd *hcd,
        if (hcd->uses_new_polling && HCD_POLL_RH(hcd))
                usb_hcd_poll_rh_status(hcd);
 
-       /*
-        * Host controllers don't generate their own wakeup requests;
-        * they only forward requests from the root hub.  Therefore
-        * controllers should always be enabled for remote wakeup.
-        */
-       device_wakeup_enable(hcd->self.controller);
        return retval;
 
 error_create_attr_group:
index 284f8417eae58032284c8ec0be5a72a45f1b8aeb..ec9f7b75d497373db548461d29ead37e79a77f5f 100644 (file)
@@ -153,6 +153,7 @@ static int ehci_atmel_drv_probe(struct platform_device *pdev)
        retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
        if (retval)
                goto fail_add_hcd;
+       device_wakeup_enable(hcd->self.controller);
 
        return retval;
 
index e97c198e052fd88aa99a98679952769678728a75..d1d8c47777c58935698d0959856d2ac9237f3274 100644 (file)
@@ -166,6 +166,7 @@ skip_phy:
                dev_err(&pdev->dev, "Failed to add USB HCD\n");
                goto fail_add_hcd;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        platform_set_drvdata(pdev, hcd);
 
index 87a7426a44f418368641b119380f922e831b9104..854a68fa59a6dfc1f237be0b6fc2816ad808399d 100644 (file)
@@ -138,6 +138,7 @@ static int usb_hcd_fsl_probe(const struct hc_driver *driver,
        retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
        if (retval != 0)
                goto err4;
+       device_wakeup_enable(hcd->self.controller);
 
 #ifdef CONFIG_USB_OTG
        if (pdata->operating_mode == FSL_USB2_DR_OTG) {
index b52a66ce92e8592b123239aa24b724dddfd085fa..054792c562711d64d84dbe76eaec9183645baed5 100644 (file)
@@ -140,6 +140,7 @@ static int ehci_hcd_grlib_probe(struct platform_device *op)
        if (rv)
                goto err_ioremap;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 
 err_ioremap:
index 6e8afcaa8ff03b92a14393e6b9d439cbe53a837f..bd61612a725146ac24ed1c9ae4499633d58541eb 100644 (file)
@@ -257,6 +257,7 @@ static int mv_ehci_probe(struct platform_device *pdev)
                                "failed to add hcd with err %d\n", retval);
                        goto err_set_vbus;
                }
+               device_wakeup_enable(hcd->self.controller);
        }
 
        if (pdata->private_init)
index 0528dc4526c8ec1739a2c198fc07454561533ee7..dbe5e4eea08defb09faeea25b704cdb2abb0e59e 100644 (file)
@@ -155,6 +155,7 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
        if (ret)
                goto err_add;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 
 err_add:
index 4c528b2c033ad57c409286b376b9994ba2a2aa67..c4ad7ed6b3f825c9aec9752f4ae4b669f9d1d4f2 100644 (file)
@@ -158,6 +158,7 @@ static int ehci_octeon_drv_probe(struct platform_device *pdev)
                dev_dbg(&pdev->dev, "failed to add hcd with err %d\n", ret);
                goto err3;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        platform_set_drvdata(pdev, hcd);
 
index 6fa82d6b7661bea07d38dd249d76a80843ff4d01..a24720beb39dfd10b34c6cf9fa7b40a424286d75 100644 (file)
@@ -215,6 +215,7 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev)
                dev_err(dev, "failed to add hcd with err %d\n", ret);
                goto err_pm_runtime;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        /*
         * Bring PHYs out of reset for non PHY modes.
index 2ba76730e6509ea8f9372234be96f9ea81796cd1..aa8b92bf53610e6d0cbca0824cb171d93d79dfe7 100644 (file)
@@ -252,6 +252,7 @@ static int ehci_orion_drv_probe(struct platform_device *pdev)
        if (err)
                goto err4;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 
 err4:
index 7f30b7168d5a53542cdbea786d9cba849a932579..01536cfd361da2bb5f275cd1812ae2eb2e9b9729 100644 (file)
@@ -132,6 +132,7 @@ static int ehci_platform_probe(struct platform_device *dev)
        if (err)
                goto err_put_hcd;
 
+       device_wakeup_enable(hcd->self.controller);
        platform_set_drvdata(dev, hcd);
 
        return err;
index 893b707f0000abf0e323f39b28b6060a3293bcef..af3974a5e7c21c12c792a98bf0ba1e33f2cdd2d9 100644 (file)
@@ -210,8 +210,10 @@ int usb_hcd_msp_probe(const struct hc_driver *driver,
 
 
        retval = usb_add_hcd(hcd, res->start, IRQF_SHARED);
-       if (retval == 0)
+       if (retval == 0) {
+               device_wakeup_enable(hcd->self.controller);
                return 0;
+       }
 
        usb_remove_hcd(hcd);
 err3:
index 875d2fcc9e0e83de6ba7e17d007b347bf1ca34a4..b0965eb6c0dbddadbfba08497914edd5c9148ba5 100644 (file)
@@ -169,6 +169,7 @@ static int ehci_hcd_ppc_of_probe(struct platform_device *op)
        if (rv)
                goto err_ioremap;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 
 err_ioremap:
index 8188542ba17ea01214a3ab0f269fe07cb6cb1744..7934ff9b35e1fb4e67fc264f7a8d8df8ee2d7546 100644 (file)
@@ -189,6 +189,7 @@ static int ps3_ehci_probe(struct ps3_system_bus_device *dev)
                goto fail_add_hcd;
        }
 
+       device_wakeup_enable(hcd->self.controller);
        return result;
 
 fail_add_hcd:
index 8a734498079bc176938c57a6b132c146e9be00dd..cf126767386839cacdcfce0191eea95acc8c8b32 100644 (file)
@@ -126,6 +126,7 @@ static int ehci_hcd_sead3_drv_probe(struct platform_device *pdev)
                          IRQF_SHARED);
        if (ret == 0) {
                platform_set_drvdata(pdev, hcd);
+               device_wakeup_enable(hcd->self.controller);
                return ret;
        }
 
index dc899eb2b86183561351d78e8dba1ceffc9cbb18..9b9b9f5b016e8c8df635e60a8ae718554a8dcd82 100644 (file)
@@ -151,6 +151,7 @@ static int ehci_hcd_sh_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "Failed to add hcd");
                goto fail_add_hcd;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        priv->hcd = hcd;
        platform_set_drvdata(pdev, priv);
index ee6f9ffaa0e73ef9a6ca237d4e28960162e01d51..8bd915b2ae8c158e6ea86309f516e524f6d5c04b 100644 (file)
@@ -130,6 +130,7 @@ static int spear_ehci_hcd_drv_probe(struct platform_device *pdev)
        if (retval)
                goto err_stop_ehci;
 
+       device_wakeup_enable(hcd->self.controller);
        return retval;
 
 err_stop_ehci:
index b9fd0396011e54b79405cbac891540a6cd4c8964..a8f4471dae7b8d48875696ad94a528a17639e788 100644 (file)
@@ -455,6 +455,7 @@ static int tegra_ehci_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "Failed to add USB HCD\n");
                goto cleanup_otg_set_host;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        return err;
 
index 67026ffbf9a871c9780a4b0b7f0d6c739c904e73..f3713d32c9a157ab3f5414cb3350ca8752816c1a 100644 (file)
@@ -170,6 +170,7 @@ static int ehci_hcd_tilegx_drv_probe(struct platform_device *pdev)
        ret = usb_add_hcd(hcd, pdata->irq, IRQF_SHARED);
        if (ret == 0) {
                platform_set_drvdata(pdev, hcd);
+               device_wakeup_enable(hcd->self.controller);
                return ret;
        }
 
index cdad8438c02b3171567f5e0084ba46ee480db669..12c1a563c3f2a79be423a58b2581586a8de23bfb 100644 (file)
@@ -94,6 +94,7 @@ static int usb_w90x900_probe(const struct hc_driver *driver,
        if (retval != 0)
                goto err4;
 
+       device_wakeup_enable(hcd->self.controller);
        return retval;
 err4:
        iounmap(hcd->regs);
index 95979f9f4381d8e8e573c7e0fe254d5585d23ab8..3cd2efa4e6788f47377afc2a19e0f9fd85ade17e 100644 (file)
@@ -191,8 +191,10 @@ static int ehci_hcd_xilinx_of_probe(struct platform_device *op)
        ehci->caps = hcd->regs + 0x100;
 
        rv = usb_add_hcd(hcd, irq, 0);
-       if (rv == 0)
+       if (rv == 0) {
+               device_wakeup_enable(hcd->self.controller);
                return 0;
+       }
 
 err_irq:
        usb_put_hcd(hcd);
index 0551c0af0fd14c9d05141af86a3b28f4fce0344a..1cf68eaf2ed8cef5cd40ed4562a6cdf615d64095 100644 (file)
@@ -754,6 +754,8 @@ static int of_fhci_probe(struct platform_device *ofdev)
        if (ret < 0)
                goto err_add_hcd;
 
+       device_wakeup_enable(hcd->self.controller);
+
        fhci_dfs_create(fhci);
 
        return 0;
index 97d6939189d614cf51b697295cb1276f026df12c..98a89d16cc3e8f8e117b325620e36517e45ab523 100644 (file)
@@ -5889,6 +5889,7 @@ static int fotg210_hcd_probe(struct platform_device *pdev)
                dev_err(dev, "failed to add hcd with err %d\n", retval);
                goto fail_add_hcd;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        return retval;
 
index 9ea85b662a048e4fb07328b5a213861d0fcd3150..ba9499060f639c3bff934d4868ca71cfd6948bb4 100644 (file)
@@ -5798,6 +5798,7 @@ static int fusbh200_hcd_probe(struct platform_device *pdev)
                dev_err(dev, "failed to add hcd with err %d\n", retval);
                goto fail_add_hcd;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        return retval;
 
index a4ec9e6c0f86480faedf356b12e1d4c5ecb954e8..7fd3f9bd7b83a6ae15f206a0d0f823fce591e895 100644 (file)
@@ -791,6 +791,7 @@ static int hwahc_probe(struct usb_interface *usb_iface,
                dev_err(dev, "Cannot add HCD: %d\n", result);
                goto error_add_hcd;
        }
+       device_wakeup_enable(usb_hcd->self.controller);
        result = wusbhc_b_create(&hwahc->wusbhc);
        if (result < 0) {
                dev_err(dev, "Cannot setup phase B of WUSBHC: %d\n", result);
index 0122624c7ec1a634a174d1fbff37d41f35421562..207bad99301fd485a02831247a6a24846b772b5a 100644 (file)
@@ -1910,6 +1910,7 @@ static int imx21_probe(struct platform_device *pdev)
                dev_err(imx21->dev, "usb_add_hcd() returned %d\n", ret);
                goto failed_add_hcd;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        return 0;
 
index 7722ec658b87c95bfbd1627dd26a78a5bb790071..2740f65936bd2c84408ec221af4c3e0eb714c514 100644 (file)
@@ -1645,6 +1645,8 @@ static int isp116x_probe(struct platform_device *pdev)
        if (ret)
                goto err6;
 
+       device_wakeup_enable(hcd->self.controller);
+
        ret = create_debug_file(isp116x);
        if (ret) {
                ERR("Couldn't create debugfs entry\n");
index cd94b108b57f4cc53d66a47e64ebba1f8e0c62cb..34645ae9313d60b8252ac1347259b059a4488197 100644 (file)
@@ -2746,6 +2746,8 @@ static int isp1362_probe(struct platform_device *pdev)
        retval = usb_add_hcd(hcd, irq, irq_flags | IRQF_SHARED);
        if (retval != 0)
                goto err6;
+       device_wakeup_enable(hcd->self.controller);
+
        pr_info("%s, irq %d\n", hcd->product_desc, irq);
 
        create_debug_file(isp1362_hcd);
index 2facee53eab16103af0a3abc0d67712f8ecc991f..51a0ae9cdd1d27ead9bac1146c257996e697dd3f 100644 (file)
@@ -2250,6 +2250,7 @@ struct usb_hcd *isp1760_register(phys_addr_t res_start, resource_size_t res_len,
        ret = usb_add_hcd(hcd, irq, irqflags);
        if (ret)
                goto err_unmap;
+       device_wakeup_enable(hcd->self.controller);
 
        return hcd;
 
index cc9462f19fa578b971bc6c60aa20384b276c4b23..29d2093e3ceeff790b195f2b1392128eb13b7d1f 100644 (file)
@@ -200,8 +200,10 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
        at91_start_hc(pdev);
 
        retval = usb_add_hcd(hcd, pdev->resource[1].start, IRQF_SHARED);
-       if (retval == 0)
+       if (retval == 0) {
+               device_wakeup_enable(hcd->self.controller);
                return retval;
+       }
 
        /* Error handling */
        at91_stop_hc(pdev);
index 71dbd85e9a8d22c722eecbcd4f27150e11050e97..f0fe0d26314db5434b5fb4f342062e6cc619b0cd 100644 (file)
@@ -348,6 +348,8 @@ static int usb_hcd_da8xx_probe(const struct hc_driver *driver,
        if (error)
                goto err4;
 
+       device_wakeup_enable(hcd->self.controller);
+
        if (hub->ocic_notify) {
                error = hub->ocic_notify(ohci_da8xx_ocic_handler);
                if (!error)
index 9897d70e4c152c8985fecfdc9049a24cab2f0db1..68588d8a09bb60834d9e2740b488650d7fb42550 100644 (file)
@@ -146,6 +146,7 @@ skip_phy:
                dev_err(&pdev->dev, "Failed to add USB HCD\n");
                goto fail_add_hcd;
        }
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 
 fail_add_hcd:
index d4ef53990d7325c33746e7d57fd395c4ffc1c63b..efe31f3ab4ea07181ddac870f263d614d6bedb94 100644 (file)
@@ -217,6 +217,7 @@ static int jz4740_ohci_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "Failed to add hcd: %d\n", ret);
                goto err_disable;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        return 0;
 
index e99db8a6d55fc8b2fa965d548090c4b824ee11a3..719f28e5e3ac866200ecbac59995bccfaeaf2060 100644 (file)
@@ -274,8 +274,10 @@ static int ohci_hcd_nxp_probe(struct platform_device *pdev)
 
        dev_info(&pdev->dev, "at 0x%p, irq %d\n", hcd->regs, hcd->irq);
        ret = usb_add_hcd(hcd, irq, 0);
-       if (ret == 0)
+       if (ret == 0) {
+               device_wakeup_enable(hcd->self.controller);
                return ret;
+       }
 
        ohci_nxp_stop_hc();
 fail_resource:
index 6c16dcef15c6fe0ee47d063a931cd7330c81da29..49b220dc2f9b425a5dc97620aa4d2f0fbb76b533 100644 (file)
@@ -171,6 +171,8 @@ static int ohci_octeon_drv_probe(struct platform_device *pdev)
                goto err3;
        }
 
+       device_wakeup_enable(hcd->self.controller);
+
        platform_set_drvdata(pdev, hcd);
 
        return 0;
index f253214741ba014c35e28fa498894f8c5cac7847..a44a4fede1c4c51eb963f52ae8f72c9a291493b2 100644 (file)
@@ -367,6 +367,7 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver,
        if (retval)
                goto err3;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 err3:
        iounmap(hcd->regs);
index 21457417a85639051e566068566bfbe53937670d..ec15aebe8786dbb8287a9c617d7c32a032eb4073 100644 (file)
@@ -130,6 +130,7 @@ static int ohci_hcd_omap3_probe(struct platform_device *pdev)
                dev_dbg(dev, "failed to add hcd with err %d\n", ret);
                goto err_add_hcd;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        return 0;
 
index f351ff5b171f752f121119cdc1e51d5846d4d6f0..68f674cd095fa227cf06ade8eded93364184861b 100644 (file)
@@ -108,6 +108,8 @@ static int ohci_platform_probe(struct platform_device *dev)
        if (err)
                goto err_put_hcd;
 
+       device_wakeup_enable(hcd->self.controller);
+
        platform_set_drvdata(dev, hcd);
 
        return err;
index 81f3eba215c1224e3b7d1da64c7d1d31f12dfb15..83e33d46408287ceff4db04a4e127078406c0916 100644 (file)
@@ -147,8 +147,10 @@ static int ohci_hcd_ppc_of_probe(struct platform_device *op)
        ohci_hcd_init(ohci);
 
        rv = usb_add_hcd(hcd, irq, 0);
-       if (rv == 0)
+       if (rv == 0) {
+               device_wakeup_enable(hcd->self.controller);
                return 0;
+       }
 
        /* by now, 440epx is known to show usb_23 erratum */
        np = of_find_compatible_node(NULL, NULL, "ibm,usb-ehci-440epx");
index 7d35cd9e286271103144b0813b0ff052f8ce28de..71d8bc4c27f635e42542b82bbee5e679027a850f 100644 (file)
@@ -173,6 +173,7 @@ static int ps3_ohci_probe(struct ps3_system_bus_device *dev)
                goto fail_add_hcd;
        }
 
+       device_wakeup_enable(hcd->self.controller);
        return result;
 
 fail_add_hcd:
index e89ac4d4b87e5be4d4a134e389dbdfa20931eb9c..5343ecfdddfa588bfb6fbb5bd8780bab3baebc4d 100644 (file)
@@ -442,8 +442,10 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device
        ohci->num_ports = 3;
 
        retval = usb_add_hcd(hcd, irq, 0);
-       if (retval == 0)
+       if (retval == 0) {
+               device_wakeup_enable(hcd->self.controller);
                return retval;
+       }
 
        pxa27x_stop_hc(pxa_ohci, &pdev->dev);
  err3:
index 83cd1dcd5145c41c2a13bb0dbc5024f80676e868..ff7c8f1c48fb682a137484e74b7003a7bfe0d3f1 100644 (file)
@@ -395,6 +395,7 @@ static int usb_hcd_s3c2410_probe(const struct hc_driver *driver,
        if (retval != 0)
                goto err_ioremap;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 
  err_ioremap:
index aa9e127bbe718d52b8c994910c2c30826f5db06e..2ac266d692a2960acb400773738014eb728933b8 100644 (file)
@@ -211,8 +211,10 @@ static int ohci_hcd_sa1111_probe(struct sa1111_dev *dev)
                goto err2;
 
        ret = usb_add_hcd(hcd, dev->irq[1], 0);
-       if (ret == 0)
+       if (ret == 0) {
+               device_wakeup_enable(hcd->self.controller);
                return ret;
+       }
 
        sa1111_stop_hc(dev);
  err2:
index 2a5de5fecd8f5ba3a05a449485dd3f7fae7b39b2..4e81c804c73e761109ad427c5d509a0d6e040f25 100644 (file)
@@ -168,6 +168,7 @@ static int ohci_hcd_sm501_drv_probe(struct platform_device *pdev)
        retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
        if (retval)
                goto err5;
+       device_wakeup_enable(hcd->self.controller);
 
        /* enable power and unmask interrupts */
 
index e418c192e23ab69b8fad6cc622b37e1a237d7f9e..4cb98abc0bef79e98e5a8051af8788c4e6a33f8e 100644 (file)
@@ -103,8 +103,10 @@ static int spear_ohci_hcd_drv_probe(struct platform_device *pdev)
        ohci = hcd_to_ohci(hcd);
 
        retval = usb_add_hcd(hcd, platform_get_irq(pdev, 0), 0);
-       if (retval == 0)
+       if (retval == 0) {
+               device_wakeup_enable(hcd->self.controller);
                return retval;
+       }
 
        clk_disable_unprepare(sohci_p->clk);
 err_put_hcd:
index 22540ab71f555dd9c60b461216cd46b2bbfb82ee..0b183e0b0a8a1283a25ffea553a0e94cffcbd3ee 100644 (file)
@@ -159,6 +159,7 @@ static int ohci_hcd_tilegx_drv_probe(struct platform_device *pdev)
        ret = usb_add_hcd(hcd, pdata->irq, IRQF_SHARED);
        if (ret == 0) {
                platform_set_drvdata(pdev, hcd);
+               device_wakeup_enable(hcd->self.controller);
                return ret;
        }
 
index ecb09a5ada9ca4d33af566b037f9e5e07fa9bf80..9c44093b8e1eccd168c40eb847a87fba0051a51c 100644 (file)
@@ -250,6 +250,7 @@ static int ohci_hcd_tmio_drv_probe(struct platform_device *dev)
        if (ret)
                goto err_add_hcd;
 
+       device_wakeup_enable(hcd->self.controller);
        if (ret == 0)
                return ret;
 
index 4a05148ee79bdfefba18dda76e6d7e70927c5992..778eeaf2dd14533c63f7555bb20c14ea76d62879 100644 (file)
@@ -3751,6 +3751,7 @@ static struct usb_hcd *oxu_create(struct platform_device *pdev,
        if (ret < 0)
                return ERR_PTR(ret);
 
+       device_wakeup_enable(hcd->self.controller);
        return hcd;
 }
 
index 3bddfcfafb79f662b77028e6f8debdfdda737ef2..47b1322c7a77062276c2ecd8e8abd290fe16aad2 100644 (file)
@@ -2514,6 +2514,7 @@ static int r8a66597_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "Failed to add hcd\n");
                goto clean_up3;
        }
+       device_wakeup_enable(hcd->self.controller);
 
        return 0;
 
index 79620c39217ec182474bf53e2e04386560ea19b7..0115e7f51d94a6c19ae00892f78489c3f8b5e799 100644 (file)
@@ -1732,6 +1732,8 @@ sl811h_probe(struct platform_device *dev)
        if (retval != 0)
                goto err6;
 
+       device_wakeup_enable(hcd->self.controller);
+
        create_debug_file(sl811);
        return retval;
 
index 46236e9fc87f5a394ffa4fce800c7ab83dc5c151..c0671750671ff0577a3a101383de4ce17f6167d4 100644 (file)
@@ -3133,6 +3133,7 @@ static int u132_probe(struct platform_device *pdev)
                        u132_u132_put_kref(u132);
                        return retval;
                } else {
+                       device_wakeup_enable(hcd->self.controller);
                        u132_monitor_queue_work(u132, 100);
                        return 0;
                }
index 53c23ff7d68506d1febe9946d0cdbe45e68d2ae9..ab25dc397e8b84cb5e754eb3c85be27179d66dc3 100644 (file)
@@ -141,6 +141,7 @@ static int uhci_hcd_grlib_probe(struct platform_device *op)
        if (rv)
                goto err_uhci;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 
 err_uhci:
index 3003fefaa9647df17d66168c9f88337c45cfa3ac..44e6c9da88922431f3551d4e563e2fec525ffed1 100644 (file)
@@ -108,6 +108,7 @@ static int uhci_hcd_platform_probe(struct platform_device *pdev)
        if (ret)
                goto err_uhci;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 
 err_uhci:
index 1b0888f8da9a156a4e0ae29597568efe008ddc94..d7b363a418dee67917e9320fda6b5367a6b10ee1 100644 (file)
@@ -293,6 +293,7 @@ static int whc_probe(struct umc_dev *umc)
                dev_err(dev, "cannot add HCD: %d\n", ret);
                goto error_usb_add_hcd;
        }
+       device_wakeup_enable(usb_hcd->self.controller);
 
        ret = wusbhc_b_create(wusbhc);
        if (ret) {
index d9c169f470d3ebe11b6be5f0cc18927e5bc3d0b3..9d29aa1b1bc8f8301b8fb7c7b0f6bc3b18cd27c8 100644 (file)
@@ -139,6 +139,7 @@ static int xhci_plat_probe(struct platform_device *pdev)
        ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
        if (ret)
                goto unmap_registers;
+       device_wakeup_enable(hcd->self.controller);
 
        /* USB 2.0 roothub is stored in the platform_device now. */
        hcd = platform_get_drvdata(pdev);
index 6582a20bec05db6be2730f6ffee4f3677e6b2340..e2083757e87cfe66aaa01364fd0ba38a775a123a 100644 (file)
@@ -2657,6 +2657,7 @@ int musb_host_setup(struct musb *musb, int power_budget)
        if (ret < 0)
                return ret;
 
+       device_wakeup_enable(hcd->self.controller);
        return 0;
 }
 
index e9d4cd960ecdee0c1363066d8ebac955a7f7266a..37752832b770d5c6bd16aaf21e6e0c8e4ed11bd9 100644 (file)
@@ -669,6 +669,7 @@ static void msm_otg_start_host(struct usb_phy *phy, int on)
                        pdata->setup_gpio(OTG_STATE_A_HOST);
 #ifdef CONFIG_USB
                usb_add_hcd(hcd, hcd->irq, IRQF_SHARED);
+               device_wakeup_enable(hcd->self.controller);
 #endif
        } else {
                dev_dbg(phy->dev, "host off\n");
index 98f6ac6a78eac16e5d6eab91cc64e17daeae8316..44f316e287ef7ca37ee8866239b7c0ff371e18d0 100644 (file)
@@ -213,10 +213,12 @@ static void mv_otg_start_host(struct mv_otg *mvotg, int on)
 
        hcd = bus_to_hcd(otg->host);
 
-       if (on)
+       if (on) {
                usb_add_hcd(hcd, hcd->irq, IRQF_SHARED);
-       else
+               device_wakeup_enable(hcd->self.controller);
+       } else {
                usb_remove_hcd(hcd);
+       }
 #endif /* CONFIG_USB */
 }
 
index e40f565004d04bd6941e71559dd70d9d331d0215..10e1ded9c9ccbe264d44c2ebefe85d3e8472a14f 100644 (file)
@@ -1469,6 +1469,7 @@ static int usbhsh_start(struct usbhs_priv *priv)
        ret = usb_add_hcd(hcd, 0, 0);
        if (ret < 0)
                return 0;
+       device_wakeup_enable(hcd->self.controller);
 
        /*
         * pipe initialize and enable DCP