All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: dri-devel@lists.freedesktop.org,
	Andrzej Hajda <andrzej.hajda@intel.com>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Robert Foss <rfoss@kernel.org>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Subject: [PATCH v2 27/39] drm/mediatek/hdmi: switch to ->edid_read callback
Date: Wed,  3 Jan 2024 12:08:41 +0200	[thread overview]
Message-ID: <86810aa84406512832dc3fb1ad20720a8bc567a6.1704276309.git.jani.nikula@intel.com> (raw)
In-Reply-To: <cover.1704276309.git.jani.nikula@intel.com>

Prefer using the struct drm_edid based callback and functions.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/mediatek/mtk_hdmi.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index 86133bf16326..c6bdc565e4a9 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1265,19 +1265,27 @@ static enum drm_connector_status mtk_hdmi_bridge_detect(struct drm_bridge *bridg
 	return mtk_hdmi_detect(hdmi);
 }
 
-static struct edid *mtk_hdmi_bridge_get_edid(struct drm_bridge *bridge,
-					     struct drm_connector *connector)
+static const struct drm_edid *mtk_hdmi_bridge_edid_read(struct drm_bridge *bridge,
+							struct drm_connector *connector)
 {
 	struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge);
-	struct edid *edid;
+	const struct drm_edid *drm_edid;
 
 	if (!hdmi->ddc_adpt)
 		return NULL;
-	edid = drm_get_edid(connector, hdmi->ddc_adpt);
-	if (!edid)
-		return NULL;
-	hdmi->dvi_mode = !drm_detect_monitor_audio(edid);
-	return edid;
+	drm_edid = drm_edid_read_ddc(connector, hdmi->ddc_adpt);
+	if (drm_edid) {
+		/*
+		 * FIXME: This should use !connector->display_info.has_audio (or
+		 * !connector->display_info.is_hdmi) from a path that has read
+		 * the EDID and called drm_edid_connector_update().
+		 */
+		const struct edid *edid = drm_edid_raw(drm_edid);
+
+		hdmi->dvi_mode = !drm_detect_monitor_audio(edid);
+	}
+
+	return drm_edid;
 }
 
 static int mtk_hdmi_bridge_attach(struct drm_bridge *bridge,
@@ -1417,7 +1425,7 @@ static const struct drm_bridge_funcs mtk_hdmi_bridge_funcs = {
 	.atomic_pre_enable = mtk_hdmi_bridge_atomic_pre_enable,
 	.atomic_enable = mtk_hdmi_bridge_atomic_enable,
 	.detect = mtk_hdmi_bridge_detect,
-	.get_edid = mtk_hdmi_bridge_get_edid,
+	.edid_read = mtk_hdmi_bridge_edid_read,
 };
 
 static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi,
-- 
2.39.2


  parent reply	other threads:[~2024-01-03 10:11 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-03 10:08 [PATCH v2 00/39] drm/bridge: switch to struct drm_edid Jani Nikula
2024-01-03 10:08 ` [PATCH v2 01/39] drm/bridge: add ->edid_read hook and drm_bridge_edid_read() Jani Nikula
2024-01-03 10:08 ` [PATCH v2 02/39] drm/bridge: switch to drm_bridge_read_edid() Jani Nikula
2024-01-03 10:33   ` Thomas Zimmermann
2024-01-03 10:57     ` Jani Nikula
2024-01-03 10:08 ` [PATCH v2 03/39] drm/bridge: chrontel-ch7033: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 04/39] drm/bridge: lt8912b: use drm_bridge_read_edid() Jani Nikula
2024-01-03 10:08 ` [PATCH v2 05/39] drm/bridge: lt8912b: clear the EDID property on failures Jani Nikula
2024-01-03 10:08 ` [PATCH v2 06/39] drm/bridge: lt8912b: use ->edid_read callback Jani Nikula
2024-01-03 10:08 ` [PATCH v2 07/39] drm/bridge: lt9611uxc: use drm_bridge_read_edid() Jani Nikula
2024-01-03 10:08 ` [PATCH v2 08/39] drm: bridge: simple-bridge: use drm_bridge_edid_read() Jani Nikula
2024-01-03 10:08 ` [PATCH v2 09/39] drm: bridge: simple-bridge: clear the EDID property on failures Jani Nikula
2024-01-03 10:08 ` [PATCH v2 10/39] drm/bridge: tfp410: use drm_bridge_edid_read() Jani Nikula
2024-01-03 10:08 ` [PATCH v2 11/39] drm/bridge: tfp410: clear the EDID property on failures Jani Nikula
2024-01-03 10:08 ` [PATCH v2 12/39] drm/meson: switch to drm_bridge_edid_read() Jani Nikula
2024-01-03 10:08 ` [PATCH v2 13/39] drm/bridge: remove drm_bridge_get_edid() in favour of drm_bridge_edid_read() Jani Nikula
2024-01-03 10:08 ` [PATCH v2 14/39] drm/bridge: anx7625: switch to ->edid_read callback Jani Nikula
2024-01-03 10:08 ` [PATCH v2 15/39] drm/bridge: cdns-mhdp8546: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 16/39] drm/bridge: cdns-mhdp8546: clear the EDID property on failures Jani Nikula
2024-01-03 10:08 ` [PATCH v2 17/39] drm/bridge: display-connector: switch to ->edid_read callback Jani Nikula
2024-01-03 10:08 ` [PATCH v2 18/39] drm/bridge: it6505: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 19/39] drm: bridge: it66121: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 20/39] drm/bridge: lt9611: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 21/39] drm/bridge: lt9611uxc: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 22/39] drm/bridge: megachips: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 23/39] drm/bridge: nxp-ptn3460: " Jani Nikula
2024-01-03 20:20   ` kernel test robot
2024-01-03 20:20     ` kernel test robot
2024-01-04 12:17     ` Jani Nikula
2024-01-09 10:14   ` [PATCH v2] " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 24/39] drm/bridge: sii902x: use display info is_hdmi Jani Nikula
2024-01-03 10:08 ` [PATCH v2 25/39] drm/bridge: sii902x: switch to ->edid_read callback Jani Nikula
2024-01-03 10:08 ` [PATCH v2 26/39] drm/mediatek/dp: " Jani Nikula
2024-01-03 10:08 ` Jani Nikula [this message]
2024-01-03 10:08 ` [PATCH v2 28/39] drm/msm/hdmi: fix indent Jani Nikula
2024-01-03 10:08 ` [PATCH v2 29/39] drm/msm/hdmi: switch to ->edid_read callback Jani Nikula
2024-01-03 10:08 ` [PATCH v2 30/39] drm/omap/hdmi4: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 31/39] drm/omap/hdmi5: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 32/39] drm: xlnx: zynqmp_dpsub: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 33/39] drm: adv7511: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 34/39] drm: bridge: dw_hdmi: " Jani Nikula
2024-01-04  5:44   ` kernel test robot
2024-01-04  5:44     ` kernel test robot
2024-01-04 12:21     ` Jani Nikula
2024-01-09 10:11   ` [PATCH v2] drm/bridge: nxp-ptn3460: " Jani Nikula
2024-01-09 10:16     ` Jani Nikula
2024-01-09 10:13   ` [PATCH v2] drm: bridge: dw_hdmi: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 35/39] drm: bridge: dw_hdmi: clear the EDID property and CEC address on failures Jani Nikula
2024-01-03 10:08 ` [PATCH v2 36/39] drm/bridge: tc358767: update the EDID property Jani Nikula
2024-01-03 10:08 ` [PATCH v2 37/39] drm/bridge: tc358767: switch to ->edid_read callback Jani Nikula
2024-01-03 10:08 ` [PATCH v2 38/39] drm/bridge: ti-sn65dsi86: " Jani Nikula
2024-01-03 10:08 ` [PATCH v2 39/39] drm/bridge: remove ->get_edid callback Jani Nikula
2024-01-03 10:11 ` [PATCH v2 00/39] drm/bridge: switch to struct drm_edid Jani Nikula

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86810aa84406512832dc3fb1ad20720a8bc567a6.1704276309.git.jani.nikula@intel.com \
    --to=jani.nikula@intel.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=andrzej.hajda@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=neil.armstrong@linaro.org \
    --cc=rfoss@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.