2008/6/19 Antti Palosaari <<a href="mailto:crope@iki.fi" target="_blank">crope@iki.fi</a>>:<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="gmail_quote"><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div>Looks like small changes to m9206 driver is needed. MT2060 tuner needs<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
IF1, i2c-address and output clock bit (0/1 if I remeber correctly..).<br>
Those can be seen from windows sniffs or by guessing / testing. IF1 is<br>
easy to set default one, 1220, wrong IF1 only decreases performance. If<br>
there is eeprom used then value is normally read from there, otherwose<br>
just set default. clock is easy to test. I don“t know how many i2c-address<br>
are supported by chip, but most probably there is not too many. Hopefully<br>
only 4. You can look from specs or from other drivers what i2c-addresses<br>
are used for mt2060. I think it will take 2-10 test to find correct values<br>
by trial and error method.<br>
</blockquote></div></div></blockquote></div><div><br><br>I've tried adding the mt2060 code - it compiles OK & does seem to
be nearly right,the tuner is being recognised, but I think loading the
module causes the I2c bit of the kernel to Oops - would an incorrect
i2c address cause this?</div></div></blockquote><div>Here's my dmesg output:<br>Probing for m920x device at interface 0<br>dvb-usb: found a 'Dposh(mt2060 tuner) DVB-T USB2.0' in cold state, will try to load a firmware<br>
dvb-usb: downloading firmware from file 'dvb-usb-dposh-01.fw'<br>80 0 b0 0<br>ff<br>usb 5-1: USB disconnect, address 2<br>firmware uploaded!<br>dvb-usb: found a 'Dposh(qt1010 tuner) DVB-T USB2.0' in cold state, will try to load a firmware<br>
dvb-usb: downloading firmware from file 'dvb-usb-dposh-01.fw'<br>m920x_read = error: -19<br>usb 5-1: new high speed USB device using ehci_hcd and address 3<br>usb 5-1: configuration #1 chosen from 1 choice<br>Probing for m920x device at interface 0<br>
dvb-usb: found a 'Dposh(mt2060 tuner) DVB-T USB2.0' in warm state.<br>dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<br>DVB: registering new adapter (Dposh(mt2060 tuner) DVB-T USB2.0)<br>
m920x_mt352_frontend_attach<br>DVB: registering frontend 0 (Zarlink MT352 DVB-T)...<br>m920x_mt2060_tuner_attach<br>BUG: unable to handle kernel NULL pointer dereference at virtual address 0000006c<br>printing eip: e095d10b *pde = 00000000 <br>
Oops: 0000 [#1] SMP <br>Modules linked in: mt2060 mt352 dvb_usb_m920x dvb_usb dvb_core // and all the other modules<br><br>Pid: 4190, comm: modprobe Not tainted (2.6.24-1-686 #1)<br>EIP: 0060:[<e095d10b>] EFLAGS: 00010286 CPU: 0<br>
EIP is at i2c_transfer+0x13/0x42 [i2c_core]<br>EAX: 00000060 EBX: ffffffda ECX: 00000002 EDX: c1c13d04<br>ESI: 000004c4 EDI: 00000060 EBP: 00000002 ESP: c1c13ce4<br> DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068<br>Process modprobe (pid: 4190, ti=c1c12000 task=d3122650 task.ti=c1c12000)<br>
Stack: c1c13d04 c1ce0060 000004c4 e0c4770c 00000060 e14a5177 e14a5934 e0c44200 <br> 00000060 e14a0001 c1c13d00 00010060 00000001 c1c13d37 c1ce6620 e14a54a2 <br> 00000000 d95a2724 04c42760 d30a8004 00141cb5 e14a545c d95a2724 d95a2760 <br>
Call Trace:<br> [<e14a5177>] mt2060_readreg+0x51/0x70 [mt2060]<br> [<e14a54a2>] mt2060_attach+0x46/0x250 [mt2060]<br> [<e14a545c>] mt2060_attach+0x0/0x250 [mt2060]<br> [<e0c43238>] m920x_mt2060_tuner_attach+0x69/0x93 [dvb_usb_m920x]<br>
[<e1492e0e>] dvb_usb_adapter_frontend_init+0xc1/0xe4 [dvb_usb]<br> [<e1492886>] dvb_usb_device_init+0x43c/0x566 [dvb_usb]<br> [<e0c436d7>] m920x_probe+0xcd/0x2e7 [dvb_usb_m920x]<br> [<e08d415c>] usb_autopm_do_device+0xc7/0xd1 [usbcore]<br>
[<e08d3d3a>] usb_match_one_id+0x1c/0x71 [usbcore]<br> [<e08d4be1>] usb_probe_interface+0xbf/0x102 [usbcore]<br> [<c0241860>] driver_probe_device+0xde/0x15c<br> [<c02bbab5>] klist_next+0x63/0x6c<br>
[<c0241970>] __driver_attach+0x0/0x79<br> [<c02419b6>] __driver_attach+0x46/0x79<br> [<c0240e3a>] bus_for_each_dev+0x37/0x59<br> [<c02416c7>] driver_attach+0x16/0x18<br> [<c0241970>] __driver_attach+0x0/0x79<br>
[<c0241120>] bus_add_driver+0x6d/0x197<br> [<e08d47c2>] usb_register_driver+0x6d/0xd4 [usbcore]<br> [<e0c36018>] m920x_module_init+0x18/0x34 [dvb_usb_m920x]<br> [<c0138f4e>] blocking_notifier_call_chain+0x17/0x1a<br>
[<c014377d>] sys_init_module+0x15db/0x16f3<br> [<c01640ca>] vma_prio_tree_insert+0x17/0x2a<br> [<e0c402ac>] mt352_get_parameters+0x88/0x1f5 [mt352]<br> [<e0c40644>] mt352_set_parameters+0x116/0x2d6 [mt352]<br>
[<e0c40554>] mt352_set_parameters+0x26/0x2d6 [mt352]<br> [<e0c4066c>] mt352_set_parameters+0x13e/0x2d6 [mt352]<br> [<c012c810>] msleep+0x0/0x12<br> [<e0c401d4>] mt352_read_status+0x44/0x94 [mt352]<br>
[<e0c40694>] mt352_set_parameters+0x166/0x2d6 [mt352]<br> [<c0103e5e>] sysenter_past_esp+0x6b/0xa1<br> =======================<br>Code: ff ff ff 8b 53 08 0f b7 4b 04 0f b6 c0 e8 90 ff ff ff 5a 5b 0f b6 c0 c3 55 89 cd 57 89 c7 56 53 bb da ff ff ff 83 ec 04 89 14 24 <8b> 40 0c 83 38 00 74 1f 8d 77 20 89 f0 e8 a2 fc 95 df 8b 5f 0c <br>
EIP: [<e095d10b>] i2c_transfer+0x13/0x42 [i2c_core] SS:ESP 0068:c1c13ce4<br>---[ end trace 769dc0c1be3fb9e2 ]---<br><br>I've attached the m920x.c file that I have altered.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="gmail_quote"><div><br>
<br>
<br></div></div><br>
</blockquote></div><br>