mirror of https://gitee.com/openkylin/linux.git
[media] nuvoton-cir: fix wake from suspend
The CIR Wake FIFO is 67 bytes long, but the stock remote appears to only populate 65 of them. Limit comparison to 65 bytes, and wake from suspend works a whole lot better (it wasn't working at all for most folks). Fix based on comparison with the old lirc_wb677 driver from Nuvoton, debugging and testing done by Dave Treacy by way of the lirc mailing list. Reported-by: Dave Treacy <davetreacy@gmail.com> Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
e3bfeabbf5
commit
3198ed161c
|
@ -385,8 +385,9 @@ static void nvt_cir_regs_init(struct nvt_dev *nvt)
|
|||
|
||||
static void nvt_cir_wake_regs_init(struct nvt_dev *nvt)
|
||||
{
|
||||
/* set number of bytes needed for wake key comparison (default 67) */
|
||||
nvt_cir_wake_reg_write(nvt, CIR_WAKE_FIFO_LEN, CIR_WAKE_FIFO_CMP_DEEP);
|
||||
/* set number of bytes needed for wake from s3 (default 65) */
|
||||
nvt_cir_wake_reg_write(nvt, CIR_WAKE_FIFO_CMP_BYTES,
|
||||
CIR_WAKE_FIFO_CMP_DEEP);
|
||||
|
||||
/* set tolerance/variance allowed per byte during wake compare */
|
||||
nvt_cir_wake_reg_write(nvt, CIR_WAKE_CMP_TOLERANCE,
|
||||
|
|
|
@ -305,8 +305,11 @@ struct nvt_dev {
|
|||
#define CIR_WAKE_IRFIFOSTS_RX_EMPTY 0x20
|
||||
#define CIR_WAKE_IRFIFOSTS_RX_FULL 0x10
|
||||
|
||||
/* CIR Wake FIFO buffer is 67 bytes long */
|
||||
#define CIR_WAKE_FIFO_LEN 67
|
||||
/*
|
||||
* The CIR Wake FIFO buffer is 67 bytes long, but the stock remote wakes
|
||||
* the system comparing only 65 bytes (fails with this set to 67)
|
||||
*/
|
||||
#define CIR_WAKE_FIFO_CMP_BYTES 65
|
||||
/* CIR Wake byte comparison tolerance */
|
||||
#define CIR_WAKE_CMP_TOLERANCE 5
|
||||
|
||||
|
|
Loading…
Reference in New Issue