pwm: Allow store 64-bit duty cycle from sysfs interface
authorJarkko Nikula <jarkko.nikula@linux.intel.com>
Mon, 24 Aug 2020 14:55:39 +0000 (17:55 +0300)
committerThierry Reding <thierry.reding@gmail.com>
Thu, 24 Sep 2020 07:18:14 +0000 (09:18 +0200)
PWM core was converted to u64 by the commit a9d887dc1c60 ("pwm: Convert
period and duty cycle to u64") but did not change the duty_cycle_store()
so it will error out if trying to pass a numeric string bigger than
2^32-1.

Fix this by using u64 and kstrtou64() in duty_cycle_store().

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Acked-by: Guru Das Srinagesh <gurus@codeaurora.org>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/sysfs.c

index 449dbc0..9903c3a 100644 (file)
@@ -87,10 +87,10 @@ static ssize_t duty_cycle_store(struct device *child,
        struct pwm_export *export = child_to_pwm_export(child);
        struct pwm_device *pwm = export->pwm;
        struct pwm_state state;
-       unsigned int val;
+       u64 val;
        int ret;
 
-       ret = kstrtouint(buf, 0, &val);
+       ret = kstrtou64(buf, 0, &val);
        if (ret)
                return ret;