From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marco Felsch Subject: [PATCH 3/5] media: v4l2-fwnode: add initial connector parsing support Date: Sat, 2 Feb 2019 13:10:02 +0100 Message-ID: <20190202121004.9014-4-m.felsch@pengutronix.de> References: <20190202121004.9014-1-m.felsch@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3A2406E09A for ; Sat, 2 Feb 2019 12:10:23 +0000 (UTC) In-Reply-To: <20190202121004.9014-1-m.felsch@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: robh+dt@kernel.org, mchehab@kernel.org, hans.verkuil@cisco.com, sakari.ailus@linux.intel.com Cc: devicetree@vger.kernel.org, airlied@linux.ie, dri-devel@lists.freedesktop.org, kernel@pengutronix.de, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhlIHBhdGNoIGFkZHMgdGhlIGluaXRpYWwgY29ubmVjdG9yIHBhcnNpbmcgY29kZSwgc28gd2Ug Y2FuIG1vdmUgZnJvbSBhCmRyaXZlciBzcGVjaWZpYyBwYXJzaW5nIGNvZGUgdG8gYSBnZW5lcmlj IG9uZS4gQ3VycmVudGx5IG9ubHkgdGhlCmdlbmVyaWMgZmllbGRzIGFuZCB0aGUgYW5hbG9nLWNv bm5lY3RvciBzcGVjaWZpYyBmaWVsZHMgYXJlIHBhcnNlZC4gUGFyc2luZwp0aGUgb3RoZXIgY29u bmVjdG9yIHNwZWNpZmljIGZpZWxkcyBjYW4gYmUgYWRkZWQgYnkgYSBzaW1wbGUgY2FsbGJhY2tz LgoKU2lnbmVkLW9mZi1ieTogTWFyY28gRmVsc2NoIDxtLmZlbHNjaEBwZW5ndXRyb25peC5kZT4K LS0tCiBkcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWZ3bm9kZS5jIHwgMTEzICsrKysrKysr KysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL21lZGlhL3Y0bDItZndub2RlLmggICAgICAgICAg IHwgIDE2ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWZ3bm9kZS5jIGIvZHJpdmVycy9tZWRp YS92NGwyLWNvcmUvdjRsMi1md25vZGUuYwppbmRleCA5YmZlZGQ3NTk2YTEuLjU2ZjU4MWUwMDE5 NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1md25vZGUuYworKysg Yi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWZ3bm9kZS5jCkBAIC01OTIsNiArNTkyLDEx OSBAQCB2b2lkIHY0bDJfZndub2RlX3B1dF9saW5rKHN0cnVjdCB2NGwyX2Z3bm9kZV9saW5rICps aW5rKQogfQogRVhQT1JUX1NZTUJPTF9HUEwodjRsMl9md25vZGVfcHV0X2xpbmspOwogCitzdGF0 aWMgY29uc3Qgc3RydWN0IHY0bDJfZndub2RlX2Nvbm5lY3Rvcl9jb252IHsKKwllbnVtIHY0bDJf Y29ubmVjdG9yX3R5cGUgdHlwZTsKKwljb25zdCBjaGFyICpuYW1lOworfSBjb25uZWN0b3JzW10g PSB7CisJeworCQkudHlwZSA9IFY0TDJfQ09OX0NPTVBPU0lURSwKKwkJLm5hbWUgPSAiY29tcG9z aXRlLXZpZGVvLWNvbm5lY3RvciIsCisJfSwgeworCQkudHlwZSA9IFY0TDJfQ09OX1NWSURFTywK KwkJLm5hbWUgPSAic3ZpZGVvLWNvbm5lY3RvciIsCisJfSwgeworCQkudHlwZSA9IFY0TDJfQ09O X1ZHQSwKKwkJLm5hbWUgPSAidmdhLWNvbm5lY3RvciIsCisJfSwgeworCQkudHlwZSA9IFY0TDJf Q09OX0RWSSwKKwkJLm5hbWUgPSAiZHZpLWNvbm5lY3RvciIsCisJfSwgeworCQkudHlwZSA9IFY0 TDJfQ09OX0hETUksCisJCS5uYW1lID0gImhkbWktY29ubmVjdG9yIgorCX0KK307CisKK3N0YXRp YyBlbnVtIHY0bDJfY29ubmVjdG9yX3R5cGUKK3Y0bDJfZndub2RlX3N0cmluZ190b19jb25uZWN0 b3JfdHlwZShjb25zdCBjaGFyICpjb25fc3RyKQoreworCWludCBpOworCisJZm9yIChpID0gMDsg aSA8IEFSUkFZX1NJWkUoY29ubmVjdG9ycyk7IGkrKykKKwkJaWYgKCFzdHJjbXAoY29uX3N0ciwg Y29ubmVjdG9yc1tpXS5uYW1lKSkKKwkJCXJldHVybiBjb25uZWN0b3JzW2ldLnR5cGU7CisKKwkv KiBubyB2YWxpZCBjb25uZWN0b3IgZm91bmQgKi8KKwlyZXR1cm4gVjRMMl9DT05fVU5LTk9XTjsK K30KKworc3RhdGljIGludAordjRsMl9md25vZGVfY29ubmVjdG9yX3BhcnNlX2FuYWxvZyhzdHJ1 Y3QgZndub2RlX2hhbmRsZSAqZndub2RlLAorCQkJCSAgIHN0cnVjdCB2NGwyX2Z3bm9kZV9jb25u ZWN0b3IgKnZjKQoreworCXUzMiB0dm5vcm1zOworCWludCByZXQ7CisKKwlyZXQgPSBmd25vZGVf cHJvcGVydHlfcmVhZF91MzIoZndub2RlLCAidHZub3JtcyIsICZ0dm5vcm1zKTsKKworCS8qIHNl dCBpdCB0byBWNEwyX1NURF9BTEwgaW4gY2FzZSBvZiBub3Qgc3BlY2lmaWVkIHR2bm9ybXMgKi8K Kwl2Yy0+Y29ubmVjdG9yLmFuYWxvZy5zdXBwb3J0ZWRfdHZub3JtcyA9IHJldCA/IFY0TDJfU1RE X0FMTCA6IHR2bm9ybXM7CisJcmV0dXJuIDA7Cit9CisKK2ludCB2NGwyX2Z3bm9kZV9wYXJzZV9j b25uZWN0b3Ioc3RydWN0IGZ3bm9kZV9oYW5kbGUgKl9fZndub2RlLAorCQkJCXN0cnVjdCB2NGwy X2Z3bm9kZV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZndub2RlX2hhbmRsZSAq Zndub2RlOworCXN0cnVjdCBmd25vZGVfZW5kcG9pbnQgX19lcDsKKwljb25zdCBjaGFyICpjX3R5 cGVfc3RyLCAqbGFiZWw7CisJaW50IHJldDsKKworCW1lbXNldChjb25uZWN0b3IsIDAsIHNpemVv ZigqY29ubmVjdG9yKSk7CisKKwlmd25vZGUgPSBmd25vZGVfZ3JhcGhfZ2V0X3JlbW90ZV9wb3J0 X3BhcmVudChfX2Z3bm9kZSk7CisKKwkvKiAxc3QgcGFyc2UgYWxsIGNvbW1vbiBwcm9wZXJ0aWVz ICovCisJLyogY29ubmVjdG9yLXR5cGUgaXMgc3RvcmVkIHdpdGhpbiB0aGUgY29tcGF0aWJsZSBz dHJpbmcgKi8KKwlyZXQgPSBmd25vZGVfcHJvcGVydHlfcmVhZF9zdHJpbmcoZndub2RlLCAiY29t cGF0aWJsZSIsICZjX3R5cGVfc3RyKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gLUVJTlZBTDsKKwor CWNvbm5lY3Rvci0+dHlwZSA9IHY0bDJfZndub2RlX3N0cmluZ190b19jb25uZWN0b3JfdHlwZShj X3R5cGVfc3RyKTsKKworCWZ3bm9kZV9ncmFwaF9wYXJzZV9lbmRwb2ludChfX2Z3bm9kZSwgJl9f ZXApOworCWNvbm5lY3Rvci0+cmVtb3RlX3BvcnQgPSBfX2VwLnBvcnQ7CisJY29ubmVjdG9yLT5y ZW1vdGVfaWQgPSBfX2VwLmlkOworCisJcmV0ID0gZndub2RlX3Byb3BlcnR5X3JlYWRfc3RyaW5n KGZ3bm9kZSwgImxhYmVsIiwgJmxhYmVsKTsKKwlpZiAoIXJldCkgeworCQkvKiBlbnN1cmUgbGFi ZWwgZG9lc24ndCBleGNlZWQgVjRMMl9DT05ORUNUT1JfTUFYX0xBQkVMIHNpemUgKi8KKwkJc3Ry bGNweShjb25uZWN0b3ItPmxhYmVsLCBsYWJlbCwgVjRMMl9DT05ORUNUT1JfTUFYX0xBQkVMKTsK Kwl9IGVsc2UgeworCQkvKgorCQkgKiBsYWJlbHMgYXJlIG9wdGlvbmFsLCBpZiBubyBvbmUgaXMg Z2l2ZW4gY3JlYXRlIG9uZToKKwkJICogPGNvbm5lY3Rvci10eXBlLXN0cmluZz5AcG9ydDxlbmRw b2ludF9wb3J0Pi9lcDxlbmRwb2ludF9pZD4KKwkJICovCisJCXNucHJpbnRmKGNvbm5lY3Rvci0+ bGFiZWwsIFY0TDJfQ09OTkVDVE9SX01BWF9MQUJFTCwKKwkJCSAiJXNAcG9ydCV1L2VwJXUiLCBj X3R5cGVfc3RyLCBjb25uZWN0b3ItPnJlbW90ZV9wb3J0LAorCQkJIGNvbm5lY3Rvci0+cmVtb3Rl X2lkKTsKKwl9CisKKwkvKiBub3cgcGFyc2UgdGhlIGNvbm5lY3RvciBzcGVjaWZpYyBwcm9wZXJ0 aWVzICovCisJc3dpdGNoIChjb25uZWN0b3ItPnR5cGUpIHsKKwkJLyogZmFsbCB0aHJvdWdoICov CisJY2FzZSBWNEwyX0NPTl9DT01QT1NJVEU6CisJY2FzZSBWNEwyX0NPTl9TVklERU86CisJCXJl dCA9IHY0bDJfZndub2RlX2Nvbm5lY3Rvcl9wYXJzZV9hbmFsb2coZndub2RlLCBjb25uZWN0b3Ip OworCQlicmVhazsKKwkJLyogZmFsbCB0aHJvdWdoICovCisJY2FzZSBWNEwyX0NPTl9WR0E6CisJ Y2FzZSBWNEwyX0NPTl9EVkk6CisJY2FzZSBWNEwyX0NPTl9IRE1JOgorCQlwcl93YXJuKCJDb25u ZWN0b3Igc3BlY2lmaWMgcGFyc2luZyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBmb3IgJXNc biIsCisJCQljX3R5cGVfc3RyKTsKKwkJcmV0ID0gMDsKKwkJYnJlYWs7CisJCS8qIGZhbGwgdGhy b3VnaCAqLworCWNhc2UgVjRMMl9DT05fVU5LTk9XTjoKKwlkZWZhdWx0OgorCQlwcl9lcnIoIlVu a25vd24gY29ubmVjdG9yIHR5cGVcbiIpOworCQlyZXQgPSAtRUlOVkFMOworCX07CisKKwlyZXR1 cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTF9HUEwodjRsMl9md25vZGVfcGFyc2VfY29ubmVjdG9y KTsKKwogc3RhdGljIGludAogdjRsMl9hc3luY19ub3RpZmllcl9md25vZGVfcGFyc2VfZW5kcG9p bnQoc3RydWN0IGRldmljZSAqZGV2LAogCQkJCQkgIHN0cnVjdCB2NGwyX2FzeW5jX25vdGlmaWVy ICpub3RpZmllciwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvdjRsMi1md25vZGUuaCBiL2lu Y2x1ZGUvbWVkaWEvdjRsMi1md25vZGUuaAppbmRleCBjZjg3ZTgxOTgwMGYuLmMwMGNiMzQ2YjVl YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tZWRpYS92NGwyLWZ3bm9kZS5oCisrKyBiL2luY2x1ZGUv bWVkaWEvdjRsMi1md25vZGUuaApAQCAtMjY5LDYgKzI2OSwyMiBAQCBpbnQgdjRsMl9md25vZGVf cGFyc2VfbGluayhzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlLAogICovCiB2b2lkIHY0bDJf Zndub2RlX3B1dF9saW5rKHN0cnVjdCB2NGwyX2Z3bm9kZV9saW5rICpsaW5rKTsKIAorLyoqCisg KiB2NGwyX2Z3bm9kZV9wYXJzZV9jb25uZWN0b3IoKSAtIHBhcnNlIHRoZSBjb25uZWN0b3Igb24g ZW5kcG9pbnQKKyAqIEBmd25vZGU6IHBvaW50ZXIgdG8gdGhlIGVuZHBvaW50J3MgZndub2RlIGhh bmRsZSB3aGVyZSB0aGUgY29ubmVjdG9yIGlzCisgKiAgICAgICAgICBjb25uZWN0ZWQgdG8uCisg KiBAY29ubmVjdG9yOiBwb2ludGVyIHRvIHRoZSBWNEwyIGZ3bm9kZSBjb25uZWN0b3IgZGF0YSBz dHJ1Y3R1cmUKKyAqCisgKiBGaWxsIHRoZSBjb25uZWN0b3IgZGF0YSBzdHJ1Y3R1cmUgd2l0aCB0 aGUgY29ubmVjdG9yIHR5cGUsIGxhYmVsIGFuZCB0aGUKKyAqIGVuZHBvaW50IGlkIGFuZCBwb3J0 IHdoZXJlIHRoZSBjb25uZWN0b3IgYmVsb25ncyB0by4gSWYgbm8gbGFiZWwgaXMgcHJlc2VudAor ICogYSB1bmlxdWUgb25lIHdpbGwgYmUgY3JlYXRlZC4gTGFiZWxzIHdpdGggbW9yZSB0aGFuIDQw IGNoYXJhY3RlcnMgYXJlIGN1dC4KKyAqCisgKiBSZXR1cm46ICUwIG9uIHN1Y2Nlc3Mgb3IgYSBu ZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmU6CisgKgkgICAlLUVJTlZBTCBvbiBwYXJzaW5n IGZhaWx1cmUKKyAqLworaW50IHY0bDJfZndub2RlX3BhcnNlX2Nvbm5lY3RvcihzdHJ1Y3QgZndu b2RlX2hhbmRsZSAqZndub2RlLAorCQkJCXN0cnVjdCB2NGwyX2Z3bm9kZV9jb25uZWN0b3IgKmNv bm5lY3Rvcik7CisKIC8qKgogICogdHlwZWRlZiBwYXJzZV9lbmRwb2ludF9mdW5jIC0gRHJpdmVy J3MgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uCiAgKgllYWNoIFY0TDIgZndub2Rl IGVuZHBvaW50LgotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK