From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Subject: Re: [PATCH v3 02/10] drm/rockchip: analogix_dp: split the lcdc select setting into device data Date: Thu, 23 Jun 2016 18:16:27 +0200 Message-ID: <3037785.TlDqtLoRAD@phil> References: <1465904718-663-1-git-send-email-ykk@rock-chips.com> <1465904768-805-1-git-send-email-ykk@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul Cc: Krzysztof Kozlowski , linux-samsung-soc , Javier Martinez Canillas , Mark Yao , Jingoo Han , Daniel Vetter , Emil Velikov , Douglas Anderson , dri-devel , Linux Kernel Mailing List , linux-rockchip@lists.infradead.org, Tomasz Figa , =?ISO-8859-1?Q?St=E9phane?= Marchesin , Thierry Reding , Dan Carpenter List-Id: linux-rockchip.vger.kernel.org QW0gRG9ubmVyc3RhZywgMjMuIEp1bmkgMjAxNiwgMTA6MzI6NTMgc2NocmllYiBTZWFuIFBhdWw6 Cj4gT24gVHVlLCBKdW4gMTQsIDIwMTYgYXQgNzo0NiBBTSwgWWFraXIgWWFuZyA8eWtrQHJvY2st Y2hpcHMuY29tPiB3cm90ZToKPiA+IGVEUCBjb250cm9sbGVyIG5lZWQgdG8gZGVjbGFyZSB3aGlj aCB2b3AgcHJvdmlkZSB0aGUgdmlkZW8gc291cmNlLAo+ID4gYW5kIGl0J3MgZGVmaW5lZCBpbiBH UkYgcmVnaXN0ZXJzLgo+ID4gCj4gPiBCdXQgZGlmZmVyZW50IGNoaXBzIGhhdmUgZGlmZmVyZW50 IEdSRiByZWdpc3RlciBhZGRyZXNzLCBzbyB3ZSBuZWVkIHRvCj4gPiBjcmVhdGUgYSBkZXZpY2Ug ZGF0YSB0byBkZWNsYXJlIHRoZSBHUkYgbWVzc2FnZXMgZm9yIGVhY2ggY2hpcHMuCj4gPiAKPiA+ IFNpZ25lZC1vZmYtYnk6IFlha2lyIFlhbmcgPHlra0Byb2NrLWNoaXBzLmNvbT4KPiA+IEFja2Vk LWJ5OiBNYXJrIFlhbyA8bWFyay55YW9Acm9jay1jaGlwcy5jb20+Cj4gPiAtLS0KPiA+IENoYW5n ZXMgaW4gdjM6Cj4gPiAtIFdyaXRlIGEga2VybmVsZG9jLXN0eWxlIGNvbW1lbnQgZXhwbGFpbmlu ZyB0aGUgY2hpcHMgZGF0YSBmaWVsZHMKPiA+IChUb21hc3osIHJldmlld2VkIGF0IEdvb2dsZSBH ZXJyaXQpPiAKPiA+ICAgICBbaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNv bS8jL2MvMzQ2MzEzLzEwL2RyaXZlcnMvZ3B1Lwo+ID4gICAgIGRybS9yb2NrY2hpcC9hbmFsb2dp eF9kcC1yb2NrY2hpcC5jQDM5XT4gCj4gPiAtIERyb3AgdGhlICcubGNkY3NlbF9tYXNrJyBudW1i ZXIgaW4gY2hpcHMgZGF0YSBmaWVsZCAoVG9tYXN6LCByZXZpZXdlZAo+ID4gYXQgR29vZ2xlIEdl cnJpdCk+IAo+ID4gICAgIFtodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29t LyMvYy8zNDYzMTMvMTAvZHJpdmVycy9ncHUvCj4gPiAgICAgZHJtL3JvY2tjaGlwL2FuYWxvZ2l4 X2RwLXJvY2tjaGlwLmNAMzgyXT4gCj4gPiAtIEFkZCBhY2tlZCBmbGFnIGZyb20gTWFyay4KPiA+ IAo+ID4gQ2hhbmdlcyBpbiB2MjogTm9uZQo+ID4gCj4gPiAgZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMgfCAzOQo+ID4gICsrKysrKysrKysrKysrKysrKyst LS0tLS0gMSBmaWxlIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDkKPiA+ICBkZWxldGlvbnMo LSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dp eF9kcC1yb2NrY2hpcC5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9k cC1yb2NrY2hpcC5jIGluZGV4Cj4gPiAyYmM4YTdlLi4zODU1ZjQ2IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jCj4gPiBAQCAt MTQsNiArMTQsNyBAQAo+ID4gCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgo+ID4g ICNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Cj4gPiAKPiA+ICsjaW5jbHVkZSA8bGludXgv b2ZfZGV2aWNlLmg+Cj4gPiAKPiA+ICAjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KPiA+ICAj aW5jbHVkZSA8bGludXgvcmVnbWFwLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+Cj4g PiAKPiA+IEBAIC0zNSwxMSArMzYsMTcgQEAKPiA+IAo+ID4gICNkZWZpbmUgdG9fZHAobm0pICAg ICAgY29udGFpbmVyX29mKG5tLCBzdHJ1Y3Qgcm9ja2NoaXBfZHBfZGV2aWNlLCBubSkKPiA+IAo+ ID4gLS8qIGRwIGdyZiByZWdpc3RlciBvZmZzZXQgKi8KPiA+IC0jZGVmaW5lIEdSRl9TT0NfQ09O NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyNWMKPiA+IC0jZGVmaW5lIEdSRl9FRFBf TENEX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgICBCSVQoNSkKPiA+IC0jZGVmaW5lIEdSRl9F RFBfU0VMX1ZPUF9MSVQgICAgICAgICAgICAgICAgICAgICBCSVQoNSkKPiA+IC0jZGVmaW5lIEdS Rl9FRFBfU0VMX1ZPUF9CSUcgICAgICAgICAgICAgICAgICAgICAwCj4gPiArLyoqCj4gPiArICog c3RydWN0IHJvY2tjaGlwX2RwX2NoaXBfZGF0YSAtIHNwbGl0ZSB0aGUgZ3JmIHNldHRpbmcgb2Yg a2luZCBvZgo+ID4gY2hpcHMgKyAqIEBsY2RzZWxfZ3JmX3JlZzogZ3JmIHJlZ2lzdGVyIG9mZnNl dCBvZiBsY2RjIHNlbGVjdAo+ID4gKyAqIEBsY2RzZWxfYmlnOiByZWcgdmFsdWUgb2Ygc2VsZWN0 aW5nIHZvcCBiaWcgZm9yIGVEUAo+ID4gKyAqIEBsY2RzZWxfbGl0OiByZWcgdmFsdWUgb2Ygc2Vs ZWN0aW5nIHZvcCBsaXR0bGUgZm9yIGVEUAo+ID4gKyAqLwo+ID4gK3N0cnVjdCByb2NrY2hpcF9k cF9jaGlwX2RhdGEgewo+ID4gKyAgICAgICB1MzIgICAgIGxjZHNlbF9ncmZfcmVnOwo+ID4gKyAg ICAgICB1MzIgICAgIGxjZHNlbF9iaWc7Cj4gPiArICAgICAgIHUzMiAgICAgbGNkc2VsX2xpdDsK PiA+ICt9Owo+ID4gCj4gPiAgc3RydWN0IHJvY2tjaGlwX2RwX2RldmljZSB7Cj4gPiAgCj4gPiAg ICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICAgICAgICAqZHJtX2RldjsKPiA+IAo+ID4gQEAgLTUx LDYgKzU4LDggQEAgc3RydWN0IHJvY2tjaGlwX2RwX2RldmljZSB7Cj4gPiAKPiA+ICAgICAgICAg c3RydWN0IHJlZ21hcCAgICAgICAgICAgICpncmY7Cj4gPiAgICAgICAgIHN0cnVjdCByZXNldF9j b250cm9sICAgICAqcnN0Owo+ID4gCj4gPiArICAgICAgIGNvbnN0IHN0cnVjdCByb2NrY2hpcF9k cF9jaGlwX2RhdGEgKmRhdGE7Cj4gPiArCj4gPiAKPiA+ICAgICAgICAgc3RydWN0IGFuYWxvZ2l4 X2RwX3BsYXRfZGF0YSBwbGF0X2RhdGE7Cj4gPiAgCj4gPiAgfTsKPiA+IAo+ID4gQEAgLTExOSwx MyArMTI4LDEzIEBAIHN0YXRpYyB2b2lkIHJvY2tjaGlwX2RwX2RybV9lbmNvZGVyX2VuYWJsZShz dHJ1Y3QKPiA+IGRybV9lbmNvZGVyICplbmNvZGVyKT4gCj4gPiAgICAgICAgICAgICAgICAgcmV0 dXJuOwo+ID4gICAgICAgICAKPiA+ICAgICAgICAgaWYgKHJldCkKPiA+IAo+ID4gLSAgICAgICAg ICAgICAgIHZhbCA9IEdSRl9FRFBfU0VMX1ZPUF9MSVQgfCAoR1JGX0VEUF9MQ0RfU0VMX01BU0sg PDwKPiA+IDE2KTsKPiA+ICsgICAgICAgICAgICAgICB2YWwgPSBkcC0+ZGF0YS0+bGNkc2VsX2xp dDsKPiA+IAo+ID4gICAgICAgICBlbHNlCj4gPiAKPiA+IC0gICAgICAgICAgICAgICB2YWwgPSBH UkZfRURQX1NFTF9WT1BfQklHIHwgKEdSRl9FRFBfTENEX1NFTF9NQVNLIDw8Cj4gPiAxNik7Cj4g PiArICAgICAgICAgICAgICAgdmFsID0gZHAtPmRhdGEtPmxjZHNlbF9iaWc7Cj4gPiAKPiA+ICAg ICAgICAgZGV2X2RiZyhkcC0+ZGV2LCAidm9wICVzIG91dHB1dCB0byBkcFxuIiwgKHJldCkgPyAi TElUIiA6Cj4gPiAgICAgICAgICJCSUciKTsKPiA+IAo+ID4gLSAgICAgICByZXQgPSByZWdtYXBf d3JpdGUoZHAtPmdyZiwgR1JGX1NPQ19DT042LCB2YWwpOwo+ID4gKyAgICAgICByZXQgPSByZWdt YXBfd3JpdGUoZHAtPmdyZiwgZHAtPmRhdGEtPmxjZHNlbF9ncmZfcmVnLCB2YWwpOwo+ID4gCj4g PiAgICAgICAgIGlmIChyZXQgIT0gMCkgewo+ID4gICAgICAgICAKPiA+ICAgICAgICAgICAgICAg ICBkZXZfZXJyKGRwLT5kZXYsICJDb3VsZCBub3Qgd3JpdGUgdG8gR1JGOiAlZFxuIiwgcmV0KTsK PiA+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4gPiAKPiA+IEBAIC0yNDYsNiArMjU1LDcgQEAg c3RhdGljIGludCByb2NrY2hpcF9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+IHN0cnVj dCBkZXZpY2UgKm1hc3Rlciw+IAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg KmRhdGEpCj4gPiAgCj4gPiAgewo+ID4gIAo+ID4gICAgICAgICBzdHJ1Y3Qgcm9ja2NoaXBfZHBf ZGV2aWNlICpkcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4gCj4gPiArICAgICAgIGNvbnN0 IHN0cnVjdCByb2NrY2hpcF9kcF9jaGlwX2RhdGEgKmRwX2RhdGE7Cj4gPiAKPiA+ICAgICAgICAg c3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkYXRhOwo+ID4gICAgICAgICBpbnQgcmV0Owo+ ID4gCj4gPiBAQCAtMjU2LDEwICsyNjYsMTUgQEAgc3RhdGljIGludCByb2NrY2hpcF9kcF9iaW5k KHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+IHN0cnVjdCBkZXZpY2UgKm1hc3Rlciw+IAo+ID4gICAg ICAgICAgKi8KPiA+ICAgICAgICAgCj4gPiAgICAgICAgIGRldl9zZXRfZHJ2ZGF0YShkZXYsIE5V TEwpOwo+ID4gCj4gPiArICAgICAgIGRwX2RhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEo ZGV2KTsKPiA+ICsgICAgICAgaWYgKCFkcF9kYXRhKQo+ID4gKyAgICAgICAgICAgICAgIHJldHVy biAtRU5PREVWOwo+ID4gKwo+ID4gCj4gPiAgICAgICAgIHJldCA9IHJvY2tjaGlwX2RwX2luaXQo ZHApOwo+ID4gICAgICAgICBpZiAocmV0IDwgMCkKPiA+ICAgICAgICAgCj4gPiAgICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsKPiA+IAo+ID4gKyAgICAgICBkcC0+ZGF0YSA9IGRwX2RhdGE7Cj4g PiAKPiA+ICAgICAgICAgZHAtPmRybV9kZXYgPSBkcm1fZGV2Owo+ID4gICAgICAgICAKPiA+ICAg ICAgICAgcmV0ID0gcm9ja2NoaXBfZHBfZHJtX2NyZWF0ZV9lbmNvZGVyKGRwKTsKPiA+IAo+ID4g QEAgLTM2NSw4ICszODAsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHJvY2tj aGlwX2RwX3BtX29wcyA9Cj4gPiB7PiAKPiA+ICAgICAgICAgU0VUX1NZU1RFTV9TTEVFUF9QTV9P UFMocm9ja2NoaXBfZHBfc3VzcGVuZCwgcm9ja2NoaXBfZHBfcmVzdW1lKQo+ID4gIAo+ID4gIH07 Cj4gPiAKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJvY2tjaGlwX2RwX2NoaXBfZGF0YSByazMy ODhfZHAgPSB7Cj4gPiArICAgICAgIC5sY2RzZWxfZ3JmX3JlZyA9IDB4MDI1YywKPiA+ICsgICAg ICAgLmxjZHNlbF9iaWcgPSAwIHwgQklUKDIxKSwKPiA+ICsgICAgICAgLmxjZHNlbF9saXQgPSBC SVQoNSkgfCBCSVQoMjEpLAo+IAo+IEknbSBub3Qgc3VyZSB3aGF0IGNvbnZlbnRpb24gaXMgaW4g b3RoZXIgZHJpdmVycywgYnV0IHRoaXMgc2VlbXMgbGVzcwo+IHJlYWRhYmxlIHRvIG1lLgo+IAo+ IEknZCBwcmVmZXIgdGhhdCB0aGUgbWFnaWMgbnVtYmVycyB3ZXJlIGFzc2lnbmVkIHRvIGEgI2Rl ZmluZSB0aGF0Cj4gY29ycmVzcG9uZHMgdG8gYSBUUk0gbmFtZSBpbiBzb21lIGhlYWRlci4gVGhl biB5b3UgaGF2ZSBuYW1lcyBpbiB0aGUKPiBhc3NpZ25tZW50IGluc3RlYWQgb2YgbWVhbmluZ2xl c3MgbnVtYmVycy4KCkkgZ3Vlc3Mgd2hhdCBpcmtzIG1lIHBlcnNvbmFsbHkgbW9yZSBpcyB0aGF0 IGl0IGhpZGVzIHRoZSB3cml0ZS1tYXNrIGFzIHdlbGwKClNvIEkgZ3Vlc3Mgc29tZXRoaW5nIGxp a2UgdGhlIGZvbGxvd2luZyB3b3VsZCBhbHNvIGRlZmluZSBpdCBzb21ld2hhdCBmdXR1cmUtCnBy b29mCgojZGVmaW5lIFJLMzI4OF9HUkZfU09DX0NPTjYJMHgyNWMKI2RlZmluZSBSSzMyODhfRURQ X0xDRENfU0VMCQlCSVQoNSkKCiNkZWZpbmUgSElXT1JEX1VQREFURSh2YWwsIG1hc2spIFwKCQko dmFsIHwgKG1hc2spIDw8IDE2KQoKc3RhdGljIGNvbnN0IHN0cnVjdCByb2NrY2hpcF9kcF9jaGlw X2RhdGEgcmszMjg4X2RwID0gewoJLmxjZHNlbF9ncmZfcmVnID0gUkszMjg4X0dSRl9TT0NfQ09O NiwKCS5sY2RzZWxfYmlnID0gSElXT1JEX1VQREFURSgwLCBSSzMyODhfRURQX0xDRENfU0VMKSwK CS5sY2RzZWxfbGl0ID0gSElXT1JEX1VQREFURShSSzMyODhfRURQX0xDRENfU0VMLCBSSzMyODhf RURQX0xDRENfU0VMKSwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751913AbcFWQRV (ORCPT ); Thu, 23 Jun 2016 12:17:21 -0400 Received: from gloria.sntech.de ([95.129.55.99]:32890 "EHLO gloria.sntech.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751952AbcFWQQu (ORCPT ); Thu, 23 Jun 2016 12:16:50 -0400 From: Heiko Stuebner To: Sean Paul Cc: Yakir Yang , Mark Yao , Inki Dae , Jingoo Han , Krzysztof Kozlowski , linux-samsung-soc , linux-rockchip@lists.infradead.org, Daniel Vetter , Emil Velikov , Douglas Anderson , dri-devel , Linux Kernel Mailing List , Javier Martinez Canillas , Tomasz Figa , =?ISO-8859-1?Q?St=E9phane?= Marchesin , Thierry Reding , Dan Carpenter Subject: Re: [PATCH v3 02/10] drm/rockchip: analogix_dp: split the lcdc select setting into device data Date: Thu, 23 Jun 2016 18:16:27 +0200 Message-ID: <3037785.TlDqtLoRAD@phil> User-Agent: KMail/4.14.10 (Linux/4.3.0-1-amd64; KDE/4.14.14; x86_64; ; ) In-Reply-To: References: <1465904718-663-1-git-send-email-ykk@rock-chips.com> <1465904768-805-1-git-send-email-ykk@rock-chips.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Donnerstag, 23. Juni 2016, 10:32:53 schrieb Sean Paul: > On Tue, Jun 14, 2016 at 7:46 AM, Yakir Yang wrote: > > eDP controller need to declare which vop provide the video source, > > and it's defined in GRF registers. > > > > But different chips have different GRF register address, so we need to > > create a device data to declare the GRF messages for each chips. > > > > Signed-off-by: Yakir Yang > > Acked-by: Mark Yao > > --- > > Changes in v3: > > - Write a kerneldoc-style comment explaining the chips data fields > > (Tomasz, reviewed at Google Gerrit)> > > [https://chromium-review.googlesource.com/#/c/346313/10/drivers/gpu/ > > drm/rockchip/analogix_dp-rockchip.c@39]> > > - Drop the '.lcdcsel_mask' number in chips data field (Tomasz, reviewed > > at Google Gerrit)> > > [https://chromium-review.googlesource.com/#/c/346313/10/drivers/gpu/ > > drm/rockchip/analogix_dp-rockchip.c@382]> > > - Add acked flag from Mark. > > > > Changes in v2: None > > > > drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 39 > > +++++++++++++++++++------ 1 file changed, 30 insertions(+), 9 > > deletions(-) > > > > diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > > b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c index > > 2bc8a7e..3855f46 100644 > > --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > > +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > > @@ -14,6 +14,7 @@ > > > > #include > > #include > > > > +#include > > > > #include > > #include > > #include > > > > @@ -35,11 +36,17 @@ > > > > #define to_dp(nm) container_of(nm, struct rockchip_dp_device, nm) > > > > -/* dp grf register offset */ > > -#define GRF_SOC_CON6 0x025c > > -#define GRF_EDP_LCD_SEL_MASK BIT(5) > > -#define GRF_EDP_SEL_VOP_LIT BIT(5) > > -#define GRF_EDP_SEL_VOP_BIG 0 > > +/** > > + * struct rockchip_dp_chip_data - splite the grf setting of kind of > > chips + * @lcdsel_grf_reg: grf register offset of lcdc select > > + * @lcdsel_big: reg value of selecting vop big for eDP > > + * @lcdsel_lit: reg value of selecting vop little for eDP > > + */ > > +struct rockchip_dp_chip_data { > > + u32 lcdsel_grf_reg; > > + u32 lcdsel_big; > > + u32 lcdsel_lit; > > +}; > > > > struct rockchip_dp_device { > > > > struct drm_device *drm_dev; > > > > @@ -51,6 +58,8 @@ struct rockchip_dp_device { > > > > struct regmap *grf; > > struct reset_control *rst; > > > > + const struct rockchip_dp_chip_data *data; > > + > > > > struct analogix_dp_plat_data plat_data; > > > > }; > > > > @@ -119,13 +128,13 @@ static void rockchip_dp_drm_encoder_enable(struct > > drm_encoder *encoder)> > > return; > > > > if (ret) > > > > - val = GRF_EDP_SEL_VOP_LIT | (GRF_EDP_LCD_SEL_MASK << > > 16); > > + val = dp->data->lcdsel_lit; > > > > else > > > > - val = GRF_EDP_SEL_VOP_BIG | (GRF_EDP_LCD_SEL_MASK << > > 16); > > + val = dp->data->lcdsel_big; > > > > dev_dbg(dp->dev, "vop %s output to dp\n", (ret) ? "LIT" : > > "BIG"); > > > > - ret = regmap_write(dp->grf, GRF_SOC_CON6, val); > > + ret = regmap_write(dp->grf, dp->data->lcdsel_grf_reg, val); > > > > if (ret != 0) { > > > > dev_err(dp->dev, "Could not write to GRF: %d\n", ret); > > return; > > > > @@ -246,6 +255,7 @@ static int rockchip_dp_bind(struct device *dev, > > struct device *master,> > > void *data) > > > > { > > > > struct rockchip_dp_device *dp = dev_get_drvdata(dev); > > > > + const struct rockchip_dp_chip_data *dp_data; > > > > struct drm_device *drm_dev = data; > > int ret; > > > > @@ -256,10 +266,15 @@ static int rockchip_dp_bind(struct device *dev, > > struct device *master,> > > */ > > > > dev_set_drvdata(dev, NULL); > > > > + dp_data = of_device_get_match_data(dev); > > + if (!dp_data) > > + return -ENODEV; > > + > > > > ret = rockchip_dp_init(dp); > > if (ret < 0) > > > > return ret; > > > > + dp->data = dp_data; > > > > dp->drm_dev = drm_dev; > > > > ret = rockchip_dp_drm_create_encoder(dp); > > > > @@ -365,8 +380,14 @@ static const struct dev_pm_ops rockchip_dp_pm_ops = > > {> > > SET_SYSTEM_SLEEP_PM_OPS(rockchip_dp_suspend, rockchip_dp_resume) > > > > }; > > > > +static const struct rockchip_dp_chip_data rk3288_dp = { > > + .lcdsel_grf_reg = 0x025c, > > + .lcdsel_big = 0 | BIT(21), > > + .lcdsel_lit = BIT(5) | BIT(21), > > I'm not sure what convention is in other drivers, but this seems less > readable to me. > > I'd prefer that the magic numbers were assigned to a #define that > corresponds to a TRM name in some header. Then you have names in the > assignment instead of meaningless numbers. I guess what irks me personally more is that it hides the write-mask as well So I guess something like the following would also define it somewhat future- proof #define RK3288_GRF_SOC_CON6 0x25c #define RK3288_EDP_LCDC_SEL BIT(5) #define HIWORD_UPDATE(val, mask) \ (val | (mask) << 16) static const struct rockchip_dp_chip_data rk3288_dp = { .lcdsel_grf_reg = RK3288_GRF_SOC_CON6, .lcdsel_big = HIWORD_UPDATE(0, RK3288_EDP_LCDC_SEL), .lcdsel_lit = HIWORD_UPDATE(RK3288_EDP_LCDC_SEL, RK3288_EDP_LCDC_SEL),