2008/6/19 Antti Palosaari &lt;<a href="mailto:crope@iki.fi" target="_blank">crope@iki.fi</a>&gt;:<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&#39;ve tried adding the mt2060 code - it compiles OK &amp; 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&#39;s my dmesg output:<br>Probing for m920x device at interface 0<br>dvb-usb: found a &#39;Dposh(mt2060 tuner) DVB-T USB2.0&#39; in cold state, will try to load a firmware<br>
dvb-usb: downloading firmware from file &#39;dvb-usb-dposh-01.fw&#39;<br>80 0 b0 0<br>ff<br>usb 5-1: USB disconnect, address 2<br>firmware uploaded!<br>dvb-usb: found a &#39;Dposh(qt1010 tuner) DVB-T USB2.0&#39; in cold state, will try to load a firmware<br>
dvb-usb: downloading firmware from file &#39;dvb-usb-dposh-01.fw&#39;<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 &#39;Dposh(mt2060 tuner) DVB-T USB2.0&#39; 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:[&lt;e095d10b&gt;] 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>&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00000060 e14a0001 c1c13d00 00010060 00000001 c1c13d37 c1ce6620 e14a54a2 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00000000 d95a2724 04c42760 d30a8004 00141cb5 e14a545c d95a2724 d95a2760 <br>
Call Trace:<br>&nbsp;[&lt;e14a5177&gt;] mt2060_readreg+0x51/0x70 [mt2060]<br>&nbsp;[&lt;e14a54a2&gt;] mt2060_attach+0x46/0x250 [mt2060]<br>&nbsp;[&lt;e14a545c&gt;] mt2060_attach+0x0/0x250 [mt2060]<br>&nbsp;[&lt;e0c43238&gt;] m920x_mt2060_tuner_attach+0x69/0x93 [dvb_usb_m920x]<br>
&nbsp;[&lt;e1492e0e&gt;] dvb_usb_adapter_frontend_init+0xc1/0xe4 [dvb_usb]<br>&nbsp;[&lt;e1492886&gt;] dvb_usb_device_init+0x43c/0x566 [dvb_usb]<br>&nbsp;[&lt;e0c436d7&gt;] m920x_probe+0xcd/0x2e7 [dvb_usb_m920x]<br>&nbsp;[&lt;e08d415c&gt;] usb_autopm_do_device+0xc7/0xd1 [usbcore]<br>
&nbsp;[&lt;e08d3d3a&gt;] usb_match_one_id+0x1c/0x71 [usbcore]<br>&nbsp;[&lt;e08d4be1&gt;] usb_probe_interface+0xbf/0x102 [usbcore]<br>&nbsp;[&lt;c0241860&gt;] driver_probe_device+0xde/0x15c<br>&nbsp;[&lt;c02bbab5&gt;] klist_next+0x63/0x6c<br>
&nbsp;[&lt;c0241970&gt;] __driver_attach+0x0/0x79<br>&nbsp;[&lt;c02419b6&gt;] __driver_attach+0x46/0x79<br>&nbsp;[&lt;c0240e3a&gt;] bus_for_each_dev+0x37/0x59<br>&nbsp;[&lt;c02416c7&gt;] driver_attach+0x16/0x18<br>&nbsp;[&lt;c0241970&gt;] __driver_attach+0x0/0x79<br>
&nbsp;[&lt;c0241120&gt;] bus_add_driver+0x6d/0x197<br>&nbsp;[&lt;e08d47c2&gt;] usb_register_driver+0x6d/0xd4 [usbcore]<br>&nbsp;[&lt;e0c36018&gt;] m920x_module_init+0x18/0x34 [dvb_usb_m920x]<br>&nbsp;[&lt;c0138f4e&gt;] blocking_notifier_call_chain+0x17/0x1a<br>
&nbsp;[&lt;c014377d&gt;] sys_init_module+0x15db/0x16f3<br>&nbsp;[&lt;c01640ca&gt;] vma_prio_tree_insert+0x17/0x2a<br>&nbsp;[&lt;e0c402ac&gt;] mt352_get_parameters+0x88/0x1f5 [mt352]<br>&nbsp;[&lt;e0c40644&gt;] mt352_set_parameters+0x116/0x2d6 [mt352]<br>
&nbsp;[&lt;e0c40554&gt;] mt352_set_parameters+0x26/0x2d6 [mt352]<br>&nbsp;[&lt;e0c4066c&gt;] mt352_set_parameters+0x13e/0x2d6 [mt352]<br>&nbsp;[&lt;c012c810&gt;] msleep+0x0/0x12<br>&nbsp;[&lt;e0c401d4&gt;] mt352_read_status+0x44/0x94 [mt352]<br>
&nbsp;[&lt;e0c40694&gt;] mt352_set_parameters+0x166/0x2d6 [mt352]<br>&nbsp;[&lt;c0103e5e&gt;] sysenter_past_esp+0x6b/0xa1<br>&nbsp;=======================<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 &lt;8b&gt; 40 0c 83 38 00 74 1f 8d 77 20 89 f0 e8 a2 fc 95 df 8b 5f 0c <br>
EIP: [&lt;e095d10b&gt;] i2c_transfer+0x13/0x42 [i2c_core] SS:ESP 0068:c1c13ce4<br>---[ end trace 769dc0c1be3fb9e2 ]---<br><br>I&#39;ve attached the m920x.c file that I have altered.<br>&nbsp;<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>

&nbsp; <br></div></div><br>
</blockquote></div><br>