From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 47891C43142 for ; Tue, 31 Jul 2018 13:12:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F2A14208A6 for ; Tue, 31 Jul 2018 13:12:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F2A14208A6 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732233AbeGaOwY (ORCPT ); Tue, 31 Jul 2018 10:52:24 -0400 Received: from mx2.suse.de ([195.135.220.15]:33264 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1732068AbeGaOwX (ORCPT ); Tue, 31 Jul 2018 10:52:23 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 5C88FAD97; Tue, 31 Jul 2018 13:12:06 +0000 (UTC) Date: Tue, 31 Jul 2018 15:12:06 +0200 Message-ID: From: Takashi Iwai To: Jorge Sanjuan Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 0/4] usb-audio: Add UAC3 Power Domains In-Reply-To: <20180731122845.4859-1-jorge.sanjuan@codethink.co.uk> References: <20180719112215.4219-1-jorge.sanjuan@codethink.co.uk> <20180731122845.4859-1-jorge.sanjuan@codethink.co.uk> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/26 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 31 Jul 2018 14:28:41 +0200, Jorge Sanjuan wrote: > > This is what's new in this v3: > - Add proper SPDX identifier for new source file. > - Add delay unit in comment for BADD inferred recovery > times and specify the actual delay time for them. > - Suspend the usb stream *after* alsa has supended its stuff. > - Make sure Power State changes to D0 happen *before* stream > format is set. > - Try to set the Power State to D0 on .prepare callback too as > recovery from suspend state doesn't need .hw_params call. > > This patchset adds 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. The patch > "ALSA: usb-audio: Operate UAC3 Power Domains in PCM callbacks" > puts the logic for doing so inside the PCM's logic. Something to > improve on that is to also tie up those D1<->D0 state changes > to runtime PM maybe. > > > Jorge Sanjuan (4): > ALSA: usb-audio: Initial Power Domain support > ALSA: usb-audio: AudioStreaming Power Domain parsing > ALSA: usb-audio: Add UAC3 Power Domains to suspend/resume > ALSA: usb-audio: Operate UAC3 Power Domains in PCM callbacks Now I merge all these four patches. Thanks! Takashi