On Thu, 19 Jul 2018 13:22:11 +0200, Jorge Sanjuan wrote: > > 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 (?). Can it be tied with runtime PM? Need to read through your patchset at first... thanks, Takashi > 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 > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel