[PATCH 05/15] drm/edid: abstract debugfs override EDID show better
Ville Syrjälä
ville.syrjala at linux.intel.com
Wed Oct 19 19:37:59 UTC 2022
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 at intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> 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
More information about the dri-devel
mailing list