* [PATCH 00/15] drm: struct drm_edid conversions
@ 2024-04-16 13:22 Jani Nikula
2024-04-16 13:22 ` [PATCH 01/15] drm/panel: simple: switch to struct drm_edid Jani Nikula
` (15 more replies)
0 siblings, 16 replies; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel; +Cc: Jani Nikula
I've these laying in a branch for a while, maybe let's try to make some
forward progress in this front.
Build tested only, on x86, arm, and arm64.
BR,
Jani.
Jani Nikula (15):
drm/panel: simple: switch to struct drm_edid
drm/panel-samsung-atna33xc20: switch to struct drm_edid
drm/panel-edp: switch to struct drm_edid
drm/bridge/analogix/anx6345: switch to struct drm_edid
drm/bridge/analogix/anx78xx: switch to struct drm_edid
drm/sun4i: hdmi: switch to struct drm_edid
drm/vc4: hdmi: switch to struct drm_edid
drm/bridge: anx7625: use struct drm_edid more
drm/gud: switch to struct drm_edid
drm/i2c: tda998x: switch to struct drm_edid
drm/bochs: switch to struct drm_edid
drm/virtio: switch to struct drm_edid
drm/rockchip: cdn-dp: switch to struct drm_edid
drm/rockchip: inno_hdmi: switch to struct drm_edid
drm/rockchip: rk3066_hdmi: switch to struct drm_edid
.../drm/bridge/analogix/analogix-anx6345.c | 15 +++---
.../drm/bridge/analogix/analogix-anx78xx.c | 23 +++++-----
drivers/gpu/drm/bridge/analogix/anx7625.c | 26 +++++++----
drivers/gpu/drm/bridge/analogix/anx7625.h | 10 +---
drivers/gpu/drm/gud/gud_connector.c | 12 ++---
drivers/gpu/drm/i2c/tda998x_drv.c | 19 ++++----
drivers/gpu/drm/panel/panel-edp.c | 17 ++++---
.../gpu/drm/panel/panel-samsung-atna33xc20.c | 13 ++++--
drivers/gpu/drm/panel/panel-simple.c | 15 +++---
drivers/gpu/drm/rockchip/cdn-dp-core.c | 33 +++++++------
drivers/gpu/drm/rockchip/cdn-dp-core.h | 2 +-
drivers/gpu/drm/rockchip/inno_hdmi.c | 12 ++---
drivers/gpu/drm/rockchip/rk3066_hdmi.c | 12 ++---
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 18 +++++---
drivers/gpu/drm/tiny/bochs.c | 23 ++++------
drivers/gpu/drm/vc4/vc4_hdmi.c | 46 ++++++++++---------
drivers/gpu/drm/virtio/virtgpu_display.c | 10 ++--
drivers/gpu/drm/virtio/virtgpu_drv.h | 2 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 12 ++---
19 files changed, 167 insertions(+), 153 deletions(-)
--
2.39.2
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH 01/15] drm/panel: simple: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 17:41 ` Neil Armstrong
2024-04-16 13:22 ` [PATCH 02/15] drm/panel-samsung-atna33xc20: " Jani Nikula
` (14 subsequent siblings)
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel; +Cc: Jani Nikula, Neil Armstrong, Jessica Zhang, Sam Ravnborg
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Jessica Zhang <quic_jesszhan@quicinc.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
---
drivers/gpu/drm/panel/panel-simple.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 7215cf767898..d3264fa2f3ff 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -151,7 +151,7 @@ struct panel_simple {
struct gpio_desc *enable_gpio;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
struct drm_display_mode override_mode;
@@ -309,8 +309,8 @@ static int panel_simple_suspend(struct device *dev)
regulator_disable(p->supply);
p->unprepared_time = ktime_get_boottime();
- kfree(p->edid);
- p->edid = NULL;
+ drm_edid_free(p->drm_edid);
+ p->drm_edid = NULL;
return 0;
}
@@ -399,11 +399,12 @@ static int panel_simple_get_modes(struct drm_panel *panel,
if (p->ddc) {
pm_runtime_get_sync(panel->dev);
- if (!p->edid)
- p->edid = drm_get_edid(connector, p->ddc);
+ if (!p->drm_edid)
+ p->drm_edid = drm_edid_read_ddc(connector, p->ddc);
- if (p->edid)
- num += drm_add_edid_modes(connector, p->edid);
+ drm_edid_connector_update(connector, p->drm_edid);
+
+ num += drm_edid_connector_add_modes(connector);
pm_runtime_mark_last_busy(panel->dev);
pm_runtime_put_autosuspend(panel->dev);
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 02/15] drm/panel-samsung-atna33xc20: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
2024-04-16 13:22 ` [PATCH 01/15] drm/panel: simple: switch to struct drm_edid Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 17:41 ` Neil Armstrong
2024-04-16 13:22 ` [PATCH 03/15] drm/panel-edp: " Jani Nikula
` (13 subsequent siblings)
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel; +Cc: Jani Nikula, Neil Armstrong, Jessica Zhang, Sam Ravnborg
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Jessica Zhang <quic_jesszhan@quicinc.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
---
drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c b/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
index 6828a4f24d14..a9f0d214a900 100644
--- a/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
+++ b/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
@@ -36,7 +36,7 @@ struct atana33xc20_panel {
struct gpio_desc *el_on3_gpio;
struct drm_dp_aux *aux;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
ktime_t powered_off_time;
ktime_t powered_on_time;
@@ -253,9 +253,12 @@ static int atana33xc20_get_modes(struct drm_panel *panel,
pm_runtime_get_sync(panel->dev);
- if (!p->edid)
- p->edid = drm_get_edid(connector, &aux_ep->aux->ddc);
- num = drm_add_edid_modes(connector, p->edid);
+ if (!p->drm_edid)
+ p->drm_edid = drm_edid_read_ddc(connector, &aux_ep->aux->ddc);
+
+ drm_edid_connector_update(connector, p->drm_edid);
+
+ num = drm_edid_connector_add_modes(connector);
pm_runtime_mark_last_busy(panel->dev);
pm_runtime_put_autosuspend(panel->dev);
@@ -351,7 +354,7 @@ static void atana33xc20_remove(struct dp_aux_ep_device *aux_ep)
drm_panel_disable(&panel->base);
drm_panel_unprepare(&panel->base);
- kfree(panel->edid);
+ drm_edid_free(panel->drm_edid);
}
static void atana33xc20_shutdown(struct dp_aux_ep_device *aux_ep)
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 03/15] drm/panel-edp: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
2024-04-16 13:22 ` [PATCH 01/15] drm/panel: simple: switch to struct drm_edid Jani Nikula
2024-04-16 13:22 ` [PATCH 02/15] drm/panel-samsung-atna33xc20: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 17:43 ` Neil Armstrong
2024-04-16 13:22 ` [PATCH 04/15] drm/bridge/analogix/anx6345: " Jani Nikula
` (12 subsequent siblings)
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Douglas Anderson, Neil Armstrong, Jessica Zhang,
Sam Ravnborg
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Jessica Zhang <quic_jesszhan@quicinc.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
---
drivers/gpu/drm/panel/panel-edp.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
index d29bacf25c12..ece1e3553c1f 100644
--- a/drivers/gpu/drm/panel/panel-edp.c
+++ b/drivers/gpu/drm/panel/panel-edp.c
@@ -242,7 +242,7 @@ struct panel_edp {
const struct edp_panel_entry *detected_panel;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
struct drm_display_mode override_mode;
@@ -617,13 +617,16 @@ static int panel_edp_get_modes(struct drm_panel *panel,
if (p->ddc) {
pm_runtime_get_sync(panel->dev);
- if (!p->edid)
- p->edid = drm_get_edid(connector, p->ddc);
+ if (!p->drm_edid)
+ p->drm_edid = drm_edid_read_ddc(connector, p->ddc);
+
+ drm_edid_connector_update(connector, p->drm_edid);
+
/*
* If both edid and hard-coded modes exists, skip edid modes to
* avoid multiple preferred modes.
*/
- if (p->edid && !has_hard_coded_modes) {
+ if (p->drm_edid && !has_hard_coded_modes) {
if (has_override_edid_mode) {
/*
* override_edid_mode is specified. Use
@@ -632,7 +635,7 @@ static int panel_edp_get_modes(struct drm_panel *panel,
num += panel_edp_override_edid_mode(p, connector,
p->detected_panel->override_edid_mode);
} else {
- num += drm_add_edid_modes(connector, p->edid);
+ num += drm_edid_connector_add_modes(connector);
}
}
@@ -981,8 +984,8 @@ static void panel_edp_remove(struct device *dev)
if (panel->ddc && (!panel->aux || panel->ddc != &panel->aux->ddc))
put_device(&panel->ddc->dev);
- kfree(panel->edid);
- panel->edid = NULL;
+ drm_edid_free(panel->drm_edid);
+ panel->drm_edid = NULL;
}
static void panel_edp_shutdown(struct device *dev)
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 04/15] drm/bridge/analogix/anx6345: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (2 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 03/15] drm/panel-edp: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 13:22 ` [PATCH 05/15] drm/bridge/analogix/anx78xx: " Jani Nikula
` (11 subsequent siblings)
15 siblings, 0 replies; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Robert Foss <rfoss@kernel.org>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Jonas Karlman <jonas@kwiboo.se>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
---
.../gpu/drm/bridge/analogix/analogix-anx6345.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
index c9e35731e6a1..42ab6014fe12 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c
@@ -47,7 +47,7 @@ struct anx6345 {
struct drm_dp_aux aux;
struct drm_bridge bridge;
struct i2c_client *client;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
struct drm_connector connector;
struct drm_panel *panel;
struct regulator *dvdd12;
@@ -458,7 +458,7 @@ static int anx6345_get_modes(struct drm_connector *connector)
mutex_lock(&anx6345->lock);
- if (!anx6345->edid) {
+ if (!anx6345->drm_edid) {
if (!anx6345->powered) {
anx6345_poweron(anx6345);
power_off = true;
@@ -470,19 +470,18 @@ static int anx6345_get_modes(struct drm_connector *connector)
goto unlock;
}
- anx6345->edid = drm_get_edid(connector, &anx6345->aux.ddc);
- if (!anx6345->edid)
+ anx6345->drm_edid = drm_edid_read_ddc(connector, &anx6345->aux.ddc);
+ if (!anx6345->drm_edid)
DRM_ERROR("Failed to read EDID from panel\n");
- err = drm_connector_update_edid_property(connector,
- anx6345->edid);
+ err = drm_edid_connector_update(connector, anx6345->drm_edid);
if (err) {
DRM_ERROR("Failed to update EDID property: %d\n", err);
goto unlock;
}
}
- num_modes += drm_add_edid_modes(connector, anx6345->edid);
+ num_modes += drm_edid_connector_add_modes(connector);
/* Driver currently supports only 6bpc */
connector->display_info.bpc = 6;
@@ -793,7 +792,7 @@ static void anx6345_i2c_remove(struct i2c_client *client)
unregister_i2c_dummy_clients(anx6345);
- kfree(anx6345->edid);
+ drm_edid_free(anx6345->drm_edid);
mutex_destroy(&anx6345->lock);
}
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 05/15] drm/bridge/analogix/anx78xx: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (3 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 04/15] drm/bridge/analogix/anx6345: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 13:22 ` [PATCH 06/15] drm/sun4i: hdmi: " Jani Nikula
` (10 subsequent siblings)
15 siblings, 0 replies; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Robert Foss <rfoss@kernel.org>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Jonas Karlman <jonas@kwiboo.se>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
---
.../drm/bridge/analogix/analogix-anx78xx.c | 23 ++++++++++---------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
index 5748a8581af4..ae79bcd8fa55 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
@@ -67,7 +67,7 @@ struct anx78xx {
struct drm_dp_aux aux;
struct drm_bridge bridge;
struct i2c_client *client;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
struct drm_connector connector;
struct anx78xx_platform_data pdata;
struct mutex lock;
@@ -830,8 +830,8 @@ static int anx78xx_get_modes(struct drm_connector *connector)
if (WARN_ON(!anx78xx->powered))
return 0;
- if (anx78xx->edid)
- return drm_add_edid_modes(connector, anx78xx->edid);
+ if (anx78xx->drm_edid)
+ return drm_edid_connector_add_modes(connector);
mutex_lock(&anx78xx->lock);
@@ -841,20 +841,21 @@ static int anx78xx_get_modes(struct drm_connector *connector)
goto unlock;
}
- anx78xx->edid = drm_get_edid(connector, &anx78xx->aux.ddc);
- if (!anx78xx->edid) {
+ anx78xx->drm_edid = drm_edid_read_ddc(connector, &anx78xx->aux.ddc);
+
+ err = drm_edid_connector_update(connector, anx78xx->drm_edid);
+
+ if (!anx78xx->drm_edid) {
DRM_ERROR("Failed to read EDID\n");
goto unlock;
}
- err = drm_connector_update_edid_property(connector,
- anx78xx->edid);
if (err) {
DRM_ERROR("Failed to update EDID property: %d\n", err);
goto unlock;
}
- num_modes = drm_add_edid_modes(connector, anx78xx->edid);
+ num_modes = drm_edid_connector_add_modes(connector);
unlock:
mutex_unlock(&anx78xx->lock);
@@ -1091,8 +1092,8 @@ static bool anx78xx_handle_common_int_4(struct anx78xx *anx78xx, u8 irq)
event = true;
anx78xx_poweroff(anx78xx);
/* Free cached EDID */
- kfree(anx78xx->edid);
- anx78xx->edid = NULL;
+ drm_edid_free(anx78xx->drm_edid);
+ anx78xx->drm_edid = NULL;
} else if (irq & SP_HPD_PLUG) {
DRM_DEBUG_KMS("IRQ: Hot plug detect - cable plug\n");
event = true;
@@ -1363,7 +1364,7 @@ static void anx78xx_i2c_remove(struct i2c_client *client)
unregister_i2c_dummy_clients(anx78xx);
- kfree(anx78xx->edid);
+ drm_edid_free(anx78xx->drm_edid);
}
static const struct of_device_id anx78xx_match_table[] = {
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 06/15] drm/sun4i: hdmi: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (4 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 05/15] drm/bridge/analogix/anx78xx: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-18 11:51 ` Maxime Ripard
2024-04-16 13:22 ` [PATCH 07/15] drm/vc4: " Jani Nikula
` (9 subsequent siblings)
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Maxime Ripard, Chen-Yu Tsai, Jernej Skrabec,
Samuel Holland, linux-arm-kernel, linux-sunxi
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: Samuel Holland <samuel@sholland.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-sunxi@lists.linux.dev
---
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
index 2d1880c61b50..245b34adca5a 100644
--- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
+++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
@@ -214,20 +214,24 @@ sun4i_hdmi_connector_mode_valid(struct drm_connector *connector,
static int sun4i_hdmi_get_modes(struct drm_connector *connector)
{
struct sun4i_hdmi *hdmi = drm_connector_to_sun4i_hdmi(connector);
- struct edid *edid;
+ const struct drm_edid *drm_edid;
int ret;
- edid = drm_get_edid(connector, hdmi->ddc_i2c ?: hdmi->i2c);
- if (!edid)
+ drm_edid = drm_edid_read_ddc(connector, hdmi->ddc_i2c ?: hdmi->i2c);
+
+ drm_edid_connector_update(connector, drm_edid);
+ cec_s_phys_addr(hdmi->cec_adap,
+ connector->display_info.source_physical_address, false);
+
+ if (!drm_edid)
return 0;
DRM_DEBUG_DRIVER("Monitor is %s monitor\n",
connector->display_info.is_hdmi ? "an HDMI" : "a DVI");
- drm_connector_update_edid_property(connector, edid);
- cec_s_phys_addr_from_edid(hdmi->cec_adap, edid);
- ret = drm_add_edid_modes(connector, edid);
- kfree(edid);
+
+ ret = drm_edid_connector_add_modes(connector);
+ drm_edid_free(drm_edid);
return ret;
}
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 07/15] drm/vc4: hdmi: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (5 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 06/15] drm/sun4i: hdmi: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-18 11:51 ` Maxime Ripard
2024-04-16 13:22 ` [PATCH 08/15] drm/bridge: anx7625: use struct drm_edid more Jani Nikula
` (8 subsequent siblings)
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Maxime Ripard, Maarten Lankhorst, Thomas Zimmermann
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/vc4/vc4_hdmi.c | 46 ++++++++++++++++++----------------
1 file changed, 25 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 5f8d51b29370..d30f8e8e8967 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -412,15 +412,14 @@ static void vc4_hdmi_handle_hotplug(struct vc4_hdmi *vc4_hdmi,
enum drm_connector_status status)
{
struct drm_connector *connector = &vc4_hdmi->connector;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
int ret;
/*
- * NOTE: This function should really be called with
- * vc4_hdmi->mutex held, but doing so results in reentrancy
- * issues since cec_s_phys_addr_from_edid might call
- * .adap_enable, which leads to that funtion being called with
- * our mutex held.
+ * NOTE: This function should really be called with vc4_hdmi->mutex
+ * held, but doing so results in reentrancy issues since
+ * cec_s_phys_addr() might call .adap_enable, which leads to that
+ * funtion being called with our mutex held.
*
* A similar situation occurs with vc4_hdmi_reset_link() that
* will call into our KMS hooks if the scrambling was enabled.
@@ -435,12 +434,16 @@ static void vc4_hdmi_handle_hotplug(struct vc4_hdmi *vc4_hdmi,
return;
}
- edid = drm_get_edid(connector, vc4_hdmi->ddc);
- if (!edid)
+ drm_edid = drm_edid_read_ddc(connector, vc4_hdmi->ddc);
+
+ drm_edid_connector_update(connector, drm_edid);
+ cec_s_phys_addr(vc4_hdmi->cec_adap,
+ connector->display_info.source_physical_address, false);
+
+ if (!drm_edid)
return;
- cec_s_phys_addr_from_edid(vc4_hdmi->cec_adap, edid);
- kfree(edid);
+ drm_edid_free(drm_edid);
for (;;) {
ret = vc4_hdmi_reset_link(connector, ctx);
@@ -492,28 +495,29 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector)
{
struct vc4_hdmi *vc4_hdmi = connector_to_vc4_hdmi(connector);
struct vc4_dev *vc4 = to_vc4_dev(connector->dev);
+ const struct drm_edid *drm_edid;
int ret = 0;
- struct edid *edid;
/*
- * NOTE: This function should really take vc4_hdmi->mutex, but
- * doing so results in reentrancy issues since
- * cec_s_phys_addr_from_edid might call .adap_enable, which
- * leads to that funtion being called with our mutex held.
+ * NOTE: This function should really take vc4_hdmi->mutex, but doing so
+ * results in reentrancy issues since cec_s_phys_addr() might call
+ * .adap_enable, which leads to that funtion being called with our mutex
+ * held.
*
* Concurrency isn't an issue at the moment since we don't share
* any state with any of the other frameworks so we can ignore
* the lock for now.
*/
- edid = drm_get_edid(connector, vc4_hdmi->ddc);
- cec_s_phys_addr_from_edid(vc4_hdmi->cec_adap, edid);
- if (!edid)
+ drm_edid = drm_edid_read_ddc(connector, vc4_hdmi->ddc);
+ drm_edid_connector_update(connector, drm_edid);
+ cec_s_phys_addr(vc4_hdmi->cec_adap,
+ connector->display_info.source_physical_address, false);
+ if (!drm_edid)
return 0;
- drm_connector_update_edid_property(connector, edid);
- ret = drm_add_edid_modes(connector, edid);
- kfree(edid);
+ ret = drm_edid_connector_add_modes(connector);
+ drm_edid_free(drm_edid);
if (!vc4->hvs->vc5_hdmi_enable_hdmi_20) {
struct drm_device *drm = connector->dev;
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 08/15] drm/bridge: anx7625: use struct drm_edid more
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (6 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 07/15] drm/vc4: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 13:22 ` [PATCH 09/15] drm/gud: switch to struct drm_edid Jani Nikula
` (7 subsequent siblings)
15 siblings, 0 replies; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Robert Foss <rfoss@kernel.org>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Jonas Karlman <jonas@kwiboo.se>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
---
drivers/gpu/drm/bridge/analogix/anx7625.c | 26 +++++++++++++++--------
drivers/gpu/drm/bridge/analogix/anx7625.h | 10 ++-------
2 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
index 9d96d28d6fe8..efee71a450f3 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -464,9 +464,11 @@ static int anx7625_odfc_config(struct anx7625_data *ctx,
*/
static int anx7625_set_k_value(struct anx7625_data *ctx)
{
- struct edid *edid = (struct edid *)ctx->slimport_edid_p.edid_raw_data;
+ struct drm_edid_product_id id;
- if (edid->mfg_id[0] == IVO_MID0 && edid->mfg_id[1] == IVO_MID1)
+ drm_edid_get_product_id(ctx->cached_drm_edid, &id);
+
+ if (be16_to_cpu(id.manufacturer_name) == IVO_MID)
return anx7625_reg_write(ctx, ctx->i2c.rx_p1_client,
MIPI_DIGITAL_ADJ_1, 0x3B);
@@ -1526,7 +1528,8 @@ static int anx7625_wait_hpd_asserted(struct drm_dp_aux *aux,
static void anx7625_remove_edid(struct anx7625_data *ctx)
{
- ctx->slimport_edid_p.edid_block_num = -1;
+ drm_edid_free(ctx->cached_drm_edid);
+ ctx->cached_drm_edid = NULL;
}
static void anx7625_dp_adjust_swing(struct anx7625_data *ctx)
@@ -1787,27 +1790,32 @@ static ssize_t anx7625_aux_transfer(struct drm_dp_aux *aux,
static const struct drm_edid *anx7625_edid_read(struct anx7625_data *ctx)
{
struct device *dev = ctx->dev;
- struct s_edid_data *p_edid = &ctx->slimport_edid_p;
+ u8 *edid_buf;
int edid_num;
- if (ctx->slimport_edid_p.edid_block_num > 0)
+ if (ctx->cached_drm_edid)
goto out;
+ edid_buf = kmalloc(FOUR_BLOCK_SIZE, GFP_KERNEL);
+ if (!edid_buf)
+ return NULL;
+
pm_runtime_get_sync(dev);
_anx7625_hpd_polling(ctx, 5000 * 100);
- edid_num = sp_tx_edid_read(ctx, p_edid->edid_raw_data);
+ edid_num = sp_tx_edid_read(ctx, edid_buf);
pm_runtime_put_sync(dev);
if (edid_num < 1) {
DRM_DEV_ERROR(dev, "Fail to read EDID: %d\n", edid_num);
+ kfree(edid_buf);
return NULL;
}
- p_edid->edid_block_num = edid_num;
+ ctx->cached_drm_edid = drm_edid_alloc(edid_buf, FOUR_BLOCK_SIZE);
+ kfree(edid_buf);
out:
- return drm_edid_alloc(ctx->slimport_edid_p.edid_raw_data,
- FOUR_BLOCK_SIZE);
+ return drm_edid_dup(ctx->cached_drm_edid);
}
static enum drm_connector_status anx7625_sink_detect(struct anx7625_data *ctx)
diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h
index 39ed35d33836..eb5580f1ab2f 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.h
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.h
@@ -286,8 +286,7 @@
#define MIPI_LANE_CTRL_10 0x0F
#define MIPI_DIGITAL_ADJ_1 0x1B
-#define IVO_MID0 0x26
-#define IVO_MID1 0xCF
+#define IVO_MID 0x26CF
#define MIPI_PLL_M_NUM_23_16 0x1E
#define MIPI_PLL_M_NUM_15_8 0x1F
@@ -417,11 +416,6 @@ enum audio_wd_len {
#define EDID_TRY_CNT 3
#define SUPPORT_PIXEL_CLOCK 300000
-struct s_edid_data {
- int edid_block_num;
- u8 edid_raw_data[FOUR_BLOCK_SIZE];
-};
-
/***************** Display End *****************/
#define MAX_LANES_SUPPORT 4
@@ -466,7 +460,7 @@ struct anx7625_data {
struct anx7625_i2c_client i2c;
struct i2c_client *last_client;
struct timer_list hdcp_timer;
- struct s_edid_data slimport_edid_p;
+ const struct drm_edid *cached_drm_edid;
struct device *codec_dev;
hdmi_codec_plugged_cb plugged_cb;
struct work_struct work;
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 09/15] drm/gud: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (7 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 08/15] drm/bridge: anx7625: use struct drm_edid more Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-17 15:26 ` Noralf Trønnes
2024-04-16 13:22 ` [PATCH 10/15] drm/i2c: tda998x: " Jani Nikula
` (6 subsequent siblings)
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel; +Cc: Jani Nikula, Noralf Trønnes
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: "Noralf Trønnes" <noralf@tronnes.org>
---
drivers/gpu/drm/gud/gud_connector.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/gud/gud_connector.c b/drivers/gpu/drm/gud/gud_connector.c
index 034e78360d4f..0f07d77c5d52 100644
--- a/drivers/gpu/drm/gud/gud_connector.c
+++ b/drivers/gpu/drm/gud/gud_connector.c
@@ -221,7 +221,7 @@ static int gud_connector_get_modes(struct drm_connector *connector)
struct gud_display_mode_req *reqmodes = NULL;
struct gud_connector_get_edid_ctx edid_ctx;
unsigned int i, num_modes = 0;
- struct edid *edid = NULL;
+ const struct drm_edid *drm_edid = NULL;
int idx, ret;
if (!drm_dev_enter(connector->dev, &idx))
@@ -238,13 +238,13 @@ static int gud_connector_get_modes(struct drm_connector *connector)
gud_conn_err(connector, "Invalid EDID size", ret);
} else if (ret > 0) {
edid_ctx.len = ret;
- edid = drm_do_get_edid(connector, gud_connector_get_edid_block, &edid_ctx);
+ drm_edid = drm_edid_read_custom(connector, gud_connector_get_edid_block, &edid_ctx);
}
kfree(edid_ctx.buf);
- drm_connector_update_edid_property(connector, edid);
+ drm_edid_connector_update(connector, drm_edid);
- if (edid && edid_ctx.edid_override)
+ if (drm_edid && edid_ctx.edid_override)
goto out;
reqmodes = kmalloc_array(GUD_CONNECTOR_MAX_NUM_MODES, sizeof(*reqmodes), GFP_KERNEL);
@@ -276,10 +276,10 @@ static int gud_connector_get_modes(struct drm_connector *connector)
}
out:
if (!num_modes)
- num_modes = drm_add_edid_modes(connector, edid);
+ num_modes = drm_edid_connector_add_modes(connector);
kfree(reqmodes);
- kfree(edid);
+ drm_edid_free(drm_edid);
drm_dev_exit(idx);
return num_modes;
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 10/15] drm/i2c: tda998x: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (8 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 09/15] drm/gud: switch to struct drm_edid Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 13:22 ` [PATCH 11/15] drm/bochs: " Jani Nikula
` (5 subsequent siblings)
15 siblings, 0 replies; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel; +Cc: Jani Nikula, Russell King
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Russell King <linux@armlinux.org.uk>
---
drivers/gpu/drm/i2c/tda998x_drv.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index d8d7de18dd65..2160f05bbd16 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -1283,7 +1283,7 @@ static int read_edid_block(void *data, u8 *buf, unsigned int blk, size_t length)
static int tda998x_connector_get_modes(struct drm_connector *connector)
{
struct tda998x_priv *priv = conn_to_tda998x_priv(connector);
- struct edid *edid;
+ const struct drm_edid *drm_edid;
int n;
/*
@@ -1297,25 +1297,26 @@ static int tda998x_connector_get_modes(struct drm_connector *connector)
if (priv->rev == TDA19988)
reg_clear(priv, REG_TX4, TX4_PD_RAM);
- edid = drm_do_get_edid(connector, read_edid_block, priv);
+ drm_edid = drm_edid_read_custom(connector, read_edid_block, priv);
if (priv->rev == TDA19988)
reg_set(priv, REG_TX4, TX4_PD_RAM);
- if (!edid) {
+ drm_edid_connector_update(connector, drm_edid);
+ cec_notifier_set_phys_addr(priv->cec_notify,
+ connector->display_info.source_physical_address);
+
+ if (!drm_edid) {
dev_warn(&priv->hdmi->dev, "failed to read EDID\n");
return 0;
}
- drm_connector_update_edid_property(connector, edid);
- cec_notifier_set_phys_addr_from_edid(priv->cec_notify, edid);
-
mutex_lock(&priv->audio_mutex);
- n = drm_add_edid_modes(connector, edid);
- priv->sink_has_audio = drm_detect_monitor_audio(edid);
+ n = drm_edid_connector_add_modes(connector);
+ priv->sink_has_audio = connector->display_info.has_audio;
mutex_unlock(&priv->audio_mutex);
- kfree(edid);
+ drm_edid_free(drm_edid);
return n;
}
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 11/15] drm/bochs: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (9 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 10/15] drm/i2c: tda998x: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 13:22 ` [PATCH 12/15] drm/virtio: " Jani Nikula
` (4 subsequent siblings)
15 siblings, 0 replies; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel; +Cc: Jani Nikula, Gerd Hoffmann, virtualization
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: virtualization@lists.linux.dev
---
drivers/gpu/drm/tiny/bochs.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c
index c23c9f0cf49c..1ea3c4de07af 100644
--- a/drivers/gpu/drm/tiny/bochs.c
+++ b/drivers/gpu/drm/tiny/bochs.c
@@ -85,7 +85,7 @@ struct bochs_device {
u16 yres_virtual;
u32 stride;
u32 bpp;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
/* drm */
struct drm_device *dev;
@@ -199,10 +199,10 @@ static int bochs_hw_load_edid(struct bochs_device *bochs)
if (drm_edid_header_is_valid(header) != 8)
return -1;
- kfree(bochs->edid);
- bochs->edid = drm_do_get_edid(&bochs->connector,
- bochs_get_edid_block, bochs);
- if (bochs->edid == NULL)
+ drm_edid_free(bochs->drm_edid);
+ bochs->drm_edid = drm_edid_read_custom(&bochs->connector,
+ bochs_get_edid_block, bochs);
+ if (bochs->drm_edid == NULL)
return -1;
return 0;
@@ -303,7 +303,7 @@ static void bochs_hw_fini(struct drm_device *dev)
if (bochs->fb_map)
iounmap(bochs->fb_map);
pci_release_regions(to_pci_dev(dev->dev));
- kfree(bochs->edid);
+ drm_edid_free(bochs->drm_edid);
}
static void bochs_hw_blank(struct bochs_device *bochs, bool blank)
@@ -471,12 +471,9 @@ static const struct drm_simple_display_pipe_funcs bochs_pipe_funcs = {
static int bochs_connector_get_modes(struct drm_connector *connector)
{
- struct bochs_device *bochs =
- container_of(connector, struct bochs_device, connector);
- int count = 0;
+ int count;
- if (bochs->edid)
- count = drm_add_edid_modes(connector, bochs->edid);
+ count = drm_edid_connector_add_modes(connector);
if (!count) {
count = drm_add_modes_noedid(connector, 8192, 8192);
@@ -507,10 +504,10 @@ static void bochs_connector_init(struct drm_device *dev)
drm_connector_helper_add(connector, &bochs_connector_connector_helper_funcs);
bochs_hw_load_edid(bochs);
- if (bochs->edid) {
+ if (bochs->drm_edid) {
DRM_INFO("Found EDID data blob.\n");
drm_connector_attach_edid_property(connector);
- drm_connector_update_edid_property(connector, bochs->edid);
+ drm_edid_connector_update(&bochs->connector, bochs->drm_edid);
}
}
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 12/15] drm/virtio: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (10 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 11/15] drm/bochs: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-16 13:22 ` [PATCH 13/15] drm/rockchip: cdn-dp: " Jani Nikula
` (3 subsequent siblings)
15 siblings, 0 replies; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, David Airlie, Gerd Hoffmann, Gurchetan Singh,
Chia-I Wu, virtualization
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: David Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Cc: Chia-I Wu <olvaffe@gmail.com>
Cc: virtualization@lists.linux.dev
---
drivers/gpu/drm/virtio/virtgpu_display.c | 10 ++++------
drivers/gpu/drm/virtio/virtgpu_drv.h | 2 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 12 ++++++------
3 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index ad924a8502e9..64baf2f22d9f 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -164,11 +164,9 @@ static int virtio_gpu_conn_get_modes(struct drm_connector *connector)
struct drm_display_mode *mode = NULL;
int count, width, height;
- if (output->edid) {
- count = drm_add_edid_modes(connector, output->edid);
- if (count)
- return count;
- }
+ count = drm_edid_connector_add_modes(connector);
+ if (count)
+ return count;
width = le32_to_cpu(output->info.r.width);
height = le32_to_cpu(output->info.r.height);
@@ -369,5 +367,5 @@ void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev)
return;
for (i = 0 ; i < vgdev->num_scanouts; ++i)
- kfree(vgdev->outputs[i].edid);
+ drm_edid_free(vgdev->outputs[i].drm_edid);
}
diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
index bb7d86a0c6a1..64c236169db8 100644
--- a/drivers/gpu/drm/virtio/virtgpu_drv.h
+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
@@ -179,7 +179,7 @@ struct virtio_gpu_output {
struct drm_encoder enc;
struct virtio_gpu_display_one info;
struct virtio_gpu_update_cursor cursor;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
int cur_x;
int cur_y;
bool needs_modeset;
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index b1a00c0c25a7..0d3d0d09f39b 100644
--- a/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ b/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -741,21 +741,21 @@ static void virtio_gpu_cmd_get_edid_cb(struct virtio_gpu_device *vgdev,
(struct virtio_gpu_resp_edid *)vbuf->resp_buf;
uint32_t scanout = le32_to_cpu(cmd->scanout);
struct virtio_gpu_output *output;
- struct edid *new_edid, *old_edid;
+ const struct drm_edid *new_edid, *old_edid;
if (scanout >= vgdev->num_scanouts)
return;
output = vgdev->outputs + scanout;
- new_edid = drm_do_get_edid(&output->conn, virtio_get_edid_block, resp);
- drm_connector_update_edid_property(&output->conn, new_edid);
+ new_edid = drm_edid_read_custom(&output->conn, virtio_get_edid_block, resp);
+ drm_edid_connector_update(&output->conn, new_edid);
spin_lock(&vgdev->display_info_lock);
- old_edid = output->edid;
- output->edid = new_edid;
+ old_edid = output->drm_edid;
+ output->drm_edid = new_edid;
spin_unlock(&vgdev->display_info_lock);
- kfree(old_edid);
+ drm_edid_free(old_edid);
wake_up(&vgdev->resp_wq);
}
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 13/15] drm/rockchip: cdn-dp: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (11 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 12/15] drm/virtio: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-19 10:58 ` Heiko Stuebner
2024-04-16 13:22 ` [PATCH 14/15] drm/rockchip: inno_hdmi: " Jani Nikula
` (2 subsequent siblings)
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Sandy Huang, Heiko Stübner, Andy Yan,
linux-arm-kernel, linux-rockchip
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
---
drivers/gpu/drm/rockchip/cdn-dp-core.c | 33 +++++++++++++++-----------
drivers/gpu/drm/rockchip/cdn-dp-core.h | 2 +-
2 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c
index a855c45ae7f3..9e3d7cb84c5d 100644
--- a/drivers/gpu/drm/rockchip/cdn-dp-core.c
+++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c
@@ -262,20 +262,21 @@ static const struct drm_connector_funcs cdn_dp_atomic_connector_funcs = {
static int cdn_dp_connector_get_modes(struct drm_connector *connector)
{
struct cdn_dp_device *dp = connector_to_dp(connector);
- struct edid *edid;
int ret = 0;
mutex_lock(&dp->lock);
- edid = dp->edid;
- if (edid) {
+
+ if (dp->drm_edid) {
+ /* FIXME: get rid of drm_edid_raw() */
+ const struct edid *edid = drm_edid_raw(dp->drm_edid);
+
DRM_DEV_DEBUG_KMS(dp->dev, "got edid: width[%d] x height[%d]\n",
edid->width_cm, edid->height_cm);
- dp->sink_has_audio = drm_detect_monitor_audio(edid);
-
- drm_connector_update_edid_property(connector, edid);
- ret = drm_add_edid_modes(connector, edid);
}
+
+ ret = drm_edid_connector_add_modes(connector);
+
mutex_unlock(&dp->lock);
return ret;
@@ -380,9 +381,13 @@ static int cdn_dp_get_sink_capability(struct cdn_dp_device *dp)
return ret;
}
- kfree(dp->edid);
- dp->edid = drm_do_get_edid(&dp->connector,
- cdn_dp_get_edid_block, dp);
+ drm_edid_free(dp->drm_edid);
+ dp->drm_edid = drm_edid_read_custom(&dp->connector,
+ cdn_dp_get_edid_block, dp);
+ drm_edid_connector_update(&dp->connector, dp->drm_edid);
+
+ dp->sink_has_audio = dp->connector.display_info.has_audio;
+
return 0;
}
@@ -488,8 +493,8 @@ static int cdn_dp_disable(struct cdn_dp_device *dp)
dp->max_lanes = 0;
dp->max_rate = 0;
if (!dp->connected) {
- kfree(dp->edid);
- dp->edid = NULL;
+ drm_edid_free(dp->drm_edid);
+ dp->drm_edid = NULL;
}
return 0;
@@ -1131,8 +1136,8 @@ static void cdn_dp_unbind(struct device *dev, struct device *master, void *data)
pm_runtime_disable(dev);
if (dp->fw_loaded)
release_firmware(dp->fw);
- kfree(dp->edid);
- dp->edid = NULL;
+ drm_edid_free(dp->drm_edid);
+ dp->drm_edid = NULL;
}
static const struct component_ops cdn_dp_component_ops = {
diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.h b/drivers/gpu/drm/rockchip/cdn-dp-core.h
index 5b2fed1f5f55..8e6e95d269da 100644
--- a/drivers/gpu/drm/rockchip/cdn-dp-core.h
+++ b/drivers/gpu/drm/rockchip/cdn-dp-core.h
@@ -70,7 +70,7 @@ struct cdn_dp_device {
struct drm_display_mode mode;
struct platform_device *audio_pdev;
struct work_struct event_work;
- struct edid *edid;
+ const struct drm_edid *drm_edid;
struct mutex lock;
bool connected;
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 14/15] drm/rockchip: inno_hdmi: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (12 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 13/15] drm/rockchip: cdn-dp: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-19 10:58 ` Heiko Stuebner
2024-04-16 13:22 ` [PATCH 15/15] drm/rockchip: rk3066_hdmi: " Jani Nikula
2024-05-07 15:34 ` [PATCH 00/15] drm: struct drm_edid conversions Thomas Zimmermann
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Sandy Huang, Heiko Stübner, Andy Yan,
linux-arm-kernel, linux-rockchip
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
---
drivers/gpu/drm/rockchip/inno_hdmi.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
index 1d2261643743..3df2cfcf9998 100644
--- a/drivers/gpu/drm/rockchip/inno_hdmi.c
+++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
@@ -606,18 +606,16 @@ inno_hdmi_connector_detect(struct drm_connector *connector, bool force)
static int inno_hdmi_connector_get_modes(struct drm_connector *connector)
{
struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
- struct edid *edid;
+ const struct drm_edid *drm_edid;
int ret = 0;
if (!hdmi->ddc)
return 0;
- edid = drm_get_edid(connector, hdmi->ddc);
- if (edid) {
- drm_connector_update_edid_property(connector, edid);
- ret = drm_add_edid_modes(connector, edid);
- kfree(edid);
- }
+ drm_edid = drm_edid_read_ddc(connector, hdmi->ddc);
+ drm_edid_connector_update(connector, drm_edid);
+ ret = drm_edid_connector_add_modes(connector);
+ drm_edid_free(drm_edid);
return ret;
}
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 15/15] drm/rockchip: rk3066_hdmi: switch to struct drm_edid
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (13 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 14/15] drm/rockchip: inno_hdmi: " Jani Nikula
@ 2024-04-16 13:22 ` Jani Nikula
2024-04-19 10:58 ` Heiko Stuebner
2024-05-07 15:34 ` [PATCH 00/15] drm: struct drm_edid conversions Thomas Zimmermann
15 siblings, 1 reply; 27+ messages in thread
From: Jani Nikula @ 2024-04-16 13:22 UTC (permalink / raw
To: dri-devel
Cc: Jani Nikula, Sandy Huang, Heiko Stübner, Andy Yan,
linux-arm-kernel, linux-rockchip
Prefer struct drm_edid based functions over struct edid.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
---
drivers/gpu/drm/rockchip/rk3066_hdmi.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rk3066_hdmi.c b/drivers/gpu/drm/rockchip/rk3066_hdmi.c
index 95cd1b49eda8..784de990da1b 100644
--- a/drivers/gpu/drm/rockchip/rk3066_hdmi.c
+++ b/drivers/gpu/drm/rockchip/rk3066_hdmi.c
@@ -466,18 +466,16 @@ rk3066_hdmi_connector_detect(struct drm_connector *connector, bool force)
static int rk3066_hdmi_connector_get_modes(struct drm_connector *connector)
{
struct rk3066_hdmi *hdmi = connector_to_rk3066_hdmi(connector);
- struct edid *edid;
+ const struct drm_edid *drm_edid;
int ret = 0;
if (!hdmi->ddc)
return 0;
- edid = drm_get_edid(connector, hdmi->ddc);
- if (edid) {
- drm_connector_update_edid_property(connector, edid);
- ret = drm_add_edid_modes(connector, edid);
- kfree(edid);
- }
+ drm_edid = drm_edid_read_ddc(connector, hdmi->ddc);
+ drm_edid_connector_update(connector, drm_edid);
+ ret = drm_edid_connector_add_modes(connector);
+ drm_edid_free(drm_edid);
return ret;
}
--
2.39.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [PATCH 01/15] drm/panel: simple: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 01/15] drm/panel: simple: switch to struct drm_edid Jani Nikula
@ 2024-04-16 17:41 ` Neil Armstrong
0 siblings, 0 replies; 27+ messages in thread
From: Neil Armstrong @ 2024-04-16 17:41 UTC (permalink / raw
To: Jani Nikula, dri-devel; +Cc: Jessica Zhang, Sam Ravnborg
On 16/04/2024 15:22, Jani Nikula wrote:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> ---
>
> Cc: Neil Armstrong <neil.armstrong@linaro.org>
> Cc: Jessica Zhang <quic_jesszhan@quicinc.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
> drivers/gpu/drm/panel/panel-simple.c | 15 ++++++++-------
> 1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 7215cf767898..d3264fa2f3ff 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -151,7 +151,7 @@ struct panel_simple {
>
> struct gpio_desc *enable_gpio;
>
> - struct edid *edid;
> + const struct drm_edid *drm_edid;
>
> struct drm_display_mode override_mode;
>
> @@ -309,8 +309,8 @@ static int panel_simple_suspend(struct device *dev)
> regulator_disable(p->supply);
> p->unprepared_time = ktime_get_boottime();
>
> - kfree(p->edid);
> - p->edid = NULL;
> + drm_edid_free(p->drm_edid);
> + p->drm_edid = NULL;
>
> return 0;
> }
> @@ -399,11 +399,12 @@ static int panel_simple_get_modes(struct drm_panel *panel,
> if (p->ddc) {
> pm_runtime_get_sync(panel->dev);
>
> - if (!p->edid)
> - p->edid = drm_get_edid(connector, p->ddc);
> + if (!p->drm_edid)
> + p->drm_edid = drm_edid_read_ddc(connector, p->ddc);
>
> - if (p->edid)
> - num += drm_add_edid_modes(connector, p->edid);
> + drm_edid_connector_update(connector, p->drm_edid);
> +
> + num += drm_edid_connector_add_modes(connector);
>
> pm_runtime_mark_last_busy(panel->dev);
> pm_runtime_put_autosuspend(panel->dev);
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 02/15] drm/panel-samsung-atna33xc20: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 02/15] drm/panel-samsung-atna33xc20: " Jani Nikula
@ 2024-04-16 17:41 ` Neil Armstrong
0 siblings, 0 replies; 27+ messages in thread
From: Neil Armstrong @ 2024-04-16 17:41 UTC (permalink / raw
To: Jani Nikula, dri-devel; +Cc: Jessica Zhang, Sam Ravnborg
On 16/04/2024 15:22, Jani Nikula wrote:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> ---
>
> Cc: Neil Armstrong <neil.armstrong@linaro.org>
> Cc: Jessica Zhang <quic_jesszhan@quicinc.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
> drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c b/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
> index 6828a4f24d14..a9f0d214a900 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
> @@ -36,7 +36,7 @@ struct atana33xc20_panel {
> struct gpio_desc *el_on3_gpio;
> struct drm_dp_aux *aux;
>
> - struct edid *edid;
> + const struct drm_edid *drm_edid;
>
> ktime_t powered_off_time;
> ktime_t powered_on_time;
> @@ -253,9 +253,12 @@ static int atana33xc20_get_modes(struct drm_panel *panel,
>
> pm_runtime_get_sync(panel->dev);
>
> - if (!p->edid)
> - p->edid = drm_get_edid(connector, &aux_ep->aux->ddc);
> - num = drm_add_edid_modes(connector, p->edid);
> + if (!p->drm_edid)
> + p->drm_edid = drm_edid_read_ddc(connector, &aux_ep->aux->ddc);
> +
> + drm_edid_connector_update(connector, p->drm_edid);
> +
> + num = drm_edid_connector_add_modes(connector);
>
> pm_runtime_mark_last_busy(panel->dev);
> pm_runtime_put_autosuspend(panel->dev);
> @@ -351,7 +354,7 @@ static void atana33xc20_remove(struct dp_aux_ep_device *aux_ep)
> drm_panel_disable(&panel->base);
> drm_panel_unprepare(&panel->base);
>
> - kfree(panel->edid);
> + drm_edid_free(panel->drm_edid);
> }
>
> static void atana33xc20_shutdown(struct dp_aux_ep_device *aux_ep)
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 03/15] drm/panel-edp: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 03/15] drm/panel-edp: " Jani Nikula
@ 2024-04-16 17:43 ` Neil Armstrong
0 siblings, 0 replies; 27+ messages in thread
From: Neil Armstrong @ 2024-04-16 17:43 UTC (permalink / raw
To: Jani Nikula, dri-devel; +Cc: Douglas Anderson, Jessica Zhang, Sam Ravnborg
On 16/04/2024 15:22, Jani Nikula wrote:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> ---
>
> Cc: Douglas Anderson <dianders@chromium.org>
> Cc: Neil Armstrong <neil.armstrong@linaro.org>
> Cc: Jessica Zhang <quic_jesszhan@quicinc.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
> drivers/gpu/drm/panel/panel-edp.c | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
> index d29bacf25c12..ece1e3553c1f 100644
> --- a/drivers/gpu/drm/panel/panel-edp.c
> +++ b/drivers/gpu/drm/panel/panel-edp.c
> @@ -242,7 +242,7 @@ struct panel_edp {
>
> const struct edp_panel_entry *detected_panel;
>
> - struct edid *edid;
> + const struct drm_edid *drm_edid;
>
> struct drm_display_mode override_mode;
>
> @@ -617,13 +617,16 @@ static int panel_edp_get_modes(struct drm_panel *panel,
> if (p->ddc) {
> pm_runtime_get_sync(panel->dev);
>
> - if (!p->edid)
> - p->edid = drm_get_edid(connector, p->ddc);
> + if (!p->drm_edid)
> + p->drm_edid = drm_edid_read_ddc(connector, p->ddc);
> +
> + drm_edid_connector_update(connector, p->drm_edid);
> +
> /*
> * If both edid and hard-coded modes exists, skip edid modes to
> * avoid multiple preferred modes.
> */
> - if (p->edid && !has_hard_coded_modes) {
> + if (p->drm_edid && !has_hard_coded_modes) {
> if (has_override_edid_mode) {
> /*
> * override_edid_mode is specified. Use
> @@ -632,7 +635,7 @@ static int panel_edp_get_modes(struct drm_panel *panel,
> num += panel_edp_override_edid_mode(p, connector,
> p->detected_panel->override_edid_mode);
> } else {
> - num += drm_add_edid_modes(connector, p->edid);
> + num += drm_edid_connector_add_modes(connector);
> }
> }
>
> @@ -981,8 +984,8 @@ static void panel_edp_remove(struct device *dev)
> if (panel->ddc && (!panel->aux || panel->ddc != &panel->aux->ddc))
> put_device(&panel->ddc->dev);
>
> - kfree(panel->edid);
> - panel->edid = NULL;
> + drm_edid_free(panel->drm_edid);
> + panel->drm_edid = NULL;
> }
>
> static void panel_edp_shutdown(struct device *dev)
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 09/15] drm/gud: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 09/15] drm/gud: switch to struct drm_edid Jani Nikula
@ 2024-04-17 15:26 ` Noralf Trønnes
0 siblings, 0 replies; 27+ messages in thread
From: Noralf Trønnes @ 2024-04-17 15:26 UTC (permalink / raw
To: Jani Nikula, dri-devel; +Cc: noralf
On 4/16/24 15:22, Jani Nikula wrote:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> ---
>
Thanks,
Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 06/15] drm/sun4i: hdmi: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 06/15] drm/sun4i: hdmi: " Jani Nikula
@ 2024-04-18 11:51 ` Maxime Ripard
0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2024-04-18 11:51 UTC (permalink / raw
To: Jani Nikula
Cc: dri-devel, linux-arm-kernel, linux-sunxi, Chen-Yu Tsai,
Jernej Skrabec, Maxime Ripard, Samuel Holland
On Tue, 16 Apr 2024 16:22:20 +0300, Jani Nikula wrote:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
Acked-by: Maxime Ripard <mripard@kernel.org>
Thanks!
Maxime
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 07/15] drm/vc4: hdmi: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 07/15] drm/vc4: " Jani Nikula
@ 2024-04-18 11:51 ` Maxime Ripard
0 siblings, 0 replies; 27+ messages in thread
From: Maxime Ripard @ 2024-04-18 11:51 UTC (permalink / raw
To: Jani Nikula
Cc: dri-devel, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
On Tue, 16 Apr 2024 16:22:21 +0300, Jani Nikula wrote:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
Acked-by: Maxime Ripard <mripard@kernel.org>
Thanks!
Maxime
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 13/15] drm/rockchip: cdn-dp: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 13/15] drm/rockchip: cdn-dp: " Jani Nikula
@ 2024-04-19 10:58 ` Heiko Stuebner
0 siblings, 0 replies; 27+ messages in thread
From: Heiko Stuebner @ 2024-04-19 10:58 UTC (permalink / raw
To: dri-devel, Jani Nikula
Cc: Jani Nikula, Sandy Huang, Andy Yan, linux-arm-kernel,
linux-rockchip
Am Dienstag, 16. April 2024, 15:22:27 CEST schrieb Jani Nikula:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 14/15] drm/rockchip: inno_hdmi: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 14/15] drm/rockchip: inno_hdmi: " Jani Nikula
@ 2024-04-19 10:58 ` Heiko Stuebner
0 siblings, 0 replies; 27+ messages in thread
From: Heiko Stuebner @ 2024-04-19 10:58 UTC (permalink / raw
To: dri-devel, Jani Nikula
Cc: Jani Nikula, Sandy Huang, Andy Yan, linux-arm-kernel,
linux-rockchip
Am Dienstag, 16. April 2024, 15:22:28 CEST schrieb Jani Nikula:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 15/15] drm/rockchip: rk3066_hdmi: switch to struct drm_edid
2024-04-16 13:22 ` [PATCH 15/15] drm/rockchip: rk3066_hdmi: " Jani Nikula
@ 2024-04-19 10:58 ` Heiko Stuebner
0 siblings, 0 replies; 27+ messages in thread
From: Heiko Stuebner @ 2024-04-19 10:58 UTC (permalink / raw
To: dri-devel, Jani Nikula
Cc: Jani Nikula, Sandy Huang, Andy Yan, linux-arm-kernel,
linux-rockchip
Am Dienstag, 16. April 2024, 15:22:29 CEST schrieb Jani Nikula:
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 00/15] drm: struct drm_edid conversions
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
` (14 preceding siblings ...)
2024-04-16 13:22 ` [PATCH 15/15] drm/rockchip: rk3066_hdmi: " Jani Nikula
@ 2024-05-07 15:34 ` Thomas Zimmermann
2024-05-10 13:28 ` Jani Nikula
15 siblings, 1 reply; 27+ messages in thread
From: Thomas Zimmermann @ 2024-05-07 15:34 UTC (permalink / raw
To: Jani Nikula, dri-devel
Hi
Am 16.04.24 um 15:22 schrieb Jani Nikula:
> I've these laying in a branch for a while, maybe let's try to make some
> forward progress in this front.
Could you take another look at the udl patches at [1]? The second
iteration of the patches is self-contained within the driver. So the
most-controversial points should be resolved now.
Best regards
Thomas
[1] https://patchwork.freedesktop.org/series/132039/#rev2
>
> Build tested only, on x86, arm, and arm64.
>
> BR,
> Jani.
>
>
> Jani Nikula (15):
> drm/panel: simple: switch to struct drm_edid
> drm/panel-samsung-atna33xc20: switch to struct drm_edid
> drm/panel-edp: switch to struct drm_edid
> drm/bridge/analogix/anx6345: switch to struct drm_edid
> drm/bridge/analogix/anx78xx: switch to struct drm_edid
> drm/sun4i: hdmi: switch to struct drm_edid
> drm/vc4: hdmi: switch to struct drm_edid
> drm/bridge: anx7625: use struct drm_edid more
> drm/gud: switch to struct drm_edid
> drm/i2c: tda998x: switch to struct drm_edid
> drm/bochs: switch to struct drm_edid
> drm/virtio: switch to struct drm_edid
> drm/rockchip: cdn-dp: switch to struct drm_edid
> drm/rockchip: inno_hdmi: switch to struct drm_edid
> drm/rockchip: rk3066_hdmi: switch to struct drm_edid
>
> .../drm/bridge/analogix/analogix-anx6345.c | 15 +++---
> .../drm/bridge/analogix/analogix-anx78xx.c | 23 +++++-----
> drivers/gpu/drm/bridge/analogix/anx7625.c | 26 +++++++----
> drivers/gpu/drm/bridge/analogix/anx7625.h | 10 +---
> drivers/gpu/drm/gud/gud_connector.c | 12 ++---
> drivers/gpu/drm/i2c/tda998x_drv.c | 19 ++++----
> drivers/gpu/drm/panel/panel-edp.c | 17 ++++---
> .../gpu/drm/panel/panel-samsung-atna33xc20.c | 13 ++++--
> drivers/gpu/drm/panel/panel-simple.c | 15 +++---
> drivers/gpu/drm/rockchip/cdn-dp-core.c | 33 +++++++------
> drivers/gpu/drm/rockchip/cdn-dp-core.h | 2 +-
> drivers/gpu/drm/rockchip/inno_hdmi.c | 12 ++---
> drivers/gpu/drm/rockchip/rk3066_hdmi.c | 12 ++---
> drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 18 +++++---
> drivers/gpu/drm/tiny/bochs.c | 23 ++++------
> drivers/gpu/drm/vc4/vc4_hdmi.c | 46 ++++++++++---------
> drivers/gpu/drm/virtio/virtgpu_display.c | 10 ++--
> drivers/gpu/drm/virtio/virtgpu_drv.h | 2 +-
> drivers/gpu/drm/virtio/virtgpu_vq.c | 12 ++---
> 19 files changed, 167 insertions(+), 153 deletions(-)
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 00/15] drm: struct drm_edid conversions
2024-05-07 15:34 ` [PATCH 00/15] drm: struct drm_edid conversions Thomas Zimmermann
@ 2024-05-10 13:28 ` Jani Nikula
0 siblings, 0 replies; 27+ messages in thread
From: Jani Nikula @ 2024-05-10 13:28 UTC (permalink / raw
To: Thomas Zimmermann, dri-devel
On Tue, 07 May 2024, Thomas Zimmermann <tzimmermann@suse.de> wrote:
> Hi
>
> Am 16.04.24 um 15:22 schrieb Jani Nikula:
>> I've these laying in a branch for a while, maybe let's try to make some
>> forward progress in this front.
>
> Could you take another look at the udl patches at [1]? The second
> iteration of the patches is self-contained within the driver. So the
> most-controversial points should be resolved now.
Done.
I've also resent the remaining patches from this series [2]. With [1]
and [2] merged, we could remove drm_do_get_edid() interface altogether.
BR,
Jani.
[2] https://lore.kernel.org/r/cover.1715347488.git.jani.nikula@intel.com
>
> Best regards
> Thomas
>
> [1] https://patchwork.freedesktop.org/series/132039/#rev2
>
>>
>> Build tested only, on x86, arm, and arm64.
>>
>> BR,
>> Jani.
>>
>>
>> Jani Nikula (15):
>> drm/panel: simple: switch to struct drm_edid
>> drm/panel-samsung-atna33xc20: switch to struct drm_edid
>> drm/panel-edp: switch to struct drm_edid
>> drm/bridge/analogix/anx6345: switch to struct drm_edid
>> drm/bridge/analogix/anx78xx: switch to struct drm_edid
>> drm/sun4i: hdmi: switch to struct drm_edid
>> drm/vc4: hdmi: switch to struct drm_edid
>> drm/bridge: anx7625: use struct drm_edid more
>> drm/gud: switch to struct drm_edid
>> drm/i2c: tda998x: switch to struct drm_edid
>> drm/bochs: switch to struct drm_edid
>> drm/virtio: switch to struct drm_edid
>> drm/rockchip: cdn-dp: switch to struct drm_edid
>> drm/rockchip: inno_hdmi: switch to struct drm_edid
>> drm/rockchip: rk3066_hdmi: switch to struct drm_edid
>>
>> .../drm/bridge/analogix/analogix-anx6345.c | 15 +++---
>> .../drm/bridge/analogix/analogix-anx78xx.c | 23 +++++-----
>> drivers/gpu/drm/bridge/analogix/anx7625.c | 26 +++++++----
>> drivers/gpu/drm/bridge/analogix/anx7625.h | 10 +---
>> drivers/gpu/drm/gud/gud_connector.c | 12 ++---
>> drivers/gpu/drm/i2c/tda998x_drv.c | 19 ++++----
>> drivers/gpu/drm/panel/panel-edp.c | 17 ++++---
>> .../gpu/drm/panel/panel-samsung-atna33xc20.c | 13 ++++--
>> drivers/gpu/drm/panel/panel-simple.c | 15 +++---
>> drivers/gpu/drm/rockchip/cdn-dp-core.c | 33 +++++++------
>> drivers/gpu/drm/rockchip/cdn-dp-core.h | 2 +-
>> drivers/gpu/drm/rockchip/inno_hdmi.c | 12 ++---
>> drivers/gpu/drm/rockchip/rk3066_hdmi.c | 12 ++---
>> drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 18 +++++---
>> drivers/gpu/drm/tiny/bochs.c | 23 ++++------
>> drivers/gpu/drm/vc4/vc4_hdmi.c | 46 ++++++++++---------
>> drivers/gpu/drm/virtio/virtgpu_display.c | 10 ++--
>> drivers/gpu/drm/virtio/virtgpu_drv.h | 2 +-
>> drivers/gpu/drm/virtio/virtgpu_vq.c | 12 ++---
>> 19 files changed, 167 insertions(+), 153 deletions(-)
>>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2024-05-10 13:28 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-16 13:22 [PATCH 00/15] drm: struct drm_edid conversions Jani Nikula
2024-04-16 13:22 ` [PATCH 01/15] drm/panel: simple: switch to struct drm_edid Jani Nikula
2024-04-16 17:41 ` Neil Armstrong
2024-04-16 13:22 ` [PATCH 02/15] drm/panel-samsung-atna33xc20: " Jani Nikula
2024-04-16 17:41 ` Neil Armstrong
2024-04-16 13:22 ` [PATCH 03/15] drm/panel-edp: " Jani Nikula
2024-04-16 17:43 ` Neil Armstrong
2024-04-16 13:22 ` [PATCH 04/15] drm/bridge/analogix/anx6345: " Jani Nikula
2024-04-16 13:22 ` [PATCH 05/15] drm/bridge/analogix/anx78xx: " Jani Nikula
2024-04-16 13:22 ` [PATCH 06/15] drm/sun4i: hdmi: " Jani Nikula
2024-04-18 11:51 ` Maxime Ripard
2024-04-16 13:22 ` [PATCH 07/15] drm/vc4: " Jani Nikula
2024-04-18 11:51 ` Maxime Ripard
2024-04-16 13:22 ` [PATCH 08/15] drm/bridge: anx7625: use struct drm_edid more Jani Nikula
2024-04-16 13:22 ` [PATCH 09/15] drm/gud: switch to struct drm_edid Jani Nikula
2024-04-17 15:26 ` Noralf Trønnes
2024-04-16 13:22 ` [PATCH 10/15] drm/i2c: tda998x: " Jani Nikula
2024-04-16 13:22 ` [PATCH 11/15] drm/bochs: " Jani Nikula
2024-04-16 13:22 ` [PATCH 12/15] drm/virtio: " Jani Nikula
2024-04-16 13:22 ` [PATCH 13/15] drm/rockchip: cdn-dp: " Jani Nikula
2024-04-19 10:58 ` Heiko Stuebner
2024-04-16 13:22 ` [PATCH 14/15] drm/rockchip: inno_hdmi: " Jani Nikula
2024-04-19 10:58 ` Heiko Stuebner
2024-04-16 13:22 ` [PATCH 15/15] drm/rockchip: rk3066_hdmi: " Jani Nikula
2024-04-19 10:58 ` Heiko Stuebner
2024-05-07 15:34 ` [PATCH 00/15] drm: struct drm_edid conversions Thomas Zimmermann
2024-05-10 13:28 ` Jani Nikula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).