lkml.org 
[lkml]   [2014]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC][PATCH 2/3] PM / sleep: Mechanism to avoid resuming runtime-suspended devices unnecessarily
    On Thu, 15 May 2014, Jacob Pan wrote:

    > > > should we respect ignore_children flag here? not all parent devices
    > > > create children with proper .prepare() function. this allows parents
    > > > override children.
    > > > I am looking at USB, a USB device could have logical children such
    > > > as ep_xx, they don't go through the same subsystem .prepare().
    > >
    > > Well, I'm not sure about that. Let me consider that for a while.
    > OK. let me be more clear about the situation i see in USB. Correct me
    > if I am wrong, a USB device will always has at least one endpoint/ep_00
    > as a kid for control pipe, it is a logical device. So when
    > device_prepare() is called, its call back is NULL which
    > makes .direct_complete = 0. Since children device suspend is called
    > before parents, the parents .direct_complete flag will always get
    > cleared.
    >
    > What i am trying to achieve here is to see if we avoid resuming
    > built-in (hardwired connect_type) non-hub USB devices based on this new
    > patchset. E.g. we don't want to resume/suspend USB camera every time in
    > system suspend/resume cycle if they are already rpm suspended. We can
    > save ~100ms resume time for the devices we have tested.

    This is a good point, but I don't think it is at all related to
    ignore_children.

    Instead, it seems that the best way to solve it would be to add a
    ->prepare() handler for usb_ep_device_type that would always turn
    on direct_complete.

    Alan Stern



    \
     
     \ /
      Last update: 2014-05-15 17:01    [W:5.027 / U:0.548 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site