[media] ite-cir: make IR receive work after resume
authorJarod Wilson <jarod@redhat.com>
Mon, 9 May 2011 14:48:33 +0000 (11:48 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 20 May 2011 18:57:22 +0000 (15:57 -0300)
Just recently acquired an Asus Eee Box PC with an onboard IR receiver
driven by ite-cir (ITE8713 sub-variant). Works out of the box with the
ite-cir driver in 2.6.39, but stops working after a suspend/resume
cycle. Its fixed by simply reinitializing registers after resume,
similar to what's done in the nuvoton-cir driver. I've not tested with
any other ITE variant, but code inspection suggests this should be safe
on all variants.

Reported-by: Stephan Raue <sraue@openelec.tv>
CC: Juan Jesús García de Soria <skandalfo@gmail.com>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/rc/ite-cir.c

index 43908a7..253837e 100644 (file)
@@ -1684,6 +1684,8 @@ static int ite_resume(struct pnp_dev *pdev)
                /* wake up the transmitter */
                wake_up_interruptible(&dev->tx_queue);
        } else {
+               /* reinitialize hardware config registers */
+               dev->params.init_hardware(dev);
                /* enable the receiver */
                dev->params.enable_rx(dev);
        }