Commit 91ec9ab4 authored by Jani Nikula's avatar Jani Nikula

drm/edid: abstract debugfs override EDID show better

Add a function to dump the override EDID in debugfs. This hides the
override EDID management better in drm_edid.c.
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/74defa7b595f51e6c1f2eacd9c799d567d29f053.1666614699.git.jani.nikula@intel.com
parent 2c9332de
...@@ -56,9 +56,10 @@ struct drm_plane; ...@@ -56,9 +56,10 @@ struct drm_plane;
struct drm_plane_state; struct drm_plane_state;
struct drm_property; struct drm_property;
struct edid; struct edid;
struct fwnode_handle;
struct kref; struct kref;
struct seq_file;
struct work_struct; struct work_struct;
struct fwnode_handle;
/* drm_crtc.c */ /* drm_crtc.c */
int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj, 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, ...@@ -286,5 +287,6 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
/* drm_edid.c */ /* drm_edid.c */
void drm_mode_fixup_1366x768(struct drm_display_mode *mode); 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_set(struct drm_connector *connector, const void *edid, size_t size);
int drm_edid_override_reset(struct drm_connector *connector); int drm_edid_override_reset(struct drm_connector *connector);
...@@ -328,13 +328,7 @@ static ssize_t connector_write(struct file *file, const char __user *ubuf, ...@@ -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) static int edid_show(struct seq_file *m, void *data)
{ {
struct drm_connector *connector = m->private; return drm_edid_override_show(m->private, m);
struct drm_property_blob *edid = connector->edid_blob_ptr;
if (connector->override_edid && edid)
seq_write(m, edid->data, edid->length);
return 0;
} }
static int edid_open(struct inode *inode, struct file *file) static int edid_open(struct inode *inode, struct file *file)
......
...@@ -2183,6 +2183,17 @@ static struct edid *drm_get_override_edid(struct drm_connector *connector, ...@@ -2183,6 +2183,17 @@ static struct edid *drm_get_override_edid(struct drm_connector *connector,
return IS_ERR(override) ? NULL : override; 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 */ /* For debugfs edid_override implementation */
int drm_edid_override_set(struct drm_connector *connector, const void *edid, int drm_edid_override_set(struct drm_connector *connector, const void *edid,
size_t size) size_t size)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment