|
@@ -370,11 +370,19 @@ static void nvt_clear_cir_fifo(struct nvt_dev *nvt)
|
|
|
/* clear out the hardware's cir wake rx fifo */
|
|
|
static void nvt_clear_cir_wake_fifo(struct nvt_dev *nvt)
|
|
|
{
|
|
|
- u8 val;
|
|
|
+ u8 val, config;
|
|
|
+
|
|
|
+ config = nvt_cir_wake_reg_read(nvt, CIR_WAKE_IRCON);
|
|
|
+
|
|
|
+ /* clearing wake fifo works in learning mode only */
|
|
|
+ nvt_cir_wake_reg_write(nvt, config & ~CIR_WAKE_IRCON_MODE0,
|
|
|
+ CIR_WAKE_IRCON);
|
|
|
|
|
|
val = nvt_cir_wake_reg_read(nvt, CIR_WAKE_FIFOCON);
|
|
|
nvt_cir_wake_reg_write(nvt, val | CIR_WAKE_FIFOCON_RXFIFOCLR,
|
|
|
CIR_WAKE_FIFOCON);
|
|
|
+
|
|
|
+ nvt_cir_wake_reg_write(nvt, config, CIR_WAKE_IRCON);
|
|
|
}
|
|
|
|
|
|
/* clear out the hardware's cir tx fifo */
|