diff options
author | benjamin.gaignard@linaro.org <benjamin.gaignard@linaro.org> | 2017-10-02 05:34:47 -0400 |
---|---|---|
committer | Benjamin Gaignard <benjamin.gaignard@linaro.org> | 2017-10-10 05:32:54 -0400 |
commit | 8f6b06c11ca4ff0160df54b53299bf94bfd05645 (patch) | |
tree | a9fe049d15416a67b4f050f074f20f76e8bc9204 | |
parent | 08de7afa3a6a8b36015648e3a015ceb60e499f26 (diff) |
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
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_dpi.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c index 519cefef800d..72c9dbd81d7f 100644 --- a/drivers/gpu/drm/vc4/vc4_dpi.c +++ b/drivers/gpu/drm/vc4/vc4_dpi.c | |||
@@ -97,8 +97,6 @@ struct vc4_dpi { | |||
97 | 97 | ||
98 | struct drm_encoder *encoder; | 98 | struct drm_encoder *encoder; |
99 | struct drm_connector *connector; | 99 | struct drm_connector *connector; |
100 | struct drm_bridge *bridge; | ||
101 | bool is_panel_bridge; | ||
102 | 100 | ||
103 | void __iomem *regs; | 101 | void __iomem *regs; |
104 | 102 | ||
@@ -251,10 +249,11 @@ static int vc4_dpi_init_bridge(struct vc4_dpi *dpi) | |||
251 | { | 249 | { |
252 | struct device *dev = &dpi->pdev->dev; | 250 | struct device *dev = &dpi->pdev->dev; |
253 | struct drm_panel *panel; | 251 | struct drm_panel *panel; |
252 | struct drm_bridge *bridge; | ||
254 | int ret; | 253 | int ret; |
255 | 254 | ||
256 | ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, | 255 | ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, |
257 | &panel, &dpi->bridge); | 256 | &panel, &bridge); |
258 | if (ret) { | 257 | if (ret) { |
259 | /* If nothing was connected in the DT, that's not an | 258 | /* If nothing was connected in the DT, that's not an |
260 | * error. | 259 | * error. |
@@ -265,13 +264,10 @@ static int vc4_dpi_init_bridge(struct vc4_dpi *dpi) | |||
265 | return ret; | 264 | return ret; |
266 | } | 265 | } |
267 | 266 | ||
268 | if (panel) { | 267 | if (panel) |
269 | dpi->bridge = drm_panel_bridge_add(panel, | 268 | bridge = drm_panel_bridge_add(panel, DRM_MODE_CONNECTOR_DPI); |
270 | DRM_MODE_CONNECTOR_DPI); | ||
271 | dpi->is_panel_bridge = true; | ||
272 | } | ||
273 | 269 | ||
274 | return drm_bridge_attach(dpi->encoder, dpi->bridge, NULL); | 270 | return drm_bridge_attach(dpi->encoder, bridge, NULL); |
275 | } | 271 | } |
276 | 272 | ||
277 | static int vc4_dpi_bind(struct device *dev, struct device *master, void *data) | 273 | static int vc4_dpi_bind(struct device *dev, struct device *master, void *data) |
@@ -352,8 +348,7 @@ static void vc4_dpi_unbind(struct device *dev, struct device *master, | |||
352 | struct vc4_dev *vc4 = to_vc4_dev(drm); | 348 | struct vc4_dev *vc4 = to_vc4_dev(drm); |
353 | struct vc4_dpi *dpi = dev_get_drvdata(dev); | 349 | struct vc4_dpi *dpi = dev_get_drvdata(dev); |
354 | 350 | ||
355 | if (dpi->is_panel_bridge) | 351 | drm_of_panel_bridge_remove(dev->of_node, 0, 0); |
356 | drm_panel_bridge_remove(dpi->bridge); | ||
357 | 352 | ||
358 | drm_encoder_cleanup(dpi->encoder); | 353 | drm_encoder_cleanup(dpi->encoder); |
359 | 354 | ||