Re: [PATCH v2 4/5] drm/vc4: remove bridge from driver internal structure

2017-10-09 Thread Eric Anholt
Benjamin Gaignard  writes:

> 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 

Reviewed-by: Eric Anholt 

Thanks for doing this cleanup!


signature.asc
Description: PGP signature
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH v2 4/5] drm/vc4: remove bridge from driver internal structure

2017-10-09 Thread Benjamin Gaignard
2017-10-02 11:34 GMT+02:00 Benjamin Gaignard :
> With a call to drm_of_panel_bridge_remove() we could remove
> the bridge without store it in vc4_dpi internal driver structure.

+ Eric to get his point of view on that

>
> Signed-off-by: Benjamin Gaignard 
> ---
>  drivers/gpu/drm/vc4/vc4_dpi.c | 17 ++---
>  1 file changed, 6 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c
> index 519cefe..72c9dbd 100644
> --- a/drivers/gpu/drm/vc4/vc4_dpi.c
> +++ b/drivers/gpu/drm/vc4/vc4_dpi.c
> @@ -97,8 +97,6 @@ struct vc4_dpi {
>
> struct drm_encoder *encoder;
> struct drm_connector *connector;
> -   struct drm_bridge *bridge;
> -   bool is_panel_bridge;
>
> void __iomem *regs;
>
> @@ -251,10 +249,11 @@ static int vc4_dpi_init_bridge(struct vc4_dpi *dpi)
>  {
> struct device *dev = >pdev->dev;
> struct drm_panel *panel;
> +   struct drm_bridge *bridge;
> int ret;
>
> ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0,
> - , >bridge);
> + , );
> if (ret) {
> /* If nothing was connected in the DT, that's not an
>  * error.
> @@ -265,13 +264,10 @@ static int vc4_dpi_init_bridge(struct vc4_dpi *dpi)
> return ret;
> }
>
> -   if (panel) {
> -   dpi->bridge = drm_panel_bridge_add(panel,
> -  DRM_MODE_CONNECTOR_DPI);
> -   dpi->is_panel_bridge = true;
> -   }
> +   if (panel)
> +   bridge = drm_panel_bridge_add(panel, DRM_MODE_CONNECTOR_DPI);
>
> -   return drm_bridge_attach(dpi->encoder, dpi->bridge, NULL);
> +   return drm_bridge_attach(dpi->encoder, bridge, NULL);
>  }
>
>  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,
> struct vc4_dev *vc4 = to_vc4_dev(drm);
> struct vc4_dpi *dpi = dev_get_drvdata(dev);
>
> -   if (dpi->is_panel_bridge)
> -   drm_panel_bridge_remove(dpi->bridge);
> +   drm_of_panel_bridge_remove(dev->of_node, 0, 0);
>
> drm_encoder_cleanup(dpi->encoder);
>
> --
> 2.7.4
>



-- 
Benjamin Gaignard

Graphic Study Group

Linaro.org │ Open source software for ARM SoCs

Follow Linaro: Facebook | Twitter | Blog
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v2 4/5] drm/vc4: remove bridge from driver internal structure

2017-10-02 Thread Benjamin Gaignard
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 
---
 drivers/gpu/drm/vc4/vc4_dpi.c | 17 ++---
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c
index 519cefe..72c9dbd 100644
--- a/drivers/gpu/drm/vc4/vc4_dpi.c
+++ b/drivers/gpu/drm/vc4/vc4_dpi.c
@@ -97,8 +97,6 @@ struct vc4_dpi {
 
struct drm_encoder *encoder;
struct drm_connector *connector;
-   struct drm_bridge *bridge;
-   bool is_panel_bridge;
 
void __iomem *regs;
 
@@ -251,10 +249,11 @@ static int vc4_dpi_init_bridge(struct vc4_dpi *dpi)
 {
struct device *dev = >pdev->dev;
struct drm_panel *panel;
+   struct drm_bridge *bridge;
int ret;
 
ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0,
- , >bridge);
+ , );
if (ret) {
/* If nothing was connected in the DT, that's not an
 * error.
@@ -265,13 +264,10 @@ static int vc4_dpi_init_bridge(struct vc4_dpi *dpi)
return ret;
}
 
-   if (panel) {
-   dpi->bridge = drm_panel_bridge_add(panel,
-  DRM_MODE_CONNECTOR_DPI);
-   dpi->is_panel_bridge = true;
-   }
+   if (panel)
+   bridge = drm_panel_bridge_add(panel, DRM_MODE_CONNECTOR_DPI);
 
-   return drm_bridge_attach(dpi->encoder, dpi->bridge, NULL);
+   return drm_bridge_attach(dpi->encoder, bridge, NULL);
 }
 
 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,
struct vc4_dev *vc4 = to_vc4_dev(drm);
struct vc4_dpi *dpi = dev_get_drvdata(dev);
 
-   if (dpi->is_panel_bridge)
-   drm_panel_bridge_remove(dpi->bridge);
+   drm_of_panel_bridge_remove(dev->of_node, 0, 0);
 
drm_encoder_cleanup(dpi->encoder);
 
-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel