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=-8.5 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 1C9E8C43331 for ; Thu, 5 Sep 2019 21:36:14 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4C89320828 for ; Thu, 5 Sep 2019 21:36:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="ry8IzjSe"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZO6/FWDA" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4C89320828 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id CB9A21658; Thu, 5 Sep 2019 23:35:20 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz CB9A21658 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1567719370; bh=gtMeK6xgTRg+x0HwzmCVbejozbfKNXxD5ioiDud0kLM=; h=Date:From:To:References:In-Reply-To:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=ry8IzjSe327E9nvn4u6w7D2gO6o3HXDR1Ol0gklroT2aJK23FTS/GD6J7COSoSrvH 70h7aHkmLG/A3zUcQZv0H86EHKuPU4lJhUs6Q0SiQmSL9dg+CTNNb+70ZskwezARR9 /2i/HUpybG27BCLRWeTCHkk+yAqgWC6aC9qQql1o= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 37292F803D1; Thu, 5 Sep 2019 23:35:20 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 8FF50F80448; Thu, 5 Sep 2019 23:35:18 +0200 (CEST) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id E51A5F802DF for ; Thu, 5 Sep 2019 23:35:14 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz E51A5F802DF Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZO6/FWDA" Received: from localhost (unknown [69.71.4.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1536F206BB; Thu, 5 Sep 2019 21:35:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567719311; bh=v2fQCvGYm46BeRXfxC+1ZlpNLHHP4uol+ATDKOQNCzI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZO6/FWDAr38eGqj49jBGMpzmVP61WBxI+2QqvGqfd1IZqmcbyuuPO3gsILOUyU/DE FOxbRK9SK/QY4HLGrd8IXExDR0WGslMq8R9/1Vi9Cuk1loxrhC5qznfOTeBk1D6tSe 229BNm14HnaqpvX2AAkpQQyWPHbMEcG5zkSQmfTg= Date: Thu, 5 Sep 2019 16:35:09 -0500 From: Bjorn Helgaas To: Kai-Heng Feng Message-ID: <20190905213509.GI103977@google.com> References: <20190827134756.10807-2-kai.heng.feng@canonical.com> <20190828180128.1732-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190828180128.1732-1-kai.heng.feng@canonical.com> User-Agent: Mutt/1.10.1 (2018-07-13) Cc: linux-pci@vger.kernel.org, alsa-devel@alsa-project.org, tiwai@suse.com, linux-kernel@vger.kernel.org Subject: Re: [alsa-devel] [PATCH v2 2/2] ALSA: hda: Allow HDA to be runtime suspended when dGPU is not bound X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" T24gVGh1LCBBdWcgMjksIDIwMTkgYXQgMDI6MDE6MjhBTSArMDgwMCwgS2FpLUhlbmcgRmVuZyB3 cm90ZToKPiBJdCdzIGEgY29tbW9uIHByYWN0aWNlIHRvIGxldCBkR1BVIHVuYm91bmQgYW5kIHVz ZSBQQ0kgcGxhdGZvcm0gcG93ZXIKPiBtYW5hZ2VtZW50IHRvIGRpc2FibGUgaXRzIHBvd2VyIHRo cm91Z2ggX09GRiBtZXRob2Qgb2YgcG93ZXIgcmVzb3VyY2UsCj4gd2hpY2ggaXMgbGlzdGVkIGJ5 IF9QUjMuCj4gV2hlbiB0aGUgZEdQVSBjb21lcyB3aXRoIGFuIEhEQSBmdW5jdGlvbiwgdGhlIEhE QSB3b24ndCBiZSBzdXNwZW5kZWQgaWYKPiB0aGUgZEdQVSBpcyB1bmJvdW5kLCBzbyB0aGUgcG93 ZXIgcmVzb3VyY2UgY2FuJ3QgYmUgdHVybmVkIG9mZi4KCkknbSBub3QgaW52b2x2ZWQgaW4gYXBw bHlpbmcgdGhpcyBwYXRjaCwgYnV0IGZyb20gdGhlIHBlYW51dCBnYWxsZXJ5OgoKICAtIFRoZSBh Ym92ZSBsb29rcyBsaWtlIGl0IG1pZ2h0IGJlIHR3byBwYXJhZ3JhcGhzIG1pc3NpbmcgYSBibGFu awogICAgbGluZSBiZXR3ZWVuPyAgT3IgbWF5YmUgaXQncyBvbmUgcGFyYWdyYXBoIHRoYXQgbmVl ZHMgdG8gYmUKICAgIHJld3JhcHBlZD8KCiAgLSBJIGNhbid0IHBhcnNlIHRoZSBmaXJzdCBzZW50 ZW5jZS4gIEkgZ3Vlc3MgImRHUFUiIGFuZCAiSERBIiBhcmUKICAgIGhhcmR3YXJlIGRldmljZXMs IGJ1dCBJIGRvbid0IGtub3cgd2hhdCAidW5ib3VuZCIgbWVhbnMuICBJcyB0aGF0CiAgICBzb21l dGhpbmcgdG8gZG8gd2l0aCBhIGRyaXZlciBiZWluZyBib3VuZCB0byB0aGUgZEdQVT8gIE9yIGlz IGl0CiAgICBzb21lIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgZEdQVSBhbmQgdGhlIEhEQT8KCiAg LSAiUENJIHBsYXRmb3JtIHBvd2VyIG1hbmFnZW1lbnQiIGlzIHN0aWxsIGNvbmZ1c2luZyAtLSBJ IHRoaW5rIHdlCiAgICBlaXRoZXIgaGF2ZSAiUENJIHBvd2VyIG1hbmFnZW1lbnQiIHRoYXQgdXNl cyB0aGUgUENJIFBNIENhcGFiaWxpdHkKICAgIChpLmUuLCB3cml0aW5nIFBDSV9QTV9DVFJMIGFz IGluIHBjaV9yYXdfc2V0X3Bvd2VyX3N0YXRlKCkpIE9SIHdlCiAgICBoYXZlICJwbGF0Zm9ybSBw b3dlciBtYW5hZ2VtZW50IiB0aGF0IHVzZXMgc29tZSBvdGhlciBtZXRob2QsCiAgICB0eXBpY2Fs bHkgQUNQSS4gIFNpbmNlIHlvdSByZWZlciB0byBfT0ZGIGFuZCBfUFIzLCBJIGd1ZXNzIHlvdSdy ZQogICAgcmVmZXJyaW5nIHRvIHBsYXRmb3JtIHBvd2VyIG1hbmFnZW1lbnQgaGVyZS4KCiAgLSAi SXQncyBjb21tb24gcHJhY3RpY2UgdG8gbGV0IGRHUFUgdW5ib3VuZCIgLS0gZG9lcyB0aGF0IHJl ZmVyIHRvCiAgICBzb21lIHByb2dyYW1taW5nIHRlY2huaXF1ZSBjb21tb24gaW4gZHJpdmVycywg b3Igc29tZSB1c2VyLWxldmVsCiAgICB0aGluZyBsaWtlIHVubG9hZGluZyBhIGRyaXZlciwgb3Ig Li4uPyAgTXkgZ3Vlc3MgaXMgaXQgcHJvYmFibHkKICAgIG1lYW5zICJ1bmJpbmQgdGhlIGRyaXZl ciBmcm9tIHRoZSBkR1BVIiBidXQgSSBzdGlsbCBkb24ndCBrbm93CiAgICB3aGF0IG1ha2VzIGl0 IGNvbW1vbiBwcmFjdGljZS4KClRoaXMgcHJvYmFibHkgYWxsIG1ha2VzIHBlcmZlY3Qgc2Vuc2Ug dG8gdGhlIGdyYXBoaWNzIGNvZ25vc2NlbnRpLCBidXQKZm9yIHRoZSByZXN0IG9mIHVzIHRoZXJl IGFyZSBhIGxvdCBvZiBkb3RzIGhlcmUgdGhhdCBhcmUgbm90CmNvbm5lY3RlZC4KCj4gQ29tbWl0 IDM3YTNhOThlZjYwMSAoIkFMU0E6IGhkYSAtIEVuYWJsZSBydW50aW1lIFBNIG9ubHkgZm9yCj4g ZGlzY3JldGUgR1BVIikgb25seSBhbGxvd3MgSERBIHRvIGJlIHJ1bnRpbWUtc3VzcGVuZGVkIG9u Y2UgR1BVIGlzCj4gYm91bmQsIHRvIGtlZXAgQVBVJ3MgSERBIHdvcmtpbmcuCj4gCj4gSG93ZXZl ciwgSERBIG9uIGRHUFUgaXNuJ3QgdGhhdCB1c2VmdWwgaWYgZEdQVSBpcyB1bmJvdW5kLiBTbyBs ZXQncwo+IHJlbGF4IHRoZSBydW50aW1lIHN1c3BlbmQgcmVxdWlyZW1lbnQgZm9yIGRHUFUncyBI REEgZnVuY3Rpb24sIHRvIHNhdmUKPiBsb3RzIG9mIHBvd2VyLgo+IAo+IEJ1Z0xpbms6IGh0dHBz Oi8vYnVncy5sYXVuY2hwYWQubmV0L2J1Z3MvMTg0MDgzNQo+IEZpeGVzOiBiNTE2ZWE1ODZkNzEg KCJQQ0k6IEVuYWJsZSBOVklESUEgSERBIGNvbnRyb2xsZXJz4oCdKQo+IFNpZ25lZC1vZmYtYnk6 IEthaS1IZW5nIEZlbmcgPGthaS5oZW5nLmZlbmdAY2Fub25pY2FsLmNvbT4KPiAtLS0KPiB2MjoK PiAtIENoYW5nZSB3b3JkaW5nLgo+IC0gUmViYXNlIHRvIFRpd2FpJ3MgYnJhbmNoLgo+IAo+ICBz b3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jIHwgNiArKysrKy0KPiAgMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9zb3VuZC9wY2kv aGRhL2hkYV9pbnRlbC5jIGIvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYwo+IGluZGV4IDkxZTcx YmU0MmZhNC4uYzM2NTRkMjI3OTVhIDEwMDY0NAo+IC0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2lu dGVsLmMKPiArKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jCj4gQEAgLTEyODQsNyArMTI4 NCwxMSBAQCBzdGF0aWMgdm9pZCBpbml0X3ZnYV9zd2l0Y2hlcm9vKHN0cnVjdCBhenggKmNoaXAp Cj4gIAkJZGV2X2luZm8oY2hpcC0+Y2FyZC0+ZGV2LAo+ICAJCQkgIkhhbmRsZSB2Z2Ffc3dpdGNo ZXJvbyBhdWRpbyBjbGllbnRcbiIpOwo+ICAJCWhkYS0+dXNlX3ZnYV9zd2l0Y2hlcm9vID0gMTsK PiAtCQljaGlwLT5idXMua2VlcF9wb3dlciA9IDE7IC8qIGNsZWFyZWQgaW4gZWl0aGVyIGdwdV9i b3VuZCBvcCBvciBjb2RlYyBwcm9iZSAqLwo+ICsKPiArCQkvKiBjbGVhcmVkIGluIGVpdGhlciBn cHVfYm91bmQgb3Agb3IgY29kZWMgcHJvYmUsIG9yIHdoZW4gaXRzCj4gKwkJICogcm9vdCBwb3J0 IGhhcyBfUFIzIChpLmUuIGRHUFUpLgo+ICsJCSAqLwo+ICsJCWNoaXAtPmJ1cy5rZWVwX3Bvd2Vy ID0gIXBjaV9wcjNfcHJlc2VudChwKTsKPiAgCQljaGlwLT5kcml2ZXJfY2FwcyB8PSBBWlhfRENB UFNfUE1fUlVOVElNRTsKPiAgCQlwY2lfZGV2X3B1dChwKTsKPiAgCX0KPiAtLSAKPiAyLjE3LjEK PiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWxzYS1k ZXZlbCBtYWlsaW5nIGxpc3QKQWxzYS1kZXZlbEBhbHNhLXByb2plY3Qub3JnCmh0dHBzOi8vbWFp bG1hbi5hbHNhLXByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo= 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=-8.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 CE818C43331 for ; Thu, 5 Sep 2019 21:35:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0471820828 for ; Thu, 5 Sep 2019 21:35:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567719313; bh=v2fQCvGYm46BeRXfxC+1ZlpNLHHP4uol+ATDKOQNCzI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=GYV89EtM6EE1fIlhMSGnMBpOjtPwe8C25k0Q0wp7RyvGL1KxH9/KDD47vx+6VBZmh 8zPXhnOcTIMz5NDVXOqsXcXEQM686dq+1Lf+EhkDM8FysPRBpeym2G0u4NuyCZMwrw r5eJx4NfDZo4kd5lH3z5PMeLJ2+flIveu24o1Y/I= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731289AbfIEVfM (ORCPT ); Thu, 5 Sep 2019 17:35:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:35084 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730485AbfIEVfL (ORCPT ); Thu, 5 Sep 2019 17:35:11 -0400 Received: from localhost (unknown [69.71.4.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1536F206BB; Thu, 5 Sep 2019 21:35:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567719311; bh=v2fQCvGYm46BeRXfxC+1ZlpNLHHP4uol+ATDKOQNCzI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZO6/FWDAr38eGqj49jBGMpzmVP61WBxI+2QqvGqfd1IZqmcbyuuPO3gsILOUyU/DE FOxbRK9SK/QY4HLGrd8IXExDR0WGslMq8R9/1Vi9Cuk1loxrhC5qznfOTeBk1D6tSe 229BNm14HnaqpvX2AAkpQQyWPHbMEcG5zkSQmfTg= Date: Thu, 5 Sep 2019 16:35:09 -0500 From: Bjorn Helgaas To: Kai-Heng Feng Cc: tiwai@suse.com, linux-pci@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/2] ALSA: hda: Allow HDA to be runtime suspended when dGPU is not bound Message-ID: <20190905213509.GI103977@google.com> References: <20190827134756.10807-2-kai.heng.feng@canonical.com> <20190828180128.1732-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190828180128.1732-1-kai.heng.feng@canonical.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Thu, Aug 29, 2019 at 02:01:28AM +0800, Kai-Heng Feng wrote: > It's a common practice to let dGPU unbound and use PCI platform power > management to disable its power through _OFF method of power resource, > which is listed by _PR3. > When the dGPU comes with an HDA function, the HDA won't be suspended if > the dGPU is unbound, so the power resource can't be turned off. I'm not involved in applying this patch, but from the peanut gallery: - The above looks like it might be two paragraphs missing a blank line between? Or maybe it's one paragraph that needs to be rewrapped? - I can't parse the first sentence. I guess "dGPU" and "HDA" are hardware devices, but I don't know what "unbound" means. Is that something to do with a driver being bound to the dGPU? Or is it some connection between the dGPU and the HDA? - "PCI platform power management" is still confusing -- I think we either have "PCI power management" that uses the PCI PM Capability (i.e., writing PCI_PM_CTRL as in pci_raw_set_power_state()) OR we have "platform power management" that uses some other method, typically ACPI. Since you refer to _OFF and _PR3, I guess you're referring to platform power management here. - "It's common practice to let dGPU unbound" -- does that refer to some programming technique common in drivers, or some user-level thing like unloading a driver, or ...? My guess is it probably means "unbind the driver from the dGPU" but I still don't know what makes it common practice. This probably all makes perfect sense to the graphics cognoscenti, but for the rest of us there are a lot of dots here that are not connected. > Commit 37a3a98ef601 ("ALSA: hda - Enable runtime PM only for > discrete GPU") only allows HDA to be runtime-suspended once GPU is > bound, to keep APU's HDA working. > > However, HDA on dGPU isn't that useful if dGPU is unbound. So let's > relax the runtime suspend requirement for dGPU's HDA function, to save > lots of power. > > BugLink: https://bugs.launchpad.net/bugs/1840835 > Fixes: b516ea586d71 ("PCI: Enable NVIDIA HDA controllers”) > Signed-off-by: Kai-Heng Feng > --- > v2: > - Change wording. > - Rebase to Tiwai's branch. > > sound/pci/hda/hda_intel.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c > index 91e71be42fa4..c3654d22795a 100644 > --- a/sound/pci/hda/hda_intel.c > +++ b/sound/pci/hda/hda_intel.c > @@ -1284,7 +1284,11 @@ static void init_vga_switcheroo(struct azx *chip) > dev_info(chip->card->dev, > "Handle vga_switcheroo audio client\n"); > hda->use_vga_switcheroo = 1; > - chip->bus.keep_power = 1; /* cleared in either gpu_bound op or codec probe */ > + > + /* cleared in either gpu_bound op or codec probe, or when its > + * root port has _PR3 (i.e. dGPU). > + */ > + chip->bus.keep_power = !pci_pr3_present(p); > chip->driver_caps |= AZX_DCAPS_PM_RUNTIME; > pci_dev_put(p); > } > -- > 2.17.1 >