From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sakari Ailus Subject: [PATCH v3 13/23] v4l: fwnode: Support default CSI-2 lane mapping for drivers Date: Thu, 13 Sep 2018 00:29:32 +0300 Message-ID: <20180912212942.19641-14-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 TW9zdCBoYXJkd2FyZSBkb2Vzbid0IHN1cHBvcnQgcmUtbWFwcGluZyBvZiB0aGUgQ1NJLTIgbGFu ZXMuIEVzcGVjaWFsbHkKc2Vuc29yIGRyaXZlcnMgaGF2ZSBhIGRlZmF1bHQgbnVtYmVyIG9mIGxh bmVzLiBJbnN0ZWFkIG9mIHJlcXVpcmluZyB0aGUKY2FsbGVyICh0aGUgZHJpdmVyKSB0byBwcm92 aWRlIHN1Y2ggYSB1bml0IG1hcHBpbmcsIHByb3ZpZGUgb25lIGlmIG5vCm1hcHBpbmcgaXMgY29u ZmlndXJlZC4KClNpZ25lZC1vZmYtYnk6IFNha2FyaSBBaWx1cyA8c2FrYXJpLmFpbHVzQGxpbnV4 LmludGVsLmNvbT4KVGVzdGVkLWJ5OiBTdGV2ZSBMb25nZXJiZWFtIDxzdGV2ZV9sb25nZXJiZWFt QG1lbnRvci5jb20+Ci0tLQogZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1md25vZGUuYyB8 IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NDYgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZWRpYS92NGwyLWNvcmUvdjRsMi1md25vZGUuYyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0 bDItZndub2RlLmMKaW5kZXggNjRjMjNjYmY2ZjBiLi5kYmUwYWRhNzRjNjMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItZndub2RlLmMKKysrIGIvZHJpdmVycy9tZWRp YS92NGwyLWNvcmUvdjRsMi1md25vZGUuYwpAQCAtNDcsMjAgKzQ3LDM1IEBAIHN0YXRpYyBpbnQg djRsMl9md25vZGVfZW5kcG9pbnRfcGFyc2VfY3NpMl9idXMoc3RydWN0IGZ3bm9kZV9oYW5kbGUg KmZ3bm9kZSwKIAkJCQkJICAgICAgIGVudW0gdjRsMl9md25vZGVfYnVzX3R5cGUgYnVzX3R5cGUp CiB7CiAJc3RydWN0IHY0bDJfZndub2RlX2J1c19taXBpX2NzaTIgKmJ1cyA9ICZ2ZXAtPmJ1cy5t aXBpX2NzaTI7Ci0JYm9vbCBoYXZlX2Nsa19sYW5lID0gZmFsc2UsIGhhdmVfbGFuZV9wb2xhcml0 aWVzID0gZmFsc2U7CisJYm9vbCBoYXZlX2Nsa19sYW5lID0gZmFsc2UsIGhhdmVfZGF0YV9sYW5l cyA9IGZhbHNlLAorCQloYXZlX2xhbmVfcG9sYXJpdGllcyA9IGZhbHNlOwogCXVuc2lnbmVkIGlu dCBmbGFncyA9IDAsIGxhbmVzX3VzZWQgPSAwOwogCXUzMiBhcnJheVsxICsgVjRMMl9GV05PREVf Q1NJMl9NQVhfREFUQV9MQU5FU107CisJdTMyIGNsb2NrX2xhbmUgPSAwOwogCXVuc2lnbmVkIGlu dCBudW1fZGF0YV9sYW5lcyA9IDA7CisJYm9vbCB1c2VfZGVmYXVsdF9sYW5lX21hcHBpbmcgPSBm YWxzZTsKIAl1bnNpZ25lZCBpbnQgaTsKIAl1MzIgdjsKIAlpbnQgcnZhbDsKIAogCWlmIChidXNf dHlwZSA9PSBWNEwyX0ZXTk9ERV9CVVNfVFlQRV9DU0kyX0RQSFkpIHsKKwkJdXNlX2RlZmF1bHRf bGFuZV9tYXBwaW5nID0gdHJ1ZTsKKwogCQludW1fZGF0YV9sYW5lcyA9IG1pbl90KHUzMiwgYnVz LT5udW1fZGF0YV9sYW5lcywKIAkJCQkgICAgICAgVjRMMl9GV05PREVfQ1NJMl9NQVhfREFUQV9M QU5FUyk7CiAKLQkJZm9yIChpID0gMDsgaSA8IG51bV9kYXRhX2xhbmVzOyBpKyspCisJCWNsb2Nr X2xhbmUgPSBidXMtPmNsb2NrX2xhbmU7CisJCWlmIChjbG9ja19sYW5lKQorCQkJdXNlX2RlZmF1 bHRfbGFuZV9tYXBwaW5nID0gZmFsc2U7CisKKwkJZm9yIChpID0gMDsgaSA8IG51bV9kYXRhX2xh bmVzOyBpKyspIHsKIAkJCWFycmF5W2ldID0gYnVzLT5kYXRhX2xhbmVzW2ldOworCQkJaWYgKGFy cmF5W2ldKQorCQkJCXVzZV9kZWZhdWx0X2xhbmVfbWFwcGluZyA9IGZhbHNlOworCQl9CisKKwkJ aWYgKHVzZV9kZWZhdWx0X2xhbmVfbWFwcGluZykKKwkJCXByX2RlYnVnKCJ1c2luZyBkZWZhdWx0 IGxhbmUgbWFwcGluZ1xuIik7CiAJfQogCiAJcnZhbCA9IGZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3Uz Ml9hcnJheShmd25vZGUsICJkYXRhLWxhbmVzIiwgTlVMTCwgMCk7CkBAIC03MCwxNSArODUsMjEg QEAgc3RhdGljIGludCB2NGwyX2Z3bm9kZV9lbmRwb2ludF9wYXJzZV9jc2kyX2J1cyhzdHJ1Y3Qg Zndub2RlX2hhbmRsZSAqZndub2RlLAogCiAJCWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMl9hcnJh eShmd25vZGUsICJkYXRhLWxhbmVzIiwgYXJyYXksCiAJCQkJCSAgICAgICBudW1fZGF0YV9sYW5l cyk7CisKKwkJaGF2ZV9kYXRhX2xhbmVzID0gdHJ1ZTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwg bnVtX2RhdGFfbGFuZXM7IGkrKykgewotCQlpZiAobGFuZXNfdXNlZCAmIEJJVChhcnJheVtpXSkp Ci0JCQlwcl93YXJuKCJkdXBsaWNhdGVkIGxhbmUgJXUgaW4gZGF0YS1sYW5lc1xuIiwKLQkJCQlh cnJheVtpXSk7CisJCWlmIChsYW5lc191c2VkICYgQklUKGFycmF5W2ldKSkgeworCQkJaWYgKGhh dmVfZGF0YV9sYW5lcyB8fCAhdXNlX2RlZmF1bHRfbGFuZV9tYXBwaW5nKQorCQkJCXByX3dhcm4o ImR1cGxpY2F0ZWQgbGFuZSAldSBpbiBkYXRhLWxhbmVzLCB1c2luZyBkZWZhdWx0c1xuIiwKKwkJ CQkJYXJyYXlbaV0pOworCQkJdXNlX2RlZmF1bHRfbGFuZV9tYXBwaW5nID0gdHJ1ZTsKKwkJfQog CQlsYW5lc191c2VkIHw9IEJJVChhcnJheVtpXSk7CiAKLQkJcHJfZGVidWcoImxhbmUgJXUgcG9z aXRpb24gJXVcbiIsIGksIGFycmF5W2ldKTsKKwkJaWYgKGhhdmVfZGF0YV9sYW5lcykKKwkJCXBy X2RlYnVnKCJsYW5lICV1IHBvc2l0aW9uICV1XG4iLCBpLCBhcnJheVtpXSk7CiAJfQogCiAJcnZh bCA9IGZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMl9hcnJheShmd25vZGUsICJsYW5lLXBvbGFyaXRp ZXMiLCBOVUxMLApAQCAtOTQsMTMgKzExNSwxNiBAQCBzdGF0aWMgaW50IHY0bDJfZndub2RlX2Vu ZHBvaW50X3BhcnNlX2NzaTJfYnVzKHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsCiAJfQog CiAJaWYgKCFmd25vZGVfcHJvcGVydHlfcmVhZF91MzIoZndub2RlLCAiY2xvY2stbGFuZXMiLCAm dikpIHsKLQkJaWYgKGxhbmVzX3VzZWQgJiBCSVQodikpCi0JCQlwcl93YXJuKCJkdXBsaWNhdGVk IGxhbmUgJXUgaW4gY2xvY2stbGFuZXNcbiIsIHYpOwotCQlsYW5lc191c2VkIHw9IEJJVCh2KTsK LQotCQlidXMtPmNsb2NrX2xhbmUgPSB2OwotCQloYXZlX2Nsa19sYW5lID0gdHJ1ZTsKKwkJY2xv Y2tfbGFuZSA9IHY7CiAJCXByX2RlYnVnKCJjbG9jayBsYW5lIHBvc2l0aW9uICV1XG4iLCB2KTsK KwkJaGF2ZV9jbGtfbGFuZSA9IHRydWU7CisJfQorCisJaWYgKGxhbmVzX3VzZWQgJiBCSVQoY2xv Y2tfbGFuZSkpIHsKKwkJaWYgKGhhdmVfY2xrX2xhbmUgfHwgIXVzZV9kZWZhdWx0X2xhbmVfbWFw cGluZykKKwkJCXByX3dhcm4oImR1cGxpY2F0ZWQgbGFuZSAldSBpbiBjbG9jay1sYW5lcywgdXNp bmcgZGVmYXVsdHNcbiIsCisJCQl2KTsKKwkJdXNlX2RlZmF1bHRfbGFuZV9tYXBwaW5nID0gdHJ1 ZTsKIAl9CiAKIAlpZiAoZndub2RlX3Byb3BlcnR5X3ByZXNlbnQoZndub2RlLCAiY2xvY2stbm9u Y29udGludW91cyIpKSB7CkBAIC0xMTUsOCArMTM5LDE2IEBAIHN0YXRpYyBpbnQgdjRsMl9md25v ZGVfZW5kcG9pbnRfcGFyc2VfY3NpMl9idXMoc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSwK IAkJYnVzLT5mbGFncyA9IGZsYWdzOwogCQl2ZXAtPmJ1c190eXBlID0gVjRMMl9NQlVTX0NTSTJf RFBIWTsKIAkJYnVzLT5udW1fZGF0YV9sYW5lcyA9IG51bV9kYXRhX2xhbmVzOwotCQlmb3IgKGkg PSAwOyBpIDwgbnVtX2RhdGFfbGFuZXM7IGkrKykKLQkJCWJ1cy0+ZGF0YV9sYW5lc1tpXSA9IGFy cmF5W2ldOworCisJCWlmICh1c2VfZGVmYXVsdF9sYW5lX21hcHBpbmcpIHsKKwkJCWJ1cy0+Y2xv Y2tfbGFuZSA9IDA7CisJCQlmb3IgKGkgPSAwOyBpIDwgbnVtX2RhdGFfbGFuZXM7IGkrKykKKwkJ CQlidXMtPmRhdGFfbGFuZXNbaV0gPSAxICsgaTsKKwkJfSBlbHNlIHsKKwkJCWJ1cy0+Y2xvY2tf bGFuZSA9IGNsb2NrX2xhbmU7CisJCQlmb3IgKGkgPSAwOyBpIDwgbnVtX2RhdGFfbGFuZXM7IGkr KykKKwkJCQlidXMtPmRhdGFfbGFuZXNbaV0gPSBhcnJheVtpXTsKKwkJfQogCiAJCWlmIChoYXZl X2xhbmVfcG9sYXJpdGllcykgewogCQkJZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KGZ3 bm9kZSwKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==