]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Revert "drm/bridge: lt9611uxc: fix the race in the error path"
authorAmit Pundir <amit.pundir@linaro.org>
Tue, 19 Dec 2023 10:11:16 +0000 (15:41 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Dec 2023 09:42:00 +0000 (10:42 +0100)
This reverts commit d0d01bb4a56093fa214c0949e9e7ccb9fb437795.

This and the dependent fixes broke display on RB5.

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/bridge/lontium-lt9611uxc.c

index 2a848e14181bdd5c551c8eb2dc1f01e58f67eca8..1e33b3150bdc54e95ca0a5c857fac2cd13e25451 100644 (file)
@@ -927,9 +927,9 @@ retry:
        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;
@@ -965,8 +965,6 @@ retry:
        return lt9611uxc_audio_init(dev, lt9611uxc);
 
 err_remove_bridge:
-       free_irq(client->irq, lt9611uxc);
-       cancel_work_sync(&lt9611uxc->work);
        drm_bridge_remove(&lt9611uxc->bridge);
 
 err_disable_regulators:
@@ -983,7 +981,7 @@ static int lt9611uxc_remove(struct i2c_client *client)
 {
        struct lt9611uxc *lt9611uxc = i2c_get_clientdata(client);
 
-       free_irq(client->irq, lt9611uxc);
+       disable_irq(client->irq);
        cancel_work_sync(&lt9611uxc->work);
        lt9611uxc_audio_exit(lt9611uxc);
        drm_bridge_remove(&lt9611uxc->bridge);