From: mjs <mjstork@gmail.com>
To: linux-media@vger.kernel.org
Subject: ZOLID new usb dvb-t
Date: Sat, 18 Jan 2014 18:22:25 +0100 [thread overview]
Message-ID: <1390065745.1925.75.camel@fujitsu> (raw)
Hallo,
I'm new to linux and step by step learning by working with debian.
I'm using the 2.6.32-5-686 kernel and i have no knowledge about c+ other
then common sense and copy-paste.
(upgrading to the latest kernel will be a project in the future).
I've mechanical opened a :ZOLID Hybrid TV Stick.
This is a usb dvb-t analog and digital receiver (the : in front of the
name is no typo mistake).
Next hardware was found, EM2882 - XC3028L (needs XC3028L-v36.fw) -
WJCE6353 (equal to ZL10353) - TVP5150 - EM202 - T24LC02.
I believe every component is known by the EM28xx driver but not in this
specific configuration.
So no card in the EM28xx driver was found as a direct (or induced)
match.
I've made some modifications in the source code em28xx.h, em28xx-dvb.c
and em28xx-cards.c.
Successfully compiled the driver, made a great progress but not yet
victory.
After a "scan /usr/share/dvb/dvb-t/nl-all", the following lines were
added to the dmesg (tuning failed).
[ 2876.028035] xc2028 3-0061: Loading firmware for type=BASE F8MHZ MTS
(7), id 0000000000000000.
[ 2876.949274] xc2028 3-0061: Loading firmware for type=D2633 DTV8
(210), id 0000000000000000.
[ 2876.961893] xc2028 3-0061: Loading SCODE for type=DTV6 QAM DTV7
ZARLINK456 SCODE HAS_IF_4760 (620000e0), id 0000000000000000.
At this point i think i have two problems which i cannot solve (maybe
more ?).
* gpio values em2882.
* dmesg informed me the stick uses a IF=4500 which isn't listed
in tuner_xc2028.h (XC3028L-v36.fw ??).
I'm stuck and i hope some one can help me to take the next step.
Thanks.
Marcel Stork (Netherlands).
Modifications:
[.....] = local position in gedit
___________________________________________________________________________________________________
em28xx.h
---------------------------------------------------------------------------------------------------
[ 113] #define EM2882_BOARD_ZOLID_HYBRID_TV_STICK 74
___________________________________________________________________________________________________
em28xx-dvb.c
---------------------------------------------------------------------------------------------------
[ 304] static struct zl10353_config em28xx_zl10353_with_xc3028_zolid = {
.demod_address = (0x1e >> 1),
.no_tuner = 1,
.parallel_ts = 1,
.if2 = 45000,
};
---------------------------------------------------------------------------------------------------
[ 460] static int dvb_init(struct em28xx *dev)
[ 578] case EM2882_BOARD_ZOLID_HYBRID_TV_STICK:
dvb->frontend = dvb_attach(zl10353_attach,
&em28xx_zl10353_with_xc3028_zolid,
&dev->i2c_adap);
if (attach_xc3028(0x61, dev) < 0) {
result = -EINVAL;
goto out_free;
}
break;
___________________________________________________________________________________________________
em28xx-cards.c
---------------------------------------------------------------------------------------------------
[ 228] static struct em28xx_reg_seq zolid_tuner_gpio[] = { /*
[FIXME-MJS] */
{EM28XX_R08_GPIO, EM_GPIO_4, EM_GPIO_4, 10},
{EM28XX_R08_GPIO, 0, EM_GPIO_4, 10},
{EM28XX_R08_GPIO, EM_GPIO_4, EM_GPIO_4, 10},
{ -1, -1, -1, -1},
};
static struct em28xx_reg_seq zolid_digital[] = { /* [FIXME-MJS] */
{EM28XX_R08_GPIO, 0x6e, ~EM_GPIO_4, 10},
{EM2880_R04_GPO, 0x04, 0xff, 100},/* zl10353 reset */
{EM2880_R04_GPO, 0x0c, 0xff, 1},
{ -1, -1, -1, -1},
};
static struct em28xx_reg_seq zolid_analog[] = { /* [FIXME-MJS] */
{EM28XX_R08_GPIO, 0x6d, ~EM_GPIO_4, 10},
{ -1, -1, -1, -1},
};
---------------------------------------------------------------------------------------------------
[ 250] struct em28xx_board em28xx_boards[] = {
[1609] [EM2882_BOARD_ZOLID_HYBRID_TV_STICK] = {
.name = ":ZOLID Hybrid TV Stick",
.tuner_type = TUNER_XC2028,
.tuner_gpio = zolid_tuner_gpio,
.decoder = EM28XX_TVP5150,
.xclk = EM28XX_XCLK_FREQUENCY_12MHZ,
.mts_firmware = 1,
.has_dvb = 1,
.dvb_gpio = zolid_digital,
/* .ir_codes = &ir_codes_evga_indtube_table, [FIXME-MJS] */
.input = { {
.type = EM28XX_VMUX_TELEVISION,
.vmux = TVP5150_COMPOSITE0,
.amux = EM28XX_AMUX_VIDEO,
.gpio = zolid_analog,
}, {
.type = EM28XX_VMUX_COMPOSITE1,
.vmux = TVP5150_COMPOSITE1,
.amux = EM28XX_AMUX_LINE_IN,
.gpio = zolid_analog,
}, {
.type = EM28XX_VMUX_SVIDEO,
.vmux = TVP5150_SVIDEO,
.amux = EM28XX_AMUX_LINE_IN,
.gpio = zolid_analog,
} },
},
---------------------------------------------------------------------------------------------------
[1641] struct usb_device_id em28xx_id_table[] = {
/* { USB_DEVICE(0xeb1a, 0x2883), [ Delete cause same vid/pid ] */
/* .driver_info = EM2880_BOARD_UNKNOWN }, [FIXME-MJS] */
[1663] { USB_DEVICE(0xeb1a, 0x2883),
.driver_info = EM2882_BOARD_ZOLID_HYBRID_TV_STICK },
---------------------------------------------------------------------------------------------------
[1761] static struct em28xx_hash_table em28xx_eeprom_hash[] = {
[1770] {0x85dd871e, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028},
---------------------------------------------------------------------------------------------------
[1774] static struct em28xx_hash_table em28xx_i2c_hash[] = {
[1780] {0xb06a32c3, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028},
---------------------------------------------------------------------------------------------------
[2091] static void em28xx_setup_xc3028(struct em28xx *dev, struct
xc2028_ctrl *ctl)
[2130] case EM2882_BOARD_ZOLID_HYBRID_TV_STICK: /* [FIXME-MJS] */
ctl->demod = XC3028_FE_ZARLINK456; /* according dmesg if = 45000 */
ctl->fname = XC3028L_DEFAULT_FIRMWARE;
break;
Lsmod:
Module Size Used by
zl10353 4961 1
em28xx_dvb 5609 0
dvb_core 62606 1 em28xx_dvb
em28xx_alsa 4831 0
tuner_xc2028 14609 2
tuner 14428 1
tvp5150 9262 1
em28xx 63029 2 em28xx_dvb,em28xx_alsa
v4l2_common 9776 3 tuner,tvp5150,em28xx
ir_common 22187 1 em28xx
videobuf_vmalloc 3860 1 em28xx
videobuf_core 10452 2 em28xx,videobuf_vmalloc
tveeprom 9393 1 em28xx
aes_i586 6816 2
aes_generic 25738 1 aes_i586
lib80211_crypt_ccmp 3643 2
cpufreq_powersave 602 0
cpufreq_stats 1997 0
cpufreq_conservative 4018 0
cpufreq_userspace 1456 0
parport_pc 15799 0
ppdev 4058 0
lp 5570 0
parport 22554 3 parport_pc,ppdev,lp
sco 5885 2
bridge 32943 0
stp 996 1 bridge
bnep 7408 2
rfcomm 25147 0
l2cap 21745 4 bnep,rfcomm
crc16 1027 1 l2cap
bluetooth 36287 6 sco,bnep,rfcomm,l2cap
rfkill 10220 3 bluetooth
binfmt_misc 4879 1
uinput 4796 1
fuse 44196 1
gspca_sunplus 11210 0
gspca_main 15775 1 gspca_sunplus
videodev 25573 5
tuner,tvp5150,em28xx,v4l2_common,gspca_main
v4l1_compat 10250 1 videodev
loop 9745 0
firewire_sbp2 9603 0
snd_hda_codec_realtek 163390 1
snd_hda_codec_si3054 2410 1
snd_hda_intel 16635 1
snd_hda_codec 46066 3
snd_hda_codec_realtek,snd_hda_codec_si3054,snd_hda_intel
snd_hwdep 4054 1 snd_hda_codec
snd_pcm 47226 4
em28xx_alsa,snd_hda_codec_si3054,snd_hda_intel,snd_hda_codec
snd_seq 35375 0
joydev 6739 0
snd_timer 12270 2 snd_pcm,snd_seq
ipw2200 108300 0
snd_seq_device 3673 1 snd_seq
i915 223838 2
libipw 18415 1 ipw2200
drm_kms_helper 18545 1 i915
drm 112489 3 i915,drm_kms_helper
i2c_algo_bit 3493 1 i915
i2c_i801 6462 0
psmouse 44817 0
snd 34399 12
em28xx_alsa,snd_hda_codec_realtek,snd_hda_codec_si3054,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_seq,snd_timer,snd_seq_device
pcspkr 1207 0
evdev 5609 15
serio_raw 2916 0
ac 1636 0
battery 3782 0
video 14605 1 i915
processor 26283 1
button 3598 1 i915
i2c_core 12763 13
zl10353,tuner_xc2028,tuner,tvp5150,em28xx,v4l2_common,tveeprom,videodev,i915,drm_kms_helper,drm,i2c_algo_bit,i2c_i801
rng_core 2178 0
lib80211 2846 3 lib80211_crypt_ccmp,ipw2200,libipw
soundcore 3450 1 snd
output 1204 1 video
snd_page_alloc 5001 2 snd_hda_intel,snd_pcm
ext3 94204 5
jbd 32269 1 ext3
mbcache 3762 1 ext3
sg 19917 0
sr_mod 10770 0
sd_mod 25969 7
crc_t10dif 1012 1 sd_mod
cdrom 26435 1 sr_mod
ata_generic 2247 0
8139too 14885 0
ata_piix 17716 6
ahci 27786 0
8139cp 13333 0
firewire_ohci 16705 0
libata 115713 3 ata_generic,ata_piix,ahci
uhci_hcd 16013 0
thermal 9206 0
mii 2714 2 8139too,8139cp
firewire_core 31155 2 firewire_sbp2,firewire_ohci
crc_itu_t 1035 1 firewire_core
ehci_hcd 28533 0
scsi_mod 104949 5 firewire_sbp2,sg,sr_mod,sd_mod,libata
usbcore 99350 8
em28xx_dvb,em28xx_alsa,em28xx,gspca_sunplus,gspca_main,uhci_hcd,ehci_hcd
nls_base 4727 1 usbcore
thermal_sys 9378 3 video,processor,thermal
Dmesg:
[ 2530.756044] usb 1-3: new high speed USB device using ehci_hcd and
address 2
[ 2530.893179] usb 1-3: New USB device found, idVendor=eb1a,
idProduct=2883
[ 2530.893190] usb 1-3: New USB device strings: Mfr=0, Product=1,
SerialNumber=2
[ 2530.893200] usb 1-3: Product: USB 2883 Device
[ 2530.893207] usb 1-3: SerialNumber: 200804
[ 2530.895014] usb 1-3: configuration #1 chosen from 1 choice
[ 2531.425003] em28xx: New device USB 2883 Device @ 480 Mbps (eb1a:2883,
interface 0, class 0)
[ 2531.425200] em28xx #0: chip ID is em2882/em2883
[ 2531.581575] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 83 28 d0 12
65 00 6a 22 8c 10
[ 2531.581608] em28xx #0: i2c eeprom 10: 00 00 24 57 4e 37 01 00 60 00
00 00 02 00 00 00
[ 2531.581639] em28xx #0: i2c eeprom 20: 5e 00 01 00 f0 10 01 00 b8 00
00 00 5b 1e 00 00
[ 2531.581669] em28xx #0: i2c eeprom 30: 00 00 20 40 20 6e 04 20 01 01
00 00 00 00 00 00
[ 2531.581699] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00
00 00 d3 c4 00 00
[ 2531.581729] em28xx #0: i2c eeprom 50: 00 a2 b2 87 81 80 00 00 00 00
00 00 00 00 00 00
[ 2531.581758] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00
22 03 55 00 53 00
[ 2531.581788] em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 38 00
33 00 20 00 44 00
[ 2531.581818] em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00
00 00 10 03 32 00
[ 2531.581848] em28xx #0: i2c eeprom 90: 30 00 30 00 38 00 30 00 34 00
00 00 00 00 00 00
[ 2531.581878] em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 2531.581907] em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 2531.581937] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 2531.581966] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 2531.581996] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 2531.582025] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 2531.582060] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash =
0x85dd871e
[ 2531.582067] em28xx #0: EEPROM info:
[ 2531.582073] em28xx #0: AC97 audio (5 sample rates)
[ 2531.582079] em28xx #0: 500mA max power
[ 2531.582087] em28xx #0: Table at 0x24, strings=0x226a, 0x108c, 0x0000
[ 2531.582819] em28xx #0: Identified as :ZOLID Hybrid TV Stick (card=74)
[ 2531.616392] tvp5150 3-005c: chip found @ 0xb8 (em28xx #0)
[ 2531.645143] tuner 3-0061: chip found @ 0xc2 (em28xx #0)
[ 2531.691798] xc2028 3-0061: creating new instance
[ 2531.691809] xc2028 3-0061: type set to XCeive xc2028/xc3028 tuner
[ 2531.691826] usb 1-3: firmware: requesting xc3028L-v36.fw
[ 2531.709045] xc2028 3-0061: Loading 81 firmware images from
xc3028L-v36.fw, type: xc2028 firmware, ver 3.6
[ 2531.756034] xc2028 3-0061: Loading firmware for type=BASE MTS (5), id
0000000000000000.
[ 2532.661365] xc2028 3-0061: Loading firmware for type=MTS (4), id
000000000000b700.
[ 2532.675734] xc2028 3-0061: Loading SCODE for type=MTS LCD NOGD MONO
IF SCODE HAS_IF_4500 (6002b004), id 000000000000b700.
[ 2532.860114] em28xx #0: Config register raw data: 0xd0
[ 2532.860857] em28xx #0: AC97 vendor ID = 0xffffffff
[ 2532.861233] em28xx #0: AC97 features = 0x6a90
[ 2532.861239] em28xx #0: Empia 202 AC97 audio processor detected
[ 2532.972493] tvp5150 3-005c: tvp5150am1 detected.
[ 2533.068873] em28xx #0: v4l2 driver version 0.1.2
[ 2533.139659] em28xx #0: V4L2 video device registered as /dev/video0
[ 2533.139668] em28xx #0: V4L2 VBI device registered as /dev/vbi0
[ 2533.156139] usbcore: registered new interface driver em28xx
[ 2533.156795] em28xx driver loaded
[ 2533.273556] em28xx-audio.c: probing for em28x1 non standard usbaudio
[ 2533.273566] em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
[ 2533.276830] Em28xx: Initialized (Em28xx Audio Extension) extension
[ 2533.642770] xc2028 3-0061: attaching existing instance
[ 2533.642781] xc2028 3-0061: type set to XCeive xc2028/xc3028 tuner
[ 2533.642789] em28xx #0/2: xc3028 attached
[ 2533.642795] DVB: registering new adapter (em28xx #0)
[ 2533.642806] DVB: registering adapter 0 frontend 0 (Zarlink ZL10353
DVB-T)...
[ 2533.647152] Successfully loaded em28xx-dvb
[ 2533.647161] Em28xx: Initialized (Em28xx dvb Extension) extension
next reply other threads:[~2014-01-18 17:22 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-18 17:22 mjs [this message]
2018-04-26 19:51 ` [Solved] ZOLID new usb dvb-t mjs
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1390065745.1925.75.camel@fujitsu \
--to=mjstork@gmail.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.