From adc0f7b84c7a49a8708fceba10b252bf382beb2a Mon Sep 17 00:00:00 2001 From: Sean Young Date: Fri, 29 Jan 2021 10:54:53 +0000 Subject: [PATCH] Add IR debugging and attempt to fix interrupts Signed-off-by: Sean Young --- drivers/media/pci/smipcie/smipcie-ir.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/pci/smipcie/smipcie-ir.c b/drivers/media/pci/smipcie/smipcie-ir.c index e6b74e161a05..a597b33cfffe 100644 --- a/drivers/media/pci/smipcie/smipcie-ir.c +++ b/drivers/media/pci/smipcie/smipcie-ir.c @@ -65,14 +65,19 @@ static void smi_ir_decode(struct smi_rc *ir) dwIRControl = smi_read(IR_Init_Reg); + dev_err(&rc_dev->dev, "smi_ir_decode: control %08x\n", dwIRControl); + if (dwIRControl & rbIRVld) { ucIRCount = (u8) smi_read(IR_Data_Cnt); + dev_err(&rc_dev->dev, "smi_ir_decode: count %08x\n", ucIRCount); + readLoop = ucIRCount/4; if (ucIRCount % 4) readLoop += 1; for (index = 0; index < readLoop; index++) { dwIRData = smi_read(IR_DATA_BUFFER_BASE + (index * 4)); + dev_err(&rc_dev->dev, "smi_ir_decode: data %08x\n", dwIRData); ir->irData[index*4 + 0] = (u8)(dwIRData); ir->irData[index*4 + 1] = (u8)(dwIRData >> 8); @@ -80,18 +85,19 @@ static void smi_ir_decode(struct smi_rc *ir) ir->irData[index*4 + 3] = (u8)(dwIRData >> 24); } smi_raw_process(rc_dev, ir->irData, ucIRCount); - smi_set(IR_Init_Reg, rbIRVld); } if (dwIRControl & rbIRhighidle) { struct ir_raw_event rawir = {}; + dev_err(&rc_dev->dev, "smi_ir_decode: high idle\n"); + rawir.pulse = 0; rawir.duration = SMI_SAMPLE_PERIOD * SMI_SAMPLE_IDLEMIN; ir_raw_event_store_with_filter(rc_dev, &rawir); - smi_set(IR_Init_Reg, rbIRhighidle); } + smi_set(IR_Init_Reg, rbIRVld); ir_raw_event_handle(rc_dev); } -- 2.29.2