Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

V4L/DVB (11981): Remote control debugging for dw2102 driver based USB cards

Remote control debugging for dw2102 driver based USB cards
It includes DVBWorld, TeVii, Terratec and others.
Type 'modprobe dvb-usb-dw2102 debug=4', then look at dmesg output.

Signed-off-by: Igor M. Liplianin <liplianin@me.by>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

authored by

Igor M. Liplianin and committed by
Mauro Carvalho Chehab
8a8dad71 1cdc6392

+21 -7
+20 -7
drivers/media/dvb/dvb-usb/dw2102.c
··· 51 51 /* debug */ 52 52 static int dvb_usb_dw2102_debug; 53 53 module_param_named(debug, dvb_usb_dw2102_debug, int, 0644); 54 - MODULE_PARM_DESC(debug, "set debugging level (1=info 2=xfer (or-able))." DVB_USB_DEBUG_STATUS); 54 + MODULE_PARM_DESC(debug, "set debugging level (1=info 2=xfer 4=rc(or-able))." 55 + DVB_USB_DEBUG_STATUS); 56 + 55 57 56 58 DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); 57 59 ··· 555 553 { 556 554 struct dw210x_state *st = d->priv; 557 555 u8 key[2]; 558 - struct i2c_msg msg[] = { 559 - {.addr = DW2102_RC_QUERY, .flags = I2C_M_RD, .buf = key, 560 - .len = 2}, 556 + struct i2c_msg msg = { 557 + .addr = DW2102_RC_QUERY, 558 + .flags = I2C_M_RD, 559 + .buf = key, 560 + .len = 2 561 561 }; 562 562 int i; 563 563 564 564 *state = REMOTE_NO_KEY_PRESSED; 565 - if (dw2102_i2c_transfer(&d->i2c_adap, msg, 1) == 1) { 565 + if (dw2102_i2c_transfer(&d->i2c_adap, &msg, 1) == 1) { 566 566 for (i = 0; i < ARRAY_SIZE(dw210x_rc_keys); i++) { 567 - if (dw210x_rc_keys[i].data == msg[0].buf[0]) { 567 + if (dw210x_rc_keys[i].data == msg.buf[0]) { 568 568 *state = REMOTE_KEY_PRESSED; 569 569 *event = dw210x_rc_keys[i].event; 570 570 st->last_key_pressed = 571 571 dw210x_rc_keys[i].event; 572 572 break; 573 573 } 574 + 574 575 st->last_key_pressed = 0; 575 576 } 577 + 578 + if ((*state) == REMOTE_KEY_PRESSED) 579 + deb_rc("%s: found rc key: %x, %x, event: %x\n", 580 + __func__, key[0], key[1], (*event)); 581 + else if (key[0] != 0xff) 582 + deb_rc("%s: unknown rc key: %x, %x\n", 583 + __func__, key[0], key[1]); 584 + 576 585 } 577 - /* info("key: %x %x\n",key[0],key[1]); */ 586 + 578 587 return 0; 579 588 } 580 589
+1
drivers/media/dvb/dvb-usb/dw2102.h
··· 5 5 #include "dvb-usb.h" 6 6 7 7 #define deb_xfer(args...) dprintk(dvb_usb_dw2102_debug, 0x02, args) 8 + #define deb_rc(args...) dprintk(dvb_usb_dw2102_debug, 0x04, args) 8 9 #endif