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_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 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 36E52C2D0C2 for ; Mon, 9 Dec 2019 05:21:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EE9C42071E for ; Mon, 9 Dec 2019 05:21:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="Z1dNkRmE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727003AbfLIFVt (ORCPT ); Mon, 9 Dec 2019 00:21:49 -0500 Received: from mailgw02.mediatek.com ([216.200.240.185]:57699 "EHLO mailgw02.mediatek.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725819AbfLIFVt (ORCPT ); Mon, 9 Dec 2019 00:21:49 -0500 X-Greylist: delayed 305 seconds by postgrey-1.27 at vger.kernel.org; Mon, 09 Dec 2019 00:21:49 EST X-UUID: 3b30d915fd7b42208660ceb3afcea103-20191208 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=/iuyPvsaVdzjThz3ynKNy7lY5Ed2c8DFHT3fXKOUa5U=; b=Z1dNkRmEe2z2l3kOcK9d8FTlDJw2ubJAmeq9VbT0g6x/0Y5I6m/etRAN4dKLpnxbmRupuoOhhpWSPHelafy+lvt3zFUk/taVJWkSfE133bQN62ck7CCe6eMrfPmrIyGXtyLdzrKdTd/9tVVxaifMMKYx9IbqjvkNmb3pmO+IBFA=; X-UUID: 3b30d915fd7b42208660ceb3afcea103-20191208 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 230616211; Sun, 08 Dec 2019 21:16:41 -0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 8 Dec 2019 21:16:53 -0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 9 Dec 2019 13:16:01 +0800 Message-ID: <1575868591.7013.5.camel@mtksdaap41> Subject: Re: [resend PATCH v6 03/12] drm/mediatek: Use regmap for register access From: CK Hu To: CC: , , , , , , , , , , , , , , , , , , , , , , , Date: Mon, 9 Dec 2019 13:16:31 +0800 In-Reply-To: <20191207224740.24536-4-matthias.bgg@kernel.org> References: <20191207224740.24536-1-matthias.bgg@kernel.org> <20191207224740.24536-4-matthias.bgg@kernel.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org SGksIE1hdHRoaWFzOg0KDQpPbiBTYXQsIDIwMTktMTItMDcgYXQgMjM6NDcgKzAxMDAsIG1hdHRo aWFzLmJnZ0BrZXJuZWwub3JnIHdyb3RlOg0KPiBGcm9tOiBNYXR0aGlhcyBCcnVnZ2VyIDxtYnJ1 Z2dlckBzdXNlLmNvbT4NCj4gDQo+IFRoZSBtbXN5cyBtZW1vcnkgc3BhY2UgaXMgc2hhcmVkIGJl dHdlZW4gdGhlIGRybSBhbmQgdGhlDQo+IGNsayBkcml2ZXIuIFVzZSByZWdtYXAgdG8gYWNjZXNz IGl0Lg0KDQpSZXZpZXdlZC1ieTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4NCg0KPiANCj4g U2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgQnJ1Z2dlciA8bWJydWdnZXJAc3VzZS5jb20+DQo+IFJl dmlld2VkLWJ5OiBQaGlsaXBwIFphYmVsIDxwLnphYmVsQHBlbmd1dHJvbml4LmRlPg0KPiAtLS0N Cj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYyB8ICA0ICstDQo+ICBk cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuYyAgfCA1MCArKysrKysrKysrKy0t LS0tLS0tLS0tLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaCAg fCAgNCArLQ0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgIHwgMTMg KystLS0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggIHwgIDIg Ky0NCj4gIDUgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0p DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jDQo+IGluZGV4IDM0 YTczMTc1NTc5MS4uMjU5ZTJmNGZhNWZhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fY3J0Yy5jDQo+IEBAIC0yNyw3ICsyNyw3IEBADQo+ICAgKiBAZW5hYmxlZDogcmVj b3JkcyB3aGV0aGVyIGNydGNfZW5hYmxlIHN1Y2NlZWRlZA0KPiAgICogQHBsYW5lczogYXJyYXkg b2YgNCBkcm1fcGxhbmUgc3RydWN0dXJlcywgb25lIGZvciBlYWNoIG92ZXJsYXkgcGxhbmUNCj4g ICAqIEBwZW5kaW5nX3BsYW5lczogd2hldGhlciBhbnkgcGxhbmUgaGFzIHBlbmRpbmcgY2hhbmdl cyB0byBiZSBhcHBsaWVkDQo+IC0gKiBAY29uZmlnX3JlZ3M6IG1lbW9yeSBtYXBwZWQgbW1zeXMg Y29uZmlndXJhdGlvbiByZWdpc3RlciBzcGFjZQ0KPiArICogQGNvbmZpZ19yZWdzOiByZWdtYXAg bWFwcGVkIG1tc3lzIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgc3BhY2UNCj4gICAqIEBtdXRleDog aGFuZGxlIHRvIG9uZSBvZiB0aGUgdGVuIGRpc3BfbXV0ZXggc3RyZWFtcw0KPiAgICogQGRkcF9j b21wX25yOiBudW1iZXIgb2YgY29tcG9uZW50cyBpbiBkZHBfY29tcA0KPiAgICogQGRkcF9jb21w OiBhcnJheSBvZiBwb2ludGVycyB0aGUgbXRrX2RkcF9jb21wIHN0cnVjdHVyZXMgdXNlZCBieSB0 aGlzIGNydGMNCj4gQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IG10a19kcm1fY3J0YyB7DQo+ICAJ dW5zaWduZWQgaW50CQkJbGF5ZXJfbnI7DQo+ICAJYm9vbAkJCQlwZW5kaW5nX3BsYW5lczsNCj4g IA0KPiAtCXZvaWQgX19pb21lbQkJCSpjb25maWdfcmVnczsNCj4gKwlzdHJ1Y3QgcmVnbWFwCQkJ KmNvbmZpZ19yZWdzOw0KPiAgCXN0cnVjdCBtdGtfZGlzcF9tdXRleAkJKm11dGV4Ow0KPiAgCXVu c2lnbmVkIGludAkJCWRkcF9jb21wX25yOw0KPiAgCXN0cnVjdCBtdGtfZGRwX2NvbXAJCSoqZGRw X2NvbXA7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k ZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jDQo+IGluZGV4IDgx MDZhNzFhNzQwNC4uYjc2NTE4MTIyM2U2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9kZHAuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9kZHAuYw0KPiBAQCAtMzMxLDYxICszMzEsNTMgQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBtdGtfZGRwX3NlbF9pbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsDQo+ICAJcmV0dXJuIHZh bHVlOw0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMgdm9pZCBtdGtfZGRwX3NvdXRfc2VsKHZvaWQgX19p b21lbSAqY29uZmlnX3JlZ3MsDQo+ICtzdGF0aWMgdm9pZCBtdGtfZGRwX3NvdXRfc2VsKHN0cnVj dCByZWdtYXAgKmNvbmZpZ19yZWdzLA0KPiAgCQkJICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBj dXIsDQo+ICAJCQkgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpDQo+ICB7DQo+ICAJaWYg KGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkg ew0KPiAtCQl3cml0ZWxfcmVsYXhlZChCTFNfVE9fRFNJX1JETUExX1RPX0RQSTEsDQo+IC0JCQkg ICAgICAgY29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05GSUdfT1VUX1NFTCk7DQo+ICsJCXJlZ21h cF93cml0ZShjb25maWdfcmVncywgRElTUF9SRUdfQ09ORklHX09VVF9TRUwsDQo+ICsJCQkJQkxT X1RPX0RTSV9SRE1BMV9UT19EUEkxKTsNCj4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX0JMUyAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0KPiAtCQl3cml0ZWxfcmVs YXhlZChCTFNfVE9fRFBJX1JETUExX1RPX0RTSSwNCj4gLQkJCSAgICAgICBjb25maWdfcmVncyAr IERJU1BfUkVHX0NPTkZJR19PVVRfU0VMKTsNCj4gLQkJd3JpdGVsX3JlbGF4ZWQoRFNJX1NFTF9J Tl9SRE1BLA0KPiAtCQkJICAgICAgIGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX0RTSV9T RUwpOw0KPiAtCQl3cml0ZWxfcmVsYXhlZChEUElfU0VMX0lOX0JMUywNCj4gLQkJCSAgICAgICBj b25maWdfcmVncyArIERJU1BfUkVHX0NPTkZJR19EUElfU0VMKTsNCj4gKwkJcmVnbWFwX3dyaXRl KGNvbmZpZ19yZWdzLCBESVNQX1JFR19DT05GSUdfT1VUX1NFTCwNCj4gKwkJCQlCTFNfVE9fRFBJ X1JETUExX1RPX0RTSSk7DQo+ICsJCXJlZ21hcF93cml0ZShjb25maWdfcmVncywgRElTUF9SRUdf Q09ORklHX0RTSV9TRUwsDQo+ICsJCQkJRFNJX1NFTF9JTl9SRE1BKTsNCj4gKwkJcmVnbWFwX3dy aXRlKGNvbmZpZ19yZWdzLCBESVNQX1JFR19DT05GSUdfRFBJX1NFTCwNCj4gKwkJCQlEUElfU0VM X0lOX0JMUyk7DQo+ICAJfQ0KPiAgfQ0KPiAgDQo+IC12b2lkIG10a19kZHBfYWRkX2NvbXBfdG9f cGF0aCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLA0KPiArdm9pZCBtdGtfZGRwX2FkZF9jb21w X3RvX3BhdGgoc3RydWN0IHJlZ21hcCAqY29uZmlnX3JlZ3MsDQo+ICAJCQkgICAgICBlbnVtIG10 a19kZHBfY29tcF9pZCBjdXIsDQo+ICAJCQkgICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0 KQ0KPiAgew0KPiAtCXVuc2lnbmVkIGludCBhZGRyLCB2YWx1ZSwgcmVnOw0KPiArCXVuc2lnbmVk IGludCBhZGRyLCB2YWx1ZTsNCj4gIA0KPiAgCXZhbHVlID0gbXRrX2RkcF9tb3V0X2VuKGN1ciwg bmV4dCwgJmFkZHIpOw0KPiAtCWlmICh2YWx1ZSkgew0KPiAtCQlyZWcgPSByZWFkbF9yZWxheGVk KGNvbmZpZ19yZWdzICsgYWRkcikgfCB2YWx1ZTsNCj4gLQkJd3JpdGVsX3JlbGF4ZWQocmVnLCBj b25maWdfcmVncyArIGFkZHIpOw0KPiAtCX0NCj4gKwlpZiAodmFsdWUpDQo+ICsJCXJlZ21hcF91 cGRhdGVfYml0cyhjb25maWdfcmVncywgYWRkciwgdmFsdWUsIHZhbHVlKTsNCj4gIA0KPiAgCW10 a19kZHBfc291dF9zZWwoY29uZmlnX3JlZ3MsIGN1ciwgbmV4dCk7DQo+ICANCj4gIAl2YWx1ZSA9 IG10a19kZHBfc2VsX2luKGN1ciwgbmV4dCwgJmFkZHIpOw0KPiAtCWlmICh2YWx1ZSkgew0KPiAt CQlyZWcgPSByZWFkbF9yZWxheGVkKGNvbmZpZ19yZWdzICsgYWRkcikgfCB2YWx1ZTsNCj4gLQkJ d3JpdGVsX3JlbGF4ZWQocmVnLCBjb25maWdfcmVncyArIGFkZHIpOw0KPiAtCX0NCj4gKwlpZiAo dmFsdWUpDQo+ICsJCXJlZ21hcF91cGRhdGVfYml0cyhjb25maWdfcmVncywgYWRkciwgdmFsdWUs IHZhbHVlKTsNCj4gIH0NCj4gIA0KPiAtdm9pZCBtdGtfZGRwX3JlbW92ZV9jb21wX2Zyb21fcGF0 aCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLA0KPiArdm9pZCBtdGtfZGRwX3JlbW92ZV9jb21w X2Zyb21fcGF0aChzdHJ1Y3QgcmVnbWFwICpjb25maWdfcmVncywNCj4gIAkJCQkgICBlbnVtIG10 a19kZHBfY29tcF9pZCBjdXIsDQo+ICAJCQkJICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCkN Cj4gIHsNCj4gLQl1bnNpZ25lZCBpbnQgYWRkciwgdmFsdWUsIHJlZzsNCj4gKwl1bnNpZ25lZCBp bnQgYWRkciwgdmFsdWU7DQo+ICANCj4gIAl2YWx1ZSA9IG10a19kZHBfbW91dF9lbihjdXIsIG5l eHQsICZhZGRyKTsNCj4gLQlpZiAodmFsdWUpIHsNCj4gLQkJcmVnID0gcmVhZGxfcmVsYXhlZChj b25maWdfcmVncyArIGFkZHIpICYgfnZhbHVlOw0KPiAtCQl3cml0ZWxfcmVsYXhlZChyZWcsIGNv bmZpZ19yZWdzICsgYWRkcik7DQo+IC0JfQ0KPiArCWlmICh2YWx1ZSkNCj4gKwkJcmVnbWFwX3Vw ZGF0ZV9iaXRzKGNvbmZpZ19yZWdzLCBhZGRyLCB2YWx1ZSwgMCk7DQo+ICANCj4gIAl2YWx1ZSA9 IG10a19kZHBfc2VsX2luKGN1ciwgbmV4dCwgJmFkZHIpOw0KPiAtCWlmICh2YWx1ZSkgew0KPiAt CQlyZWcgPSByZWFkbF9yZWxheGVkKGNvbmZpZ19yZWdzICsgYWRkcikgJiB+dmFsdWU7DQo+IC0J CXdyaXRlbF9yZWxheGVkKHJlZywgY29uZmlnX3JlZ3MgKyBhZGRyKTsNCj4gLQl9DQo+ICsJaWYg KHZhbHVlKQ0KPiArCQlyZWdtYXBfdXBkYXRlX2JpdHMoY29uZmlnX3JlZ3MsIGFkZHIsIHZhbHVl LCAwKTsNCj4gIH0NCj4gIA0KPiAgc3RydWN0IG10a19kaXNwX211dGV4ICptdGtfZGlzcF9tdXRl eF9nZXQoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaWQpDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2RkcC5oDQo+IGluZGV4IDgyN2JlNDI0YTE0OC4uMDFmZjhiNjg4 ODFmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAu aA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaA0KPiBAQCAt MTIsMTAgKzEyLDEwIEBAIHN0cnVjdCByZWdtYXA7DQo+ICBzdHJ1Y3QgZGV2aWNlOw0KPiAgc3Ry dWN0IG10a19kaXNwX211dGV4Ow0KPiAgDQo+IC12b2lkIG10a19kZHBfYWRkX2NvbXBfdG9fcGF0 aCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLA0KPiArdm9pZCBtdGtfZGRwX2FkZF9jb21wX3Rv X3BhdGgoc3RydWN0IHJlZ21hcCAqY29uZmlnX3JlZ3MsDQo+ICAJCQkgICAgICBlbnVtIG10a19k ZHBfY29tcF9pZCBjdXIsDQo+ICAJCQkgICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0KTsN Cj4gLXZvaWQgbXRrX2RkcF9yZW1vdmVfY29tcF9mcm9tX3BhdGgodm9pZCBfX2lvbWVtICpjb25m aWdfcmVncywNCj4gK3ZvaWQgbXRrX2RkcF9yZW1vdmVfY29tcF9mcm9tX3BhdGgoc3RydWN0IHJl Z21hcCAqY29uZmlnX3JlZ3MsDQo+ICAJCQkJICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLA0K PiAgCQkJCSAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpOw0KPiAgDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jDQo+IGluZGV4IDM1MmI4MWE3YTY3MC4uMjEwNDU1ZTlm NDZjIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYu Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiBAQCAt Niw2ICs2LDcgQEANCj4gIA0KPiAgI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPg0KPiAgI2lu Y2x1ZGUgPGxpbnV4L2lvbW11Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPg0K PiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJl c3MuaD4NCj4gICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPg0KPiBAQCAtNDg1LDcgKzQ4 Niw2IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQ0KPiAgew0KPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ICAJc3Ry dWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZTsNCj4gLQlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsN Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGU7DQo+ICAJc3RydWN0IGNvbXBvbmVudF9tYXRj aCAqbWF0Y2ggPSBOVUxMOw0KPiAgCWludCByZXQ7DQo+IEBAIC00OTksMTQgKzQ5OSw5IEBAIHN0 YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiAg CUlOSVRfV09SSygmcHJpdmF0ZS0+Y29tbWl0LndvcmssIG10a19hdG9taWNfd29yayk7DQo+ICAJ cHJpdmF0ZS0+ZGF0YSA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOw0KPiAgDQo+IC0J bWVtID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCj4g LQlwcml2YXRlLT5jb25maWdfcmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIG1lbSk7 DQo+IC0JaWYgKElTX0VSUihwcml2YXRlLT5jb25maWdfcmVncykpIHsNCj4gLQkJcmV0ID0gUFRS X0VSUihwcml2YXRlLT5jb25maWdfcmVncyk7DQo+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRv IGlvcmVtYXAgbW1zeXMtY29uZmlnIHJlc291cmNlOiAlZFxuIiwNCj4gLQkJCXJldCk7DQo+IC0J CXJldHVybiByZXQ7DQo+IC0JfQ0KPiArCXByaXZhdGUtPmNvbmZpZ19yZWdzID0gc3lzY29uX25v ZGVfdG9fcmVnbWFwKGRldi0+b2Zfbm9kZSk7DQo+ICsJaWYgKElTX0VSUihwcml2YXRlLT5jb25m aWdfcmVncykpDQo+ICsJCXJldHVybiBQVFJfRVJSKHByaXZhdGUtPmNvbmZpZ19yZWdzKTsNCj4g IA0KPiAgCS8qIEl0ZXJhdGUgb3ZlciBzaWJsaW5nIERJU1AgZnVuY3Rpb24gYmxvY2tzICovDQo+ ICAJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShkZXYtPm9mX25vZGUtPnBhcmVudCwgbm9kZSkgew0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiBpbmRleCBlMDNmZWExMmZm NTkuLjYzYTEyMTU3N2RjYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZHJ2LmgNCj4gQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IG10a19kcm1fcHJpdmF0ZSB7DQo+ICAN Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm11dGV4X25vZGU7DQo+ICAJc3RydWN0IGRldmljZSAq bXV0ZXhfZGV2Ow0KPiAtCXZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3M7DQo+ICsJc3RydWN0IHJl Z21hcCAqY29uZmlnX3JlZ3M7DQo+ICAJc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGVbRERQ X0NPTVBPTkVOVF9JRF9NQVhdOw0KPiAgCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmRkcF9jb21wW0RE UF9DT01QT05FTlRfSURfTUFYXTsNCj4gIAljb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9k YXRhICpkYXRhOw0KDQo= 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.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 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 5FC86C2BD09 for ; Mon, 9 Dec 2019 05:16:58 +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 31A56206D3 for ; Mon, 9 Dec 2019 05:16:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="m5q8fMp9"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="Z1dNkRmE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 31A56206D3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=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:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=l/TEUW5/F12rFbtzQZqE5TEoncCt/LkTYvh7lt/iz0Q=; b=m5q8fMp9eG+Rex 1u5NG1TFLCu2Lw43sMxf3zZLxO0xikoUANhoxJXQhNUAkhtgOrxUBLmNStkCNGr5whhgeT4DkqKO7 MGS6bk21RjS5mflTBHWYtbe7j0QZry37jPXHk6aC8bmmwd8YAMrrksfd/OIXZymcD70C7hqEMJzsR Cp0Yo+mO+2o8WFxd0lWW7c2NATSZy31gfXFqSNlP7c/aGkOuaqXrnnIqh1FJd8YZmIhmToB8pGJFo PFqUG+MgWbOEF2hgcx0Vvw9eZXs6frJzoBTiWU7OjvRsfPxa06whKrp7gETjYBHodr22zQD+WgRcM bdnE6Y7k04KJOLA1Febw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ieBPb-0007ss-0w; Mon, 09 Dec 2019 05:16:47 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1ieBPY-0007sE-0B; Mon, 09 Dec 2019 05:16:46 +0000 X-UUID: 6f4a2e17f9a044f7a97295bdac02cd62-20191208 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=/iuyPvsaVdzjThz3ynKNy7lY5Ed2c8DFHT3fXKOUa5U=; b=Z1dNkRmEe2z2l3kOcK9d8FTlDJw2ubJAmeq9VbT0g6x/0Y5I6m/etRAN4dKLpnxbmRupuoOhhpWSPHelafy+lvt3zFUk/taVJWkSfE133bQN62ck7CCe6eMrfPmrIyGXtyLdzrKdTd/9tVVxaifMMKYx9IbqjvkNmb3pmO+IBFA=; X-UUID: 6f4a2e17f9a044f7a97295bdac02cd62-20191208 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1544962341; Sun, 08 Dec 2019 21:16:41 -0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 8 Dec 2019 21:16:53 -0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 9 Dec 2019 13:16:01 +0800 Message-ID: <1575868591.7013.5.camel@mtksdaap41> Subject: Re: [resend PATCH v6 03/12] drm/mediatek: Use regmap for register access From: CK Hu To: Date: Mon, 9 Dec 2019 13:16:31 +0800 In-Reply-To: <20191207224740.24536-4-matthias.bgg@kernel.org> References: <20191207224740.24536-1-matthias.bgg@kernel.org> <20191207224740.24536-4-matthias.bgg@kernel.org> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191208_211644_047851_FA95C4BB X-CRM114-Status: GOOD ( 17.25 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, rdunlap@infradead.org, airlied@linux.ie, mturquette@baylibre.com, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, ulrich.hecht+renesas@gmail.com, linux-clk@vger.kernel.org, drinkcat@chromium.org, wens@csie.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, frank-w@public-files.de, sean.wang@mediatek.com, robh+dt@kernel.org, linux-mediatek@lists.infradead.org, hsinyi@chromium.org, linux-arm-kernel@lists.infradead.org, mbrugger@suse.com, sboyd@kernel.org, sean.wang@kernel.org, linux-kernel@vger.kernel.org, p.zabel@pengutronix.de, enric.balletbo@collabora.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Hi, Matthias: On Sat, 2019-12-07 at 23:47 +0100, matthias.bgg@kernel.org wrote: > From: Matthias Brugger > > The mmsys memory space is shared between the drm and the > clk driver. Use regmap to access it. Reviewed-by: CK Hu > > Signed-off-by: Matthias Brugger > Reviewed-by: Philipp Zabel > --- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 4 +- > drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 50 +++++++++++-------------- > drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 4 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 13 ++----- > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > 5 files changed, 30 insertions(+), 43 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 34a731755791..259e2f4fa5fa 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -27,7 +27,7 @@ > * @enabled: records whether crtc_enable succeeded > * @planes: array of 4 drm_plane structures, one for each overlay plane > * @pending_planes: whether any plane has pending changes to be applied > - * @config_regs: memory mapped mmsys configuration register space > + * @config_regs: regmap mapped mmsys configuration register space > * @mutex: handle to one of the ten disp_mutex streams > * @ddp_comp_nr: number of components in ddp_comp > * @ddp_comp: array of pointers the mtk_ddp_comp structures used by this crtc > @@ -43,7 +43,7 @@ struct mtk_drm_crtc { > unsigned int layer_nr; > bool pending_planes; > > - void __iomem *config_regs; > + struct regmap *config_regs; > struct mtk_disp_mutex *mutex; > unsigned int ddp_comp_nr; > struct mtk_ddp_comp **ddp_comp; > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > index 8106a71a7404..b765181223e6 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > @@ -331,61 +331,53 @@ static unsigned int mtk_ddp_sel_in(enum mtk_ddp_comp_id cur, > return value; > } > > -static void mtk_ddp_sout_sel(void __iomem *config_regs, > +static void mtk_ddp_sout_sel(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next) > { > if (cur == DDP_COMPONENT_BLS && next == DDP_COMPONENT_DSI0) { > - writel_relaxed(BLS_TO_DSI_RDMA1_TO_DPI1, > - config_regs + DISP_REG_CONFIG_OUT_SEL); > + regmap_write(config_regs, DISP_REG_CONFIG_OUT_SEL, > + BLS_TO_DSI_RDMA1_TO_DPI1); > } else if (cur == DDP_COMPONENT_BLS && next == DDP_COMPONENT_DPI0) { > - writel_relaxed(BLS_TO_DPI_RDMA1_TO_DSI, > - config_regs + DISP_REG_CONFIG_OUT_SEL); > - writel_relaxed(DSI_SEL_IN_RDMA, > - config_regs + DISP_REG_CONFIG_DSI_SEL); > - writel_relaxed(DPI_SEL_IN_BLS, > - config_regs + DISP_REG_CONFIG_DPI_SEL); > + regmap_write(config_regs, DISP_REG_CONFIG_OUT_SEL, > + BLS_TO_DPI_RDMA1_TO_DSI); > + regmap_write(config_regs, DISP_REG_CONFIG_DSI_SEL, > + DSI_SEL_IN_RDMA); > + regmap_write(config_regs, DISP_REG_CONFIG_DPI_SEL, > + DPI_SEL_IN_BLS); > } > } > > -void mtk_ddp_add_comp_to_path(void __iomem *config_regs, > +void mtk_ddp_add_comp_to_path(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next) > { > - unsigned int addr, value, reg; > + unsigned int addr, value; > > value = mtk_ddp_mout_en(cur, next, &addr); > - if (value) { > - reg = readl_relaxed(config_regs + addr) | value; > - writel_relaxed(reg, config_regs + addr); > - } > + if (value) > + regmap_update_bits(config_regs, addr, value, value); > > mtk_ddp_sout_sel(config_regs, cur, next); > > value = mtk_ddp_sel_in(cur, next, &addr); > - if (value) { > - reg = readl_relaxed(config_regs + addr) | value; > - writel_relaxed(reg, config_regs + addr); > - } > + if (value) > + regmap_update_bits(config_regs, addr, value, value); > } > > -void mtk_ddp_remove_comp_from_path(void __iomem *config_regs, > +void mtk_ddp_remove_comp_from_path(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next) > { > - unsigned int addr, value, reg; > + unsigned int addr, value; > > value = mtk_ddp_mout_en(cur, next, &addr); > - if (value) { > - reg = readl_relaxed(config_regs + addr) & ~value; > - writel_relaxed(reg, config_regs + addr); > - } > + if (value) > + regmap_update_bits(config_regs, addr, value, 0); > > value = mtk_ddp_sel_in(cur, next, &addr); > - if (value) { > - reg = readl_relaxed(config_regs + addr) & ~value; > - writel_relaxed(reg, config_regs + addr); > - } > + if (value) > + regmap_update_bits(config_regs, addr, value, 0); > } > > struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id) > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h > index 827be424a148..01ff8b68881f 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h > @@ -12,10 +12,10 @@ struct regmap; > struct device; > struct mtk_disp_mutex; > > -void mtk_ddp_add_comp_to_path(void __iomem *config_regs, > +void mtk_ddp_add_comp_to_path(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next); > -void mtk_ddp_remove_comp_from_path(void __iomem *config_regs, > +void mtk_ddp_remove_comp_from_path(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next); > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 352b81a7a670..210455e9f46c 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -6,6 +6,7 @@ > > #include > #include > +#include > #include > #include > #include > @@ -485,7 +486,6 @@ static int mtk_drm_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct mtk_drm_private *private; > - struct resource *mem; > struct device_node *node; > struct component_match *match = NULL; > int ret; > @@ -499,14 +499,9 @@ static int mtk_drm_probe(struct platform_device *pdev) > INIT_WORK(&private->commit.work, mtk_atomic_work); > private->data = of_device_get_match_data(dev); > > - mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - private->config_regs = devm_ioremap_resource(dev, mem); > - if (IS_ERR(private->config_regs)) { > - ret = PTR_ERR(private->config_regs); > - dev_err(dev, "Failed to ioremap mmsys-config resource: %d\n", > - ret); > - return ret; > - } > + private->config_regs = syscon_node_to_regmap(dev->of_node); > + if (IS_ERR(private->config_regs)) > + return PTR_ERR(private->config_regs); > > /* Iterate over sibling DISP function blocks */ > for_each_child_of_node(dev->of_node->parent, node) { > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > index e03fea12ff59..63a121577dcb 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > @@ -39,7 +39,7 @@ struct mtk_drm_private { > > struct device_node *mutex_node; > struct device *mutex_dev; > - void __iomem *config_regs; > + struct regmap *config_regs; > struct device_node *comp_node[DDP_COMPONENT_ID_MAX]; > struct mtk_ddp_comp *ddp_comp[DDP_COMPONENT_ID_MAX]; > const struct mtk_mmsys_driver_data *data; _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek 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.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 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 82C0FC43603 for ; Mon, 9 Dec 2019 05:16:57 +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 521EF206D3 for ; Mon, 9 Dec 2019 05:16:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="FFcF5WM1"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="Z1dNkRmE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 521EF206D3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com 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:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=n6cssy2mHK5pSzuEwldgqStU4qmlTGMjMrK0rILnU3I=; b=FFcF5WM18jY2Og 1bTC8Wl4HsemMB0kLwzaKnvdVXymbD8TApPZUTnP0pclqLZBWWLdOonPtoxmfy/2Uc557PjcgewL5 DYqMQGFF4xOy21zkapbGrKp4jNIKaBHgIThhGc8RiHgBM+pUxaSN1sKqx8yF8XRdS55tKwuvf6uLK MBSjSOeMRl8Yo1RWS3rOHnWUZQcR1PrGeJvwrPyibyV+HRFCw960+7mMRHFCKsxirD7X0zlE7oyz1 ZWkFCHoxUuF7WUZRLt67ySHb49JBfpL8v66CNKYRJHeJrKNovWn/BAlfAWiuOhpCicEqwrz1cp6q+ U/mvUF7x/ebRy5yNBFEA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ieBPc-0007tb-Dx; Mon, 09 Dec 2019 05:16:48 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1ieBPY-0007sE-0B; Mon, 09 Dec 2019 05:16:46 +0000 X-UUID: 6f4a2e17f9a044f7a97295bdac02cd62-20191208 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=/iuyPvsaVdzjThz3ynKNy7lY5Ed2c8DFHT3fXKOUa5U=; b=Z1dNkRmEe2z2l3kOcK9d8FTlDJw2ubJAmeq9VbT0g6x/0Y5I6m/etRAN4dKLpnxbmRupuoOhhpWSPHelafy+lvt3zFUk/taVJWkSfE133bQN62ck7CCe6eMrfPmrIyGXtyLdzrKdTd/9tVVxaifMMKYx9IbqjvkNmb3pmO+IBFA=; X-UUID: 6f4a2e17f9a044f7a97295bdac02cd62-20191208 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 1544962341; Sun, 08 Dec 2019 21:16:41 -0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 8 Dec 2019 21:16:53 -0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 9 Dec 2019 13:16:01 +0800 Message-ID: <1575868591.7013.5.camel@mtksdaap41> Subject: Re: [resend PATCH v6 03/12] drm/mediatek: Use regmap for register access From: CK Hu To: Date: Mon, 9 Dec 2019 13:16:31 +0800 In-Reply-To: <20191207224740.24536-4-matthias.bgg@kernel.org> References: <20191207224740.24536-1-matthias.bgg@kernel.org> <20191207224740.24536-4-matthias.bgg@kernel.org> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191208_211644_047851_FA95C4BB X-CRM114-Status: GOOD ( 17.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, rdunlap@infradead.org, airlied@linux.ie, mturquette@baylibre.com, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, ulrich.hecht+renesas@gmail.com, linux-clk@vger.kernel.org, drinkcat@chromium.org, wens@csie.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, frank-w@public-files.de, sean.wang@mediatek.com, robh+dt@kernel.org, linux-mediatek@lists.infradead.org, hsinyi@chromium.org, linux-arm-kernel@lists.infradead.org, mbrugger@suse.com, sboyd@kernel.org, sean.wang@kernel.org, linux-kernel@vger.kernel.org, p.zabel@pengutronix.de, enric.balletbo@collabora.com 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 Hi, Matthias: On Sat, 2019-12-07 at 23:47 +0100, matthias.bgg@kernel.org wrote: > From: Matthias Brugger > > The mmsys memory space is shared between the drm and the > clk driver. Use regmap to access it. Reviewed-by: CK Hu > > Signed-off-by: Matthias Brugger > Reviewed-by: Philipp Zabel > --- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 4 +- > drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 50 +++++++++++-------------- > drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 4 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 13 ++----- > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > 5 files changed, 30 insertions(+), 43 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 34a731755791..259e2f4fa5fa 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -27,7 +27,7 @@ > * @enabled: records whether crtc_enable succeeded > * @planes: array of 4 drm_plane structures, one for each overlay plane > * @pending_planes: whether any plane has pending changes to be applied > - * @config_regs: memory mapped mmsys configuration register space > + * @config_regs: regmap mapped mmsys configuration register space > * @mutex: handle to one of the ten disp_mutex streams > * @ddp_comp_nr: number of components in ddp_comp > * @ddp_comp: array of pointers the mtk_ddp_comp structures used by this crtc > @@ -43,7 +43,7 @@ struct mtk_drm_crtc { > unsigned int layer_nr; > bool pending_planes; > > - void __iomem *config_regs; > + struct regmap *config_regs; > struct mtk_disp_mutex *mutex; > unsigned int ddp_comp_nr; > struct mtk_ddp_comp **ddp_comp; > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > index 8106a71a7404..b765181223e6 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c > @@ -331,61 +331,53 @@ static unsigned int mtk_ddp_sel_in(enum mtk_ddp_comp_id cur, > return value; > } > > -static void mtk_ddp_sout_sel(void __iomem *config_regs, > +static void mtk_ddp_sout_sel(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next) > { > if (cur == DDP_COMPONENT_BLS && next == DDP_COMPONENT_DSI0) { > - writel_relaxed(BLS_TO_DSI_RDMA1_TO_DPI1, > - config_regs + DISP_REG_CONFIG_OUT_SEL); > + regmap_write(config_regs, DISP_REG_CONFIG_OUT_SEL, > + BLS_TO_DSI_RDMA1_TO_DPI1); > } else if (cur == DDP_COMPONENT_BLS && next == DDP_COMPONENT_DPI0) { > - writel_relaxed(BLS_TO_DPI_RDMA1_TO_DSI, > - config_regs + DISP_REG_CONFIG_OUT_SEL); > - writel_relaxed(DSI_SEL_IN_RDMA, > - config_regs + DISP_REG_CONFIG_DSI_SEL); > - writel_relaxed(DPI_SEL_IN_BLS, > - config_regs + DISP_REG_CONFIG_DPI_SEL); > + regmap_write(config_regs, DISP_REG_CONFIG_OUT_SEL, > + BLS_TO_DPI_RDMA1_TO_DSI); > + regmap_write(config_regs, DISP_REG_CONFIG_DSI_SEL, > + DSI_SEL_IN_RDMA); > + regmap_write(config_regs, DISP_REG_CONFIG_DPI_SEL, > + DPI_SEL_IN_BLS); > } > } > > -void mtk_ddp_add_comp_to_path(void __iomem *config_regs, > +void mtk_ddp_add_comp_to_path(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next) > { > - unsigned int addr, value, reg; > + unsigned int addr, value; > > value = mtk_ddp_mout_en(cur, next, &addr); > - if (value) { > - reg = readl_relaxed(config_regs + addr) | value; > - writel_relaxed(reg, config_regs + addr); > - } > + if (value) > + regmap_update_bits(config_regs, addr, value, value); > > mtk_ddp_sout_sel(config_regs, cur, next); > > value = mtk_ddp_sel_in(cur, next, &addr); > - if (value) { > - reg = readl_relaxed(config_regs + addr) | value; > - writel_relaxed(reg, config_regs + addr); > - } > + if (value) > + regmap_update_bits(config_regs, addr, value, value); > } > > -void mtk_ddp_remove_comp_from_path(void __iomem *config_regs, > +void mtk_ddp_remove_comp_from_path(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next) > { > - unsigned int addr, value, reg; > + unsigned int addr, value; > > value = mtk_ddp_mout_en(cur, next, &addr); > - if (value) { > - reg = readl_relaxed(config_regs + addr) & ~value; > - writel_relaxed(reg, config_regs + addr); > - } > + if (value) > + regmap_update_bits(config_regs, addr, value, 0); > > value = mtk_ddp_sel_in(cur, next, &addr); > - if (value) { > - reg = readl_relaxed(config_regs + addr) & ~value; > - writel_relaxed(reg, config_regs + addr); > - } > + if (value) > + regmap_update_bits(config_regs, addr, value, 0); > } > > struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id) > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h > index 827be424a148..01ff8b68881f 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h > @@ -12,10 +12,10 @@ struct regmap; > struct device; > struct mtk_disp_mutex; > > -void mtk_ddp_add_comp_to_path(void __iomem *config_regs, > +void mtk_ddp_add_comp_to_path(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next); > -void mtk_ddp_remove_comp_from_path(void __iomem *config_regs, > +void mtk_ddp_remove_comp_from_path(struct regmap *config_regs, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next); > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 352b81a7a670..210455e9f46c 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -6,6 +6,7 @@ > > #include > #include > +#include > #include > #include > #include > @@ -485,7 +486,6 @@ static int mtk_drm_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct mtk_drm_private *private; > - struct resource *mem; > struct device_node *node; > struct component_match *match = NULL; > int ret; > @@ -499,14 +499,9 @@ static int mtk_drm_probe(struct platform_device *pdev) > INIT_WORK(&private->commit.work, mtk_atomic_work); > private->data = of_device_get_match_data(dev); > > - mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - private->config_regs = devm_ioremap_resource(dev, mem); > - if (IS_ERR(private->config_regs)) { > - ret = PTR_ERR(private->config_regs); > - dev_err(dev, "Failed to ioremap mmsys-config resource: %d\n", > - ret); > - return ret; > - } > + private->config_regs = syscon_node_to_regmap(dev->of_node); > + if (IS_ERR(private->config_regs)) > + return PTR_ERR(private->config_regs); > > /* Iterate over sibling DISP function blocks */ > for_each_child_of_node(dev->of_node->parent, node) { > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > index e03fea12ff59..63a121577dcb 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > @@ -39,7 +39,7 @@ struct mtk_drm_private { > > struct device_node *mutex_node; > struct device *mutex_dev; > - void __iomem *config_regs; > + struct regmap *config_regs; > struct device_node *comp_node[DDP_COMPONENT_ID_MAX]; > struct mtk_ddp_comp *ddp_comp[DDP_COMPONENT_ID_MAX]; > const struct mtk_mmsys_driver_data *data; _______________________________________________ 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.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,USER_AGENT_SANE_2 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 47AA3C2BD09 for ; Mon, 9 Dec 2019 05:21:51 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 27D1220637 for ; Mon, 9 Dec 2019 05:21:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 27D1220637 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 31EE66E0D7; Mon, 9 Dec 2019 05:21:50 +0000 (UTC) X-Greylist: delayed 305 seconds by postgrey-1.36 at gabe; Mon, 09 Dec 2019 05:21:49 UTC Received: from mailgw02.mediatek.com (mailgw02.mediatek.com [216.200.240.185]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2DF056E0D7 for ; Mon, 9 Dec 2019 05:21:49 +0000 (UTC) X-UUID: 3b30d915fd7b42208660ceb3afcea103-20191208 X-UUID: 3b30d915fd7b42208660ceb3afcea103-20191208 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 230616211; Sun, 08 Dec 2019 21:16:41 -0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 8 Dec 2019 21:16:53 -0800 Received: from [172.21.77.4] (172.21.77.4) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 9 Dec 2019 13:16:01 +0800 Message-ID: <1575868591.7013.5.camel@mtksdaap41> Subject: Re: [resend PATCH v6 03/12] drm/mediatek: Use regmap for register access From: CK Hu To: Date: Mon, 9 Dec 2019 13:16:31 +0800 In-Reply-To: <20191207224740.24536-4-matthias.bgg@kernel.org> References: <20191207224740.24536-1-matthias.bgg@kernel.org> <20191207224740.24536-4-matthias.bgg@kernel.org> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=/iuyPvsaVdzjThz3ynKNy7lY5Ed2c8DFHT3fXKOUa5U=; b=Z1dNkRmEe2z2l3kOcK9d8FTlDJw2ubJAmeq9VbT0g6x/0Y5I6m/etRAN4dKLpnxbmRupuoOhhpWSPHelafy+lvt3zFUk/taVJWkSfE133bQN62ck7CCe6eMrfPmrIyGXtyLdzrKdTd/9tVVxaifMMKYx9IbqjvkNmb3pmO+IBFA=; X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, rdunlap@infradead.org, airlied@linux.ie, mturquette@baylibre.com, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, ulrich.hecht+renesas@gmail.com, linux-clk@vger.kernel.org, drinkcat@chromium.org, wens@csie.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, frank-w@public-files.de, sean.wang@mediatek.com, robh+dt@kernel.org, linux-mediatek@lists.infradead.org, hsinyi@chromium.org, linux-arm-kernel@lists.infradead.org, mbrugger@suse.com, sboyd@kernel.org, sean.wang@kernel.org, linux-kernel@vger.kernel.org, enric.balletbo@collabora.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGksIE1hdHRoaWFzOg0KDQpPbiBTYXQsIDIwMTktMTItMDcgYXQgMjM6NDcgKzAxMDAsIG1hdHRo aWFzLmJnZ0BrZXJuZWwub3JnIHdyb3RlOg0KPiBGcm9tOiBNYXR0aGlhcyBCcnVnZ2VyIDxtYnJ1 Z2dlckBzdXNlLmNvbT4NCj4gDQo+IFRoZSBtbXN5cyBtZW1vcnkgc3BhY2UgaXMgc2hhcmVkIGJl dHdlZW4gdGhlIGRybSBhbmQgdGhlDQo+IGNsayBkcml2ZXIuIFVzZSByZWdtYXAgdG8gYWNjZXNz IGl0Lg0KDQpSZXZpZXdlZC1ieTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4NCg0KPiANCj4g U2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgQnJ1Z2dlciA8bWJydWdnZXJAc3VzZS5jb20+DQo+IFJl dmlld2VkLWJ5OiBQaGlsaXBwIFphYmVsIDxwLnphYmVsQHBlbmd1dHJvbml4LmRlPg0KPiAtLS0N Cj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYyB8ICA0ICstDQo+ICBk cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuYyAgfCA1MCArKysrKysrKysrKy0t LS0tLS0tLS0tLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaCAg fCAgNCArLQ0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgIHwgMTMg KystLS0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggIHwgIDIg Ky0NCj4gIDUgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0p DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jDQo+IGluZGV4IDM0 YTczMTc1NTc5MS4uMjU5ZTJmNGZhNWZhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fY3J0Yy5jDQo+IEBAIC0yNyw3ICsyNyw3IEBADQo+ICAgKiBAZW5hYmxlZDogcmVj b3JkcyB3aGV0aGVyIGNydGNfZW5hYmxlIHN1Y2NlZWRlZA0KPiAgICogQHBsYW5lczogYXJyYXkg b2YgNCBkcm1fcGxhbmUgc3RydWN0dXJlcywgb25lIGZvciBlYWNoIG92ZXJsYXkgcGxhbmUNCj4g ICAqIEBwZW5kaW5nX3BsYW5lczogd2hldGhlciBhbnkgcGxhbmUgaGFzIHBlbmRpbmcgY2hhbmdl cyB0byBiZSBhcHBsaWVkDQo+IC0gKiBAY29uZmlnX3JlZ3M6IG1lbW9yeSBtYXBwZWQgbW1zeXMg Y29uZmlndXJhdGlvbiByZWdpc3RlciBzcGFjZQ0KPiArICogQGNvbmZpZ19yZWdzOiByZWdtYXAg bWFwcGVkIG1tc3lzIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgc3BhY2UNCj4gICAqIEBtdXRleDog aGFuZGxlIHRvIG9uZSBvZiB0aGUgdGVuIGRpc3BfbXV0ZXggc3RyZWFtcw0KPiAgICogQGRkcF9j b21wX25yOiBudW1iZXIgb2YgY29tcG9uZW50cyBpbiBkZHBfY29tcA0KPiAgICogQGRkcF9jb21w OiBhcnJheSBvZiBwb2ludGVycyB0aGUgbXRrX2RkcF9jb21wIHN0cnVjdHVyZXMgdXNlZCBieSB0 aGlzIGNydGMNCj4gQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IG10a19kcm1fY3J0YyB7DQo+ICAJ dW5zaWduZWQgaW50CQkJbGF5ZXJfbnI7DQo+ICAJYm9vbAkJCQlwZW5kaW5nX3BsYW5lczsNCj4g IA0KPiAtCXZvaWQgX19pb21lbQkJCSpjb25maWdfcmVnczsNCj4gKwlzdHJ1Y3QgcmVnbWFwCQkJ KmNvbmZpZ19yZWdzOw0KPiAgCXN0cnVjdCBtdGtfZGlzcF9tdXRleAkJKm11dGV4Ow0KPiAgCXVu c2lnbmVkIGludAkJCWRkcF9jb21wX25yOw0KPiAgCXN0cnVjdCBtdGtfZGRwX2NvbXAJCSoqZGRw X2NvbXA7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k ZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jDQo+IGluZGV4IDgx MDZhNzFhNzQwNC4uYjc2NTE4MTIyM2U2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9kZHAuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9kZHAuYw0KPiBAQCAtMzMxLDYxICszMzEsNTMgQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBtdGtfZGRwX3NlbF9pbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsDQo+ICAJcmV0dXJuIHZh bHVlOw0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMgdm9pZCBtdGtfZGRwX3NvdXRfc2VsKHZvaWQgX19p b21lbSAqY29uZmlnX3JlZ3MsDQo+ICtzdGF0aWMgdm9pZCBtdGtfZGRwX3NvdXRfc2VsKHN0cnVj dCByZWdtYXAgKmNvbmZpZ19yZWdzLA0KPiAgCQkJICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBj dXIsDQo+ICAJCQkgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpDQo+ICB7DQo+ICAJaWYg KGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkg ew0KPiAtCQl3cml0ZWxfcmVsYXhlZChCTFNfVE9fRFNJX1JETUExX1RPX0RQSTEsDQo+IC0JCQkg ICAgICAgY29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05GSUdfT1VUX1NFTCk7DQo+ICsJCXJlZ21h cF93cml0ZShjb25maWdfcmVncywgRElTUF9SRUdfQ09ORklHX09VVF9TRUwsDQo+ICsJCQkJQkxT X1RPX0RTSV9SRE1BMV9UT19EUEkxKTsNCj4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX0JMUyAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0KPiAtCQl3cml0ZWxfcmVs YXhlZChCTFNfVE9fRFBJX1JETUExX1RPX0RTSSwNCj4gLQkJCSAgICAgICBjb25maWdfcmVncyAr IERJU1BfUkVHX0NPTkZJR19PVVRfU0VMKTsNCj4gLQkJd3JpdGVsX3JlbGF4ZWQoRFNJX1NFTF9J Tl9SRE1BLA0KPiAtCQkJICAgICAgIGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX0RTSV9T RUwpOw0KPiAtCQl3cml0ZWxfcmVsYXhlZChEUElfU0VMX0lOX0JMUywNCj4gLQkJCSAgICAgICBj b25maWdfcmVncyArIERJU1BfUkVHX0NPTkZJR19EUElfU0VMKTsNCj4gKwkJcmVnbWFwX3dyaXRl KGNvbmZpZ19yZWdzLCBESVNQX1JFR19DT05GSUdfT1VUX1NFTCwNCj4gKwkJCQlCTFNfVE9fRFBJ X1JETUExX1RPX0RTSSk7DQo+ICsJCXJlZ21hcF93cml0ZShjb25maWdfcmVncywgRElTUF9SRUdf Q09ORklHX0RTSV9TRUwsDQo+ICsJCQkJRFNJX1NFTF9JTl9SRE1BKTsNCj4gKwkJcmVnbWFwX3dy aXRlKGNvbmZpZ19yZWdzLCBESVNQX1JFR19DT05GSUdfRFBJX1NFTCwNCj4gKwkJCQlEUElfU0VM X0lOX0JMUyk7DQo+ICAJfQ0KPiAgfQ0KPiAgDQo+IC12b2lkIG10a19kZHBfYWRkX2NvbXBfdG9f cGF0aCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLA0KPiArdm9pZCBtdGtfZGRwX2FkZF9jb21w X3RvX3BhdGgoc3RydWN0IHJlZ21hcCAqY29uZmlnX3JlZ3MsDQo+ICAJCQkgICAgICBlbnVtIG10 a19kZHBfY29tcF9pZCBjdXIsDQo+ICAJCQkgICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0 KQ0KPiAgew0KPiAtCXVuc2lnbmVkIGludCBhZGRyLCB2YWx1ZSwgcmVnOw0KPiArCXVuc2lnbmVk IGludCBhZGRyLCB2YWx1ZTsNCj4gIA0KPiAgCXZhbHVlID0gbXRrX2RkcF9tb3V0X2VuKGN1ciwg bmV4dCwgJmFkZHIpOw0KPiAtCWlmICh2YWx1ZSkgew0KPiAtCQlyZWcgPSByZWFkbF9yZWxheGVk KGNvbmZpZ19yZWdzICsgYWRkcikgfCB2YWx1ZTsNCj4gLQkJd3JpdGVsX3JlbGF4ZWQocmVnLCBj b25maWdfcmVncyArIGFkZHIpOw0KPiAtCX0NCj4gKwlpZiAodmFsdWUpDQo+ICsJCXJlZ21hcF91 cGRhdGVfYml0cyhjb25maWdfcmVncywgYWRkciwgdmFsdWUsIHZhbHVlKTsNCj4gIA0KPiAgCW10 a19kZHBfc291dF9zZWwoY29uZmlnX3JlZ3MsIGN1ciwgbmV4dCk7DQo+ICANCj4gIAl2YWx1ZSA9 IG10a19kZHBfc2VsX2luKGN1ciwgbmV4dCwgJmFkZHIpOw0KPiAtCWlmICh2YWx1ZSkgew0KPiAt CQlyZWcgPSByZWFkbF9yZWxheGVkKGNvbmZpZ19yZWdzICsgYWRkcikgfCB2YWx1ZTsNCj4gLQkJ d3JpdGVsX3JlbGF4ZWQocmVnLCBjb25maWdfcmVncyArIGFkZHIpOw0KPiAtCX0NCj4gKwlpZiAo dmFsdWUpDQo+ICsJCXJlZ21hcF91cGRhdGVfYml0cyhjb25maWdfcmVncywgYWRkciwgdmFsdWUs IHZhbHVlKTsNCj4gIH0NCj4gIA0KPiAtdm9pZCBtdGtfZGRwX3JlbW92ZV9jb21wX2Zyb21fcGF0 aCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLA0KPiArdm9pZCBtdGtfZGRwX3JlbW92ZV9jb21w X2Zyb21fcGF0aChzdHJ1Y3QgcmVnbWFwICpjb25maWdfcmVncywNCj4gIAkJCQkgICBlbnVtIG10 a19kZHBfY29tcF9pZCBjdXIsDQo+ICAJCQkJICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCkN Cj4gIHsNCj4gLQl1bnNpZ25lZCBpbnQgYWRkciwgdmFsdWUsIHJlZzsNCj4gKwl1bnNpZ25lZCBp bnQgYWRkciwgdmFsdWU7DQo+ICANCj4gIAl2YWx1ZSA9IG10a19kZHBfbW91dF9lbihjdXIsIG5l eHQsICZhZGRyKTsNCj4gLQlpZiAodmFsdWUpIHsNCj4gLQkJcmVnID0gcmVhZGxfcmVsYXhlZChj b25maWdfcmVncyArIGFkZHIpICYgfnZhbHVlOw0KPiAtCQl3cml0ZWxfcmVsYXhlZChyZWcsIGNv bmZpZ19yZWdzICsgYWRkcik7DQo+IC0JfQ0KPiArCWlmICh2YWx1ZSkNCj4gKwkJcmVnbWFwX3Vw ZGF0ZV9iaXRzKGNvbmZpZ19yZWdzLCBhZGRyLCB2YWx1ZSwgMCk7DQo+ICANCj4gIAl2YWx1ZSA9 IG10a19kZHBfc2VsX2luKGN1ciwgbmV4dCwgJmFkZHIpOw0KPiAtCWlmICh2YWx1ZSkgew0KPiAt CQlyZWcgPSByZWFkbF9yZWxheGVkKGNvbmZpZ19yZWdzICsgYWRkcikgJiB+dmFsdWU7DQo+IC0J CXdyaXRlbF9yZWxheGVkKHJlZywgY29uZmlnX3JlZ3MgKyBhZGRyKTsNCj4gLQl9DQo+ICsJaWYg KHZhbHVlKQ0KPiArCQlyZWdtYXBfdXBkYXRlX2JpdHMoY29uZmlnX3JlZ3MsIGFkZHIsIHZhbHVl LCAwKTsNCj4gIH0NCj4gIA0KPiAgc3RydWN0IG10a19kaXNwX211dGV4ICptdGtfZGlzcF9tdXRl eF9nZXQoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaWQpDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2RkcC5oDQo+IGluZGV4IDgyN2JlNDI0YTE0OC4uMDFmZjhiNjg4 ODFmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAu aA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaA0KPiBAQCAt MTIsMTAgKzEyLDEwIEBAIHN0cnVjdCByZWdtYXA7DQo+ICBzdHJ1Y3QgZGV2aWNlOw0KPiAgc3Ry dWN0IG10a19kaXNwX211dGV4Ow0KPiAgDQo+IC12b2lkIG10a19kZHBfYWRkX2NvbXBfdG9fcGF0 aCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLA0KPiArdm9pZCBtdGtfZGRwX2FkZF9jb21wX3Rv X3BhdGgoc3RydWN0IHJlZ21hcCAqY29uZmlnX3JlZ3MsDQo+ICAJCQkgICAgICBlbnVtIG10a19k ZHBfY29tcF9pZCBjdXIsDQo+ICAJCQkgICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0KTsN Cj4gLXZvaWQgbXRrX2RkcF9yZW1vdmVfY29tcF9mcm9tX3BhdGgodm9pZCBfX2lvbWVtICpjb25m aWdfcmVncywNCj4gK3ZvaWQgbXRrX2RkcF9yZW1vdmVfY29tcF9mcm9tX3BhdGgoc3RydWN0IHJl Z21hcCAqY29uZmlnX3JlZ3MsDQo+ICAJCQkJICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLA0K PiAgCQkJCSAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpOw0KPiAgDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jDQo+IGluZGV4IDM1MmI4MWE3YTY3MC4uMjEwNDU1ZTlm NDZjIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYu Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiBAQCAt Niw2ICs2LDcgQEANCj4gIA0KPiAgI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPg0KPiAgI2lu Y2x1ZGUgPGxpbnV4L2lvbW11Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPg0K PiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJl c3MuaD4NCj4gICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPg0KPiBAQCAtNDg1LDcgKzQ4 Niw2IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQ0KPiAgew0KPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ICAJc3Ry dWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZTsNCj4gLQlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsN Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGU7DQo+ICAJc3RydWN0IGNvbXBvbmVudF9tYXRj aCAqbWF0Y2ggPSBOVUxMOw0KPiAgCWludCByZXQ7DQo+IEBAIC00OTksMTQgKzQ5OSw5IEBAIHN0 YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiAg CUlOSVRfV09SSygmcHJpdmF0ZS0+Y29tbWl0LndvcmssIG10a19hdG9taWNfd29yayk7DQo+ICAJ cHJpdmF0ZS0+ZGF0YSA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOw0KPiAgDQo+IC0J bWVtID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCj4g LQlwcml2YXRlLT5jb25maWdfcmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIG1lbSk7 DQo+IC0JaWYgKElTX0VSUihwcml2YXRlLT5jb25maWdfcmVncykpIHsNCj4gLQkJcmV0ID0gUFRS X0VSUihwcml2YXRlLT5jb25maWdfcmVncyk7DQo+IC0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRv IGlvcmVtYXAgbW1zeXMtY29uZmlnIHJlc291cmNlOiAlZFxuIiwNCj4gLQkJCXJldCk7DQo+IC0J CXJldHVybiByZXQ7DQo+IC0JfQ0KPiArCXByaXZhdGUtPmNvbmZpZ19yZWdzID0gc3lzY29uX25v ZGVfdG9fcmVnbWFwKGRldi0+b2Zfbm9kZSk7DQo+ICsJaWYgKElTX0VSUihwcml2YXRlLT5jb25m aWdfcmVncykpDQo+ICsJCXJldHVybiBQVFJfRVJSKHByaXZhdGUtPmNvbmZpZ19yZWdzKTsNCj4g IA0KPiAgCS8qIEl0ZXJhdGUgb3ZlciBzaWJsaW5nIERJU1AgZnVuY3Rpb24gYmxvY2tzICovDQo+ ICAJZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShkZXYtPm9mX25vZGUtPnBhcmVudCwgbm9kZSkgew0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiBpbmRleCBlMDNmZWExMmZm NTkuLjYzYTEyMTU3N2RjYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZHJ2LmgNCj4gQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IG10a19kcm1fcHJpdmF0ZSB7DQo+ICAN Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm11dGV4X25vZGU7DQo+ICAJc3RydWN0IGRldmljZSAq bXV0ZXhfZGV2Ow0KPiAtCXZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3M7DQo+ICsJc3RydWN0IHJl Z21hcCAqY29uZmlnX3JlZ3M7DQo+ICAJc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGVbRERQ X0NPTVBPTkVOVF9JRF9NQVhdOw0KPiAgCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmRkcF9jb21wW0RE UF9DT01QT05FTlRfSURfTUFYXTsNCj4gIAljb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9k YXRhICpkYXRhOw0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=