public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/bridge: lontium-lt9611uxc: change to use devm_request_threaded_irq
@ 2026-01-07  3:07 Vladimir Yakovlev
  2026-01-07  9:06 ` Luca Ceresoli
  2026-01-07 13:24 ` Dmitry Baryshkov
  0 siblings, 2 replies; 3+ messages in thread
From: Vladimir Yakovlev @ 2026-01-07  3:07 UTC (permalink / raw)
  To: luca.ceresoli
  Cc: Vladimir Yakovlev, Laurent.pinchart, airlied, andrzej.hajda,
	dmitry.baryshkov, dri-devel, jernej.skrabec, jonas, linux-kernel,
	maarten.lankhorst, mripard, neil.armstrong, rfoss, simona,
	tzimmermann

It's better to use devm_request_threaded_irq because resources will be
freed automatically and no additional checks are needed.

Signed-off-by: Vladimir Yakovlev <vovchkir@gmail.com>
---
 drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
index 3868ad05e011..bb5cff021c93 100644
--- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
+++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
@@ -851,9 +851,9 @@ static int lt9611uxc_probe(struct i2c_client *client)
 	init_waitqueue_head(&lt9611uxc->wq);
 	INIT_WORK(&lt9611uxc->work, lt9611uxc_hpd_work);
 
-	ret = request_threaded_irq(client->irq, NULL,
-				   lt9611uxc_irq_thread_handler,
-				   IRQF_ONESHOT, "lt9611uxc", lt9611uxc);
+	ret = devm_request_threaded_irq(dev, client->irq, NULL,
+					lt9611uxc_irq_thread_handler,
+					IRQF_ONESHOT, "lt9611uxc", lt9611uxc);
 	if (ret) {
 		dev_err(dev, "failed to request irq\n");
 		goto err_disable_regulators;
@@ -892,7 +892,6 @@ static int lt9611uxc_probe(struct i2c_client *client)
 	return 0;
 
 err_remove_bridge:
-	free_irq(client->irq, lt9611uxc);
 	cancel_work_sync(&lt9611uxc->work);
 	drm_bridge_remove(&lt9611uxc->bridge);
 
@@ -910,7 +909,6 @@ static void lt9611uxc_remove(struct i2c_client *client)
 {
 	struct lt9611uxc *lt9611uxc = i2c_get_clientdata(client);
 
-	free_irq(client->irq, lt9611uxc);
 	cancel_work_sync(&lt9611uxc->work);
 	lt9611uxc_audio_exit(lt9611uxc);
 	drm_bridge_remove(&lt9611uxc->bridge);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/bridge: lontium-lt9611uxc: change to use devm_request_threaded_irq
  2026-01-07  3:07 [PATCH] drm/bridge: lontium-lt9611uxc: change to use devm_request_threaded_irq Vladimir Yakovlev
@ 2026-01-07  9:06 ` Luca Ceresoli
  2026-01-07 13:24 ` Dmitry Baryshkov
  1 sibling, 0 replies; 3+ messages in thread
From: Luca Ceresoli @ 2026-01-07  9:06 UTC (permalink / raw)
  To: Vladimir Yakovlev
  Cc: Laurent.pinchart, airlied, andrzej.hajda, dmitry.baryshkov,
	dri-devel, jernej.skrabec, jonas, linux-kernel, maarten.lankhorst,
	mripard, neil.armstrong, rfoss, simona, tzimmermann

On Wed Jan 7, 2026 at 4:07 AM CET, Vladimir Yakovlev wrote:
> It's better to use devm_request_threaded_irq because resources will be
> freed automatically and no additional checks are needed.
>
> Signed-off-by: Vladimir Yakovlev <vovchkir@gmail.com>

Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/bridge: lontium-lt9611uxc: change to use devm_request_threaded_irq
  2026-01-07  3:07 [PATCH] drm/bridge: lontium-lt9611uxc: change to use devm_request_threaded_irq Vladimir Yakovlev
  2026-01-07  9:06 ` Luca Ceresoli
@ 2026-01-07 13:24 ` Dmitry Baryshkov
  1 sibling, 0 replies; 3+ messages in thread
From: Dmitry Baryshkov @ 2026-01-07 13:24 UTC (permalink / raw)
  To: Vladimir Yakovlev
  Cc: luca.ceresoli, Laurent.pinchart, airlied, andrzej.hajda,
	dri-devel, jernej.skrabec, jonas, linux-kernel, maarten.lankhorst,
	mripard, neil.armstrong, rfoss, simona, tzimmermann

On Wed, Jan 07, 2026 at 06:07:00AM +0300, Vladimir Yakovlev wrote:
> It's better to use devm_request_threaded_irq because resources will be
> freed automatically and no additional checks are needed.
> 
> Signed-off-by: Vladimir Yakovlev <vovchkir@gmail.com>
> ---
>  drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> index 3868ad05e011..bb5cff021c93 100644
> --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> @@ -851,9 +851,9 @@ static int lt9611uxc_probe(struct i2c_client *client)
>  	init_waitqueue_head(&lt9611uxc->wq);
>  	INIT_WORK(&lt9611uxc->work, lt9611uxc_hpd_work);
>  
> -	ret = request_threaded_irq(client->irq, NULL,
> -				   lt9611uxc_irq_thread_handler,
> -				   IRQF_ONESHOT, "lt9611uxc", lt9611uxc);
> +	ret = devm_request_threaded_irq(dev, client->irq, NULL,
> +					lt9611uxc_irq_thread_handler,
> +					IRQF_ONESHOT, "lt9611uxc", lt9611uxc);

This makes interrupt being registered until the _end_ of the
lt9611uxc_remove() (or lt9611uxc_probe() in case of probe error). Are
you sure that the code can cope with the stray IRQs being delivered
during or right after lt9611uxc_remove()?

>  	if (ret) {
>  		dev_err(dev, "failed to request irq\n");
>  		goto err_disable_regulators;
> @@ -892,7 +892,6 @@ static int lt9611uxc_probe(struct i2c_client *client)
>  	return 0;
>  
>  err_remove_bridge:
> -	free_irq(client->irq, lt9611uxc);
>  	cancel_work_sync(&lt9611uxc->work);
>  	drm_bridge_remove(&lt9611uxc->bridge);
>  
> @@ -910,7 +909,6 @@ static void lt9611uxc_remove(struct i2c_client *client)
>  {
>  	struct lt9611uxc *lt9611uxc = i2c_get_clientdata(client);
>  
> -	free_irq(client->irq, lt9611uxc);
>  	cancel_work_sync(&lt9611uxc->work);
>  	lt9611uxc_audio_exit(lt9611uxc);
>  	drm_bridge_remove(&lt9611uxc->bridge);
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-01-07 13:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-07  3:07 [PATCH] drm/bridge: lontium-lt9611uxc: change to use devm_request_threaded_irq Vladimir Yakovlev
2026-01-07  9:06 ` Luca Ceresoli
2026-01-07 13:24 ` Dmitry Baryshkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox