To deal with checkpatch warnings: WARNING: Prefer kstrto<type> to single variable sscanf WARNING: Missing a blank line after declarations WARNING: Block comments use a trailing */ on a separate line Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> --- drivers/platform/x86/ideapad-laptop.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c index 1072b24370ac..924b07f7db06 100644 --- a/drivers/platform/x86/ideapad-laptop.c +++ b/drivers/platform/x86/ideapad-laptop.c @@ -406,12 +406,14 @@ static ssize_t store_ideapad_cam(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - int ret, state; + int ret, state, rc; struct ideapad_private *priv = dev_get_drvdata(dev); + rc = kstrtoint(buf, 0, &state); + if (!count) return 0; - if (sscanf(buf, "%i", &state) != 1) + if (rc != 0) return -EINVAL; ret = write_ec_cmd(priv->adev->handle, VPCCMD_W_CAMERA, state); if (ret < 0) @@ -437,12 +439,14 @@ static ssize_t store_ideapad_fan(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - int ret, state; + int ret, state, rc; struct ideapad_private *priv = dev_get_drvdata(dev); + rc = kstrtoint(buf, 0, &state); + if (!count) return 0; - if (sscanf(buf, "%i", &state) != 1) + if (rc != 0) return -EINVAL; if (state < 0 || state > 4 || state == 3) return -EINVAL; @@ -541,6 +545,7 @@ static umode_t ideapad_is_visible(struct kobject *kobj, supported = test_bit(CFG_CAMERA_BIT, &(priv->cfg)); else if (attr == &dev_attr_fan_mode.attr) { unsigned long value; + supported = !read_ec_data(priv->adev->handle, VPCCMD_R_FAN, &value); } else if (attr == &dev_attr_conservation_mode.attr) { @@ -880,11 +885,14 @@ static void ideapad_sync_touchpad_state(struct ideapad_private *priv) /* Without reading from EC touchpad LED doesn't switch state */ if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) { - /* Some IdeaPads don't really turn off touchpad - they only + /* + * Some IdeaPads don't really turn off touchpad - they only * switch the LED state. We (de)activate KBC AUX port to turn * touchpad off and on. We send KEY_TOUCHPAD_OFF and - * KEY_TOUCHPAD_ON to not to get out of sync with LED */ + * KEY_TOUCHPAD_ON to not to get out of sync with LED + */ unsigned char param; + i8042_command(¶m, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE); ideapad_input_report(priv, value ? 67 : 66); -- 2.14.1