Re: Re: Freecom DVB-T stick with ID 14aa:0225

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Because there was some interest on the firmware, I've put it onto the web.

The firmware is at http://home.arcor.de/efocht/dvb-usb-wt220u-fc03.fw
The preprocessed usbsnoop trace is at:
http://home.arcor.de/efocht/usbsnoop.hexfw

The patch to v4l-dvb is attached to this email and at
http://home.arcor.de/efocht/freecom_dvbt.patch

One thing is strange when looking at the USB trace: There is a reset after
around 1/5th of the transfers. The things written before this reset are
overwritten afterwards. Any idea how to handle this in the firmware file?

And: the ooops occurs allways after the third "WARNING: filter timeout pid
0x0010". Looks like the hardware PID filters are not handled properly, yet.

Thanks in advance for any hints...

Regards,
Erich


On Tuesday 04 July 2006 18:05, Erich Focht wrote:
> On Tuesday 04 July 2006 00:47, hermann pitton wrote:
> > it is just a few days back and was a success story.
> > http://linuxtv.org/pipermail/linux-dvb/2006-June/011131.html
> 
> Thanks for the hint! I have a firmware now which alights the LED.
> 
> Unfortunately when trying to dvbscan, there's an ooops:
> 
> in theoutput I'm getting lots of:
> ...
> WARNING: >>> tuning failed!!!
> >>> tune to: 730000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE
> WARNING: filter timeout pid 0x0011
> WARNING: filter timeout pid 0x0000
> WARNING: filter timeout pid 0x0010
> 
> 
> And "dmesg" shows:
> 
> dvb-usb: found a 'WideView WT-220U PenType Receiver (Typhoon/Freecom)' in warm state.
> dvb-usb: will use the device's hardware PID filter (table count: 15).
> DVB: registering new adapter (WideView WT-220U PenType Receiver (Typhoon/Freecom)).
> DVB: registering frontend 0 (WideView USB DVB-T)...
> input: IR-receiver inside an USB DVB receiver as /class/input/input5
> dvb-usb: schedule remote query interval to 300 msecs.
> dvb-usb: WideView WT-220U PenType Receiver (Typhoon/Freecom) successfully initialized and connected.
> dvb-usb: recv bulk message failed: -110
> drivers/usb/input/hid-core.c: timeout initializing reports
> input: Digital TV Receiver Digital TV Receiver as /class/input/input6
> input: USB HID v1.10 Keyboard [Digital TV Receiver Digital TV Receiver] on usb-0000:00:1d.7-4
> Unable to handle kernel NULL pointer dereference at virtual address 00000048
>  printing eip:
> efa484f7
> *pde = 00000000
> Oops: 0000 [#1]
> last sysfs file: /devices/pci0000:00/0000:00:1d.7/usb3/3-4/3-4:1.1/bInterfaceProtocol
> Modules linked in: dvb_usb_dtt200u dvb_usb dvb_core dvb_pll michael_mic arc4 ieee80211_crypt_tkip ipv6 cpufreq_ondemand cpufreq_userspace cpufreq_powersave speedstep_centrino freq_table snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device i915 drm af_packet edd toshiba_acpi button battery ac apparmor aamatch_pcre ext3 jbd loop usbhid dm_mod shpchp pci_hotplug pcmcia intel_agp agpgart e100 mii i2c_i801 i2c_core ehci_hcd uhci_hcd usbcore snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_pcm snd_timer snd soundcore snd_page_alloc i8xx_tco ipw2200 ieee80211 ieee80211_crypt firmware_class yenta_socket rsrc_nonstatic pcmcia_core parport_pc lp parport reiserfs fan thermal processor piix ide_disk ide_core
> CPU:    0
> EIP:    0060:[<efa484f7>]    Tainted: G     U VLI
> EFLAGS: 00010007   (2.6.16.13-4-default #1)
> EIP is at start_unlink_async+0x3c/0x99 [ehci_hcd]
> eax: 00000000   ebx: dfedd0d0   ecx: 00000000   edx: ee343200
> esi: ee343200   edi: 00010011   ebp: dfedd000   esp: dcee7da0
> ds: 007b   es: 007b   ss: 0068
> Process dvbscan (pid: 5347, threadinfo=dcee6000 task=d696b570)
> Stack: <0>ee343200 dfedd0d0 00000287 efa4acd1 d56526c0 d56526c0 dfedd000 00000282
>        efa6ca41 00000000 00000082 dca0c140 d8616930 00000001 dcee7dfc c011415f
>        00000000 00000001 d8616930 00000000 00000202 dcee7ee1 dfedd000 d56526c0
> Call Trace:
>  [<efa4acd1>] ehci_urb_dequeue+0x2a/0x94 [ehci_hcd]
>  [<efa6ca41>] unlink1+0xf6/0xfd [usbcore]
>  [<c011415f>] __wake_up_common+0x2e/0x4d
>  [<efa6d437>] hcd_unlink_urb+0xea/0x10d [usbcore]
>  [<efa6dcbf>] usb_kill_urb+0x5b/0xd7 [usbcore]
>  [<c01eb682>] n_tty_receive_buf+0xbd6/0xc22
>  [<efc72e38>] dvb_usb_generic_write+0xe/0x12 [dvb_usb]
>  [<efc72b42>] dvb_usb_urb_kill+0x2d/0x44 [dvb_usb]
>  [<efc73735>] dvb_usb_ctrl_feed+0x4b/0x179 [dvb_usb]
>  [<efd18ea9>] dmx_section_feed_stop_filtering+0x3a/0x5c [dvb_core]
>  [<efd17b55>] dvb_dmxdev_feed_stop+0x33/0x41 [dvb_core]
>  [<efd17b8f>] dvb_dmxdev_filter_stop+0x2c/0x74 [dvb_core]
>  [<efd18086>] dvb_demux_do_ioctl+0xe2/0x2a4 [dvb_core]
>  [<efd17102>] dvb_usercopy+0xa6/0xff [dvb_core]
>  [<c01e6a2a>] tty_default_put_char+0x17/0x1a
>  [<c01ea411>] opost+0x180/0x196
>  [<c01eaa98>] write_chan+0x294/0x2a8
>  [<c01e6ef7>] tty_ldisc_deref+0x47/0x4d
>  [<efd17901>] dvb_demux_ioctl+0x0/0x11 [dvb_core]
>  [<efd1790f>] dvb_demux_ioctl+0xe/0x11 [dvb_core]
>  [<efd17fa4>] dvb_demux_do_ioctl+0x0/0x2a4 [dvb_core]
>  [<c0158df2>] do_ioctl+0x3a/0x49
>  [<c0159000>] vfs_ioctl+0x1ff/0x216
>  [<c015905f>] sys_ioctl+0x48/0x61
>  [<c01029db>] sysenter_past_esp+0x54/0x79
> Code: 83 7b fc 00 74 05 83 e7 df 89 38 0f ba b3 a8 00 00 00 03 eb 6f c6 42 68 02 8d 42 60 e8 0f ac 75 d0 8b 4b 10 89 73 14 eb 02 89 c1 <8b> 41 48 39 f0 75 f7 8b 06 89 01 8b 46 48 89 41 48 83 7b fc 00
>  <3>Debug: sleeping function called from invalid context at include/linux/rwsem.h:43
> in_atomic():0, irqs_disabled():1
>  [<c011841b>] profile_task_exit+0x18/0x3e
>  [<c0119713>] do_exit+0x1c/0x63f
>  [<c0117c8c>] printk+0x14/0x18
>  [<c01043a8>] show_stack+0x0/0xa
>  [<c0273add>] do_page_fault+0x382/0x53c
>  [<efa484f7>] start_unlink_async+0x3c/0x99 [ehci_hcd]
>  [<c027375b>] do_page_fault+0x0/0x53c
>  [<c0103bbf>] error_code+0x4f/0x60
>  [<efa484f7>] start_unlink_async+0x3c/0x99 [ehci_hcd]
>  [<efa4acd1>] ehci_urb_dequeue+0x2a/0x94 [ehci_hcd]
>  [<efa6ca41>] unlink1+0xf6/0xfd [usbcore]
>  [<c011415f>] __wake_up_common+0x2e/0x4d
>  [<efa6d437>] hcd_unlink_urb+0xea/0x10d [usbcore]
>  [<efa6dcbf>] usb_kill_urb+0x5b/0xd7 [usbcore]
>  [<c01eb682>] n_tty_receive_buf+0xbd6/0xc22
>  [<efc72e38>] dvb_usb_generic_write+0xe/0x12 [dvb_usb]
>  [<efc72b42>] dvb_usb_urb_kill+0x2d/0x44 [dvb_usb]
>  [<efc73735>] dvb_usb_ctrl_feed+0x4b/0x179 [dvb_usb]
>  [<efd18ea9>] dmx_section_feed_stop_filtering+0x3a/0x5c [dvb_core]
>  [<efd17b55>] dvb_dmxdev_feed_stop+0x33/0x41 [dvb_core]
>  [<efd17b8f>] dvb_dmxdev_filter_stop+0x2c/0x74 [dvb_core]
>  [<efd18086>] dvb_demux_do_ioctl+0xe2/0x2a4 [dvb_core]
>  [<efd17102>] dvb_usercopy+0xa6/0xff [dvb_core]
>  [<c01e6a2a>] tty_default_put_char+0x17/0x1a
>  [<c01ea411>] opost+0x180/0x196
>  [<c01eaa98>] write_chan+0x294/0x2a8
>  [<c01e6ef7>] tty_ldisc_deref+0x47/0x4d
>  [<efd17901>] dvb_demux_ioctl+0x0/0x11 [dvb_core]
>  [<efd1790f>] dvb_demux_ioctl+0xe/0x11 [dvb_core]
>  [<efd17fa4>] dvb_demux_do_ioctl+0x0/0x2a4 [dvb_core]
>  [<c0158df2>] do_ioctl+0x3a/0x49
>  [<c0159000>] vfs_ioctl+0x1ff/0x216
>  [<c015905f>] sys_ioctl+0x48/0x61
>  [<c01029db>] sysenter_past_esp+0x54/0x79
> 
> 
> 
> Any idea how to proceed?
> 
> Thanks,
> best regards,
> Erich
> 
> 

diff -ur t/v4l-dvb/linux/drivers/media/dvb/dvb-usb/dtt200u.c v4l-dvb/linux/drivers/media/dvb/dvb-usb/dtt200u.c
--- t/v4l-dvb/linux/drivers/media/dvb/dvb-usb/dtt200u.c	2006-07-05 10:17:05.000000000 +0200
+++ v4l-dvb/linux/drivers/media/dvb/dvb-usb/dtt200u.c	2006-07-04 16:09:35.000000000 +0200
@@ -93,6 +93,7 @@
 }
 
 static struct dvb_usb_properties dtt200u_properties;
+static struct dvb_usb_properties wt220u_fc_properties;
 static struct dvb_usb_properties wt220u_properties;
 static struct dvb_usb_properties wt220u_zl0353_properties;
 
@@ -101,6 +102,7 @@
 {
 	if (dvb_usb_device_init(intf,&dtt200u_properties,THIS_MODULE,NULL) == 0 ||
 		dvb_usb_device_init(intf,&wt220u_properties,THIS_MODULE,NULL) == 0 ||
+		dvb_usb_device_init(intf,&wt220u_fc_properties,THIS_MODULE,NULL) == 0 ||
 		dvb_usb_device_init(intf,&wt220u_zl0353_properties,THIS_MODULE,NULL) == 0)
 		return 0;
 
@@ -114,6 +116,8 @@
 	{ USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_WARM)  },
 	{ USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_ZL0353_COLD)  },
 	{ USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_ZL0353_WARM)  },
