summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/nvddk/nvddk_usbphy.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/nvddk/nvddk_usbphy.c')
-rw-r--r--arch/arm/mach-tegra/nvddk/nvddk_usbphy.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/arch/arm/mach-tegra/nvddk/nvddk_usbphy.c b/arch/arm/mach-tegra/nvddk/nvddk_usbphy.c
index 7a9da42cdf7c..2ec63f3eae91 100644
--- a/arch/arm/mach-tegra/nvddk/nvddk_usbphy.c
+++ b/arch/arm/mach-tegra/nvddk/nvddk_usbphy.c
@@ -404,8 +404,11 @@ NvDdkUsbPhyHelperThread(
/* wait for the signal to turn on/off the busy hints and vbus */
NvOsSemaphoreWaitTimeout(hUsbPhy->HelperThreadSema, NV_WAIT_INFINITE);
- /* Turn on/off the USB busy hints */
- UsbPhyDfsBusyHint(hUsbPhy, hUsbPhy->IsPhyPoweredUp, NV_WAIT_INFINITE);
+ if (!(hUsbPhy->IsPhyPoweredUp && hUsbPhy->IsHostMode))
+ {
+ /* Turn on/off the USB busy hints */
+ UsbPhyDfsBusyHint(hUsbPhy, hUsbPhy->IsPhyPoweredUp, NV_WAIT_INFINITE);
+ }
/* Turn on/off the vbus for host mode */
if (hUsbPhy->IsHostMode)
{
@@ -557,9 +560,12 @@ NvDdkUsbPhyOpen(
// Open the H/W interface
UsbPhyOpenHwInterface(pUsbPhy);
- /* enable the busy hints for USB */
- UsbPhyDfsBusyHint(pUsbPhy, NV_TRUE, NV_WAIT_INFINITE);
-
+ /* Enable the busy hints for USB device mode, for host mode *
+ * transaction based busy hints are on/off mechanism is present */
+ if (pUsbPhy->pProperty->UsbMode != NvOdmUsbModeType_Host)
+ {
+ UsbPhyDfsBusyHint(pUsbPhy, NV_TRUE, NV_WAIT_INFINITE);
+ }
// Initialize the USB Phy
NV_CHECK_ERROR_CLEANUP(UsbPhyInitialize(pUsbPhy));
}