• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/staging/tm6000/

Lines Matching defs:ir

27 #include <media/ir-core.h>
28 #include <media/ir-common.h>
39 MODULE_PARM_DESC(enable_ir, "enable ir (default is enable");
45 printk(KERN_DEBUG "%s/ir: " fmt, ir->name , ## arg); \
55 struct ir_input_state ir;
76 struct tm6000_IR *ir = dev->ir;
78 if (!dev->ir)
82 ir->wait = 1;
84 ir->wait = 0;
88 static int tm6000_ir_config(struct tm6000_IR *ir)
90 struct tm6000_core *dev = ir->dev;
120 struct tm6000_IR *ir = dev->ir;
126 memcpy(ir->urb_data, urb->transfer_buffer, urb->actual_length);
128 dprintk("data %02x %02x %02x %02x\n", ir->urb_data[0],
129 ir->urb_data[1], ir->urb_data[2], ir->urb_data[3]);
131 ir->key = 1;
137 static int default_polling_getkey(struct tm6000_IR *ir,
140 struct tm6000_core *dev = ir->dev;
144 if (ir->wait && !&dev->int_in)
148 if (ir->ir.ir_type == IR_TYPE_RC5)
149 poll_result->rc_data = ir->urb_data[0];
151 poll_result->rc_data = ir->urb_data[0] | ir->urb_data[1] << 8;
158 if (ir->ir.ir_type == IR_TYPE_RC5) {
184 ir->key = 1;
189 static void tm6000_ir_handle_key(struct tm6000_IR *ir)
195 result = ir->get_key(ir, &poll_result);
197 printk(KERN_INFO "ir->get_key() failed %d\n", result);
201 dprintk("ir->get_key result data=%04x\n", poll_result.rc_data);
203 if (ir->key) {
204 ir_input_keydown(ir->input->input_dev, &ir->ir,
207 ir_input_nokey(ir->input->input_dev, &ir->ir);
208 ir->key = 0;
215 struct tm6000_IR *ir = container_of(work, struct tm6000_IR, work.work);
217 tm6000_ir_handle_key(ir);
218 schedule_delayed_work(&ir->work, msecs_to_jiffies(ir->polling));
223 struct tm6000_IR *ir = priv;
225 INIT_DELAYED_WORK(&ir->work, tm6000_ir_work);
226 schedule_delayed_work(&ir->work, 0);
233 struct tm6000_IR *ir = priv;
235 cancel_delayed_work_sync(&ir->work);
240 struct tm6000_IR *ir = priv;
242 ir->get_key = default_polling_getkey;
244 tm6000_ir_config(ir);
251 struct tm6000_IR *ir;
265 ir = kzalloc(sizeof(*ir), GFP_KERNEL);
268 if (!ir || !ir_input_dev || !ir_input_dev->input_dev)
272 ir->dev = dev;
273 dev->ir = ir;
275 ir->input = ir_input_dev;
278 ir->props.allowed_protos = IR_TYPE_RC5 | IR_TYPE_NEC;
279 ir->props.priv = ir;
280 ir->props.change_protocol = tm6000_ir_change_protocol;
281 ir->props.open = tm6000_ir_start;
282 ir->props.close = tm6000_ir_stop;
283 ir->props.driver_type = RC_DRIVER_SCANCODE;
285 ir->polling = 50;
287 snprintf(ir->name, sizeof(ir->name), "tm5600/60x0 IR (%s)",
290 usb_make_path(dev->udev, ir->phys, sizeof(ir->phys));
291 strlcat(ir->phys, "/input0", sizeof(ir->phys));
293 tm6000_ir_change_protocol(ir, IR_TYPE_UNKNOWN);
294 err = ir_input_init(ir_input_dev->input_dev, &ir->ir, IR_TYPE_OTHER);
298 ir_input_dev->input_dev->name = ir->name;
299 ir_input_dev->input_dev->phys = ir->phys;
310 ir->int_urb = usb_alloc_urb(0, GFP_KERNEL);
319 ir->int_urb->transfer_buffer = kzalloc(size, GFP_KERNEL);
320 if (ir->int_urb->transfer_buffer == NULL) {
321 usb_free_urb(ir->int_urb);
325 usb_fill_int_urb(ir->int_urb, dev->udev, pipe,
326 ir->int_urb->transfer_buffer, size,
329 rc = usb_submit_urb(ir->int_urb, GFP_KERNEL);
331 kfree(ir->int_urb->transfer_buffer);
332 usb_free_urb(ir->int_urb);
336 ir->urb_data = kzalloc(size, GFP_KERNEL);
339 /* ir register */
340 err = ir_input_register(ir->input->input_dev, dev->ir_codes,
341 &ir->props, "tm6000");
348 dev->ir = NULL;
351 kfree(ir);
357 struct tm6000_IR *ir = dev->ir;
361 if (!ir)
364 ir_input_unregister(ir->input->input_dev);
366 if (ir->int_urb) {
367 usb_kill_urb(ir->int_urb);
368 kfree(ir->int_urb->transfer_buffer);
369 usb_free_urb(ir->int_urb);
370 ir->int_urb = NULL;
371 kfree(ir->urb_data);
372 ir->urb_data = NULL;
375 kfree(ir->input);
376 ir->input = NULL;
377 kfree(ir);
378 dev->ir = NULL;