Received: by 10.192.165.148 with SMTP id m20csp3347470imm; Mon, 23 Apr 2018 05:09:57 -0700 (PDT) X-Google-Smtp-Source: AIpwx49ZaiZx5cSRj+nKjtf+FONilaJdBS1qDM0VoYiMoZv9uv1nMlHh31a3sI2RDL/ssqCwSYSu X-Received: by 10.98.70.155 with SMTP id o27mr19690253pfi.124.1524485397568; Mon, 23 Apr 2018 05:09:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524485397; cv=none; d=google.com; s=arc-20160816; b=am+ZqC4JXcWqgVJ+paoTsH4/x2DVTVnjygriBQf1mQftphYyTH2sGDOsmOUkcGb9k3 uU3CKqqDyQvFFNwsnTN9afpe+k9tK+mZKdE4wSvNAmVVY9enz2yiHdwB1/zXc0f3Ir1e arXVEwcVoAr4TsbaAbI7OfgyT1LBYhNEk7aENWIDdQenNGzDuBxue0EmV+0gyS44uuNv UUFm7wmUfxwQMmsSWmM81w4OrZjxf3GQpOyQjq6Cnwpq1umXk1dQ7SCNpET4Tsp1OCJ4 hKshTaPhe1aidvojTfJLcOwufOI5wlJPCsHlGXJrfMbN6YIwbIq9JIOZJRQ2SFBFEMQd 16WA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:organization:message-id:date:subject:cc:to :from:dkim-signature:arc-authentication-results; bh=Gwx3T1YSs69Pc0phRiNBLECIeUca++ktu9oGzNjZJP0=; b=rCdrnVM4kPp4Qhr5ZZrYvMD4Yv/Mu8coJTlbMBBNM0ZGfIR0uiIReg8C3B+qIHEZ2E mpkAsZpvv0zxynPw4RHr/v2HPFZsyWudcGx75aZqibLGG43ooBwVLqDClPpQTrAQV2JX PimxqAwLAV4v2pFDg+D7M3BfdPxvIHpywoczVb2MflAcoS9Dr+AUownN9sVJvPS6mkcy gODG8MN168i4vhdwHpLmRVIONI3d/zFVGLlRtrs2GFb5q5pV3mUDyAH6v/9b/dxY0L7L 8W2Ej/a2eYZC1P50+0VhfvKgKpbqg0uwH1n142TKXpsKg3Rtt0RJSAY+0i3pvY12mzhf FSWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=IzBWiaYs; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d67si11173577pfb.232.2018.04.23.05.09.43; Mon, 23 Apr 2018 05:09:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=IzBWiaYs; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754842AbeDWMIe (ORCPT + 99 others); Mon, 23 Apr 2018 08:08:34 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:53024 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754756AbeDWMI2 (ORCPT ); Mon, 23 Apr 2018 08:08:28 -0400 Received: from avalon.localnet (dfj612ybrt5fhg77mgycy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:2e86:4862:ef6a:2804]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id CE29060D7; Mon, 23 Apr 2018 14:08:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1524485306; bh=6NKOlSoEMU2Cw+YR0epFYaRVi3+fVtZd38vmINbiZj8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IzBWiaYsRKBGPBZ8kbVXlgr3nhXEnt3G0VTYPljTUSlenXcJ53K4wTxz6PhIrI1Ji nbw+ELHdyUFYh15Cwcx6IRBXk/U36JrBJwSLZkTHLSFzUfbN8viq/ztzVbuoRkkF5Q s1B8Qogzl2vEBNOcBNSMs44dQgyaMT3dN1VnRWAs= 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> Organization: Ideas on Board Oy 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-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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