diff options
Diffstat (limited to 'drivers/media/dvb/ttpci/av7110.c')
-rw-r--r-- | drivers/media/dvb/ttpci/av7110.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c index 29ed532ba966..67becdd4db60 100644 --- a/drivers/media/dvb/ttpci/av7110.c +++ b/drivers/media/dvb/ttpci/av7110.c | |||
@@ -219,7 +219,10 @@ static void recover_arm(struct av7110 *av7110) | |||
219 | av7110->recover(av7110); | 219 | av7110->recover(av7110); |
220 | 220 | ||
221 | restart_feeds(av7110); | 221 | restart_feeds(av7110); |
222 | av7110_fw_cmd(av7110, COMTYPE_PIDFILTER, SetIR, 1, av7110->ir_config); | 222 | |
223 | #if defined(CONFIG_INPUT_EVDEV) || defined(CONFIG_INPUT_EVDEV_MODULE) | ||
224 | av7110_check_ir_config(av7110, true); | ||
225 | #endif | ||
223 | } | 226 | } |
224 | 227 | ||
225 | static void av7110_arm_sync(struct av7110 *av7110) | 228 | static void av7110_arm_sync(struct av7110 *av7110) |
@@ -250,6 +253,10 @@ static int arm_thread(void *data) | |||
250 | if (!av7110->arm_ready) | 253 | if (!av7110->arm_ready) |
251 | continue; | 254 | continue; |
252 | 255 | ||
256 | #if defined(CONFIG_INPUT_EVDEV) || defined(CONFIG_INPUT_EVDEV_MODULE) | ||
257 | av7110_check_ir_config(av7110, false); | ||
258 | #endif | ||
259 | |||
253 | if (mutex_lock_interruptible(&av7110->dcomlock)) | 260 | if (mutex_lock_interruptible(&av7110->dcomlock)) |
254 | break; | 261 | break; |
255 | newloops = rdebi(av7110, DEBINOSWAP, STATUS_LOOPS, 0, 2); | 262 | newloops = rdebi(av7110, DEBINOSWAP, STATUS_LOOPS, 0, 2); |
@@ -667,8 +674,8 @@ static void gpioirq(unsigned long data) | |||
667 | return; | 674 | return; |
668 | 675 | ||
669 | case DATA_IRCOMMAND: | 676 | case DATA_IRCOMMAND: |
670 | if (av7110->ir_handler) | 677 | if (av7110->ir.ir_handler) |
671 | av7110->ir_handler(av7110, | 678 | av7110->ir.ir_handler(av7110, |
672 | swahw32(irdebi(av7110, DEBINOSWAP, Reserved, 0, 4))); | 679 | swahw32(irdebi(av7110, DEBINOSWAP, Reserved, 0, 4))); |
673 | iwdebi(av7110, DEBINOSWAP, RX_BUFF, 0, 2); | 680 | iwdebi(av7110, DEBINOSWAP, RX_BUFF, 0, 2); |
674 | break; | 681 | break; |
@@ -1907,8 +1914,10 @@ static int av7110_fe_lock_fix(struct av7110* av7110, fe_status_t status) | |||
1907 | if (av7110->fe_synced == synced) | 1914 | if (av7110->fe_synced == synced) |
1908 | return 0; | 1915 | return 0; |
1909 | 1916 | ||
1910 | if (av7110->playing) | 1917 | if (av7110->playing) { |
1918 | av7110->fe_synced = synced; | ||
1911 | return 0; | 1919 | return 0; |
1920 | } | ||
1912 | 1921 | ||
1913 | if (mutex_lock_interruptible(&av7110->pid_mutex)) | 1922 | if (mutex_lock_interruptible(&av7110->pid_mutex)) |
1914 | return -ERESTARTSYS; | 1923 | return -ERESTARTSYS; |