Hi, On Wed, May 09, 2012 at 07:40:40AM +1000, NeilBrown wrote: > @@ -388,10 +388,16 @@ static void twl4030_phy_power(struct twl4030_usb *twl, int on) > (PHY_CLK_CTRL_CLOCKGATING_EN | > PHY_CLK_CTRL_CLK32K_EN)); > } else { > - __twl4030_phy_power(twl, 0); > regulator_disable(twl->usb1v5); > regulator_disable(twl->usb1v8); > regulator_disable(twl->usb3v1); > + if (!regulator_is_enabled(twl->usb3v1)) > + /* no-one else is requesting this > + * so it is OK to power-down the > + * phy. Sometimes a charger might > + * hold the regulator active. > + */ > + __twl4030_phy_power(twl, 0); > } Usually a regulator line is shared by more than one device and regulator_is_enable() returns true if at least one of these devices is holding the regulator. This means that here the check will not work if this is your case. Andi -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html