From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sakari Ailus Subject: [PATCH v3 15/23] v4l: fwnode: Use default parallel flags Date: Thu, 13 Sep 2018 00:29:34 +0300 Message-ID: <20180912212942.19641-16-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 VGhlIGNhbGxlciBtYXkgcHJvdmlkZSBkZWZhdWx0IGZsYWdzIGZvciB0aGUgZW5kcG9pbnQuIENo YW5nZSB0aGUKY29uZmlndXJhdGlvbiBiYXNlZCBvbiB3aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdo IHRoZSBmd25vZGUgcHJvcGVydHkgQVBJLgoKU2lnbmVkLW9mZi1ieTogU2FrYXJpIEFpbHVzIDxz YWthcmkuYWlsdXNAbGludXguaW50ZWwuY29tPgpUZXN0ZWQtYnk6IFN0ZXZlIExvbmdlcmJlYW0g PHN0ZXZlX2xvbmdlcmJlYW1AbWVudG9yLmNvbT4KLS0tCiBkcml2ZXJzL21lZGlhL3Y0bDItY29y ZS92NGwyLWZ3bm9kZS5jIHwgMTkgKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQs IDE5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92 NGwyLWZ3bm9kZS5jIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1md25vZGUuYwppbmRl eCBiZGIwYTM1NWI2NmIuLmRlNGE0Mzc2NWFjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92 NGwyLWNvcmUvdjRsMi1md25vZGUuYworKysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwy LWZ3bm9kZS5jCkBAIC0xODMsMzEgKzE4Myw0NCBAQCBzdGF0aWMgdm9pZCB2NGwyX2Z3bm9kZV9l bmRwb2ludF9wYXJzZV9wYXJhbGxlbF9idXMoCiAJdW5zaWduZWQgaW50IGZsYWdzID0gMDsKIAl1 MzIgdjsKIAorCWlmIChidXNfdHlwZSA9PSBWNEwyX01CVVNfUEFSQUxMRUwgfHwgYnVzX3R5cGUg PT0gVjRMMl9NQlVTX0JUNjU2KQorCQlmbGFncyA9IGJ1cy0+ZmxhZ3M7CisKIAlpZiAoIWZ3bm9k ZV9wcm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJoc3luYy1hY3RpdmUiLCAmdikpIHsKKwkJZmxh Z3MgJj0gfihWNEwyX01CVVNfSFNZTkNfQUNUSVZFX0hJR0ggfAorCQkJICAgVjRMMl9NQlVTX0hT WU5DX0FDVElWRV9MT1cpOwogCQlmbGFncyB8PSB2ID8gVjRMMl9NQlVTX0hTWU5DX0FDVElWRV9I SUdIIDoKIAkJCVY0TDJfTUJVU19IU1lOQ19BQ1RJVkVfTE9XOwogCQlwcl9kZWJ1ZygiaHN5bmMt YWN0aXZlICVzXG4iLCB2ID8gImhpZ2giIDogImxvdyIpOwogCX0KIAogCWlmICghZndub2RlX3By b3BlcnR5X3JlYWRfdTMyKGZ3bm9kZSwgInZzeW5jLWFjdGl2ZSIsICZ2KSkgeworCQlmbGFncyAm PSB+KFY0TDJfTUJVU19WU1lOQ19BQ1RJVkVfSElHSCB8CisJCQkgICBWNEwyX01CVVNfVlNZTkNf QUNUSVZFX0xPVyk7CiAJCWZsYWdzIHw9IHYgPyBWNEwyX01CVVNfVlNZTkNfQUNUSVZFX0hJR0gg OgogCQkJVjRMMl9NQlVTX1ZTWU5DX0FDVElWRV9MT1c7CiAJCXByX2RlYnVnKCJ2c3luYy1hY3Rp dmUgJXNcbiIsIHYgPyAiaGlnaCIgOiAibG93Iik7CiAJfQogCiAJaWYgKCFmd25vZGVfcHJvcGVy dHlfcmVhZF91MzIoZndub2RlLCAiZmllbGQtZXZlbi1hY3RpdmUiLCAmdikpIHsKKwkJZmxhZ3Mg Jj0gfihWNEwyX01CVVNfRklFTERfRVZFTl9ISUdIIHwKKwkJCSAgIFY0TDJfTUJVU19GSUVMRF9F VkVOX0xPVyk7CiAJCWZsYWdzIHw9IHYgPyBWNEwyX01CVVNfRklFTERfRVZFTl9ISUdIIDoKIAkJ CVY0TDJfTUJVU19GSUVMRF9FVkVOX0xPVzsKIAkJcHJfZGVidWcoImZpZWxkLWV2ZW4tYWN0aXZl ICVzXG4iLCB2ID8gImhpZ2giIDogImxvdyIpOwogCX0KIAogCWlmICghZndub2RlX3Byb3BlcnR5 X3JlYWRfdTMyKGZ3bm9kZSwgInBjbGstc2FtcGxlIiwgJnYpKSB7CisJCWZsYWdzICY9IH4oVjRM Ml9NQlVTX1BDTEtfU0FNUExFX1JJU0lORyB8CisJCQkgICBWNEwyX01CVVNfUENMS19TQU1QTEVf RkFMTElORyk7CiAJCWZsYWdzIHw9IHYgPyBWNEwyX01CVVNfUENMS19TQU1QTEVfUklTSU5HIDoK IAkJCVY0TDJfTUJVU19QQ0xLX1NBTVBMRV9GQUxMSU5HOwogCQlwcl9kZWJ1ZygicGNsay1zYW1w bGUgJXNcbiIsIHYgPyAiaGlnaCIgOiAibG93Iik7CiAJfQogCiAJaWYgKCFmd25vZGVfcHJvcGVy dHlfcmVhZF91MzIoZndub2RlLCAiZGF0YS1hY3RpdmUiLCAmdikpIHsKKwkJZmxhZ3MgJj0gfihW NEwyX01CVVNfUENMS19TQU1QTEVfUklTSU5HIHwKKwkJCSAgIFY0TDJfTUJVU19QQ0xLX1NBTVBM RV9GQUxMSU5HKTsKIAkJZmxhZ3MgfD0gdiA/IFY0TDJfTUJVU19EQVRBX0FDVElWRV9ISUdIIDoK IAkJCVY0TDJfTUJVU19EQVRBX0FDVElWRV9MT1c7CiAJCXByX2RlYnVnKCJkYXRhLWFjdGl2ZSAl c1xuIiwgdiA/ICJoaWdoIiA6ICJsb3ciKTsKQEAgLTIxNSw4ICsyMjgsMTAgQEAgc3RhdGljIHZv aWQgdjRsMl9md25vZGVfZW5kcG9pbnRfcGFyc2VfcGFyYWxsZWxfYnVzKAogCiAJaWYgKGZ3bm9k ZV9wcm9wZXJ0eV9wcmVzZW50KGZ3bm9kZSwgInNsYXZlLW1vZGUiKSkgewogCQlwcl9kZWJ1Zygi c2xhdmUgbW9kZVxuIik7CisJCWZsYWdzICY9IH5WNEwyX01CVVNfTUFTVEVSOwogCQlmbGFncyB8 PSBWNEwyX01CVVNfU0xBVkU7CiAJfSBlbHNlIHsKKwkJZmxhZ3MgJj0gflY0TDJfTUJVU19TTEFW RTsKIAkJZmxhZ3MgfD0gVjRMMl9NQlVTX01BU1RFUjsKIAl9CiAKQEAgLTIzMSwxMiArMjQ2LDE2 IEBAIHN0YXRpYyB2b2lkIHY0bDJfZndub2RlX2VuZHBvaW50X3BhcnNlX3BhcmFsbGVsX2J1cygK IAl9CiAKIAlpZiAoIWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMihmd25vZGUsICJzeW5jLW9uLWdy ZWVuLWFjdGl2ZSIsICZ2KSkgeworCQlmbGFncyAmPSB+KFY0TDJfTUJVU19WSURFT19TT0dfQUNU SVZFX0hJR0ggfAorCQkJICAgVjRMMl9NQlVTX1ZJREVPX1NPR19BQ1RJVkVfTE9XKTsKIAkJZmxh Z3MgfD0gdiA/IFY0TDJfTUJVU19WSURFT19TT0dfQUNUSVZFX0hJR0ggOgogCQkJVjRMMl9NQlVT X1ZJREVPX1NPR19BQ1RJVkVfTE9XOwogCQlwcl9kZWJ1Zygic3luYy1vbi1ncmVlbi1hY3RpdmUg JXNcbiIsIHYgPyAiaGlnaCIgOiAibG93Iik7CiAJfQogCiAJaWYgKCFmd25vZGVfcHJvcGVydHlf cmVhZF91MzIoZndub2RlLCAiZGF0YS1lbmFibGUtYWN0aXZlIiwgJnYpKSB7CisJCWZsYWdzICY9 IH4oVjRMMl9NQlVTX0RBVEFfRU5BQkxFX0hJR0ggfAorCQkJICAgVjRMMl9NQlVTX0RBVEFfRU5B QkxFX0xPVyk7CiAJCWZsYWdzIHw9IHYgPyBWNEwyX01CVVNfREFUQV9FTkFCTEVfSElHSCA6CiAJ CQlWNEwyX01CVVNfREFUQV9FTkFCTEVfTE9XOwogCQlwcl9kZWJ1ZygiZGF0YS1lbmFibGUtYWN0 aXZlICVzXG4iLCB2ID8gImhpZ2giIDogImxvdyIpOwotLSAKMi4xMS4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from nblzone-211-213.nblnetworks.fi ([83.145.211.213]:40954 "EHLO hillosipuli.retiisi.org.uk" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728256AbeIMCgL (ORCPT ); Wed, 12 Sep 2018 22:36:11 -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 15/23] v4l: fwnode: Use default parallel flags Date: Thu, 13 Sep 2018 00:29:34 +0300 Message-Id: <20180912212942.19641-16-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> Sender: linux-media-owner@vger.kernel.org List-ID: The caller may provide default flags for the endpoint. Change the configuration based on what is available through the fwnode property API. Signed-off-by: Sakari Ailus Tested-by: Steve Longerbeam --- drivers/media/v4l2-core/v4l2-fwnode.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c index bdb0a355b66b..de4a43765ac2 100644 --- a/drivers/media/v4l2-core/v4l2-fwnode.c +++ b/drivers/media/v4l2-core/v4l2-fwnode.c @@ -183,31 +183,44 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus( unsigned int flags = 0; u32 v; + if (bus_type == V4L2_MBUS_PARALLEL || bus_type == V4L2_MBUS_BT656) + flags = bus->flags; + if (!fwnode_property_read_u32(fwnode, "hsync-active", &v)) { + flags &= ~(V4L2_MBUS_HSYNC_ACTIVE_HIGH | + V4L2_MBUS_HSYNC_ACTIVE_LOW); 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)) { + flags &= ~(V4L2_MBUS_VSYNC_ACTIVE_HIGH | + V4L2_MBUS_VSYNC_ACTIVE_LOW); 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)) { + flags &= ~(V4L2_MBUS_FIELD_EVEN_HIGH | + V4L2_MBUS_FIELD_EVEN_LOW); flags |= v ? V4L2_MBUS_FIELD_EVEN_HIGH : V4L2_MBUS_FIELD_EVEN_LOW; pr_debug("field-even-active %s\n", v ? "high" : "low"); } if (!fwnode_property_read_u32(fwnode, "pclk-sample", &v)) { + flags &= ~(V4L2_MBUS_PCLK_SAMPLE_RISING | + V4L2_MBUS_PCLK_SAMPLE_FALLING); 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)) { + flags &= ~(V4L2_MBUS_PCLK_SAMPLE_RISING | + V4L2_MBUS_PCLK_SAMPLE_FALLING); flags |= v ? V4L2_MBUS_DATA_ACTIVE_HIGH : V4L2_MBUS_DATA_ACTIVE_LOW; pr_debug("data-active %s\n", v ? "high" : "low"); @@ -215,8 +228,10 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus( if (fwnode_property_present(fwnode, "slave-mode")) { pr_debug("slave mode\n"); + flags &= ~V4L2_MBUS_MASTER; flags |= V4L2_MBUS_SLAVE; } else { + flags &= ~V4L2_MBUS_SLAVE; flags |= V4L2_MBUS_MASTER; } @@ -231,12 +246,16 @@ static void v4l2_fwnode_endpoint_parse_parallel_bus( } if (!fwnode_property_read_u32(fwnode, "sync-on-green-active", &v)) { + flags &= ~(V4L2_MBUS_VIDEO_SOG_ACTIVE_HIGH | + V4L2_MBUS_VIDEO_SOG_ACTIVE_LOW); 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)) { + flags &= ~(V4L2_MBUS_DATA_ENABLE_HIGH | + V4L2_MBUS_DATA_ENABLE_LOW); flags |= v ? V4L2_MBUS_DATA_ENABLE_HIGH : V4L2_MBUS_DATA_ENABLE_LOW; pr_debug("data-enable-active %s\n", v ? "high" : "low"); -- 2.11.0