mirror of
https://github.com/torvalds/linux.git
synced 2024-12-15 23:51:46 +00:00
drm/exynos: fix incorrect interrupt induced by m2m operation.
This patch fixes incorrect interrupt induced by m2m operation. the m2m operation calls s/w reset every frame but there is the case that the interrupt to m2m operation occures after s/w reset sometimes. So this patch makes dma and capture operations stop at s/w reset to avoid incorrect interrupt. Signed-off-by: Jinyoung Jeon <jy0.jeon@samsung.com> Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
b5c0b5526a
commit
e39d5ce132
@ -169,10 +169,23 @@ static void fimc_sw_reset(struct fimc_context *ctx)
|
||||
|
||||
DRM_DEBUG_KMS("%s\n", __func__);
|
||||
|
||||
/* stop dma operation */
|
||||
cfg = fimc_read(EXYNOS_CISTATUS);
|
||||
if (EXYNOS_CISTATUS_GET_ENVID_STATUS(cfg)) {
|
||||
cfg = fimc_read(EXYNOS_MSCTRL);
|
||||
cfg &= ~EXYNOS_MSCTRL_ENVID;
|
||||
fimc_write(cfg, EXYNOS_MSCTRL);
|
||||
}
|
||||
|
||||
cfg = fimc_read(EXYNOS_CISRCFMT);
|
||||
cfg |= EXYNOS_CISRCFMT_ITU601_8BIT;
|
||||
fimc_write(cfg, EXYNOS_CISRCFMT);
|
||||
|
||||
/* disable image capture */
|
||||
cfg = fimc_read(EXYNOS_CIIMGCPT);
|
||||
cfg &= ~(EXYNOS_CIIMGCPT_IMGCPTEN_SC | EXYNOS_CIIMGCPT_IMGCPTEN);
|
||||
fimc_write(cfg, EXYNOS_CIIMGCPT);
|
||||
|
||||
/* s/w reset */
|
||||
cfg = fimc_read(EXYNOS_CIGCTRL);
|
||||
cfg |= (EXYNOS_CIGCTRL_SWRST);
|
||||
|
Loading…
Reference in New Issue
Block a user