Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp685783imm; Fri, 27 Jul 2018 04:27:33 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdfWERhxo70sb8VRn6OSX3VpOfnnzwknuro6B0T1V/V3eIhIP4u4mBJz+Lwxi4OMc4asv6N X-Received: by 2002:a63:1e08:: with SMTP id e8-v6mr5698881pge.281.1532690853807; Fri, 27 Jul 2018 04:27:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532690853; cv=none; d=google.com; s=arc-20160816; b=FPNS9KcNPipajePToTI6/E4LAlx54bAs/pb6MrLw1ODMBr29fxbXoIQeHjZ6qVcsLF 79i5WNEN135JqMGMarYhUhcu3GT4Q7W/sqyQVTdcClmiPiHSwGA9UV39Ly+oMYebJRIE HydiNYrPzdXSlHk7d2pi4VfXnLYPTu3y5SkQUokmf9fV+qhUEKt+3ZDmATtZOY5UfuTo FBSNs3Vn+mB0LZbFp1HUJLFVKo31rsyf/m4NLIR9Y+S1yPdRkFB8ocboXuZpNPdUfz0N UavYmnBVT9PGUzXRsQR3LvRnpFZw/ZcJ9quMN0XBvbQorSLfHpCsqw7zrPEqpf3PErj+ vITQ== 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=t2HTfFoyx3rKnN59Lf/gwNGPTJR6TmpkjWzRnkl9ZXQ=; b=zEKbmHFYZfeCrc6GYAnneJyPUjT+FRMfnZBcwwpFMKTGo8794CDoFf7ncy2i5P6r80 8KJCyY/JoiEo9v7K+KYRlDuIt/ekEuHVCqA8EqGT+A32RK5RRdgvP7DFtp2zKCupGo/f lzOCRbnXBlAByOg0v5ObKlHCw/NEeQneShfeppf8Z3PwvT/mh3/dGzPU8gj+WvYIAvqu VFCBHx4eikXGTCbGSiNsZpBYmSCpcP3gH1UNG4LHMx0cardsdjo1LyOBKZXsr7NAb/f0 bxwaC9lKMRXOu6RHNENWvoRHF9fRX+uECiGdtg9Lk/+KW+hcCDsm1eJ2uwO3S89actC5 5PAA== 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 a9-v6si3714589pgn.177.2018.07.27.04.27.17; Fri, 27 Jul 2018 04:27:33 -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 S1730771AbeG0Mrx (ORCPT + 99 others); Fri, 27 Jul 2018 08:47:53 -0400 Received: from mx2.suse.de ([195.135.220.15]:46578 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730654AbeG0Mrx (ORCPT ); Fri, 27 Jul 2018 08:47:53 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id A2D5BAD0A; Fri, 27 Jul 2018 11:26:23 +0000 (UTC) Date: Fri, 27 Jul 2018 13:26:23 +0200 Message-ID: From: Takashi Iwai To: Jorge Cc: , Subject: Re: [alsa-devel] [PATCH 0/4] usb-audio: Add UAC3 Power Domains In-Reply-To: <59bd0814-e41e-667d-62d1-78194e7a8127@codethink.co.uk> References: <20180719112215.4219-1-jorge.sanjuan@codethink.co.uk> <59bd0814-e41e-667d-62d1-78194e7a8127@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 Fri, 27 Jul 2018 12:44:18 +0200, Jorge wrote: > > > > 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? > > > > Need to read through your patchset at first... > > > > > > thanks, > > > > Takashi > > Hi, > > I just realized I accidentally only replied to alsa-devel.. Sorry > about that. Thanks for resending. > I think it should be possible to tie up the D1 state changes (low > power but still interrupt capable) to runtime PM. Changes to D2 are > already tied to PM in this patchset. Just need to find the way to > cleanly access `dev->power.runtime_auto` before the driver attempts to > set D1 state. We could also let the driver only do D2<->D0 changes for > now. Hm, OK, so the partial coverage looks feasible with the runtime PM framework, at least. > I got some kbuild errors due to missing include. Should I re-send this > patchset or try to go around getting it tied up to runtime PM first? Let's fix the easy issues with kbuild and get them merged. The proper power state support can be implemented later. thanks, Takashi