From nobody Thu Dec 18 18:05:47 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D2717C197A0 for ; Mon, 20 Nov 2023 08:31:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232192AbjKTIbc (ORCPT ); Mon, 20 Nov 2023 03:31:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232081AbjKTIba (ORCPT ); Mon, 20 Nov 2023 03:31:30 -0500 Received: from m12.mail.163.com (m12.mail.163.com [220.181.12.196]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 8ED1BE5; Mon, 20 Nov 2023 00:31:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=MCmCD t45NRngfCoOECBSc53ms9KrOALmsj4F6y7aqMc=; b=Lew0v0AGm9H1mLgxK84IU 2Cz4VfP/Bwxbtnfs6Xv8iD/myWweROJYczti/VxXjUEN91OU0skB3Xvd3EG5Lx/4 cxC3lxhQWXbjQYoR0fwDy699RoLBxmOi7c+EaXcbP2CNGeLbRcadzI1ucSqK9N9h EX9cXiYqJRIBs5ARtIB7ic= Received: from localhost.localdomain (unknown [39.144.137.207]) by zwqz-smtp-mta-g3-2 (Coremail) with SMTP id _____wDH52myFVtlTcE1Dg--.30221S3; Mon, 20 Nov 2023 16:15:48 +0800 (CST) From: Xing Tong Wu To: Guenter Roeck , Jean Delvare , linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org Cc: xingtong.wu@siemens.com, tobias.schaffner@siemens.com, gerd.haeussler.ext@siemens.com Subject: [PATCH v2 1/2] hwmon: (nct6775) Fix incomplete register array Date: Mon, 20 Nov 2023 16:15:41 +0800 Message-Id: <20231120081542.3174-2-xingtong_wu@163.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231120081542.3174-1-xingtong_wu@163.com> References: <20231120081542.3174-1-xingtong_wu@163.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: _____wDH52myFVtlTcE1Dg--.30221S3 X-Coremail-Antispam: 1Uf129KBjvJXoW7ur1fXr1Dtry8uF1xtFW8WFg_yoW8tFyrp3 4kXr4fAFW7Jr1aqr45KFs5ua1Ikw1ftFyrAws7CwsayF1ktry7Xr43tFZ8tr90yFWxta42 9ryDAFyYq3WDCrUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jqhFxUUUUU= X-Originating-IP: [39.144.137.207] X-CM-SenderInfo: p0lqw35rqjs4rx6rljoofrz/1tbiFhUu0F44X5n24gAAsJ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Xing Tong Wu The nct6116 specification actually includes 5 PWMs, but only 3 PWMs are present in the array. To address this, the missing 2 PWMs have been added to the array. Signed-off-by: Xing Tong Wu --- drivers/hwmon/nct6775-core.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/hwmon/nct6775-core.c b/drivers/hwmon/nct6775-core.c index d928eb8ae5a3..c24b2c312911 100644 --- a/drivers/hwmon/nct6775-core.c +++ b/drivers/hwmon/nct6775-core.c @@ -844,6 +844,9 @@ static const u16 NCT6116_REG_FAN_PULSES[] =3D { 0xf6, 0= xf6, 0xf6, 0xf6, 0xf5 }; static const u16 NCT6116_FAN_PULSE_SHIFT[] =3D { 0, 2, 4, 6, 6 }; =20 static const u16 NCT6116_REG_PWM[] =3D { 0x119, 0x129, 0x139, 0x199, 0x1a9= }; +static const u8 NCT6116_REG_PWM_MODE[] =3D { 0xf3, 0xf3, 0xf3, 0xf3, 0xf3 = }; +static const u8 NCT6116_PWM_MODE_MASK[] =3D { 0x01, 0x02, 0x04, 0x04, 0x04= }; +static const u16 NCT6116_REG_PWM_READ[] =3D { 0x4a, 0x4b, 0x4c, 0xd8, 0xd9= }; static const u16 NCT6116_REG_FAN_MODE[] =3D { 0x113, 0x123, 0x133, 0x193, = 0x1a3 }; static const u16 NCT6116_REG_TEMP_SEL[] =3D { 0x110, 0x120, 0x130, 0x190, = 0x1a0 }; static const u16 NCT6116_REG_TEMP_SOURCE[] =3D { @@ -3595,7 +3598,7 @@ int nct6775_probe(struct device *dev, struct nct6775_= data *data, break; case nct6116: data->in_num =3D 9; - data->pwm_num =3D 3; + data->pwm_num =3D 5; data->auto_pwm_num =3D 4; data->temp_fixed_num =3D 3; data->num_temp_alarms =3D 3; @@ -3629,9 +3632,9 @@ int nct6775_probe(struct device *dev, struct nct6775_= data *data, data->REG_PWM[2] =3D NCT6116_REG_FAN_STOP_OUTPUT; data->REG_PWM[5] =3D NCT6106_REG_WEIGHT_DUTY_STEP; data->REG_PWM[6] =3D NCT6106_REG_WEIGHT_DUTY_BASE; - data->REG_PWM_READ =3D NCT6106_REG_PWM_READ; - data->REG_PWM_MODE =3D NCT6106_REG_PWM_MODE; - data->PWM_MODE_MASK =3D NCT6106_PWM_MODE_MASK; + data->REG_PWM_READ =3D NCT6116_REG_PWM_READ; + data->REG_PWM_MODE =3D NCT6116_REG_PWM_MODE; + data->PWM_MODE_MASK =3D NCT6116_PWM_MODE_MASK; data->REG_AUTO_TEMP =3D NCT6116_REG_AUTO_TEMP; data->REG_AUTO_PWM =3D NCT6116_REG_AUTO_PWM; data->REG_CRITICAL_TEMP =3D NCT6116_REG_CRITICAL_TEMP; --=20 2.25.1 From nobody Thu Dec 18 18:05:47 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6276CC197A0 for ; Mon, 20 Nov 2023 08:16:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232161AbjKTIQb (ORCPT ); Mon, 20 Nov 2023 03:16:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232143AbjKTIQY (ORCPT ); Mon, 20 Nov 2023 03:16:24 -0500 Received: from m12.mail.163.com (m12.mail.163.com [220.181.12.215]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5BC6AED; Mon, 20 Nov 2023 00:16:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=hgq9Z CjqvMpwCSb1biw4ArBkdPTWEHtoxNKDFAzpN0k=; b=exk3C/Uhfftv5amfG00sR AY3Vc7WhJv1YhR6kpFwPbhJ2I8uF5NgpDHqjcw/3MxJpAVK79Z3Zu3F9fgA+6jB+ vgDqDhOopCLYV7XwlKzOYOCJK/y8DK457xb/rOeKVby8av0dup0LsaZ16oHBqO1S HDDQGVhCG/Ef5sJS5uaduc= Received: from localhost.localdomain (unknown [39.144.137.207]) by zwqz-smtp-mta-g3-2 (Coremail) with SMTP id _____wDH52myFVtlTcE1Dg--.30221S4; Mon, 20 Nov 2023 16:15:50 +0800 (CST) From: Xing Tong Wu To: Guenter Roeck , Jean Delvare , linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org Cc: xingtong.wu@siemens.com, tobias.schaffner@siemens.com, gerd.haeussler.ext@siemens.com Subject: [PATCH v2 2/2] hwmon: (nct6775) Fix fan speed set failure in automatic mode Date: Mon, 20 Nov 2023 16:15:42 +0800 Message-Id: <20231120081542.3174-3-xingtong_wu@163.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231120081542.3174-1-xingtong_wu@163.com> References: <20231120081542.3174-1-xingtong_wu@163.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: _____wDH52myFVtlTcE1Dg--.30221S4 X-Coremail-Antispam: 1Uf129KBjvdXoWrtFWDWr4UXw45ZrykWrWfZrb_yoWfKFb_Ww 4F93s7urs8tF1ak34q9FyFyFy5tFW5WFWxXFnFg3s8Ja4jvw1DAFyvqr9Fqw17CFW29FyD Wa17WrW0934UCjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IUeo7K5UUUUU== X-Originating-IP: [39.144.137.207] X-CM-SenderInfo: p0lqw35rqjs4rx6rljoofrz/1tbiEBwu0F8YMmhU7wAAsU Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Xing Tong Wu Setting the fan speed is only valid in manual mode; it is not possible to set the fan's speed in automatic mode. Return error when attempting to set the fan speed in automatic mode. Signed-off-by: Xing Tong Wu --- drivers/hwmon/nct6775-core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/hwmon/nct6775-core.c b/drivers/hwmon/nct6775-core.c index c24b2c312911..38c2e5b7cfe9 100644 --- a/drivers/hwmon/nct6775-core.c +++ b/drivers/hwmon/nct6775-core.c @@ -2556,6 +2556,13 @@ store_pwm(struct device *dev, struct device_attribut= e *attr, const char *buf, int err; u16 reg; =20 + /* + * The fan control mode should be set to manual if the user wants to adju= st + * the fan speed. Otherwise, it will fail to set. + */ + if (index =3D=3D 0 && data->pwm_enable[nr] > manual) + return -EBUSY; + err =3D kstrtoul(buf, 10, &val); if (err < 0) return err; --=20 2.25.1