mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
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: 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
This commit is contained in:
@@ -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 kref;
|
|
||||||
struct work_struct;
|
|
||||||
struct fwnode_handle;
|
struct fwnode_handle;
|
||||||
|
struct kref;
|
||||||
|
struct seq_file;
|
||||||
|
struct work_struct;
|
||||||
|
|
||||||
/* 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,
|
|||||||
|
|
||||||
/* 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,
|
|||||||
|
|
||||||
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,
|
|||||||
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user