All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jorge <jorge.sanjuan@codethink.co.uk>
To: alsa-devel@alsa-project.org
Subject: Re: [PATCH 0/4] usb-audio: Add UAC3 Power Domains
Date: Fri, 20 Jul 2018 10:08:49 +0100	[thread overview]
Message-ID: <d045c5d5-0fb2-3d65-73db-037ed720f5b2@codethink.co.uk> (raw)
In-Reply-To: <s5hlga78mmp.wl-tiwai@suse.de>



On 19/07/18 12:56, Takashi Iwai wrote:
> 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?

Sure. I think that could work. So the snd-usb driver would only attempt 
to drop a Power Domain from D0 to D1 only if (dev->power.runtime_auto == 
true)? Is there any clean way to check for that? I couldn't find any 
helper function.

The change to D2 state is already wrapped in runtime PM as usb_driver 
.suspend callback only gets called when runtime PM is enabled from sysfs.

Thanks,

Jorge

> 
> 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@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 

  reply	other threads:[~2018-07-20  9:08 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d045c5d5-0fb2-3d65-73db-037ed720f5b2@codethink.co.uk \
    --to=jorge.sanjuan@codethink.co.uk \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.