Received: by 2002:a05:7412:d1aa:b0:fc:a2b0:25d7 with SMTP id ba42csp1596863rdb; Wed, 31 Jan 2024 03:42:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IHP0MQG4/bP+Vz7vW83DYLUMD01UVrRERY9Cj5XgD8QkgKd5JMi1GlzxBDazngv30IAj+D7 X-Received: by 2002:a17:90b:f10:b0:295:cfb4:9d4c with SMTP id br16-20020a17090b0f1000b00295cfb49d4cmr1267849pjb.33.1706701333893; Wed, 31 Jan 2024 03:42:13 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706701333; cv=pass; d=google.com; s=arc-20160816; b=cnQrdgdWA0+KRs6IgraCu9tsk6K6dC4jimEh3+TwkTds+pXxQ34ndDwMdYLHl5+PAJ PO0ebJATt1Rx2+zq/Cu1rS4loKtHsiRctKyFLRKKMmPRoHxukdNvYe/Z77KU5JHNR6FA F1jDaxJJ/1OFiczDmkAcg1QGYLLKoRZXlm9FJJZIedvo8U/VX9mwFhMDOyvgbpp2Q2xf F1QzAORWtEmqVUsmUVjg2Q1cDWIou2U2guXGXHLxJVRNNOw2rftgr4WVHiyg/abVFW7r X4sKy9HQsxFsXoiFQk5hWbl3edmE1Mpt1jMNvqfXa+L7245ETVI9MT3uhnJCZFK3X7aC LqlQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=iBi0lZGl069tf8B5u/sCy3CZ+bWYrRmGAEz9uhJsWQY=; fh=Zrqd+A6etuDzoygeNAtN70zN2u0oSsfyx3NZ4XT48JY=; b=RaZcdx257qrlrGKJo7y9tIXj9voUcpsIpzrAJb9iFBFFdz6l7k52hoewfaP34tMCss beitltbh6u40KvDWHlc+TdkBc/np8B7sqQHlmz8xLcrC6G1C+FGpJl7HQHv10KOg30h1 9ojSbGa7DQ8Y1ne/Di2sDQNFvvljM8pt997sbMCI6ZKK51LGco2fXGh4u6C1d+rFpt4E VVkmeQoaH6cnVn/0ID0ETwA9kPX0E2JsAkKGrrbzkqg7vLF8vR6y06vocsdQKCViB4lr CnP/R/Gvlwnf8jwfPzYYPAbXQ8rWqMGmgxyGksnIe4pcv6u5PB2XWVfOc2IPfg07diKO MbDw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=zrMSXPq3; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-kernel+bounces-46359-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-46359-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com X-Forwarded-Encrypted: i=1; AJvYcCVRnkdwIEWQZMIHbjFsO3AIT+z5Cv3zV8xXzorF8AkZkOgZkUr8FjOKod9DWvbEgSBzE/jG5p/Ar9rQp3oL9dyayTrDYPFjLduNs+OTcg== Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id c19-20020a17090abf1300b002902c320c80si1051915pjs.96.2024.01.31.03.42.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 31 Jan 2024 03:42:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-46359-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=zrMSXPq3; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-kernel+bounces-46359-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-46359-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 1BEA7292E7D for ; Wed, 31 Jan 2024 11:35:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C249679DB0; Wed, 31 Jan 2024 11:34:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="zrMSXPq3" Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6A0DD7867C for ; Wed, 31 Jan 2024 11:34:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.235.227.194 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706700889; cv=none; b=LhREmcP+NA3Gc9NhH5PY4f9AWXEpVCW7wKZYE+tpMlVmkaTfPeGxTNbwJv5DdA44OySJgC4P+vNEF4wqwVVtZ8anouCbvCZXb1bI6T/jSq+7YwjZLrpmCCKd4r4NBi5OeyC9bjd2gogJcwWjoOZDrZE+RnK+Q68AtsB5qN5P7C4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706700889; c=relaxed/simple; bh=iA4odrfNMiTaQb8H/LRsSZiskxND+wY4ikHqbFC4SQg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EYyqH+RTL9YkyX5zahmSfBvTR5jkQ4yG3+IDj7B2Lde0NebA60b5Z96X+9nuaIHpuPRcGHx8KpeY+WqXJaNF+GG6si0HOBr3k9qIRXKxlvBQBSlpL8vGJLomdVKzaZ9mGvTOV9q6D3gv5DNiPlYhMZfviM8ZaY37OUD6CUGXseM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=zrMSXPq3; arc=none smtp.client-ip=46.235.227.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1706700885; bh=iA4odrfNMiTaQb8H/LRsSZiskxND+wY4ikHqbFC4SQg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zrMSXPq3WHNiA0Hr9KeoayRfzGj6g0+66sjLmJNHBGPvTQHlaiG/4Q6ET6Uwt0Wzf eHs9b8HvVECkC9eWX1JrFq2WyRzRkQa2cds1xNgLl176H5F9A9TSPfwFnlVdDbSpPq OOCDMDbbeTaw+hQd32sKmXSeBfBbXpqpUS49LQDjN4HLVH3NmZWG6qnpaVHrVsX41H jnu6S3Oql0tEKtoahPlQY0ST3QxgkOQKGkjkNHAq80S+nQid8fT/C9MfaTnyMQN+3S OZh2fCFv/MTVfFp7Hi5cgboACflx1v08mCN9CNgQzTQFKO8oltr8+8qEYsYgY+3ykN rcSx8ENOPyblA== Received: from IcarusMOD.eternityproject.eu (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 187F03780C22; Wed, 31 Jan 2024 11:34:45 +0000 (UTC) From: AngeloGioacchino Del Regno To: chunkuang.hu@kernel.org Cc: fshao@chromium.org, p.zabel@pengutronix.de, airlied@gmail.com, daniel@ffwll.ch, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com Subject: [PATCH v3 5/7] drm/mediatek: dsi: Register DSI host after acquiring clocks and PHY Date: Wed, 31 Jan 2024 12:34:32 +0100 Message-ID: <20240131113434.241929-6-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240131113434.241929-1-angelogioacchino.delregno@collabora.com> References: <20240131113434.241929-1-angelogioacchino.delregno@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Registering the dsi host with its ops before getting dsi->regs is simply wrong: even though there's nothing (for now) asynchronously calling those ops before the end of the probe function, installing ops that are using iospace(s) and clocks before even initializing those is too fragile. Register the DSI host after getting clocks, iospace and PHY. This wil also allow to simplify the error paths in a later commit. Signed-off-by: AngeloGioacchino Del Regno --- drivers/gpu/drm/mediatek/mtk_dsi.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c index cc625febe6c8..709a65656b79 100644 --- a/drivers/gpu/drm/mediatek/mtk_dsi.c +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c @@ -1114,14 +1114,6 @@ static int mtk_dsi_probe(struct platform_device *pdev) if (!dsi) return -ENOMEM; - dsi->host.ops = &mtk_dsi_ops; - dsi->host.dev = dev; - ret = mipi_dsi_host_register(&dsi->host); - if (ret < 0) { - dev_err(dev, "failed to register DSI host: %d\n", ret); - return ret; - } - dsi->driver_data = of_device_get_match_data(dev); dsi->engine_clk = devm_clk_get(dev, "engine"); @@ -1130,7 +1122,7 @@ static int mtk_dsi_probe(struct platform_device *pdev) if (ret != -EPROBE_DEFER) dev_err(dev, "Failed to get engine clock: %d\n", ret); - goto err_unregister_host; + return ret; } dsi->digital_clk = devm_clk_get(dev, "digital"); @@ -1139,14 +1131,14 @@ static int mtk_dsi_probe(struct platform_device *pdev) if (ret != -EPROBE_DEFER) dev_err(dev, "Failed to get digital clock: %d\n", ret); - goto err_unregister_host; + return ret; } dsi->hs_clk = devm_clk_get(dev, "hs"); if (IS_ERR(dsi->hs_clk)) { ret = PTR_ERR(dsi->hs_clk); dev_err(dev, "Failed to get hs clock: %d\n", ret); - goto err_unregister_host; + return ret; } regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -1154,20 +1146,28 @@ static int mtk_dsi_probe(struct platform_device *pdev) if (IS_ERR(dsi->regs)) { ret = PTR_ERR(dsi->regs); dev_err(dev, "Failed to ioremap memory: %d\n", ret); - goto err_unregister_host; + return ret; } dsi->phy = devm_phy_get(dev, "dphy"); if (IS_ERR(dsi->phy)) { ret = PTR_ERR(dsi->phy); dev_err(dev, "Failed to get MIPI-DPHY: %d\n", ret); - goto err_unregister_host; + return ret; } irq_num = platform_get_irq(pdev, 0); if (irq_num < 0) { ret = irq_num; - goto err_unregister_host; + return ret; + } + + dsi->host.ops = &mtk_dsi_ops; + dsi->host.dev = dev; + ret = mipi_dsi_host_register(&dsi->host); + if (ret < 0) { + dev_err(dev, "failed to register DSI host: %d\n", ret); + return ret; } ret = devm_request_irq(&pdev->dev, irq_num, mtk_dsi_irq, -- 2.43.0