Linux-Hwmon Archive on lore.kernel.org
 help / color / Atom feed
* [v4 1/2] hwmon: (nct7904) Fix the incorrect return value of case hwmon_fan_min in function "nct7904_write_fan".
@ 2019-08-06  2:30 Amy.Shih
  2019-08-06  2:31 ` [v4 2/2] hwmon: (nct7904) Fix the confused calculation " Amy.Shih
  2019-08-06 22:34 ` [v4 1/2] hwmon: (nct7904) Fix the incorrect return value " Guenter Roeck
  0 siblings, 2 replies; 3+ messages in thread
From: Amy.Shih @ 2019-08-06  2:30 UTC (permalink / raw)
  To: she90122
  Cc: amy.shih, oakley.ding, jia.sui, Jean Delvare, Guenter Roeck,
	linux-hwmon, linux-kernel

From: "amy.shih" <amy.shih@advantech.com.tw>

Return the -EINVAL(Invalid argument) when writing the values <= 0
to sysfs node fan[1-*]_min.

Signed-off-by: amy.shih <amy.shih@advantech.com.tw>

Changes in v4:
- Fix the incorrect return value of case hwmon_fan_min in function "nct7904_write_fan".
Changes in v3:
- Squashed subsequent fixes of below 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 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwmon/nct7904.c b/drivers/hwmon/nct7904.c
index d842c10ba11f..6527b56e4f6c 100644
--- a/drivers/hwmon/nct7904.c
+++ b/drivers/hwmon/nct7904.c
@@ -551,7 +551,7 @@ static int nct7904_write_fan(struct device *dev, u32 attr, int channel,
 	switch (attr) {
 	case hwmon_fan_min:
 		if (val <= 0)
-			return 0;
+			return -EINVAL;
 
 		val = clamp_val((1350000 + (val >> 1)) / val, 1, 0x1fff);
 		tmp = (val >> 5) & 0xff;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [v4 2/2] hwmon: (nct7904) Fix the confused calculation of case hwmon_fan_min in function "nct7904_write_fan".
  2019-08-06  2:30 [v4 1/2] hwmon: (nct7904) Fix the incorrect return value of case hwmon_fan_min in function "nct7904_write_fan" Amy.Shih
@ 2019-08-06  2:31 ` " Amy.Shih
  2019-08-06 22:34 ` [v4 1/2] hwmon: (nct7904) Fix the incorrect return value " Guenter Roeck
  1 sibling, 0 replies; 3+ messages in thread
From: Amy.Shih @ 2019-08-06  2:31 UTC (permalink / raw)
  To: she90122
  Cc: amy.shih, oakley.ding, jia.sui, Jean Delvare, Guenter Roeck,
	linux-hwmon, linux-kernel

From: "amy.shih" <amy.shih@advantech.com.tw>

Use the macro "DIV_ROUND_CLOSEST" instead.

Signed-off-by: amy.shih <amy.shih@advantech.com.tw>

Changes in v4:
- Fix the confused calculation of case hwmon_fan_min in function
"nct7904_write_fan".
Changes in v3:
- Squashed subsequent fixes of below 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 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwmon/nct7904.c b/drivers/hwmon/nct7904.c
index 6527b56e4f6c..76372f20d71a 100644
--- a/drivers/hwmon/nct7904.c
+++ b/drivers/hwmon/nct7904.c
@@ -553,7 +553,7 @@ static int nct7904_write_fan(struct device *dev, u32 attr, int channel,
 		if (val <= 0)
 			return -EINVAL;
 
-		val = clamp_val((1350000 + (val >> 1)) / val, 1, 0x1fff);
+		val = clamp_val(DIV_ROUND_CLOSEST(1350000, val), 1, 0x1fff);
 		tmp = (val >> 5) & 0xff;
 		ret = nct7904_write_reg(data, BANK_1,
 					FANIN1_HV_HL_REG + channel * 2, tmp);
-- 
2.17.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [v4 1/2] hwmon: (nct7904) Fix the incorrect return value of case hwmon_fan_min in function "nct7904_write_fan".
  2019-08-06  2:30 [v4 1/2] hwmon: (nct7904) Fix the incorrect return value of case hwmon_fan_min in function "nct7904_write_fan" Amy.Shih
  2019-08-06  2:31 ` [v4 2/2] hwmon: (nct7904) Fix the confused calculation " Amy.Shih
@ 2019-08-06 22:34 ` " Guenter Roeck
  1 sibling, 0 replies; 3+ messages in thread
From: Guenter Roeck @ 2019-08-06 22:34 UTC (permalink / raw)
  To: Amy.Shih
  Cc: she90122, oakley.ding, jia.sui, Jean Delvare, linux-hwmon, linux-kernel

On Tue, Aug 06, 2019 at 02:30:07AM +0000, Amy.Shih@advantech.com.tw wrote:
> From: "amy.shih" <amy.shih@advantech.com.tw>
> 
> Return the -EINVAL(Invalid argument) when writing the values <= 0
> to sysfs node fan[1-*]_min.
> 
> Signed-off-by: amy.shih <amy.shih@advantech.com.tw>
> 

This again fixes a previous patch of the series. Please squash
the entire series (all three patches) together in a single patch.

Thanks,
Guenter

> Changes in v4:
> - Fix the incorrect return value of case hwmon_fan_min in function "nct7904_write_fan".
> Changes in v3:
> - Squashed subsequent fixes of below 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 | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/nct7904.c b/drivers/hwmon/nct7904.c
> index d842c10ba11f..6527b56e4f6c 100644
> --- a/drivers/hwmon/nct7904.c
> +++ b/drivers/hwmon/nct7904.c
> @@ -551,7 +551,7 @@ static int nct7904_write_fan(struct device *dev, u32 attr, int channel,
>  	switch (attr) {
>  	case hwmon_fan_min:
>  		if (val <= 0)
> -			return 0;
> +			return -EINVAL;
>  
>  		val = clamp_val((1350000 + (val >> 1)) / val, 1, 0x1fff);
>  		tmp = (val >> 5) & 0xff;
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, back to index

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-06  2:30 [v4 1/2] hwmon: (nct7904) Fix the incorrect return value of case hwmon_fan_min in function "nct7904_write_fan" Amy.Shih
2019-08-06  2:31 ` [v4 2/2] hwmon: (nct7904) Fix the confused calculation " Amy.Shih
2019-08-06 22:34 ` [v4 1/2] hwmon: (nct7904) Fix the incorrect return value " Guenter Roeck

Linux-Hwmon Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-hwmon/0 linux-hwmon/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-hwmon linux-hwmon/ https://lore.kernel.org/linux-hwmon \
		linux-hwmon@vger.kernel.org linux-hwmon@archiver.kernel.org
	public-inbox-index linux-hwmon


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-hwmon


AGPL code for this site: git clone https://public-inbox.org/ public-inbox