From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [RFC v2 4/4] drm/nouveau: Add support for SLCG for Kepler2 Date: Thu, 25 Jan 2018 22:35:06 -0500 Message-ID: <20180126033607.7682-5-lyude@redhat.com> References: <20180126033607.7682-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180126033607.7682-1-lyude-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: David Airlie , Ben Skeggs , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: nouveau.vger.kernel.org VGhhdCdzIHJpZ2h0LCB0aGVyZSdzIHN0aWxsIG1vcmUgcG93ZXIgc2F2aW5nIHRvIGdvISBTdGFy dGluZyB3aXRoCmtlcGxlciAyLCBudmlkaWEgaGFyZHdhcmUgaGFzIGFuIGFkZGl0aW9uYWwgbGV2 ZWwgb2YgY2xvY2tnYXRpbmcga25vd24KYXMgc2Vjb25kIGxldmVsIGNsb2NrZ2F0aW5nLiAgVGhl IGRldGFpbHMgb2YgdGhpcyBhcmUgbm90IGV4YWN0LCBidXQgaXQKc2VlbXMgdG8gd29yayBieSB3 YWl0aW5nIGZvciBhIGNvbGxlY3Rpb24gb2YgZGVwZW5kZW50IGhhcmR3YXJlIGJsb2Nrcwp0byBi ZSBnYXRlZCBiZWZvcmUgdGFraW5nIGFmZmVjdC4gQXMgd2l0aCB0aGUgcHJldmlvdXMgc2VyaWVz LCB0aGlzCnJlc3VsdHMgaW4gYW5vdGhlciBub3RpY2VhYmxlIGRyb3AgaW4gcG93ZXIgY29uc3Vt cHRpb24gYW5kIGlzCnByb2dyYW1tZWQgaW4gdGhlIHNhbWUgbWFubmVyLgoKU2lnbmVkLW9mZi1i eTogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9udmttL2VuZ2luZS9nci9nazExMC5jIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKysr KysKIDEgZmlsZSBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZ3IvZ2sxMTAuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L252a20vZW5naW5lL2dyL2drMTEwLmMKaW5kZXggMzhkMzMyOGU0NWYxLi41ZGVk MjljNzkwZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5l L2dyL2drMTEwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZ3Iv Z2sxMTAuYwpAQCAtMTg3LDYgKzE4Nyw4NyBAQCBnazExMF9jbGtnYXRlX2JsY2dfaW5pdF9ncGNf bXBfMFtdID0gewogCXt9CiB9OwogCitjb25zdCBzdHJ1Y3QgbnZrbV90aGVybV9jbGtnYXRlX2lu aXQKK2drMTEwX2Nsa2dhdGVfc2xjZ19pbml0X21haW5fMFtdID0geworCXsgMHg0MDQxZjQsIDEs IDB4MDAwMDAwMDAgfSwKKwl7IDB4NDA5ODk0LCAxLCAweDAwMDAwMDAwIH0sCisJe30KK307CisK K2NvbnN0IHN0cnVjdCBudmttX3RoZXJtX2Nsa2dhdGVfaW5pdAorZ2sxMTBfY2xrZ2F0ZV9zbGNn X2luaXRfdW5rXzBbXSA9IHsKKwl7IDB4NDA2MDA0LCAxLCAweDAwMDAwMDAwIH0sCisJe30KK307 CisKK2NvbnN0IHN0cnVjdCBudmttX3RoZXJtX2Nsa2dhdGVfaW5pdAorZ2sxMTBfY2xrZ2F0ZV9z bGNnX2luaXRfc2tlZF8wW10gPSB7CisJeyAweDQwNzAwNCwgMSwgMHgwMDAwMDAwMCB9LAorCXt9 Cit9OworCitjb25zdCBzdHJ1Y3QgbnZrbV90aGVybV9jbGtnYXRlX2luaXQKK2drMTEwX2Nsa2dh dGVfc2xjZ19pbml0X2dwY19jdHhjdGxfMFtdID0geworCXsgMHg0MWE4OTQsIDEsIDB4MDAwMDAw MDAgfSwKKwl7fQorfTsKKworY29uc3Qgc3RydWN0IG52a21fdGhlcm1fY2xrZ2F0ZV9pbml0Citn azExMF9jbGtnYXRlX3NsY2dfaW5pdF9ncGNfdW5rXzBbXSA9IHsKKwl7IDB4NDE4NTA0LCAxLCAw eDAwMDAwMDAwIH0sCisJeyAweDQxODYwYywgMSwgMHgwMDAwMDAwMCB9LAorCXsgMHg0MTg2OGMs IDEsIDB4MDAwMDAwMDAgfSwKKwl7fQorfTsKKworY29uc3Qgc3RydWN0IG52a21fdGhlcm1fY2xr Z2F0ZV9pbml0CitnazExMF9jbGtnYXRlX3NsY2dfaW5pdF9ncGNfZXNldHVwXzBbXSA9IHsKKwl7 IDB4NDE4ODJjLCAxLCAweDAwMDAwMDAwIH0sCisJe30KK307CisKK2NvbnN0IHN0cnVjdCBudmtt X3RoZXJtX2Nsa2dhdGVfaW5pdAorZ2sxMTBfY2xrZ2F0ZV9zbGNnX2luaXRfZ3BjX3pjdWxsXzBb XSA9IHsKKwl7IDB4NDE4OTc0LCAxLCAweDAwMDAwMDAwIH0sCisJe30KK307CisKK2NvbnN0IHN0 cnVjdCBudmttX3RoZXJtX2Nsa2dhdGVfaW5pdAorZ2sxMTBfY2xrZ2F0ZV9zbGNnX2luaXRfZ3Bj X2wxY18wW10gPSB7CisJeyAweDQxOWNkOCwgMiwgMHgwMDAwMDAwMCB9LAorCXt9Cit9OworCitj b25zdCBzdHJ1Y3QgbnZrbV90aGVybV9jbGtnYXRlX2luaXQKK2drMTEwX2Nsa2dhdGVfc2xjZ19p bml0X2dwY191bmtfMVtdID0geworCXsgMHg0MTljNzQsIDEsIDB4MDAwMDAwMDAgfSwKKwl7fQor fTsKKworY29uc3Qgc3RydWN0IG52a21fdGhlcm1fY2xrZ2F0ZV9pbml0CitnazExMF9jbGtnYXRl X3NsY2dfaW5pdF9ncGNfbXBfMFtdID0geworCXsgMHg0MTlmZDQsIDEsIDB4MDAwMDRhNGEgfSwK Kwl7IDB4NDE5ZmRjLCAxLCAweDAwMDAwMDE0IH0sCisJeyAweDQxOWZlNCwgMSwgMHgwMDAwMDAw MCB9LAorCXsgMHg0MTlmZjQsIDEsIDB4MDAwMDE3MjQgfSwKKwl7fQorfTsKKworY29uc3Qgc3Ry dWN0IG52a21fdGhlcm1fY2xrZ2F0ZV9pbml0CitnazExMF9jbGtnYXRlX3NsY2dfaW5pdF9ncGNf cHBjXzBbXSA9IHsKKwl7IDB4NDFiZTJjLCAxLCAweDAwMDAwMDAwIH0sCisJe30KK307CisKK2Nv bnN0IHN0cnVjdCBudmttX3RoZXJtX2Nsa2dhdGVfaW5pdAorZ2sxMTBfY2xrZ2F0ZV9zbGNnX2lu aXRfcGNvdW50ZXJfMFtdID0geworCXsgMHgxYmUwMTgsIDEsIDB4MDAwMDAxZmYgfSwKKwl7IDB4 MWJjMDE4LCAxLCAweDAwMDAwMWZmIH0sCisJeyAweDFiODAxOCwgMSwgMHgwMDAwMDFmZiB9LAor CXsgMHgxYjQxMjQsIDEsIDB4MDAwMDAwMDAgfSwKKwl7fQorfTsKKwogY29uc3Qgc3RydWN0IG52 a21fdGhlcm1fY2xrZ2F0ZV9wYWNrCiBnazExMF9jbGtnYXRlX3BhY2tbXSA9IHsKIAl7IGdrMTA0 X2Nsa2dhdGVfYmxjZ19pbml0X21haW5fMCB9LApAQCAtMjE0LDYgKzI5NSwxOCBAQCBnazExMF9j bGtnYXRlX3BhY2tbXSA9IHsKIAl7IGdrMTA0X2Nsa2dhdGVfYmxjZ19pbml0X3JvcF8wIH0sCiAJ eyBnazEwNF9jbGtnYXRlX2JsY2dfaW5pdF9yb3BfY3JvcF8wIH0sCiAJeyBnazEwNF9jbGtnYXRl X2JsY2dfaW5pdF9weGJhcl8wIH0sCisJeyBnazExMF9jbGtnYXRlX3NsY2dfaW5pdF9tYWluXzAg fSwKKwl7IGdrMTEwX2Nsa2dhdGVfc2xjZ19pbml0X3Vua18wIH0sCisJeyBnazExMF9jbGtnYXRl X3NsY2dfaW5pdF9za2VkXzAgfSwKKwl7IGdrMTEwX2Nsa2dhdGVfc2xjZ19pbml0X2dwY19jdHhj dGxfMCB9LAorCXsgZ2sxMTBfY2xrZ2F0ZV9zbGNnX2luaXRfZ3BjX3Vua18wIH0sCisJeyBnazEx MF9jbGtnYXRlX3NsY2dfaW5pdF9ncGNfZXNldHVwXzAgfSwKKwl7IGdrMTEwX2Nsa2dhdGVfc2xj Z19pbml0X2dwY196Y3VsbF8wIH0sCisJeyBnazExMF9jbGtnYXRlX3NsY2dfaW5pdF9ncGNfbDFj XzAgfSwKKwl7IGdrMTEwX2Nsa2dhdGVfc2xjZ19pbml0X2dwY191bmtfMSB9LAorCXsgZ2sxMTBf Y2xrZ2F0ZV9zbGNnX2luaXRfZ3BjX21wXzAgfSwKKwl7IGdrMTEwX2Nsa2dhdGVfc2xjZ19pbml0 X2dwY19wcGNfMCB9LAorCXsgZ2sxMTBfY2xrZ2F0ZV9zbGNnX2luaXRfcGNvdW50ZXJfMCB9LAog CXt9CiB9OwogCi0tIAoyLjE0LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91 dmVhdQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751704AbeAZDiG (ORCPT ); Thu, 25 Jan 2018 22:38:06 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34464 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751637AbeAZDiC (ORCPT ); Thu, 25 Jan 2018 22:38:02 -0500 From: Lyude Paul To: nouveau@lists.freedesktop.org Cc: Ben Skeggs , David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [RFC v2 4/4] drm/nouveau: Add support for SLCG for Kepler2 Date: Thu, 25 Jan 2018 22:35:06 -0500 Message-Id: <20180126033607.7682-5-lyude@redhat.com> In-Reply-To: <20180126033607.7682-1-lyude@redhat.com> References: <20180126033607.7682-1-lyude@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org That's right, there's still more power saving to go! Starting with kepler 2, nvidia hardware has an additional level of clockgating known as second level clockgating. The details of this are not exact, but it seems to work by waiting for a collection of dependent hardware blocks to be gated before taking affect. As with the previous series, this results in another noticeable drop in power consumption and is programmed in the same manner. Signed-off-by: Lyude Paul --- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c | 93 ++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c index 38d3328e45f1..5ded29c790dd 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c @@ -187,6 +187,87 @@ gk110_clkgate_blcg_init_gpc_mp_0[] = { {} }; +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_main_0[] = { + { 0x4041f4, 1, 0x00000000 }, + { 0x409894, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_unk_0[] = { + { 0x406004, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_sked_0[] = { + { 0x407004, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_gpc_ctxctl_0[] = { + { 0x41a894, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_gpc_unk_0[] = { + { 0x418504, 1, 0x00000000 }, + { 0x41860c, 1, 0x00000000 }, + { 0x41868c, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_gpc_esetup_0[] = { + { 0x41882c, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_gpc_zcull_0[] = { + { 0x418974, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_gpc_l1c_0[] = { + { 0x419cd8, 2, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_gpc_unk_1[] = { + { 0x419c74, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_gpc_mp_0[] = { + { 0x419fd4, 1, 0x00004a4a }, + { 0x419fdc, 1, 0x00000014 }, + { 0x419fe4, 1, 0x00000000 }, + { 0x419ff4, 1, 0x00001724 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_gpc_ppc_0[] = { + { 0x41be2c, 1, 0x00000000 }, + {} +}; + +const struct nvkm_therm_clkgate_init +gk110_clkgate_slcg_init_pcounter_0[] = { + { 0x1be018, 1, 0x000001ff }, + { 0x1bc018, 1, 0x000001ff }, + { 0x1b8018, 1, 0x000001ff }, + { 0x1b4124, 1, 0x00000000 }, + {} +}; + const struct nvkm_therm_clkgate_pack gk110_clkgate_pack[] = { { gk104_clkgate_blcg_init_main_0 }, @@ -214,6 +295,18 @@ gk110_clkgate_pack[] = { { gk104_clkgate_blcg_init_rop_0 }, { gk104_clkgate_blcg_init_rop_crop_0 }, { gk104_clkgate_blcg_init_pxbar_0 }, + { gk110_clkgate_slcg_init_main_0 }, + { gk110_clkgate_slcg_init_unk_0 }, + { gk110_clkgate_slcg_init_sked_0 }, + { gk110_clkgate_slcg_init_gpc_ctxctl_0 }, + { gk110_clkgate_slcg_init_gpc_unk_0 }, + { gk110_clkgate_slcg_init_gpc_esetup_0 }, + { gk110_clkgate_slcg_init_gpc_zcull_0 }, + { gk110_clkgate_slcg_init_gpc_l1c_0 }, + { gk110_clkgate_slcg_init_gpc_unk_1 }, + { gk110_clkgate_slcg_init_gpc_mp_0 }, + { gk110_clkgate_slcg_init_gpc_ppc_0 }, + { gk110_clkgate_slcg_init_pcounter_0 }, {} }; -- 2.14.3