Re: usb: gadget: automatic remote wakeup on hid write

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

 



On Thu, Oct 24, 2024 at 11:37:50AM +0200, Bart Van Severen wrote:
> Hi,
> 
> We have a use case to remote control a pc through a composite gadget
> consisting of keyboard, mouse and tablet functions.
> The problem we face is that when the pc is sent to sleep, we cannot
> wake it by writing to the hid device, which is what you
> would expect to work.
> 
> We're running on Xilinx Zynqmp soc/DWC3 290A.
> 
> We have set the bmAttributes ch9 USB_CONFIG_ATT_WAKEUP bit and do see
> the set_feature request to enable remote
> wakeup, just before the pc goes to sleep.

Do you see a wakeup request from the gadget to the host?

> We noticed the recent relevant work
> https://lore.kernel.org/linux-usb/1679694482-16430-1-git-send-email-quic_eserrao@xxxxxxxxxxx/,
> regarding function suspend/resume and remote wakeup improvements.
> 
> However, the main question we have is: what would be the right place
> in the gadget framework to fix the issue where a hid write
> doesn't trigger a remote wake up when the usb device is suspended and
> the host has enabled remote wakeup.

Probably the drivers/usb/gadget/function/f_hid.c file.  I don't know 
anything about how this gadget driver works, but the file doesn't have 
any calls to usb_gadget_wakeup(), which means it won't generate a wakeup 
request no matter what you write to it.

Alan Stern

> Some further context:
> DWC3_DEVICE_EVENT_LINK_STATUS_CHANGE are disabled by default
> (https://github.com/torvalds/linux/commit/799e9dc82968c66d6f8faf96d0bd01e515b0b2f2#diff-5e9721ccc2bd0a326d3b1a8cbcd9d91130774b1a7d06533c39074ad67aee7e96L1540),
> so dwc3 gadget driver isn't interrupted when host goes to sleep, but
> it does get DWC3_DEVICE_EVENT_WAKEUP when it wakes up.
> So the gadget device in turn is not suspended when the pc goes to sleep.
> 
> dwc3_send_gadget_ep_cmd does issue __dwc3_gadget_wakeup when cmd is
> DWC3_DEPCMD_STARTTRANSFER.
> It has no provision for doing the same when cmd is DWC3_DEPCMD_UPDATETRANSFER,
> which is our current patch to make it work in a pragmatic way.
> 
> Sorry if the mail format isn't what you normally expect, this is my
> first time posting...
> 
> Br,
> 
> Bart Van Severen
> 




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

  Powered by Linux