From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Laurent Pinchart To: Jacopo Mondi Cc: architt@codeaurora.org, a.hajda@samsung.com, airlied@linux.ie, daniel@ffwll.ch, peda@axentia.se, linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/8] drm: bridge: thc63lvd1024: Add support for LVDS mode map Date: Mon, 23 Apr 2018 15:08:39 +0300 Message-ID: <11465771.5tI9t3u2ch@avalon> In-Reply-To: <1524130269-32688-4-git-send-email-jacopo+renesas@jmondi.org> References: <1524130269-32688-1-git-send-email-jacopo+renesas@jmondi.org> <1524130269-32688-4-git-send-email-jacopo+renesas@jmondi.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-media-owner@vger.kernel.org List-ID: Hi Jacopo, Thank you for the patch. On Thursday, 19 April 2018 12:31:04 EEST Jacopo Mondi wrote: > The THC63LVD1024 LVDS to RGB bridge supports two different LVDS mapping > modes, selectable by means of an external pin. > > Add support for configurable LVDS input mapping modes, using the newly > introduced support for bridge input image formats. > > Signed-off-by: Jacopo Mondi > --- > drivers/gpu/drm/bridge/thc63lvd1024.c | 41 +++++++++++++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/thc63lvd1024.c > b/drivers/gpu/drm/bridge/thc63lvd1024.c index 48527f8..a3071a1 100644 > --- a/drivers/gpu/drm/bridge/thc63lvd1024.c > +++ b/drivers/gpu/drm/bridge/thc63lvd1024.c > @@ -10,9 +10,15 @@ > #include > > #include > +#include > #include > #include > > +enum thc63_lvds_mapping_mode { > + THC63_LVDS_MAP_MODE2, > + THC63_LVDS_MAP_MODE1, > +}; > + > enum thc63_ports { > THC63_LVDS_IN0, > THC63_LVDS_IN1, > @@ -116,6 +122,37 @@ static int thc63_parse_dt(struct thc63_dev *thc63) > return 0; > } > > +static int thc63_set_bus_fmt(struct thc63_dev *thc63) > +{ > + u32 bus_fmt; > + u32 map; > + int ret; > + > + ret = of_property_read_u32(thc63->dev->of_node, "thine,map", &map); > + if (ret) { > + dev_err(thc63->dev, > + "Unable to parse property \"thine,map\": %d\n", ret); > + return ret; Given that the property is currently not defined, I think you should select a default instead of returning an error to preserve backward compatibility. You can print a warning message to get the DT updated, maybe something like u32 map = 0; ... ret = of_property_read_u32(thc63->dev->of_node, "thine,map", &map); if (ret) dev_warn(thc63->dev, "Unable to parse thine,map property (%d), defaulting to 0\n", ret); > + } > + > + switch (map) { > + case THC63_LVDS_MAP_MODE1: > + bus_fmt = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA; > + break; > + case THC63_LVDS_MAP_MODE2: > + bus_fmt = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG; > + break; > + default: > + dev_err(thc63->dev, > + "Invalid value for property \"thine,map\": %u\n", map); > + return -EINVAL; This is fin as invalid property values should be rejected. > + } > + > + drm_bridge_set_bus_formats(&thc63->bridge, &bus_fmt, 1); > + > + return 0; > +} > + > static int thc63_gpio_init(struct thc63_dev *thc63) > { > thc63->oe = devm_gpiod_get_optional(thc63->dev, "oe", GPIOD_OUT_LOW); > @@ -166,6 +203,10 @@ static int thc63_probe(struct platform_device *pdev) > if (ret) > return ret; > > + ret = thc63_set_bus_fmt(thc63); > + if (ret) > + return ret; > + Or you could move the code to thc63_parse_dt() as you're parsing DT. > thc63->bridge.driver_private = thc63; > thc63->bridge.of_node = pdev->dev.of_node; > thc63->bridge.funcs = &thc63_bridge_func; -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 3/8] drm: bridge: thc63lvd1024: Add support for LVDS mode map Date: Mon, 23 Apr 2018 15:08:39 +0300 Message-ID: <11465771.5tI9t3u2ch@avalon> References: <1524130269-32688-1-git-send-email-jacopo+renesas@jmondi.org> <1524130269-32688-4-git-send-email-jacopo+renesas@jmondi.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1524130269-32688-4-git-send-email-jacopo+renesas@jmondi.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jacopo Mondi Cc: devicetree@vger.kernel.org, airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, peda@axentia.se, linux-media@vger.kernel.org List-Id: devicetree@vger.kernel.org SGkgSmFjb3BvLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBUaHVyc2RheSwgMTkgQXBy aWwgMjAxOCAxMjozMTowNCBFRVNUIEphY29wbyBNb25kaSB3cm90ZToKPiBUaGUgVEhDNjNMVkQx MDI0IExWRFMgdG8gUkdCIGJyaWRnZSBzdXBwb3J0cyB0d28gZGlmZmVyZW50IExWRFMgbWFwcGlu Zwo+IG1vZGVzLCBzZWxlY3RhYmxlIGJ5IG1lYW5zIG9mIGFuIGV4dGVybmFsIHBpbi4KPiAKPiBB ZGQgc3VwcG9ydCBmb3IgY29uZmlndXJhYmxlIExWRFMgaW5wdXQgbWFwcGluZyBtb2RlcywgdXNp bmcgdGhlIG5ld2x5Cj4gaW50cm9kdWNlZCBzdXBwb3J0IGZvciBicmlkZ2UgaW5wdXQgaW1hZ2Ug Zm9ybWF0cy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKYWNvcG8gTW9uZGkgPGphY29wbytyZW5lc2Fz QGptb25kaS5vcmc+Cj4gLS0tCj4gZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aGM2M2x2ZDEwMjQu YyB8IDQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+IDEgZmlsZSBjaGFuZ2Vk LCA0MSBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvdGhjNjNsdmQxMDI0LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGhjNjNsdmQxMDI0 LmMgaW5kZXggNDg1MjdmOC4uYTMwNzFhMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RoYzYzbHZkMTAyNC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aGM2 M2x2ZDEwMjQuYwo+IEBAIC0xMCw5ICsxMCwxNSBAQAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9wYW5l bC5oPgo+IAo+ICAjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgo+ICsjaW5jbHVkZSA8 bGludXgvb2YuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+Cj4gICNpbmNsdWRlIDxs aW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KPiAKPiArZW51bSB0aGM2M19sdmRzX21hcHBpbmdf bW9kZSB7Cj4gKwlUSEM2M19MVkRTX01BUF9NT0RFMiwKPiArCVRIQzYzX0xWRFNfTUFQX01PREUx LAo+ICt9Owo+ICsKPiAgZW51bSB0aGM2M19wb3J0cyB7Cj4gIAlUSEM2M19MVkRTX0lOMCwKPiAg CVRIQzYzX0xWRFNfSU4xLAo+IEBAIC0xMTYsNiArMTIyLDM3IEBAIHN0YXRpYyBpbnQgdGhjNjNf cGFyc2VfZHQoc3RydWN0IHRoYzYzX2RldiAqdGhjNjMpCj4gIAlyZXR1cm4gMDsKPiAgfQo+IAo+ ICtzdGF0aWMgaW50IHRoYzYzX3NldF9idXNfZm10KHN0cnVjdCB0aGM2M19kZXYgKnRoYzYzKQo+ ICt7Cj4gKwl1MzIgYnVzX2ZtdDsKPiArCXUzMiBtYXA7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJl dCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKHRoYzYzLT5kZXYtPm9mX25vZGUsICJ0aGluZSxtYXAi LCAmbWFwKTsKPiArCWlmIChyZXQpIHsKPiArCQlkZXZfZXJyKHRoYzYzLT5kZXYsCj4gKwkJCSJV bmFibGUgdG8gcGFyc2UgcHJvcGVydHkgXCJ0aGluZSxtYXBcIjogJWRcbiIsIHJldCk7Cj4gKwkJ cmV0dXJuIHJldDsKCkdpdmVuIHRoYXQgdGhlIHByb3BlcnR5IGlzIGN1cnJlbnRseSBub3QgZGVm aW5lZCwgSSB0aGluayB5b3Ugc2hvdWxkIHNlbGVjdCBhIApkZWZhdWx0IGluc3RlYWQgb2YgcmV0 dXJuaW5nIGFuIGVycm9yIHRvIHByZXNlcnZlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFlvdSAK Y2FuIHByaW50IGEgd2FybmluZyBtZXNzYWdlIHRvIGdldCB0aGUgRFQgdXBkYXRlZCwgbWF5YmUg c29tZXRoaW5nIGxpa2UKCgl1MzIgbWFwID0gMDsKCS4uLgoKCXJldCA9IG9mX3Byb3BlcnR5X3Jl YWRfdTMyKHRoYzYzLT5kZXYtPm9mX25vZGUsICJ0aGluZSxtYXAiLCAmbWFwKTsKCWlmIChyZXQp CgkJZGV2X3dhcm4odGhjNjMtPmRldiwKCQkJICJVbmFibGUgdG8gcGFyc2UgdGhpbmUsbWFwIHBy b3BlcnR5ICglZCksIGRlZmF1bHRpbmcgdG8gMFxuIiwKCQkJIHJldCk7Cgo+ICsJfQo+ICsKPiAr CXN3aXRjaCAobWFwKSB7Cj4gKwljYXNlIFRIQzYzX0xWRFNfTUFQX01PREUxOgo+ICsJCWJ1c19m bXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDdYNF9KRUlEQTsKPiArCQlicmVhazsKPiArCWNh c2UgVEhDNjNfTFZEU19NQVBfTU9ERTI6Cj4gKwkJYnVzX2ZtdCA9IE1FRElBX0JVU19GTVRfUkdC ODg4XzFYN1g0X1NQV0c7Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCWRldl9lcnIodGhj NjMtPmRldiwKPiArCQkJIkludmFsaWQgdmFsdWUgZm9yIHByb3BlcnR5IFwidGhpbmUsbWFwXCI6 ICV1XG4iLCBtYXApOwo+ICsJCXJldHVybiAtRUlOVkFMOwoKVGhpcyBpcyBmaW4gYXMgaW52YWxp ZCBwcm9wZXJ0eSB2YWx1ZXMgc2hvdWxkIGJlIHJlamVjdGVkLgoKPiArCX0KPiArCj4gKwlkcm1f YnJpZGdlX3NldF9idXNfZm9ybWF0cygmdGhjNjMtPmJyaWRnZSwgJmJ1c19mbXQsIDEpOwo+ICsK PiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IHRoYzYzX2dwaW9faW5pdChzdHJ1 Y3QgdGhjNjNfZGV2ICp0aGM2MykKPiAgewo+ICAJdGhjNjMtPm9lID0gZGV2bV9ncGlvZF9nZXRf b3B0aW9uYWwodGhjNjMtPmRldiwgIm9lIiwgR1BJT0RfT1VUX0xPVyk7Cj4gQEAgLTE2Niw2ICsy MDMsMTAgQEAgc3RhdGljIGludCB0aGM2M19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+IAo+ICsJcmV0ID0gdGhjNjNfc2V0 X2J1c19mbXQodGhjNjMpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKCk9yIHlv dSBjb3VsZCBtb3ZlIHRoZSBjb2RlIHRvIHRoYzYzX3BhcnNlX2R0KCkgYXMgeW91J3JlIHBhcnNp bmcgRFQuCgo+ICAJdGhjNjMtPmJyaWRnZS5kcml2ZXJfcHJpdmF0ZSA9IHRoYzYzOwo+ICAJdGhj NjMtPmJyaWRnZS5vZl9ub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7Cj4gIAl0aGM2My0+YnJpZGdl LmZ1bmNzID0gJnRoYzYzX2JyaWRnZV9mdW5jOwoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNo YXJ0CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=