From nobody Wed Feb 11 04:00:57 2026 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A58C61D90AD for ; Mon, 6 Jan 2025 08:49:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736153362; cv=none; b=OGHtQRStBQ9l22qTeRWvyGKc0Hi1Yj1KcZvTEZ5sEIGB2XdsFspVw8RjCabW+41t8jneAMTDVY+X4Y/nWS1zLO18tv2ze3X4qFsfLaROMEZM9KME6siHz6GMHfhCcKxAexLwtWIwY0wSbaNUpzEyYWUwivcjbuEcKXtvE2BgSxI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736153362; c=relaxed/simple; bh=lYvt5NktykrU4G4k710RiF9T2No7atg8/NYgEiARUDI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lqX0t3E82S99uWzRadXX2TZZk9mmR8Wc4I5wg8Yj9okxknOY3gUFzYIvTY5M5DcFpsesRPzAsPy+qD+oVeJ7VvWgF5dDudp9iu8kffzUtzsr0deRSaSXoiHcC6j+y555q4iUqAStcb/Fx8Me2DMqwe90oFFKH4Ulr5RGgPCAu7c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=RBDWUndT; arc=none smtp.client-ip=209.85.218.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="RBDWUndT" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-aa6647a7556so259280266b.2 for ; Mon, 06 Jan 2025 00:49:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1736153358; x=1736758158; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=4TdAMmMa/36NEGjSEYdL3bgt28g6gvQSvEW+I+wH1Zw=; b=RBDWUndT+3v9QjeAw6uYWxcHppOnTGKjL9PrKO7FLUKD+WI9BPpZGtI11Rc63AdKp6 pe99aSUqcTVByK0M7zHZyJLgDU24dWbLkudWgOc6gb4nmXFU32LUiUpF+ZX5M4sGZ+kl J61uNCkxfakwJR8rnxwrXviyVwG2SexdMHvEv2T7jZQ/RNaDIiKobHF7YL3ClEtDV0t+ XtaL1zFevkc+26xDq53KcP8q75y2NrCCINKa74bXAcMhrSTYGN47VRunhdZkYBMd50jx cCgT0g6ZAAH6gyBbIksE5dgefwUUgJ9zNgXwZSy7b7SPQ6HpQFImv6d6/dyOtmigq9qH CDSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736153358; x=1736758158; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4TdAMmMa/36NEGjSEYdL3bgt28g6gvQSvEW+I+wH1Zw=; b=SldcVZ1/C4ltaR/SzRQV3mi9mLIKDfjQCni+HiqwWqLrSKC0rtpE24ECKaDuspxHY3 hD6+EOO6pxEsIb1jDZpD7S3hZX5bC+gdv6mXQh/TpELy7oG3LojO0bbFBW33e2JH4vBt E02EVWyew+zNDvMIvsVSPRWuhvOva4+T9OWmCxKhN3maxWoz+N0ugTEmIpT7zG91UpSP uNodzce0Q5aoFMIKqH2dagTiOEBvrIuetTUmwCja7v/VOTwZzUEbfkpGJOeqIKbRGrdC Isy6xv1LqVwvG0vF8cCN/JYQG9OA71YnMggwJENzF8AT8IBT8KvTcRzWwW+0gge61wjP Qy1A== X-Forwarded-Encrypted: i=1; AJvYcCV0oqCs6tYA6bIpMzx/cfwuouOLJwyU1T1QVKNXsIXGo36CuHrUnB21IT16uQ5ryHCXLGkVji+c3zbGtTI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz+Lf5q3FgyTmNjjNK8DVqPwi4X+i1zNHCtQCJdqoCfmfGL73aj 5THVEp8rYuk3A/QSMI+AeFYArxd46381Q/4hOJlyXY8px7PBeXA40fS5nSYm0Hw= X-Gm-Gg: ASbGnctmWxtSGRPIxzuT0ERHKcaxWqznokCby+l0z0I8CAUopt92E0xO1EXmI/5gF3+ nlbz79ETLrwQ6EBVlMvsg6iwV0YXoWBXNAP0fYP2QkK+5Ibh8Ux3hVcp4trVm4UU+oTr5Ndi0Vz SHPuYaLBW/880njXo3s/VWO3YFIOFROvmTAFO+puTqpTL93aOvaOgAJfLpau7EHAX7y4RgxoSgr rD6BFcKEywaaRBt0fMLf4FpgqJGjNrw9Pp2EJnt3ZztSUtJbvYoXp+cfyFBe41SIdanRBxJ X-Google-Smtp-Source: AGHT+IGuPEKa7Y8wn+0uOc+1jJboUlCaDTd8y6XllLGlDHCj5Ga52ftDkrVG81dndBjt+D74ERoj/g== X-Received: by 2002:a17:907:7e92:b0:aa6:a674:be3c with SMTP id a640c23a62f3a-aac2adb56d7mr2031661366b.5.1736153356335; Mon, 06 Jan 2025 00:49:16 -0800 (PST) Received: from [127.0.1.1] ([178.197.223.165]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0e82f1d2sm2222112466b.11.2025.01.06.00.49.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jan 2025 00:49:15 -0800 (PST) From: Krzysztof Kozlowski Date: Mon, 06 Jan 2025 09:49:05 +0100 Subject: [PATCH 2/4] drm/msm/dsi: Simplify with dev_err_probe() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250106-drm-msm-cleanups-v1-2-271ff1c00795@linaro.org> References: <20250106-drm-msm-cleanups-v1-0-271ff1c00795@linaro.org> In-Reply-To: <20250106-drm-msm-cleanups-v1-0-271ff1c00795@linaro.org> To: Rob Clark , Abhinav Kumar , Dmitry Baryshkov , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6526; i=krzysztof.kozlowski@linaro.org; h=from:subject:message-id; bh=lYvt5NktykrU4G4k710RiF9T2No7atg8/NYgEiARUDI=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBne5kFeF66qxefqCkeKAcrKm6G/RWzKa1Lo5O6x 9gKuZfWWj+JAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCZ3uZBQAKCRDBN2bmhouD 13A/EACCArEJHarifsC36OvyaQw2iWP5JpsdZKyCO79MFzugRGcxQEyzTiD76HWcoC2bprBXWcV mC0MtsPseAqH8bFRdpYIBGM7Y4Gf47s2G7MRykpCTKhr9LcSYj2IxGGsnGCziJG5v7T5iemwMAj uYvAFEnrvcS4mkVUxOzB6aJpEL+DbC3XXtRtx7rdH0/15gEPtcq11hJaxmzSeZ5QJPXnQEqc+Xb NBKKOsaO+nafD0HpK3UhrlpuSP8T6TNcuz3k1VO4RxYHAmUmcwYhChjpt/3IstlyS8RG79pNfXV jRYO9X2LnBPaa4QgNLk2FwUsKZyieP5oKqpc043UtKAyUrnqEP7JI3dvhnjt9AlgKKaDM410eO/ wEAzzv67SOIy1MwMh5N68UjcjM6ukxTOnhHw/SUuGPs9LT958aaavKh6vWif7xZWbzWl154Td72 qbm6cvOdJnltxlMSbzrw/R3OjcgUuwiSO92rmaFCXSPUUHgLmHyHxrpFwdHbCD/TYtki7Kuh00L EOAa5y4hs1Sth9fQ59nLsuEz4VEEG/HutyLPpsBNDuoxCdqFQs5R1ek7df1WcGBynYvKkOMpFJs QkIo8A83bTFKTMrh2plnrqA4ecPm+yTmDArVLXlrz1bvCXWrslhUr+1g52EsmMbbccfH/OO6Yj8 W5cpQ0NNLsNjBUQ== X-Developer-Key: i=krzysztof.kozlowski@linaro.org; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B dsi_clk_init() and msm_dsi_host_init() are called only from platform driver probe function, so using dev_err_probe is both appropriate and beneficial: - Properly marks device deferred probe status, - Avoids dmesg flood on probe deferrals, - Already incorporates printing ERR value, - Shows device name (in contrast to pr_err()), - Makes code smaller and simpler. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Abhinav Kumar --- drivers/gpu/drm/msm/dsi/dsi_host.c | 100 +++++++++++++++------------------= ---- 1 file changed, 41 insertions(+), 59 deletions(-) diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/d= si_host.c index 86ac145076416fa7651d18820266a00d28e44b6f..4a2ad04eea7359545a088bdc639= 07f6b3e5615bd 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_host.c +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c @@ -200,7 +200,8 @@ static const struct msm_dsi_cfg_handler *dsi_get_config( =20 ahb_clk =3D msm_clk_get(msm_host->pdev, "iface"); if (IS_ERR(ahb_clk)) { - pr_err("%s: cannot get interface clock\n", __func__); + dev_err_probe(dev, PTR_ERR(ahb_clk), "%s: cannot get interface clock\n", + __func__); goto exit; } =20 @@ -208,13 +209,13 @@ static const struct msm_dsi_cfg_handler *dsi_get_conf= ig( =20 ret =3D clk_prepare_enable(ahb_clk); if (ret) { - pr_err("%s: unable to enable ahb_clk\n", __func__); + dev_err_probe(dev, ret, "%s: unable to enable ahb_clk\n", __func__); goto runtime_put; } =20 ret =3D dsi_get_version(msm_host->ctrl_base, &major, &minor); if (ret) { - pr_err("%s: Invalid version\n", __func__); + dev_err_probe(dev, ret, "%s: Invalid version\n", __func__); goto disable_clks; } =20 @@ -281,39 +282,31 @@ static int dsi_clk_init(struct msm_dsi_host *msm_host) msm_host->num_bus_clks =3D cfg->num_bus_clks; =20 ret =3D devm_clk_bulk_get(&pdev->dev, msm_host->num_bus_clks, msm_host->b= us_clks); - if (ret < 0) { - dev_err(&pdev->dev, "Unable to get clocks, ret =3D %d\n", ret); - goto exit; - } + if (ret < 0) + return dev_err_probe(&pdev->dev, ret, "Unable to get clocks\n"); =20 /* get link and source clocks */ msm_host->byte_clk =3D msm_clk_get(pdev, "byte"); - if (IS_ERR(msm_host->byte_clk)) { - ret =3D PTR_ERR(msm_host->byte_clk); - pr_err("%s: can't find dsi_byte clock. ret=3D%d\n", - __func__, ret); - goto exit; - } + if (IS_ERR(msm_host->byte_clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(msm_host->byte_clk), + "%s: can't find dsi_byte clock\n", + __func__); =20 msm_host->pixel_clk =3D msm_clk_get(pdev, "pixel"); - if (IS_ERR(msm_host->pixel_clk)) { - ret =3D PTR_ERR(msm_host->pixel_clk); - pr_err("%s: can't find dsi_pixel clock. ret=3D%d\n", - __func__, ret); - goto exit; - } + if (IS_ERR(msm_host->pixel_clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(msm_host->pixel_clk), + "%s: can't find dsi_pixel clock\n", + __func__); =20 msm_host->esc_clk =3D msm_clk_get(pdev, "core"); - if (IS_ERR(msm_host->esc_clk)) { - ret =3D PTR_ERR(msm_host->esc_clk); - pr_err("%s: can't find dsi_esc clock. ret=3D%d\n", - __func__, ret); - goto exit; - } + if (IS_ERR(msm_host->esc_clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(msm_host->esc_clk), + "%s: can't find dsi_esc clock\n", + __func__); =20 if (cfg_hnd->ops->clk_init_ver) ret =3D cfg_hnd->ops->clk_init_ver(msm_host); -exit: + return ret; } =20 @@ -1879,31 +1872,28 @@ int msm_dsi_host_init(struct msm_dsi *msm_dsi) msm_dsi->host =3D &msm_host->base; =20 ret =3D dsi_host_parse_dt(msm_host); - if (ret) { - pr_err("%s: failed to parse dt\n", __func__); - return ret; - } + if (ret) + return dev_err_probe(&pdev->dev, ret, "%s: failed to parse dt\n", + __func__); =20 msm_host->ctrl_base =3D msm_ioremap_size(pdev, "dsi_ctrl", &msm_host->ctr= l_size); - if (IS_ERR(msm_host->ctrl_base)) { - pr_err("%s: unable to map Dsi ctrl base\n", __func__); - return PTR_ERR(msm_host->ctrl_base); - } + if (IS_ERR(msm_host->ctrl_base)) + return dev_err_probe(&pdev->dev, PTR_ERR(msm_host->ctrl_base), + "%s: unable to map Dsi ctrl base\n", __func__); =20 pm_runtime_enable(&pdev->dev); =20 msm_host->cfg_hnd =3D dsi_get_config(msm_host); - if (!msm_host->cfg_hnd) { - pr_err("%s: get config failed\n", __func__); - return -EINVAL; - } + if (!msm_host->cfg_hnd) + return dev_err_probe(&pdev->dev, -EINVAL, + "%s: get config failed\n", __func__); cfg =3D msm_host->cfg_hnd->cfg; =20 msm_host->id =3D dsi_host_get_id(msm_host); - if (msm_host->id < 0) { - pr_err("%s: unable to identify DSI host index\n", __func__); - return msm_host->id; - } + if (msm_host->id < 0) + return dev_err_probe(&pdev->dev, msm_host->id, + "%s: unable to identify DSI host index\n", + __func__); =20 /* fixup base address by io offset */ msm_host->ctrl_base +=3D cfg->io_offset; @@ -1915,10 +1905,8 @@ int msm_dsi_host_init(struct msm_dsi *msm_dsi) return ret; =20 ret =3D dsi_clk_init(msm_host); - if (ret) { - pr_err("%s: unable to initialize dsi clks\n", __func__); - return ret; - } + if (ret) + return dev_err_probe(&pdev->dev, ret, "%s: unable to initialize dsi clks= \n", __func__); =20 msm_host->rx_buf =3D devm_kzalloc(&pdev->dev, SZ_4K, GFP_KERNEL); if (!msm_host->rx_buf) { @@ -1931,26 +1919,20 @@ int msm_dsi_host_init(struct msm_dsi *msm_dsi) return ret; /* OPP table is optional */ ret =3D devm_pm_opp_of_add_table(&pdev->dev); - if (ret && ret !=3D -ENODEV) { - dev_err(&pdev->dev, "invalid OPP table in device tree\n"); - return ret; - } + if (ret && ret !=3D -ENODEV) + return dev_err_probe(&pdev->dev, ret, "invalid OPP table in device tree\= n"); =20 msm_host->irq =3D irq_of_parse_and_map(pdev->dev.of_node, 0); - if (!msm_host->irq) { - dev_err(&pdev->dev, "failed to get irq\n"); - return -EINVAL; - } + if (!msm_host->irq) + return dev_err_probe(&pdev->dev, -EINVAL, "failed to get irq\n"); =20 /* do not autoenable, will be enabled later */ ret =3D devm_request_irq(&pdev->dev, msm_host->irq, dsi_host_irq, IRQF_TRIGGER_HIGH | IRQF_NO_AUTOEN, "dsi_isr", msm_host); - if (ret < 0) { - dev_err(&pdev->dev, "failed to request IRQ%u: %d\n", - msm_host->irq, ret); - return ret; - } + if (ret < 0) + return dev_err_probe(&pdev->dev, ret, "failed to request IRQ%u\n", + msm_host->irq); =20 init_completion(&msm_host->dma_comp); init_completion(&msm_host->video_comp); --=20 2.43.0