Revert "FROMLIST: pwm: Convert period and duty cycle to u64"

This reverts commit d2ee0ef1e0

Causes build errors on 5.8-rc1, hopefully a new version will be
submitted upstream, no need to keep this around at the moment.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I9d13a5b727ebc9dd4aaa591bb64d28adef8cb38c
This commit is contained in:
Greg Kroah-Hartman
2020-06-25 15:48:52 +02:00
parent 3be0477f5a
commit fd0cd97281
15 changed files with 34 additions and 33 deletions

View File

@@ -89,7 +89,7 @@ static int clk_pwm_probe(struct platform_device *pdev)
}
if (of_property_read_u32(node, "clock-frequency", &clk_pwm->fixed_rate))
clk_pwm->fixed_rate = div64_u64(NSEC_PER_SEC, pargs.period);
clk_pwm->fixed_rate = NSEC_PER_SEC / pargs.period;
if (pargs.period != NSEC_PER_SEC / clk_pwm->fixed_rate &&
pargs.period != DIV_ROUND_UP(NSEC_PER_SEC, clk_pwm->fixed_rate)) {

View File

@@ -1929,10 +1929,11 @@ static int pwm_setup_backlight(struct intel_connector *connector,
return retval;
}
level = DIV64_U64_ROUND_UP(pwm_get_duty_cycle(panel->backlight.pwm) * 100,
CRC_PMIC_PWM_PERIOD_NS);
panel->backlight.level =
intel_panel_compute_brightness(connector, level);
panel->backlight.min = 0; /* 0% */
panel->backlight.max = 100; /* 100% */
panel->backlight.level = DIV_ROUND_UP(
pwm_get_duty_cycle(panel->backlight.pwm) * 100,
CRC_PMIC_PWM_PERIOD_NS);
panel->backlight.enabled = panel->backlight.level != 0;
drm_info(&dev_priv->drm, "Using %s PWM for LCD backlight control\n",

View File

@@ -447,7 +447,7 @@ static int pwm_fan_resume(struct device *dev)
return 0;
pwm_get_args(ctx->pwm, &pargs);
duty = DIV_ROUND_UP_ULL(ctx->pwm_value * (pargs.period - 1), MAX_PWM);
duty = DIV_ROUND_UP(ctx->pwm_value * (pargs.period - 1), MAX_PWM);
ret = pwm_config(ctx->pwm, duty, pargs.period);
if (ret)
return ret;

View File

@@ -241,7 +241,7 @@ static int ir_rx51_probe(struct platform_device *dev)
}
/* Use default, in case userspace does not set the carrier */
ir_rx51.freq = DIV_ROUND_CLOSEST_ULL(pwm_get_period(pwm), NSEC_PER_SEC);
ir_rx51.freq = DIV_ROUND_CLOSEST(pwm_get_period(pwm), NSEC_PER_SEC);
pwm_put(pwm);
hrtimer_init(&ir_rx51.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);

View File

@@ -1285,8 +1285,8 @@ static void pwm_dbg_show(struct pwm_chip *chip, struct seq_file *s)
if (state.enabled)
seq_puts(s, " enabled");
seq_printf(s, " period: %llu ns", state.period);
seq_printf(s, " duty: %llu ns", state.duty_cycle);
seq_printf(s, " period: %u ns", state.period);
seq_printf(s, " duty: %u ns", state.duty_cycle);
seq_printf(s, " polarity: %s",
state.polarity ? "inverse" : "normal");

View File

@@ -43,7 +43,7 @@ static void clps711x_pwm_update_val(struct clps711x_chip *priv, u32 n, u32 v)
static unsigned int clps711x_get_duty(struct pwm_device *pwm, unsigned int v)
{
/* Duty cycle 0..15 max */
return DIV64_U64_ROUND_CLOSEST(v * 0xf, pwm->args.period);
return DIV_ROUND_CLOSEST(v * 0xf, pwm->args.period);
}
static int clps711x_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)

View File

