mbox series

[00/19] drm/bridge: Convert to platform remove callback returning void

Message ID 20230318190804.234610-1-u.kleine-koenig@pengutronix.de (mailing list archive)
Headers show
Series drm/bridge: Convert to platform remove callback returning void | expand

Message

Uwe Kleine-König March 18, 2023, 7:07 p.m. UTC
Hello,

this series adapts the platform drivers below drivers/gpu/drm/bridge to use the
.remove_new() callback. Compared to the traditional .remove() callback
.remove_new() returns no value. This is a good thing because the driver core
doesn't (and cannot) cope for errors during remove. The only effect of a
non-zero return value in .remove() is that the driver core emits a warning. The
device is removed anyhow and an early return from .remove() usually yields a
resource leak.

By changing the remove callback to return void driver authors cannot
reasonably assume any more that there is some kind of cleanup later.

The first patch simplifies the cdns-mhdp8546 driver to return zero in its
remove callback unconditionally and thenn all drivers are trivially converted
using coccinelle.

Only patch #3 depends on patch #1, the other are pairwise independant and can
be applied individually.

Best regards
Uwe

Uwe Kleine-König (19):
  drm/bridge: cdns-mhdp8546: Improve error reporting in remove callback
  drm/bridge: cdns-dsi: Convert to platform remove callback returning
    void
  drm/bridge: cdns-mhdp8546: Convert to platform remove callback
    returning void
  drm/bridge: display-connector: Convert to platform remove callback
    returning void
  drm/bridge: fsl-ldb: Convert to platform remove callback returning
    void
  drm/bridge: imx8qm-ldb: Convert to platform remove callback returning
    void
  drm/bridge: imx8qxp-ldb: Convert to platform remove callback returning
    void
  drm/bridge: imx8qxp-pixel-combiner: Convert to platform remove
    callback returning void
  drm/bridge: imx8qxp-pixel-link: Convert to platform remove callback
    returning void
  drm/bridge: imx8qxp-pxl2dpi: Convert to platform remove callback
    returning void
  drm/bridge: lvds-codec: Convert to platform remove callback returning
    void
  drm/bridge: nwl-dsi: Convert to platform remove callback returning
    void
  drm/bridge: simple-bridg: Convert to platform remove callback
    returning void
  drm/bridge: dw-hdmi-ahb-audio: Convert to platform remove callback
    returning void
  drm/bridge: dw-hdmi-cec: Convert to platform remove callback returning
    void
  drm/bridge: dw-hdmi-gp-audio: Convert to platform remove callback
    returning void
  drm/bridge: dw-hdmi-i2s-audio: Convert to platform remove callback
    returning void
  drm/bridge: thc63lvd1024: Convert to platform remove callback
    returning void
  drm/bridge: ti-tfp410: Convert to platform remove callback returning
    void

 .../gpu/drm/bridge/cadence/cdns-dsi-core.c    |  6 ++---
 .../drm/bridge/cadence/cdns-mhdp8546-core.c   | 22 +++++++++----------
 drivers/gpu/drm/bridge/display-connector.c    |  6 ++---
 drivers/gpu/drm/bridge/fsl-ldb.c              |  6 ++---
 drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c   |  6 ++---
 drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c  |  6 ++---
 .../drm/bridge/imx/imx8qxp-pixel-combiner.c   |  6 ++---
 .../gpu/drm/bridge/imx/imx8qxp-pixel-link.c   |  6 ++---
 drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c  |  6 ++---
 drivers/gpu/drm/bridge/lvds-codec.c           |  6 ++---
 drivers/gpu/drm/bridge/nwl-dsi.c              |  5 ++---
 drivers/gpu/drm/bridge/simple-bridge.c        |  6 ++---
 .../drm/bridge/synopsys/dw-hdmi-ahb-audio.c   |  6 ++---
 drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c |  6 ++---
 .../drm/bridge/synopsys/dw-hdmi-gp-audio.c    |  6 ++---
 .../drm/bridge/synopsys/dw-hdmi-i2s-audio.c   |  6 ++---
 drivers/gpu/drm/bridge/thc63lvd1024.c         |  6 ++---
 drivers/gpu/drm/bridge/ti-tfp410.c            |  6 ++---
 18 files changed, 44 insertions(+), 79 deletions(-)


base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6

Comments

Laurent Pinchart March 19, 2023, 1:14 p.m. UTC | #1
Hi Uwe,

Thank you for the patches.

On Sat, Mar 18, 2023 at 08:07:45PM +0100, Uwe Kleine-König wrote:
> Hello,
> 
> this series adapts the platform drivers below drivers/gpu/drm/bridge to use the
> .remove_new() callback. Compared to the traditional .remove() callback
> .remove_new() returns no value. This is a good thing because the driver core
> doesn't (and cannot) cope for errors during remove. The only effect of a
> non-zero return value in .remove() is that the driver core emits a warning. The
> device is removed anyhow and an early return from .remove() usually yields a
> resource leak.
> 
> By changing the remove callback to return void driver authors cannot
> reasonably assume any more that there is some kind of cleanup later.
> 
> The first patch simplifies the cdns-mhdp8546 driver to return zero in its
> remove callback unconditionally and thenn all drivers are trivially converted
> using coccinelle.
> 
> Only patch #3 depends on patch #1, the other are pairwise independant and can
> be applied individually.

For patches 02/19 to 19/19,

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

> Uwe Kleine-König (19):
>   drm/bridge: cdns-mhdp8546: Improve error reporting in remove callback
>   drm/bridge: cdns-dsi: Convert to platform remove callback returning
>     void
>   drm/bridge: cdns-mhdp8546: Convert to platform remove callback
>     returning void
>   drm/bridge: display-connector: Convert to platform remove callback
>     returning void
>   drm/bridge: fsl-ldb: Convert to platform remove callback returning
>     void
>   drm/bridge: imx8qm-ldb: Convert to platform remove callback returning
>     void
>   drm/bridge: imx8qxp-ldb: Convert to platform remove callback returning
>     void
>   drm/bridge: imx8qxp-pixel-combiner: Convert to platform remove
>     callback returning void
>   drm/bridge: imx8qxp-pixel-link: Convert to platform remove callback
>     returning void
>   drm/bridge: imx8qxp-pxl2dpi: Convert to platform remove callback
>     returning void
>   drm/bridge: lvds-codec: Convert to platform remove callback returning
>     void
>   drm/bridge: nwl-dsi: Convert to platform remove callback returning
>     void
>   drm/bridge: simple-bridg: Convert to platform remove callback
>     returning void
>   drm/bridge: dw-hdmi-ahb-audio: Convert to platform remove callback
>     returning void
>   drm/bridge: dw-hdmi-cec: Convert to platform remove callback returning
>     void
>   drm/bridge: dw-hdmi-gp-audio: Convert to platform remove callback
>     returning void
>   drm/bridge: dw-hdmi-i2s-audio: Convert to platform remove callback
>     returning void
>   drm/bridge: thc63lvd1024: Convert to platform remove callback
>     returning void
>   drm/bridge: ti-tfp410: Convert to platform remove callback returning
>     void
> 
>  .../gpu/drm/bridge/cadence/cdns-dsi-core.c    |  6 ++---
>  .../drm/bridge/cadence/cdns-mhdp8546-core.c   | 22 +++++++++----------
>  drivers/gpu/drm/bridge/display-connector.c    |  6 ++---
>  drivers/gpu/drm/bridge/fsl-ldb.c              |  6 ++---
>  drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c   |  6 ++---
>  drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c  |  6 ++---
>  .../drm/bridge/imx/imx8qxp-pixel-combiner.c   |  6 ++---
>  .../gpu/drm/bridge/imx/imx8qxp-pixel-link.c   |  6 ++---
>  drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c  |  6 ++---
>  drivers/gpu/drm/bridge/lvds-codec.c           |  6 ++---
>  drivers/gpu/drm/bridge/nwl-dsi.c              |  5 ++---
>  drivers/gpu/drm/bridge/simple-bridge.c        |  6 ++---
>  .../drm/bridge/synopsys/dw-hdmi-ahb-audio.c   |  6 ++---
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c |  6 ++---
>  .../drm/bridge/synopsys/dw-hdmi-gp-audio.c    |  6 ++---
>  .../drm/bridge/synopsys/dw-hdmi-i2s-audio.c   |  6 ++---
>  drivers/gpu/drm/bridge/thc63lvd1024.c         |  6 ++---
>  drivers/gpu/drm/bridge/ti-tfp410.c            |  6 ++---
>  18 files changed, 44 insertions(+), 79 deletions(-)
> 
> 
> base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
Neil Armstrong March 20, 2023, 10:54 a.m. UTC | #2
Hi,

