Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Feb 2016 16:15:36 +0900
From:      Dee Zay <julianpark90611@gmail.com>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: Regarding Wake On USB input from S3 Sleep
Message-ID:  <CACMcRdfU7Q0h5rpLbN4Zep76uWCKNGQhW2Wz2yixOBSkP5h_MQ@mail.gmail.com>
In-Reply-To: <56BC7BB0.7030407@selasky.org>
References:  <CACMcRdfLERKud5_0GMKK1m7RF1DS8hxrhSxpZFEUyqpMWNS7EQ@mail.gmail.com> <56BC289F.2070208@selasky.org> <CACMcRdcVnCshhPpc9qAyGeg62DgYxFxRbkiNMVsCeMF7SOmmrA@mail.gmail.com> <56BC31CD.2000509@selasky.org> <CACMcRdfk6_jba3YJhi=uPwo82CG1NmfAkM06sOs_EcKGmf_VFg@mail.gmail.com> <56BC751A.4030707@selasky.org> <CACMcRddRPakfvOhRdra-ZOG7NAx_cPbnwTmem=689ueoaLpiFA@mail.gmail.com> <56BC7BB0.7030407@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACMcRdfU7Q0h5rpLbN4Zep76uWCKNGQhW2Wz2yixOBSkP5h_MQ>