// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2008-2018 Fuzhou Rockchip Electronics Co., Ltd */ #include "rockchip_bridge.h" void rockchip_bridge_init(struct rockchip_bridge *bridge, struct display_state *state) { if (!bridge) return; bridge->state = state; if (bridge->next_bridge) rockchip_bridge_init(bridge->next_bridge, state); } void rockchip_bridge_pre_enable(struct rockchip_bridge *bridge) { if (!bridge) return; if (bridge->funcs && bridge->funcs->pre_enable) bridge->funcs->pre_enable(bridge); if (bridge->next_bridge) rockchip_bridge_pre_enable(bridge->next_bridge); } void rockchip_bridge_post_disable(struct rockchip_bridge *bridge) { if (!bridge) return; if (bridge->next_bridge) rockchip_bridge_post_disable(bridge->next_bridge); if (bridge->funcs && bridge->funcs->post_disable) bridge->funcs->post_disable(bridge); } void rockchip_bridge_enable(struct rockchip_bridge *bridge) { if (!bridge) return; if (bridge->funcs && bridge->funcs->enable) bridge->funcs->enable(bridge); if (bridge->next_bridge) rockchip_bridge_enable(bridge->next_bridge); } void rockchip_bridge_disable(struct rockchip_bridge *bridge) { if (!bridge) return; if (bridge->next_bridge) rockchip_bridge_disable(bridge->next_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); if (bridge->next_bridge) rockchip_bridge_mode_set(bridge->next_bridge, mode); }