On Tue, Oct 11, 2022 at 04:49:39PM +0300, Jani Nikula wrote: > Add a function to dump the override EDID in debugfs. This hides the > override EDID management better in drm_edid.c. > > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_crtc_internal.h | 4 +++- > drivers/gpu/drm/drm_debugfs.c | 8 +------- > drivers/gpu/drm/drm_edid.c | 11 +++++++++++ > 3 files changed, 15 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h > index 56041b604881..fb8a68d90940 100644 > --- a/drivers/gpu/drm/drm_crtc_internal.h > +++ b/drivers/gpu/drm/drm_crtc_internal.h > @@ -56,9 +56,10 @@ struct drm_plane; > struct drm_plane_state; > struct drm_property; > struct edid; > +struct fwnode_handle; > struct kref; > +struct seq_file; > struct work_struct; > -struct fwnode_handle; > > /* drm_crtc.c */ > int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj, > @@ -286,5 +287,6 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev, > > /* drm_edid.c */ > void drm_mode_fixup_1366x768(struct drm_display_mode *mode); > +int drm_edid_override_show(struct drm_connector *connector, struct seq_file *m); > int drm_edid_override_set(struct drm_connector *connector, const void *edid, size_t size); > int drm_edid_override_reset(struct drm_connector *connector); > diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c > index 01ee3febb813..ee445f4605ba 100644 > --- a/drivers/gpu/drm/drm_debugfs.c > +++ b/drivers/gpu/drm/drm_debugfs.c > @@ -328,13 +328,7 @@ static ssize_t connector_write(struct file *file, const char __user *ubuf, > > static int edid_show(struct seq_file *m, void *data) > { > - struct drm_connector *connector = m->private; > - struct drm_property_blob *edid = connector->edid_blob_ptr; > - > - if (connector->override_edid && edid) > - seq_write(m, edid->data, edid->length); > - > - return 0; > + return drm_edid_override_show(m->private, m); > } > > static int edid_open(struct inode *inode, struct file *file) > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index a863cffa2dc5..1ada36e0d826 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -2183,6 +2183,17 @@ static struct edid *drm_get_override_edid(struct drm_connector *connector, > return IS_ERR(override) ? NULL : override; > } > > +/* For debugfs edid_override implementation */ > +int drm_edid_override_show(struct drm_connector *connector, struct seq_file *m) > +{ > + struct drm_property_blob *edid = connector->edid_blob_ptr; > + > + if (connector->override_edid && edid) > + seq_write(m, edid->data, edid->length); > + > + return 0; > +} > + > /* For debugfs edid_override implementation */ > int drm_edid_override_set(struct drm_connector *connector, const void *edid, > size_t size) > -- > 2.34.1 -- Ville Syrjälä Intel