]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm: convert many bridge drivers from devm_kzalloc() to devm_drm_bridge_alloc() API
authorLuca Ceresoli <luca.ceresoli@bootlin.com>
Fri, 9 May 2025 13:53:28 +0000 (15:53 +0200)
committerLuca Ceresoli <luca.ceresoli@bootlin.com>
Fri, 23 May 2025 13:03:47 +0000 (15:03 +0200)
commit9c399719cfb98fd92c7b76dcd57098e5e3ca5cda
tree87cf5104499b77f6459c7beeb4c961d099e6f438
parent9528e54198f29548b18b0a5b343a31724e83c68b
drm: convert many bridge drivers from devm_kzalloc() to devm_drm_bridge_alloc() API

devm_drm_bridge_alloc() is the new API to be used for allocating (and
partially initializing) a private driver struct embedding a struct
drm_bridge.

For many drivers having a simple code flow in the probe function, this
commit does a mass conversion automatically with the following semantic
patch. The changes have been reviewed manually for correctness as well as
to find any false positives.

The patch has been applied with the explicit exclusion of bridge/panel.c,
handled by a separate patch.

After applying the semantic patch, manually fixed these issues:

 - 4 drivers need ERR_CAST() instead of PTR_ERR() as the function calling
   devm_drm_bridge_alloc() returns a pointer
 - re-added empty lines and comments that the script had removed but that
   should stay

  @@
  type T;
  identifier C;
  identifier BR;
  expression DEV;
  expression FUNCS;
  @@
  -T *C;
  +T *C;
   ...
  (
  -C = devm_kzalloc(DEV, ...);
  -if (!C)
  -    return -ENOMEM;
  +C = devm_drm_bridge_alloc(DEV, T, BR, FUNCS);
  +if (IS_ERR(C))
  +     return PTR_ERR(C);
  |
  -C = devm_kzalloc(DEV, ...);
  -if (!C)
  -    return ERR_PTR(-ENOMEM);
  +C = devm_drm_bridge_alloc(DEV, T, BR, FUNCS);
  +if (IS_ERR(C))
  +     return PTR_ERR(C);
  )
   ...
  -C->BR.funcs = FUNCS;

Reviewed-by: Manikandan Muralidharan <manikandan.m@microchip.com> # microchip-lvds.c
Reviewed-by: Douglas Anderson <dianders@chromium.org> # parade-ps8640
Tested-by: Douglas Anderson <dianders@chromium.org> # parade-ps8640
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250509-drm-bridge-convert-to-alloc-api-v3-2-b8bc1f16d7aa@bootlin.com
[Luca: fixed trivial patch conflict in adv7511_drv.c while applying]
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
49 files changed:
drivers/gpu/drm/adp/adp-mipi.c
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
drivers/gpu/drm/bridge/aux-bridge.c
drivers/gpu/drm/bridge/aux-hpd-bridge.c
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
drivers/gpu/drm/bridge/chipone-icn6211.c
drivers/gpu/drm/bridge/chrontel-ch7033.c
drivers/gpu/drm/bridge/cros-ec-anx7688.c
drivers/gpu/drm/bridge/fsl-ldb.c
drivers/gpu/drm/bridge/imx/imx-legacy-bridge.c
drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c
drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
drivers/gpu/drm/bridge/ite-it6263.c
drivers/gpu/drm/bridge/ite-it6505.c
drivers/gpu/drm/bridge/ite-it66121.c
drivers/gpu/drm/bridge/lontium-lt8912b.c
drivers/gpu/drm/bridge/lontium-lt9211.c
drivers/gpu/drm/bridge/lontium-lt9611.c
drivers/gpu/drm/bridge/lvds-codec.c
drivers/gpu/drm/bridge/microchip-lvds.c
drivers/gpu/drm/bridge/nwl-dsi.c
drivers/gpu/drm/bridge/parade-ps8622.c
drivers/gpu/drm/bridge/parade-ps8640.c
drivers/gpu/drm/bridge/sii9234.c
drivers/gpu/drm/bridge/sil-sii8620.c
drivers/gpu/drm/bridge/simple-bridge.c
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c
drivers/gpu/drm/bridge/tc358762.c
drivers/gpu/drm/bridge/tc358764.c
drivers/gpu/drm/bridge/tc358768.c
drivers/gpu/drm/bridge/tc358775.c
drivers/gpu/drm/bridge/thc63lvd1024.c
drivers/gpu/drm/bridge/ti-dlpc3433.c
drivers/gpu/drm/bridge/ti-tdp158.c
drivers/gpu/drm/bridge/ti-tfp410.c
drivers/gpu/drm/bridge/ti-tpd12s015.c
drivers/gpu/drm/mediatek/mtk_dp.c
drivers/gpu/drm/mediatek/mtk_dpi.c
drivers/gpu/drm/mediatek/mtk_dsi.c
drivers/gpu/drm/mediatek/mtk_hdmi.c
drivers/gpu/drm/meson/meson_encoder_cvbs.c
drivers/gpu/drm/meson/meson_encoder_dsi.c
drivers/gpu/drm/meson/meson_encoder_hdmi.c
drivers/gpu/drm/renesas/rcar-du/rcar_lvds.c
drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c