Lines Matching refs:ir
13 static void smi_ir_enableInterrupt(struct smi_rc *ir)
15 struct smi_dev *dev = ir->dev;
20 static void smi_ir_disableInterrupt(struct smi_rc *ir)
22 struct smi_dev *dev = ir->dev;
27 static void smi_ir_clearInterrupt(struct smi_rc *ir)
29 struct smi_dev *dev = ir->dev;
34 static void smi_ir_stop(struct smi_rc *ir)
36 struct smi_dev *dev = ir->dev;
38 smi_ir_disableInterrupt(ir);
59 static void smi_ir_decode(struct smi_rc *ir)
61 struct smi_dev *dev = ir->dev;
62 struct rc_dev *rc_dev = ir->rc_dev;
82 ir->irData[index * 4 + 0] = (u8)(data);
83 ir->irData[index * 4 + 1] = (u8)(data >> 8);
84 ir->irData[index * 4 + 2] = (u8)(data >> 16);
85 ir->irData[index * 4 + 3] = (u8)(data >> 24);
87 smi_raw_process(rc_dev, ir->irData, ir_count);
104 /* ir functions call by main driver.*/
105 int smi_ir_irq(struct smi_rc *ir, u32 int_status)
110 smi_ir_disableInterrupt(ir);
111 smi_ir_clearInterrupt(ir);
112 smi_ir_decode(ir);
113 smi_ir_enableInterrupt(ir);
119 void smi_ir_start(struct smi_rc *ir)
121 struct smi_dev *dev = ir->dev;
129 smi_ir_enableInterrupt(ir);
136 struct smi_rc *ir = &dev->ir;
143 snprintf(ir->device_name, sizeof(ir->device_name), "IR (%s)",
145 snprintf(ir->input_phys, sizeof(ir->input_phys), "pci-%s/ir0",
150 rc_dev->input_phys = ir->input_phys;
151 rc_dev->device_name = ir->device_name;
162 ir->rc_dev = rc_dev;
163 ir->dev = dev;
165 smi_ir_disableInterrupt(ir);
179 struct smi_rc *ir = &dev->ir;
180 struct rc_dev *rc_dev = ir->rc_dev;
183 smi_ir_stop(ir);
184 ir->rc_dev = NULL;