@@ -124,7 +124,7 @@ static int pwm_imx_tpm_round_state(struct pwm_chip *chip,
real_state->duty_cycle = state->duty_cycle;
tmp = (u64)p->mod * real_state->duty_cycle;
p->val = DIV64_U64_ROUND_CLOSEST(tmp, real_state->period);
p->val = DIV_ROUND_CLOSEST_ULL(tmp, real_state->period);
real_state->polarity = state->polarity;
real_state->enabled = state->enabled;

View File

@@ -202,7 +202,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_ULL(pwm_get_period(pwm),
period_ms = DIV_ROUND_UP(pwm_get_period(pwm),
NSEC_PER_MSEC);
msleep(period_ms);
@@ -235,7 +235,8 @@ static int pwm_imx27_apply(struct pwm_chip *chip, struct pwm_device *pwm,
period_cycles /= prescale;
c = clkrate * state->duty_cycle;
duty_cycles = div64_u64(c, NSEC_PER_SEC * prescale);
do_div(c, NSEC_PER_SEC * prescale);
duty_cycles = c;
/*
* according to imx pwm RM, the real period value should be PERIOD

View File

@@ -181,7 +181,7 @@ static int pwm_sifive_apply(struct pwm_chip *chip, struct pwm_device *pwm,
* consecutively
*/
num = (u64)duty_cycle * (1U << PWM_SIFIVE_CMPWIDTH);
frac = DIV64_U64_ROUND_CLOSEST(num, state->period);
frac = DIV_ROUND_CLOSEST_ULL(num, state->period);
/* The hardware cannot generate a 100% duty cycle */
frac = min(frac, (1U << PWM_SIFIVE_CMPWIDTH) - 1);

View File

@@ -371,10 +371,10 @@ static int sti_pwm_capture(struct pwm_chip *chip, struct pwm_device *pwm,
effective_ticks = clk_get_rate(pc->cpt_clk);
result->period = (high + low) * NSEC_PER_SEC;
do_div(result->period, effective_ticks);
result->period /= effective_ticks;
result->duty_cycle = high * NSEC_PER_SEC;
do_div(result->duty_cycle, effective_ticks);
result->duty_cycle /= effective_ticks;
break;

View File

@@ -61,7 +61,7 @@ static int stm32_pwm_lp_apply(struct pwm_chip *chip, struct pwm_device *pwm,
do_div(div, NSEC_PER_SEC);
if (!div) {
/* Clock is too slow to achieve requested period. */
dev_dbg(priv->chip.dev, "Can't reach %llu ns\n", state->period);
dev_dbg(priv->chip.dev, "Can't reach %u ns\n", state->period);
return -EINVAL;
}

View File

@@ -285,7 +285,7 @@ static int sun4i_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
val = (duty & PWM_DTY_MASK) | PWM_PRD(period);
sun4i_pwm_writel(sun4i_pwm, val, PWM_CH_PRD(pwm->hwpwm));
sun4i_pwm->next_period[pwm->hwpwm] = jiffies +
usecs_to_jiffies(div_u64(cstate.period, 1000) + 1);
usecs_to_jiffies(cstate.period / 1000 + 1);
if (state->polarity != PWM_POLARITY_NORMAL)
ctrl &= ~BIT_CH(PWM_ACT_STATE, pwm->hwpwm);

View File

@@ -42,7 +42,7 @@ static ssize_t period_show(struct device *child,
pwm_get_state(pwm, &state);
return sprintf(buf, "%llu\n", state.period);
return sprintf(buf, "%u\n", state.period);
}
static ssize_t period_store(struct device *child,
@@ -52,10 +52,10 @@ static ssize_t period_store(struct device *child,
struct pwm_export *export = child_to_pwm_export(child);
struct pwm_device *pwm = export->pwm;
struct pwm_state state;
u64 val;
unsigned int val;
int ret;
ret = kstrtou64(buf, 0, &val);
ret = kstrtouint(buf, 0, &val);
if (ret)
return ret;
@@ -77,7 +77,7 @@ static ssize_t duty_cycle_show(struct device *child,
pwm_get_state(pwm, &state);
return sprintf(buf, "%llu\n", state.duty_cycle);
return sprintf(buf, "%u\n", state.duty_cycle);
}
static ssize_t duty_cycle_store(struct device *child,
@@ -212,7 +212,7 @@ static ssize_t capture_show(struct device *child,
if (ret)
return ret;
return sprintf(buf, "%llu %llu\n", result.period, result.duty_cycle);
return sprintf(buf, "%u %u\n", result.period, result.duty_cycle);
}
static ssize_t output_type_show(struct device *child,

View File

@@ -606,8 +606,7 @@ static int pwm_backlight_probe(struct platform_device *pdev)
pb->scale = data->max_brightness;
}
pb->lth_brightness = data->lth_brightness * (div_u64(state.period,
pb->scale));
pb->lth_brightness = data->lth_brightness * (state.period / pb->scale);
props.type = BACKLIGHT_RAW;
props.max_brightness = data->max_brightness;

View File

@@ -39,7 +39,7 @@ enum pwm_polarity {
* current PWM hardware state.
*/
struct pwm_args {
u64 period;
unsigned int period;
enum pwm_polarity polarity;
};
@@ -67,8 +67,8 @@ enum pwm_output_type {
* @enabled: PWM enabled status
*/
struct pwm_state {
u64 period;
u64 duty_cycle;
unsigned int period;
unsigned int duty_cycle;
enum pwm_polarity polarity;
enum pwm_output_type output_type;
bool enabled;
@@ -119,13 +119,13 @@ static inline bool pwm_is_enabled(const struct pwm_device *pwm)
return state.enabled;
}
static inline void pwm_set_period(struct pwm_device *pwm, u64 period)
static inline void pwm_set_period(struct pwm_device *pwm, unsigned int period)
{
if (pwm)
pwm->state.period = period;
}
static inline u64 pwm_get_period(const struct pwm_device *pwm)
static inline unsigned int pwm_get_period(const struct pwm_device *pwm)
{
struct pwm_state state;
@@ -140,7 +140,7 @@ static inline void pwm_set_duty_cycle(struct pwm_device *pwm, unsigned int duty)
pwm->state.duty_cycle = duty;
}
static inline u64 pwm_get_duty_cycle(const struct pwm_device *pwm)
static inline unsigned int pwm_get_duty_cycle(const struct pwm_device *pwm)
{
struct pwm_state state;
@@ -332,8 +332,8 @@ struct pwm_chip {
* @duty_cycle: duty cycle of the PWM signal (in nanoseconds)
*/
struct pwm_capture {
u64 period;
u64 duty_cycle;
unsigned int period;
unsigned int duty_cycle;
};
#if IS_ENABLED(CONFIG_PWM)