+	{ USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_FC_COLD)  },
+	{ USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_FC_WARM)  },
 	{ 0 },
 };
 MODULE_DEVICE_TABLE(usb, dtt200u_usb_table);
@@ -200,6 +204,47 @@
 	}
 };
 
+static struct dvb_usb_properties wt220u_fc_properties = {
+	.caps = DVB_USB_HAS_PID_FILTER | DVB_USB_NEED_PID_FILTERING,
+	.pid_filter_count = 15,
+
+	.usb_ctrl = CYPRESS_FX2,
+	.firmware = "dvb-usb-wt220u-fc03.fw",
+
+	.power_ctrl      = dtt200u_power_ctrl,
+	.streaming_ctrl  = dtt200u_streaming_ctrl,
+	.pid_filter      = dtt200u_pid_filter,
+	.frontend_attach = dtt200u_frontend_attach,
+
+	.rc_interval     = 300,
+	.rc_key_map      = dtt200u_rc_keys,
+	.rc_key_map_size = ARRAY_SIZE(dtt200u_rc_keys),
+	.rc_query        = dtt200u_rc_query,
+
+	.generic_bulk_ctrl_endpoint = 0x01,
+
+	/* parameter for the MPEG2-data transfer */
+	.urb = {
+		.type = DVB_USB_BULK,
+		.count = 7,
+		.endpoint = 0x02,
+		.u = {
+			.bulk = {
+				.buffersize = 4096,
+			}
+		}
+	},
+
+	.num_device_descs = 1,
+	.devices = {
+		{ .name = "WideView WT-220U PenType Receiver (Typhoon/Freecom)",
+		  .cold_ids = { &dtt200u_usb_table[6], NULL },
+		  .warm_ids = { &dtt200u_usb_table[7], NULL },
+		},
+		{ NULL },
+	}
+};
+
 static struct dvb_usb_properties wt220u_zl0353_properties = {
 	.caps = DVB_USB_HAS_PID_FILTER | DVB_USB_NEED_PID_FILTERING,
 	.pid_filter_count = 15,
diff -ur t/v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
--- t/v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h	2006-07-05 10:17:05.000000000 +0200
+++ v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h	2006-07-01 11:05:32.000000000 +0200
@@ -84,6 +84,8 @@
 #define USB_PID_DTT200U_WARM				0x0301
 #define USB_PID_WT220U_COLD					0x0222
 #define USB_PID_WT220U_WARM					0x0221
+#define USB_PID_WT220U_FC_COLD					0x0225
+#define USB_PID_WT220U_FC_WARM					0x0226
 #define USB_PID_WT220U_ZL0353_COLD			0x022a
 #define USB_PID_WT220U_ZL0353_WARM			0x022b
 #define USB_PID_WINTV_NOVA_T_USB2_COLD		0x9300
_______________________________________________

linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux