2022-06-01 23:36:17

by Bjorn Andersson

[permalink] [raw]
Subject: [PATCH] drm/bridge: lt9611uxc: Cancel only driver's work

During device remove care needs to be taken that no work is pending
before it removes the underlying DRM bridge etc, but this can be done on
the specific work rather than waiting for the flush of the system-wide
workqueue.

Fixes: bc6fa8676ebb ("drm/bridge/lontium-lt9611uxc: move HPD notification out of IRQ handler")
Signed-off-by: Bjorn Andersson <[email protected]>
---
drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
index 3d62e6bf6892..310b3b194491 100644
--- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
+++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
@@ -982,7 +982,7 @@ static int lt9611uxc_remove(struct i2c_client *client)
struct lt9611uxc *lt9611uxc = i2c_get_clientdata(client);

disable_irq(client->irq);
- flush_scheduled_work();
+ cancel_work_sync(&lt9611uxc->work);
lt9611uxc_audio_exit(lt9611uxc);
drm_bridge_remove(&lt9611uxc->bridge);

--
2.35.1



2022-06-08 03:32:58

by Robert Foss

[permalink] [raw]
Subject: Re: [PATCH] drm/bridge: lt9611uxc: Cancel only driver's work

On Tue, 7 Jun 2022 at 14:32, Neil Armstrong <[email protected]> wrote:
>
> On 02/06/2022 01:38, Bjorn Andersson wrote:
> > During device remove care needs to be taken that no work is pending
> > before it removes the underlying DRM bridge etc, but this can be done on
> > the specific work rather than waiting for the flush of the system-wide
> > workqueue.
> >
> > Fixes: bc6fa8676ebb ("drm/bridge/lontium-lt9611uxc: move HPD notification out of IRQ handler")
> > Signed-off-by: Bjorn Andersson <[email protected]>
> > ---
> > drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> > index 3d62e6bf6892..310b3b194491 100644
> > --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> > +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> > @@ -982,7 +982,7 @@ static int lt9611uxc_remove(struct i2c_client *client)
> > struct lt9611uxc *lt9611uxc = i2c_get_clientdata(client);
> >
> > disable_irq(client->irq);
> > - flush_scheduled_work();
> > + cancel_work_sync(&lt9611uxc->work);
> > lt9611uxc_audio_exit(lt9611uxc);
> > drm_bridge_remove(&lt9611uxc->bridge);
> >
>
> Reviewed-by: Neil Armstrong <[email protected]>

Applied to drm-misc-next.

2022-06-08 04:38:47

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH] drm/bridge: lt9611uxc: Cancel only driver's work

On 02/06/2022 01:38, Bjorn Andersson wrote:
> During device remove care needs to be taken that no work is pending
> before it removes the underlying DRM bridge etc, but this can be done on
> the specific work rather than waiting for the flush of the system-wide
> workqueue.
>
> Fixes: bc6fa8676ebb ("drm/bridge/lontium-lt9611uxc: move HPD notification out of IRQ handler")
> Signed-off-by: Bjorn Andersson <[email protected]>
> ---
> drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> index 3d62e6bf6892..310b3b194491 100644
> --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
> @@ -982,7 +982,7 @@ static int lt9611uxc_remove(struct i2c_client *client)
> struct lt9611uxc *lt9611uxc = i2c_get_clientdata(client);
>
> disable_irq(client->irq);
> - flush_scheduled_work();
> + cancel_work_sync(&lt9611uxc->work);
> lt9611uxc_audio_exit(lt9611uxc);
> drm_bridge_remove(&lt9611uxc->bridge);
>

Reviewed-by: Neil Armstrong <[email protected]>