usb: otg: cpcap-otg should return IRQ_NONE when appropriate
authorBenoit Goby <benoit@android.com>
Wed, 11 Aug 2010 23:53:42 +0000 (16:53 -0700)
committerColin Cross <ccross@android.com>
Wed, 6 Oct 2010 23:33:42 +0000 (16:33 -0700)
Change-Id: I94c4cf415778a59dc665e1b5353342067ba4f894
Signed-off-by: Benoit Goby <benoit@android.com>
drivers/usb/otg/cpcap-otg.c

index db1df3b93d3d579a8a5c2a6aeecc33004fc76fb0..b19681a05352791c523a62ca8800e8916e2aba0c 100644 (file)
@@ -55,9 +55,11 @@ static const char *cpcap_state_name(enum usb_otg_state state)
 
 static irqreturn_t cpcap_otg_irq(int irq, void *data)
 {
-       if (tegra_legacy_force_irq_status(irq))
+       if (tegra_legacy_force_irq_status(irq)) {
                tegra_legacy_force_irq_clr(irq);
-       return IRQ_HANDLED;
+               return IRQ_HANDLED;
+       }
+       return IRQ_NONE;
 }
 
 static int cpcap_otg_notify(struct notifier_block *nb, unsigned long event,
@@ -92,14 +94,13 @@ static int cpcap_otg_notify(struct notifier_block *nb, unsigned long event,
                        && otg->host) {
                hcd = (struct usb_hcd *)otg->host;
 
+               set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
                clk_enable(cpcap->clk);
 
                val = readl(cpcap->regs + TEGRA_USB_PHY_WAKEUP_REG_OFFSET);
                val &= ~TEGRA_ID_SW_VALUE;
                writel(val, cpcap->regs + TEGRA_USB_PHY_WAKEUP_REG_OFFSET);
 
-               set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
-
        } else if ((to == OTG_STATE_A_SUSPEND) && (from == OTG_STATE_A_HOST)
                        && otg->host) {
                val = readl(cpcap->regs + TEGRA_USB_PHY_WAKEUP_REG_OFFSET);