diff --git a/drivers/media/i2c/rk628/rk628_combtxphy.c b/drivers/media/i2c/rk628/rk628_combtxphy.c index dac86c39ab20..299b798eb2fe 100644 --- a/drivers/media/i2c/rk628/rk628_combtxphy.c +++ b/drivers/media/i2c/rk628/rk628_combtxphy.c @@ -246,10 +246,10 @@ EXPORT_SYMBOL(rk628_txphy_power_on); void rk628_txphy_power_off(struct rk628 *rk628) { - rk628_i2c_update_bits(rk628, COMBTXPHY_CON0, SW_TX_IDLE_MASK | SW_TX_PD_MASK | - SW_PD_PLL_MASK | SW_MODULEB_EN_MASK | - SW_MODULEA_EN_MASK, SW_TX_IDLE(0x3ff) | - SW_TX_PD(0x3ff) | SW_PD_PLL); + rk628_i2c_update_bits(rk628, COMBTXPHY_CON0, SW_TX_IDLE_MASK | SW_TX_PD_MASK | + SW_PD_PLL_MASK | SW_MODULEB_EN_MASK | SW_MODULEA_EN_MASK | + SW_GVI_LVDS_EN_MASK | SW_MIPI_DSI_EN_MASK, + SW_TX_IDLE(0x3ff) | SW_TX_PD(0x3ff) | SW_PD_PLL); } EXPORT_SYMBOL(rk628_txphy_power_off); diff --git a/drivers/media/i2c/rk628/rk628_csi_v4l2.c b/drivers/media/i2c/rk628/rk628_csi_v4l2.c index d5038ddf545b..e4be55fa5e28 100644 --- a/drivers/media/i2c/rk628/rk628_csi_v4l2.c +++ b/drivers/media/i2c/rk628/rk628_csi_v4l2.c @@ -494,6 +494,7 @@ static void rk628_hdmirx_plugout(struct v4l2_subdev *sd) rk628_hdmirx_hpd_ctrl(sd, false); rk628_hdmirx_inno_phy_power_off(sd); rk628_hdmirx_verisyno_phy_power_off(csi->rk628); + mipi_dphy_power_off(csi); } static void rk628_hdmirx_config_all(struct v4l2_subdev *sd) @@ -1458,9 +1459,6 @@ static void rk628_csi_initial_setup(struct v4l2_subdev *sd) } csi->rk628->dphy_lane_en = 0x1f; - if (csi->plat_data->tx_mode == CSI_MODE) - mipi_dphy_power_on(csi); - csi->txphy_pwron = true; if (tx_5v_power_present(sd)) schedule_delayed_work(&csi->delayed_work_enable_hotplug, msecs_to_jiffies(4000));