LinHES Forums
http://forums.linhes.org/

kworld 115 card install messes up Hauppauge PVR-250 remote
http://forums.linhes.org/viewtopic.php?f=5&t=15010
Page 1 of 1

Author:  marc.aronson [ Sun Apr 22, 2007 10:38 am ]
Post subject:  kworld 115 card install messes up Hauppauge PVR-250 remote

My kworld 115 card now works properly with my R5D1 install, but it is causing problems with my Hauppauge PVR-250 remote. The symptom is that the system will appears to "miss" some of the button presses. I've done a bunch of digging, and it appears the problem is that the driver "ir-kbd-i2c" is having a bit of a "tug-of-war" with LIRC and prevents some of the presses from properly getting through. Unfortunately, the SAA7134 driver seems to require that ir-kbd-i2c be loaded, even if I set "disable_ir=1".

In doing some research I found an email where someone has posted a patch for ir-kbd-i2c that essentially disables it for Hauppauge remotes so that it won't interfear with LIRC. ( http://marc.info/?l=linux-video&m=116663706008779&w=2 ). Unfortunately, I can't figure out the right way to build ir-kbd-i2c.ko

Here are my questions:

1. Does anyone have a simpler solution for this problem than re-building ir-kbd-i2c?

2. Can someone briefly describe to me how to properly rebuild this driver. (I've already uncompressed the kernel sources, but I can't figure out where I need to go to properly run the make after making the edits.)

Any help would be appreciated -- thanks!

Marc

Author:  marc.aronson [ Sun Apr 22, 2007 11:19 am ]
Post subject: 

OK, I gave up about 15 minutes too soon. I figured out how to compile the driver and my Hauppauge remote works perfectly now. Here is what I did:

1. Made the edits to the source file: /usr/src/kernel-source-2.6.17-chw-8/drivers/media/video/ir-kbd-i2c.c

2. cd /usr/src/kernel-source-2.6.17-chw-8

3. make drivers/media/video/ir-kbd-i2c.ko

I actually simplified the source code edits in ir-kbd-i2c.c a bit. What I've done is definitely hardcoded and not the more general approach provided in the original thread, but it works for my specific situation and made doing the proper edits a bit easier.
Code:
        case 0x1a:
                name        = "Hauppauge";
                ir->get_key = get_key_haup;
                ir_type     = IR_TYPE_RC5;
                if (hauppauge == 1) {
/* Next 3 lines added by marc */
                        input_free_device(input_dev);
                        kfree(ir);
                        return -1;
                        ir_codes    = ir_codes_hauppauge_new;
                } else {

/* Next 3 lines added by marc */
                        input_free_device(input_dev);
                        kfree(ir);
                        return -1;
                        ir_codes    = ir_codes_rc5_tv;
                }
                break;


Marc

Author:  no2u [ Thu Jun 28, 2007 5:07 am ]
Post subject: 

FYI, patching ir-kbd-i2c as described above worked for me in R5F1 (couldn't just rename the module since I'm using the KWorld 115 plus a PVR150 & PVR250), but note the kernel version number is different in R5F1. Also of course you need to copy the resulting ir-kbd-i2c.ko file to the /lib/modules/2.6.18-chw-13/kernel/drivers/media/video directory and reboot. Note I had also updated ivtv to 0.10.3 earlier but that had no effect.

Author:  marc.aronson [ Thu Jun 28, 2007 7:28 am ]
Post subject: 

Thanks for posting this -- it will save me time when I do my upgrade.

Marc

Author:  no2u [ Mon Jul 02, 2007 10:10 pm ]
Post subject: 

Looks like I spoke too soon. While the aforementioned ir-kbd-i2c patch fixed the Hauppauge remote problem (missed button presses), the ir-kbd-i2c driver was still stomping on the Hauppauge cards i2c registers during boot (somewhat intermittently due to parallel driver loads by udev). One side effect of this problem is that my PVR-250 was intermittently showing up as a PVR-150 (see ivtv driver output in this post: http://www.mysettopbox.tv/phpBB2/viewtopic.php?t=15449&highlight= ). I suspected a conflict with ir-kbd-i2c since I found I could eliminate the problem by renaming ir-kbd-i2c.ko so it doesn't get loaded during POST. However, my Kworld ATSC 115 would of course no longer work, since the saa7134 driver couldn't pull in ir-kbd-i2c.

The solution I finally had success with was to disable the ir-kbd-i2c driver BEFORE it starts mucking with registers on ANY video card. (Really I doubt whether its safe to have ir-kbd-i2c and lirc both trying to provide the same ir functionality anyway). To do this, just comment out the following "if" statement in the ir_probe function in ir-kbd-i2c (leaving the return 0), recompile, copy the driver to the location mentioned above, and reboot.
Code:
//   if (NULL == probe)     // no2u commented out this line
      return 0;

This disables ir-kbd-i2c entirely so you may not be able to use the Kworld card for your ir remote, but I didn't care. NOW I can finally use the Kworld ATSC 115 in the same system without ir-kbd-i2c breaking my Hauppauge cards.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/