From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sakari Ailus Subject: [PATCH v3 01/23] v4l: fwnode: Add debug prints for V4L2 endpoint property parsing Date: Thu, 13 Sep 2018 00:29:20 +0300 Message-ID: <20180912212942.19641-2-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 UHJpbnQgZGVidWcgaW5mbyBhcyBzdGFuZGFyZCBWNEwyIGVuZHBvaW50IGFyZSBwYXJzZWQuCgpT aWduZWQtb2ZmLWJ5OiBTYWthcmkgQWlsdXMgPHNha2FyaS5haWx1c0BsaW51eC5pbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBOaWtsYXMgU8O2ZGVybHVuZCA8bmlrbGFzLnNvZGVybHVuZCtyZW5lc2Fz QHJhZ25hdGVjaC5zZT4KVGVzdGVkLWJ5OiBTdGV2ZSBMb25nZXJiZWFtIDxzdGV2ZV9sb25nZXJi ZWFtQG1lbnRvci5jb20+Ci0tLQogZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1md25vZGUu YyB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgODUgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS92NGwyLWNvcmUvdjRsMi1md25vZGUuYyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3Jl L3Y0bDItZndub2RlLmMKaW5kZXggYmU3NWQ5OTAwNjY3Li5mYzhjNjNlYmExMGIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItZndub2RlLmMKKysrIGIvZHJpdmVycy9t ZWRpYS92NGwyLWNvcmUvdjRsMi1md25vZGUuYwpAQCAtNjYsNiArNjYsNyBAQCBzdGF0aWMgaW50 IHY0bDJfZndub2RlX2VuZHBvaW50X3BhcnNlX2NzaTJfYnVzKHN0cnVjdCBmd25vZGVfaGFuZGxl ICpmd25vZGUsCiAJCQlsYW5lc191c2VkIHw9IEJJVChhcnJheVtpXSk7CiAKIAkJCWJ1cy0+ZGF0 YV9sYW5lc1tpXSA9IGFycmF5W2ldOworCQkJcHJfZGVidWcoImxhbmUgJXUgcG9zaXRpb24gJXVc biIsIGksIGFycmF5W2ldKTsKIAkJfQogCiAJCXJ2YWwgPSBmd25vZGVfcHJvcGVydHlfcmVhZF91 MzJfYXJyYXkoZndub2RlLApAQCAtODIsOCArODMsMTMgQEAgc3RhdGljIGludCB2NGwyX2Z3bm9k ZV9lbmRwb2ludF9wYXJzZV9jc2kyX2J1cyhzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlLAog CQkJCQkJICAgICAgICJsYW5lLXBvbGFyaXRpZXMiLCBhcnJheSwKIAkJCQkJCSAgICAgICAxICsg YnVzLT5udW1fZGF0YV9sYW5lcyk7CiAKLQkJCWZvciAoaSA9IDA7IGkgPCAxICsgYnVzLT5udW1f ZGF0YV9sYW5lczsgaSsrKQorCQkJZm9yIChpID0gMDsgaSA8IDEgKyBidXMtPm51bV9kYXRhX2xh bmVzOyBpKyspIHsKIAkJCQlidXMtPmxhbmVfcG9sYXJpdGllc1tpXSA9IGFycmF5W2ldOworCQkJ CXByX2RlYnVnKCJsYW5lICV1IHBvbGFyaXR5ICVzaW52ZXJ0ZWQiLAorCQkJCQkgaSwgYXJyYXlb aV0gPyAiIiA6ICJub3QgIik7CisJCQl9CisJCX0gZWxzZSB7CisJCQlwcl9kZWJ1Zygibm8gbGFu ZSBwb2xhcml0aWVzIGRlZmluZWQsIGFzc3VtaW5nIG5vdCBpbnZlcnRlZFxuIik7CiAJCX0KIAog CX0KQEAgLTk1LDEyICsxMDEsMTUgQEAgc3RhdGljIGludCB2NGwyX2Z3bm9kZV9lbmRwb2ludF9w YXJzZV9jc2kyX2J1cyhzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlLAogCiAJCWJ1cy0+Y2xv Y2tfbGFuZSA9IHY7CiAJCWhhdmVfY2xrX2xhbmUgPSB0cnVlOworCQlwcl9kZWJ1ZygiY2xvY2sg bGFuZSBwb3NpdGlvbiAldVxuIiwgdik7CiAJfQogCi0JaWYgKGZ3bm9kZV9wcm9wZXJ0eV9wcmVz ZW50KGZ3bm9kZSwgImNsb2NrLW5vbmNvbnRpbnVvdXMiKSkKKwlpZiAoZndub2RlX3Byb3BlcnR5 X3ByZXNlbnQoZndub2RlLCAiY2xvY2stbm9uY29udGludW91cyIpKSB7CiAJCWZsYWdzIHw9IFY0 TDJfTUJVU19DU0kyX05PTkNPTlRJTlVPVVNfQ0xPQ0s7Ci0JZWxzZSBpZiAoaGF2ZV9jbGtfbGFu ZSB8fCBidXMtPm51bV9kYXRhX2xhbmVzID4gMCkKKwkJcHJfZGVidWcoIm5vbi1jb250aW51b3Vz IGNsb2NrXG4iKTsKKwl9IGVsc2UgaWYgKGhhdmVfY2xrX2xhbmUgfHwgYnVzLT5udW1fZGF0YV9s YW5lcyA+IDApIHsKIAkJZmxhZ3MgfD0gVjRMMl9NQlVTX0NTSTJfQ09OVElOVU9VU19DTE9DSzsK Kwl9CiAKIAlidXMtPmZsYWdzID0gZmxhZ3M7CiAJdmVwLT5idXNfdHlwZSA9IFY0TDJfTUJVU19D U0kyOwpAQCAtMTE1LDQ4ICsxMjQsNjkgQEAgc3RhdGljIHZvaWQgdjRsMl9md25vZGVfZW5kcG9p bnRfcGFyc2VfcGFyYWxsZWxfYnVzKAogCXVuc2lnbmVkIGludCBmbGFncyA9IDA7CiAJdTMyIHY7 CiAKLQlpZiAoIWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJoc3luYy1hY3RpdmUi LCAmdikpCisJaWYgKCFmd25vZGVfcHJvcGVydHlfcmVhZF91MzIoZndub2RlLCAiaHN5bmMtYWN0 aXZlIiwgJnYpKSB7CiAJCWZsYWdzIHw9IHYgPyBWNEwyX01CVVNfSFNZTkNfQUNUSVZFX0hJR0gg OgogCQkJVjRMMl9NQlVTX0hTWU5DX0FDVElWRV9MT1c7CisJCXByX2RlYnVnKCJoc3luYy1hY3Rp dmUgJXNcbiIsIHYgPyAiaGlnaCIgOiAibG93Iik7CisJfQogCi0JaWYgKCFmd25vZGVfcHJvcGVy dHlfcmVhZF91MzIoZndub2RlLCAidnN5bmMtYWN0aXZlIiwgJnYpKQorCWlmICghZndub2RlX3By b3BlcnR5X3JlYWRfdTMyKGZ3bm9kZSwgInZzeW5jLWFjdGl2ZSIsICZ2KSkgewogCQlmbGFncyB8 PSB2ID8gVjRMMl9NQlVTX1ZTWU5DX0FDVElWRV9ISUdIIDoKIAkJCVY0TDJfTUJVU19WU1lOQ19B Q1RJVkVfTE9XOworCQlwcl9kZWJ1ZygidnN5bmMtYWN0aXZlICVzXG4iLCB2ID8gImhpZ2giIDog ImxvdyIpOworCX0KIAotCWlmICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGZ3bm9kZSwgImZp ZWxkLWV2ZW4tYWN0aXZlIiwgJnYpKQorCWlmICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGZ3 bm9kZSwgImZpZWxkLWV2ZW4tYWN0aXZlIiwgJnYpKSB7CiAJCWZsYWdzIHw9IHYgPyBWNEwyX01C VVNfRklFTERfRVZFTl9ISUdIIDoKIAkJCVY0TDJfTUJVU19GSUVMRF9FVkVOX0xPVzsKKwkJcHJf ZGVidWcoImZpZWxkLWV2ZW4tYWN0aXZlICVzXG4iLCB2ID8gImhpZ2giIDogImxvdyIpOworCX0K KwogCWlmIChmbGFncykKIAkJdmVwLT5idXNfdHlwZSA9IFY0TDJfTUJVU19QQVJBTExFTDsKIAll bHNlCiAJCXZlcC0+YnVzX3R5cGUgPSBWNEwyX01CVVNfQlQ2NTY7CiAKLQlpZiAoIWZ3bm9kZV9w cm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJwY2xrLXNhbXBsZSIsICZ2KSkKKwlpZiAoIWZ3bm9k ZV9wcm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJwY2xrLXNhbXBsZSIsICZ2KSkgewogCQlmbGFn cyB8PSB2ID8gVjRMMl9NQlVTX1BDTEtfU0FNUExFX1JJU0lORyA6CiAJCQlWNEwyX01CVVNfUENM S19TQU1QTEVfRkFMTElORzsKKwkJcHJfZGVidWcoInBjbGstc2FtcGxlICVzXG4iLCB2ID8gImhp Z2giIDogImxvdyIpOworCX0KIAotCWlmICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGZ3bm9k ZSwgImRhdGEtYWN0aXZlIiwgJnYpKQorCWlmICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGZ3 bm9kZSwgImRhdGEtYWN0aXZlIiwgJnYpKSB7CiAJCWZsYWdzIHw9IHYgPyBWNEwyX01CVVNfREFU QV9BQ1RJVkVfSElHSCA6CiAJCQlWNEwyX01CVVNfREFUQV9BQ1RJVkVfTE9XOworCQlwcl9kZWJ1 ZygiZGF0YS1hY3RpdmUgJXNcbiIsIHYgPyAiaGlnaCIgOiAibG93Iik7CisJfQogCi0JaWYgKGZ3 bm9kZV9wcm9wZXJ0eV9wcmVzZW50KGZ3bm9kZSwgInNsYXZlLW1vZGUiKSkKKwlpZiAoZndub2Rl X3Byb3BlcnR5X3ByZXNlbnQoZndub2RlLCAic2xhdmUtbW9kZSIpKSB7CisJCXByX2RlYnVnKCJz bGF2ZSBtb2RlXG4iKTsKIAkJZmxhZ3MgfD0gVjRMMl9NQlVTX1NMQVZFOwotCWVsc2UKKwl9IGVs c2UgewogCQlmbGFncyB8PSBWNEwyX01CVVNfTUFTVEVSOworCX0KIAotCWlmICghZndub2RlX3By b3BlcnR5X3JlYWRfdTMyKGZ3bm9kZSwgImJ1cy13aWR0aCIsICZ2KSkKKwlpZiAoIWZ3bm9kZV9w cm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJidXMtd2lkdGgiLCAmdikpIHsKIAkJYnVzLT5idXNf d2lkdGggPSB2OworCQlwcl9kZWJ1ZygiYnVzLXdpZHRoICV1XG4iLCB2KTsKKwl9CiAKLQlpZiAo IWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJkYXRhLXNoaWZ0IiwgJnYpKQorCWlm ICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGZ3bm9kZSwgImRhdGEtc2hpZnQiLCAmdikpIHsK IAkJYnVzLT5kYXRhX3NoaWZ0ID0gdjsKKwkJcHJfZGVidWcoImRhdGEtc2hpZnQgJXVcbiIsIHYp OworCX0KIAotCWlmICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGZ3bm9kZSwgInN5bmMtb24t Z3JlZW4tYWN0aXZlIiwgJnYpKQorCWlmICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGZ3bm9k ZSwgInN5bmMtb24tZ3JlZW4tYWN0aXZlIiwgJnYpKSB7CiAJCWZsYWdzIHw9IHYgPyBWNEwyX01C VVNfVklERU9fU09HX0FDVElWRV9ISUdIIDoKIAkJCVY0TDJfTUJVU19WSURFT19TT0dfQUNUSVZF X0xPVzsKKwkJcHJfZGVidWcoInN5bmMtb24tZ3JlZW4tYWN0aXZlICVzXG4iLCB2ID8gImhpZ2gi IDogImxvdyIpOworCX0KIAotCWlmICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMyKGZ3bm9kZSwg ImRhdGEtZW5hYmxlLWFjdGl2ZSIsICZ2KSkKKwlpZiAoIWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3Uz Mihmd25vZGUsICJkYXRhLWVuYWJsZS1hY3RpdmUiLCAmdikpIHsKIAkJZmxhZ3MgfD0gdiA/IFY0 TDJfTUJVU19EQVRBX0VOQUJMRV9ISUdIIDoKIAkJCVY0TDJfTUJVU19EQVRBX0VOQUJMRV9MT1c7 CisJCXByX2RlYnVnKCJkYXRhLWVuYWJsZS1hY3RpdmUgJXNcbiIsIHYgPyAiaGlnaCIgOiAibG93 Iik7CisJfQogCiAJYnVzLT5mbGFncyA9IGZsYWdzOwogCkBAIC0xNzAsMTcgKzIwMCwyNSBAQCB2 NGwyX2Z3bm9kZV9lbmRwb2ludF9wYXJzZV9jc2kxX2J1cyhzdHJ1Y3QgZndub2RlX2hhbmRsZSAq Zndub2RlLAogCXN0cnVjdCB2NGwyX2Z3bm9kZV9idXNfbWlwaV9jc2kxICpidXMgPSAmdmVwLT5i dXMubWlwaV9jc2kxOwogCXUzMiB2OwogCi0JaWYgKCFmd25vZGVfcHJvcGVydHlfcmVhZF91MzIo Zndub2RlLCAiY2xvY2staW52IiwgJnYpKQorCWlmICghZndub2RlX3Byb3BlcnR5X3JlYWRfdTMy KGZ3bm9kZSwgImNsb2NrLWludiIsICZ2KSkgewogCQlidXMtPmNsb2NrX2ludiA9IHY7CisJCXBy X2RlYnVnKCJjbG9jay1pbnYgJXVcbiIsIHYpOworCX0KIAotCWlmICghZndub2RlX3Byb3BlcnR5 X3JlYWRfdTMyKGZ3bm9kZSwgInN0cm9iZSIsICZ2KSkKKwlpZiAoIWZ3bm9kZV9wcm9wZXJ0eV9y ZWFkX3UzMihmd25vZGUsICJzdHJvYmUiLCAmdikpIHsKIAkJYnVzLT5zdHJvYmUgPSB2OworCQlw cl9kZWJ1Zygic3Ryb2JlICV1XG4iLCB2KTsKKwl9CiAKLQlpZiAoIWZ3bm9kZV9wcm9wZXJ0eV9y ZWFkX3UzMihmd25vZGUsICJkYXRhLWxhbmVzIiwgJnYpKQorCWlmICghZndub2RlX3Byb3BlcnR5 X3JlYWRfdTMyKGZ3bm9kZSwgImRhdGEtbGFuZXMiLCAmdikpIHsKIAkJYnVzLT5kYXRhX2xhbmUg PSB2OworCQlwcl9kZWJ1ZygiZGF0YS1sYW5lcyAldVxuIiwgdik7CisJfQogCi0JaWYgKCFmd25v ZGVfcHJvcGVydHlfcmVhZF91MzIoZndub2RlLCAiY2xvY2stbGFuZXMiLCAmdikpCisJaWYgKCFm d25vZGVfcHJvcGVydHlfcmVhZF91MzIoZndub2RlLCAiY2xvY2stbGFuZXMiLCAmdikpIHsKIAkJ YnVzLT5jbG9ja19sYW5lID0gdjsKKwkJcHJfZGVidWcoImNsb2NrLWxhbmVzICV1XG4iLCB2KTsK Kwl9CiAKIAlpZiAoYnVzX3R5cGUgPT0gVjRMMl9GV05PREVfQlVTX1RZUEVfQ0NQMikKIAkJdmVw LT5idXNfdHlwZSA9IFY0TDJfTUJVU19DQ1AyOwpAQCAtMTg4LDEyICsyMjYsMTQgQEAgdjRsMl9m d25vZGVfZW5kcG9pbnRfcGFyc2VfY3NpMV9idXMoc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9k ZSwKIAkJdmVwLT5idXNfdHlwZSA9IFY0TDJfTUJVU19DU0kxOwogfQogCi1pbnQgdjRsMl9md25v ZGVfZW5kcG9pbnRfcGFyc2Uoc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSwKLQkJCSAgICAg ICBzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgKnZlcCkKK3N0YXRpYyBpbnQgX192NGwyX2Z3 bm9kZV9lbmRwb2ludF9wYXJzZShzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlLAorCQkJCQlz dHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgKnZlcCkKIHsKIAl1MzIgYnVzX3R5cGUgPSAwOwog CWludCBydmFsOwogCisJcHJfZGVidWcoIj09PT09IGJlZ2luIFY0TDIgZW5kcG9pbnQgcHJvcGVy dGllc1xuIik7CisKIAlmd25vZGVfZ3JhcGhfcGFyc2VfZW5kcG9pbnQoZndub2RlLCAmdmVwLT5i YXNlKTsKIAogCS8qIFplcm8gZmllbGRzIGZyb20gYnVzX3R5cGUgdG8gdW50aWwgdGhlIGVuZCAq LwpAQCAtMjE0LDE2ICsyNTQsMzAgQEAgaW50IHY0bDJfZndub2RlX2VuZHBvaW50X3BhcnNlKHN0 cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsCiAJCWlmICh2ZXAtPmJ1cy5taXBpX2NzaTIuZmxh Z3MgPT0gMCkKIAkJCXY0bDJfZndub2RlX2VuZHBvaW50X3BhcnNlX3BhcmFsbGVsX2J1cyhmd25v ZGUsIHZlcCk7CiAKLQkJcmV0dXJuIDA7CisJCWJyZWFrOwogCWNhc2UgVjRMMl9GV05PREVfQlVT X1RZUEVfQ0NQMjoKIAljYXNlIFY0TDJfRldOT0RFX0JVU19UWVBFX0NTSTE6CiAJCXY0bDJfZndu b2RlX2VuZHBvaW50X3BhcnNlX2NzaTFfYnVzKGZ3bm9kZSwgdmVwLCBidXNfdHlwZSk7CiAKLQkJ cmV0dXJuIDA7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXByX3dhcm4oInVuc3VwcG9ydGVkIGJ1 cyB0eXBlICV1XG4iLCBidXNfdHlwZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KKworCXJldHVy biAwOworfQorCitpbnQgdjRsMl9md25vZGVfZW5kcG9pbnRfcGFyc2Uoc3RydWN0IGZ3bm9kZV9o YW5kbGUgKmZ3bm9kZSwKKwkJCSAgICAgICBzdHJ1Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgKnZl cCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gX192NGwyX2Z3bm9kZV9lbmRwb2ludF9wYXJzZShm d25vZGUsIHZlcCk7CisKKwlwcl9kZWJ1ZygiPT09PT0gZW5kIFY0TDIgZW5kcG9pbnQgcHJvcGVy dGllc1xuIik7CisKKwlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTF9HUEwodjRsMl9md25v ZGVfZW5kcG9pbnRfcGFyc2UpOwogCkBAIC0yNDcsMTMgKzMwMSwxNSBAQCBzdHJ1Y3QgdjRsMl9m d25vZGVfZW5kcG9pbnQgKnY0bDJfZndub2RlX2VuZHBvaW50X2FsbG9jX3BhcnNlKAogCWlmICgh dmVwKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCXJ2YWwgPSB2NGwyX2Z3bm9kZV9l bmRwb2ludF9wYXJzZShmd25vZGUsIHZlcCk7CisJcnZhbCA9IF9fdjRsMl9md25vZGVfZW5kcG9p bnRfcGFyc2UoZndub2RlLCB2ZXApOwogCWlmIChydmFsIDwgMCkKIAkJZ290byBvdXRfZXJyOwog CiAJcnZhbCA9IGZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3U2NF9hcnJheShmd25vZGUsICJsaW5rLWZy ZXF1ZW5jaWVzIiwKIAkJCQkJICAgICAgTlVMTCwgMCk7CiAJaWYgKHJ2YWwgPiAwKSB7CisJCXVu c2lnbmVkIGludCBpOworCiAJCXZlcC0+bGlua19mcmVxdWVuY2llcyA9CiAJCQlrbWFsbG9jX2Fy cmF5KHJ2YWwsIHNpemVvZigqdmVwLT5saW5rX2ZyZXF1ZW5jaWVzKSwKIAkJCQkgICAgICBHRlBf S0VSTkVMKTsKQEAgLTI2OSw4ICszMjUsMTQgQEAgc3RydWN0IHY0bDJfZndub2RlX2VuZHBvaW50 ICp2NGwyX2Z3bm9kZV9lbmRwb2ludF9hbGxvY19wYXJzZSgKIAkJCXZlcC0+bnJfb2ZfbGlua19m cmVxdWVuY2llcyk7CiAJCWlmIChydmFsIDwgMCkKIAkJCWdvdG8gb3V0X2VycjsKKworCQlmb3Ig KGkgPSAwOyBpIDwgdmVwLT5ucl9vZl9saW5rX2ZyZXF1ZW5jaWVzOyBpKyspCisJCQlwcl9pbmZv KCJsaW5rLWZyZXF1ZW5jaWVzICV1IHZhbHVlICVsbHVcbiIsIGksCisJCQkJdmVwLT5saW5rX2Zy ZXF1ZW5jaWVzW2ldKTsKIAl9CiAKKwlwcl9kZWJ1ZygiPT09PT0gZW5kIFY0TDIgZW5kcG9pbnQg cHJvcGVydGllc1xuIik7CisKIAlyZXR1cm4gdmVwOwogCiBvdXRfZXJyOgotLSAKMi4xMS4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from nblzone-211-213.nblnetworks.fi ([83.145.211.213]:40836 "EHLO hillosipuli.retiisi.org.uk" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727010AbeIMCgJ (ORCPT ); Wed, 12 Sep 2018 22:36:09 -0400 From: Sakari Ailus To: linux-media@vger.kernel.org Cc: devicetree@vger.kernel.org, slongerbeam@gmail.com, niklas.soderlund@ragnatech.se, jacopo@jmondi.org, p.zabel@pengutronix.de, dri-devel@lists.freedesktop.org Subject: [PATCH v3 01/23] v4l: fwnode: Add debug prints for V4L2 endpoint property parsing Date: Thu, 13 Sep 2018 00:29:20 +0300 Message-Id: <20180912212942.19641-2-sakari.ailus@linux.intel.com> In-Reply-To: <20180912212942.19641-1-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: 8bit Sender: linux-media-owner@vger.kernel.org List-ID: Print debug info as standard V4L2 endpoint are parsed. Signed-off-by: Sakari Ailus Reviewed-by: Niklas Söderlund Tested-by: Steve Longerbeam --- drivers/media/v4l2-core/v4l2-fwnode.c | 108 ++++++++++++++++++++++++++-------- 1 file changed, 85 insertions(+), 23 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c index be75d9900667..fc8c63eba10b 100644 --- a/drivers/media/v4l2-core/v4l2-fwnode.c +++ b/drivers/media/v4l2-core/v4l2-fwnode.c @@ -66,6 +66,7 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, lanes_used |= BIT(array[i]); bus->data_lanes[i] = array[i]; + pr_debug("lane %u position %u\n", i, array[i]); } rval = fwnode_property_read_u32_array(fwnode, @@ -82,8 +83,13 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, "lane-polarities", array, 1 + bus->num_data_lanes); - for (i = 0; i < 1 + bus->num_data_lanes; i++) + for (i = 0; i < 1 + bus->num_data_lanes; i++) { bus->lane_polarities[i] = array[i]; + pr_debug("lane %u polarity %sinverted", + i, array[i] ? "" : "not "); + } + } else { + pr_debug("no lane polarities defined, assuming not inverted\n"); } } @@ -95,12 +101,15 @@ static int v4l2_fwnode_endpoint_parse_csi2_bus(struct fwnode_handle *fwnode, bus->clock_lane = v; have_clk_lane = true; + pr_debug("clock lane position %u\n", v); } - if (fwnode_property_present(fwnode, "clock-noncontinuous")) + if (fwnode_property_present(fwnode, "clock-noncontinuous")) { flags |= V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK; - else if (have_clk_lane || bus->num_data_lanes > 0) + pr_debug("non-continuous clock\n"); + } else if (have_clk_lane || bus->num_data_lanes > 0) { flags |= V4L2_MBUS_CSI2_CONTINUOUS_CLOCK; + } bus->flags = flags; vep->bus_type = V4L2_MBUS_CSI2; @@ -115,48 +124,69 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus( unsigned int flags = 0; u32 v; - if (!fwnode_property_read_u32(fwnode, "hsync-active", &v)) + if (!fwnode_property_read_u32(fwnode, "hsync-active", &v)) { flags |= v ? V4L2_MBUS_HSYNC_ACTIVE_HIGH : V4L2_MBUS_HSYNC_ACTIVE_LOW; + pr_debug("hsync-active %s\n", v ? "high" : "low"); + } - if (!fwnode_property_read_u32(fwnode, "vsync-active", &v)) + if (!fwnode_property_read_u32(fwnode, "vsync-active", &v)) { flags |= v ? V4L2_MBUS_VSYNC_ACTIVE_HIGH : V4L2_MBUS_VSYNC_ACTIVE_LOW; + pr_debug("vsync-active %s\n", v ? "high" : "low"); + } - if (!fwnode_property_read_u32(fwnode, "field-even-active", &v)) + if (!fwnode_property_read_u32(fwnode, "field-even-active", &v)) { flags |= v ? V4L2_MBUS_FIELD_EVEN_HIGH : V4L2_MBUS_FIELD_EVEN_LOW; + pr_debug("field-even-active %s\n", v ? "high" : "low"); + } + if (flags) vep->bus_type = V4L2_MBUS_PARALLEL; else vep->bus_type = V4L2_MBUS_BT656; - if (!fwnode_property_read_u32(fwnode, "pclk-sample", &v)) + if (!fwnode_property_read_u32(fwnode, "pclk-sample", &v)) { flags |= v ? V4L2_MBUS_PCLK_SAMPLE_RISING : V4L2_MBUS_PCLK_SAMPLE_FALLING; + pr_debug("pclk-sample %s\n", v ? "high" : "low"); + } - if (!fwnode_property_read_u32(fwnode, "data-active", &v)) + if (!fwnode_property_read_u32(fwnode, "data-active", &v)) { flags |= v ? V4L2_MBUS_DATA_ACTIVE_HIGH : V4L2_MBUS_DATA_ACTIVE_LOW; + pr_debug("data-active %s\n", v ? "high" : "low"); + } - if (fwnode_property_present(fwnode, "slave-mode")) + if (fwnode_property_present(fwnode, "slave-mode")) { + pr_debug("slave mode\n"); flags |= V4L2_MBUS_SLAVE; - else + } else { flags |= V4L2_MBUS_MASTER; + } - if (!fwnode_property_read_u32(fwnode, "bus-width", &v)) + if (!fwnode_property_read_u32(fwnode, "bus-width", &v)) { bus->bus_width = v; + pr_debug("bus-width %u\n", v); + } - if (!fwnode_property_read_u32(fwnode, "data-shift", &v)) + if (!fwnode_property_read_u32(fwnode, "data-shift", &v)) { bus->data_shift = v; + pr_debug("data-shift %u\n", v); + } - if (!fwnode_property_read_u32(fwnode, "sync-on-green-active", &v)) + if (!fwnode_property_read_u32(fwnode, "sync-on-green-active", &v)) { flags |= v ? V4L2_MBUS_VIDEO_SOG_ACTIVE_HIGH : V4L2_MBUS_VIDEO_SOG_ACTIVE_LOW; + pr_debug("sync-on-green-active %s\n", v ? "high" : "low"); + } - if (!fwnode_property_read_u32(fwnode, "data-enable-active", &v)) + if (!fwnode_property_read_u32(fwnode, "data-enable-active", &v)) { flags |= v ? V4L2_MBUS_DATA_ENABLE_HIGH : V4L2_MBUS_DATA_ENABLE_LOW; + pr_debug("data-enable-active %s\n", v ? "high" : "low"); + } bus->flags = flags; @@ -170,17 +200,25 @@ v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode, struct v4l2_fwnode_bus_mipi_csi1 *bus = &vep->bus.mipi_csi1; u32 v; - if (!fwnode_property_read_u32(fwnode, "clock-inv", &v)) + if (!fwnode_property_read_u32(fwnode, "clock-inv", &v)) { bus->clock_inv = v; + pr_debug("clock-inv %u\n", v); + } - if (!fwnode_property_read_u32(fwnode, "strobe", &v)) + if (!fwnode_property_read_u32(fwnode, "strobe", &v)) { bus->strobe = v; + pr_debug("strobe %u\n", v); + } - if (!fwnode_property_read_u32(fwnode, "data-lanes", &v)) + if (!fwnode_property_read_u32(fwnode, "data-lanes", &v)) { bus->data_lane = v; + pr_debug("data-lanes %u\n", v); + } - if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v)) + if (!fwnode_property_read_u32(fwnode, "clock-lanes", &v)) { bus->clock_lane = v; + pr_debug("clock-lanes %u\n", v); + } if (bus_type == V4L2_FWNODE_BUS_TYPE_CCP2) vep->bus_type = V4L2_MBUS_CCP2; @@ -188,12 +226,14 @@ v4l2_fwnode_endpoint_parse_csi1_bus(struct fwnode_handle *fwnode, vep->bus_type = V4L2_MBUS_CSI1; } -int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, - struct v4l2_fwnode_endpoint *vep) +static int __v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, + struct v4l2_fwnode_endpoint *vep) { u32 bus_type = 0; int rval; + pr_debug("===== begin V4L2 endpoint properties\n"); + fwnode_graph_parse_endpoint(fwnode, &vep->base); /* Zero fields from bus_type to until the end */ @@ -214,16 +254,30 @@ int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, if (vep->bus.mipi_csi2.flags == 0) v4l2_fwnode_endpoint_parse_parallel_bus(fwnode, vep); - return 0; + break; case V4L2_FWNODE_BUS_TYPE_CCP2: case V4L2_FWNODE_BUS_TYPE_CSI1: v4l2_fwnode_endpoint_parse_csi1_bus(fwnode, vep, bus_type); - return 0; + break; default: pr_warn("unsupported bus type %u\n", bus_type); return -EINVAL; } + + return 0; +} + +int v4l2_fwnode_endpoint_parse(struct fwnode_handle *fwnode, + struct v4l2_fwnode_endpoint *vep) +{ + int ret; + + ret = __v4l2_fwnode_endpoint_parse(fwnode, vep); + + pr_debug("===== end V4L2 endpoint properties\n"); + + return ret; } EXPORT_SYMBOL_GPL(v4l2_fwnode_endpoint_parse); @@ -247,13 +301,15 @@ struct v4l2_fwnode_endpoint *v4l2_fwnode_endpoint_alloc_parse( if (!vep) return ERR_PTR(-ENOMEM); - rval = v4l2_fwnode_endpoint_parse(fwnode, vep); + rval = __v4l2_fwnode_endpoint_parse(fwnode, vep); if (rval < 0) goto out_err; rval = fwnode_property_read_u64_array(fwnode, "link-frequencies", NULL, 0); if (rval > 0) { + unsigned int i; + vep->link_frequencies = kmalloc_array(rval, sizeof(*vep->link_frequencies), GFP_KERNEL); @@ -269,8 +325,14 @@ struct v4l2_fwnode_endpoint *v4l2_fwnode_endpoint_alloc_parse( vep->nr_of_link_frequencies); if (rval < 0) goto out_err; + + for (i = 0; i < vep->nr_of_link_frequencies; i++) + pr_info("link-frequencies %u value %llu\n", i, + vep->link_frequencies[i]); } + pr_debug("===== end V4L2 endpoint properties\n"); + return vep; out_err: -- 2.11.0