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:
parent
403d8d4c21
commit
ee93770137
|
|
@ -40,3 +40,13 @@ void rockchip_bridge_disable(struct rockchip_bridge *bridge)
|
||||||
if (bridge->funcs && bridge->funcs->disable)
|
if (bridge->funcs && bridge->funcs->disable)
|
||||||
bridge->funcs->disable(bridge);
|
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);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,15 @@
|
||||||
|
|
||||||
struct display_state;
|
struct display_state;
|
||||||
struct rockchip_bridge;
|
struct rockchip_bridge;
|
||||||
|
struct drm_display_mode;
|
||||||
|
|
||||||
struct rockchip_bridge_funcs {
|
struct rockchip_bridge_funcs {
|
||||||
void (*enable)(struct rockchip_bridge *bridge);
|
void (*enable)(struct rockchip_bridge *bridge);
|
||||||
void (*disable)(struct rockchip_bridge *bridge);
|
void (*disable)(struct rockchip_bridge *bridge);
|
||||||
void (*pre_enable)(struct rockchip_bridge *bridge);
|
void (*pre_enable)(struct rockchip_bridge *bridge);
|
||||||
void (*post_disable)(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 {
|
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_disable(struct rockchip_bridge *bridge);
|
||||||
void rockchip_bridge_pre_enable(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_post_disable(struct rockchip_bridge *bridge);
|
||||||
|
void rockchip_bridge_mode_set(struct rockchip_bridge *bridge,
|
||||||
|
const struct drm_display_mode *mode);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -666,6 +666,9 @@ static int display_init(struct display_state *state)
|
||||||
|
|
||||||
drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V);
|
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) {
|
if (crtc_funcs->init) {
|
||||||
ret = crtc_funcs->init(state);
|
ret = crtc_funcs->init(state);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue