[linux-dvb] Dposh DVB-T USB2.0 seems to not work properly

Andrew Websdale websdaleandrew at googlemail.com
Mon Jun 23 20:58:01 CEST 2008

2008/6/19 Antti Palosaari <crope at iki.fi>:
> Looks like small changes to m9206 driver is needed. MT2060 tuner needs
>>> IF1, i2c-address and output clock bit (0/1 if I remeber correctly..).
>>> Those can be seen from windows sniffs or by guessing / testing. IF1 is
>>> easy to set default one, 1220, wrong IF1 only decreases performance. If
>>> there is eeprom used then value is normally read from there, otherwose
>>> just set default. clock is easy to test. I don´t know how many
>>> i2c-address
>>> are supported by chip, but most probably there is not too many. Hopefully
>>> only 4. You can look from specs or from other drivers what i2c-addresses
>>> are used for mt2060. I think it will take 2-10 test to find correct
>>> values
>>> by trial and error method.
> 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?
Here's my dmesg output:
Probing for m920x device at interface 0
dvb-usb: found a 'Dposh(mt2060 tuner) DVB-T USB2.0' in cold state, will try
to load a firmware
dvb-usb: downloading firmware from file 'dvb-usb-dposh-01.fw'
80 0 b0 0
usb 5-1: USB disconnect, address 2
firmware uploaded!
dvb-usb: found a 'Dposh(qt1010 tuner) DVB-T USB2.0' in cold state, will try
to load a firmware
dvb-usb: downloading firmware from file 'dvb-usb-dposh-01.fw'
m920x_read = error: -19
usb 5-1: new high speed USB device using ehci_hcd and address 3
usb 5-1: configuration #1 chosen from 1 choice
Probing for m920x device at interface 0
dvb-usb: found a 'Dposh(mt2060 tuner) DVB-T USB2.0' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software
DVB: registering new adapter (Dposh(mt2060 tuner) DVB-T USB2.0)
DVB: registering frontend 0 (Zarlink MT352 DVB-T)...
BUG: unable to handle kernel NULL pointer dereference at virtual address
printing eip: e095d10b *pde = 00000000
Oops: 0000 [#1] SMP
Modules linked in: mt2060 mt352 dvb_usb_m920x dvb_usb dvb_core // and all
the other modules

Pid: 4190, comm: modprobe Not tainted (2.6.24-1-686 #1)
EIP: 0060:[<e095d10b>] EFLAGS: 00010286 CPU: 0
EIP is at i2c_transfer+0x13/0x42 [i2c_core]
EAX: 00000060 EBX: ffffffda ECX: 00000002 EDX: c1c13d04
ESI: 000004c4 EDI: 00000060 EBP: 00000002 ESP: c1c13ce4
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process modprobe (pid: 4190, ti=c1c12000 task=d3122650 task.ti=c1c12000)
Stack: c1c13d04 c1ce0060 000004c4 e0c4770c 00000060 e14a5177 e14a5934
       00000060 e14a0001 c1c13d00 00010060 00000001 c1c13d37 c1ce6620
       00000000 d95a2724 04c42760 d30a8004 00141cb5 e14a545c d95a2724
Call Trace:
 [<e14a5177>] mt2060_readreg+0x51/0x70 [mt2060]
 [<e14a54a2>] mt2060_attach+0x46/0x250 [mt2060]
 [<e14a545c>] mt2060_attach+0x0/0x250 [mt2060]
 [<e0c43238>] m920x_mt2060_tuner_attach+0x69/0x93 [dvb_usb_m920x]
 [<e1492e0e>] dvb_usb_adapter_frontend_init+0xc1/0xe4 [dvb_usb]
 [<e1492886>] dvb_usb_device_init+0x43c/0x566 [dvb_usb]
 [<e0c436d7>] m920x_probe+0xcd/0x2e7 [dvb_usb_m920x]
 [<e08d415c>] usb_autopm_do_device+0xc7/0xd1 [usbcore]
 [<e08d3d3a>] usb_match_one_id+0x1c/0x71 [usbcore]
 [<e08d4be1>] usb_probe_interface+0xbf/0x102 [usbcore]
 [<c0241860>] driver_probe_device+0xde/0x15c
 [<c02bbab5>] klist_next+0x63/0x6c
 [<c0241970>] __driver_attach+0x0/0x79
 [<c02419b6>] __driver_attach+0x46/0x79
 [<c0240e3a>] bus_for_each_dev+0x37/0x59
 [<c02416c7>] driver_attach+0x16/0x18
 [<c0241970>] __driver_attach+0x0/0x79
 [<c0241120>] bus_add_driver+0x6d/0x197
 [<e08d47c2>] usb_register_driver+0x6d/0xd4 [usbcore]
 [<e0c36018>] m920x_module_init+0x18/0x34 [dvb_usb_m920x]
 [<c0138f4e>] blocking_notifier_call_chain+0x17/0x1a
 [<c014377d>] sys_init_module+0x15db/0x16f3
 [<c01640ca>] vma_prio_tree_insert+0x17/0x2a
 [<e0c402ac>] mt352_get_parameters+0x88/0x1f5 [mt352]
 [<e0c40644>] mt352_set_parameters+0x116/0x2d6 [mt352]
 [<e0c40554>] mt352_set_parameters+0x26/0x2d6 [mt352]
 [<e0c4066c>] mt352_set_parameters+0x13e/0x2d6 [mt352]
 [<c012c810>] msleep+0x0/0x12
 [<e0c401d4>] mt352_read_status+0x44/0x94 [mt352]
 [<e0c40694>] mt352_set_parameters+0x166/0x2d6 [mt352]
 [<c0103e5e>] sysenter_past_esp+0x6b/0xa1
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
EIP: [<e095d10b>] i2c_transfer+0x13/0x42 [i2c_core] SS:ESP 0068:c1c13ce4
---[ end trace 769dc0c1be3fb9e2 ]---

I've attached the m920x.c file that I have altered.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.linuxtv.org/pipermail/linux-dvb/attachments/20080623/7955ae20/attachment-0001.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: m920x.c
Type: text/x-csrc
Size: 24517 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20080623/7955ae20/attachment-0001.c 

More information about the linux-dvb mailing list