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

drm/vc4: remove bridge from driver internal structure

With a call to drm_of_panel_bridge_remove() we could remove
the bridge without store it in vc4_dpi internal driver structure.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1506936888-23844-5-git-send-email-benjamin.gaignard@linaro.org

+6 -11
+6 -11
drivers/gpu/drm/vc4/vc4_dpi.c
··· 97 97 98 98 struct drm_encoder *encoder; 99 99 struct drm_connector *connector; 100 - struct drm_bridge *bridge; 101 - bool is_panel_bridge; 102 100 103 101 void __iomem *regs; 104 102 ··· 249 251 { 250 252 struct device *dev = &dpi->pdev->dev; 251 253 struct drm_panel *panel; 254 + struct drm_bridge *bridge; 252 255 int ret; 253 256 254 257 ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, 255 - &panel, &dpi->bridge); 258 + &panel, &bridge); 256 259 if (ret) { 257 260 /* If nothing was connected in the DT, that's not an 258 261 * error. ··· 264 265 return ret; 265 266 } 266 267 267 - if (panel) { 268 - dpi->bridge = drm_panel_bridge_add(panel, 269 - DRM_MODE_CONNECTOR_DPI); 270 - dpi->is_panel_bridge = true; 271 - } 268 + if (panel) 269 + bridge = drm_panel_bridge_add(panel, DRM_MODE_CONNECTOR_DPI); 272 270 273 - return drm_bridge_attach(dpi->encoder, dpi->bridge, NULL); 271 + return drm_bridge_attach(dpi->encoder, bridge, NULL); 274 272 } 275 273 276 274 static int vc4_dpi_bind(struct device *dev, struct device *master, void *data) ··· 348 352 struct vc4_dev *vc4 = to_vc4_dev(drm); 349 353 struct vc4_dpi *dpi = dev_get_drvdata(dev); 350 354 351 - if (dpi->is_panel_bridge) 352 - drm_panel_bridge_remove(dpi->bridge); 355 + drm_of_panel_bridge_remove(dev->of_node, 0, 0); 353 356 354 357 drm_encoder_cleanup(dpi->encoder); 355 358