Re: [PATCH v4 0/2] usb: implement AMD remote wakeup quirk

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

 



On Mon, 16 Sep 2013, Huang Rui wrote:

> Hi Greg, Sarah, Alan,
> 
> The following patches are required to resolve remote wake issues with
> certain devices.
> 
> Issue description:
> If the remote wake is issued from the device in a specific timing
> condition while the system is entering sleep state then it may cause
> system to auto wake on subsequent sleep cycle.
> 
> Root cause:
> Host controller rebroadcasts the Resume signal > 100 µseconds after
> receiving the original resume event from the device. For proper
> function, some devices may require the rebroadcast of resume event
> within the USB spec of 100µS.
> 
> Reproduce steps:
> 1. Enable remote wakeup for usb mouse.
> 2. Execute S3.
> 3. Click mouse _intensely_ (more than 10 times) to wake the system up.
> 4. Then execute S3 again.
> 5. Observe that the system auto wake up.
> 
> [Q] Why the special devices are only mice? Would high speed devices
> such as 3G modem or USB Bluetooth adapter trigger this issue?
> - Current this sensitivity is only confined to devices that use Pixart
>   controllers. This controller is designed for use with LS mouse
> devices only. We have not observed any other devices failing. There
> may be a small risk for other devices also but this patch (reset
> device in resume phase) will cover the cases if required.
> 
> [Q] Shouldn’t the resume signal be sent within 100 us for every
> device?
> - The Host controller may not send the resume signal within 100us,
>   this our host controller specification change. This is why we
> require the patch to prevent side effects on certain known devices.
> 
> [Q] Why would clicking mouse INTENSELY to wake the system up trigger
> this issue?
> - This behavior is specific to the devices that use Pixart controller.
>   It is timing dependent on when the resume event is triggered during
> the sleep state.
> 
> [Q] Is it a host controller issue or mouse?
> - It is the host controller behavior during resume that triggers the
>   device incorrect behavior on the next resume.
> 
> - Patch 1 refactors AMD quirk to abstract chipset types.
> - Patch 2 implements AMD remote wakeup quirk.
> They are generated on gregkh/usb usb-next.
> 
> Changes from v1 -> v2:
> - Add reproduce steps.
> - Add a patch to put the changes of core/hub.c and pci-quirks into one
>   patch.
> - Remove all the split strings.
> - Refactor usb_amd_remote_wakeup_quirk to save a variable and less
>   codes.
> - Remove 10ms delay in spinlock during xhci reset port by mouse.
> - Add an extra tab to algin to all quirks macros.
> - Remove backport request.
> - Add descriptions of the fixes and how they work.
> - Summarized questions from Sarah and Alan.
> 
> Changes from v2 -> v3:
> - Split first patch into two, the one add all the issue USB mice with
>   vendor id and product id in core/quirk.c, the other one is for filtering
> the special AMD platforms.
> - Remove is_usb_mouse function, as Greg required that don't use device type
>   for filtering.
> 
> Changes from v3 -> v4:
> - Refactor AMD pci quirk to abstract out chipset types to list generation
>   with a enumeration type and revision as Greg's suggestion.
> - Remove xhci and ohci level codes.
> - Implement remote wakeup quirk at core level as Alan's suggestion.

This version of the patch set looks good.

Alan Stern

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