diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index 1f5ccc95029cfd6a153d2cafb4e7378bc0e0a28d..72b630a91f41e1aa06ed1e6ef6bf96d1001a34e6 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -89,7 +89,7 @@ static void cx88_ir_handle_key(struct cx88_IR *ir)
 
 		auxgpio = cx_read(MO_GP1_IO);
 		/* Take out the parity part */
-		gpio+=(auxgpio & 0xef);
+		gpio+=(gpio & 0x7fd) + (auxgpio & 0xef);
 	} else
 		auxgpio = gpio;