38 #include <linux/slab.h>
44 #define MODULE_NAME "cx23885"
46 static void cx23885_input_process_measurements(
struct cx23885_dev *
dev,
59 sizeof(ir_core_event), &num);
63 for (i = 0; i <
count; i++) {
71 ir_raw_event_reset(kernel_ir->
rc);
116 cx23885_input_process_measurements(dev, overrun);
137 switch (dev->
board) {
148 params.interrupt_enable =
true;
152 params.modulation =
false;
155 params.max_pulse_width = 3333333;
158 params.noise_filter_min_width = 333333;
164 params.invert_level =
true;
174 params.interrupt_enable =
true;
178 params.carrier_freq = 37917;
179 params.carrier_range_lower = 33000;
180 params.carrier_range_upper = 43000;
187 params.max_pulse_width = 12378022;
193 params.noise_filter_min_width = 351648;
195 params.modulation =
false;
196 params.invert_level =
true;
203 static int cx23885_input_ir_open(
struct rc_dev *
rc)
207 if (kernel_ir->
cx ==
NULL)
210 return cx23885_input_ir_start(kernel_ir->
cx);
213 static void cx23885_input_ir_stop(
struct cx23885_dev *dev)
229 while (
params.shutdown ==
false) {
231 params.interrupt_enable =
false;
241 static void cx23885_input_ir_close(
struct rc_dev *rc)
245 if (kernel_ir->
cx !=
NULL)
246 cx23885_input_ir_stop(kernel_ir->
cx);
266 switch (dev->
board) {
297 if (kernel_ir ==
NULL)
318 if (dev->
pci->subsystem_vendor) {
325 rc->
dev.parent = &dev->
pci->dev;
328 rc->
priv = kernel_ir;
329 rc->
open = cx23885_input_ir_open;
330 rc->
close = cx23885_input_ir_close;
343 cx23885_input_ir_stop(dev);
356 cx23885_input_ir_stop(dev);