diff options
author | Bitan Biswas <bbiswas@nvidia.com> | 2012-05-29 22:21:55 +0530 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-07-11 06:07:50 -0700 |
commit | cfefc1ae7df99c8f3996a52605c2400975b7f59b (patch) | |
tree | ae5defc4cc729525d6133a641dbffb7dbe2323b9 /drivers/usb | |
parent | 48651d264bdb2ff90624e965b8a68b011077ca7c (diff) |
usb: otg: tegra: wake enabled
Wake sources usb VBUS or ID detect enabled
bug 980993
bug 936982
Change-Id: Iea36d308c1a118abdb7815212d749bd058d0054f
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-on: http://git-master/r/103141
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Rakesh Bodla <rbodla@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/gadget/tegra_udc.c | 11 | ||||
-rw-r--r-- | drivers/usb/host/ehci-tegra.c | 2 | ||||
-rw-r--r-- | drivers/usb/otg/tegra-otg.c | 12 |
3 files changed, 22 insertions, 3 deletions
diff --git a/drivers/usb/gadget/tegra_udc.c b/drivers/usb/gadget/tegra_udc.c index 7968847f6278..47e2e97984a4 100644 --- a/drivers/usb/gadget/tegra_udc.c +++ b/drivers/usb/gadget/tegra_udc.c @@ -2517,13 +2517,22 @@ static int __init tegra_udc_probe(struct platform_device *pdev) goto err_iounmap; } - err = request_irq(udc->irq, tegra_udc_irq, IRQF_SHARED, + err = request_irq(udc->irq, tegra_udc_irq, + IRQF_SHARED | IRQF_TRIGGER_HIGH, driver_name, udc); if (err) { ERR("cannot request irq %d err %d\n", udc->irq, err); goto err_iounmap; } + err = enable_irq_wake(udc->irq); + if (err < 0) { + dev_warn(&pdev->dev, + "Couldn't enable USB udc mode wakeup, irq=%d, error=%d\n", + udc->irq, err); + err = 0; + } + udc->phy = tegra_usb_phy_open(pdev); if (IS_ERR(udc->phy)) { dev_err(&pdev->dev, "failed to open USB phy\n"); diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c index a55c16875aa3..be667f0c57c6 100644 --- a/drivers/usb/host/ehci-tegra.c +++ b/drivers/usb/host/ehci-tegra.c @@ -472,7 +472,7 @@ static int tegra_ehci_probe(struct platform_device *pdev) goto fail_phy; } - err = usb_add_hcd(hcd, irq, IRQF_DISABLED | IRQF_SHARED); + err = usb_add_hcd(hcd, irq, IRQF_SHARED | IRQF_TRIGGER_HIGH); if (err) { dev_err(&pdev->dev, "Failed to add USB HCD, error=%d\n", err); goto fail_phy; diff --git a/drivers/usb/otg/tegra-otg.c b/drivers/usb/otg/tegra-otg.c index ee76e6d8f58f..a5e85bf90d14 100644 --- a/drivers/usb/otg/tegra-otg.c +++ b/drivers/usb/otg/tegra-otg.c @@ -445,11 +445,21 @@ static int tegra_otg_probe(struct platform_device *pdev) tegra->irq = res->start; err = request_threaded_irq(tegra->irq, tegra_otg_irq, NULL, - IRQF_SHARED, "tegra-otg", tegra); + IRQF_SHARED | IRQF_TRIGGER_HIGH, + "tegra-otg", tegra); if (err) { dev_err(&pdev->dev, "Failed to register IRQ\n"); goto err_irq; } + + err = enable_irq_wake(tegra->irq); + if (err < 0) { + dev_warn(&pdev->dev, + "Couldn't enable USB otg mode wakeup, irq=%d, error=%d\n", + tegra->irq, err); + err = 0; + } + INIT_WORK(&tegra->work, irq_work); dev_info(&pdev->dev, "otg transceiver registered\n"); |