Lines Matching refs:ir
65 static int get_key_haup_common(struct IR_i2c *ir, enum rc_type *protocol, in get_key_haup_common() argument
72 if (size != i2c_master_recv(ir->c, buf, size)) in get_key_haup_common()
107 static int get_key_haup(struct IR_i2c *ir, enum rc_type *protocol, in get_key_haup() argument
110 return get_key_haup_common (ir, protocol, scancode, toggle, 3, 0); in get_key_haup()
113 static int get_key_haup_xvr(struct IR_i2c *ir, enum rc_type *protocol, in get_key_haup_xvr() argument
125 ret = i2c_master_send(ir->c, buf, 1); in get_key_haup_xvr()
129 return get_key_haup_common(ir, protocol, scancode, toggle, 6, 3); in get_key_haup_xvr()
132 static int get_key_pixelview(struct IR_i2c *ir, enum rc_type *protocol, in get_key_pixelview() argument
138 if (1 != i2c_master_recv(ir->c, &b, 1)) { in get_key_pixelview()
149 static int get_key_fusionhdtv(struct IR_i2c *ir, enum rc_type *protocol, in get_key_fusionhdtv() argument
155 if (4 != i2c_master_recv(ir->c, buf, 4)) { in get_key_fusionhdtv()
174 static int get_key_knc1(struct IR_i2c *ir, enum rc_type *protocol, in get_key_knc1() argument
180 if (1 != i2c_master_recv(ir->c, &b, 1)) { in get_key_knc1()
204 static int get_key_avermedia_cardbus(struct IR_i2c *ir, enum rc_type *protocol, in get_key_avermedia_cardbus() argument
208 struct i2c_msg msg[] = { { .addr = ir->c->addr, .flags = 0, in get_key_avermedia_cardbus()
210 { .addr = ir->c->addr, .flags = I2C_M_RD, in get_key_avermedia_cardbus()
213 if (2 != i2c_transfer(ir->c->adapter, msg, 2)) { in get_key_avermedia_cardbus()
223 if (2 != i2c_transfer(ir->c->adapter, msg, 2)) { in get_key_avermedia_cardbus()
241 if (ir->c->addr == 0x41) /* AVerMedia EM78P153 */ in get_key_avermedia_cardbus()
249 static int ir_key_poll(struct IR_i2c *ir) in ir_key_poll() argument
257 rc = ir->get_key(ir, &protocol, &scancode, &toggle); in ir_key_poll()
266 rc_keydown(ir->rc, protocol, scancode, toggle); in ir_key_poll()
274 struct IR_i2c *ir = container_of(work, struct IR_i2c, work.work); in ir_work() local
276 rc = ir_key_poll(ir); in ir_work()
278 rc_unregister_device(ir->rc); in ir_work()
279 ir->rc = NULL; in ir_work()
283 schedule_delayed_work(&ir->work, msecs_to_jiffies(ir->polling_interval)); in ir_work()
293 struct IR_i2c *ir; in ir_probe() local
299 ir = devm_kzalloc(&client->dev, sizeof(*ir), GFP_KERNEL); in ir_probe()
300 if (!ir) in ir_probe()
303 ir->c = client; in ir_probe()
304 ir->polling_interval = DEFAULT_POLLING_INTERVAL; in ir_probe()
305 i2c_set_clientdata(client, ir); in ir_probe()
310 ir->get_key = get_key_pixelview; in ir_probe()
318 ir->get_key = get_key_haup; in ir_probe()
324 ir->get_key = get_key_knc1; in ir_probe()
330 ir->get_key = get_key_fusionhdtv; in ir_probe()
336 ir->get_key = get_key_avermedia_cardbus; in ir_probe()
342 ir->get_key = get_key_avermedia_cardbus; in ir_probe()
349 ir->get_key = get_key_haup_xvr; in ir_probe()
368 ir->polling_interval = init_data->polling_interval; in ir_probe()
373 ir->get_key = init_data->get_key; in ir_probe()
376 ir->get_key = get_key_pixelview; in ir_probe()
379 ir->get_key = get_key_haup; in ir_probe()
382 ir->get_key = get_key_knc1; in ir_probe()
385 ir->get_key = get_key_fusionhdtv; in ir_probe()
388 ir->get_key = get_key_haup_xvr; in ir_probe()
391 ir->get_key = get_key_avermedia_cardbus; in ir_probe()
405 ir->rc = rc; in ir_probe()
408 if (!name || !ir->get_key || !rc_type || !ir_codes) { in ir_probe()
416 snprintf(ir->name, sizeof(ir->name), "i2c IR (%s)", name); in ir_probe()
417 ir->ir_codes = ir_codes; in ir_probe()
419 snprintf(ir->phys, sizeof(ir->phys), "%s/%s/ir0", in ir_probe()
428 rc->input_phys = ir->phys; in ir_probe()
429 rc->input_name = ir->name; in ir_probe()
434 rc->map_name = ir->ir_codes; in ir_probe()
445 ir->name, ir->phys, adap->name); in ir_probe()
448 INIT_DELAYED_WORK(&ir->work, ir_work); in ir_probe()
449 schedule_delayed_work(&ir->work, 0); in ir_probe()
461 struct IR_i2c *ir = i2c_get_clientdata(client); in ir_remove() local
464 cancel_delayed_work_sync(&ir->work); in ir_remove()
467 rc_unregister_device(ir->rc); in ir_remove()