| From fdc881783099c6343921ff017450831c8766d12a Mon Sep 17 00:00:00 2001 |
| From: Sean Young <sean@mess.org> |
| Date: Sun, 17 Oct 2021 13:01:15 +0100 |
| Subject: media: ite-cir: IR receiver stop working after receive overflow |
| |
| From: Sean Young <sean@mess.org> |
| |
| commit fdc881783099c6343921ff017450831c8766d12a upstream. |
| |
| On an Intel NUC6iSYK, no IR is reported after a receive overflow. |
| |
| When a receiver overflow occurs, this condition is only cleared by |
| reading the fifo. Make sure we read anything in the fifo. |
| |
| Fixes: 28c7afb07ccf ("media: ite-cir: check for receive overflow") |
| Suggested-by: Bryan Pass <bryan.pass@gmail.com> |
| Tested-by: Bryan Pass <bryan.pass@gmail.com> |
| Cc: stable@vger.kernel.org> |
| Signed-off-by: Sean Young <sean@mess.org> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/media/rc/ite-cir.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/media/rc/ite-cir.c |
| +++ b/drivers/media/rc/ite-cir.c |
| @@ -283,7 +283,7 @@ static irqreturn_t ite_cir_isr(int irq, |
| } |
| |
| /* check for the receive interrupt */ |
| - if (iflags & ITE_IRQ_RX_FIFO) { |
| + if (iflags & (ITE_IRQ_RX_FIFO | ITE_IRQ_RX_FIFO_OVERRUN)) { |
| /* read the FIFO bytes */ |
| rx_bytes = |
| dev->params.get_rx_bytes(dev, rx_buf, |