diff options
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana.c | 1 | ||||
-rw-r--r-- | drivers/usb/host/ehci-tegra.c | 4 | ||||
-rw-r--r-- | include/linux/platform_data/tegra_usb.h | 1 |
4 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c index a44ca21f2595..a378931faebf 100644 --- a/arch/arm/mach-tegra/board-cardhu.c +++ b/arch/arm/mach-tegra/board-cardhu.c @@ -832,6 +832,7 @@ static struct tegra_ehci_platform_data tegra_ehci_pdata[] = { .phy_config = &utmi_phy_config[2], .operating_mode = TEGRA_USB_HOST, .power_down_on_bus_suspend = 1, + .hotplug = 1, }, }; diff --git a/arch/arm/mach-tegra/board-ventana.c b/arch/arm/mach-tegra/board-ventana.c index 71d4ef79a97e..4e8e9c42d591 100644 --- a/arch/arm/mach-tegra/board-ventana.c +++ b/arch/arm/mach-tegra/board-ventana.c @@ -717,6 +717,7 @@ static struct tegra_ehci_platform_data tegra_ehci_pdata[] = { .phy_config = &utmi_phy_config[1], .operating_mode = TEGRA_USB_HOST, .power_down_on_bus_suspend = 1, + .hotplug = 1, }, }; diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c index 2e84ee1e9f7c..2ee41aa81124 100644 --- a/drivers/usb/host/ehci-tegra.c +++ b/drivers/usb/host/ehci-tegra.c @@ -64,6 +64,7 @@ struct tegra_ehci_hcd { int bus_suspended; int port_resuming; int power_down_on_bus_suspend; + int hotplug; struct delayed_work work; enum tegra_usb_phy_port_speed port_speed; struct work_struct clk_timer_work; @@ -111,7 +112,7 @@ static irqreturn_t tegra_ehci_irq (struct usb_hcd *hcd) spin_unlock (&ehci->lock); } } - if (tegra->phy->instance == 2) { + if (tegra->hotplug) { spin_lock(&ehci->lock); val = readl(hcd->regs + TEGRA_USB_SUSP_CTRL_OFFSET); if ((val & TEGRA_USB_PHY_CLK_VALID_INT_STS)) { @@ -1048,6 +1049,7 @@ static int tegra_ehci_probe(struct platform_device *pdev) tegra->host_resumed = 1; tegra->power_down_on_bus_suspend = pdata->power_down_on_bus_suspend; + tegra->hotplug = pdata->hotplug; tegra->ehci = hcd_to_ehci(hcd); irq = platform_get_irq(pdev, 0); diff --git a/include/linux/platform_data/tegra_usb.h b/include/linux/platform_data/tegra_usb.h index 27879ce1d73e..cf75a98f5c37 100644 --- a/include/linux/platform_data/tegra_usb.h +++ b/include/linux/platform_data/tegra_usb.h @@ -34,6 +34,7 @@ struct tegra_ehci_platform_data { enum tegra_usb_operating_modes operating_mode; /* power down the phy on bus suspend */ int power_down_on_bus_suspend; + int hotplug; void *phy_config; enum tegra_usb_phy_type phy_type; }; |