tvin: vdin: fix TXLX ATv channel switching crash [1/1]
authorXuhua Zhang <xuhua.zhang@amlogic.com>
Tue, 8 Jan 2019 07:35:23 +0000 (15:35 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Tue, 8 Jan 2019 09:39:17 +0000 (01:39 -0800)
PD#SWPL-3964

Problem:
ATv channel switching crash

Solution:
stop vdin, close afbc
need judge platform, there is not afbce on txlx

Verify:
verify by einstein

Change-Id: Ibcff1da47b9fdca7e1758b0d45e7d6800bfc8080
Signed-off-by: Xuhua Zhang <xuhua.zhang@amlogic.com>
drivers/amlogic/media/vin/tvin/vdin/vdin_drv.c

index 2e0b8e0..0804f87 100644 (file)
@@ -654,11 +654,13 @@ void vdin_stop_dec(struct vdin_dev_s *devp)
        disable_irq_nosync(devp->irq);
        afbc_init_flag = 0;
 
-       while (++afbc_write_down_flag < afbc_write_down_test_times) {
-               if (vdin_afbce_read_writedown_flag() == 0)
-                       usleep_range(5000, 5001);
-               else
-                       break;
+       if (is_meson_tl1_cpu() && (devp->afbce_mode == 1)) {
+               while (++afbc_write_down_flag < afbc_write_down_test_times) {
+                       if (vdin_afbce_read_writedown_flag() == 0)
+                               usleep_range(5000, 5001);
+                       else
+                               break;
+               }
        }
 
        if (!(devp->parm.flag & TVIN_PARM_FLAG_CAP) &&