From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH 0/3] drm/mxsfb: support swapped RGB lanes Date: Mon, 7 Jan 2019 19:04:25 +0100 Message-ID: <20190107180425.GA28018@ravnborg.org> References: <20190102170247.8208-1-a.fatoum@pengutronix.de> <719c261f00bef5b805bf74b53e7d6cc5@agner.ch> <20190102213757.GA28180@ravnborg.org> <2088ee21-ec2a-933a-5c28-6b1d23f8b54d@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from asavdk4.altibox.net (asavdk4.altibox.net [109.247.116.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 993C16EDF8 for ; Mon, 7 Jan 2019 18:04:30 +0000 (UTC) Content-Disposition: inline In-Reply-To: <2088ee21-ec2a-933a-5c28-6b1d23f8b54d@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ahmad Fatoum Cc: Marek Vasut , David Airlie , dri-devel@lists.freedesktop.org, kernel@pengutronix.de, Peter Rosin List-Id: dri-devel@lists.freedesktop.org SGkgQWhtYWQuCgo+IE9uIDIvMS8xOSAyMjozNywgU2FtIFJhdm5ib3JnIHdyb3RlOgo+ID4gVGhl IHByb2JsZW0gd2l0aCB0aGUgUkVEL0JMVUUgbGluZXMgc3dhcHBlZCBpcyBzb21ldGhpbmcgSQo+ ID4gaGF2ZSBlbmNvdW50ZXJlZCB3aGlsZSB3b3JraW5nIHdpdGggRFJNIHN1cHBvcnQgZm9yIEF0 bWVsIGF0OTFzYW05MjYzIHRvby4KPiA+IAo+ID4gVGhlIHNvbHV0aW9uIHNlbGVjdGVkIGlzIHRv IGV4dGVuZCB0aGUgZW5kcG9pbnQgd2l0aAo+ID4gYSBuZXcgb3B0aW9uYWwgcHJvcGVydHk6Cj4g PiAKPiA+IC0gd2lyaW5nOiBXaXJpbmcgb2YgZGF0YSBsaW5lcyB0byBkaXNwbGF5Lgo+ID4gICAi c3RyYWlnaHQiIC0gbm9ybWFsIHdpcmluZy4KPiA+ICAgInJlZC1ibHVlLXJldmVyc2VkIiAtIHJl ZCBhbmQgYmx1ZSBsaW5lcyByZXZlcnNlZC4KPiA+IAo+ID4gKG1lZGlhL3ZpZGVvLWludGVyZmFj ZXMudHh0KQo+ID4gCj4gPiAKPiA+IFRoZSBEVCBub2RlIGxvb2tzIGxpa2UgdGhpczoKPiA+IAo+ ID4gICAgICAgICAgICAgICAgcG9ydEAwIHsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHJl ZyA9IDwwPjsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gPDE+ Owo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47Cj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICBsY2RjX3BhbmVsX291dHB1dDogZW5kcG9pbnRAMCB7Cj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZyA9IDwwPjsKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgd2lyaW5nID0gInJlZC1ibHVlLXJldmVyc2VkIjsKPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZwYW5lbF9p bnB1dD47Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICB9Owo+ID4gICAgICAgICAgICAgICAg IH07Cj4gPiAKPiA+IFRoaXMgYWxsb3dzIHVzIHRvIHNwZWNpZnkgdGhlIHN3YXBwaW5nIGluIHRo ZSBlbmRwb2ludCBhbmQKPiA+IG5vdCBpbiB0aGUgcGFuZWwuCj4gPiBTbyB3ZSBjYW4gdXNlIHRo ZSBzYW1lIHBhbmVsLCB3aXRoIHRoZSBzYW1lIGJ1c19mb3JtYXQsIGluIHNldmVyYWwKPiA+IGRl c2lnbnMgc29tZSB3aXRoIHJlZC1ibHVlIHN3YXBwZWQgKHJldmVyc2VkKSwgYW5kIHNvbWUgbm90 Lgo+IAo+IEEgY29sbGVhZ3VlIHN1Z2dlc3RlZCBhIHByb3BlcnR5IGluIHRoZSBlbmRwb2ludCBh cyB3ZWxsLCBidXQgSSBzaGllZAo+IGF3YXkgYmVjYXVzZSBvZiB0aGUgZXh0cmEgaGFzc2xlLiBT ZWVtcyB0aGVyZSdzIHdvbid0IGJlIGEgd2F5IGFyb3VuZCBpdCBeXicuLgo+IAo+IEhvdyBkbyB5 b3UgaW50ZW5kIHRvIHByb3BhZ2F0ZSB0aGlzIGRpZmZlcmVudCB3aXJpbmcgc2V0dGluZz8KClRo ZSB3YXkgSSBoYXZlIGl0IGltcGxtZW50ZWQgaXMgbW9yZSBvciBsZXNzIGxpa2UgdGhpczoKCkZp cnN0IGZpbmQgdGhlIHdpcmluZyBwcm9wZXJ0eToKMSkgTG9vayB1cCBlbmRwb2ludCB1c2luZyBv Zl9ncmFwaF9nZXRfZW5kcG9pbnRfYnlfcmVncygpCjIpIEdldCB3aXJpbmcgcHJvcGVydHkKMykg b2Zfbm9kZV9wdXQoZW5kcG9pbnQpOwoKQW5kIHRoZW4gZmluZCBhbmQgYXR0YWNoIHRoZSBwYW5l bDoKNCkgZHJtX29mX2ZpbmRfcGFuZWxfb3JfYnJpZGdlKGRldi0+b2Zfbm9kZSwgMCwgMCwgJnBh bmVsLCAmYnJpZGdlKTsKNSkgZGV2bV9kcm1fcGFuZWxfYnJpZGdlX2FkZChkZXYsIHBhbmVsLCBE Uk1fTU9ERV9DT05ORUNUT1JfRFBJKTsKNikgVGhlbiBiYXNlZCBvbiB0aGUgd2lyaW5nIHByb3Bl cnR5IEkgYWRqdXN0IGJ1c19mb3JtYXQKNykgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfaW5pdCgp CjgpIGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2F0dGFjaF9icmlkZ2UoKQoKQnV0IHRoaXMgaXMg YWxsIHZpcmdpbiBjb2RlIHRoYXQgZm9yIG5vdyBjYW4gYnVpbGQsCmJ1dCBoYXMgbm90IHlldCBz ZWVuIGFueSB0ZXN0aW5nLgpJdCBpcyBhIGxvdCBvZiBib2lsZXJwbGF0ZSBmb3Igc29tZXRoaW5n IHJlbGF0aXZlbHkgc2ltcGxlCmFuZCBJIGhvcGUgdGhlcmUgYXJlIHdheXMgdG8gc2ltcGxpZnkg dGhpcy4KUmVsZXZhbnQgcGFydHMgb2YgdGhlIGZpbGUgcGFzdGVkIGJlbG93LgoKQnV0IHRoZSB0 cmFuc2xhdGlvbiBvZiBidXNfZm9ybWF0IGluIGEgY2VudHJhbCBwbGFjZSBtYXkgcHJvdmUgYSBi aXQKZGlmZmljdWx0IGFuZCBJIGFzc3VtZSB0aGlzIGFzIHNvbWV0aGluZyB0aGF0IGNhbiBkaWZm ZXIKYSBsb3QgYmV0d2VlbiBkaWZmZXJlbnQgSFcgc29sdXRpb25zLgoKPiBIb3cgYWJvdXQgaGF2 aW5nIGRybV9vZl9maW5kX3BhbmVsX29yX2JyaWRnZSBhZGp1c3QgdGhlCj4gKCpwYW5lbCktPmNv bm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzIGFycmF5IHRvIGFjY291bnQgZm9yIHRo ZQo+IGRpZmZlcmVudCB3aXJpbmc/IFRoYXQgd2F5IHRoZXJlIHNob3VsZG4ndCBiZSBhbnkgbmVl ZCB0byBhZGp1c3QgZHJpdmVycy4KQnV0IGlmIHlvdSBwcm92ZSBtZSB3cm9uZyBhbmQgdGhpcyBm bHkgSSBhbSBhbGwgZm9yIGl0LgoKS2VlcCBpbiBtaW5kIHRoYXQgSSBhbSBub3ZpY2UgaW4gdGhl IERSTSBsYW5kLiBTbyB0aGVyZSBtYXkgYmUgYmV0dGVyIHdheXMgdG8gZG8gaXQuCgoJU2FtCgoK c3RhdGljIGludCBsY2RjX2dldF9vZl93aXJpbmcoc3RydWN0IGxjZGMgKmxjZGMsCgkJCSAgICAg IGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqZXApCnsKCWNvbnN0IGNoYXIgKnN0cjsKCWludCBy ZXQ7CgoJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmcoZXAsICJ3aXJpbmciLCAmc3RyKTsK CWlmIChyZXQpCgkJcmV0dXJuIHJldDsKCglpZiAoc3RyY21wKHN0ciwgInJlZC1ncmVlbi1yZXZl cnNlZCIpID09IDApIHsKCQlsY2RjLT53aXJpbmdfcmV2ZXJzZWQgPSB0cnVlOwoJfSBlbHNlIGlm IChzdHJjbXAoc3RyLCAic3RyYWlnaHQiKSA9PSAwKSB7CgkJLyogVXNlIGRlZmF1bHQgZm9ybWF0 ICovCgl9IGVsc2UgewoJCURSTV9ERVZfRVJST1IobGNkYy0+ZGV2LCAidW5rbm93biBcIndpcmlu Z1wiIHByb3BlcnR5OiAlcyIsCgkJCSAgICAgIHN0cik7CgkJcmV0dXJuIC1FSU5WQUw7Cgl9CgoJ cmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgbGNkY19kaXNwbGF5X2luaXQoc3RydWN0IGxjZGMgKmxj ZGMsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCnsKCXN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICpk aXNwbGF5X2luZm87Cgljb25zdCB1MzIgKmZvcm1hdHM7CglzaXplX3QgbmZvcm1hdHM7CglpbnQg cmV0OwoKCWRpc3BsYXlfaW5mbyA9ICZsY2RjLT5wYW5lbC0+Y29ubmVjdG9yLT5kaXNwbGF5X2lu Zm87CgoJaWYgKCFkaXNwbGF5X2luZm8tPm51bV9idXNfZm9ybWF0cyB8fCAhZGlzcGxheV9pbmZv LT5idXNfZm9ybWF0cykgewoJCURSTV9ERVZfRVJST1IobGNkYy0+ZGV2LCAibWlzc2luZyBidXNf Zm9ybWF0IGZyb20gcGFuZWwiKTsKCQlyZXR1cm4gLUVJTlZBTDsKCX0KCglzd2l0Y2ggKGRpc3Bs YXlfaW5mby0+YnVzX2Zvcm1hdHNbMF0pIHsKCQljYXNlIE1FRElBX0JVU19GTVRfUkdCODg4XzFY MjQ6CgkJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjU2NV8xWDE2OgoJCQlsY2RjLT5idXNfZm9ybWF0 ID0gZGlzcGxheV9pbmZvLT5idXNfZm9ybWF0c1swXTsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJ RFJNX0RFVl9FUlJPUihsY2RjLT5kZXYsICJ1bnN1cHBvcnRlZCBidXNfZm9ybWF0OiAlZCIsCgkJ CQkgICAgICBkaXNwbGF5X2luZm8tPmJ1c19mb3JtYXRzWzBdKTsKCQkJcmV0dXJuIC1FSU5WQUw7 Cgl9CgoJLyogU2VsZWN0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHdpcmluZyAoZnJvbSBidXNfZm9y bWF0cyArIGZyb20gRFQpICovCglpZiAobGNkYy0+YnVzX2Zvcm1hdCA9PSBNRURJQV9CVVNfRk1U X1JHQjg4OF8xWDI0KSB7CgkJaWYgKCFsY2RjLT53aXJpbmdfcmV2ZXJzZWQpIHsKCQkJZm9ybWF0 cyA9IGJncl9mb3JtYXRzXzI0OwoJCQluZm9ybWF0cyA9IEFSUkFZX1NJWkUoYmdyX2Zvcm1hdHNf MjQpOwoJCX0gZWxzZSB7CgkJCWZvcm1hdHMgPSByZ2JfZm9ybWF0c18yNDsKCQkJbmZvcm1hdHMg PSBBUlJBWV9TSVpFKHJnYl9mb3JtYXRzXzI0KTsKCQl9Cgl9IGVsc2UgewoJCWlmICghbGNkYy0+ d2lyaW5nX3JldmVyc2VkKSB7CgkJCWZvcm1hdHMgPSBiZ3JfZm9ybWF0c18xNjsKCQkJbmZvcm1h dHMgPSBBUlJBWV9TSVpFKGJncl9mb3JtYXRzXzE2KTsKCQl9IGVsc2UgewoJCQlmb3JtYXRzID0g cmdiX2Zvcm1hdHNfMTY7CgkJCW5mb3JtYXRzID0gQVJSQVlfU0laRShyZ2JfZm9ybWF0c18xNik7 CgkJfQoJfQoKCXJldCA9IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoZHJtLCAmbGNkYy0+ cGlwZSwKCQkJCQkgICAmbGNkY19kaXNwbGF5X2Z1bmNzLAoJCQkJCSAgIGZvcm1hdHMsIG5mb3Jt YXRzLAoJCQkJCSAgIE5VTEwsICZsY2RjLT5jb25uZWN0b3IpOwoJaWYgKHJldCA8IDApCgkJRFJN X0RFVl9FUlJPUihsY2RjLT5kZXYsICJmYWlsZWQgdG8gaW5pdCBkaXNwbGF5IHBpcGU6ICVkIiwK CQkJICAgICAgcmV0KTsKCglyZXR1cm4gcmV0Owp9CgpzdGF0aWMgaW50IGxjZGNfYXR0YWNoX3Bh bmVsKHN0cnVjdCBsY2RjICpsY2RjLCBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQp7CglzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlOwoJc3RydWN0IGRybV9wYW5lbCAqcGFuZWw7CglzdHJ1Y3QgZGV2 aWNlICpkZXY7CglpbnQgcmV0OwoKCWRldiA9IGxjZGMtPmRldjsKCglyZXQgPSBkcm1fb2ZfZmlu ZF9wYW5lbF9vcl9icmlkZ2UoZGV2LT5vZl9ub2RlLCAwLCAwLCAmcGFuZWwsICZicmlkZ2UpOwoJ aWYgKHJldCA8IDApCgkJcmV0dXJuIHJldDsKCglpZiAocGFuZWwpIHsKCQlsY2RjLT5wYW5lbCA9 IHBhbmVsOwoJCWJyaWRnZSA9IGRldm1fZHJtX3BhbmVsX2JyaWRnZV9hZGQoZGV2LCBwYW5lbCwK CQkJCQkJICAgRFJNX01PREVfQ09OTkVDVE9SX0RQSSk7CgkJcmV0ID0gUFRSX0VSUl9PUl9aRVJP KGJyaWRnZSk7CgkJaWYgKHJldCA8IDApIHsKCQkJRFJNX0RFVl9FUlJPUihkZXYsICJmYWlsZWQg dG8gYWRkIGJyaWRnZTogJWQiLCByZXQpOwoJCQlyZXR1cm4gcmV0OwoJCX0KCgl9IGVsc2UgewoJ CURSTV9ERVZfRVJST1IoZGV2LCAidGhlIGJyaWRnZSBpcyBub3QgYSBwYW5lbCIpOwoJCXJldHVy biAtRU5PREVWOwoJfQoKCXJldCA9IGxjZGNfZGlzcGxheV9pbml0KGxjZGMsIGRybSk7CglpZiAo cmV0IDwgMCkKCQlyZXR1cm4gcmV0OwoKCXJldCA9IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2F0 dGFjaF9icmlkZ2UoJmxjZGMtPnBpcGUsIGJyaWRnZSk7CglpZiAocmV0IDwgMCkKCQlEUk1fREVW X0VSUk9SKGRldiwgImZhaWxlZCB0byBhdHRhY2ggYnJpZGdlOiAlZCIsIHJldCk7CgoJcmV0dXJu IHJldDsKfQoKc3RhdGljIGludCBsY2RjX2NyZWF0ZV9vdXRwdXQoc3RydWN0IGxjZGMgKmxjZGMs IHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCnsKCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW5kcG9pbnQ7 CglpbnQgcmV0OwoKCS8qIHBvcnRAMC9lbmRwb2ludEAwIGlzIHRoZSBvbmx5IHBvcnQvZW5kcG9p bnQgKi8KCWVuZHBvaW50ID0gb2ZfZ3JhcGhfZ2V0X2VuZHBvaW50X2J5X3JlZ3MoZHJtLT5kZXYt Pm9mX25vZGUsIDAsIDApOwoJaWYgKCFlbmRwb2ludCkgewoJCURSTV9ERVZfRVJST1IobGNkYy0+ ZGV2LCAiZmFpbGVkIHRvIGZpbmQgZW5kcG9pbnQgbm9kZSIpOwoJCXJldHVybiAtRU5PREVWOwoJ fQoKCWxjZGNfZ2V0X29mX3dpcmluZyhsY2RjLCBlbmRwb2ludCk7CglvZl9ub2RlX3B1dChlbmRw b2ludCk7CgoJcmV0ID0gbGNkY19hdHRhY2hfcGFuZWwobGNkYywgZHJtKTsKCglyZXR1cm4gcmV0 Owp9CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==