Regarding Wake On USB input from S3 Sleep

Dee Zay julianpark90611 at gmail.com
Fri Feb 12 07:15:37 UTC 2016


Hello,

I've looked into *usb/controller/usb_controller.c* and modified
usb_bus_suspend():

==============================================================
*Line480*
        //  * We use the shutdown event here because the suspend and
        //  * resume events are reserved for the USB port suspend and
        //  * resume. The USB system suspend is implemented like full



        //  * resume events are reserved for the USB port suspend and
        //  * resume. The USB system suspend is implemented like full
        //  * shutdown and all connected USB devices will be disconnected
        //  * subsequently. At resume all USB devices will be
        //  * re-connected again.


        bus_generic_suspend(bus->bdev); //*suspend instead of shutdown*

        do_unlock = usbd_enum_lock(udev);

        err = usbd_set_config_index(udev, USB_UNCONFIG_INDEX);
        if (err)
             device_printf(bus->bdev, "Could not unconfigure root HUB\n");

        USB_BUS_LOCK(bus);
        bus->hw_power_state =             //*added power options instead of
0*
 USB_HW_POWER_CONTROL |
  USB_HW_POWER_BULK |
  USB_HW_POWER_INTERRUPT |
  USB_HW_POWER_ISOC |
  USB_HW_POWER_NON_ROOT_HUB;
        bus->no_explore = 0;
==============================================================


but the system does not respond to any USB interrupts?
Also, I do not understand why the suspend/resume events are reserved only
for USB ports, whereas the USB system has to be shutdown.

Thanks,
Julian

On Thu, Feb 11, 2016 at 9:16 PM, Hans Petter Selasky <hps at selasky.org>
wrote:

> On 02/11/16 13:08, Dee Zay wrote:
>
>> Hello,
>>
>> So, is the BIOS handover to the USB stack a prerequisite when resuming
>> from
>> standby mode HC (not completely off HC)?
>>
>
> Hi,
>
> I'm not sure. You'll have to find out. It is what happens when you suspend
> which decides if you get the resume event or not. Once resumed the system
> will manage somehow, either full reset or handover.
>
> In other words, do we need to implement BIOS handover before we can use
>> wake on usb keyboard input?
>>
>
> Might depend on the BIOS make. I've never tested this on FreeBSD before so
> I don't know.
>
> Or is there a workaround for this specific functionality?
>>
>
> Maybe check what Linux is doing.
>
> --HPS
>
>


More information about the freebsd-acpi mailing list