[PATCH 6/8] media: pwm-ir-tx: Avoid direct access to hrtimer clockbase

Thomas Weißschuh posted 8 patches 1 month, 3 weeks ago
There is a newer version of this series
[PATCH 6/8] media: pwm-ir-tx: Avoid direct access to hrtimer clockbase
Posted by Thomas Weißschuh 1 month, 3 weeks ago
The field timer->base->get_time is a private implementation detail and
should not be accessed outside of the hrtimer core.

Switch to an equivalent higher-level helper.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
 drivers/media/rc/pwm-ir-tx.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/media/rc/pwm-ir-tx.c b/drivers/media/rc/pwm-ir-tx.c
index 84533fdd61aa6ce3c0f8593aaefe5919fd05c7f9..047472dc9244afe0e56e505be20f36fd7d9c449a 100644
--- a/drivers/media/rc/pwm-ir-tx.c
+++ b/drivers/media/rc/pwm-ir-tx.c
@@ -117,7 +117,6 @@ static int pwm_ir_tx_atomic(struct rc_dev *dev, unsigned int *txbuf,
 static enum hrtimer_restart pwm_ir_timer(struct hrtimer *timer)
 {
 	struct pwm_ir *pwm_ir = container_of(timer, struct pwm_ir, timer);
-	ktime_t now;
 
 	/*
 	 * If we happen to hit an odd latency spike, loop through the
@@ -139,9 +138,7 @@ static enum hrtimer_restart pwm_ir_timer(struct hrtimer *timer)
 		hrtimer_add_expires_ns(timer, ns);
 
 		pwm_ir->txbuf_index++;
-
-		now = timer->base->get_time();
-	} while (hrtimer_get_expires_tv64(timer) < now);
+	} while (hrtimer_expires_remaining(timer) > 0);
 
 	return HRTIMER_RESTART;
 }

-- 
2.50.1

Re: [PATCH 6/8] media: pwm-ir-tx: Avoid direct access to hrtimer clockbase
Posted by Sean Young 1 month, 3 weeks ago
On Tue, Aug 12, 2025 at 08:08:14AM +0200, Thomas Weißschuh wrote:
> The field timer->base->get_time is a private implementation detail and
> should not be accessed outside of the hrtimer core.
> 
> Switch to an equivalent higher-level helper.
> 
> Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
> ---
>  drivers/media/rc/pwm-ir-tx.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/media/rc/pwm-ir-tx.c b/drivers/media/rc/pwm-ir-tx.c
> index 84533fdd61aa6ce3c0f8593aaefe5919fd05c7f9..047472dc9244afe0e56e505be20f36fd7d9c449a 100644
> --- a/drivers/media/rc/pwm-ir-tx.c
> +++ b/drivers/media/rc/pwm-ir-tx.c
> @@ -117,7 +117,6 @@ static int pwm_ir_tx_atomic(struct rc_dev *dev, unsigned int *txbuf,
>  static enum hrtimer_restart pwm_ir_timer(struct hrtimer *timer)
>  {
>  	struct pwm_ir *pwm_ir = container_of(timer, struct pwm_ir, timer);
> -	ktime_t now;
>  
>  	/*
>  	 * If we happen to hit an odd latency spike, loop through the
> @@ -139,9 +138,7 @@ static enum hrtimer_restart pwm_ir_timer(struct hrtimer *timer)
>  		hrtimer_add_expires_ns(timer, ns);
>  
>  		pwm_ir->txbuf_index++;
> -
> -		now = timer->base->get_time();
> -	} while (hrtimer_get_expires_tv64(timer) < now);
> +	} while (hrtimer_expires_remaining(timer) > 0);

Acked-by: Sean Young <sean@mess.org>