On Wed, Jun 18, 2014 at 7:54 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > On Tue, 17 Jun 2014, Dan Williams wrote: > >> Commit 9262c19d14c4 "usb: disable port power control if not supported in >> wHubCharacteristics" gated enabling runtime pm for usb_port devices on >> whether the parent hub supports power control, which causes a >> regression. The port must still be allowed to carry out runtime pm >> callbacks and receive a -EAGAIN or -EBUSY result. Otherwise the >> usb_port device will transition to the pm error state and trigger the >> same for the child usb_device. >> >> Prior to the offending commit usb_hub_create_port_device() arranged for >> runtime pm to be disabled is dev_pm_qos_expose_flags() failed. Instead, >> force the default state of PM_QOS_FLAG_NO_POWER_OFF flag to be set prior >> to enabling runtime pm. If that policy can not be set then fail >> registration. > > This whole thing seems much more complicated than necessary. > > Instead of messing around with PM-QOS settings, why not just do an > extra pm_runtime_get_noresume() if the hub doesn't support power > control? In that scenario userspace has to fishing for why the port is not powering off vs no "pm_qos_no_power_off" == no capability. > Or, what about leaving this code the way it was and changing the PM > core (see http://marc.info/?l=linux-pm&m=140303690820354&w=2)? I like this approach too, but was not sure a core change like that would be accepted now that -rc1 is out. -- 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