Re: [PATCH v8 00/18] port power control reworks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 28, 2014 at 4:46 PM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
> Changes since v7 [1]:
> * Added patch 8 "usb: make usb_port flags atomic"
>
> * Added patch 15 "usb: hub_handle_remote_wakeup() depends on
>   CONFIG_PM_RUNTIME=y"
>
> * Fixed patch 16 "usb: resume (wakeup) child device when port is powered
>   on"
>   - added USB_PORTDEV_WAKE flag to force usb_remote_wakeup() in
>     hub_handle_remote_wakeup()
>
> * Added a port_event() comment in patch 13 "usb: synchronize port
>   poweroff and khubd"
>
> * Reworked patch 12 "usb: refactor port handling in hub_events()" to
>   avoid indentation churn and a cleanup to consolidate calls to
>   usb_reset_device()
>
> See a summary of the review state of the series below.
>
> =====
>
> This series addresses the following disconnect scenarios when attempting
> to use port power-off.
>
> 1/ Superspeed devices downgrade to their hispeed connection when
>    rx-detection fails on the superspeed pins.  Address this by
>    preventing superspeed port poweroff/suspension until the peer port is
>    suspended, and powering on the superspeed port before the hispeed
>    port is resumed.  This depends on the ability to identify peer ports
>    (patches 4-7, and patch 9 implements the policy).
>
> 2/ khubd prematurely disconnects ports that are in the process of being
>    resumed or reset.  After this series khubd will ignore ports in the
>    pm-runtime-suspended or suspending state, or force active ports in the
>    resuming state (patch 13).  While it is running it holds a new port
>    status lock to synchronize the port status changes of
>    usb_port_{suspend|resume} and usb_reset_and_verify_device() (patch 14).
>
> 3/ Superspeed devices fail to reconnect after a 2 second timeout  This
>    event has two causes:
>
>    3.1/ Repeated {Set|Clear}PortFeature(PORT_POWER) toggles results in
>         the the device switching to its hispeed connection (due to
>         perceived instability of the superspeed connection).  Address
>         this by arranging for the child device to be woken up
>         and complete a resume cycle when the parent port resumes (patch 16).
>
>    3.2/ Devices may require a warm reset when recovering the power
>         session.  When the child device is woken up per above and the
>         port timed out on reconnect, force a warm-reset during the
>         child's reset-resume (patch 17).
>
> [1]: v7: http://marc.info/?l=linux-usb&m=139526512014030&w=2
>
> ---
>
> ACK => Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> ack => Acked-by another reviewer
>
> ACK [01/18] usb: disable port power control if not supported in wHubCharacteristics
> ACK [02/18] usb: rename usb_port device objects
> ACK [03/18] usb: cleanup setting udev->removable from port_dev->connect_type
> ACK [04/18] usb: assign default peer ports for root hubs
> ACK [05/18] usb: assign usb3 external hub port peers
> ACK [06/18] usb: find internal hub tier mismatch via acpi
> ACK [07/18] usb: sysfs link peer ports
>     [08/18] usb: make usb_port flags atomic
> ACK [09/18] usb: block suspension of superspeed port while hispeed peer is active
> ACK [10/18] usb: don't clear FEAT_C_ENABLE on usb_port_runtime_resume failure
> ACK [11/18] usb: usb3 ports do not support FEAT_C_ENABLE
>     [12/18] usb: refactor port handling in hub_events()
>     [13/18] usb: synchronize port poweroff and khubd
>     [14/18] usb: introduce port status lock
>     [15/18] usb: hub_handle_remote_wakeup() depends on CONFIG_PM_RUNTIME=y
>     [16/18] usb: resume (wakeup) child device when port is powered on
> ack [17/18] usb: force warm reset to break link re-connect livelock
>     [18/18] usb: documentation for usb port power off mechanisms

Alan, sorry, I neglected to cc you directly on the non-acked patches.
Let me know if you want a resend or can pick them up from the list.

--
Dan
--
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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux