Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+201 -198
+4 -4
drivers/gpu/drm/adp/adp-mipi.c
··· 229 229 { 230 230 struct adp_mipi_drv_private *adp; 231 231 232 - adp = devm_kzalloc(&pdev->dev, sizeof(*adp), GFP_KERNEL); 233 - if (!adp) 234 - return -ENOMEM; 232 + adp = devm_drm_bridge_alloc(&pdev->dev, struct adp_mipi_drv_private, 233 + bridge, &adp_dsi_bridge_funcs); 234 + if (IS_ERR(adp)) 235 + return PTR_ERR(adp); 235 236 236 237 adp->mipi = devm_platform_ioremap_resource(pdev, 0); 237 238 if (IS_ERR(adp->mipi)) { ··· 242 241 243 242 adp->dsi.dev = &pdev->dev; 244 243 adp->dsi.ops = &adp_dsi_host_ops; 245 - adp->bridge.funcs = &adp_dsi_bridge_funcs; 246 244 adp->bridge.of_node = pdev->dev.of_node; 247 245 adp->bridge.type = DRM_MODE_CONNECTOR_DSI; 248 246 dev_set_drvdata(&pdev->dev, adp);
+4 -4
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
··· 1153 1153 if (!dev->of_node) 1154 1154 return -EINVAL; 1155 1155 1156 - adv7511 = devm_kzalloc(dev, sizeof(*adv7511), GFP_KERNEL); 1157 - if (!adv7511) 1158 - return -ENOMEM; 1156 + adv7511 = devm_drm_bridge_alloc(dev, struct adv7511, bridge, 1157 + &adv7511_bridge_funcs); 1158 + if (IS_ERR(adv7511)) 1159 + return PTR_ERR(adv7511); 1159 1160 1160 1161 adv7511->i2c_main = i2c; 1161 1162 adv7511->powered = false; ··· 1256 1255 regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL, 1257 1256 ADV7511_CEC_CTRL_POWER_DOWN); 1258 1257 1259 - adv7511->bridge.funcs = &adv7511_bridge_funcs; 1260 1258 adv7511->bridge.ops = DRM_BRIDGE_OP_DETECT | 1261 1259 DRM_BRIDGE_OP_EDID | 1262 1260 DRM_BRIDGE_OP_HDMI |
+4 -5
drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
··· 1193 1193 bool found = false; 1194 1194 int err; 1195 1195 1196 - anx78xx = devm_kzalloc(&client->dev, sizeof(*anx78xx), GFP_KERNEL); 1197 - if (!anx78xx) 1198 - return -ENOMEM; 1196 + anx78xx = devm_drm_bridge_alloc(&client->dev, struct anx78xx, bridge, 1197 + &anx78xx_bridge_funcs); 1198 + if (IS_ERR(anx78xx)) 1199 + return PTR_ERR(anx78xx); 1199 1200 1200 1201 pdata = &anx78xx->pdata; 1201 1202 ··· 1306 1305 DRM_ERROR("Failed to request INTP threaded IRQ: %d\n", err); 1307 1306 goto err_poweroff; 1308 1307 } 1309 - 1310 - anx78xx->bridge.funcs = &anx78xx_bridge_funcs; 1311 1308 1312 1309 drm_bridge_add(&anx78xx->bridge); 1313 1310
+4 -4
drivers/gpu/drm/bridge/aux-bridge.c
··· 109 109 { 110 110 struct drm_aux_bridge_data *data; 111 111 112 - data = devm_kzalloc(&auxdev->dev, sizeof(*data), GFP_KERNEL); 113 - if (!data) 114 - return -ENOMEM; 112 + data = devm_drm_bridge_alloc(&auxdev->dev, struct drm_aux_bridge_data, 113 + bridge, &drm_aux_bridge_funcs); 114 + if (IS_ERR(data)) 115 + return PTR_ERR(data); 115 116 116 117 data->dev = &auxdev->dev; 117 118 data->next_bridge = devm_drm_of_get_bridge(&auxdev->dev, auxdev->dev.of_node, 0, 0); ··· 120 119 return dev_err_probe(&auxdev->dev, PTR_ERR(data->next_bridge), 121 120 "failed to acquire drm_bridge\n"); 122 121 123 - data->bridge.funcs = &drm_aux_bridge_funcs; 124 122 data->bridge.of_node = data->dev->of_node; 125 123 126 124 /* passthrough data, allow everything */
+5 -4
drivers/gpu/drm/bridge/aux-hpd-bridge.c
··· 171 171 { 172 172 struct drm_aux_hpd_bridge_data *data; 173 173 174 - data = devm_kzalloc(&auxdev->dev, sizeof(*data), GFP_KERNEL); 175 - if (!data) 176 - return -ENOMEM; 174 + data = devm_drm_bridge_alloc(&auxdev->dev, 175 + struct drm_aux_hpd_bridge_data, bridge, 176 + &drm_aux_hpd_bridge_funcs); 177 + if (IS_ERR(data)) 178 + return PTR_ERR(data); 177 179 178 180 data->dev = &auxdev->dev; 179 - data->bridge.funcs = &drm_aux_hpd_bridge_funcs; 180 181 data->bridge.of_node = dev_get_platdata(data->dev); 181 182 data->bridge.ops = DRM_BRIDGE_OP_HPD; 182 183 data->bridge.type = id->driver_data;
+4 -4
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
··· 2389 2389 int ret; 2390 2390 int irq; 2391 2391 2392 - mhdp = devm_kzalloc(dev, sizeof(*mhdp), GFP_KERNEL); 2393 - if (!mhdp) 2394 - return -ENOMEM; 2392 + mhdp = devm_drm_bridge_alloc(dev, struct cdns_mhdp_device, bridge, 2393 + &cdns_mhdp_bridge_funcs); 2394 + if (IS_ERR(mhdp)) 2395 + return PTR_ERR(mhdp); 2395 2396 2396 2397 clk = devm_clk_get_enabled(dev, NULL); 2397 2398 if (IS_ERR(clk)) { ··· 2482 2481 mhdp->display_fmt.bpc = 8; 2483 2482 2484 2483 mhdp->bridge.of_node = pdev->dev.of_node; 2485 - mhdp->bridge.funcs = &cdns_mhdp_bridge_funcs; 2486 2484 mhdp->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | 2487 2485 DRM_BRIDGE_OP_HPD; 2488 2486 mhdp->bridge.type = DRM_MODE_CONNECTOR_DisplayPort;
+4 -4
drivers/gpu/drm/bridge/chipone-icn6211.c
··· 691 691 struct chipone *icn; 692 692 int ret; 693 693 694 - icn = devm_kzalloc(dev, sizeof(struct chipone), GFP_KERNEL); 695 - if (!icn) 696 - return -ENOMEM; 694 + icn = devm_drm_bridge_alloc(dev, struct chipone, bridge, 695 + &chipone_bridge_funcs); 696 + if (IS_ERR(icn)) 697 + return PTR_ERR(icn); 697 698 698 699 icn->dev = dev; 699 700 ··· 702 701 if (ret) 703 702 return ret; 704 703 705 - icn->bridge.funcs = &chipone_bridge_funcs; 706 704 icn->bridge.type = DRM_MODE_CONNECTOR_DPI; 707 705 icn->bridge.of_node = dev->of_node; 708 706
+4 -4
drivers/gpu/drm/bridge/chrontel-ch7033.c
··· 536 536 unsigned int val; 537 537 int ret; 538 538 539 - priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 540 - if (!priv) 541 - return -ENOMEM; 539 + priv = devm_drm_bridge_alloc(dev, struct ch7033_priv, bridge, 540 + &ch7033_bridge_funcs); 541 + if (IS_ERR(priv)) 542 + return PTR_ERR(priv); 542 543 543 544 dev_set_drvdata(dev, priv); 544 545 ··· 576 575 } 577 576 578 577 INIT_LIST_HEAD(&priv->bridge.list); 579 - priv->bridge.funcs = &ch7033_bridge_funcs; 580 578 priv->bridge.of_node = dev->of_node; 581 579 drm_bridge_add(&priv->bridge); 582 580
+4 -4
drivers/gpu/drm/bridge/cros-ec-anx7688.c
··· 103 103 u8 buffer[4]; 104 104 int ret; 105 105 106 - anx7688 = devm_kzalloc(dev, sizeof(*anx7688), GFP_KERNEL); 107 - if (!anx7688) 108 - return -ENOMEM; 106 + anx7688 = devm_drm_bridge_alloc(dev, struct cros_ec_anx7688, bridge, 107 + &cros_ec_anx7688_bridge_funcs); 108 + if (IS_ERR(anx7688)) 109 + return PTR_ERR(anx7688); 109 110 110 111 anx7688->client = client; 111 112 i2c_set_clientdata(client, anx7688); ··· 154 153 DRM_WARN("Old ANX7688 FW version (0x%04x), not filtering\n", 155 154 fw_version); 156 155 157 - anx7688->bridge.funcs = &cros_ec_anx7688_bridge_funcs; 158 156 drm_bridge_add(&anx7688->bridge); 159 157 160 158 return 0;
+3 -4
drivers/gpu/drm/bridge/fsl-ldb.c
··· 298 298 struct fsl_ldb *fsl_ldb; 299 299 int dual_link; 300 300 301 - fsl_ldb = devm_kzalloc(dev, sizeof(*fsl_ldb), GFP_KERNEL); 302 - if (!fsl_ldb) 303 - return -ENOMEM; 301 + fsl_ldb = devm_drm_bridge_alloc(dev, struct fsl_ldb, bridge, &funcs); 302 + if (IS_ERR(fsl_ldb)) 303 + return PTR_ERR(fsl_ldb); 304 304 305 305 fsl_ldb->devdata = of_device_get_match_data(dev); 306 306 if (!fsl_ldb->devdata) 307 307 return -EINVAL; 308 308 309 309 fsl_ldb->dev = &pdev->dev; 310 - fsl_ldb->bridge.funcs = &funcs; 311 310 fsl_ldb->bridge.of_node = dev->of_node; 312 311 313 312 fsl_ldb->clk = devm_clk_get(dev, "ldb");
+4 -4
drivers/gpu/drm/bridge/imx/imx-legacy-bridge.c
··· 59 59 struct imx_legacy_bridge *imx_bridge; 60 60 int ret; 61 61 62 - imx_bridge = devm_kzalloc(dev, sizeof(*imx_bridge), GFP_KERNEL); 63 - if (!imx_bridge) 64 - return ERR_PTR(-ENOMEM); 62 + imx_bridge = devm_drm_bridge_alloc(dev, struct imx_legacy_bridge, 63 + base, &imx_legacy_bridge_funcs); 64 + if (IS_ERR(imx_bridge)) 65 + return ERR_CAST(imx_bridge); 65 66 66 67 ret = of_get_drm_display_mode(np, 67 68 &imx_bridge->mode, ··· 73 72 74 73 imx_bridge->mode.type |= DRM_MODE_TYPE_DRIVER; 75 74 76 - imx_bridge->base.funcs = &imx_legacy_bridge_funcs; 77 75 imx_bridge->base.of_node = np; 78 76 imx_bridge->base.ops = DRM_BRIDGE_OP_MODES; 79 77 imx_bridge->base.type = type;
+4 -4
drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c
··· 140 140 struct device_node *remote; 141 141 struct imx8mp_hdmi_pvi *pvi; 142 142 143 - pvi = devm_kzalloc(&pdev->dev, sizeof(*pvi), GFP_KERNEL); 144 - if (!pvi) 145 - return -ENOMEM; 143 + pvi = devm_drm_bridge_alloc(&pdev->dev, struct imx8mp_hdmi_pvi, 144 + bridge, &imx_hdmi_pvi_bridge_funcs); 145 + if (IS_ERR(pvi)) 146 + return PTR_ERR(pvi); 146 147 147 148 platform_set_drvdata(pdev, pvi); 148 149 pvi->dev = &pdev->dev; ··· 167 166 pm_runtime_enable(&pdev->dev); 168 167 169 168 /* Register the bridge. */ 170 - pvi->bridge.funcs = &imx_hdmi_pvi_bridge_funcs; 171 169 pvi->bridge.of_node = pdev->dev.of_node; 172 170 pvi->bridge.timings = pvi->next_bridge->timings; 173 171
+4 -4
drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
··· 327 327 struct device_node *np = dev->of_node; 328 328 int ret; 329 329 330 - pl = devm_kzalloc(dev, sizeof(*pl), GFP_KERNEL); 331 - if (!pl) 332 - return -ENOMEM; 330 + pl = devm_drm_bridge_alloc(dev, struct imx8qxp_pixel_link, bridge, 331 + &imx8qxp_pixel_link_bridge_funcs); 332 + if (IS_ERR(pl)) 333 + return PTR_ERR(pl); 333 334 334 335 ret = imx_scu_get_handle(&pl->ipc_handle); 335 336 if (ret) { ··· 385 384 platform_set_drvdata(pdev, pl); 386 385 387 386 pl->bridge.driver_private = pl; 388 - pl->bridge.funcs = &imx8qxp_pixel_link_bridge_funcs; 389 387 pl->bridge.of_node = np; 390 388 391 389 drm_bridge_add(&pl->bridge);
+4 -4
drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
··· 392 392 struct device_node *np = dev->of_node; 393 393 int ret; 394 394 395 - p2d = devm_kzalloc(dev, sizeof(*p2d), GFP_KERNEL); 396 - if (!p2d) 397 - return -ENOMEM; 395 + p2d = devm_drm_bridge_alloc(dev, struct imx8qxp_pxl2dpi, bridge, 396 + &imx8qxp_pxl2dpi_bridge_funcs); 397 + if (IS_ERR(p2d)) 398 + return PTR_ERR(p2d); 398 399 399 400 p2d->regmap = syscon_node_to_regmap(np->parent); 400 401 if (IS_ERR(p2d->regmap)) { ··· 442 441 pm_runtime_enable(dev); 443 442 444 443 p2d->bridge.driver_private = p2d; 445 - p2d->bridge.funcs = &imx8qxp_pxl2dpi_bridge_funcs; 446 444 p2d->bridge.of_node = np; 447 445 448 446 drm_bridge_add(&p2d->bridge);
+4 -4
drivers/gpu/drm/bridge/ite-it6263.c
··· 816 816 struct it6263 *it; 817 817 int ret; 818 818 819 - it = devm_kzalloc(dev, sizeof(*it), GFP_KERNEL); 820 - if (!it) 821 - return -ENOMEM; 819 + it = devm_drm_bridge_alloc(dev, struct it6263, bridge, 820 + &it6263_bridge_funcs); 821 + if (IS_ERR(it)) 822 + return PTR_ERR(it); 822 823 823 824 it->dev = dev; 824 825 it->hdmi_i2c = client; ··· 867 866 868 867 i2c_set_clientdata(client, it); 869 868 870 - it->bridge.funcs = &it6263_bridge_funcs; 871 869 it->bridge.of_node = dev->of_node; 872 870 /* IT6263 chip doesn't support HPD interrupt. */ 873 871 it->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID |
+4 -4
drivers/gpu/drm/bridge/ite-it6505.c
··· 3583 3583 struct extcon_dev *extcon; 3584 3584 int err; 3585 3585 3586 - it6505 = devm_kzalloc(&client->dev, sizeof(*it6505), GFP_KERNEL); 3587 - if (!it6505) 3588 - return -ENOMEM; 3586 + it6505 = devm_drm_bridge_alloc(&client->dev, struct it6505, bridge, 3587 + &it6505_bridge_funcs); 3588 + if (IS_ERR(it6505)) 3589 + return PTR_ERR(it6505); 3589 3590 3590 3591 mutex_init(&it6505->extcon_lock); 3591 3592 mutex_init(&it6505->mode_lock); ··· 3661 3660 it6505->aux.transfer = it6505_aux_transfer; 3662 3661 drm_dp_aux_init(&it6505->aux); 3663 3662 3664 - it6505->bridge.funcs = &it6505_bridge_funcs; 3665 3663 it6505->bridge.type = DRM_MODE_CONNECTOR_DisplayPort; 3666 3664 it6505->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | 3667 3665 DRM_BRIDGE_OP_HPD;
+4 -4
drivers/gpu/drm/bridge/ite-it66121.c
··· 1516 1516 return -ENXIO; 1517 1517 } 1518 1518 1519 - ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); 1520 - if (!ctx) 1521 - return -ENOMEM; 1519 + ctx = devm_drm_bridge_alloc(dev, struct it66121_ctx, bridge, 1520 + &it66121_bridge_funcs); 1521 + if (IS_ERR(ctx)) 1522 + return PTR_ERR(ctx); 1522 1523 1523 1524 ep = of_graph_get_endpoint_by_regs(dev->of_node, 0, 0); 1524 1525 if (!ep) ··· 1578 1577 return -ENODEV; 1579 1578 } 1580 1579 1581 - ctx->bridge.funcs = &it66121_bridge_funcs; 1582 1580 ctx->bridge.of_node = dev->of_node; 1583 1581 ctx->bridge.type = DRM_MODE_CONNECTOR_HDMIA; 1584 1582 ctx->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID;
+4 -4
drivers/gpu/drm/bridge/lontium-lt8912b.c
··· 761 761 int ret = 0; 762 762 struct device *dev = &client->dev; 763 763 764 - lt = devm_kzalloc(dev, sizeof(struct lt8912), GFP_KERNEL); 765 - if (!lt) 766 - return -ENOMEM; 764 + lt = devm_drm_bridge_alloc(dev, struct lt8912, bridge, 765 + &lt8912_bridge_funcs); 766 + if (IS_ERR(lt)) 767 + return PTR_ERR(lt); 767 768 768 769 lt->dev = dev; 769 770 lt->i2c_client[0] = client; ··· 779 778 780 779 i2c_set_clientdata(client, lt); 781 780 782 - lt->bridge.funcs = &lt8912_bridge_funcs; 783 781 lt->bridge.of_node = dev->of_node; 784 782 lt->bridge.ops = (DRM_BRIDGE_OP_EDID | 785 783 DRM_BRIDGE_OP_DETECT);
+3 -4
drivers/gpu/drm/bridge/lontium-lt9211.c
··· 727 727 struct lt9211 *ctx; 728 728 int ret; 729 729 730 - ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); 731 - if (!ctx) 732 - return -ENOMEM; 730 + ctx = devm_drm_bridge_alloc(dev, struct lt9211, bridge, &lt9211_funcs); 731 + if (IS_ERR(ctx)) 732 + return PTR_ERR(ctx); 733 733 734 734 ctx->dev = dev; 735 735 ··· 755 755 dev_set_drvdata(dev, ctx); 756 756 i2c_set_clientdata(client, ctx); 757 757 758 - ctx->bridge.funcs = &lt9211_funcs; 759 758 ctx->bridge.of_node = dev->of_node; 760 759 drm_bridge_add(&ctx->bridge); 761 760
+4 -4
drivers/gpu/drm/bridge/lontium-lt9611.c
··· 1072 1072 return -ENODEV; 1073 1073 } 1074 1074 1075 - lt9611 = devm_kzalloc(dev, sizeof(*lt9611), GFP_KERNEL); 1076 - if (!lt9611) 1077 - return -ENOMEM; 1075 + lt9611 = devm_drm_bridge_alloc(dev, struct lt9611, bridge, 1076 + &lt9611_bridge_funcs); 1077 + if (IS_ERR(lt9611)) 1078 + return PTR_ERR(lt9611); 1078 1079 1079 1080 lt9611->dev = dev; 1080 1081 lt9611->client = client; ··· 1128 1127 /* Disable Audio InfoFrame, enabled by default */ 1129 1128 regmap_update_bits(lt9611->regmap, 0x843d, LT9611_INFOFRAME_AUDIO, 0); 1130 1129 1131 - lt9611->bridge.funcs = &lt9611_bridge_funcs; 1132 1130 lt9611->bridge.of_node = client->dev.of_node; 1133 1131 lt9611->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | 1134 1132 DRM_BRIDGE_OP_HPD | DRM_BRIDGE_OP_MODES |
+4 -5
drivers/gpu/drm/bridge/lvds-codec.c
··· 118 118 u32 val; 119 119 int ret; 120 120 121 - lvds_codec = devm_kzalloc(dev, sizeof(*lvds_codec), GFP_KERNEL); 122 - if (!lvds_codec) 123 - return -ENOMEM; 121 + lvds_codec = devm_drm_bridge_alloc(dev, struct lvds_codec, bridge, 122 + &funcs); 123 + if (IS_ERR(lvds_codec)) 124 + return PTR_ERR(lvds_codec); 124 125 125 126 lvds_codec->dev = &pdev->dev; 126 127 lvds_codec->connector_type = (uintptr_t)of_device_get_match_data(dev); ··· 156 155 lvds_codec->connector_type); 157 156 if (IS_ERR(lvds_codec->panel_bridge)) 158 157 return PTR_ERR(lvds_codec->panel_bridge); 159 - 160 - lvds_codec->bridge.funcs = &funcs; 161 158 162 159 /* 163 160 * Decoder input LVDS format is a property of the decoder chip or even
+4 -4
drivers/gpu/drm/bridge/microchip-lvds.c
··· 157 157 if (!dev->of_node) 158 158 return -ENODEV; 159 159 160 - lvds = devm_kzalloc(&pdev->dev, sizeof(*lvds), GFP_KERNEL); 161 - if (!lvds) 162 - return -ENOMEM; 160 + lvds = devm_drm_bridge_alloc(&pdev->dev, struct mchp_lvds, bridge, 161 + &mchp_lvds_bridge_funcs); 162 + if (IS_ERR(lvds)) 163 + return PTR_ERR(lvds); 163 164 164 165 lvds->dev = dev; 165 166 ··· 193 192 194 193 lvds->bridge.of_node = dev->of_node; 195 194 lvds->bridge.type = DRM_MODE_CONNECTOR_LVDS; 196 - lvds->bridge.funcs = &mchp_lvds_bridge_funcs; 197 195 198 196 dev_set_drvdata(dev, lvds); 199 197 ret = devm_pm_runtime_enable(dev);
+4 -4
drivers/gpu/drm/bridge/nwl-dsi.c
··· 1149 1149 struct nwl_dsi *dsi; 1150 1150 int ret; 1151 1151 1152 - dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); 1153 - if (!dsi) 1154 - return -ENOMEM; 1152 + dsi = devm_drm_bridge_alloc(dev, struct nwl_dsi, bridge, 1153 + &nwl_dsi_bridge_funcs); 1154 + if (IS_ERR(dsi)) 1155 + return PTR_ERR(dsi); 1155 1156 1156 1157 dsi->dev = dev; 1157 1158 ··· 1181 1180 dsi->quirks = (uintptr_t)attr->data; 1182 1181 1183 1182 dsi->bridge.driver_private = dsi; 1184 - dsi->bridge.funcs = &nwl_dsi_bridge_funcs; 1185 1183 dsi->bridge.of_node = dev->of_node; 1186 1184 dsi->bridge.timings = &nwl_dsi_timings; 1187 1185 dsi->bridge.type = DRM_MODE_CONNECTOR_DSI;
+4 -4
drivers/gpu/drm/bridge/parade-ps8622.c
··· 449 449 struct drm_bridge *panel_bridge; 450 450 int ret; 451 451 452 - ps8622 = devm_kzalloc(dev, sizeof(*ps8622), GFP_KERNEL); 453 - if (!ps8622) 454 - return -ENOMEM; 452 + ps8622 = devm_drm_bridge_alloc(dev, struct ps8622_bridge, bridge, 453 + &ps8622_bridge_funcs); 454 + if (IS_ERR(ps8622)) 455 + return PTR_ERR(ps8622); 455 456 456 457 panel_bridge = devm_drm_of_get_bridge(dev, dev->of_node, 0, 0); 457 458 if (IS_ERR(panel_bridge)) ··· 510 509 ps8622->bl->props.brightness = PS8622_MAX_BRIGHTNESS; 511 510 } 512 511 513 - ps8622->bridge.funcs = &ps8622_bridge_funcs; 514 512 ps8622->bridge.type = DRM_MODE_CONNECTOR_LVDS; 515 513 ps8622->bridge.of_node = dev->of_node; 516 514 drm_bridge_add(&ps8622->bridge);
+4 -4
drivers/gpu/drm/bridge/parade-ps8640.c
··· 636 636 int ret; 637 637 u32 i; 638 638 639 - ps_bridge = devm_kzalloc(dev, sizeof(*ps_bridge), GFP_KERNEL); 640 - if (!ps_bridge) 641 - return -ENOMEM; 639 + ps_bridge = devm_drm_bridge_alloc(dev, struct ps8640, bridge, 640 + &ps8640_bridge_funcs); 641 + if (IS_ERR(ps_bridge)) 642 + return PTR_ERR(ps_bridge); 642 643 643 644 mutex_init(&ps_bridge->aux_lock); 644 645 ··· 663 662 if (IS_ERR(ps_bridge->gpio_reset)) 664 663 return PTR_ERR(ps_bridge->gpio_reset); 665 664 666 - ps_bridge->bridge.funcs = &ps8640_bridge_funcs; 667 665 ps_bridge->bridge.of_node = dev->of_node; 668 666 ps_bridge->bridge.type = DRM_MODE_CONNECTOR_eDP; 669 667
+4 -4
drivers/gpu/drm/bridge/sii9234.c
··· 888 888 struct device *dev = &client->dev; 889 889 int ret; 890 890 891 - ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); 892 - if (!ctx) 893 - return -ENOMEM; 891 + ctx = devm_drm_bridge_alloc(dev, struct sii9234, bridge, 892 + &sii9234_bridge_funcs); 893 + if (IS_ERR(ctx)) 894 + return PTR_ERR(ctx); 894 895 895 896 ctx->dev = dev; 896 897 mutex_init(&ctx->lock); ··· 922 921 923 922 i2c_set_clientdata(client, ctx); 924 923 925 - ctx->bridge.funcs = &sii9234_bridge_funcs; 926 924 ctx->bridge.of_node = dev->of_node; 927 925 drm_bridge_add(&ctx->bridge); 928 926
+4 -4
drivers/gpu/drm/bridge/sil-sii8620.c
··· 2291 2291 struct sii8620 *ctx; 2292 2292 int ret; 2293 2293 2294 - ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); 2295 - if (!ctx) 2296 - return -ENOMEM; 2294 + ctx = devm_drm_bridge_alloc(dev, struct sii8620, bridge, 2295 + &sii8620_bridge_funcs); 2296 + if (IS_ERR(ctx)) 2297 + return PTR_ERR(ctx); 2297 2298 2298 2299 ctx->dev = dev; 2299 2300 mutex_init(&ctx->lock); ··· 2337 2336 2338 2337 i2c_set_clientdata(client, ctx); 2339 2338 2340 - ctx->bridge.funcs = &sii8620_bridge_funcs; 2341 2339 ctx->bridge.of_node = dev->of_node; 2342 2340 drm_bridge_add(&ctx->bridge); 2343 2341
+4 -4
drivers/gpu/drm/bridge/simple-bridge.c
··· 168 168 struct simple_bridge *sbridge; 169 169 struct device_node *remote; 170 170 171 - sbridge = devm_kzalloc(&pdev->dev, sizeof(*sbridge), GFP_KERNEL); 172 - if (!sbridge) 173 - return -ENOMEM; 171 + sbridge = devm_drm_bridge_alloc(&pdev->dev, struct simple_bridge, 172 + bridge, &simple_bridge_bridge_funcs); 173 + if (IS_ERR(sbridge)) 174 + return PTR_ERR(sbridge); 174 175 175 176 sbridge->info = of_device_get_match_data(&pdev->dev); 176 177 ··· 205 204 "Unable to retrieve enable GPIO\n"); 206 205 207 206 /* Register the bridge. */ 208 - sbridge->bridge.funcs = &simple_bridge_bridge_funcs; 209 207 sbridge->bridge.of_node = pdev->dev.of_node; 210 208 sbridge->bridge.timings = sbridge->info->timings; 211 209
+4 -4
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
··· 1045 1045 return ERR_PTR(-ENODEV); 1046 1046 } 1047 1047 1048 - hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); 1049 - if (!hdmi) 1050 - return ERR_PTR(-ENOMEM); 1048 + hdmi = devm_drm_bridge_alloc(dev, struct dw_hdmi_qp, bridge, 1049 + &dw_hdmi_qp_bridge_funcs); 1050 + if (IS_ERR(hdmi)) 1051 + return ERR_CAST(hdmi); 1051 1052 1052 1053 hdmi->dev = dev; 1053 1054 ··· 1074 1073 return ERR_PTR(ret); 1075 1074 1076 1075 hdmi->bridge.driver_private = hdmi; 1077 - hdmi->bridge.funcs = &dw_hdmi_qp_bridge_funcs; 1078 1076 hdmi->bridge.ops = DRM_BRIDGE_OP_DETECT | 1079 1077 DRM_BRIDGE_OP_EDID | 1080 1078 DRM_BRIDGE_OP_HDMI |
+4 -4
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
··· 1194 1194 struct dw_mipi_dsi *dsi; 1195 1195 int ret; 1196 1196 1197 - dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); 1198 - if (!dsi) 1199 - return ERR_PTR(-ENOMEM); 1197 + dsi = devm_drm_bridge_alloc(dev, struct dw_mipi_dsi, bridge, 1198 + &dw_mipi_dsi_bridge_funcs); 1199 + if (IS_ERR(dsi)) 1200 + return ERR_CAST(dsi); 1200 1201 1201 1202 dsi->dev = dev; 1202 1203 dsi->plat_data = plat_data; ··· 1266 1265 } 1267 1266 1268 1267 dsi->bridge.driver_private = dsi; 1269 - dsi->bridge.funcs = &dw_mipi_dsi_bridge_funcs; 1270 1268 dsi->bridge.of_node = pdev->dev.of_node; 1271 1269 1272 1270 return dsi;
+4 -4
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c
··· 914 914 struct dw_mipi_dsi2 *dsi2; 915 915 int ret; 916 916 917 - dsi2 = devm_kzalloc(dev, sizeof(*dsi2), GFP_KERNEL); 918 - if (!dsi2) 919 - return ERR_PTR(-ENOMEM); 917 + dsi2 = devm_drm_bridge_alloc(dev, struct dw_mipi_dsi2, bridge, 918 + &dw_mipi_dsi2_bridge_funcs); 919 + if (IS_ERR(dsi2)) 920 + return ERR_CAST(dsi2); 920 921 921 922 dsi2->dev = dev; 922 923 dsi2->plat_data = plat_data; ··· 982 981 } 983 982 984 983 dsi2->bridge.driver_private = dsi2; 985 - dsi2->bridge.funcs = &dw_mipi_dsi2_bridge_funcs; 986 984 dsi2->bridge.of_node = pdev->dev.of_node; 987 985 988 986 return dsi2;
+4 -4
drivers/gpu/drm/bridge/tc358762.c
··· 265 265 struct tc358762 *ctx; 266 266 int ret; 267 267 268 - ctx = devm_kzalloc(dev, sizeof(struct tc358762), GFP_KERNEL); 269 - if (!ctx) 270 - return -ENOMEM; 268 + ctx = devm_drm_bridge_alloc(dev, struct tc358762, bridge, 269 + &tc358762_bridge_funcs); 270 + if (IS_ERR(ctx)) 271 + return PTR_ERR(ctx); 271 272 272 273 mipi_dsi_set_drvdata(dsi, ctx); 273 274 ··· 289 288 if (ret < 0) 290 289 return ret; 291 290 292 - ctx->bridge.funcs = &tc358762_bridge_funcs; 293 291 ctx->bridge.type = DRM_MODE_CONNECTOR_DPI; 294 292 ctx->bridge.of_node = dev->of_node; 295 293 ctx->bridge.pre_enable_prev_first = true;
+4 -4
drivers/gpu/drm/bridge/tc358764.c
··· 347 347 struct tc358764 *ctx; 348 348 int ret; 349 349 350 - ctx = devm_kzalloc(dev, sizeof(struct tc358764), GFP_KERNEL); 351 - if (!ctx) 352 - return -ENOMEM; 350 + ctx = devm_drm_bridge_alloc(dev, struct tc358764, bridge, 351 + &tc358764_bridge_funcs); 352 + if (IS_ERR(ctx)) 353 + return PTR_ERR(ctx); 353 354 354 355 mipi_dsi_set_drvdata(dsi, ctx); 355 356 ··· 369 368 if (ret < 0) 370 369 return ret; 371 370 372 - ctx->bridge.funcs = &tc358764_bridge_funcs; 373 371 ctx->bridge.of_node = dev->of_node; 374 372 ctx->bridge.pre_enable_prev_first = true; 375 373
+4 -4
drivers/gpu/drm/bridge/tc358768.c
··· 1287 1287 if (!np) 1288 1288 return -ENODEV; 1289 1289 1290 - priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 1291 - if (!priv) 1292 - return -ENOMEM; 1290 + priv = devm_drm_bridge_alloc(dev, struct tc358768_priv, bridge, 1291 + &tc358768_bridge_funcs); 1292 + if (IS_ERR(priv)) 1293 + return PTR_ERR(priv); 1293 1294 1294 1295 dev_set_drvdata(dev, priv); 1295 1296 priv->dev = dev; ··· 1322 1321 priv->dsi_host.dev = dev; 1323 1322 priv->dsi_host.ops = &tc358768_dsi_host_ops; 1324 1323 1325 - priv->bridge.funcs = &tc358768_bridge_funcs; 1326 1324 priv->bridge.timings = &default_tc358768_timings; 1327 1325 priv->bridge.of_node = np; 1328 1326
+4 -4
drivers/gpu/drm/bridge/tc358775.c
··· 659 659 struct tc_data *tc; 660 660 int ret; 661 661 662 - tc = devm_kzalloc(dev, sizeof(*tc), GFP_KERNEL); 663 - if (!tc) 664 - return -ENOMEM; 662 + tc = devm_drm_bridge_alloc(dev, struct tc_data, bridge, 663 + &tc_bridge_funcs); 664 + if (IS_ERR(tc)) 665 + return PTR_ERR(tc); 665 666 666 667 tc->dev = dev; 667 668 tc->i2c = client; ··· 702 701 return ret; 703 702 } 704 703 705 - tc->bridge.funcs = &tc_bridge_funcs; 706 704 tc->bridge.of_node = dev->of_node; 707 705 tc->bridge.pre_enable_prev_first = true; 708 706 drm_bridge_add(&tc->bridge);
+4 -4
drivers/gpu/drm/bridge/thc63lvd1024.c
··· 181 181 struct thc63_dev *thc63; 182 182 int ret; 183 183 184 - thc63 = devm_kzalloc(&pdev->dev, sizeof(*thc63), GFP_KERNEL); 185 - if (!thc63) 186 - return -ENOMEM; 184 + thc63 = devm_drm_bridge_alloc(&pdev->dev, struct thc63_dev, bridge, 185 + &thc63_bridge_func); 186 + if (IS_ERR(thc63)) 187 + return PTR_ERR(thc63); 187 188 188 189 thc63->dev = &pdev->dev; 189 190 platform_set_drvdata(pdev, thc63); ··· 209 208 210 209 thc63->bridge.driver_private = thc63; 211 210 thc63->bridge.of_node = pdev->dev.of_node; 212 - thc63->bridge.funcs = &thc63_bridge_func; 213 211 thc63->bridge.timings = &thc63->timings; 214 212 215 213 drm_bridge_add(&thc63->bridge);
+4 -4
drivers/gpu/drm/bridge/ti-dlpc3433.c
··· 348 348 struct dlpc *dlpc; 349 349 int ret; 350 350 351 - dlpc = devm_kzalloc(dev, sizeof(*dlpc), GFP_KERNEL); 352 - if (!dlpc) 353 - return -ENOMEM; 351 + dlpc = devm_drm_bridge_alloc(dev, struct dlpc, bridge, 352 + &dlpc_bridge_funcs); 353 + if (IS_ERR(dlpc)) 354 + return PTR_ERR(dlpc); 354 355 355 356 dlpc->dev = dev; 356 357 ··· 366 365 dev_set_drvdata(dev, dlpc); 367 366 i2c_set_clientdata(client, dlpc); 368 367 369 - dlpc->bridge.funcs = &dlpc_bridge_funcs; 370 368 dlpc->bridge.of_node = dev->of_node; 371 369 drm_bridge_add(&dlpc->bridge); 372 370
+4 -4
drivers/gpu/drm/bridge/ti-tdp158.c
··· 68 68 struct tdp158 *tdp158; 69 69 struct device *dev = &client->dev; 70 70 71 - tdp158 = devm_kzalloc(dev, sizeof(*tdp158), GFP_KERNEL); 72 - if (!tdp158) 73 - return -ENOMEM; 71 + tdp158 = devm_drm_bridge_alloc(dev, struct tdp158, bridge, 72 + &tdp158_bridge_funcs); 73 + if (IS_ERR(tdp158)) 74 + return PTR_ERR(tdp158); 74 75 75 76 tdp158->next = devm_drm_of_get_bridge(dev, dev->of_node, 1, 0); 76 77 if (IS_ERR(tdp158->next)) ··· 90 89 return dev_err_probe(dev, PTR_ERR(tdp158->enable), "enable"); 91 90 92 91 tdp158->bridge.of_node = dev->of_node; 93 - tdp158->bridge.funcs = &tdp158_bridge_funcs; 94 92 tdp158->bridge.driver_private = tdp158; 95 93 tdp158->dev = dev; 96 94
+4 -4
drivers/gpu/drm/bridge/ti-tfp410.c
··· 341 341 return -ENXIO; 342 342 } 343 343 344 - dvi = devm_kzalloc(dev, sizeof(*dvi), GFP_KERNEL); 345 - if (!dvi) 346 - return -ENOMEM; 344 + dvi = devm_drm_bridge_alloc(dev, struct tfp410, bridge, 345 + &tfp410_bridge_funcs); 346 + if (IS_ERR(dvi)) 347 + return PTR_ERR(dvi); 347 348 348 349 dvi->dev = dev; 349 350 dev_set_drvdata(dev, dvi); 350 351 351 - dvi->bridge.funcs = &tfp410_bridge_funcs; 352 352 dvi->bridge.of_node = dev->of_node; 353 353 dvi->bridge.timings = &dvi->timings; 354 354 dvi->bridge.type = DRM_MODE_CONNECTOR_DVID;
+4 -4
drivers/gpu/drm/bridge/ti-tpd12s015.c
··· 116 116 struct gpio_desc *gpio; 117 117 int ret; 118 118 119 - tpd = devm_kzalloc(&pdev->dev, sizeof(*tpd), GFP_KERNEL); 120 - if (!tpd) 121 - return -ENOMEM; 119 + tpd = devm_drm_bridge_alloc(&pdev->dev, struct tpd12s015_device, 120 + bridge, &tpd12s015_bridge_funcs); 121 + if (IS_ERR(tpd)) 122 + return PTR_ERR(tpd); 122 123 123 124 platform_set_drvdata(pdev, tpd); 124 125 125 - tpd->bridge.funcs = &tpd12s015_bridge_funcs; 126 126 tpd->bridge.of_node = pdev->dev.of_node; 127 127 tpd->bridge.type = DRM_MODE_CONNECTOR_HDMIA; 128 128 tpd->bridge.ops = DRM_BRIDGE_OP_DETECT;
+4 -4
drivers/gpu/drm/mediatek/mtk_dp.c
··· 2725 2725 struct device *dev = &pdev->dev; 2726 2726 int ret; 2727 2727 2728 - mtk_dp = devm_kzalloc(dev, sizeof(*mtk_dp), GFP_KERNEL); 2729 - if (!mtk_dp) 2730 - return -ENOMEM; 2728 + mtk_dp = devm_drm_bridge_alloc(dev, struct mtk_dp, bridge, 2729 + &mtk_dp_bridge_funcs); 2730 + if (IS_ERR(mtk_dp)) 2731 + return PTR_ERR(mtk_dp); 2731 2732 2732 2733 mtk_dp->dev = dev; 2733 2734 mtk_dp->data = (struct mtk_dp_data *)of_device_get_match_data(dev); ··· 2786 2785 if (ret) 2787 2786 return ret; 2788 2787 2789 - mtk_dp->bridge.funcs = &mtk_dp_bridge_funcs; 2790 2788 mtk_dp->bridge.of_node = dev->of_node; 2791 2789 mtk_dp->bridge.type = mtk_dp->data->bridge_type; 2792 2790
+4 -4
drivers/gpu/drm/mediatek/mtk_dpi.c
··· 1179 1179 struct mtk_dpi *dpi; 1180 1180 int ret; 1181 1181 1182 - dpi = devm_kzalloc(dev, sizeof(*dpi), GFP_KERNEL); 1183 - if (!dpi) 1184 - return -ENOMEM; 1182 + dpi = devm_drm_bridge_alloc(dev, struct mtk_dpi, bridge, 1183 + &mtk_dpi_bridge_funcs); 1184 + if (IS_ERR(dpi)) 1185 + return PTR_ERR(dpi); 1185 1186 1186 1187 dpi->dev = dev; 1187 1188 dpi->conf = (struct mtk_dpi_conf *)of_device_get_match_data(dev); ··· 1234 1233 1235 1234 platform_set_drvdata(pdev, dpi); 1236 1235 1237 - dpi->bridge.funcs = &mtk_dpi_bridge_funcs; 1238 1236 dpi->bridge.of_node = dev->of_node; 1239 1237 dpi->bridge.type = DRM_MODE_CONNECTOR_DPI; 1240 1238
+4 -4
drivers/gpu/drm/mediatek/mtk_dsi.c
··· 1196 1196 int irq_num; 1197 1197 int ret; 1198 1198 1199 - dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); 1200 - if (!dsi) 1201 - return -ENOMEM; 1199 + dsi = devm_drm_bridge_alloc(dev, struct mtk_dsi, bridge, 1200 + &mtk_dsi_bridge_funcs); 1201 + if (IS_ERR(dsi)) 1202 + return PTR_ERR(dsi); 1202 1203 1203 1204 dsi->driver_data = of_device_get_match_data(dev); 1204 1205 ··· 1247 1246 1248 1247 platform_set_drvdata(pdev, dsi); 1249 1248 1250 - dsi->bridge.funcs = &mtk_dsi_bridge_funcs; 1251 1249 dsi->bridge.of_node = dev->of_node; 1252 1250 dsi->bridge.type = DRM_MODE_CONNECTOR_DSI; 1253 1251
+4 -4
drivers/gpu/drm/mediatek/mtk_hdmi.c
··· 1690 1690 struct device *dev = &pdev->dev; 1691 1691 int ret; 1692 1692 1693 - hdmi = devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); 1694 - if (!hdmi) 1695 - return -ENOMEM; 1693 + hdmi = devm_drm_bridge_alloc(dev, struct mtk_hdmi, bridge, 1694 + &mtk_hdmi_bridge_funcs); 1695 + if (IS_ERR(hdmi)) 1696 + return PTR_ERR(hdmi); 1696 1697 1697 1698 hdmi->dev = dev; 1698 1699 hdmi->conf = of_device_get_match_data(dev); ··· 1720 1719 return dev_err_probe(dev, ret, 1721 1720 "Failed to register audio driver\n"); 1722 1721 1723 - hdmi->bridge.funcs = &mtk_hdmi_bridge_funcs; 1724 1722 hdmi->bridge.of_node = pdev->dev.of_node; 1725 1723 hdmi->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID 1726 1724 | DRM_BRIDGE_OP_HPD;
+6 -4
drivers/gpu/drm/meson/meson_encoder_cvbs.c
··· 227 227 struct device_node *remote; 228 228 int ret; 229 229 230 - meson_encoder_cvbs = devm_kzalloc(priv->dev, sizeof(*meson_encoder_cvbs), GFP_KERNEL); 231 - if (!meson_encoder_cvbs) 232 - return -ENOMEM; 230 + meson_encoder_cvbs = devm_drm_bridge_alloc(priv->dev, 231 + struct meson_encoder_cvbs, 232 + bridge, 233 + &meson_encoder_cvbs_bridge_funcs); 234 + if (IS_ERR(meson_encoder_cvbs)) 235 + return PTR_ERR(meson_encoder_cvbs); 233 236 234 237 /* CVBS Connector Bridge */ 235 238 remote = of_graph_get_remote_node(priv->dev->of_node, 0, 0); ··· 248 245 "Failed to find CVBS Connector bridge\n"); 249 246 250 247 /* CVBS Encoder Bridge */ 251 - meson_encoder_cvbs->bridge.funcs = &meson_encoder_cvbs_bridge_funcs; 252 248 meson_encoder_cvbs->bridge.of_node = priv->dev->of_node; 253 249 meson_encoder_cvbs->bridge.type = DRM_MODE_CONNECTOR_Composite; 254 250 meson_encoder_cvbs->bridge.ops = DRM_BRIDGE_OP_MODES;
+6 -4
drivers/gpu/drm/meson/meson_encoder_dsi.c
··· 106 106 struct device_node *remote; 107 107 int ret; 108 108 109 - meson_encoder_dsi = devm_kzalloc(priv->dev, sizeof(*meson_encoder_dsi), GFP_KERNEL); 110 - if (!meson_encoder_dsi) 111 - return -ENOMEM; 109 + meson_encoder_dsi = devm_drm_bridge_alloc(priv->dev, 110 + struct meson_encoder_dsi, 111 + bridge, 112 + &meson_encoder_dsi_bridge_funcs); 113 + if (IS_ERR(meson_encoder_dsi)) 114 + return PTR_ERR(meson_encoder_dsi); 112 115 113 116 /* DSI Transceiver Bridge */ 114 117 remote = of_graph_get_remote_node(priv->dev->of_node, 2, 0); ··· 126 123 "Failed to find DSI transceiver bridge\n"); 127 124 128 125 /* DSI Encoder Bridge */ 129 - meson_encoder_dsi->bridge.funcs = &meson_encoder_dsi_bridge_funcs; 130 126 meson_encoder_dsi->bridge.of_node = priv->dev->of_node; 131 127 meson_encoder_dsi->bridge.type = DRM_MODE_CONNECTOR_DSI; 132 128
+6 -4
drivers/gpu/drm/meson/meson_encoder_hdmi.c
··· 376 376 struct device_node *remote; 377 377 int ret; 378 378 379 - meson_encoder_hdmi = devm_kzalloc(priv->dev, sizeof(*meson_encoder_hdmi), GFP_KERNEL); 380 - if (!meson_encoder_hdmi) 381 - return -ENOMEM; 379 + meson_encoder_hdmi = devm_drm_bridge_alloc(priv->dev, 380 + struct meson_encoder_hdmi, 381 + bridge, 382 + &meson_encoder_hdmi_bridge_funcs); 383 + if (IS_ERR(meson_encoder_hdmi)) 384 + return PTR_ERR(meson_encoder_hdmi); 382 385 383 386 /* HDMI Transceiver Bridge */ 384 387 remote = of_graph_get_remote_node(priv->dev->of_node, 1, 0); ··· 398 395 } 399 396 400 397 /* HDMI Encoder Bridge */ 401 - meson_encoder_hdmi->bridge.funcs = &meson_encoder_hdmi_bridge_funcs; 402 398 meson_encoder_hdmi->bridge.of_node = priv->dev->of_node; 403 399 meson_encoder_hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA; 404 400 meson_encoder_hdmi->bridge.interlace_allowed = true;
+4 -4
drivers/gpu/drm/renesas/rcar-du/rcar_lvds.c
··· 878 878 struct rcar_lvds *lvds; 879 879 int ret; 880 880 881 - lvds = devm_kzalloc(&pdev->dev, sizeof(*lvds), GFP_KERNEL); 882 - if (lvds == NULL) 883 - return -ENOMEM; 881 + lvds = devm_drm_bridge_alloc(&pdev->dev, struct rcar_lvds, bridge, 882 + &rcar_lvds_bridge_ops); 883 + if (IS_ERR(lvds)) 884 + return PTR_ERR(lvds); 884 885 885 886 platform_set_drvdata(pdev, lvds); 886 887 ··· 896 895 if (ret < 0) 897 896 return ret; 898 897 899 - lvds->bridge.funcs = &rcar_lvds_bridge_ops; 900 898 lvds->bridge.of_node = pdev->dev.of_node; 901 899 902 900 lvds->mmio = devm_platform_ioremap_resource(pdev, 0);
+4 -4
drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c
··· 701 701 u32 txsetr; 702 702 int ret; 703 703 704 - dsi = devm_kzalloc(&pdev->dev, sizeof(*dsi), GFP_KERNEL); 705 - if (!dsi) 706 - return -ENOMEM; 704 + dsi = devm_drm_bridge_alloc(&pdev->dev, struct rzg2l_mipi_dsi, bridge, 705 + &rzg2l_mipi_dsi_bridge_ops); 706 + if (IS_ERR(dsi)) 707 + return PTR_ERR(dsi); 707 708 708 709 platform_set_drvdata(pdev, dsi); 709 710 dsi->dev = &pdev->dev; ··· 762 761 pm_runtime_put(dsi->dev); 763 762 764 763 /* Initialize the DRM bridge. */ 765 - dsi->bridge.funcs = &rzg2l_mipi_dsi_bridge_ops; 766 764 dsi->bridge.of_node = dsi->dev->of_node; 767 765 768 766 /* Init host device */