From: Anand Moon <linux.amoon@gmail.com>
To: Lukasz Majewski <l.majewski@samsung.com>,
Guenter Roeck <linux@roeck-us.net>,
Eduardo Valentin <edubezval@gmail.com>,
Sjoerd Simons <sjoerd.simons@collabora.co.uk>,
Markus Reichl <m.reichl@fivetechno.de>,
Russell King <linux@arm.linux.org.uk>,
Kukjin Kim <kgene@kernel.org>
Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org,
Anand Moon <linux.amoon@gmail.com>
Subject: [PATCH v4 6/6] hwmon: pwm-fan: Update the duty cycle inorder to control the pwm-fan
Date: Mon, 13 Apr 2015 04:14:11 +0930 [thread overview]
Message-ID: <1428864251-31780-7-git-send-email-linux.amoon@gmail.com> (raw)
In-Reply-To: <1428864251-31780-1-git-send-email-linux.amoon@gmail.com>
pwm_config() must be called with a duty cycle of 0 prior to calling
pwm_disable() to ensure that the pwm signal is set to low.
Changes since v1 : None.
Changes since v2 : None
Changes since v3 : Simplify the comment.
Reported-by: Markus Reichl <m.reichl@fivetechno.de>
Tested-by: Markus Reichl <m.reichl@fivetechno.de>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
Reviewed-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
drivers/hwmon/pwm-fan.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/hwmon/pwm-fan.c b/drivers/hwmon/pwm-fan.c
index 7c83dc4..c2a469e 100644
--- a/drivers/hwmon/pwm-fan.c
+++ b/drivers/hwmon/pwm-fan.c
@@ -47,23 +47,20 @@ static int __set_pwm(struct pwm_fan_ctx *ctx, unsigned long pwm)
if (ctx->pwm_value == pwm)
goto exit_set_pwm_err;
- if (pwm == 0) {
- pwm_disable(ctx->pwm);
- goto exit_set_pwm;
- }
-
duty = DIV_ROUND_UP(pwm * (ctx->pwm->period - 1), MAX_PWM);
ret = pwm_config(ctx->pwm, duty, ctx->pwm->period);
if (ret)
goto exit_set_pwm_err;
+ if (pwm == 0)
+ pwm_disable(ctx->pwm);
+
if (ctx->pwm_value == 0) {
ret = pwm_enable(ctx->pwm);
if (ret)
goto exit_set_pwm_err;
}
-exit_set_pwm:
ctx->pwm_value = pwm;
exit_set_pwm_err:
mutex_unlock(&ctx->lock);
--
1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: linux.amoon@gmail.com (Anand Moon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 6/6] hwmon: pwm-fan: Update the duty cycle inorder to control the pwm-fan
Date: Mon, 13 Apr 2015 04:14:11 +0930 [thread overview]
Message-ID: <1428864251-31780-7-git-send-email-linux.amoon@gmail.com> (raw)
In-Reply-To: <1428864251-31780-1-git-send-email-linux.amoon@gmail.com>
pwm_config() must be called with a duty cycle of 0 prior to calling
pwm_disable() to ensure that the pwm signal is set to low.
Changes since v1 : None.
Changes since v2 : None
Changes since v3 : Simplify the comment.
Reported-by: Markus Reichl <m.reichl@fivetechno.de>
Tested-by: Markus Reichl <m.reichl@fivetechno.de>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
Reviewed-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
drivers/hwmon/pwm-fan.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/hwmon/pwm-fan.c b/drivers/hwmon/pwm-fan.c
index 7c83dc4..c2a469e 100644
--- a/drivers/hwmon/pwm-fan.c
+++ b/drivers/hwmon/pwm-fan.c
@@ -47,23 +47,20 @@ static int __set_pwm(struct pwm_fan_ctx *ctx, unsigned long pwm)
if (ctx->pwm_value == pwm)
goto exit_set_pwm_err;
- if (pwm == 0) {
- pwm_disable(ctx->pwm);
- goto exit_set_pwm;
- }
-
duty = DIV_ROUND_UP(pwm * (ctx->pwm->period - 1), MAX_PWM);
ret = pwm_config(ctx->pwm, duty, ctx->pwm->period);
if (ret)
goto exit_set_pwm_err;
+ if (pwm == 0)
+ pwm_disable(ctx->pwm);
+
if (ctx->pwm_value == 0) {
ret = pwm_enable(ctx->pwm);
if (ret)
goto exit_set_pwm_err;
}
-exit_set_pwm:
ctx->pwm_value = pwm;
exit_set_pwm_err:
mutex_unlock(&ctx->lock);
--
1.9.1
next prev parent reply other threads:[~2015-04-12 18:45 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-12 18:44 v4 Exynos5422 odroidxu3 pwm-fan control using thermal sensors Anand Moon
2015-04-12 18:44 ` Anand Moon
[not found] ` <1428864251-31780-1-git-send-email-linux.amoon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-04-12 18:44 ` [PATCH v4 1/6] ARM: dts :exynos5422-odroidxu3 Add pwm-fan node to the Odroid-XU3 board Anand Moon
2015-04-12 18:44 ` Anand Moon
2015-04-12 18:44 ` [PATCH v4 2/6] ARM: dts: OdroidXU3: Enable TMU at Exynos5422 base Anand Moon
2015-04-12 18:44 ` Anand Moon
2015-04-12 18:44 ` [PATCH v4 3/6] ARM: dts: define default thermal-zones for exynos5 Anand Moon
2015-04-12 18:44 ` Anand Moon
2015-04-12 18:44 ` [PATCH v4 4/6] ARM: dts exynos5420 update the cooling cells for core cpu0 Anand Moon
2015-04-12 18:44 ` Anand Moon
2015-04-12 18:44 ` [PATCH v4 5/6] ARM: dts: Enable thermal_zone for exynos5422 Anand Moon
2015-04-12 18:44 ` Anand Moon
2015-04-12 18:44 ` Anand Moon [this message]
2015-04-12 18:44 ` [PATCH v4 6/6] hwmon: pwm-fan: Update the duty cycle inorder to control the pwm-fan Anand Moon
2015-04-12 23:00 ` Guenter Roeck
2015-04-12 23:00 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1428864251-31780-7-git-send-email-linux.amoon@gmail.com \
--to=linux.amoon@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=edubezval@gmail.com \
--cc=kgene@kernel.org \
--cc=l.majewski@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=linux@roeck-us.net \
--cc=m.reichl@fivetechno.de \
--cc=sjoerd.simons@collabora.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.