drm: bridge: Pass drm_display_info to drm_bridge_funcs .mode_valid()
When validating a mode, bridges may need to do so in the context of a display, as specified by drm_display_info. An example is the meson dw-hdmi bridge that needs to consider the YUV 4:2:0 output format to perform clock calculations. Bridges that need the display info currently retrieve it from the drm_connector created by the bridge. This gets in the way of moving connector creation out of bridge drivers. To make this possible, pass the drm_display_info to drm_bridge_funcs .mode_valid(). Changes to the bridge drivers have been performed with the following coccinelle semantic patch and have been compile-tested. @ rule1 @ identifier funcs; identifier fn; @@ struct drm_bridge_funcs funcs = { ..., .mode_valid = fn }; @ depends on rule1 @ identifier rule1.fn; identifier bridge; identifier mode; @@ enum drm_mode_status fn( struct drm_bridge *bridge, + const struct drm_display_info *info, const struct drm_display_mode *mode ) { ... } Signed-off-by:Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by:
Neil Armstrong <narmstrong@baylibre.com> Reviewed-by:
Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Guido Günther <agx@sigxcpu.org> # for the nwl-dsi part: Signed-off-by:
Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20200526011505.31884-11-laurent.pinchart+renesas@ideasonboard.com
Showing
- drivers/gpu/drm/bridge/analogix/analogix-anx6345.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/analogix/analogix-anx6345.c
- drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/analogix/analogix-anx78xx.c
- drivers/gpu/drm/bridge/cdns-dsi.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/cdns-dsi.c
- drivers/gpu/drm/bridge/chrontel-ch7033.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/chrontel-ch7033.c
- drivers/gpu/drm/bridge/nwl-dsi.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/nwl-dsi.c
- drivers/gpu/drm/bridge/sii9234.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/sii9234.c
- drivers/gpu/drm/bridge/sil-sii8620.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/sil-sii8620.c
- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/synopsys/dw-hdmi.c
- drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
- drivers/gpu/drm/bridge/tc358767.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/tc358767.c
- drivers/gpu/drm/bridge/tc358768.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/tc358768.c
- drivers/gpu/drm/bridge/thc63lvd1024.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/thc63lvd1024.c
- drivers/gpu/drm/bridge/ti-tfp410.c 1 addition, 0 deletionsdrivers/gpu/drm/bridge/ti-tfp410.c
- drivers/gpu/drm/drm_atomic_helper.c 2 additions, 1 deletiondrivers/gpu/drm/drm_atomic_helper.c
- drivers/gpu/drm/drm_bridge.c 3 additions, 1 deletiondrivers/gpu/drm/drm_bridge.c
- drivers/gpu/drm/drm_probe_helper.c 3 additions, 1 deletiondrivers/gpu/drm/drm_probe_helper.c
- drivers/gpu/drm/i2c/tda998x_drv.c 1 addition, 0 deletionsdrivers/gpu/drm/i2c/tda998x_drv.c
- drivers/gpu/drm/omapdrm/dss/dpi.c 1 addition, 0 deletionsdrivers/gpu/drm/omapdrm/dss/dpi.c
- drivers/gpu/drm/omapdrm/dss/sdi.c 1 addition, 0 deletionsdrivers/gpu/drm/omapdrm/dss/sdi.c
- drivers/gpu/drm/omapdrm/dss/venc.c 1 addition, 0 deletionsdrivers/gpu/drm/omapdrm/dss/venc.c
Loading
Please register or sign in to comment