media: mtk-cir: lower de-glitch counter for rc-mm protocol
authorSean Young <sean@mess.org>
Fri, 12 Jul 2019 22:47:00 +0000 (18:47 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 22 Jul 2019 19:24:16 +0000 (15:24 -0400)
The rc-mm protocol can't be decoded by the mtk-cir since the de-glitch
filter removes pulses/spaces shorter than 294 microseconds.

Tested on a BananaPi R2.

Signed-off-by: Sean Young <sean@mess.org>
Acked-by: Sean Wang <sean.wang@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/rc/mtk-cir.c

index de4e411..99a3f1e 100644 (file)
 /* Fields containing pulse width data */
 #define MTK_WIDTH_MASK           (GENMASK(7, 0))
 
+/* IR threshold */
+#define MTK_IRTHD               0x14
+#define MTK_DG_CNT_MASK                 (GENMASK(12, 8))
+#define MTK_DG_CNT(x)           ((x) << 8)
+
 /* Bit to enable interrupt */
 #define MTK_IRINT_EN             BIT(0)
 
@@ -398,6 +403,9 @@ static int mtk_ir_probe(struct platform_device *pdev)
        mtk_w32_mask(ir, val, ir->data->fields[MTK_HW_PERIOD].mask,
                     ir->data->fields[MTK_HW_PERIOD].reg);
 
+       /* Set de-glitch counter */
+       mtk_w32_mask(ir, MTK_DG_CNT(1), MTK_DG_CNT_MASK, MTK_IRTHD);
+
        /* Enable IR and PWM */
        val = mtk_r32(ir, MTK_CONFIG_HIGH_REG);
        val |= MTK_OK_COUNT(ir->data->ok_count) |  MTK_PWM_EN | MTK_IR_EN;