Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751936AbdLBNrI (ORCPT ); Sat, 2 Dec 2017 08:47:08 -0500 Received: from forward103j.mail.yandex.net ([5.45.198.246]:55123 "EHLO forward103j.mail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751791AbdLBNrF (ORCPT ); Sat, 2 Dec 2017 08:47:05 -0500 Authentication-Results: smtp3o.mail.yandex.net; dkim=pass header.i=@flygoat.com From: Jiaxun Yang To: Ike Panhc Cc: Darren Hart , Andy Shevchenko , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Roger Jargoyhen , Jiaxun Yang Subject: [PATCH 3/4] platform/x86: ideapad-laptop: use kstrto instead of sscanf and do clean up Date: Sat, 2 Dec 2017 21:45:33 +0800 Message-Id: <20171202134534.3252-3-jiaxun.yang@flygoat.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171202134534.3252-1-jiaxun.yang@flygoat.com> References: <20171202134534.3252-1-jiaxun.yang@flygoat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2628 Lines: 77 To deal with checkpatch warnings: WARNING: Prefer kstrto 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 --- 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