Message ID | 20200409004610.12346-2-laurent.pinchart+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Kieran Bingham |
Headers | show |
Series | drm: bridge: adv7511: Enable usage with DRM bridge connector helper | expand |
Hi Laurent. On Thu, Apr 09, 2020 at 03:46:07AM +0300, Laurent Pinchart wrote: > To prepare for the implementation of the DRM bridge connector > operations, move EDID read out of adv7511_get_modes() to a separate > function. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> The code do not check if drm_do_get_edid() return NULL. But all functions called with the edid seems to handle a NULL edid well. So thats OK. Acked-by: Sam Ravnborg <sam@ravnborg.org> > --- > drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 23 ++++++++++++++------ > 1 file changed, 16 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > index 87b58c1acff4..58d02e92b6b9 100644 > --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > @@ -589,11 +589,10 @@ static int adv7511_get_edid_block(void *data, u8 *buf, unsigned int block, > * ADV75xx helpers > */ > > -static int adv7511_get_modes(struct adv7511 *adv7511, > - struct drm_connector *connector) > +static struct edid *adv7511_get_edid(struct adv7511 *adv7511, > + struct drm_connector *connector) > { > struct edid *edid; > - unsigned int count; > > /* Reading the EDID only works if the device is powered */ > if (!adv7511->powered) { > @@ -612,15 +611,25 @@ static int adv7511_get_modes(struct adv7511 *adv7511, > if (!adv7511->powered) > __adv7511_power_off(adv7511); > > - > - drm_connector_update_edid_property(connector, edid); > - count = drm_add_edid_modes(connector, edid); > - > adv7511_set_config_csc(adv7511, connector, adv7511->rgb, > drm_detect_hdmi_monitor(edid)); > > cec_s_phys_addr_from_edid(adv7511->cec_adap, edid); > > + return edid; > +} > + > +static int adv7511_get_modes(struct adv7511 *adv7511, > + struct drm_connector *connector) > +{ > + struct edid *edid; > + unsigned int count; > + > + edid = adv7511_get_edid(adv7511, connector); > + > + drm_connector_update_edid_property(connector, edid); > + count = drm_add_edid_modes(connector, edid); > + > kfree(edid); > > return count; > -- > Regards, > > Laurent Pinchart > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index 87b58c1acff4..58d02e92b6b9 100644 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -589,11 +589,10 @@ static int adv7511_get_edid_block(void *data, u8 *buf, unsigned int block, * ADV75xx helpers */ -static int adv7511_get_modes(struct adv7511 *adv7511, - struct drm_connector *connector) +static struct edid *adv7511_get_edid(struct adv7511 *adv7511, + struct drm_connector *connector) { struct edid *edid; - unsigned int count; /* Reading the EDID only works if the device is powered */ if (!adv7511->powered) { @@ -612,15 +611,25 @@ static int adv7511_get_modes(struct adv7511 *adv7511, if (!adv7511->powered) __adv7511_power_off(adv7511); - - drm_connector_update_edid_property(connector, edid); - count = drm_add_edid_modes(connector, edid); - adv7511_set_config_csc(adv7511, connector, adv7511->rgb, drm_detect_hdmi_monitor(edid)); cec_s_phys_addr_from_edid(adv7511->cec_adap, edid); + return edid; +} + +static int adv7511_get_modes(struct adv7511 *adv7511, + struct drm_connector *connector) +{ + struct edid *edid; + unsigned int count; + + edid = adv7511_get_edid(adv7511, connector); + + drm_connector_update_edid_property(connector, edid); + count = drm_add_edid_modes(connector, edid); + kfree(edid); return count;
To prepare for the implementation of the DRM bridge connector operations, move EDID read out of adv7511_get_modes() to a separate function. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> --- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 23 ++++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-)