On Sat, 2008-07-19 at 12:31 -0400, Gerhard R. Wittreich wrote: > Quoting "Andy Walls" <[EMAIL PROTECTED]>:
> >> [ 40.908515] cx18-0: frontend initialization failed > >> [ 40.909898] cx18-0: DVB failed to register > >> [ 40.910014] cx18-0: Registered device video32 for encoder YUV (2 MB) > >> [ 40.910072] cx18-0: Registered device video24 for encoder PCM > >> audio (1 MB) > >> [ 40.910125] cx18-0: Registered device radio0 for encoder radio > >> [ 40.910502] cx18-0: Error -12 registering devices > >> [ 40.911545] tda9887 1-0043: destroying instance > >> [ 40.913485] cx18-0: Error -12 on initialization > >> [ 40.913802] cx18: probe of 0000:02:07.0 failed with error -12 > > > > -12 is -ENOMEM. Please try adding 'vmalloc=256M' to your kernel command > > line to see if that resolves the problem. > > > Wow...Almost!. I added vmalloc=256M, rebooted and, for the first > time, the card was fully initialized. I went into MythTV and was able > to see both tuners. Unfortunately, when I tried to use one of the > tuner there was no signal/picture. I decided to exit MythTV and > remove and re-add cx18. The card now failed in the exact manner as > before. Multiple attempts along with a reboot did not help. Back to > where we started. This is also Michael's symptom: every once in a while the EEPROM can be read properly but actually using the card doesn't work. Hmm... Can you post the output of the successful initialization? It should still be in /var/log/messages > > But it still is an indicator of an underlying problem with > > getting the first I2C bus on your card working properly. Without that > > working, the CX23418 can't command the other devices on the HVR-1600 to > > do anything. > > > > Please see the message I just sent to the list in response to a similar > > problem encountered by Matt Loomis. You may want to try the software at > > my repo: > > > > http://linuxtv.org/hg/~awalls/cx18-i2c > > > I loaded and installed these drivers and left all timing settings > where you set them. No luck...Tried a reboot as well. Here is the > data you requested. > > 1. No debugging enabled > > [10849.341989] cx18: Start initialization, version 1.0.0 > [10849.342682] cx18-0: Initializing card #0 > [10849.342700] cx18-0: Autodetected Hauppauge card > [10849.345683] cx18-0: cx23418 revision 01010000 (B) > [10850.672122] i2c-adapter i2c-0: adapter [cx18 i2c driver #0-0] registered > [10850.675639] i2c-adapter i2c-1: adapter [cx18 i2c driver #0-1] registered > [10850.675669] i2c-adapter i2c-0: master_xfer[0] W, addr=0x50, len=1 > [10850.702540] tveeprom 0-0050: Huh, no eeprom present (err=-121)? > [10850.702558] tveeprom 0-0050: Encountered bad packet header [20]. > Corrupt or not a Hauppauge eeprom. Hmm. [20] is not [00] - not sure what that means. It's invalid data, but it's not all 0's or all 1's. > [10850.702564] cx18-0: Invalid EEPROM > [10850.702571] cx18-0: VBI is not yet supported > [10850.804417] i2c-adapter i2c-1: Probing failed, no device found > [10850.804435] i2c-adapter i2c-1: master_xfer[0] W, addr=0x43, len=0 > [10850.823269] i2c 1-0043: uevent > [10850.882631] tuner 1-0043: probe > [10850.882772] i2c-adapter i2c-1: master_xfer[0] W, addr=0x43, len=1 > [10850.916624] i2c-adapter i2c-1: master_xfer[0] R, addr=0x43, len=8 > [10851.060336] tuner 1-0043: chip found @ 0x86 (cx18 i2c driver #0-1) > [10851.061667] tda9887 1-0043: creating new instance > [10851.061682] tda9887 1-0043: tda988[5/6/7] found > [10851.061695] i2c-adapter i2c-1: master_xfer[0] W, addr=0x43, len=4 > [10851.140983] i2c-adapter i2c-1: client [tuner] registered with bus id 1-0043 > [10851.141003] i2c-adapter i2c-1: master_xfer[0] W, addr=0x61, len=0 > [10851.159597] i2c 1-0061: uevent > [10851.226835] tuner 1-0061: probe > [10851.226861] tuner 1-0061: chip found @ 0xc2 (cx18 i2c driver #0-1) > [10851.227602] i2c-adapter i2c-1: client [tuner] registered with bus id 1-0061 The analog tuner on the second bus I2C bus is alive and well. > [10851.228161] i2c 0-004c: uevent > [10851.290255] cs5345 0-004c: probe > [10851.290276] cs5345 0-004c: chip found @ 0x98 (cx18 i2c driver #0-0) > [10851.290285] i2c-adapter i2c-0: master_xfer[0] W, addr=0x4c, len=2 > [10851.324479] i2c-adapter i2c-0: master_xfer[0] W, addr=0x4c, len=2 > [10851.346898] i2c-adapter i2c-0: master_xfer[0] W, addr=0x4c, len=2 > [10851.369283] i2c-adapter i2c-0: client [cs5345] registered with bus > id 0-004c > [10851.370333] cx18-0: Disabled encoder IDX device > [10851.370994] cx18-0: Registered device video0 for encoder MPEG (2 MB) > [10851.378910] DVB: registering new adapter (cx18) > [10851.380301] i2c-adapter i2c-0: master_xfer[0] W, addr=0x19, len=1 > [10851.380314] i2c-adapter i2c-0: master_xfer[1] R, addr=0x19, len=2 > [10851.381829] firmware: requesting v4l-cx23418-apu.fw > [10851.419710] cx18-0: Mismatch at offset 10 > [10851.428037] s5h1409_readreg: readreg error (ret == -121) > [10851.428187] cx18-0: frontend initialization failed > [10851.431417] cx18-0: DVB failed to register > [10851.916025] cx18-0: Retry loading firmware > [10851.920698] firmware: requesting v4l-cx23418-apu.fw > [10851.929715] cx18-0: Mismatch at offset 10 So this is interesting, a failed apu firmware load process at about the same time we're trying to talk to the CX24227 (S5H1409) demodulator on the first I2C bus. I have to investigate what's causing the firmware load to start right away. I don't think it should happen until something opens a v4l2 device node or a dvb device node. > [10852.428035] cx18-0: Failed to initialize on minor 0 > [10852.428850] cx18-0: Registered device video32 for encoder YUV (2 MB) > [10852.428897] cx18-0: Registered device video24 for encoder PCM audio (1 MB) > [10852.428939] cx18-0: Registered device radio0 for encoder radio > [10852.429347] cx18-0: Error -12 registering devices Out of memory. Try a larger vmalloc number on the kernel command line and see if it helps. The register space of the CX23418 needs at least 64 MB of virtual addresses to be mapped in. Modules themselves use vmalloc address space and real memory. I'm not sure where the memory for the streams is being allocaed from; I'll have to download the kernel source and see if it also comes from vmalloc space. You can also use module parameters to the cx18 module to set the radio, PCM, YUV, and TS buffers to 0 and only allocate MPEG buffers. That's a short term fix. > [10852.429748] i2c 0-004c: uevent > [10852.429818] i2c-adapter i2c-0: adapter [cx18 i2c driver #0-0] unregistered > [10852.429857] tuner 1-0043: remove > [10852.429864] tda9887 1-0043: destroying instance > [10852.429880] i2c 1-0043: uevent > [10852.429924] tuner 1-0061: remove > [10852.429935] i2c 1-0061: uevent > [10852.429998] i2c-adapter i2c-1: adapter [cx18 i2c driver #0-1] unregistered > [10852.431345] cx18-0: Error -12 on initialization > [10852.431369] cx18: probe of 0000:02:07.0 failed with error -12 > [10852.431425] cx18: End initialization > > > 2. tveeprom enabled > > [11397.932311] cx18: Start initialization, version 1.0.0 > [11397.933037] cx18-0: Initializing card #0 > [11397.933057] cx18-0: Autodetected Hauppauge card > [11397.935994] cx18-0: cx23418 revision 01010000 (B) > [11399.264135] i2c-adapter i2c-0: adapter [cx18 i2c driver #0-0] registered > [11399.267656] i2c-adapter i2c-1: adapter [cx18 i2c driver #0-1] registered > [11399.267685] i2c-adapter i2c-0: master_xfer[0] W, addr=0x50, len=1 > [11399.294420] tveeprom 0-0050: Huh, no eeprom present (err=-121)? > [11399.294438] tveeprom 0-0050: Encountered bad packet header [20]. > Corrupt or not a Hauppauge eeprom. > [11399.294444] cx18-0: Invalid EEPROM Same exact value on failure: '[20]'. At least it's repeatable. > [11399.294451] cx18-0: VBI is not yet supported > [11399.396328] i2c-adapter i2c-1: Probing failed, no device found > [11399.396345] i2c-adapter i2c-1: master_xfer[0] W, addr=0x43, len=0 > [11399.415371] i2c 1-0043: uevent > [11399.473534] tuner 1-0043: probe > [11399.473674] i2c-adapter i2c-1: master_xfer[0] W, addr=0x43, len=1 > [11399.507551] i2c-adapter i2c-1: master_xfer[0] R, addr=0x43, len=8 > [11399.637877] tuner 1-0043: chip found @ 0x86 (cx18 i2c driver #0-1) > [11399.638994] tda9887 1-0043: creating new instance > [11399.639007] tda9887 1-0043: tda988[5/6/7] found > [11399.639020] i2c-adapter i2c-1: master_xfer[0] W, addr=0x43, len=4 > [11399.718522] i2c-adapter i2c-1: client [tuner] registered with bus id 1-0043 > [11399.718543] i2c-adapter i2c-1: master_xfer[0] W, addr=0x61, len=0 > [11399.737656] i2c 1-0061: uevent > [11399.812409] tuner 1-0061: probe > [11399.812434] tuner 1-0061: chip found @ 0xc2 (cx18 i2c driver #0-1) > [11399.813253] i2c-adapter i2c-1: client [tuner] registered with bus id 1-0061 > [11399.813800] i2c 0-004c: uevent > [11399.844050] cs5345 0-004c: probe > [11399.844071] cs5345 0-004c: chip found @ 0x98 (cx18 i2c driver #0-0) > [11399.844080] i2c-adapter i2c-0: master_xfer[0] W, addr=0x4c, len=2 > [11399.904184] i2c-adapter i2c-0: master_xfer[0] W, addr=0x4c, len=2 > [11399.937240] i2c-adapter i2c-0: master_xfer[0] W, addr=0x4c, len=2 > [11399.959762] i2c-adapter i2c-0: client [cs5345] registered with bus > id 0-004c > [11399.960829] cx18-0: Disabled encoder IDX device > [11399.961489] cx18-0: Registered device video0 for encoder MPEG (2 MB) > [11399.969365] DVB: registering new adapter (cx18) > [11399.970614] i2c-adapter i2c-0: master_xfer[0] W, addr=0x19, len=1 > [11399.970640] i2c-adapter i2c-0: master_xfer[1] R, addr=0x19, len=2 > [11399.977793] firmware: requesting v4l-cx23418-apu.fw > [11400.014693] s5h1409_readreg: readreg error (ret == -121) > [11400.014842] cx18-0: frontend initialization failed > [11400.023524] cx18-0: Mismatch at offset 10 > [11400.028135] cx18-0: DVB failed to register > [11400.520037] cx18-0: Retry loading firmware > [11400.524695] firmware: requesting v4l-cx23418-apu.fw > [11400.534781] cx18-0: Mismatch at offset 10 > [11401.032029] cx18-0: Failed to initialize on minor 0 > [11401.032842] cx18-0: Registered device video32 for encoder YUV (2 MB) > [11401.032889] cx18-0: Registered device video24 for encoder PCM audio (1 MB) > [11401.032934] cx18-0: Registered device radio0 for encoder radio > [11401.033353] cx18-0: Error -12 registering devices > [11401.033755] i2c 0-004c: uevent > [11401.033826] i2c-adapter i2c-0: adapter [cx18 i2c driver #0-0] unregistered > [11401.033864] tuner 1-0043: remove > [11401.033871] tda9887 1-0043: destroying instance > [11401.033887] i2c 1-0043: uevent > [11401.033931] tuner 1-0061: remove > [11401.033941] i2c 1-0061: uevent > [11401.034003] i2c-adapter i2c-1: adapter [cx18 i2c driver #0-1] unregistered > [11401.035350] cx18-0: Error -12 on initialization > [11401.035374] cx18: probe of 0000:02:07.0 failed with error -12 > [11401.035431] cx18: End initialization Cases 1 & 2 failed in the exact same manner in the exact same places. That sort of repeatability surprises me, but it may make things easier. > 3. tveeprom and i2c_algo_bit debugging > > I tried setting i2c_algo_bit debugging with 'modprobe is2_algo_bit > debug=1' and got an i2c_algo_bit: Unknown parameter `debug' error. By default, on Fedora at least, it's not compiled in. It looks like you'd also have to rebuild this kernel module with your kernel source to turn it on. Oh, well... > 4. with tveeprom, i2c_algo_bit, and "cx18 debug=321" debugging. > > Big output (320k)...I mailed this directly to you. Not sure if that > is the best approach. That's fine. I usually draw the line at about 1 MB. > Thanks for your help. You're welcome. Regards, Andy > > > > after reading the explanation of the changes in that previous message. > > > > Regards, > > Andy > > > >> --Gerhard > > > > > > > > _______________________________________________ > > ivtv-users mailing list > > [email protected] > > http://ivtvdriver.org/mailman/listinfo/ivtv-users > > > > > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > _______________________________________________ > ivtv-users mailing list > [email protected] > http://ivtvdriver.org/mailman/listinfo/ivtv-users > _______________________________________________ ivtv-users mailing list [email protected] http://ivtvdriver.org/mailman/listinfo/ivtv-users
