lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 23 Oct 2021 18:50:56 +0100 From: Sean Young <sean@...s.org> To: Maíra Canal <maira.canal@....br> Cc: mchehab@...nel.org, thierry.reding@...il.com, u.kleine-koenig@...gutronix.de, lee.jones@...aro.org, linux-media@...r.kernel.org, linux-kernel@...r.kernel.org, linux-pwm@...r.kernel.org Subject: Re: [PATCH] media: rc: pwm-ir-tx: Switch to atomic PWM API Hi Maíra, Your patch looks good, just some very minor nits. On Sat, Oct 23, 2021 at 02:22:46PM -0300, Maíra Canal wrote: > Remove legacy PWM interface (pwm_config, pwm_enable, pwm_disable) and > replace it for the atomic PWM API. > > Signed-off-by: Maíra Canal <maira.canal@....br> > --- > drivers/media/rc/pwm-ir-tx.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/rc/pwm-ir-tx.c b/drivers/media/rc/pwm-ir-tx.c > index 4bc28d2c9cc9..dfaa6125991e 100644 > --- a/drivers/media/rc/pwm-ir-tx.c > +++ b/drivers/media/rc/pwm-ir-tx.c > @@ -53,6 +53,7 @@ static int pwm_ir_tx(struct rc_dev *dev, unsigned int *txbuf, > { > struct pwm_ir *pwm_ir = dev->priv; > struct pwm_device *pwm = pwm_ir->pwm; > + struct pwm_state state; > int i, duty, period; > ktime_t edge; > long delta; > @@ -60,15 +61,19 @@ static int pwm_ir_tx(struct rc_dev *dev, unsigned int *txbuf, > period = DIV_ROUND_CLOSEST(NSEC_PER_SEC, pwm_ir->carrier); > duty = DIV_ROUND_CLOSEST(pwm_ir->duty_cycle * period, 100); > > - pwm_config(pwm, duty, period); > + pwm_init_state(pwm, &state); > + > + state.duty_cycle = duty; > + state.period = period; There is no reason to have the period and duty local variables any more; the result of DIV_ROUND_CLOSEST(..) can be assigned directly. > edge = ktime_get(); > > for (i = 0; i < count; i++) { > if (i % 2) // space > - pwm_disable(pwm); > + state.enabled = false; > else > - pwm_enable(pwm); > + state.enabled = true; This could be simply: state.enabled = (i % 2) == 0; > + pwm_apply_state(pwm, &state); > > edge = ktime_add_us(edge, txbuf[i]); > delta = ktime_us_delta(edge, ktime_get()); > @@ -76,7 +81,8 @@ static int pwm_ir_tx(struct rc_dev *dev, unsigned int *txbuf, > usleep_range(delta, delta + 10); > } > > - pwm_disable(pwm); > + state.enabled = false; > + pwm_apply_state(pwm, &state); > > return count; > } > -- > 2.31.1 Thanks Sean
Powered by blists - more mailing lists