mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
drm/bridge: dw-mipi-dsi: dual-channel-dsi: power off dual phy during sleep
Change-Id: Ic3abc81d7a6ffb8016d884ea29b3cb48e983f5f8 Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
This commit is contained in:
@@ -594,8 +594,14 @@ static void dw_mipi_dsi_set_mode(struct dw_mipi_dsi *dsi,
|
||||
|
||||
static void dw_mipi_dsi_disable(struct dw_mipi_dsi *dsi)
|
||||
{
|
||||
const struct dw_mipi_dsi_phy_ops *phy_ops = dsi->plat_data->phy_ops;
|
||||
|
||||
if (phy_ops->power_off)
|
||||
phy_ops->power_off(dsi->plat_data->priv_data);
|
||||
|
||||
dsi_write(dsi, DSI_PWR_UP, RESET);
|
||||
dsi_write(dsi, DSI_PHY_RSTZ, PHY_RSTZ);
|
||||
pm_runtime_put(dsi->dev);
|
||||
}
|
||||
|
||||
static void dw_mipi_dsi_init(struct dw_mipi_dsi *dsi)
|
||||
@@ -852,7 +858,6 @@ static void dw_mipi_dsi_clear_err(struct dw_mipi_dsi *dsi)
|
||||
static void dw_mipi_dsi_bridge_post_disable(struct drm_bridge *bridge)
|
||||
{
|
||||
struct dw_mipi_dsi *dsi = bridge_to_dsi(bridge);
|
||||
const struct dw_mipi_dsi_phy_ops *phy_ops = dsi->plat_data->phy_ops;
|
||||
|
||||
/*
|
||||
* Switch to command mode before panel-bridge post_disable &
|
||||
@@ -861,6 +866,8 @@ static void dw_mipi_dsi_bridge_post_disable(struct drm_bridge *bridge)
|
||||
* before by the drm framework.
|
||||
*/
|
||||
dw_mipi_dsi_set_mode(dsi, 0);
|
||||
if (dsi->slave)
|
||||
dw_mipi_dsi_set_mode(dsi->slave, 0);
|
||||
|
||||
/*
|
||||
* TODO Only way found to call panel-bridge post_disable &
|
||||
@@ -871,16 +878,10 @@ static void dw_mipi_dsi_bridge_post_disable(struct drm_bridge *bridge)
|
||||
if (dsi->panel_bridge->funcs->post_disable)
|
||||
dsi->panel_bridge->funcs->post_disable(dsi->panel_bridge);
|
||||
|
||||
if (phy_ops->power_off)
|
||||
phy_ops->power_off(dsi->plat_data->priv_data);
|
||||
|
||||
if (dsi->slave) {
|
||||
if (dsi->slave)
|
||||
dw_mipi_dsi_disable(dsi->slave);
|
||||
pm_runtime_put(dsi->slave->dev);
|
||||
}
|
||||
dw_mipi_dsi_disable(dsi);
|
||||
|
||||
pm_runtime_put(dsi->dev);
|
||||
dw_mipi_dsi_disable(dsi);
|
||||
}
|
||||
|
||||
static unsigned int dw_mipi_dsi_get_lanes(struct dw_mipi_dsi *dsi)
|
||||
|
||||
Reference in New Issue
Block a user