All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] usb-audio: Add UAC3 Power Domains
@ 2018-07-19 11:22 Jorge Sanjuan
  2018-07-19 11:22 ` [PATCH 1/4] ALSA: usb-audio: Initial Power Domain support Jorge Sanjuan
                   ` (6 more replies)
  0 siblings, 7 replies; 35+ messages in thread
From: Jorge Sanjuan @ 2018-07-19 11:22 UTC (permalink / raw)
  To: tiwai; +Cc: alsa-devel, linux-kernel

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


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2018-07-31 13:12 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-19 11:22 [PATCH 0/4] usb-audio: Add UAC3 Power Domains Jorge Sanjuan
2018-07-19 11:22 ` [PATCH 1/4] ALSA: usb-audio: Initial Power Domain support Jorge Sanjuan
2018-07-19 16:24   ` kbuild test robot
2018-07-19 17:09   ` kbuild test robot
2018-07-19 17:09     ` kbuild test robot
2018-07-19 11:22 ` [PATCH 2/4] ALSA: usb-audio: AudioStreaming Power Domain parsing Jorge Sanjuan
2018-07-19 17:48   ` kbuild test robot
2018-07-19 17:48   ` [RFC PATCH] ALSA: usb-audio: snd_usb_add_audio_stream_v3() can be static kbuild test robot
2018-07-19 11:22 ` [PATCH 3/4] ALSA: usb-audio: Operate UAC3 Power Domains in PCM callbacks Jorge Sanjuan
2018-07-19 11:22 ` [PATCH 4/4] ALSA: usb-audio: Add UAC3 Power Domains to suspend/resume Jorge Sanjuan
2018-07-19 11:56 ` [PATCH 0/4] usb-audio: Add UAC3 Power Domains Takashi Iwai
2018-07-20  9:08   ` Jorge
2018-07-27 10:44   ` [alsa-devel] " Jorge
2018-07-27 11:26     ` Takashi Iwai
2018-07-27 11:26       ` Takashi Iwai
2018-07-30  9:23 ` [PATCH v2 " Jorge Sanjuan
2018-07-30  9:23   ` [PATCH v2 1/4] ALSA: usb-audio: Initial Power Domain support Jorge Sanjuan
2018-07-30 13:01     ` Takashi Iwai
2018-07-30 13:03     ` Takashi Iwai
2018-07-30 16:05       ` Jorge
2018-07-30 16:10         ` Takashi Iwai
2018-07-30  9:23   ` [PATCH v2 2/4] ALSA: usb-audio: AudioStreaming Power Domain parsing Jorge Sanjuan
2018-07-30  9:23   ` [PATCH v2 3/4] ALSA: usb-audio: Add UAC3 Power Domains to suspend/resume Jorge Sanjuan
2018-07-30 13:07     ` Takashi Iwai
2018-07-30  9:23   ` [PATCH v2 4/4] ALSA: usb-audio: Operate UAC3 Power Domains in PCM callbacks Jorge Sanjuan
2018-07-30 13:13     ` Takashi Iwai
2018-07-30 16:09       ` Jorge
2018-07-30 16:12         ` Takashi Iwai
2018-07-30 16:48           ` Jorge
2018-07-31 12:28 ` [PATCH v3 0/4] usb-audio: Add UAC3 Power Domains Jorge Sanjuan
2018-07-31 12:28   ` [PATCH v3 1/4] ALSA: usb-audio: Initial Power Domain support Jorge Sanjuan
2018-07-31 12:28   ` [PATCH v3 2/4] ALSA: usb-audio: AudioStreaming Power Domain parsing Jorge Sanjuan
2018-07-31 12:28   ` [PATCH v3 3/4] ALSA: usb-audio: Add UAC3 Power Domains to suspend/resume Jorge Sanjuan
2018-07-31 12:28   ` [PATCH v3 4/4] ALSA: usb-audio: Operate UAC3 Power Domains in PCM callbacks Jorge Sanjuan
2018-07-31 13:12   ` [PATCH v3 0/4] usb-audio: Add UAC3 Power Domains Takashi Iwai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.