video/drm: Add mode_set callback for bridge

Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: Id08455aacc850074b1bdb67776a4182598ccdb4f
This commit is contained in:
Wyon Bi 2020-07-22 10:18:47 +08:00 committed by Jianhong Chen
parent 403d8d4c21
commit ee93770137
3 changed files with 18 additions and 0 deletions

View File

@ -40,3 +40,13 @@ void rockchip_bridge_disable(struct rockchip_bridge *bridge)
if (bridge->funcs && bridge->funcs->disable)
bridge->funcs->disable(bridge);
}
void rockchip_bridge_mode_set(struct rockchip_bridge *bridge,
const struct drm_display_mode *mode)
{
if (!bridge || !mode)
return;
if (bridge->funcs && bridge->funcs->mode_set)
bridge->funcs->mode_set(bridge, mode);
}

View File

@ -13,12 +13,15 @@
struct display_state;
struct rockchip_bridge;
struct drm_display_mode;
struct rockchip_bridge_funcs {
void (*enable)(struct rockchip_bridge *bridge);
void (*disable)(struct rockchip_bridge *bridge);
void (*pre_enable)(struct rockchip_bridge *bridge);
void (*post_disable)(struct rockchip_bridge *bridge);
void (*mode_set)(struct rockchip_bridge *bridge,
const struct drm_display_mode *mode);
};
struct rockchip_bridge {
@ -32,5 +35,7 @@ void rockchip_bridge_enable(struct rockchip_bridge *bridge);
void rockchip_bridge_disable(struct rockchip_bridge *bridge);
void rockchip_bridge_pre_enable(struct rockchip_bridge *bridge);
void rockchip_bridge_post_disable(struct rockchip_bridge *bridge);
void rockchip_bridge_mode_set(struct rockchip_bridge *bridge,
const struct drm_display_mode *mode);
#endif

View File

@ -666,6 +666,9 @@ static int display_init(struct display_state *state)
drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V);
if (conn_state->bridge)
rockchip_bridge_mode_set(conn_state->bridge, &conn_state->mode);
if (crtc_funcs->init) {
ret = crtc_funcs->init(state);
if (ret)