* [PATCH 10/11] drm/imx/tve: convert to struct drm_edid [not found] <cover.1715691257.git.jani.nikula@intel.com> @ 2024-05-14 12:55 ` Jani Nikula 2024-05-19 21:35 ` Dmitry Baryshkov 2024-05-14 12:55 ` [PATCH 11/11] drm/imx/ldb: " Jani Nikula 1 sibling, 1 reply; 5+ messages in thread From: Jani Nikula @ 2024-05-14 12:55 UTC (permalink / raw) To: dri-devel Cc: jani.nikula, Philipp Zabel, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, imx, linux-arm-kernel Prefer the struct drm_edid based functions for reading the EDID and updating the connector. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- Cc: Philipp Zabel <p.zabel@pengutronix.de> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Pengutronix Kernel Team <kernel@pengutronix.de> Cc: Fabio Estevam <festevam@gmail.com> Cc: imx@lists.linux.dev Cc: linux-arm-kernel@lists.infradead.org --- drivers/gpu/drm/imx/ipuv3/imx-tve.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/imx/ipuv3/imx-tve.c b/drivers/gpu/drm/imx/ipuv3/imx-tve.c index b49bddb85535..29f494bfff67 100644 --- a/drivers/gpu/drm/imx/ipuv3/imx-tve.c +++ b/drivers/gpu/drm/imx/ipuv3/imx-tve.c @@ -201,18 +201,16 @@ static int tve_setup_vga(struct imx_tve *tve) static int imx_tve_connector_get_modes(struct drm_connector *connector) { struct imx_tve *tve = con_to_tve(connector); - struct edid *edid; - int ret = 0; + const struct drm_edid *drm_edid; + int ret; if (!tve->ddc) return 0; - edid = drm_get_edid(connector, tve->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, tve->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] 5+ messages in thread
* Re: [PATCH 10/11] drm/imx/tve: convert to struct drm_edid 2024-05-14 12:55 ` [PATCH 10/11] drm/imx/tve: convert to struct drm_edid Jani Nikula @ 2024-05-19 21:35 ` Dmitry Baryshkov 2024-05-20 13:06 ` Jani Nikula 0 siblings, 1 reply; 5+ messages in thread From: Dmitry Baryshkov @ 2024-05-19 21:35 UTC (permalink / raw) To: Jani Nikula Cc: dri-devel, Philipp Zabel, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, imx, linux-arm-kernel On Tue, May 14, 2024 at 03:55:16PM +0300, Jani Nikula wrote: > Prefer the struct drm_edid based functions for reading the EDID and > updating the connector. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > --- > > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: Sascha Hauer <s.hauer@pengutronix.de> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de> > Cc: Fabio Estevam <festevam@gmail.com> > Cc: imx@lists.linux.dev > Cc: linux-arm-kernel@lists.infradead.org > --- > drivers/gpu/drm/imx/ipuv3/imx-tve.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/imx/ipuv3/imx-tve.c b/drivers/gpu/drm/imx/ipuv3/imx-tve.c > index b49bddb85535..29f494bfff67 100644 > --- a/drivers/gpu/drm/imx/ipuv3/imx-tve.c > +++ b/drivers/gpu/drm/imx/ipuv3/imx-tve.c > @@ -201,18 +201,16 @@ static int tve_setup_vga(struct imx_tve *tve) > static int imx_tve_connector_get_modes(struct drm_connector *connector) > { > struct imx_tve *tve = con_to_tve(connector); > - struct edid *edid; > - int ret = 0; > + const struct drm_edid *drm_edid; > + int ret; > > if (!tve->ddc) > return 0; > > - edid = drm_get_edid(connector, tve->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, tve->ddc); > + drm_edid_connector_update(connector, drm_edid); > + ret = drm_edid_connector_add_modes(connector); > + drm_edid_free(drm_edid); Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Nit: if you change two last lines, you can drop ret= assignment and use return drm_edid_connector_add_modes(connector). Maybe we shoud add cocci rule for such cases. > > return ret; > } > -- > 2.39.2 > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 10/11] drm/imx/tve: convert to struct drm_edid 2024-05-19 21:35 ` Dmitry Baryshkov @ 2024-05-20 13:06 ` Jani Nikula 0 siblings, 0 replies; 5+ messages in thread From: Jani Nikula @ 2024-05-20 13:06 UTC (permalink / raw) To: Dmitry Baryshkov Cc: dri-devel, Philipp Zabel, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, imx, linux-arm-kernel On Mon, 20 May 2024, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote: > On Tue, May 14, 2024 at 03:55:16PM +0300, Jani Nikula wrote: >> Prefer the struct drm_edid based functions for reading the EDID and >> updating the connector. >> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> >> >> --- >> >> Cc: Philipp Zabel <p.zabel@pengutronix.de> >> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >> Cc: Maxime Ripard <mripard@kernel.org> >> Cc: Thomas Zimmermann <tzimmermann@suse.de> >> Cc: Shawn Guo <shawnguo@kernel.org> >> Cc: Sascha Hauer <s.hauer@pengutronix.de> >> Cc: Pengutronix Kernel Team <kernel@pengutronix.de> >> Cc: Fabio Estevam <festevam@gmail.com> >> Cc: imx@lists.linux.dev >> Cc: linux-arm-kernel@lists.infradead.org >> --- >> drivers/gpu/drm/imx/ipuv3/imx-tve.c | 14 ++++++-------- >> 1 file changed, 6 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/gpu/drm/imx/ipuv3/imx-tve.c b/drivers/gpu/drm/imx/ipuv3/imx-tve.c >> index b49bddb85535..29f494bfff67 100644 >> --- a/drivers/gpu/drm/imx/ipuv3/imx-tve.c >> +++ b/drivers/gpu/drm/imx/ipuv3/imx-tve.c >> @@ -201,18 +201,16 @@ static int tve_setup_vga(struct imx_tve *tve) >> static int imx_tve_connector_get_modes(struct drm_connector *connector) >> { >> struct imx_tve *tve = con_to_tve(connector); >> - struct edid *edid; >> - int ret = 0; >> + const struct drm_edid *drm_edid; >> + int ret; >> >> if (!tve->ddc) >> return 0; >> >> - edid = drm_get_edid(connector, tve->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, tve->ddc); >> + drm_edid_connector_update(connector, drm_edid); >> + ret = drm_edid_connector_add_modes(connector); >> + drm_edid_free(drm_edid); > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > Nit: if you change two last lines, you can drop ret= assignment and use > return drm_edid_connector_add_modes(connector). > > Maybe we shoud add cocci rule for such cases. I think there was a cocci rule like that, but a lot of people (including yours truly) preferred to keep the assignment, and the patches ended up in bikeshedding, so the cocci was removed. My argument is that it's not uncommon to keep adding and removing stuff while the code evolves, and having to change the return statement is boring and makes the diff harder to follow. It's a bit like that extra comma at the end of initialization lists or enumeration definitions. Others think the code should reflect current state and not prepare for scenarios that might never arrive. Both are correct, so it's perfect for never ending bikeshedding. ;) BR, Jani. > >> >> return ret; >> } >> -- >> 2.39.2 >> -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 11/11] drm/imx/ldb: convert to struct drm_edid [not found] <cover.1715691257.git.jani.nikula@intel.com> 2024-05-14 12:55 ` [PATCH 10/11] drm/imx/tve: convert to struct drm_edid Jani Nikula @ 2024-05-14 12:55 ` Jani Nikula 2024-05-19 21:39 ` Dmitry Baryshkov 1 sibling, 1 reply; 5+ messages in thread From: Jani Nikula @ 2024-05-14 12:55 UTC (permalink / raw) To: dri-devel Cc: jani.nikula, Philipp Zabel, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, imx, linux-arm-kernel Prefer the struct drm_edid based functions for reading the EDID and updating the connector. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- Cc: Philipp Zabel <p.zabel@pengutronix.de> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Pengutronix Kernel Team <kernel@pengutronix.de> Cc: Fabio Estevam <festevam@gmail.com> Cc: imx@lists.linux.dev Cc: linux-arm-kernel@lists.infradead.org --- drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c index 71d70194fcbd..793dfb1a3ed0 100644 --- a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c +++ b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c @@ -72,7 +72,7 @@ struct imx_ldb_channel { struct device_node *child; struct i2c_adapter *ddc; int chno; - void *edid; + const struct drm_edid *drm_edid; struct drm_display_mode mode; int mode_valid; u32 bus_format; @@ -142,15 +142,15 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector) if (num_modes > 0) return num_modes; - if (!imx_ldb_ch->edid && imx_ldb_ch->ddc) - imx_ldb_ch->edid = drm_get_edid(connector, imx_ldb_ch->ddc); - - if (imx_ldb_ch->edid) { - drm_connector_update_edid_property(connector, - imx_ldb_ch->edid); - num_modes = drm_add_edid_modes(connector, imx_ldb_ch->edid); + if (!imx_ldb_ch->drm_edid && imx_ldb_ch->ddc) { + imx_ldb_ch->drm_edid = drm_edid_read_ddc(connector, + imx_ldb_ch->ddc); + drm_edid_connector_update(connector, imx_ldb_ch->drm_edid); } + if (imx_ldb_ch->drm_edid) + num_modes = drm_edid_connector_add_modes(connector); + if (imx_ldb_ch->mode_valid) { struct drm_display_mode *mode; @@ -553,7 +553,6 @@ static int imx_ldb_panel_ddc(struct device *dev, struct imx_ldb_channel *channel, struct device_node *child) { struct device_node *ddc_node; - const u8 *edidp; int ret; ddc_node = of_parse_phandle(child, "ddc-i2c-bus", 0); @@ -567,6 +566,7 @@ static int imx_ldb_panel_ddc(struct device *dev, } if (!channel->ddc) { + const void *edidp; int edid_len; /* if no DDC available, fallback to hardcoded EDID */ @@ -574,8 +574,8 @@ static int imx_ldb_panel_ddc(struct device *dev, edidp = of_get_property(child, "edid", &edid_len); if (edidp) { - channel->edid = kmemdup(edidp, edid_len, GFP_KERNEL); - if (!channel->edid) + channel->drm_edid = drm_edid_alloc(edidp, edid_len); + if (!channel->drm_edid) return -ENOMEM; } else if (!channel->panel) { /* fallback to display-timings node */ @@ -744,7 +744,7 @@ static void imx_ldb_remove(struct platform_device *pdev) for (i = 0; i < 2; i++) { struct imx_ldb_channel *channel = &imx_ldb->channel[i]; - kfree(channel->edid); + drm_edid_free(channel->drm_edid); i2c_put_adapter(channel->ddc); } -- 2.39.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 11/11] drm/imx/ldb: convert to struct drm_edid 2024-05-14 12:55 ` [PATCH 11/11] drm/imx/ldb: " Jani Nikula @ 2024-05-19 21:39 ` Dmitry Baryshkov 0 siblings, 0 replies; 5+ messages in thread From: Dmitry Baryshkov @ 2024-05-19 21:39 UTC (permalink / raw) To: Jani Nikula Cc: dri-devel, Philipp Zabel, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, imx, linux-arm-kernel On Tue, May 14, 2024 at 03:55:17PM +0300, Jani Nikula wrote: > Prefer the struct drm_edid based functions for reading the EDID and > updating the connector. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > --- > > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: Sascha Hauer <s.hauer@pengutronix.de> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de> > Cc: Fabio Estevam <festevam@gmail.com> > Cc: imx@lists.linux.dev > Cc: linux-arm-kernel@lists.infradead.org > --- > drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) Note: https://lore.kernel.org/dri-devel/20240331-drm-imx-cleanup-v2-5-d81c1d1c1026@linaro.org/ Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > diff --git a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c > index 71d70194fcbd..793dfb1a3ed0 100644 > --- a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c > +++ b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c > @@ -72,7 +72,7 @@ struct imx_ldb_channel { > struct device_node *child; > struct i2c_adapter *ddc; > int chno; > - void *edid; > + const struct drm_edid *drm_edid; > struct drm_display_mode mode; > int mode_valid; > u32 bus_format; > @@ -142,15 +142,15 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector) > if (num_modes > 0) > return num_modes; > > - if (!imx_ldb_ch->edid && imx_ldb_ch->ddc) > - imx_ldb_ch->edid = drm_get_edid(connector, imx_ldb_ch->ddc); > - > - if (imx_ldb_ch->edid) { > - drm_connector_update_edid_property(connector, > - imx_ldb_ch->edid); > - num_modes = drm_add_edid_modes(connector, imx_ldb_ch->edid); > + if (!imx_ldb_ch->drm_edid && imx_ldb_ch->ddc) { > + imx_ldb_ch->drm_edid = drm_edid_read_ddc(connector, > + imx_ldb_ch->ddc); > + drm_edid_connector_update(connector, imx_ldb_ch->drm_edid); > } > > + if (imx_ldb_ch->drm_edid) > + num_modes = drm_edid_connector_add_modes(connector); > + > if (imx_ldb_ch->mode_valid) { > struct drm_display_mode *mode; > > @@ -553,7 +553,6 @@ static int imx_ldb_panel_ddc(struct device *dev, > struct imx_ldb_channel *channel, struct device_node *child) > { > struct device_node *ddc_node; > - const u8 *edidp; > int ret; > > ddc_node = of_parse_phandle(child, "ddc-i2c-bus", 0); > @@ -567,6 +566,7 @@ static int imx_ldb_panel_ddc(struct device *dev, > } > > if (!channel->ddc) { > + const void *edidp; > int edid_len; > > /* if no DDC available, fallback to hardcoded EDID */ > @@ -574,8 +574,8 @@ static int imx_ldb_panel_ddc(struct device *dev, > > edidp = of_get_property(child, "edid", &edid_len); > if (edidp) { > - channel->edid = kmemdup(edidp, edid_len, GFP_KERNEL); > - if (!channel->edid) > + channel->drm_edid = drm_edid_alloc(edidp, edid_len); > + if (!channel->drm_edid) > return -ENOMEM; > } else if (!channel->panel) { > /* fallback to display-timings node */ > @@ -744,7 +744,7 @@ static void imx_ldb_remove(struct platform_device *pdev) > for (i = 0; i < 2; i++) { > struct imx_ldb_channel *channel = &imx_ldb->channel[i]; > > - kfree(channel->edid); > + drm_edid_free(channel->drm_edid); > i2c_put_adapter(channel->ddc); > } > > -- > 2.39.2 > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-05-20 13:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1715691257.git.jani.nikula@intel.com>
2024-05-14 12:55 ` [PATCH 10/11] drm/imx/tve: convert to struct drm_edid Jani Nikula
2024-05-19 21:35 ` Dmitry Baryshkov
2024-05-20 13:06 ` Jani Nikula
2024-05-14 12:55 ` [PATCH 11/11] drm/imx/ldb: " Jani Nikula
2024-05-19 21:39 ` Dmitry Baryshkov
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 NNTP newsgroup(s).