The goal of this series is to simplify driver code when they need to clean up a previously allocated panel bridge. Few drivers have "is_panel_bridge" flag to be able to distinguish a drm_panel_bridge from "simple" drm_bridge. To remove this flag I propose to - let drm_panel_bridge_remove() check if the bridge provided in parameter is really a drm_panel_bridge. - add drm_of_panel_bridge_remove() to remove a bridge given DT port and endpoint Finally that allow to remove drm_bridge structure and "is_panel_bridge" flag from stm driver internal structure.
version 2: - does the same for vc4 and dw-mipi-dsi
Benjamin Gaignard (5): drm/bridge: make drm_panel_bridge_remove more robust drm/drm_of: add drm_of_panel_bridge_remove function drm/stm: ltdc: remove bridge from driver internal structure drm/vc4: remove bridge from driver internal structure drm/bridge/synopsys: dsi :remove is_panel_bridge
drivers/gpu/drm/bridge/panel.c | 10 +++++++- drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 5 +--- drivers/gpu/drm/drm_of.c | 33 +++++++++++++++++++++++++++ drivers/gpu/drm/stm/ltdc.c | 16 ++++--------- drivers/gpu/drm/stm/ltdc.h | 2 -- drivers/gpu/drm/vc4/vc4_dpi.c | 17 +++++--------- include/drm/drm_of.h | 8 +++++++ 7 files changed, 62 insertions(+), 29 deletions(-)
Make sure that bridge parameter is not NULL and can be safely cast into a panel_bridge structure.
Signed-off-by: Benjamin Gaignard benjamin.gaignard@linaro.org Reviewed-by: Philippe Cornu philippe.cornu@st.com Tested-by: Philippe Cornu philippe.cornu@st.com --- drivers/gpu/drm/bridge/panel.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c index e0cca19..6d99d4a 100644 --- a/drivers/gpu/drm/bridge/panel.c +++ b/drivers/gpu/drm/bridge/panel.c @@ -188,7 +188,15 @@ EXPORT_SYMBOL(drm_panel_bridge_add); */ void drm_panel_bridge_remove(struct drm_bridge *bridge) { - struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge); + struct panel_bridge *panel_bridge; + + if (!bridge) + return; + + if (bridge->funcs != &panel_bridge_bridge_funcs) + return; + + panel_bridge = drm_bridge_to_panel_bridge(bridge);
drm_bridge_remove(bridge); devm_kfree(panel_bridge->panel->dev, bridge);
On Mon, Oct 02, 2017 at 11:32:30AM +0200, Benjamin Gaignard wrote:
The goal of this series is to simplify driver code when they need to clean up a previously allocated panel bridge. Few drivers have "is_panel_bridge" flag to be able to distinguish a drm_panel_bridge from "simple" drm_bridge. To remove this flag I propose to
- let drm_panel_bridge_remove() check if the bridge provided in parameter is really a drm_panel_bridge.
- add drm_of_panel_bridge_remove() to remove a bridge given DT port and endpoint
Finally that allow to remove drm_bridge structure and "is_panel_bridge" flag from stm driver internal structure.
version 2:
- does the same for vc4 and dw-mipi-dsi
Sweet. Ack on the entire series from my side. Since you have commit rights I'd wait a bit more for feedback from driver maintainers, then push the entire pile.
Cheers, Daniel
Benjamin Gaignard (5): drm/bridge: make drm_panel_bridge_remove more robust drm/drm_of: add drm_of_panel_bridge_remove function drm/stm: ltdc: remove bridge from driver internal structure drm/vc4: remove bridge from driver internal structure drm/bridge/synopsys: dsi :remove is_panel_bridge
drivers/gpu/drm/bridge/panel.c | 10 +++++++- drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 5 +--- drivers/gpu/drm/drm_of.c | 33 +++++++++++++++++++++++++++ drivers/gpu/drm/stm/ltdc.c | 16 ++++--------- drivers/gpu/drm/stm/ltdc.h | 2 -- drivers/gpu/drm/vc4/vc4_dpi.c | 17 +++++--------- include/drm/drm_of.h | 8 +++++++ 7 files changed, 62 insertions(+), 29 deletions(-)
-- 2.7.4
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On 10/02/2017 03:02 PM, Benjamin Gaignard wrote:
The goal of this series is to simplify driver code when they need to clean up a previously allocated panel bridge. Few drivers have "is_panel_bridge" flag to be able to distinguish a drm_panel_bridge from "simple" drm_bridge. To remove this flag I propose to
- let drm_panel_bridge_remove() check if the bridge provided in parameter is really a drm_panel_bridge.
- add drm_of_panel_bridge_remove() to remove a bridge given DT port and endpoint
Finally that allow to remove drm_bridge structure and "is_panel_bridge" flag from stm driver internal structure.
version 2:
- does the same for vc4 and dw-mipi-dsi
For the series:
Reviewed-by: Archit Taneja architt@codeaurora.org
Feel free to queue to drm-misc-next.
Thanks, Archit
Benjamin Gaignard (5): drm/bridge: make drm_panel_bridge_remove more robust drm/drm_of: add drm_of_panel_bridge_remove function drm/stm: ltdc: remove bridge from driver internal structure drm/vc4: remove bridge from driver internal structure drm/bridge/synopsys: dsi :remove is_panel_bridge
drivers/gpu/drm/bridge/panel.c | 10 +++++++- drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 5 +--- drivers/gpu/drm/drm_of.c | 33 +++++++++++++++++++++++++++ drivers/gpu/drm/stm/ltdc.c | 16 ++++--------- drivers/gpu/drm/stm/ltdc.h | 2 -- drivers/gpu/drm/vc4/vc4_dpi.c | 17 +++++--------- include/drm/drm_of.h | 8 +++++++ 7 files changed, 62 insertions(+), 29 deletions(-)
2017-10-10 5:36 GMT+02:00 Archit Taneja architt@codeaurora.org:
On 10/02/2017 03:02 PM, Benjamin Gaignard wrote:
The goal of this series is to simplify driver code when they need to clean up a previously allocated panel bridge. Few drivers have "is_panel_bridge" flag to be able to distinguish a drm_panel_bridge from "simple" drm_bridge. To remove this flag I propose to
- let drm_panel_bridge_remove() check if the bridge provided in parameter
is really a drm_panel_bridge.
- add drm_of_panel_bridge_remove() to remove a bridge given DT port and endpoint
Finally that allow to remove drm_bridge structure and "is_panel_bridge" flag from stm driver internal structure.
version 2:
- does the same for vc4 and dw-mipi-dsi
For the series:
Reviewed-by: Archit Taneja architt@codeaurora.org
Feel free to queue to drm-misc-next.
Pushed thanks
Thanks, Archit
Benjamin Gaignard (5): drm/bridge: make drm_panel_bridge_remove more robust drm/drm_of: add drm_of_panel_bridge_remove function drm/stm: ltdc: remove bridge from driver internal structure drm/vc4: remove bridge from driver internal structure drm/bridge/synopsys: dsi :remove is_panel_bridge
drivers/gpu/drm/bridge/panel.c | 10 +++++++- drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 5 +--- drivers/gpu/drm/drm_of.c | 33 +++++++++++++++++++++++++++ drivers/gpu/drm/stm/ltdc.c | 16 ++++--------- drivers/gpu/drm/stm/ltdc.h | 2 -- drivers/gpu/drm/vc4/vc4_dpi.c | 17 +++++--------- include/drm/drm_of.h | 8 +++++++ 7 files changed, 62 insertions(+), 29 deletions(-)
-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
dri-devel@lists.freedesktop.org