On Wed, Jun 8, 2011 at 9:17 PM, Dark Shadow <shadowofdarkness@xxxxxxxxx> wrote: > On Wed, Jun 8, 2011 at 8:31 PM, Dark Shadow <shadowofdarkness@xxxxxxxxx> wrote: >> On Wed, Jun 8, 2011 at 7:34 PM, Andy Walls <awalls@xxxxxxxxxxxxxxxx> wrote: >>> Dark Shadow <shadowofdarkness@xxxxxxxxx> wrote: >>> >>>>On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls <awalls@xxxxxxxxxxxxxxxx> >>>>wrote: >>>>> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote: >>>>>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@xxxxxxxxxxxxxxxx> >>>>wrote: >>>>>> > Dark Shadow <shadowofdarkness@xxxxxxxxx> wrote: >>>>>> > >>>>>> >>I have a capture card that was sold as a Hauppauge HVR-1250 >>>>(according >>>>>> >>to the box) that I am trying to use but I am having trouble >>>>getting >>>>>> >>all it's features at once. When I leave it auto detected by the >>>>module >>>>>> >>I have working TV in MythTV even though it thinks it is a 1270 but >>>>IR >>>>>> >>isn't setup. >>>>>> >> >>>>>> >>dmesg outputs >>>>>> >>#modprobe cx23885 enable_885_ir=1 >>>>>> >>[ 7.592714] cx23885 driver version 0.0.2 loaded >>>>>> >>[ 7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level, >>>>low) >>>>>> >>-> IRQ 17 >>>>>> >>[ 7.592926] CORE cx23885[0]: subsystem: 0070:2211, board: >>>>Hauppauge >>>>>> >>WinTV-HVR1270 [card=18,autodetected] >>>>>> >>[ 7.728163] IR JVC protocol handler initialized >>>>>> >>[ 7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5, >>>>>> >>serial# 6429897 >>>>>> >>[ 7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9 >>>>>> >>[ 7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx >>>>155, >>>>>> >>type 54) >>>>>> >>[ 7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB >>>>Digital >>>>>> >>(eeprom 0x88) >>>>>> >>[ 7.738979] tveeprom 0-0050: audio processor is CX23888 (idx >>>>40) >>>>>> >>[ 7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx >>>>34) >>>>>> >>[ 7.738982] tveeprom 0-0050: has no radio, has IR receiver, has >>>>no >>>>>> >>IR transmitter >>>>>> >>[ 7.738983] cx23885[0]: hauppauge eeprom: model=22111 >>>>>> >>[ 7.738985] cx23885_dvb_register() allocating 1 frontend(s) >>>>>> >>[ 7.738991] cx23885[0]: cx23885 based dvb card >>>>>> >>[ 7.961122] IR Sony protocol handler initialized >>>>>> >>[ 7.977301] tda18271 1-0060: creating new instance >>>>>> >>[ 7.979325] TDA18271HD/C2 detected @ 1-0060 >>>>>> >>[ 8.209663] DVB: registering new adapter (cx23885[0]) >>>>>> >>[ 8.209668] DVB: registering adapter 0 frontend 0 (LG >>>>Electronics >>>>>> >>LGDT3305 VSB/QAM Frontend)... >>>>>> >>[ 8.210095] cx23885_dev_checkrevision() Hardware revision = >>>>0xd0 >>>>>> >>[ 8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq: >>>>17, >>>>>> >>latency: 0, mmio: 0xf7c00000 >>>>>> >>[ 8.210109] cx23885 0000:07:00.0: setting latency timer to 64 >>>>>> >>[ 8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X >>>>> >>>>>> >>#ir-keytable -a /etc/rc_maps.cfg >>>>>> >>Old keytable cleared >>>>>> >>Wrote 136 keycode(s) to driver >>>>>> >>Protocols changed to RC-5 >>>>> >>>>>> >>I have heard this should show up as a normal keyboard to the >>>>system >>>>>> >>but no button presses cause anything to happen to the system and >>>>>> >>trying lirc with devinput (with devinput lircd.conf) and then >>>>opening >>>>>> >>irw doesn't show any button presses either >>>>> >>>>> >>>>>> > Don't force your card to a 1250, if the driver detects it is a >>>>1270 >>>>>> with a CX23888 chip. No need to use the enable_885_ir parameter >>>>with >>>>>> a CX23888 chip, either. It only applies for two board models with >>>>>> actual CX23885 chips. >>>>>> > >>>>>> > Use of IR with the CX23888 chip should be realtively trouble free, >>>>>> *if* the 1270's IR has been enabled in the driver code. It likely >>>>has >>>>>> not been. I don't have the source code in front of me at the moment >>>>>> to check. >>>>>> > >>>>>> > It shouldn't be hard for anyone to patch a few files in the >>>>cx23885 >>>>>> driver to add it. Patches are welcome... >>>>>> > >>>>> >>>>>> Under auto detect without the enable_885_ir there is no difference >>>>so >>>>>> I can only hope someone will add support for it. >>>>> >>>>> I wasn't kidding when I said the patch is sholdn't be hard for >>>>anyone. >>>>> It is really, really simple cut-and-paste job. In fact here is an >>>>> *untested* patch. >>>>> >>>>> Regards, >>>>> Andy >>>>> >>>>> cx23885: Add IR Rx support for HVR-1270 boards >>>>> >>>>> Signed-off-by: Andy Walls <awalls@xxxxxxxxxxxxxxxx> >>>>> >>>>> >>>>> diff --git a/drivers/media/video/cx23885/cx23885-cards.c >>>>b/drivers/media/video/cx23885/cx23885-cards.c >>>>> index ea88722..5635588 100644 >>>>> --- a/drivers/media/video/cx23885/cx23885-cards.c >>>>> +++ b/drivers/media/video/cx23885/cx23885-cards.c >>>>> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev *dev) >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1800: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1200: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1400: >>>>> - case CX23885_BOARD_HAUPPAUGE_HVR1270: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1275: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1255: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1210: >>>>> /* FIXME: Implement me */ >>>>> break; >>>>> + case CX23885_BOARD_HAUPPAUGE_HVR1270: >>>>> + ret = cx23888_ir_probe(dev); >>>>> + if (ret) >>>>> + break; >>>>> + dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR); >>>>> + v4l2_subdev_call(dev->sd_cx25840, core, >>>>s_io_pin_config, >>>>> + ir_rx_pin_cfg_count, ir_rx_pin_cfg); >>>>> + break; >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1850: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1290: >>>>> ret = cx23888_ir_probe(dev); >>>>> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev *dev) >>>>> void cx23885_ir_fini(struct cx23885_dev *dev) >>>>> { >>>>> switch (dev->board) { >>>>> + case CX23885_BOARD_HAUPPAUGE_HVR1270: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1850: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1290: >>>>> cx23885_irq_remove(dev, PCI_MSK_IR); >>>>> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms, int >>>>tdi, int read_tdo) >>>>> void cx23885_ir_pci_int_enable(struct cx23885_dev *dev) >>>>> { >>>>> switch (dev->board) { >>>>> + case CX23885_BOARD_HAUPPAUGE_HVR1270: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1850: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1290: >>>>> if (dev->sd_ir) >>>>> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct cx23885_dev >>>>*dev) >>>>> case CX23885_BOARD_NETUP_DUAL_DVBS2_CI: >>>>> case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF: >>>>> case CX23885_BOARD_COMPRO_VIDEOMATE_E800: >>>>> + case CX23885_BOARD_HAUPPAUGE_HVR1270: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1850: >>>>> case CX23885_BOARD_MYGICA_X8506: >>>>> case CX23885_BOARD_MAGICPRO_PROHDTVE2: >>>>> diff --git a/drivers/media/video/cx23885/cx23885-input.c >>>>b/drivers/media/video/cx23885/cx23885-input.c >>>>> index e97cafd..bc28d2c 100644 >>>>> --- a/drivers/media/video/cx23885/cx23885-input.c >>>>> +++ b/drivers/media/video/cx23885/cx23885-input.c >>>>> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct >>>>cx23885_dev *dev, u32 events) >>>>> return; >>>>> >>>>> switch (dev->board) { >>>>> + case CX23885_BOARD_HAUPPAUGE_HVR1270: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1850: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1290: >>>>> case CX23885_BOARD_TEVII_S470: >>>>> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct >>>>cx23885_dev *dev) >>>>> >>>>> v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, ¶ms); >>>>> switch (dev->board) { >>>>> + case CX23885_BOARD_HAUPPAUGE_HVR1270: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1850: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1290: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1250: >>>>> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev *dev) >>>>> return -ENODEV; >>>>> >>>>> switch (dev->board) { >>>>> + case CX23885_BOARD_HAUPPAUGE_HVR1270: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1850: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1290: >>>>> case CX23885_BOARD_HAUPPAUGE_HVR1250: >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>>Thank you I just tested those changes and they work (in getting the IR >>>>to work to the same level as forcing the card model and not cause >>>>problems for the video) >>>> >>>>I still can't use the remote any more then forcing the card model but >>>>I have a guess on that. According to everything I have read the >>>>ir-kbd-i2c module is needed but it never auto loads on my system so I >>>>am thinking it is just not updated to know about this card and may >>>>only need the same type of changes as the cx23885 module. (I am >>>>guessing since I can't even program a Hello World) Is there any chance >>>>you would be able to see if any easy changes could be done to it. >>> >>> You don't need ir-kbd-i2c for this ir unit. If you don't have the right keymap loaded, the remote won't work though. >>> >>> The cx23885 module has a parameter called ir_888_debug (or something similar). Set it to a value of around 7 or so. The cx23885 module will log pulse and space measurments to dmesg or var/log/messages. That way you can at least verify pulses are being processed. >>> >>> If pulses are not being processed, check that the cable is firmly plugged into the card and that you have fresh batteries in the remote. >>> >>> I don't have a 1270 of my own, so I can't help too much. >>> >>> Andy >>> >> >> >> >> I have been unable to get any debug output but on two occasions I got >> the down arrow to work on the XBMC menu but both times were followed >> by the system locking up and I can't reproduce it anymore. >> >> Do I need the parameter to enable ir or not? I have tried it both ways. >> > > After a couple more 1 button freezes the computer. I had one occasion > that for about 20 seconds the remote was working perfect (play/pause, > arrows, volume) then it just stopped working for no reason (but > luckily didn't crash the computer) This was with no module parameters. > > So it can work but is extremely flaky. > I noticed something I missed from the debug parameter, when I press the first button after loading the module this error gets printed to the syslog do_IRQ: 3.185 No irq handler for vector (irq -1) I have reproduced it a few times to match up to the first button press but not after. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html