diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2014-12-18 05:43:43 +0100 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2014-12-18 05:43:43 +0100 |
commit | 629b91fa046df5213ed3312d2e2b8683e6bdd70c (patch) | |
tree | 49452c488fabe6e551dfff856a267cf486aaad76 | |
parent | 18d5f4a85d71d7921e9b121aeefb9c12c888d781 (diff) |
apalis/colibri_t30: usb: fix low-speed issue hack
Certain low-speed USB devices were not detected correctly when plugged
into a running system.
-rw-r--r-- | arch/arm/mach-tegra/board-apalis_t30.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-colibri_t30.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/tegra3_usb_phy.c | 3 |
3 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/mach-tegra/board-apalis_t30.c b/arch/arm/mach-tegra/board-apalis_t30.c index 30d00a33bfa1..d01f420f33c5 100644 --- a/arch/arm/mach-tegra/board-apalis_t30.c +++ b/arch/arm/mach-tegra/board-apalis_t30.c @@ -1322,7 +1322,7 @@ static struct tegra_usb_platform_data tegra_ehci1_utmi_pdata = { }, .u_data.host = { .hot_plug = true, - .power_off_on_suspend = false, + .power_off_on_suspend = true, .remote_wakeup_supported = true, .vbus_gpio = USBO1_EN, .vbus_gpio_inverted = 0, @@ -1348,7 +1348,7 @@ static struct tegra_usb_platform_data tegra_ehci2_utmi_pdata = { }, .u_data.host = { .hot_plug = true, - .power_off_on_suspend = false, + .power_off_on_suspend = true, .remote_wakeup_supported = true, .vbus_gpio = USBH_EN, .vbus_gpio_inverted = 0, @@ -1374,7 +1374,7 @@ static struct tegra_usb_platform_data tegra_ehci3_utmi_pdata = { }, .u_data.host = { .hot_plug = true, - .power_off_on_suspend = false, + .power_off_on_suspend = true, .remote_wakeup_supported = true, /* Uses same USBH_EN as EHCI2 */ .vbus_gpio = -1, diff --git a/arch/arm/mach-tegra/board-colibri_t30.c b/arch/arm/mach-tegra/board-colibri_t30.c index f449ac0d057e..ae3252442974 100644 --- a/arch/arm/mach-tegra/board-colibri_t30.c +++ b/arch/arm/mach-tegra/board-colibri_t30.c @@ -1283,7 +1283,7 @@ static struct tegra_usb_platform_data tegra_ehci1_utmi_pdata = { }, .u_data.host = { .hot_plug = true, - .power_off_on_suspend = false, + .power_off_on_suspend = true, .remote_wakeup_supported = true, .vbus_gpio = -1, .vbus_reg = NULL, @@ -1359,7 +1359,7 @@ static struct tegra_usb_platform_data tegra_ehci3_utmi_pdata = { }, .u_data.host = { .hot_plug = true, - .power_off_on_suspend = false, + .power_off_on_suspend = true, .remote_wakeup_supported = true, .vbus_gpio = USBH_PEN, .vbus_gpio_inverted = 1, diff --git a/arch/arm/mach-tegra/tegra3_usb_phy.c b/arch/arm/mach-tegra/tegra3_usb_phy.c index 66637f29b19c..0ab61758addd 100644 --- a/arch/arm/mach-tegra/tegra3_usb_phy.c +++ b/arch/arm/mach-tegra/tegra3_usb_phy.c @@ -755,6 +755,9 @@ bool utmi_phy_remotewake_detected(struct tegra_usb_phy *phy) unsigned int inst = phy->inst; u32 val; + /* Hack: avoid system lock-up condition upon device hot-plugging */ + mdelay(4); + DBG("%s(%d) inst:[%d]\n", __func__, __LINE__, phy->inst); val = readl(base + UTMIP_PMC_WAKEUP0); if (val & EVENT_INT_ENB) { |