lkml.org 
[lkml]   [2018]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 0/4] usb-audio: Add UAC3 Power Domains
    Date
    This patchset add support for UAC3 Power Domains. This feature
    of the USB audio class 3 allows the host to notify the device
    what it is making use of so power comsumption can be optimized.

    This proposal implements this feature for Power Domains
    that include an Input/Output Terminal associated to an
    audio Streaming interface. This is the main usage of this
    feature according to the spec. For that reason, the logic
    for the Power Domain state change has been implemented
    within the ALSA PCMs logic and the suspend/resume callbacks
    of the usb_driver. The behaviour would be as follows:

    * Power Domain State D0: A Power Domain will reach this state
    only when the audio substream associated to that domain is
    being used (i,e. Audio playback/capture is happening).
    * Power Domain State D1: This is the Idle state where the driver
    is going to always want to be in order to reduce power
    consumption.
    * Power Domain State D2: This state is only set when the usb driver
    asumes the device is not going to be used anymore and hence, it
    wont care about getting any interrupts from the device. This
    will only happen when power level is set to "auto" in sysfs
    so the usb driver gets suspended when the interfaces are not in use.

    NOTE: The way this has been implemented will always try to put the
    Power Domain in state D1 if the Power Domain exists so there is not a
    way a user could disable this feature. It may be worth getting a control
    exposed to userland that enables/disables this feature (?).

    Power Domains affecting other units independently are required to be
    bypassed via a Selector Unit first before the host can change the
    power state. This sceneario is not covered in this patchset.

    based on next-20180719

    Jorge Sanjuan (4):
    ALSA: usb-audio: Initial Power Domain support
    ALSA: usb-audio: AudioStreaming Power Domain parsing
    ALSA: usb-audio: Operate UAC3 Power Domains in PCM callbacks
    ALSA: usb-audio: Add UAC3 Power Domains to suspend/resume

    include/linux/usb/audio-v3.h | 4 ++
    sound/usb/Makefile | 1 +
    sound/usb/card.c | 9 ++++
    sound/usb/card.h | 2 +
    sound/usb/pcm.c | 64 +++++++++++++++++++++--
    sound/usb/pcm.h | 2 +
    sound/usb/power.c | 117 +++++++++++++++++++++++++++++++++++++++++++
    sound/usb/power.h | 19 +++++++
    sound/usb/stream.c | 70 +++++++++++++++++++++++---
    9 files changed, 277 insertions(+), 11 deletions(-)
    create mode 100644 sound/usb/power.c

    --
    2.11.0

    \
     
     \ /
      Last update: 2018-07-19 13:23    [W:4.062 / U:25.616 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site