[<prev] [next>] [day] [month] [year] [list]
Message-Id: <89be55e621a1acce96f1eb1ab5e949ea575e8af8.1584473399.git.gurus@codeaurora.org>
Date: Tue, 17 Mar 2020 13:05:21 -0700
From: Guru Das Srinagesh <gurus@...eaurora.org>
To: linux-pwm@...r.kernel.org
Cc: Thierry Reding <thierry.reding@...il.com>,
Uwe Kleine-König <uwe@...ine-koenig.org>,
Subbaraman Narayanamurthy <subbaram@...eaurora.org>,
linux-kernel@...r.kernel.org,
Guru Das Srinagesh <gurus@...eaurora.org>,
Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
NXP Linux Team <linux-imx@....com>,
Anson Huang <Anson.Huang@....com>,
Michal Vokáč <michal.vokac@...ft.com>,
Adam Ford <aford173@...il.com>,
Mukesh Ojha <mojha@...eaurora.org>,
Dan Carpenter <dan.carpenter@...cle.com>
Subject: [PATCH v9 06/11] pwm: imx27: Use 64-bit division macro and function
Since the PWM framework is switching struct pwm_state.period's
datatype to u64, prepare for this transition by using
DIV_ROUND_UP_ULL to handle a 64-bit dividend, and div64_u64 to handle a
64-bit divisor.
Cc: Shawn Guo <shawnguo@...nel.org>
Cc: Sascha Hauer <s.hauer@...gutronix.de>
Cc: Pengutronix Kernel Team <kernel@...gutronix.de>
Cc: Fabio Estevam <festevam@...il.com>
Cc: NXP Linux Team <linux-imx@....com>
Cc: Anson Huang <Anson.Huang@....com>
Cc: Michal Vokáč <michal.vokac@...ft.com>
Cc: Adam Ford <aford173@...il.com>
Cc: Mukesh Ojha <mojha@...eaurora.org>
Cc: Dan Carpenter <dan.carpenter@...cle.com>
Signed-off-by: Guru Das Srinagesh <gurus@...eaurora.org>
---
drivers/pwm/pwm-imx27.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pwm/pwm-imx27.c b/drivers/pwm/pwm-imx27.c
index 35a7ac42..b7d38d0 100644
--- a/drivers/pwm/pwm-imx27.c
+++ b/drivers/pwm/pwm-imx27.c
@@ -208,7 +208,7 @@ static void pwm_imx27_wait_fifo_slot(struct pwm_chip *chip,
sr = readl(imx->mmio_base + MX3_PWMSR);
fifoav = FIELD_GET(MX3_PWMSR_FIFOAV, sr);
if (fifoav == MX3_PWMSR_FIFOAV_4WORDS) {
- period_ms = DIV_ROUND_UP(pwm_get_period(pwm),
+ period_ms = DIV_ROUND_UP_ULL(pwm_get_period(pwm),
NSEC_PER_MSEC);
msleep(period_ms);
@@ -240,8 +240,7 @@ static int pwm_imx27_apply(struct pwm_chip *chip, struct pwm_device *pwm,
period_cycles /= prescale;
c = (unsigned long long)period_cycles * state->duty_cycle;
- do_div(c, state->period);
- duty_cycles = c;
+ duty_cycles = div64_u64(c, state->period);
/*
* according to imx pwm RM, the real period value should be PERIOD
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Powered by blists - more mailing lists