From: Sean Young <s...@mess.org>

[ Upstream commit 5dd4b89dc098bf22cd13e82a308f42a02c102b2b ]

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 <s...@mess.org>
Acked-by: Sean Wang <sean.w...@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+sams...@kernel.org>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/media/rc/mtk-cir.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/media/rc/mtk-cir.c b/drivers/media/rc/mtk-cir.c
index e88eb64e8e693..00a4a0dfcab87 100644
--- a/drivers/media/rc/mtk-cir.c
+++ b/drivers/media/rc/mtk-cir.c
@@ -44,6 +44,11 @@
 /* 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)
 
@@ -411,6 +416,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;
-- 
2.20.1



Reply via email to