Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1606880imm; Thu, 19 Jul 2018 04:57:21 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeI60FomssbjR+Z6Yb7srLnBG9lSTBBUowqMjfuUaB6sSBZDILTCGQ03QSk2VM1uh55FI5l X-Received: by 2002:a17:902:5a83:: with SMTP id r3-v6mr9685410pli.78.1532001441649; Thu, 19 Jul 2018 04:57:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532001441; cv=none; d=google.com; s=arc-20160816; b=09jseI3ddKt3waSf+LrH2Nv2J1cXR1aMnIgwUjaio9NBQO4KH/mU0ozlgYPSSrecVH Q3YCAwSSM/QNs+loc4lLnl4GuWw7pXV9wAWzI4M/+289+T/ZCw6soDaG+ZBuP+BhV17Y F5hdZQH2VlTHIuouQJalZ/OpvPC2xU7sR/wnqDpV9BVwWxs188qOwngi3wLybTBwLvK5 B9sBAh4DeIFVaxDpLL2kZWQA9WiV4IAB/gToucNHeBgv3APkLlWRZHNMDd9EWYbKDdIY exnnn10IXDEnE7uBk1D1g1FvjTy9tpEQTJAHTDmvbTYBwHJ6vXykfpEEyOyH4EjqLUj8 dWIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date :arc-authentication-results; bh=HemaeJKBpGh8EM+alR3L41dZpdJ9+ADTvPvt2Spqvyc=; b=drF3u1Jwwu4AGlxh+nd65z3EyyPneZmSEXl6M2XaKTWgQCuuQZbA43wzETca5scrri 2VZ/mrzLNbsM3Wh4z65Y9k6rhdrmkApVY4y62ezrqva9itAWJvDWWAmN5VudEMbXCRDm oYZZ6iCMG9OlUR55RydlmNbYK15gRgaodrji2yT+3sWuji4Xy5ESe5bskRE6eOjnR501 xOjLzd56yxoUsj8Dh7OpU0XIhjFCh09dkjlHgHdlsxCrbBc3+nESIGkBwhFROCJ+828F 8KynJorvet3+X4ThRbFNvWO2EKXGOL7yGljUiJDhY6REfsdAhPLEsPIs3Oe5xAEuF2K3 6waQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p3-v6si5303517pld.408.2018.07.19.04.57.06; Thu, 19 Jul 2018 04:57:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730922AbeGSMjV (ORCPT + 99 others); Thu, 19 Jul 2018 08:39:21 -0400 Received: from mx2.suse.de ([195.135.220.15]:35996 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730049AbeGSMjU (ORCPT ); Thu, 19 Jul 2018 08:39:20 -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 14859ADAB; Thu, 19 Jul 2018 11:56:31 +0000 (UTC) Date: Thu, 19 Jul 2018 13:56:30 +0200 Message-ID: From: Takashi Iwai To: Jorge Sanjuan Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 0/4] usb-audio: Add UAC3 Power Domains In-Reply-To: <20180719112215.4219-1-jorge.sanjuan@codethink.co.uk> References: <20180719112215.4219-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 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 >