Avoid busy waiting by using usleep_range().
Change-Id: Ifba64bda667001d4de837e10ddb36f8f7d23312e
Signed-off-by: Suresh Mangipudi <smangipudi@nvidia.com>
Reviewed-on: http://git-master/r/432651
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Mitch Luban <mluban@nvidia.com>
Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Reviewed-by: Robert Shih <rshih@nvidia.com>
Reviewed-by: Chas Inman <chasi@nvidia.com>
/* Add delay sothat resume will be driven for more than 20 ms */
if (phy->port_speed != USB_PHY_PORT_SPEED_FULL) {
/* Add delay sothat resume will be driven for more than 20 ms */
if (phy->port_speed != USB_PHY_PORT_SPEED_FULL) {
+ usleep_range(10000, 11000);
local_irq_save(flags);
pmc->pmc_ops->disable_pmc_bus_ctrl(pmc, 1);
phy->pmc_remote_wakeup = false;
phy->pmc_hotplug_wakeup = false;
local_irq_restore(flags);
} else {
local_irq_save(flags);
pmc->pmc_ops->disable_pmc_bus_ctrl(pmc, 1);
phy->pmc_remote_wakeup = false;
phy->pmc_hotplug_wakeup = false;
local_irq_restore(flags);
} else {
+ usleep_range(25000, 26000);
local_irq_save(flags);
pmc->pmc_ops->disable_pmc_bus_ctrl(pmc, 0);
phy->pmc_remote_wakeup = false;
local_irq_save(flags);
pmc->pmc_ops->disable_pmc_bus_ctrl(pmc, 0);
phy->pmc_remote_wakeup = false;
__func__, __LINE__, phy->inst);
/* Wall charger needs time before setting D+/D- */
__func__, __LINE__, phy->inst);
/* Wall charger needs time before setting D+/D- */
+ usleep_range(25000, 26000);
switch (max_voltage) {
case TEGRA_USB_QC2_9V:
switch (max_voltage) {
case TEGRA_USB_QC2_9V:
if (irq_disabled) {
local_irq_restore(flags);
if (irq_disabled) {
local_irq_restore(flags);
+ usleep_range(25000, 26000);
local_irq_save(flags);
} else
local_irq_save(flags);
} else
+ usleep_range(10000, 11000);
pmc->pmc_ops->disable_pmc_bus_ctrl(pmc, 1);
phy->pmc_remote_wakeup = false;
pmc->pmc_ops->disable_pmc_bus_ctrl(pmc, 1);
phy->pmc_remote_wakeup = false;