aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/cx88/cx88-input.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index 22cbdf2f0fdd..f5d4a565346e 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -74,7 +74,8 @@ static void cx88_ir_handle_key(struct cx88_IR *ir)
74 74
75 /* read gpio value */ 75 /* read gpio value */
76 gpio = cx_read(ir->gpio_addr); 76 gpio = cx_read(ir->gpio_addr);
77 if (core->board == CX88_BOARD_NPGTECH_REALTV_TOP10FM) { 77 switch (core->board) {
78 case CX88_BOARD_NPGTECH_REALTV_TOP10FM:
78 /* This board apparently uses a combination of 2 GPIO 79 /* This board apparently uses a combination of 2 GPIO
79 to represent the keys. Additionally, the second GPIO 80 to represent the keys. Additionally, the second GPIO
80 can be used for parity. 81 can be used for parity.
@@ -90,12 +91,14 @@ static void cx88_ir_handle_key(struct cx88_IR *ir)
90 auxgpio = cx_read(MO_GP1_IO); 91 auxgpio = cx_read(MO_GP1_IO);
91 /* Take out the parity part */ 92 /* Take out the parity part */
92 gpio=(gpio & 0x7fd) + (auxgpio & 0xef); 93 gpio=(gpio & 0x7fd) + (auxgpio & 0xef);
93 } else if (core->board == CX88_BOARD_WINFAST_DTV1000) { 94 break;
95 case CX88_BOARD_WINFAST_DTV1000:
94 gpio = (gpio & 0x6ff) | ((cx_read(MO_GP1_IO) << 8) & 0x900); 96 gpio = (gpio & 0x6ff) | ((cx_read(MO_GP1_IO) << 8) & 0x900);
95 auxgpio = gpio; 97 auxgpio = gpio;
96 } else 98 break;
99 default:
97 auxgpio = gpio; 100 auxgpio = gpio;
98 101 }
99 if (ir->polling) { 102 if (ir->polling) {
100 if (ir->last_gpio == auxgpio) 103 if (ir->last_gpio == auxgpio)
101 return; 104 return;