From: Jani Nikula Date: Thu, 5 Dec 2019 15:43:41 +0000 (+0200) Subject: drm/i915/params: support bool values for int and uint params X-Git-Tag: v5.7-rc1~136^2~18^2~404 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a267ab8dec061c5a379a75a4c4f8206c63d87db9;p=users%2Fjedix%2Flinux-maple.git drm/i915/params: support bool values for int and uint params It's not uncommon for us to switch param types between bools and ints, often having otherwise bool semantics but -1 value for platform default. Allow bool values (such as YyNn) for ints. Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/c945ac7b08e0eb0827cf647609885f4abdb84f1d.1575560168.git.jani.nikula@intel.com --- diff --git a/drivers/gpu/drm/i915/i915_debugfs_params.c b/drivers/gpu/drm/i915/i915_debugfs_params.c index 7f1af5a35ca1..12cbdbdf4d80 100644 --- a/drivers/gpu/drm/i915/i915_debugfs_params.c +++ b/drivers/gpu/drm/i915/i915_debugfs_params.c @@ -32,6 +32,14 @@ static ssize_t i915_param_int_write(struct file *file, int ret; ret = kstrtoint_from_user(ubuf, len, 0, value); + if (ret) { + /* support boolean values too */ + bool b; + + ret = kstrtobool_from_user(ubuf, len, &b); + if (!ret) + *value = b; + } return ret ?: len; } @@ -77,6 +85,14 @@ static ssize_t i915_param_uint_write(struct file *file, int ret; ret = kstrtouint_from_user(ubuf, len, 0, value); + if (ret) { + /* support boolean values too */ + bool b; + + ret = kstrtobool_from_user(ubuf, len, &b); + if (!ret) + *value = b; + } return ret ?: len; }