summaryrefslogtreecommitdiff
path: root/drivers/usb/otg/tegra-otg.c
diff options
context:
space:
mode:
authorAndy Carman <acarman@nvidia.com>2012-03-07 10:55:18 +0530
committerSimone Willett <swillett@nvidia.com>2012-04-26 14:48:08 -0700
commitc6ef8e08914428e5c6d12fd69c1a9589e5839c14 (patch)
tree223d7daca69e636f01f97e1a65239ae370aa9976 /drivers/usb/otg/tegra-otg.c
parent1917156866d35d710c376106972a821f1261bde0 (diff)
usb: otg: tegra: change logic for enable clock
When there is PMU interrupt we need to enable controller clock. For this currently, work is being schedule, removing this as clock can be enabled directly without scheduling any work. bug 925958 bug 941899 Signed-off-by: Andy Carman <acarman@nvidia.com> Signed-off-by: Krishna Yarlagadda <kyarlagadda@nvidia.com> Reviewed-on: http://git-master/r/88777 (cherry picked from commit fc31c04b7124f30970e862dd1b21a97d18dca38e) Change-Id: I8f6e7325771219488440226ddde97a32da228608 Reviewed-on: http://git-master/r/97882 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'drivers/usb/otg/tegra-otg.c')
-rw-r--r--drivers/usb/otg/tegra-otg.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/drivers/usb/otg/tegra-otg.c b/drivers/usb/otg/tegra-otg.c
index ecb88acf8d24..68d402afb25e 100644
--- a/drivers/usb/otg/tegra-otg.c
+++ b/drivers/usb/otg/tegra-otg.c
@@ -62,7 +62,6 @@ struct tegra_otg_data {
struct platform_device *pdev;
struct work_struct work;
unsigned int intr_reg_data;
- bool detect_vbus;
bool clk_enabled;
callback_t charger_cb;
void *charger_cb_data;
@@ -257,12 +256,6 @@ static void irq_work(struct work_struct *work)
unsigned long flags;
unsigned long status;
- if (tegra->detect_vbus) {
- tegra->detect_vbus = false;
- tegra_otg_enable_clk();
- return;
- }
-
clk_enable(tegra->clk);
spin_lock_irqsave(&tegra->lock, flags);
@@ -307,7 +300,6 @@ static irqreturn_t tegra_otg_irq(int irq, void *data)
otg_writel(tegra, val, USB_PHY_WAKEUP);
if ((val & USB_ID_INT_STATUS) || (val & USB_VBUS_INT_STATUS)) {
tegra->int_status = val;
- tegra->detect_vbus = false;
schedule_work(&tegra->work);
}
}
@@ -319,8 +311,7 @@ static irqreturn_t tegra_otg_irq(int irq, void *data)
void tegra_otg_check_vbus_detection(void)
{
- tegra_clone->detect_vbus = true;
- schedule_work(&tegra_clone->work);
+ tegra_otg_enable_clk();
}
EXPORT_SYMBOL(tegra_otg_check_vbus_detection);
@@ -345,7 +336,6 @@ static int tegra_otg_set_peripheral(struct otg_transceiver *otg,
if ((val & USB_ID_INT_STATUS) || (val & USB_VBUS_INT_STATUS)) {
tegra->int_status = val;
- tegra->detect_vbus = false;
schedule_work (&tegra->work);
}