diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2012-11-02 13:20:27 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-12-21 09:23:41 -0500 |
commit | cd65a645a4f5e456607067734f9a11385c9dce7b (patch) | |
tree | 0497ad79d4c2cbd5a57070a9cc7e74e531cd3bf3 /drivers/media/platform/s5p-fimc | |
parent | e26991b49a132626130428d64222a355ffdd7139 (diff) |
[media] s5p-csis: Enable only data lanes that are actively used
Enable only MIPI CSI-2 data lanes at the DPHY that are actively
used, rather than unmasking all unconditionally.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/platform/s5p-fimc')
-rw-r--r-- | drivers/media/platform/s5p-fimc/mipi-csis.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/media/platform/s5p-fimc/mipi-csis.c b/drivers/media/platform/s5p-fimc/mipi-csis.c index 36916d3f199a..8ec7c3b79659 100644 --- a/drivers/media/platform/s5p-fimc/mipi-csis.c +++ b/drivers/media/platform/s5p-fimc/mipi-csis.c | |||
@@ -273,7 +273,8 @@ static void s5pcsis_reset(struct csis_state *state) | |||
273 | 273 | ||
274 | static void s5pcsis_system_enable(struct csis_state *state, int on) | 274 | static void s5pcsis_system_enable(struct csis_state *state, int on) |
275 | { | 275 | { |
276 | u32 val; | 276 | struct s5p_platform_mipi_csis *pdata = state->pdev->dev.platform_data; |
277 | u32 val, mask; | ||
277 | 278 | ||
278 | val = s5pcsis_read(state, S5PCSIS_CTRL); | 279 | val = s5pcsis_read(state, S5PCSIS_CTRL); |
279 | if (on) | 280 | if (on) |
@@ -283,10 +284,11 @@ static void s5pcsis_system_enable(struct csis_state *state, int on) | |||
283 | s5pcsis_write(state, S5PCSIS_CTRL, val); | 284 | s5pcsis_write(state, S5PCSIS_CTRL, val); |
284 | 285 | ||
285 | val = s5pcsis_read(state, S5PCSIS_DPHYCTRL); | 286 | val = s5pcsis_read(state, S5PCSIS_DPHYCTRL); |
286 | if (on) | 287 | val &= ~S5PCSIS_DPHYCTRL_ENABLE; |
287 | val |= S5PCSIS_DPHYCTRL_ENABLE; | 288 | if (on) { |
288 | else | 289 | mask = (1 << (pdata->lanes + 1)) - 1; |
289 | val &= ~S5PCSIS_DPHYCTRL_ENABLE; | 290 | val |= (mask & S5PCSIS_DPHYCTRL_ENABLE); |
291 | } | ||
290 | s5pcsis_write(state, S5PCSIS_DPHYCTRL, val); | 292 | s5pcsis_write(state, S5PCSIS_DPHYCTRL, val); |
291 | } | 293 | } |
292 | 294 | ||