From patchwork Tue Aug 7 15:19:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: IKEGAMI Tokunori X-Patchwork-Id: 10558783 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7750F96FA for ; Tue, 7 Aug 2018 15:19:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 659102A335 for ; Tue, 7 Aug 2018 15:19:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 59AB92A337; Tue, 7 Aug 2018 15:19:49 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI,URIBL_SBL autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B7A8E2A338 for ; Tue, 7 Aug 2018 15:19:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727429AbeHGRee (ORCPT ); Tue, 7 Aug 2018 13:34:34 -0400 Received: from mail1.bemta23.messagelabs.com ([67.219.246.211]:44649 "EHLO mail1.bemta23.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389891AbeHGRed (ORCPT ); Tue, 7 Aug 2018 13:34:33 -0400 Received: from [67.219.247.52] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-4.bemta.az-d.us-east-1.aws.symcld.net id 6D/59-01620-098B96B5; Tue, 07 Aug 2018 15:19:44 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeJIrShJLcpLzFFi42KZFv5DRHfCjsx ogxe/2S3aX29ldGD0+LxJLoAxijUzLym/IoE1Y+6WlIJGlYoPE44wNzAekuti5OIQEpjDKHH6 +lYWCOcno8Suc+1sXYycHGwCphLTXy1kBLFFBFQktqxbwwxSxCywilHi+7IDTCAJYYFYiZ5HG 1m7GDk4WARUJd7fEgQxeQUcJRa89wapkBCQlzj8pokVxOYUcJJ4ueow2EghoJJF/yYyQdiaEs 97vjNC1AdL3L7VzziBkXcBI8MqRrOkosz0jJLcxMwcXUMDA11DQyMgrWtiqpdYpZuiV1qsm5p YXKJrqJdYXqxXXJmbnJOil5dasokRGCYMQLCDce2PlEOMkhxMSqK85zZmRgvxJeWnVGYkFmfE F5XmpBYfYpTh4FCS4J20HSgnWJSanlqRlpkDDFiYtAQHj5IIrzFImre4IDG3ODMdInWK0ZjjV HPPJGaOP++nTmIWYsnLz0uVEuetBSkVACnNKM2DGwSLpEuMslLCvIxApwnxFKQW5WaWoMq/Yh TnYFQS5p0AMoUnM68Ebt8roFOYgE55ow12SkkiQkqqgbE7Ycnt4NQdxsuYfP+UWRk829gpxDM tc+l375kq25jZ2tcoLU9Wc9Dd/tlU6+6GSIb3ASKT11m8cDT/KuB8282F811CuO5Kh7DXq1+c Nq9a7RK35Zizybq1hkkOnI4G4pqfGMXL/wokbcl4KNR3s0tB9tDK2FM7Vs93K1l9XViO7cINK XtrYyWW4oxEQy3mouJEAFdPzIOfAgAA X-Env-Sender: ikegami@allied-telesis.co.jp X-Msg-Ref: server-6.tower-424.messagelabs.com!1533655183!1634922!1 X-Originating-IP: [150.87.248.20] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.9.15; banners=-,-,- X-VirusChecked: Checked Received: (qmail 12192 invoked from network); 7 Aug 2018 15:19:43 -0000 Received: from abricot-inet.allied-telesis.co.jp (HELO TKY-DS01.at.lc) (150.87.248.20) by server-6.tower-424.messagelabs.com with SMTP; 7 Aug 2018 15:19:43 -0000 Received: from swim-manx.rd.allied-telesis.co.jp ([150.87.21.50]) by TKY-DS01.at.lc with Microsoft SMTPSVC(8.0.9200.16384); Wed, 8 Aug 2018 00:19:42 +0900 Received: from ikegami-pc.rd.allied-telesis.co.jp by swim-manx.rd.allied-telesis.co.jp (AlliedTelesis SMTPRS 1.3 pl 1 ++E6B86F8C687C6288D9B5559052954DC9) with ESMTP id ; Wed, 8 Aug 2018 00:19:41 +0900 From: Tokunori Ikegami To: Jean Delvare Cc: Tokunori Ikegami , Guenter Roeck , Chris Packham , linux-hwmon@vger.kernel.org Subject: [PATCH v2 4/4] hwmon: (adt7475) Change show functions to return error data correctly Date: Wed, 8 Aug 2018 00:19:09 +0900 Message-Id: <20180807151909.24433-5-ikegami@allied-telesis.co.jp> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180807151909.24433-1-ikegami@allied-telesis.co.jp> References: <20180807151909.24433-1-ikegami@allied-telesis.co.jp> X-OriginalArrivalTime: 07 Aug 2018 15:19:42.0676 (UTC) FILETIME=[10F52140:01D42E62] Sender: linux-hwmon-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-hwmon@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The update device function was changed to return error pointer value. So change the show functions using the update function to return error. Signed-off-by: Tokunori Ikegami Cc: Guenter Roeck Cc: Chris Packham Cc: linux-hwmon@vger.kernel.org --- Changes since v1: - Move the changes in adt7475_update_device() from patch 3. - Change to rebase on the v2 patch 1. drivers/hwmon/adt7475.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c index 74fe5424c394..bdafc213fdd5 100644 --- a/drivers/hwmon/adt7475.c +++ b/drivers/hwmon/adt7475.c @@ -326,6 +326,9 @@ static ssize_t show_voltage(struct device *dev, struct device_attribute *attr, struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr); unsigned short val; + if (IS_ERR(data)) + return PTR_ERR(data); + switch (sattr->nr) { case ALARM: return sprintf(buf, "%d\n", @@ -381,6 +384,9 @@ static ssize_t show_temp(struct device *dev, struct device_attribute *attr, struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr); int out; + if (IS_ERR(data)) + return PTR_ERR(data); + switch (sattr->nr) { case HYSTERSIS: mutex_lock(&data->lock); @@ -625,6 +631,9 @@ static ssize_t show_point2(struct device *dev, struct device_attribute *attr, struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr); int out, val; + if (IS_ERR(data)) + return PTR_ERR(data); + mutex_lock(&data->lock); out = (data->range[sattr->index] >> 4) & 0x0F; val = reg2temp(data, data->temp[AUTOMIN][sattr->index]); @@ -683,6 +692,9 @@ static ssize_t show_tach(struct device *dev, struct device_attribute *attr, struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr); int out; + if (IS_ERR(data)) + return PTR_ERR(data); + if (sattr->nr == ALARM) out = (data->alarms >> (sattr->index + 10)) & 1; else @@ -720,6 +732,9 @@ static ssize_t show_pwm(struct device *dev, struct device_attribute *attr, struct adt7475_data *data = adt7475_update_device(dev); struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr); + if (IS_ERR(data)) + return PTR_ERR(data); + return sprintf(buf, "%d\n", data->pwm[sattr->nr][sattr->index]); } @@ -729,6 +744,9 @@ static ssize_t show_pwmchan(struct device *dev, struct device_attribute *attr, struct adt7475_data *data = adt7475_update_device(dev); struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr); + if (IS_ERR(data)) + return PTR_ERR(data); + return sprintf(buf, "%d\n", data->pwmchan[sattr->index]); } @@ -738,6 +756,9 @@ static ssize_t show_pwmctrl(struct device *dev, struct device_attribute *attr, struct adt7475_data *data = adt7475_update_device(dev); struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr); + if (IS_ERR(data)) + return PTR_ERR(data); + return sprintf(buf, "%d\n", data->pwmctl[sattr->index]); } @@ -945,6 +966,9 @@ static ssize_t show_pwmfreq(struct device *dev, struct device_attribute *attr, int i = clamp_val(data->range[sattr->index] & 0xf, 0, ARRAY_SIZE(pwmfreq_table) - 1); + if (IS_ERR(data)) + return PTR_ERR(data); + return sprintf(buf, "%d\n", pwmfreq_table[i]); } @@ -1035,6 +1059,10 @@ static ssize_t cpu0_vid_show(struct device *dev, struct device_attribute *devattr, char *buf) { struct adt7475_data *data = adt7475_update_device(dev); + + if (IS_ERR(data)) + return PTR_ERR(data); + return sprintf(buf, "%d\n", vid_from_reg(data->vid, data->vrm)); } @@ -1875,20 +1903,30 @@ static struct adt7475_data *adt7475_update_device(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); struct adt7475_data *data = i2c_get_clientdata(client); + int ret; mutex_lock(&data->lock); /* Measurement values update every 2 seconds */ if (time_after(jiffies, data->measure_updated + HZ * 2) || !data->valid) { - adt7475_update_measure(dev); + ret = adt7475_update_measure(dev); + if (ret < 0) { + data->valid = false; + mutex_unlock(&data->lock); + return ERR_PTR(ret); + } data->measure_updated = jiffies; data->valid = true; } /* Limits and settings, should never change update more than once */ if (!data->limits_updated) { - adt7475_update_limits(dev); + ret = adt7475_update_limits(dev); + if (ret < 0) { + mutex_unlock(&data->lock); + return ERR_PTR(ret); + } data->limits_updated = true; } mutex_unlock(&data->lock);