On Sat, 18 Mar 2023 20:07:45 +0100, Uwe Kleine-König wrote:
> this series adapts the platform drivers below drivers/gpu/drm/bridge to use the
> .remove_new() callback. Compared to the traditional .remove() callback
> .remove_new() returns no value. This is a good thing because the driver core
> doesn't (and cannot) cope for errors during remove. The only effect of a
> non-zero return value in .remove() is that the driver core emits a warning. The
> device is removed anyhow and an early return from .remove() usually yields a
> resource leak.
> 
> [...]

Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)

[02/19] drm/bridge: cdns-dsi: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=d5701d8f5210f8c70ffd1b51283b2373573e7b5a
[04/19] drm/bridge: display-connector: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=d1837136d184dda0585a687c614a9117cc87ad27
[05/19] drm/bridge: fsl-ldb: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=be5c6b177229c5cb40f3fef785250afbfd669175
[06/19] drm/bridge: imx8qm-ldb: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=04751a061ea055c4fa264f20f4558073c3d8fb2e
[07/19] drm/bridge: imx8qxp-ldb: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=3a39841322be5502f5355a558617f0a56b2b3ad2
[08/19] drm/bridge: imx8qxp-pixel-combiner: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=b931c166c47207c8c7bc7eda6c8881dfe0241389
[09/19] drm/bridge: imx8qxp-pixel-link: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=2b438065c3e538844a3b2b56f567303020bf97de
[10/19] drm/bridge: imx8qxp-pxl2dpi: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=23a92abbf3ad44058b5d3cf57937cfb9de972c05
[11/19] drm/bridge: lvds-codec: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=f328e96b764a603b3b70f0e9ef6ee052a78ed2ad
[12/19] drm/bridge: nwl-dsi: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=6780b94d8ed37a0f453a5bc90821ea669ac3c0d2
[13/19] drm/bridge: simple-bridg: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=3fce4c948e2b73ba6f6f2aa7e1c2f101b997e192
[14/19] drm/bridge: dw-hdmi-ahb-audio: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=e85f436824f2e2e067c0a151e954cb403b483234
[15/19] drm/bridge: dw-hdmi-cec: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=8891698273b125e57d0d2b6a91451bac06e968be
[16/19] drm/bridge: dw-hdmi-gp-audio: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=2b9efaed4e4045a40944265f99f52b232df3347f
[17/19] drm/bridge: dw-hdmi-i2s-audio: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=ed58ee126c4da81af79ab40b7c6508a7100c7eac
[18/19] drm/bridge: thc63lvd1024: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=5e3ea76492265fdbadd7a58963ff2a3a2e2e8be4
[19/19] drm/bridge: ti-tfp410: Convert to platform remove callback returning void
        https://cgit.freedesktop.org/drm/drm-misc/commit/?id=67fcd5d2f3ec364cb7af2c307ed1999bedebb606
Uwe Kleine-König May 9, 2023, 6:07 a.m. UTC | #3
Hello Neil,

On Mon, Mar 20, 2023 at 11:54:12AM +0100, Neil Armstrong wrote:
> On Sat, 18 Mar 2023 20:07:45 +0100, Uwe Kleine-König wrote:
> > this series adapts the platform drivers below drivers/gpu/drm/bridge to use the
> > .remove_new() callback. Compared to the traditional .remove() callback
> > .remove_new() returns no value. This is a good thing because the driver core
> > doesn't (and cannot) cope for errors during remove. The only effect of a
> > non-zero return value in .remove() is that the driver core emits a warning. The
> > device is removed anyhow and an early return from .remove() usually yields a
> > resource leak.
> > 
> > [...]
> 
> Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
> 
> [02/19] drm/bridge: cdns-dsi: Convert to platform remove callback returning void
>         https://cgit.freedesktop.org/drm/drm-misc/commit/?id=d5701d8f5210f8c70ffd1b51283b2373573e7b5a
> [04/19] drm/bridge: display-connector: Convert to platform remove callback returning void
>         https://cgit.freedesktop.org/drm/drm-misc/commit/?id=d1837136d184dda0585a687c614a9117cc87ad27
> [05/19] drm/bridge: fsl-ldb: Convert to platform remove callback returning void
>         https://cgit.freedesktop.org/drm/drm-misc/commit/?id=be5c6b177229c5cb40f3fef785250afbfd669175
> [...]

I wonder what made you skip patches #1 and #3. I got some feedback by
Laurent for patch #1. In the end it was Laurent's "I don't have a string
preference here." vs me thinking that the patch is good as is. Was that
the reason to skip it? Patch #3 depends on patch #1.

Would it help to resent?

Best regards
Uwe