diff --git a/[refs] b/[refs] index 2500005d7c02..d2f210414107 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e26991b49a132626130428d64222a355ffdd7139 +refs/heads/master: cd65a645a4f5e456607067734f9a11385c9dce7b diff --git a/trunk/drivers/media/platform/s5p-fimc/mipi-csis.c b/trunk/drivers/media/platform/s5p-fimc/mipi-csis.c index 36916d3f199a..8ec7c3b79659 100644 --- a/trunk/drivers/media/platform/s5p-fimc/mipi-csis.c +++ b/trunk/drivers/media/platform/s5p-fimc/mipi-csis.c @@ -273,7 +273,8 @@ static void s5pcsis_reset(struct csis_state *state) static void s5pcsis_system_enable(struct csis_state *state, int on) { - u32 val; + struct s5p_platform_mipi_csis *pdata = state->pdev->dev.platform_data; + u32 val, mask; val = s5pcsis_read(state, S5PCSIS_CTRL); if (on) @@ -283,10 +284,11 @@ static void s5pcsis_system_enable(struct csis_state *state, int on) s5pcsis_write(state, S5PCSIS_CTRL, val); val = s5pcsis_read(state, S5PCSIS_DPHYCTRL); - if (on) - val |= S5PCSIS_DPHYCTRL_ENABLE; - else - val &= ~S5PCSIS_DPHYCTRL_ENABLE; + val &= ~S5PCSIS_DPHYCTRL_ENABLE; + if (on) { + mask = (1 << (pdata->lanes + 1)) - 1; + val |= (mask & S5PCSIS_DPHYCTRL_ENABLE); + } s5pcsis_write(state, S5PCSIS_DPHYCTRL, val); }