> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Greg Hormann > Sent: 28 August 2007 02:11 > To: [email protected] > Subject: [ivtv-devel] ivtv-fb: Oops: mtrr: type mismatch > > > I've tried to use ivtv-fb from both 1.0.0 and 1.0.2. With > either version, I receive the same Oops when loading the > driver. Anyone have any suggestions? > > Linux 2.6.22-gentoo-r5 > Card 0: Hauppauge WinTV PVR-250 > Card 1: Hauppauge WinTV PVR-350 > > Kernel Config: http://www.kconline.com/ghormann/config.txt > > > > ivtv: ==================== START INIT IVTV ==================== > ivtv: version 1.0.0 (2.6.22-gentoo-r5 SMP mod_unload > PENTIUMIII ) loading > ivtv0: Autodetected Hauppauge card (cx23416 based) > ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18 > ACPI: PCI Interrupt 0000:01:06.0[A] -> Link [APC3] -> GSI 18 > (level, high) > -> IRQ 19 > ivtv0: Unreasonably low latency timer, setting to 64 (was 32) > ivtv0: loaded v4l-cx2341x-enc.fw firmware (376836 bytes) > ivtv0: Encoder revision: 0x02060039 > i2c-adapter i2c-0: Client creation failed at 0x40 (-5) > saa7115 0-0021: saa7115 found (1f7115d0e100000) @ 0x42 (ivtv > i2c driver > #0) > msp3400 0-0040: MSP4448G-A2 found @ 0x80 (ivtv i2c driver #0) > msp3400 0-0040: MSP4448G-A2 supports radio, mode is > autodetect and autoselect tveeprom 0-0050: Hauppauge model > 32552, rev C168, serial# 8015637 tveeprom 0-0050: tuner model > is LG TAPE H001F MK3 (idx 68, type 47) tveeprom 0-0050: TV > standards NTSC(M) (eeprom 0x08) tveeprom 0-0050: audio > processor is MSP4448 (idx 27) tveeprom 0-0050: decoder > processor is SAA7115 (idx 19) tveeprom 0-0050: has radio, has > no IR receiver, has no IR transmitter > ivtv0: Autodetected Hauppauge WinTV PVR-250 tuner 0-0043: > chip found @ 0x86 (ivtv i2c driver #0) > tda9887 0-0043: tda988[5/6/7] found @ 0x43 (tuner) tuner > 0-0061: chip found @ 0xc2 (ivtv i2c driver #0) tuner 0-0061: > type set to 47 (LG NTSC (TAPE series)) > ivtv0: Registered device video0 for encoder MPEG (4 MB) > ivtv0: Registered device video32 for encoder YUV (2 MB) > ivtv0: Registered device vbi0 for encoder VBI (1 MB) > ivtv0: Registered device video24 for encoder PCM audio (1 MB) > ivtv0: Registered device radio0 for encoder radio > ivtv0: Initialized Hauppauge WinTV PVR-250, card #0 > ivtv: ====================== NEXT CARD ====================== > ivtv1: Autodetected Hauppauge card (cx23415 based) > ACPI: PCI Interrupt 0000:01:0a.0[A] -> Link [APC3] -> GSI 18 > (level, high) > -> IRQ 19 > ivtv1: Unreasonably low latency timer, setting to 64 (was 32) > ivtv1: loaded v4l-cx2341x-enc.fw firmware (376836 bytes) > ivtv1: loaded v4l-cx2341x-dec.fw firmware (262144 bytes) > ivtv1: Encoder revision: 0x02060039 > ivtv1: Decoder revision: 0x02020023 > i2c-adapter i2c-1: Client creation failed at 0x40 (-5) > saa7115 1-0021: saa7115 found (1f7115d0e100000) @ 0x42 (ivtv > i2c driver > #1) > saa7127 1-0044: saa7129 found @ 0x88 (ivtv i2c driver #1) > msp3400 1-0040: MSP4448G-A2 found @ 0x80 (ivtv i2c driver #1) > msp3400 1-0040: MSP4448G-A2 supports radio, mode is > autodetect and autoselect tuner 1-0043: chip found @ 0x86 > (ivtv i2c driver #1) > tda9887 1-0043: tda988[5/6/7] found @ 0x43 (tuner) tuner > 1-0061: chip found @ 0xc2 (ivtv i2c driver #1) tveeprom > 1-0050: Hauppauge model 48132, rev K268, serial# 7876226 > tveeprom 1-0050: tuner model is LG TAPE H001F MK3 (idx 68, > type 47) tveeprom 1-0050: TV standards NTSC(M) (eeprom 0x08) > tveeprom 1-0050: audio processor is MSP4448 (idx 27) tveeprom > 1-0050: decoder processor is SAA7115 (idx 19) tveeprom > 1-0050: has radio, has IR receiver, has no IR transmitter > ivtv1: Autodetected Hauppauge WinTV PVR-350 tuner 1-0061: > type set to 47 (LG NTSC (TAPE series)) > ivtv1: Registered device video1 for encoder MPEG (4 MB) > ivtv1: Registered device video33 for encoder YUV (2 MB) > ivtv1: Registered device vbi1 for encoder VBI (1 MB) > ivtv1: Registered device video25 for encoder PCM audio (1 MB) > ivtv1: Registered device radio1 for encoder radio > ivtv1: Registered device video17 for decoder MPEG (1 MB) > ivtv1: Registered device vbi9 for decoder VBI (1 MB) > ivtv1: Registered device vbi17 for decoder VOUT > ivtv1: Registered device video49 for decoder YUV (1 MB) > ivtv1: loaded v4l-cx2341x-init.mpg firmware (155648 bytes) > ivtv1: Initialized Hauppauge WinTV PVR-350, card #1 > ivtv: ==================== END INIT IVTV ==================== > > ivtv1-fb: Framebuffer at 0x1510000, mapped to 0x00510000, size 1665k > mtrr: type mismatch for 1400000,400000 old: write-back new: > write-combining > ivtv1-fb: warning: mtrr_add() failed to add write combining > region 0x01400000-0x 01800000 > BUG: unable to handle kernel paging request at virtual > address 00510000 printing eip: > de8792ea > *pde = 00000000 > Oops: 0002 [#1] > Modules linked in: ivtv_fb tuner ivtv tveeprom lirc_dev > CPU: 0 > EIP: 0060:[<de8792ea>] Not tainted VLI > EFLAGS: 00010216 (2.6.22-gentoo-r5 #16) > EIP is at ivtvfb_init_card+0x1bf/0x639 [ivtv_fb] > eax: 00000000 ebx: ffe00000 ecx: 00068100 edx: 001a0400 > esi: dc020000 edi: 00510000 ebp: de87b480 esp: db2a5e28 > ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068 > Process modprobe (pid: 2503, ti=db2a4000 task=dd698a50 > task.ti=db2a4000) > Stack: de87a28b 00000001 01400000 01800000 00000681 000002d8 > dd698b60 00510000 > 002c0800 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 00000000 00000000 00000000 00000000 00000000 00000000 > 00000000 dc020000 Call Trace: > [<de81d05a>] ivtvfb_init+0x5a/0xcc [ivtv_fb] [<c01361e8>] > sys_init_module+0x14e3/0x1627 [<de84d0c4>] > ivtv_udma_setup+0x0/0x21f [ivtv] [<c0102fea>] > sysenter_past_esp+0x5f/0x85 ======================= > Code: 89 4c 24 04 c7 04 24 8b a2 87 de 89 54 24 0c 89 44 24 > 08 e8 05 22 8a > e1 8b > 86 d8 f4 00 00 8b 50 0c 8b 78 08 31 c0 89 d1 c1 e9 02 <f3> > ab f6 c2 02 74 > 02 66 > ab f6 c2 01 74 01 aa 83 3d 88 c6 87 de > EIP: [<de8792ea>] ivtvfb_init_card+0x1bf/0x639 [ivtv_fb] SS:ESP > 0068:db2a5e28 > This is almost definitely caused by a mismatch of header files between ivtv-fb & the kernel. Hans tried to add things to detect which header to use but it sounds like that isn't working in this case. The difference is in the ivtv struct having an extra member in newer kernels. In the latest ivtv-fb driver source (1.0.2 I think) there are 2 copies of the header. Make sure it is using the one that matches the ivtv-driver.h in the kernel. Or alternatively as a temporary workaround copy the one from the kernel into the ivtv-fb source and make sure you compile using that one.
Unfortunately I had a disk failure in my linux box yesterday so it's not running at the moment so treat this as a guide rather than being 100% accurate. JOhn _______________________________________________ ivtv-devel mailing list [email protected] http://ivtvdriver.org/mailman/listinfo/ivtv-devel
