From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sakari Ailus Subject: [PATCH v3 10/23] v4l: fwnode: Read lane inversion information despite lane numbering Date: Thu, 13 Sep 2018 00:29:29 +0300 Message-ID: <20180912212942.19641-11-sakari.ailus@linux.intel.com> References: <20180912212942.19641-1-sakari.ailus@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180912212942.19641-1-sakari.ailus@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org Cc: devicetree@vger.kernel.org, jacopo@jmondi.org, dri-devel@lists.freedesktop.org, slongerbeam@gmail.com, niklas.soderlund@ragnatech.se List-Id: devicetree@vger.kernel.org UmVhZCB0aGUgbGFuZSBpbnZlcnNpb24gaW5kZXBlbmRlbnRseSBvZiB3aGV0aGVyIHRoZSAiZGF0 YS1sYW5lcyIgcHJvcGVydHkKZXhpc3RzLiBUaGlzIG1ha2VzIHNlbnNlIHNpbmNlIHRoZSBjYWxs ZXIgbWF5IHBhc3MgdGhlIG51bWJlciBvZiBsYW5lcyBhcwp0aGUgZGVmYXVsdCBjb25maWd1cmF0 aW9uIHdoaWxlIHRoZSBsYW5lIGludmVyc2lvbiBjb25maWd1cmF0aW9uIG1heSBzdGlsbApiZSBh dmFpbGFibGUgaW4gZmlybXdhcmUuCgpTaWduZWQtb2ZmLWJ5OiBTYWthcmkgQWlsdXMgPHNha2Fy aS5haWx1c0BsaW51eC5pbnRlbC5jb20+ClRlc3RlZC1ieTogU3RldmUgTG9uZ2VyYmVhbSA8c3Rl dmVfbG9uZ2VyYmVhbUBtZW50b3IuY29tPgotLS0KIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0 bDItZndub2RlLmMgfCA2NSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItZndub2RlLmMgYi9kcml2ZXJzL21lZGlh L3Y0bDItY29yZS92NGwyLWZ3bm9kZS5jCmluZGV4IDc0YzJmNGUwM2U1Mi4uY2IwYjEyZWVmZTdm IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWZ3bm9kZS5jCisrKyBi L2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItZndub2RlLmMKQEAgLTQzLDI2ICs0MywzMSBA QCBlbnVtIHY0bDJfZndub2RlX2J1c190eXBlIHsKIH07CiAKIHN0YXRpYyBpbnQgdjRsMl9md25v ZGVfZW5kcG9pbnRfcGFyc2VfY3NpMl9idXMoc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSwK LQkJCQkJICAgICAgIHN0cnVjdCB2NGwyX2Z3bm9kZV9lbmRwb2ludCAqdmVwKQorCQkJCQkgICAg ICAgc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50ICp2ZXAsCisJCQkJCSAgICAgICBlbnVtIHY0 bDJfZndub2RlX2J1c190eXBlIGJ1c190eXBlKQogewogCXN0cnVjdCB2NGwyX2Z3bm9kZV9idXNf bWlwaV9jc2kyICpidXMgPSAmdmVwLT5idXMubWlwaV9jc2kyOwogCWJvb2wgaGF2ZV9jbGtfbGFu ZSA9IGZhbHNlOwogCXVuc2lnbmVkIGludCBmbGFncyA9IDAsIGxhbmVzX3VzZWQgPSAwOworCXUz MiBhcnJheVsxICsgVjRMMl9GV05PREVfQ1NJMl9NQVhfREFUQV9MQU5FU107CisJdW5zaWduZWQg aW50IG51bV9kYXRhX2xhbmVzID0gMDsKIAl1bnNpZ25lZCBpbnQgaTsKIAl1MzIgdjsKIAlpbnQg cnZhbDsKIAorCWlmIChidXNfdHlwZSA9PSBWNEwyX0ZXTk9ERV9CVVNfVFlQRV9DU0kyX0RQSFkp CisJCW51bV9kYXRhX2xhbmVzID0gbWluX3QodTMyLCBidXMtPm51bV9kYXRhX2xhbmVzLAorCQkJ CSAgICAgICBWNEwyX0ZXTk9ERV9DU0kyX01BWF9EQVRBX0xBTkVTKTsKKwogCXJ2YWwgPSBmd25v ZGVfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkoZndub2RlLCAiZGF0YS1sYW5lcyIsIE5VTEwsIDAp OwogCWlmIChydmFsID4gMCkgewotCQl1MzIgYXJyYXlbMSArIFY0TDJfRldOT0RFX0NTSTJfTUFY X0RBVEFfTEFORVNdOwotCi0JCWJ1cy0+bnVtX2RhdGFfbGFuZXMgPQorCQludW1fZGF0YV9sYW5l cyA9CiAJCQltaW5fdChpbnQsIFY0TDJfRldOT0RFX0NTSTJfTUFYX0RBVEFfTEFORVMsIHJ2YWwp OwogCiAJCWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMl9hcnJheShmd25vZGUsICJkYXRhLWxhbmVz IiwgYXJyYXksCi0JCQkJCSAgICAgICBidXMtPm51bV9kYXRhX2xhbmVzKTsKKwkJCQkJICAgICAg IG51bV9kYXRhX2xhbmVzKTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgYnVzLT5udW1fZGF0YV9sYW5l czsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCBudW1fZGF0YV9sYW5lczsgaSsrKSB7CiAJCQlp ZiAobGFuZXNfdXNlZCAmIEJJVChhcnJheVtpXSkpCiAJCQkJcHJfd2FybigiZHVwbGljYXRlZCBs YW5lICV1IGluIGRhdGEtbGFuZXNcbiIsCiAJCQkJCWFycmF5W2ldKTsKQEAgLTcxLDMwICs3Niwy NyBAQCBzdGF0aWMgaW50IHY0bDJfZndub2RlX2VuZHBvaW50X3BhcnNlX2NzaTJfYnVzKHN0cnVj dCBmd25vZGVfaGFuZGxlICpmd25vZGUsCiAJCQlidXMtPmRhdGFfbGFuZXNbaV0gPSBhcnJheVtp XTsKIAkJCXByX2RlYnVnKCJsYW5lICV1IHBvc2l0aW9uICV1XG4iLCBpLCBhcnJheVtpXSk7CiAJ CX0KKwl9CiAKLQkJcnZhbCA9IGZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMl9hcnJheShmd25vZGUs Ci0JCQkJCQkgICAgICAibGFuZS1wb2xhcml0aWVzIiwgTlVMTCwKLQkJCQkJCSAgICAgIDApOwot CQlpZiAocnZhbCA+IDApIHsKLQkJCWlmIChydmFsICE9IDEgKyBidXMtPm51bV9kYXRhX2xhbmVz IC8qIGNsb2NrK2RhdGEgKi8pIHsKLQkJCQlwcl93YXJuKCJpbnZhbGlkIG51bWJlciBvZiBsYW5l LXBvbGFyaXRpZXMgZW50cmllcyAobmVlZCAldSwgZ290ICV1KVxuIiwKLQkJCQkJMSArIGJ1cy0+ bnVtX2RhdGFfbGFuZXMsIHJ2YWwpOwotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJfQorCXJ2YWwg PSBmd25vZGVfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkoZndub2RlLCAibGFuZS1wb2xhcml0aWVz IiwgTlVMTCwKKwkJCQkJICAgICAgMCk7CisJaWYgKHJ2YWwgPiAwKSB7CisJCWlmIChydmFsICE9 IDEgKyBudW1fZGF0YV9sYW5lcyAvKiBjbG9jaytkYXRhICovKSB7CisJCQlwcl93YXJuKCJpbnZh bGlkIG51bWJlciBvZiBsYW5lLXBvbGFyaXRpZXMgZW50cmllcyAobmVlZCAldSwgZ290ICV1KVxu IiwKKwkJCQkxICsgbnVtX2RhdGFfbGFuZXMsIHJ2YWwpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJ CX0KIAotCQkJZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KGZ3bm9kZSwKLQkJCQkJCSAg ICAgICAibGFuZS1wb2xhcml0aWVzIiwgYXJyYXksCi0JCQkJCQkgICAgICAgMSArIGJ1cy0+bnVt X2RhdGFfbGFuZXMpOworCQlmd25vZGVfcHJvcGVydHlfcmVhZF91MzJfYXJyYXkoZndub2RlLCAi bGFuZS1wb2xhcml0aWVzIiwgYXJyYXksCisJCQkJCSAgICAgICAxICsgbnVtX2RhdGFfbGFuZXMp OwogCi0JCQlmb3IgKGkgPSAwOyBpIDwgMSArIGJ1cy0+bnVtX2RhdGFfbGFuZXM7IGkrKykgewot CQkJCWJ1cy0+bGFuZV9wb2xhcml0aWVzW2ldID0gYXJyYXlbaV07Ci0JCQkJcHJfZGVidWcoImxh bmUgJXUgcG9sYXJpdHkgJXNpbnZlcnRlZCIsCi0JCQkJCSBpLCBhcnJheVtpXSA/ICIiIDogIm5v dCAiKTsKLQkJCX0KLQkJfSBlbHNlIHsKLQkJCXByX2RlYnVnKCJubyBsYW5lIHBvbGFyaXRpZXMg ZGVmaW5lZCwgYXNzdW1pbmcgbm90IGludmVydGVkXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IDEg KyBudW1fZGF0YV9sYW5lczsgaSsrKSB7CisJCQlidXMtPmxhbmVfcG9sYXJpdGllc1tpXSA9IGFy cmF5W2ldOworCQkJcHJfZGVidWcoImxhbmUgJXUgcG9sYXJpdHkgJXNpbnZlcnRlZCIsCisJCQkJ IGksIGFycmF5W2ldID8gIiIgOiAibm90ICIpOwogCQl9Ci0KKwl9IGVsc2UgeworCQlwcl9kZWJ1 Zygibm8gbGFuZSBwb2xhcml0aWVzIGRlZmluZWQsIGFzc3VtaW5nIG5vdCBpbnZlcnRlZFxuIik7 CiAJfQogCiAJaWYgKCFmd25vZGVfcHJvcGVydHlfcmVhZF91MzIoZndub2RlLCAiY2xvY2stbGFu ZXMiLCAmdikpIHsKQEAgLTExNCwxMCArMTE2LDExIEBAIHN0YXRpYyBpbnQgdjRsMl9md25vZGVf ZW5kcG9pbnRfcGFyc2VfY3NpMl9idXMoc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSwKIAkJ ZmxhZ3MgfD0gVjRMMl9NQlVTX0NTSTJfQ09OVElOVU9VU19DTE9DSzsKIAl9CiAKLQlpZiAobGFu ZXNfdXNlZCB8fCBoYXZlX2Nsa19sYW5lIHx8Ci0JICAgIChmbGFncyAmIH5WNEwyX01CVVNfQ1NJ Ml9DT05USU5VT1VTX0NMT0NLKSkgeworCWlmIChidXNfdHlwZSA9PSBWNEwyX0ZXTk9ERV9CVVNf VFlQRV9DU0kyX0RQSFkgfHwgbGFuZXNfdXNlZCB8fAorCSAgICBoYXZlX2Nsa19sYW5lIHx8IChm bGFncyAmIH5WNEwyX01CVVNfQ1NJMl9DT05USU5VT1VTX0NMT0NLKSkgewogCQlidXMtPmZsYWdz ID0gZmxhZ3M7CiAJCXZlcC0+YnVzX3R5cGUgPSBWNEwyX01CVVNfQ1NJMl9EUEhZOworCQlidXMt Pm51bV9kYXRhX2xhbmVzID0gbnVtX2RhdGFfbGFuZXM7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0y NzMsNyArMjc2LDggQEAgc3RhdGljIGludCBfX3Y0bDJfZndub2RlX2VuZHBvaW50X3BhcnNlKHN0 cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsCiAKIAlzd2l0Y2ggKGJ1c190eXBlKSB7CiAJY2Fz ZSBWNEwyX0ZXTk9ERV9CVVNfVFlQRV9HVUVTUzoKLQkJcnZhbCA9IHY0bDJfZndub2RlX2VuZHBv aW50X3BhcnNlX2NzaTJfYnVzKGZ3bm9kZSwgdmVwKTsKKwkJcnZhbCA9IHY0bDJfZndub2RlX2Vu ZHBvaW50X3BhcnNlX2NzaTJfYnVzKGZ3bm9kZSwgdmVwLAorCQkJCQkJCSAgIGJ1c190eXBlKTsK IAkJaWYgKHJ2YWwpCiAJCQlyZXR1cm4gcnZhbDsKIApAQCAtMjg5LDcgKzI5Myw4IEBAIHN0YXRp YyBpbnQgX192NGwyX2Z3bm9kZV9lbmRwb2ludF9wYXJzZShzdHJ1Y3QgZndub2RlX2hhbmRsZSAq Zndub2RlLAogCQlicmVhazsKIAljYXNlIFY0TDJfRldOT0RFX0JVU19UWVBFX0NTSTJfRFBIWToK IAkJdmVwLT5idXNfdHlwZSA9IFY0TDJfTUJVU19DU0kyX0RQSFk7Ci0JCXJ2YWwgPSB2NGwyX2Z3 bm9kZV9lbmRwb2ludF9wYXJzZV9jc2kyX2J1cyhmd25vZGUsIHZlcCk7CisJCXJ2YWwgPSB2NGwy X2Z3bm9kZV9lbmRwb2ludF9wYXJzZV9jc2kyX2J1cyhmd25vZGUsIHZlcCwKKwkJCQkJCQkgICBi dXNfdHlwZSk7CiAJCWlmIChydmFsKQogCQkJcmV0dXJuIHJ2YWw7CiAKLS0gCjIuMTEuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==