switch: make LED port_mask file write handler use kstrtoul() function
This patch changes swconfig_trig_port_mask_store() handler to utilize kstrtoul() function instead of call to obsolete simple_strtoul(). Thanks to this change, new handler takes less memory and makes port_mask special file accept not only hexadecimal, but also decimal and octal numbers. Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl> SVN-Revision: 48774
This commit is contained in:
parent
3f76eeaadc
commit
f61a80444c
1 changed files with 17 additions and 26 deletions
|
@ -94,37 +94,28 @@ swconfig_trig_port_mask_store(struct device *dev, struct device_attribute *attr,
|
|||
struct led_classdev *led_cdev = dev_get_drvdata(dev);
|
||||
struct swconfig_trig_data *trig_data = led_cdev->trigger_data;
|
||||
unsigned long port_mask;
|
||||
ssize_t ret = -EINVAL;
|
||||
char *after;
|
||||
size_t count;
|
||||
int ret;
|
||||
bool changed;
|
||||
|
||||
port_mask = simple_strtoul(buf, &after, 16);
|
||||
count = after - buf;
|
||||
ret = kstrtoul(buf, 0, &port_mask);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (*after && isspace(*after))
|
||||
count++;
|
||||
write_lock(&trig_data->lock);
|
||||
|
||||
if (count == size) {
|
||||
bool changed;
|
||||
|
||||
write_lock(&trig_data->lock);
|
||||
|
||||
changed = (trig_data->port_mask != port_mask);
|
||||
if (changed) {
|
||||
trig_data->port_mask = port_mask;
|
||||
if (port_mask == 0)
|
||||
swconfig_trig_set_brightness(trig_data, LED_OFF);
|
||||
}
|
||||
|
||||
write_unlock(&trig_data->lock);
|
||||
|
||||
if (changed)
|
||||
swconfig_trig_update_port_mask(led_cdev->trigger);
|
||||
|
||||
ret = count;
|
||||
changed = (trig_data->port_mask != port_mask);
|
||||
if (changed) {
|
||||
trig_data->port_mask = port_mask;
|
||||
if (port_mask == 0)
|
||||
swconfig_trig_set_brightness(trig_data, LED_OFF);
|
||||
}
|
||||
|
||||
return ret;
|
||||
write_unlock(&trig_data->lock);
|
||||
|
||||
if (changed)
|
||||
swconfig_trig_update_port_mask(led_cdev->trigger);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
|
|
Loading…
Reference in a new issue