From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: Re: [PATCH v6] drm/msm/a6xx: Add support for an interconnect path Date: Fri, 18 Jan 2019 16:27:47 -0700 Message-ID: <20190118232746.GF4140@jcrouse1-lnx.qualcomm.com> References: <1547843058-27933-1-git-send-email-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Evan Green Cc: LKML , Kees Cook , Jonathan Marek , David Airlie , linux-arm-msm , Sharat Masetty , Doug Anderson , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Bjorn Andersson , Rob Clark , Mamta Shukla , Daniel Vetter , Andy Gross , Colin Ian King , Stephen Boyd , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Georgi Djakov , linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gRnJpLCBKYW4gMTgsIDIwMTkgYXQgMDM6MDQ6MzRQTSAtMDgwMCwgRXZhbiBHcmVlbiB3cm90 ZToKPiBPbiBGcmksIEphbiAxOCwgMjAxOSBhdCAxMjoyNCBQTSBKb3JkYW4gQ3JvdXNlIDxqY3Jv dXNlQGNvZGVhdXJvcmEub3JnPiB3cm90ZToKPiA+Cj4gPiBUcnkgdG8gZ2V0IHRoZSBpbnRlcmNv bm5lY3QgcGF0aCBmb3IgdGhlIEdQVSBhbmQgdm90ZSBmb3IgdGhlIG1heGltdW0KPiA+IGJhbmR3 aWR0aCB0byBzdXBwb3J0IGFsbCBmcmVxdWVuY2llcy4gVGhpcyBpcyBuZWVkZWQgZm9yIHBlcmZv cm1hbmNlLgo+ID4gTGF0ZXIgd2Ugd2lsbCB3YW50IHRvIHNjYWxlIHRoZSBiYW5kd2lkdGggYmFz ZWQgb24gdGhlIGZyZXF1ZW5jeSB0bwo+ID4gYWxzbyBvcHRpbWl6ZSBmb3IgcG93ZXIgYnV0IHRo YXQgd2lsbCByZXF1aXJlIHNvbWUgZGV2aWNlIHRyZWUKPiA+IGluZnJhc3RydWN0dXJlIHRoYXQg ZG9lcyBub3QgeWV0IGV4aXN0Lgo+ID4KPiA+IHY2OiB1c2UgaWNjX3NldF9idygpIGluc3RlYWQg b2YgaWNjX3NldCgpCj4gPiB2NTogUmVtb3ZlIGhhcmRjb2RlZCBpbnRlcmNvbm5lY3QgbmFtZSBh bmQganVzdCB1c2UgdGhlIGRlZmF1bHQKPiA+IHY0OiBEb24ndCB1c2UgYSBwb3J0IHN0cmluZyBh dCBhbGwgdG8gc2tpcCB0aGUgbmVlZCBmb3IgbmFtZXMgaW4gdGhlIERUCj4gPiB2MzogVXNlIG1h Y3JvcyBhbmQgY2hhbmdlIHBvcnQgc3RyaW5nIHBlciBHZW9yZ2kgRGpha292Cj4gPgo+ID4gU2ln bmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4KPiA+IC0t LQo+ID4KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWcgICAgICAgICAgICAgfCAgMSAr Cj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9nbXUuYyAgIHwgMjAgKysrKysr KysrKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1 LmMgfCAgOSArKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaCAgICAg ICAgICAgfCAgMyArKysKPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKPiA+ Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnIGIvZHJpdmVycy9n cHUvZHJtL21zbS9LY29uZmlnCj4gPiBpbmRleCBjZjU0OWYxLi43OGM5ZTVhNSAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vS2NvbmZpZwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9LY29uZmlnCj4gPiBAQCAtNSw2ICs1LDcgQEAgY29uZmlnIERSTV9NU00KPiA+ICAg ICAgICAgZGVwZW5kcyBvbiBBUkNIX1FDT00gfHwgU09DX0lNWDUgfHwgKEFSTSAmJiBDT01QSUxF X1RFU1QpCj4gPiAgICAgICAgIGRlcGVuZHMgb24gT0YgJiYgQ09NTU9OX0NMSwo+ID4gICAgICAg ICBkZXBlbmRzIG9uIE1NVQo+ID4gKyAgICAgICBkZXBlbmRzIG9uIElOVEVSQ09OTkVDVCB8fCAh SU5URVJDT05ORUNUCj4gPiAgICAgICAgIHNlbGVjdCBRQ09NX01EVF9MT0FERVIgaWYgQVJDSF9R Q09NCj4gPiAgICAgICAgIHNlbGVjdCBSRUdVTEFUT1IKPiA+ICAgICAgICAgc2VsZWN0IERSTV9L TVNfSEVMUEVSCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4 eF9nbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ211LmMKPiA+IGluZGV4 IDViZWI4M2QuLmM0OGZlNDYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Fk cmVuby9hNnh4X2dtdS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4 X2dtdS5jCj4gPiBAQCAtMiw2ICsyLDcgQEAKPiA+ICAvKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAx OCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKi8KPiA+Cj4gPiAg I2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9pbnRlcmNvbm5lY3Qu aD4KPiA+ICAjaW5jbHVkZSA8bGludXgvcG1fb3BwLmg+Cj4gPiAgI2luY2x1ZGUgPHNvYy9xY29t L2NtZC1kYi5oPgo+ID4KPiA+IEBAIC04NCw2ICs4NSw5IEBAIGJvb2wgYTZ4eF9nbXVfZ3hfaXNf b24oc3RydWN0IGE2eHhfZ211ICpnbXUpCj4gPgo+ID4gIHN0YXRpYyB2b2lkIF9fYTZ4eF9nbXVf c2V0X2ZyZXEoc3RydWN0IGE2eHhfZ211ICpnbXUsIGludCBpbmRleCkKPiA+ICB7Cj4gPiArICAg ICAgIHN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUgPSBjb250YWluZXJfb2YoZ211LCBzdHJ1Y3Qg YTZ4eF9ncHUsIGdtdSk7Cj4gPiArICAgICAgIHN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1 ID0gJmE2eHhfZ3B1LT5iYXNlOwo+ID4gKyAgICAgICBzdHJ1Y3QgbXNtX2dwdSAqZ3B1ID0gJmFk cmVub19ncHUtPmJhc2U7Cj4gPiAgICAgICAgIGludCByZXQ7Cj4gPgo+ID4gICAgICAgICBnbXVf d3JpdGUoZ211LCBSRUdfQTZYWF9HTVVfRENWU19BQ0tfT1BUSU9OLCAwKTsKPiA+IEBAIC0xMDYs NiArMTEwLDEyIEBAIHN0YXRpYyB2b2lkIF9fYTZ4eF9nbXVfc2V0X2ZyZXEoc3RydWN0IGE2eHhf Z211ICpnbXUsIGludCBpbmRleCkKPiA+ICAgICAgICAgICAgICAgICBkZXZfZXJyKGdtdS0+ZGV2 LCAiR01VIHNldCBHUFUgZnJlcXVlbmN5IGVycm9yOiAlZFxuIiwgcmV0KTsKPiA+Cj4gPiAgICAg ICAgIGdtdS0+ZnJlcSA9IGdtdS0+Z3B1X2ZyZXFzW2luZGV4XTsKPiA+ICsKPiA+ICsgICAgICAg LyoKPiA+ICsgICAgICAgICogRXZlbnR1YWxseSB3ZSB3aWxsIHdhbnQgdG8gc2NhbGUgdGhlIHBh dGggdm90ZSB3aXRoIHRoZSBmcmVxdWVuY3kgYnV0Cj4gPiArICAgICAgICAqIGZvciBub3cgbGVh dmUgaXQgYXQgbWF4IHNvIHRoYXQgdGhlIHBlcmZvcm1hbmNlIGlzIG5vbWluYWwuCj4gPiArICAg ICAgICAqLwo+ID4gKyAgICAgICBpY2Nfc2V0X2J3KGdwdS0+aWNjX3BhdGgsIDAsIE1CcHNfdG9f aWNjKDcyMTYpKTsKPiA+ICB9Cj4gPgo+ID4gIHZvaWQgYTZ4eF9nbXVfc2V0X2ZyZXEoc3RydWN0 IG1zbV9ncHUgKmdwdSwgdW5zaWduZWQgbG9uZyBmcmVxKQo+ID4gQEAgLTcwNSw2ICs3MTUsOCBA QCBpbnQgYTZ4eF9nbXVfcmVzZXQoc3RydWN0IGE2eHhfZ3B1ICphNnh4X2dwdSkKPiA+Cj4gPiAg aW50IGE2eHhfZ211X3Jlc3VtZShzdHJ1Y3QgYTZ4eF9ncHUgKmE2eHhfZ3B1KQo+ID4gIHsKPiA+ ICsgICAgICAgc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSAmYTZ4eF9ncHUtPmJhc2U7 Cj4gPiArICAgICAgIHN0cnVjdCBtc21fZ3B1ICpncHUgPSAmYWRyZW5vX2dwdS0+YmFzZTsKPiA+ ICAgICAgICAgc3RydWN0IGE2eHhfZ211ICpnbXUgPSAmYTZ4eF9ncHUtPmdtdTsKPiA+ICAgICAg ICAgaW50IHN0YXR1cywgcmV0Owo+ID4KPiA+IEBAIC03MjAsNiArNzMyLDkgQEAgaW50IGE2eHhf Z211X3Jlc3VtZShzdHJ1Y3QgYTZ4eF9ncHUgKmE2eHhfZ3B1KQo+ID4gICAgICAgICBpZiAocmV0 KQo+ID4gICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ID4KPiA+ICsgICAgICAgLyogU2V0IHRo ZSBidXMgcXVvdGEgdG8gYSByZWFzb25hYmxlIHZhbHVlIGZvciBib290ICovCj4gPiArICAgICAg IGljY19zZXRfYncoZ3B1LT5pY2NfcGF0aCwgMCwgTUJwc190b19pY2MoMzA3MikpOwo+IAo+IERv ZXMgdGhlIGNvbW1lbnQgbWVudGlvbiBib290IGJlY2F1c2UgdGhpcyByZXN1bWUgY2FsbCBoYXBw ZW5zIGR1cmluZwo+IGluaXQ/CgpDb3JyZWN0LiBCb290IHJlZmVycyB0byB0aGUgR01VIGluIHRo aXMgY29udGV4dC4KCj4gSG93IGNvbWUgdGhpcyBudW1iZXIgaXMgZGlmZmVyZW50IGZyb20gdGhl IG9uZSBpbiBfX2E2eHhfZ211X3NldF9mcmVxPwoKSWYgeW91IG5ldmVyIHJlcXVlc3QgYSBidXMg cXVvdGEgZnJvbSB0aGUga2VybmVsIHRoZSBzdWNrZXIgaXMgaG9ycmlibHkKcGFpbmZ1bGx5IHNs b3cuIEknbSBub3Qgc3VyZSBpZiB0aGF0IGlzIGp1c3QgdGhlIGRlZmF1bHQgcmVzZXQgdmFsdWUg b2YKdGhlIHJlZ2lzdGVycyBvciBpZiB0aGUgYm9vdGxvYWRlciBpcyBkb2luZyBzb21ldGhpbmcu IEluIGFueSBldmVudAp0aGUgR01VIGRvZXNuJ3QgYWx3YXlzIGluaXRpYWxpemUgaWYgeW91IHRy eSB0byBicmluZyBpdCB1cCB3aXRoIHRoZQpkZWZhdWx0IGJ1cyBzZXR0aW5ncyBzbyB3ZSBzZXQg aXQgdG8gYSAicmVhc29uYWJsZSIgcXVvdGEgZm9yIHRoZSAKaW5pdCBzZXF1ZW5jZS4gSSBhZG1p dCBJIGRpZG4ndCBjb21lIHVwIHdpdGggdGhlc2UgbnVtYmVycyBvbiBteSBvd247CnNvbWUgcG9v ciBhbm9ueW1vdXMgc291bCBkZWJ1Z2dlZCB0aGlzIG9uIHRoZSBkb3duc3RyZWFtIGtlcm5lbCBh bmQKSSBqdXN0IHN0b2xlIHRoZSBzYW1lIHBhcmFtZXRlcnMuCgpBcyBmb3IgX2E2eHhfZ211X3Nl dF9mcmVxKCkgZXZlbnR1YWxseSB3ZSdsbCBhZ3JlZSBvbiBhIHdheSB0byBjb21tdW5pY2F0ZQp0 aGUgYnVzIGJhbmR3aWR0aCBpbiB0aGUgb3BwIHNldHRpbmdzIGFuZCB3ZSdsbCBiZSBhYmxlIHRv IGFkanVzdCB0aGUgcXVvdGEKYmFzZWQgb24gdGhlIGZyZXF1ZW5jeSB0byBzYXZlIHBvd2VyIHNv IHRoYXQncyB3aHkgdGhlIGNvZGUgaXMgb3JnYW5pemVkIHRoZSB3YXkKaXQgaXMgc28gdGhhdCBh Nnh4X2dtdV9zZXRfZnJlcSgpIHdvbid0IGhhdmUgdG8gYmUgbWFzc2l2ZWx5IGNoYW5nZWQgbGF0 ZXIuCgo+IEFsc28sIHlvdSdyZSBzZXR0aW5nIGFuIGF2ZXJhZ2UgYmFuZHdpZHRoIG9mIDAsIEkK PiBndWVzcyB5b3UgZG9uJ3Qga25vdyByZWFsbHkgd2hhdCB5b3VyIGF2ZXJhZ2UgaXMsIGFuZCB0 aGUgaGFyZHdhcmUgaXMKPiBmaW5lIHdpdGggdGhhdCBzZXR0aW5nLiBJcyB0aGF0IHRydWU/CgpZ ZXMsIHdlIG9ubHkgc2V0IHRoZSBpbnN0YW50YW5lb3VzIGJhbmR3aWR0aC4KCj4gLUV2YW4KCkpv cmRhbgoKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJl ciBvZiBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUg UHJvamVjdApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpG cmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K 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=-9.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT autolearn=unavailable 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 A71AAC5AE5E for ; Fri, 18 Jan 2019 23:28:03 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 7232E20823 for ; Fri, 18 Jan 2019 23:28:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kayfYOQJ"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="eLRvCfr9"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="SpS1WvEK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7232E20823 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PcitQJLXIS00Pn1QisWalpIh2+fUKl+zLBA07V6HZ1Q=; b=kayfYOQJEfTzZr eCGxmj+B2Q1ANIiv6tWw6Df2c4fCe8V2AUTU7KTraWsig1TsnwuhddV5+dMlV78BGDZ8MhqxnxByV wHBoeHl5vCkL6LLiPvKTZe8VQgg2NqbYb+0fl8WlgEcTOVJEMzGwpHg1OnAzQ0ezpIDjI8T48O0bO XllmXyEDhf+EmHFKYH9NLwNN/E7ByqWYtVXoB3znpe0p5G+uMKBjbL4KeIBRRCFzrHpf9cqzPDOSB nFI2ZJv4cF29QGU/swhV7oOe3qLxnVaYBK0ERg5+nOdXqRsaZX5v0VpxWEvcdLtJRQhOd33JwddtB 3kJfSho0KBDkVGoo4Ncg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gkdYJ-00085v-WA; Fri, 18 Jan 2019 23:27:56 +0000 Received: from smtp.codeaurora.org ([198.145.29.96]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gkdYG-00083b-7H for linux-arm-kernel@lists.infradead.org; Fri, 18 Jan 2019 23:27:53 +0000 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 99A426079B; Fri, 18 Jan 2019 23:27:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1547854071; bh=OiUV1qeagEbwOeJE3C1sCGOlMM6LWQBJhQHXXsYtRFs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=eLRvCfr9ftUObVweJ801Yjlv70KT7H2h/exnMXChRnbgm6WjjZBV4WG2YMqj0TruQ x0wLIG+pjOkxbn436CozPw4FK+DwVcbnbRZCKditQMIr15cy1805E2BueEHSZP3ZKc qLmjOoo0Mgvz3b+96yY7Aj8cejzT6Q0FHgsY8zaA= Received: from jcrouse1-lnx.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: jcrouse@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id CC5B360388; Fri, 18 Jan 2019 23:27:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1547854070; bh=OiUV1qeagEbwOeJE3C1sCGOlMM6LWQBJhQHXXsYtRFs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=SpS1WvEKvVoFvCwQhhSk4e3sGGKz/NuiykcYLlyOY8WTJYMZdPcrzDVQa9mc/VaFv b0GOva/xJI/8vQKgLp1CO1XULTPNxFVB51FY0OBexEnjlakph0iwzCfzr2q7LU71TT zwQ8MBpon+CcohCok8SNflLlData2nsqO+LOvFl8= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org CC5B360388 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=jcrouse@codeaurora.org Date: Fri, 18 Jan 2019 16:27:47 -0700 From: Jordan Crouse To: Evan Green Subject: Re: [PATCH v6] drm/msm/a6xx: Add support for an interconnect path Message-ID: <20190118232746.GF4140@jcrouse1-lnx.qualcomm.com> Mail-Followup-To: Evan Green , freedreno@lists.freedesktop.org, linux-arm-msm , Doug Anderson , Bjorn Andersson , Andy Gross , Georgi Djakov , linux-arm-kernel@lists.infradead.org, Stephen Boyd , Kees Cook , Colin Ian King , Sharat Masetty , dri-devel@lists.freedesktop.org, LKML , Rob Clark , David Airlie , Jonathan Marek , Mamta Shukla , Daniel Vetter References: <1547843058-27933-1-git-send-email-jcrouse@codeaurora.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190118_152752_308797_7BE6B71F X-CRM114-Status: GOOD ( 33.19 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: LKML , Kees Cook , Jonathan Marek , David Airlie , linux-arm-msm , Sharat Masetty , Doug Anderson , dri-devel@lists.freedesktop.org, Bjorn Andersson , Rob Clark , Mamta Shukla , Daniel Vetter , Andy Gross , Colin Ian King , Stephen Boyd , freedreno@lists.freedesktop.org, Georgi Djakov , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Jan 18, 2019 at 03:04:34PM -0800, Evan Green wrote: > On Fri, Jan 18, 2019 at 12:24 PM Jordan Crouse wrote: > > > > Try to get the interconnect path for the GPU and vote for the maximum > > bandwidth to support all frequencies. This is needed for performance. > > Later we will want to scale the bandwidth based on the frequency to > > also optimize for power but that will require some device tree > > infrastructure that does not yet exist. > > > > v6: use icc_set_bw() instead of icc_set() > > v5: Remove hardcoded interconnect name and just use the default > > v4: Don't use a port string at all to skip the need for names in the DT > > v3: Use macros and change port string per Georgi Djakov > > > > Signed-off-by: Jordan Crouse > > --- > > > > drivers/gpu/drm/msm/Kconfig | 1 + > > drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 20 ++++++++++++++++++++ > > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 9 +++++++++ > > drivers/gpu/drm/msm/msm_gpu.h | 3 +++ > > 4 files changed, 33 insertions(+) > > > > diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig > > index cf549f1..78c9e5a5 100644 > > --- a/drivers/gpu/drm/msm/Kconfig > > +++ b/drivers/gpu/drm/msm/Kconfig > > @@ -5,6 +5,7 @@ config DRM_MSM > > depends on ARCH_QCOM || SOC_IMX5 || (ARM && COMPILE_TEST) > > depends on OF && COMMON_CLK > > depends on MMU > > + depends on INTERCONNECT || !INTERCONNECT > > select QCOM_MDT_LOADER if ARCH_QCOM > > select REGULATOR > > select DRM_KMS_HELPER > > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > > index 5beb83d..c48fe46 100644 > > --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > > @@ -2,6 +2,7 @@ > > /* Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. */ > > > > #include > > +#include > > #include > > #include > > > > @@ -84,6 +85,9 @@ bool a6xx_gmu_gx_is_on(struct a6xx_gmu *gmu) > > > > static void __a6xx_gmu_set_freq(struct a6xx_gmu *gmu, int index) > > { > > + struct a6xx_gpu *a6xx_gpu = container_of(gmu, struct a6xx_gpu, gmu); > > + struct adreno_gpu *adreno_gpu = &a6xx_gpu->base; > > + struct msm_gpu *gpu = &adreno_gpu->base; > > int ret; > > > > gmu_write(gmu, REG_A6XX_GMU_DCVS_ACK_OPTION, 0); > > @@ -106,6 +110,12 @@ static void __a6xx_gmu_set_freq(struct a6xx_gmu *gmu, int index) > > dev_err(gmu->dev, "GMU set GPU frequency error: %d\n", ret); > > > > gmu->freq = gmu->gpu_freqs[index]; > > + > > + /* > > + * Eventually we will want to scale the path vote with the frequency but > > + * for now leave it at max so that the performance is nominal. > > + */ > > + icc_set_bw(gpu->icc_path, 0, MBps_to_icc(7216)); > > } > > > > void a6xx_gmu_set_freq(struct msm_gpu *gpu, unsigned long freq) > > @@ -705,6 +715,8 @@ int a6xx_gmu_reset(struct a6xx_gpu *a6xx_gpu) > > > > int a6xx_gmu_resume(struct a6xx_gpu *a6xx_gpu) > > { > > + struct adreno_gpu *adreno_gpu = &a6xx_gpu->base; > > + struct msm_gpu *gpu = &adreno_gpu->base; > > struct a6xx_gmu *gmu = &a6xx_gpu->gmu; > > int status, ret; > > > > @@ -720,6 +732,9 @@ int a6xx_gmu_resume(struct a6xx_gpu *a6xx_gpu) > > if (ret) > > goto out; > > > > + /* Set the bus quota to a reasonable value for boot */ > > + icc_set_bw(gpu->icc_path, 0, MBps_to_icc(3072)); > > Does the comment mention boot because this resume call happens during > init? Correct. Boot refers to the GMU in this context. > How come this number is different from the one in __a6xx_gmu_set_freq? If you never request a bus quota from the kernel the sucker is horribly painfully slow. I'm not sure if that is just the default reset value of the registers or if the bootloader is doing something. In any event the GMU doesn't always initialize if you try to bring it up with the default bus settings so we set it to a "reasonable" quota for the init sequence. I admit I didn't come up with these numbers on my own; some poor anonymous soul debugged this on the downstream kernel and I just stole the same parameters. As for _a6xx_gmu_set_freq() eventually we'll agree on a way to communicate the bus bandwidth in the opp settings and we'll be able to adjust the quota based on the frequency to save power so that's why the code is organized the way it is so that a6xx_gmu_set_freq() won't have to be massively changed later. > Also, you're setting an average bandwidth of 0, I > guess you don't know really what your average is, and the hardware is > fine with that setting. Is that true? Yes, we only set the instantaneous bandwidth. > -Evan Jordan -- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel 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.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_MUTT 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 1E577C5AE5E for ; Fri, 18 Jan 2019 23:27:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CF86920823 for ; Fri, 18 Jan 2019 23:27:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="eLRvCfr9"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="SpS1WvEK" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730121AbfARX1x (ORCPT ); Fri, 18 Jan 2019 18:27:53 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:37004 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729780AbfARX1x (ORCPT ); Fri, 18 Jan 2019 18:27:53 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id A7B136081E; Fri, 18 Jan 2019 23:27:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1547854071; bh=OiUV1qeagEbwOeJE3C1sCGOlMM6LWQBJhQHXXsYtRFs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=eLRvCfr9ftUObVweJ801Yjlv70KT7H2h/exnMXChRnbgm6WjjZBV4WG2YMqj0TruQ x0wLIG+pjOkxbn436CozPw4FK+DwVcbnbRZCKditQMIr15cy1805E2BueEHSZP3ZKc qLmjOoo0Mgvz3b+96yY7Aj8cejzT6Q0FHgsY8zaA= Received: from jcrouse1-lnx.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: jcrouse@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id CC5B360388; Fri, 18 Jan 2019 23:27:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1547854070; bh=OiUV1qeagEbwOeJE3C1sCGOlMM6LWQBJhQHXXsYtRFs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=SpS1WvEKvVoFvCwQhhSk4e3sGGKz/NuiykcYLlyOY8WTJYMZdPcrzDVQa9mc/VaFv b0GOva/xJI/8vQKgLp1CO1XULTPNxFVB51FY0OBexEnjlakph0iwzCfzr2q7LU71TT zwQ8MBpon+CcohCok8SNflLlData2nsqO+LOvFl8= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org CC5B360388 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=jcrouse@codeaurora.org Date: Fri, 18 Jan 2019 16:27:47 -0700 From: Jordan Crouse To: Evan Green Cc: freedreno@lists.freedesktop.org, linux-arm-msm , Doug Anderson , Bjorn Andersson , Andy Gross , Georgi Djakov , linux-arm-kernel@lists.infradead.org, Stephen Boyd , Kees Cook , Colin Ian King , Sharat Masetty , dri-devel@lists.freedesktop.org, LKML , Rob Clark , David Airlie , Jonathan Marek , Mamta Shukla , Daniel Vetter Subject: Re: [PATCH v6] drm/msm/a6xx: Add support for an interconnect path Message-ID: <20190118232746.GF4140@jcrouse1-lnx.qualcomm.com> Mail-Followup-To: Evan Green , freedreno@lists.freedesktop.org, linux-arm-msm , Doug Anderson , Bjorn Andersson , Andy Gross , Georgi Djakov , linux-arm-kernel@lists.infradead.org, Stephen Boyd , Kees Cook , Colin Ian King , Sharat Masetty , dri-devel@lists.freedesktop.org, LKML , Rob Clark , David Airlie , Jonathan Marek , Mamta Shukla , Daniel Vetter References: <1547843058-27933-1-git-send-email-jcrouse@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 18, 2019 at 03:04:34PM -0800, Evan Green wrote: > On Fri, Jan 18, 2019 at 12:24 PM Jordan Crouse wrote: > > > > Try to get the interconnect path for the GPU and vote for the maximum > > bandwidth to support all frequencies. This is needed for performance. > > Later we will want to scale the bandwidth based on the frequency to > > also optimize for power but that will require some device tree > > infrastructure that does not yet exist. > > > > v6: use icc_set_bw() instead of icc_set() > > v5: Remove hardcoded interconnect name and just use the default > > v4: Don't use a port string at all to skip the need for names in the DT > > v3: Use macros and change port string per Georgi Djakov > > > > Signed-off-by: Jordan Crouse > > --- > > > > drivers/gpu/drm/msm/Kconfig | 1 + > > drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 20 ++++++++++++++++++++ > > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 9 +++++++++ > > drivers/gpu/drm/msm/msm_gpu.h | 3 +++ > > 4 files changed, 33 insertions(+) > > > > diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig > > index cf549f1..78c9e5a5 100644 > > --- a/drivers/gpu/drm/msm/Kconfig > > +++ b/drivers/gpu/drm/msm/Kconfig > > @@ -5,6 +5,7 @@ config DRM_MSM > > depends on ARCH_QCOM || SOC_IMX5 || (ARM && COMPILE_TEST) > > depends on OF && COMMON_CLK > > depends on MMU > > + depends on INTERCONNECT || !INTERCONNECT > > select QCOM_MDT_LOADER if ARCH_QCOM > > select REGULATOR > > select DRM_KMS_HELPER > > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > > index 5beb83d..c48fe46 100644 > > --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > > @@ -2,6 +2,7 @@ > > /* Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. */ > > > > #include > > +#include > > #include > > #include > > > > @@ -84,6 +85,9 @@ bool a6xx_gmu_gx_is_on(struct a6xx_gmu *gmu) > > > > static void __a6xx_gmu_set_freq(struct a6xx_gmu *gmu, int index) > > { > > + struct a6xx_gpu *a6xx_gpu = container_of(gmu, struct a6xx_gpu, gmu); > > + struct adreno_gpu *adreno_gpu = &a6xx_gpu->base; > > + struct msm_gpu *gpu = &adreno_gpu->base; > > int ret; > > > > gmu_write(gmu, REG_A6XX_GMU_DCVS_ACK_OPTION, 0); > > @@ -106,6 +110,12 @@ static void __a6xx_gmu_set_freq(struct a6xx_gmu *gmu, int index) > > dev_err(gmu->dev, "GMU set GPU frequency error: %d\n", ret); > > > > gmu->freq = gmu->gpu_freqs[index]; > > + > > + /* > > + * Eventually we will want to scale the path vote with the frequency but > > + * for now leave it at max so that the performance is nominal. > > + */ > > + icc_set_bw(gpu->icc_path, 0, MBps_to_icc(7216)); > > } > > > > void a6xx_gmu_set_freq(struct msm_gpu *gpu, unsigned long freq) > > @@ -705,6 +715,8 @@ int a6xx_gmu_reset(struct a6xx_gpu *a6xx_gpu) > > > > int a6xx_gmu_resume(struct a6xx_gpu *a6xx_gpu) > > { > > + struct adreno_gpu *adreno_gpu = &a6xx_gpu->base; > > + struct msm_gpu *gpu = &adreno_gpu->base; > > struct a6xx_gmu *gmu = &a6xx_gpu->gmu; > > int status, ret; > > > > @@ -720,6 +732,9 @@ int a6xx_gmu_resume(struct a6xx_gpu *a6xx_gpu) > > if (ret) > > goto out; > > > > + /* Set the bus quota to a reasonable value for boot */ > > + icc_set_bw(gpu->icc_path, 0, MBps_to_icc(3072)); > > Does the comment mention boot because this resume call happens during > init? Correct. Boot refers to the GMU in this context. > How come this number is different from the one in __a6xx_gmu_set_freq? If you never request a bus quota from the kernel the sucker is horribly painfully slow. I'm not sure if that is just the default reset value of the registers or if the bootloader is doing something. In any event the GMU doesn't always initialize if you try to bring it up with the default bus settings so we set it to a "reasonable" quota for the init sequence. I admit I didn't come up with these numbers on my own; some poor anonymous soul debugged this on the downstream kernel and I just stole the same parameters. As for _a6xx_gmu_set_freq() eventually we'll agree on a way to communicate the bus bandwidth in the opp settings and we'll be able to adjust the quota based on the frequency to save power so that's why the code is organized the way it is so that a6xx_gmu_set_freq() won't have to be massively changed later. > Also, you're setting an average bandwidth of 0, I > guess you don't know really what your average is, and the hardware is > fine with that setting. Is that true? Yes, we only set the instantaneous bandwidth. > -Evan Jordan -- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project