drm/edid: abstract debugfs override EDID show better
authorJani Nikula <jani.nikula@intel.com>
Mon, 24 Oct 2022 12:33:33 +0000 (15:33 +0300)
committerJani Nikula <jani.nikula@intel.com>
Wed, 26 Oct 2022 06:53:08 +0000 (09:53 +0300)
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@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/74defa7b595f51e6c1f2eacd9c799d567d29f053.1666614699.git.jani.nikula@intel.com
drivers/gpu/drm/drm_crtc_internal.h
drivers/gpu/drm/drm_debugfs.c
drivers/gpu/drm/drm_edid.c

index 56041b6..fb8a68d 100644 (file)
@@ -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);
index 01ee3fe..ee445f4 100644 (file)
@@ -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)
index a863cff..1ada36e 100644 (file)
@@ -2184,6 +2184,17 @@ static struct edid *drm_get_override_edid(struct drm_connector *connector,
 }
 
 /* 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)
 {