From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 15752C0219D for ; Thu, 13 Feb 2025 10:45:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=aaE/dSNeGdgX1WoQr6YE8kL6dnuBFwLeIbEwR1+HkHg=; b=ZrOUKe/juXPMTnry+mwhQeBuDi XZIDQ69X/BghmnaTQTdzLfGjY1O37C6PV/bqLP6NEhKizcQnexByTI535p9j2OBvvooVrY3Fz2Qt3 sWfDA6sZZAaGOyLLW5vUU97K0xReCpfySV2onsQ9h9S1ceKyWkGdkctSqfN6e+ERfmftaS647dYfC q2/1ndiInM6YFgmVrCX4h7cDTlI0DpWoMH/OWhUNOBHYS6uTCXz+z9altTOyF1l4M7wUd1M77UnE2 0ri5SE0KeOlTsHin/s65yC2B4i8BUbYHPIYXD5lwJaohs03o+WlCoxtYMmum3pPCFiJeprUDv/a1m edD4xF1g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tiWiY-0000000AiE4-2ktU; Thu, 13 Feb 2025 10:45:14 +0000 Received: from bali.collaboradmins.com ([2a01:4f8:201:9162::2]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tiWYU-0000000AgiF-370Y; Thu, 13 Feb 2025 10:34:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1739442888; bh=35xQ3XU/c9jHM/pt/XsRyFhzFFeSPKtFpTinc1AhEc0=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=g3ifTBzgbJKTXGVF0K8jfa8nrnSiGhPZ2FBE2Gd8LzlMualD71Rv/oyMKJ+a7Nr/X mBwFMLSVbmYpxQtjmymtUgTyoUdgzzsehiQCI54bVajj93s7eeQfu41neTg1tsO9Oe gSDilPzenaLsRn7WfyO/HKKCjEDyg9wdXFYPGCS/0pwMqnLBVOzec28PwqKP0qW8vA 7fYTDeFoseI+vc/Rkh2QxAUNCwRaANJ6uCzP0Khx0TpPV46AuM0DyMjeAbo+kxJjr6 q8Ric2B8PdlEKfABLqZbC1YkF1yT61ZOnPqmDWA4AL4SlRNbHlL+28bQWeKZiE+l0v 1k376nYV5DPzw== Received: from [192.168.1.100] (2-237-20-237.ip236.fastwebnet.it [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by bali.collaboradmins.com (Postfix) with ESMTPSA id CDF6717E1247; Thu, 13 Feb 2025 11:34:46 +0100 (CET) Message-ID: Date: Thu, 13 Feb 2025 11:34:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 25/42] drm/mediatek: mtk_hdmi: Move CEC device parsing in new function To: =?UTF-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= , "chunkuang.hu@kernel.org" Cc: "robh@kernel.org" , "jie.qiu@mediatek.com" , "tzimmermann@suse.de" , "simona@ffwll.ch" , "mripard@kernel.org" , =?UTF-8?B?Sml0YW8gU2hpICjnn7PorrDmtpsp?= , "linux-mediatek@lists.infradead.org" , "dri-devel@lists.freedesktop.org" , "maarten.lankhorst@linux.intel.com" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "kernel@collabora.com" , "dmitry.baryshkov@linaro.org" , "krzk+dt@kernel.org" , =?UTF-8?B?TGV3aXMgTGlhbyAo5buW5p+P6YieKQ==?= , "p.zabel@pengutronix.de" , "conor+dt@kernel.org" , =?UTF-8?B?VG9tbXlZTCBDaGVuICjpmbPlvaXoia8p?= , =?UTF-8?B?SXZlcyBDaGVuamggKOmZs+S/iuW8mCk=?= , "airlied@gmail.com" , "linux-arm-kernel@lists.infradead.org" , "matthias.bgg@gmail.com" , =?UTF-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , "junzhi.zhao@mediatek.com" References: <20250211113409.1517534-1-angelogioacchino.delregno@collabora.com> <20250211113409.1517534-26-angelogioacchino.delregno@collabora.com> <0e164efeaa3cde827293bfed001d7a2c5fbb56fc.camel@mediatek.com> From: AngeloGioacchino Del Regno Content-Language: en-US In-Reply-To: <0e164efeaa3cde827293bfed001d7a2c5fbb56fc.camel@mediatek.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250213_023450_959979_A7A74EBE X-CRM114-Status: GOOD ( 19.64 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Il 13/02/25 08:42, CK Hu (胡俊光) ha scritto: > On Tue, 2025-02-11 at 12:33 +0100, AngeloGioacchino Del Regno wrote: >> External email : Please do not click links or open attachments until you have verified the sender or the content. >> >> >> Move the CEC device parsing logic to a new function called >> mtk_hdmi_get_cec_dev(), and move the parsing action to the end >> of mtk_hdmi_dt_parse_pdata(), allowing to remove gotos in this >> function, reducing code size and improving readability. >> >> Signed-off-by: AngeloGioacchino Del Regno >> --- >> drivers/gpu/drm/mediatek/mtk_hdmi.c | 82 ++++++++++++++--------------- >> 1 file changed, 39 insertions(+), 43 deletions(-) >> >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c >> index 6140b55c2830..03b56588fc7d 100644 >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c >> @@ -1367,20 +1367,12 @@ static const struct drm_bridge_funcs mtk_hdmi_bridge_funcs = { >> .edid_read = mtk_hdmi_bridge_edid_read, >> }; >> >> -static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi, >> - struct platform_device *pdev) >> +static int mtk_hdmi_get_cec_dev(struct mtk_hdmi *hdmi, struct device *dev, struct device_node *np) >> { >> - struct device *dev = &pdev->dev; >> - struct device_node *np = dev->of_node; >> - struct device_node *remote, *i2c_np; >> struct platform_device *cec_pdev; >> - struct regmap *regmap; >> + struct device_node *cec_np; >> int ret; >> >> - ret = mtk_hdmi_get_all_clk(hdmi, np); >> - if (ret) >> - return dev_err_probe(dev, ret, "Failed to get clocks\n"); >> - >> /* The CEC module handles HDMI hotplug detection */ >> cec_np = of_get_compatible_child(np->parent, "mediatek,mt8173-cec"); >> if (!cec_np) >> @@ -1394,65 +1386,69 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi, >> return -EPROBE_DEFER; >> } >> of_node_put(cec_np); >> - hdmi->cec_dev = &cec_pdev->dev; >> >> /* >> * The mediatek,syscon-hdmi property contains a phandle link to the >> * MMSYS_CONFIG device and the register offset of the HDMI_SYS_CFG >> * registers it contains. >> */ >> - regmap = syscon_regmap_lookup_by_phandle(np, "mediatek,syscon-hdmi"); >> - ret = of_property_read_u32_index(np, "mediatek,syscon-hdmi", 1, >> - &hdmi->sys_offset); >> - if (IS_ERR(regmap)) >> - ret = PTR_ERR(regmap); >> - if (ret) { >> - dev_err_probe(dev, ret, >> - "Failed to get system configuration registers\n"); >> - goto put_device; >> - } >> - hdmi->sys_regmap = regmap; >> + hdmi->sys_regmap = syscon_regmap_lookup_by_phandle(np, "mediatek,syscon-hdmi"); >> + if (IS_ERR(hdmi->sys_regmap)) >> + return PTR_ERR(hdmi->sys_regmap); >> + >> + ret = of_property_read_u32_index(np, "mediatek,syscon-hdmi", 1, &hdmi->sys_offset); >> + if (ret) >> + return dev_err_probe(dev, ret, >> + "Failed to get system configuration registers\n"); >> + >> + hdmi->cec_dev = &cec_pdev->dev; >> + return 0; >> +} >> + >> +static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi, >> + struct platform_device *pdev) >> +{ >> + struct device *dev = &pdev->dev; >> + struct device_node *np = dev->of_node; >> + struct device_node *remote, *i2c_np; >> + int ret; >> + >> + ret = mtk_hdmi_get_all_clk(hdmi, np); >> + if (ret) >> + return dev_err_probe(dev, ret, "Failed to get clocks\n"); >> >> hdmi->regs = device_node_to_regmap(dev->of_node); >> - if (IS_ERR(hdmi->regs)) { >> - ret = PTR_ERR(hdmi->regs); >> - goto put_device; >> - } >> + if (IS_ERR(hdmi->regs)) >> + return PTR_ERR(hdmi->regs); >> >> remote = of_graph_get_remote_node(np, 1, 0); >> - if (!remote) { >> - ret = -EINVAL; >> - goto put_device; >> - } >> + if (!remote) >> + return -EINVAL; >> >> if (!of_device_is_compatible(remote, "hdmi-connector")) { >> hdmi->next_bridge = of_drm_find_bridge(remote); >> if (!hdmi->next_bridge) { >> dev_err(dev, "Waiting for external bridge\n"); >> of_node_put(remote); >> - ret = -EPROBE_DEFER; >> - goto put_device; >> + return -EPROBE_DEFER; >> } >> } >> >> i2c_np = of_parse_phandle(remote, "ddc-i2c-bus", 0); >> of_node_put(remote); >> - if (!i2c_np) { >> - ret = dev_err_probe(dev, -EINVAL, "No ddc-i2c-bus in connector\n"); >> - goto put_device; >> - } >> + if (!i2c_np) >> + return dev_err_probe(dev, -EINVAL, "No ddc-i2c-bus in connector\n"); >> >> hdmi->ddc_adpt = of_find_i2c_adapter_by_node(i2c_np); >> of_node_put(i2c_np); >> - if (!hdmi->ddc_adpt) { >> - ret = dev_err_probe(dev, -EINVAL, "Failed to get ddc i2c adapter by node\n"); >> - goto put_device; >> - } >> + if (!hdmi->ddc_adpt) >> + return dev_err_probe(dev, -EINVAL, "Failed to get ddc i2c adapter by node\n"); >> + >> + ret = mtk_hdmi_get_cec_dev(hdmi, dev, np); >> + if (ret) >> + return ret; >> >> return 0; > > return mtk_hdmi_get_cec_dev(hdmi, dev, np); > > or > > ret = mtk_hdmi_get_cec_dev(hdmi, dev, np); > > return ret; > > After this, > > Reviewed-by: CK Hu > Can we please avoid this change? That's done so that any addition to the end of the function produces a smaller diff and for return value readability. Thanks, Angelo >> -put_device: >> - put_device(hdmi->cec_dev); >> - return ret; >> } >> >> /* >> -- >> 2.48.1 >> >