Using plain echo to set the "force" connector attribute fails with -EINVAL, because echo appends a newline to the output.
Strip trailing whitespace in the input before checking the value to accept "off\n" or "off ".
Signed-off-by: Michael Tretter m.tretter@pengutronix.de --- drivers/gpu/drm/drm_debugfs.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c index c1807d5754b2..10dd89d3f28e 100644 --- a/drivers/gpu/drm/drm_debugfs.c +++ b/drivers/gpu/drm/drm_debugfs.c @@ -241,6 +241,7 @@ static ssize_t connector_write(struct file *file, const char __user *ubuf, struct seq_file *m = file->private_data; struct drm_connector *connector = m->private; char buf[12]; + int i;
if (len > sizeof(buf) - 1) return -EINVAL; @@ -250,6 +251,10 @@ static ssize_t connector_write(struct file *file, const char __user *ubuf,
buf[len] = '\0';
+ /* strip trailing whitespace */ + for (i = len - 1; i > 0 && isspace(buf[i]); i--) + buf[i] = '\0'; + if (!strcmp(buf, "on")) connector->force = DRM_FORCE_ON; else if (!strcmp(buf, "digital"))