From patchwork Mon Jun 18 15:57:19 2085 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amy.Shih@advantech.com.tw X-Patchwork-Id: 11126293 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1B14F1399 for ; Mon, 2 Sep 2019 10:06:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 04D8E21882 for ; Mon, 2 Sep 2019 10:06:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731095AbfIBKGV (ORCPT ); Mon, 2 Sep 2019 06:06:21 -0400 Received: from aclms1.advantech.com.tw ([61.58.41.199]:19842 "EHLO ACLMS1.advantech.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729854AbfIBKGU (ORCPT ); Mon, 2 Sep 2019 06:06:20 -0400 Received: from taipei08.ADVANTECH.CORP (unverified [172.20.0.235]) by ACLMS1.advantech.com.tw (Clearswift SMTPRS 5.6.0) with ESMTP id ; Mon, 2 Sep 2019 18:06:17 +0800 From: To: CC: , , , , Jean Delvare , Guenter Roeck , , Subject: [v6,1/1] hwmon: (nct7904) Fix incorrect temperature limitation register setting of LTD. Date: Mon, 18 Jun 2085 15:57:19 +0000 Message-ID: <20850618155720.24857-1-Amy.Shih@advantech.com.tw> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-Originating-IP: [172.17.10.63] X-ClientProxiedBy: ACLDAG.ADVANTECH.CORP (172.20.2.88) To taipei08.ADVANTECH.CORP (172.20.0.235) X-StopIT: No Sender: linux-hwmon-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-hwmon@vger.kernel.org From: "amy.shih" According to kernel hwmon sysfs-interface documentation, temperature critical max value, typically greater than corresponding temp_max values. Thus, reads the LTD_HV_HL (LTD HIGH VALUE HIGH LIMITATION) and LTD_LV_HL (LTD LOW VALUE HIGH LIMITATION) for case hwmon_temp_crit and hwmon_temp_crit_hyst. Reads the LTD_HV_LL (HIGH VALUE LOW LIMITATION) and LTD_LV_LL (LOW VALUE LOW LIMITATION) for case hwmon_temp_max and hwmon_temp_max_hyst. Signed-off-by: amy.shih --- Changes in v6: - Fix incorrect temperature limitation register setting of LTD. Changes in v5: - Squashed subsequent fixes of three patches into one patch. Changes in v4: - Fix the incorrect return value of case hwmon_fan_min in function "nct7904_write_fan". - Fix the confused calculation of case hwmon_fan_min in function Changes in v3: - Squashed subsequent fixes of patches into one patch. -- Fix bad fallthrough in various switch statements. -- Fix the wrong declared of tmp as u8 in nct7904_write_in, declared tmp to int. -- Fix incorrect register setting of voltage. -- Fix incorrect register bit mapping of temperature alarm. -- Fix wrong return code 0x1fff in function nct7904_write_fan. -- Delete wrong comment in function nct7904_write_in. -- Fix wrong attribute names for temperature. -- Fix wrong registers setting for temperature. Changes in v2: - Fix bad fallthrough in various switch statements. - Fix the wrong declared of tmp as u8 in nct7904_write_in, declared tmp to int. --- drivers/hwmon/nct7904.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/hwmon/nct7904.c b/drivers/hwmon/nct7904.c index 76372f20d71a..ce688ab4fce2 100644 --- a/drivers/hwmon/nct7904.c +++ b/drivers/hwmon/nct7904.c @@ -398,22 +398,22 @@ static int nct7904_read_temp(struct device *dev, u32 attr, int channel, } return 0; case hwmon_temp_max: - reg1 = LTD_HV_HL_REG; + reg1 = LTD_HV_LL_REG; reg2 = TEMP_CH1_W_REG; reg3 = DTS_T_CPU1_W_REG; break; case hwmon_temp_max_hyst: - reg1 = LTD_LV_HL_REG; + reg1 = LTD_LV_LL_REG; reg2 = TEMP_CH1_WH_REG; reg3 = DTS_T_CPU1_WH_REG; break; case hwmon_temp_crit: - reg1 = LTD_HV_LL_REG; + reg1 = LTD_HV_HL_REG; reg2 = TEMP_CH1_C_REG; reg3 = DTS_T_CPU1_C_REG; break; case hwmon_temp_crit_hyst: - reg1 = LTD_LV_LL_REG; + reg1 = LTD_LV_HL_REG; reg2 = TEMP_CH1_CH_REG; reg3 = DTS_T_CPU1_CH_REG; break; @@ -507,22 +507,22 @@ static int nct7904_write_temp(struct device *dev, u32 attr, int channel, switch (attr) { case hwmon_temp_max: - reg1 = LTD_HV_HL_REG; + reg1 = LTD_HV_LL_REG; reg2 = TEMP_CH1_W_REG; reg3 = DTS_T_CPU1_W_REG; break; case hwmon_temp_max_hyst: - reg1 = LTD_LV_HL_REG; + reg1 = LTD_LV_LL_REG; reg2 = TEMP_CH1_WH_REG; reg3 = DTS_T_CPU1_WH_REG; break; case hwmon_temp_crit: - reg1 = LTD_HV_LL_REG; + reg1 = LTD_HV_HL_REG; reg2 = TEMP_CH1_C_REG; reg3 = DTS_T_CPU1_C_REG; break; case hwmon_temp_crit_hyst: - reg1 = LTD_LV_LL_REG; + reg1 = LTD_LV_HL_REG; reg2 = TEMP_CH1_CH_REG; reg3 = DTS_T_CPU1_CH_REG; break;