How to proceed ? => [PATCH ?] EM28xx driver ?
Hello, 4 years ago I started to try to make a dvb-t ":ZOLID Hybrid TV Stick" to work with linux. Today there is success at least for the digital part, not the analog or remote part. If and how to proceed adding this patch to the global source. Greatings, Marcel Stork Git result: From ccea81c2a3c6e937d304a87fad823dd557937968 Mon Sep 17 00:00:00 2001 From: mjs Date: Sun, 1 Apr 2018 19:10:33 +0200 Subject: [PATCH] Committer: mjs On branch master zolid-em28xx-driver Changes to be committed: modified: em28xx-cards.c modified: em28xx-dvb.c modified: em28xx.h --- em28xx-cards.c | 32 +--- em28xx-dvb.c | 1 + em28xx.h | 1 + 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/em28xx-cards.c b/em28xx-cards.c index e397f54..5024dd7 100644 --- a/em28xx-cards.c +++ b/em28xx-cards.c @@ -92,6 +92,20 @@ static struct em28xx_reg_seq default_digital[] = { { -1, -1, -1, -1}, }; +static struct em28xx_reg_seq zolid_tuner[] = { + {EM2820_R08_GPIO_CTRL, 0xfd, 0xff, 100}, + {EM2820_R08_GPIO_CTRL, 0xfe, 0xff, 100}, + { -1, -1, -1, -1}, +}; + +static struct em28xx_reg_seq zolid_digital[] = { + {EM2820_R08_GPIO_CTRL, 0x6a, 0xff, 100}, + {EM2820_R08_GPIO_CTRL, 0x7a, 0xff, 100}, + {EM2880_R04_GPO,0x04, 0xff, 100}, + {EM2880_R04_GPO,0x0c, 0xff, 100}, + { -1, -1, -1, -1}, +}; + /* Board Hauppauge WinTV HVR 900 analog */ static struct em28xx_reg_seq hauppauge_wintv_hvr_900_analog[] = { {EM2820_R08_GPIO_CTRL, 0x2d, ~EM_GPIO_4, 10}, @@ -629,6 +643,17 @@ static struct em28xx_led hauppauge_dualhd_leds[] = { * Board definitions */ struct em28xx_board em28xx_boards[] = { + + [EM2882_BOARD_ZOLID_HYBRID_TV_STICK] = { + .name = ":ZOLID HYBRID TV STICK", + .tuner_type = TUNER_XC2028, + .tuner_gpio = zolid_tuner, + .decoder= EM28XX_TVP5150, + .xclk = EM28XX_XCLK_FREQUENCY_12MHZ, + .mts_firmware = 1, + .has_dvb= 1, + .dvb_gpio = zolid_digital, + }, [EM2750_BOARD_UNKNOWN] = { .name = "EM2710/EM2750/EM2751 webcam grabber", .xclk = EM28XX_XCLK_FREQUENCY_20MHZ, @@ -2421,7 +2446,7 @@ struct usb_device_id em28xx_id_table[] = { { USB_DEVICE(0xeb1a, 0x2881), .driver_info = EM2820_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2883), - .driver_info = EM2820_BOARD_UNKNOWN }, + .driver_info = EM2882_BOARD_ZOLID_HYBRID_TV_STICK }, { USB_DEVICE(0xeb1a, 0x2868), .driver_info = EM2820_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2875), @@ -2599,6 +2624,7 @@ static struct em28xx_hash_table em28xx_eeprom_hash[] = { {0xb8846b20, EM2881_BOARD_PINNACLE_HYBRID_PRO, TUNER_XC2028}, {0x63f653bd, EM2870_BOARD_REDDO_DVB_C_USB_BOX, TUNER_ABSENT}, {0x4e913442, EM2882_BOARD_DIKOM_DK300, TUNER_XC2028}, + {0x85dd871e, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, }; /* I2C devicelist hash table for devices with generic USB IDs */ @@ -2610,6 +2636,7 @@ static struct em28xx_hash_table em28xx_i2c_hash[] = { {0xc51200e3, EM2820_BOARD_GADMEI_TVR200, TUNER_LG_PAL_NEW_TAPC}, {0x4ba50080, EM2861_BOARD_GADMEI_UTV330PLUS, TUNER_TNF_5335MF}, {0x6b800080, EM2874_BOARD_LEADERSHIP_ISDBT, TUNER_ABSENT}, + {0x27e10080, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, }; /* NOTE: introduce a separate hash table for devices with 16 bit eeproms */ @@ -3063,8 +3090,7 @@ void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl) case EM2880_BOARD_EMPIRE_DUAL_TV: case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: case EM2882_BOARD_TERRATEC_HYBRID_XS: - ctl->demod = XC3028_FE_ZARLINK456; - break; + case EM2882_BOARD_ZOLID_HYBRID_TV_STICK: case EM2880_BOARD_TERRATEC_HYBRID_XS: case EM2880_BOARD_TERRATEC_HYBRID_XS_FR: case EM2881_BOARD_PINNACLE_HYBRID_PRO: diff --git a/em28xx-dvb.c b/em28xx-dvb.c index 1a5c012..e18d048 100644 --- a/em28xx-dvb.c +++ b/em28xx-dvb.c @@ -1197,6 +1197,7 @@ static int em28xx_dvb_init(struct em28xx *dev) case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: case EM2882_BOARD_TERRATEC_HYBRID_XS: case EM2880_BOARD_EMPIRE_DUAL_TV: + case EM2882_BOARD_ZOLID_HYB
Re: How to proceed ? => [PATCH ?] EM28xx driver ?
Op Mon, 23 Apr 2018 14:15:59 -0300 Mauro Carvalho Chehab schreef: > Em Mon, 23 Apr 2018 12:35:06 -0400 > Alexandre-Xavier Labonté-Lamoureux escreveu: > > > This should give you an idea of what you need to do: > > https://linuxtv.org/wiki/index.php/Development:_How_to_submit_patches > > Yes. > > In particular, you should send it against the upstream development Kernel, > using "git diff", and add a proper description. Thanks, I will read and use it. > > Anyway, let review a few things. See below. > > > > > > On Mon, Apr 23, 2018 at 3:18 AM, mjs wrote: > > > Hello, > > > > > > 4 years ago I started to try to make a dvb-t ":ZOLID Hybrid TV Stick" to > > > work with linux. > > > > > > Today there is success at least for the digital part, not the analog or > > > remote part. > > > > > > If and how to proceed adding this patch to the global source. > > > > > > Greatings, > > > Marcel Stork > > > > > > > > > Git result: > > > > > > From ccea81c2a3c6e937d304a87fad823dd557937968 Mon Sep 17 00:00:00 2001 > > > From: mjs > > > Date: Sun, 1 Apr 2018 19:10:33 +0200 > > > Subject: [PATCH] Committer: mjs On branch master > > > zolid-em28xx-driver Changes to be committed: modified: em28xx-cards.c > > > modified: em28xx-dvb.c modified: em28xx.h > > > > > > --- > > > em28xx-cards.c | 32 +--- > > > em28xx-dvb.c | 1 + > > > em28xx.h | 1 + > > > 3 files changed, 31 insertions(+), 3 deletions(-) > > > > > > diff --git a/em28xx-cards.c b/em28xx-cards.c > > > index e397f54..5024dd7 100644 > > > --- a/em28xx-cards.c > > > +++ b/em28xx-cards.c > > > @@ -92,6 +92,20 @@ static struct em28xx_reg_seq default_digital[] = { > > > { -1, -1, -1, -1}, > > > }; > > > > > > +static struct em28xx_reg_seq zolid_tuner[] = { > > > + {EM2820_R08_GPIO_CTRL, 0xfd, 0xff, 100}, > > > + {EM2820_R08_GPIO_CTRL, 0xfe, 0xff, 100}, > > > + { -1, -1, > > > -1, -1}, > > > +}; > > > + > > > +static struct em28xx_reg_seq zolid_digital[] = { > > > + {EM2820_R08_GPIO_CTRL, 0x6a, 0xff, 100}, > > > + {EM2820_R08_GPIO_CTRL, 0x7a, 0xff, 100}, > > > + {EM2880_R04_GPO,0x04, 0xff, > > > 100}, > > > + {EM2880_R04_GPO,0x0c, 0xff, > > > 100}, > > > + { -1, -1, > > > -1, -1}, > > > +}; > > > + > > > /* Board Hauppauge WinTV HVR 900 analog */ > > > static struct em28xx_reg_seq hauppauge_wintv_hvr_900_analog[] = { > > > {EM2820_R08_GPIO_CTRL, 0x2d, ~EM_GPIO_4, 10}, > > > @@ -629,6 +643,17 @@ static struct em28xx_led hauppauge_dualhd_leds[] = { > > > * Board definitions > > > */ > > > struct em28xx_board em28xx_boards[] = { > > > + > > > + [EM2882_BOARD_ZOLID_HYBRID_TV_STICK] = { > > > + .name = ":ZOLID HYBRID TV STICK", > > > + .tuner_type = TUNER_XC2028, > > > + .tuner_gpio = zolid_tuner, > > > + .decoder= EM28XX_TVP5150, > > > + .xclk = EM28XX_XCLK_FREQUENCY_12MHZ, > > > + .mts_firmware = 1, > > > + .has_dvb= 1, > > > + .dvb_gpio = zolid_digital, > > > + }, > > > [EM2750_BOARD_UNKNOWN] = { > > > .name = "EM2710/EM2750/EM2751 webcam grabber", > > > .xclk = EM28XX_XCLK_FREQUENCY_20MHZ, > > > @@ -2421,7 +2446,7 @@ struct usb_device_id em28xx_id_table[] = { > > > { USB_DEVICE(0xeb1a, 0x2881), > > > .driver_info = EM2820_BOARD_UNKNOWN }, > > > { USB_DEVICE(0xeb1a, 0x2883), > > > - .driver_info = EM2820_BOARD_UNKNOWN }, > > > + .driver_info = EM2882_BOARD_ZOLID_H
[PATCH] remove 2 excess lines in driver module em28xx
From 5103cc546075de0eb800f5a76f3212a3e342b833 Mon Sep 17 00:00:00 2001 From: Marcel Stork Date: Tue, 24 Apr 2018 14:43:01 +0200 Subject: [PATCH] remove 2 excess lines in driver module em28xx A cosmetic change by combining two sets of boards into one set because having the same arguments. Changes to be committed: modified: em28xx-cards.c --- em28xx-cards.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/em28xx-cards.c b/em28xx-cards.c index 6e0e67d..7fa9a00 100644 --- a/em28xx-cards.c +++ b/em28xx-cards.c @@ -3182,8 +3182,6 @@ void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl) case EM2880_BOARD_EMPIRE_DUAL_TV: case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: case EM2882_BOARD_TERRATEC_HYBRID_XS: - ctl->demod = XC3028_FE_ZARLINK456; - break; case EM2880_BOARD_TERRATEC_HYBRID_XS: case EM2880_BOARD_TERRATEC_HYBRID_XS_FR: case EM2881_BOARD_PINNACLE_HYBRID_PRO: -- 2.11.0
[PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick"
From 0a3355b47dc465c6372d30fa4a36d1c5db6c0fe2 Mon Sep 17 00:00:00 2001 From: Marcel Stork Date: Wed, 25 Apr 2018 10:53:34 +0200 Subject: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick". Extra code to be able to use this stick, only digital, not analog nor remote-control. Changes to be committed: modified: em28xx-cards.c modified: em28xx-dvb.c modified: em28xx.h --- em28xx-cards.c | 30 +- em28xx-dvb.c | 1 + em28xx.h | 1 + 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/em28xx-cards.c b/em28xx-cards.c index 6e0e67d..01b38a4 100644 --- a/em28xx-cards.c +++ b/em28xx-cards.c @@ -87,6 +87,21 @@ static const struct em28xx_reg_seq default_digital[] = { { -1, -1, -1, -1}, }; +/* Board Zolid Hybrid Tv Stick */ +static struct em28xx_reg_seq zolid_tuner[] = { + {EM2820_R08_GPIO_CTRL, 0xfd, 0xff, 100}, + {EM2820_R08_GPIO_CTRL, 0xfe, 0xff, 100}, + { -1, -1, -1, -1}, +}; + +static struct em28xx_reg_seq zolid_digital[] = { + {EM2820_R08_GPIO_CTRL, 0x6a, 0xff, 100}, + {EM2820_R08_GPIO_CTRL, 0x7a, 0xff, 100}, + {EM2880_R04_GPO,0x04, 0xff, 100}, + {EM2880_R04_GPO,0x0c, 0xff, 100}, + { -1, -1, -1, -1}, +}; + /* Board Hauppauge WinTV HVR 900 analog */ static const struct em28xx_reg_seq hauppauge_wintv_hvr_900_analog[] = { {EM2820_R08_GPIO_CTRL, 0x2d, ~EM_GPIO_4, 10}, @@ -679,6 +694,16 @@ const struct em28xx_board em28xx_boards[] = { .amux = EM28XX_AMUX_VIDEO, } }, }, + [EM2882_BOARD_ZOLID_HYBRID_TV_STICK] = { + .name = ":ZOLID HYBRID TV STICK", + .tuner_type = TUNER_XC2028, + .tuner_gpio = zolid_tuner, + .decoder= EM28XX_TVP5150, + .xclk = EM28XX_XCLK_FREQUENCY_12MHZ, + .mts_firmware = 1, + .has_dvb= 1, + .dvb_gpio = zolid_digital, + }, [EM2820_BOARD_KWORLD_PVRTV2800RF] = { .name = "Kworld PVR TV 2800 RF", .tuner_type = TUNER_TEMIC_PAL, @@ -2493,7 +2518,7 @@ struct usb_device_id em28xx_id_table[] = { .driver_info = EM2820_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2881), .driver_info = EM2820_BOARD_UNKNOWN }, - { USB_DEVICE(0xeb1a, 0x2883), + { USB_DEVICE(0xeb1a, 0x2883), /* used by zolid hybrid tv stick */ .driver_info = EM2820_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2868), .driver_info = EM2820_BOARD_UNKNOWN }, @@ -2688,6 +2713,7 @@ static const struct em28xx_hash_table em28xx_eeprom_hash[] = { {0xb8846b20, EM2881_BOARD_PINNACLE_HYBRID_PRO, TUNER_XC2028}, {0x63f653bd, EM2870_BOARD_REDDO_DVB_C_USB_BOX, TUNER_ABSENT}, {0x4e913442, EM2882_BOARD_DIKOM_DK300, TUNER_XC2028}, + {0x85dd871e, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, }; /* I2C devicelist hash table for devices with generic USB IDs */ @@ -2699,6 +2725,7 @@ static const struct em28xx_hash_table em28xx_i2c_hash[] = { {0xc51200e3, EM2820_BOARD_GADMEI_TVR200, TUNER_LG_PAL_NEW_TAPC}, {0x4ba50080, EM2861_BOARD_GADMEI_UTV330PLUS, TUNER_TNF_5335MF}, {0x6b800080, EM2874_BOARD_LEADERSHIP_ISDBT, TUNER_ABSENT}, + {0x27e10080, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, }; /* NOTE: introduce a separate hash table for devices with 16 bit eeproms */ @@ -3187,6 +3214,7 @@ void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl) case EM2880_BOARD_TERRATEC_HYBRID_XS: case EM2880_BOARD_TERRATEC_HYBRID_XS_FR: case EM2881_BOARD_PINNACLE_HYBRID_PRO: + case EM2882_BOARD_ZOLID_HYBRID_TV_STICK: ctl->demod = XC3028_FE_ZARLINK456; break; case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2: diff --git a/em28xx-dvb.c b/em28xx-dvb.c index ebe62ff..640eafe 100644 --- a/em28xx-dvb.c +++ b/em28xx-dvb.c @@ -1488,6 +1488,7 @@ static int em28xx_dvb_init(struct em28xx *dev) case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: case EM2882_BOARD_TERRATEC_HYBRID_XS: case EM2880_BOARD_EMPIRE_DUAL_TV: + case EM2882_BOARD_ZOLID_HYBRID_TV_STICK: dvb->fe[0] = dvb_attach(zl10353_attach, &em28xx_zl10353_xc3028_no_i2c_gate, &dev->i2c_adap[dev->def_i2c_bus]); diff --git a/em2
Re: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick"
Op Wed, 25 Apr 2018 06:16:20 -0300 Mauro Carvalho Chehab schreef: > Em Wed, 25 Apr 2018 11:09:50 +0200 > mjs escreveu: > > > From 0a3355b47dc465c6372d30fa4a36d1c5db6c0fe2 Mon Sep 17 00:00:00 2001 > > From: Marcel Stork > > Date: Wed, 25 Apr 2018 10:53:34 +0200 > > Subject: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick". > > > > Extra code to be able to use this stick, only digital, not analog nor > > remote-control. > > > > Changes to be committed: > > modified: em28xx-cards.c > > modified: em28xx-dvb.c > > modified: em28xx.h > > You forgot to add your Signed-off-by. That's mandatory for patches to > be acepted. Ok, still learning > > > > > --- > > em28xx-cards.c | 30 +- > > em28xx-dvb.c | 1 + > > em28xx.h | 1 + > > 3 files changed, 31 insertions(+), 1 deletion(-) > > > use git diff against upstream tree. This should be using > a different paths there, e.g. drivers/media/usb/em28xx/... This is actually against the upstream tree, in line with your advice in a previous mail. After git clone... and ./build, I did not do "make install" but copy-paste out of the /media_build/linux/drivers/media/usb/em28xx Reason, I do not have an experimental pc and some parts are experimental. I did not want to take the risk to crash my working pc at this moment in time. I will try to work around this problem. > > > > > diff --git a/em28xx-cards.c b/em28xx-cards.c > > index 6e0e67d..01b38a4 100644 > > --- a/em28xx-cards.c > > +++ b/em28xx-cards.c > > @@ -87,6 +87,21 @@ static const struct em28xx_reg_seq default_digital[] = { > > { -1, -1, -1, -1}, > > }; > > > > +/* Board Zolid Hybrid Tv Stick */ > > +static struct em28xx_reg_seq zolid_tuner[] = { > > + {EM2820_R08_GPIO_CTRL, 0xfd, 0xff, 100}, > > + {EM2820_R08_GPIO_CTRL, 0xfe, 0xff, 100}, > > + { -1, -1, > > -1, -1}, > > +}; > > + > > +static struct em28xx_reg_seq zolid_digital[] = { > > + {EM2820_R08_GPIO_CTRL, 0x6a, 0xff, 100}, > > + {EM2820_R08_GPIO_CTRL, 0x7a, 0xff, 100}, > > + {EM2880_R04_GPO,0x04, 0xff, 100}, > > + {EM2880_R04_GPO,0x0c, 0xff, 100}, > > + { -1, -1, > > -1, -1}, > > +}; > > + > > /* Board Hauppauge WinTV HVR 900 analog */ > > static const struct em28xx_reg_seq hauppauge_wintv_hvr_900_analog[] = { > > {EM2820_R08_GPIO_CTRL, 0x2d, ~EM_GPIO_4, 10}, > > @@ -679,6 +694,16 @@ const struct em28xx_board em28xx_boards[] = { > > .amux = EM28XX_AMUX_VIDEO, > > } }, > > }, > > + [EM2882_BOARD_ZOLID_HYBRID_TV_STICK] = { > > + .name = ":ZOLID HYBRID TV STICK", > > + .tuner_type = TUNER_XC2028, > > + .tuner_gpio = zolid_tuner, > > + .decoder= EM28XX_TVP5150, > > + .xclk = EM28XX_XCLK_FREQUENCY_12MHZ, > > + .mts_firmware = 1, > > + .has_dvb= 1, > > + .dvb_gpio = zolid_digital, > > + }, > > [EM2820_BOARD_KWORLD_PVRTV2800RF] = { > > .name = "Kworld PVR TV 2800 RF", > > .tuner_type = TUNER_TEMIC_PAL, > > @@ -2493,7 +2518,7 @@ struct usb_device_id em28xx_id_table[] = { > > .driver_info = EM2820_BOARD_UNKNOWN }, > > { USB_DEVICE(0xeb1a, 0x2881), > > .driver_info = EM2820_BOARD_UNKNOWN }, > > - { USB_DEVICE(0xeb1a, 0x2883), > > + { USB_DEVICE(0xeb1a, 0x2883), /* used by zolid hybrid tv stick */ > > .driver_info = EM2820_BOARD_UNKNOWN }, > > { USB_DEVICE(0xeb1a, 0x2868), > > .driver_info = EM2820_BOARD_UNKNOWN }, > > @@ -2688,6 +2713,7 @@ static const struct em28xx_hash_table > > em28xx_eeprom_hash[] = { > > {0xb8846b20, EM2881_BOARD_PINNACLE_HYBRID_PRO, TUNER_XC2028}, > > {0x63f653bd, EM2870_BOARD_REDDO_DVB_C_USB_BOX, TUNER_ABSENT}, > > {0x4e913442, EM2882_BOARD_DIKOM_DK300, TUNER_XC2028}, > > + {0x85dd871e, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, > > }; > &g
Re: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick"
Op Wed, 25 Apr 2018 08:18:55 -0300 Mauro Carvalho Chehab schreef: > Em Wed, 25 Apr 2018 12:11:10 +0200 > mjs escreveu: > > > Op Wed, 25 Apr 2018 06:16:20 -0300 > > Mauro Carvalho Chehab schreef: > > > > > Em Wed, 25 Apr 2018 11:09:50 +0200 > > > mjs escreveu: > > > > > > > From 0a3355b47dc465c6372d30fa4a36d1c5db6c0fe2 Mon Sep 17 00:00:00 2001 > > > > From: Marcel Stork > > > > Date: Wed, 25 Apr 2018 10:53:34 +0200 > > > > Subject: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick". > > > > > > > > Extra code to be able to use this stick, only digital, not analog nor > > > > remote-control. > > > > > > > > Changes to be committed: > > > > modified: em28xx-cards.c > > > > modified: em28xx-dvb.c > > > > modified: em28xx.h > > > > > > You forgot to add your Signed-off-by. That's mandatory for patches to > > > be acepted. > > > > Ok, still learning > > > > > > > > > > > > > --- > > > > em28xx-cards.c | 30 +- > > > > em28xx-dvb.c | 1 + > > > > em28xx.h | 1 + > > > > 3 files changed, 31 insertions(+), 1 deletion(-) > > > > > > > > > use git diff against upstream tree. This should be using > > > a different paths there, e.g. drivers/media/usb/em28xx/... > > > > This is actually against the upstream tree, in line with your advice in a > > previous mail. > > After git clone... and ./build, I did not do "make install" but copy-paste > > out of the /media_build/linux/drivers/media/usb/em28xx > > Reason, I do not have an experimental pc and some parts are experimental. > > I did not want to take the risk to crash my working pc at this moment in > > time. > > > > I will try to work around this problem. > > Upstream is actually this tree: > > https://git.linuxtv.org/media_tree.git/ > > The media_build tree is what we call a "backport tree" :-) I started with "https://linuxtv.org/wiki/index.php/Development:_How_to_submit_patches"; in line with your advice in a previous mail. Followed the text to "https://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device Drivers" basic approach. Also to "https://git.linuxtv.org/media_build.git/about/"; I have used "git clone --depth=1 git://linuxtv.org/media_build.git" followed by ./build and copy/paste files mentioned above. This is not the required upstream tree ? Work around: Added the path to all files manually. This is acceptable ? > > > > > > > > > > > > > > > diff --git a/em28xx-cards.c b/em28xx-cards.c > > > > index 6e0e67d..01b38a4 100644 > > > > --- a/em28xx-cards.c > > > > +++ b/em28xx-cards.c > > > > @@ -87,6 +87,21 @@ static const struct em28xx_reg_seq default_digital[] > > > > = { > > > > { -1, -1, -1, -1}, > > > > }; > > > > > > > > +/* Board Zolid Hybrid Tv Stick */ > > > > +static struct em28xx_reg_seq zolid_tuner[] = { > > > > + {EM2820_R08_GPIO_CTRL, 0xfd, 0xff, 100}, > > > > + {EM2820_R08_GPIO_CTRL, 0xfe, 0xff, 100}, > > > > + { -1, -1, > > > > -1, -1}, > > > > +}; > > > > + > > > > +static struct em28xx_reg_seq zolid_digital[] = { > > > > + {EM2820_R08_GPIO_CTRL, 0x6a, 0xff, 100}, > > > > + {EM2820_R08_GPIO_CTRL, 0x7a, 0xff, 100}, > > > > + {EM2880_R04_GPO,0x04, 0xff, > > > > 100}, > > > > + {EM2880_R04_GPO,0x0c, 0xff, > > > > 100}, > > > > + { -1, -1, > > > > -1, -1}, > > > > +}; > > > > + > > > > /* Board Hauppauge WinTV HVR 900 analog */ > > > > static const struct em28xx_reg_seq hauppauge_wintv_hvr_900_analog[] = { > > > > {EM2820_R08_GPIO_CTRL, 0x2d, ~EM_GPIO_4, 10}, > > > > @@ -679,6 +694,16 @@ const struct em28xx_board em28xx_boards[
Re: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick"
Op Wed, 25 Apr 2018 11:45:05 -0300 Mauro Carvalho Chehab schreef: > Em Wed, 25 Apr 2018 14:24:09 +0200 > mjs escreveu: > > > Op Wed, 25 Apr 2018 08:18:55 -0300 > > Mauro Carvalho Chehab schreef: > > > > > Em Wed, 25 Apr 2018 12:11:10 +0200 > > > mjs escreveu: > > > > > > > Op Wed, 25 Apr 2018 06:16:20 -0300 > > > > Mauro Carvalho Chehab schreef: > > > > > > > > > Em Wed, 25 Apr 2018 11:09:50 +0200 > > > > > mjs escreveu: > > > > > > > > > > > From 0a3355b47dc465c6372d30fa4a36d1c5db6c0fe2 Mon Sep 17 00:00:00 > > > > > > 2001 > > > > > > From: Marcel Stork > > > > > > Date: Wed, 25 Apr 2018 10:53:34 +0200 > > > > > > Subject: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick". > > > > > > > > > > > > Extra code to be able to use this stick, only digital, not analog > > > > > > nor remote-control. > > > > > > > > > > > > Changes to be committed: > > > > > > modified: em28xx-cards.c > > > > > > modified: em28xx-dvb.c > > > > > > modified: em28xx.h > > > > > > > > > > You forgot to add your Signed-off-by. That's mandatory for patches to > > > > > be acepted. > > > > > > > > Ok, still learning > > > > > > > > > > > > > > > > > > > > > --- > > > > > > em28xx-cards.c | 30 +- > > > > > > em28xx-dvb.c | 1 + > > > > > > em28xx.h | 1 + > > > > > > 3 files changed, 31 insertions(+), 1 deletion(-) > > > > > > > > > > > > > > > use git diff against upstream tree. This should be using > > > > > a different paths there, e.g. drivers/media/usb/em28xx/... > > > > > > > > This is actually against the upstream tree, in line with your advice in > > > > a previous mail. > > > > After git clone... and ./build, I did not do "make install" but > > > > copy-paste out of the /media_build/linux/drivers/media/usb/em28xx > > > > Reason, I do not have an experimental pc and some parts are > > > > experimental. > > > > I did not want to take the risk to crash my working pc at this moment > > > > in time. > > > > > > > > I will try to work around this problem. > > > > > > Upstream is actually this tree: > > > > > > https://git.linuxtv.org/media_tree.git/ > > > > > > The media_build tree is what we call a "backport tree" :-) > > > > I started with > > "https://linuxtv.org/wiki/index.php/Development:_How_to_submit_patches"; in > > line with your advice in a previous mail. > > The first line there at "Patch preparation" says: > > "For Kernel media patches, they should be created against the Linux > Kernel master linux_media git tree[1]" > > [1] With links to: http://git.linuxtv.org/media_tree.git > > > Followed the text to > > "https://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device > > Drivers" basic approach. > > I see... here, information were indeed incomplete. > > I just updated it. > > > > Also to "https://git.linuxtv.org/media_build.git/about/"; > > I have used "git clone --depth=1 git://linuxtv.org/media_build.git" > > followed by ./build and copy/paste files mentioned above. > > This is not the required upstream tree ? > > There's a similar instruction at media_tree.git/about, with is the one you > would be using instead. > > > > > Work around: > > Added the path to all files manually. > > This is acceptable ? > > An acceptable workaround would be to create another tree at the place > it untars the driver's tarball (under linux dir), and do the > diffs there. > > The ./build script actually does something similar to that, if used > with the --main-git option, but, if you're willing to use it, be > careful to do on a separate clone, as otherwise it may destroy your > work, as it will setup a different environment, and you'll lose > any changes you've made inside that media_build cloned tree. Oke, this time it will work. Two new patches coming up soon. Thanks, Marcel
[PATCH] [2] Remove 2 excess lines in driver module em28xx
From c5007d7596dd755fb5d95664d9eda9733d7df461 Mon Sep 17 00:00:00 2001 From: Marcel Stork Date: Wed, 25 Apr 2018 19:34:20 +0200 Subject: [PATCH] Remove 2 excess lines in driver module em28xx A cosmetic change by combining two sets of boards into one set because having the same arguments. Changes to be committed: modified: drivers/media/usb/em28xx/em28xx-cards.c Signed-off-by: Marcel Stork --- drivers/media/usb/em28xx/em28xx-cards.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c index 6e0e67d2..7fa9a00e 100644 --- a/drivers/media/usb/em28xx/em28xx-cards.c +++ b/drivers/media/usb/em28xx/em28xx-cards.c @@ -3182,8 +3182,6 @@ void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl) case EM2880_BOARD_EMPIRE_DUAL_TV: case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: case EM2882_BOARD_TERRATEC_HYBRID_XS: - ctl->demod = XC3028_FE_ZARLINK456; - break; case EM2880_BOARD_TERRATEC_HYBRID_XS: case EM2880_BOARD_TERRATEC_HYBRID_XS_FR: case EM2881_BOARD_PINNACLE_HYBRID_PRO: -- 2.11.0
[PATCH] [2] Add new dvb-t board ":Zolid Hybrid Tv Stick"
From 911e4ce75588f23ead083fd520a45af5336ee761 Mon Sep 17 00:00:00 2001 From: Marcel Stork Date: Wed, 25 Apr 2018 19:49:07 +0200 Subject: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick". Extra code to be able to use this stick, only digital, not analog nor remote-control. Changes to be committed: modified: drivers/media/usb/em28xx/em28xx-cards.c modified: drivers/media/usb/em28xx/em28xx-dvb.c modified: drivers/media/usb/em28xx/em28xx.h Signed-off-by: Marcel Stork --- drivers/media/usb/em28xx/em28xx-cards.c | 30 +- drivers/media/usb/em28xx/em28xx-dvb.c | 1 + drivers/media/usb/em28xx/em28xx.h | 1 + 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c index 6e0e67d2..bc8b099f 100644 --- a/drivers/media/usb/em28xx/em28xx-cards.c +++ b/drivers/media/usb/em28xx/em28xx-cards.c @@ -87,6 +87,21 @@ static const struct em28xx_reg_seq default_digital[] = { { -1, -1, -1, -1}, }; +/* Board :Zolid Hybrid Tv Stick */ +static struct em28xx_reg_seq zolid_tuner[] = { + {EM2820_R08_GPIO_CTRL, 0xfd, 0xff, 100}, + {EM2820_R08_GPIO_CTRL, 0xfe, 0xff, 100}, + { -1, -1, -1, -1}, +}; + +static struct em28xx_reg_seq zolid_digital[] = { + {EM2820_R08_GPIO_CTRL, 0x6a, 0xff, 100}, + {EM2820_R08_GPIO_CTRL, 0x7a, 0xff, 100}, + {EM2880_R04_GPO,0x04, 0xff, 100}, + {EM2880_R04_GPO,0x0c, 0xff, 100}, + { -1, -1, -1, -1}, +}; + /* Board Hauppauge WinTV HVR 900 analog */ static const struct em28xx_reg_seq hauppauge_wintv_hvr_900_analog[] = { {EM2820_R08_GPIO_CTRL, 0x2d, ~EM_GPIO_4, 10}, @@ -666,6 +681,16 @@ const struct em28xx_board em28xx_boards[] = { .tuner_type= TUNER_ABSENT, .is_webcam = 1, /* To enable sensor probe */ }, + [EM2882_BOARD_ZOLID_HYBRID_TV_STICK] = { + .name = ":ZOLID HYBRID TV STICK", + .tuner_type = TUNER_XC2028, + .tuner_gpio = zolid_tuner, + .decoder= EM28XX_TVP5150, + .xclk = EM28XX_XCLK_FREQUENCY_12MHZ, + .mts_firmware = 1, + .has_dvb= 1, + .dvb_gpio = zolid_digital, + }, [EM2750_BOARD_DLCW_130] = { /* Beijing Huaqi Information Digital Technology Co., Ltd */ .name = "Huaqi DLCW-130", @@ -2487,7 +2512,7 @@ struct usb_device_id em28xx_id_table[] = { .driver_info = EM2820_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2862), .driver_info = EM2820_BOARD_UNKNOWN }, - { USB_DEVICE(0xeb1a, 0x2863), + { USB_DEVICE(0xeb1a, 0x2863), /* used by :zolid hybrid tv stick */ .driver_info = EM2820_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2870), .driver_info = EM2820_BOARD_UNKNOWN }, @@ -2688,6 +2713,7 @@ static const struct em28xx_hash_table em28xx_eeprom_hash[] = { {0xb8846b20, EM2881_BOARD_PINNACLE_HYBRID_PRO, TUNER_XC2028}, {0x63f653bd, EM2870_BOARD_REDDO_DVB_C_USB_BOX, TUNER_ABSENT}, {0x4e913442, EM2882_BOARD_DIKOM_DK300, TUNER_XC2028}, + {0x85dd871e, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, }; /* I2C devicelist hash table for devices with generic USB IDs */ @@ -2699,6 +2725,7 @@ static const struct em28xx_hash_table em28xx_i2c_hash[] = { {0xc51200e3, EM2820_BOARD_GADMEI_TVR200, TUNER_LG_PAL_NEW_TAPC}, {0x4ba50080, EM2861_BOARD_GADMEI_UTV330PLUS, TUNER_TNF_5335MF}, {0x6b800080, EM2874_BOARD_LEADERSHIP_ISDBT, TUNER_ABSENT}, + {0x27e10080, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, }; /* NOTE: introduce a separate hash table for devices with 16 bit eeproms */ @@ -3187,6 +3214,7 @@ void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl) case EM2880_BOARD_TERRATEC_HYBRID_XS: case EM2880_BOARD_TERRATEC_HYBRID_XS_FR: case EM2881_BOARD_PINNACLE_HYBRID_PRO: + case EM2882_BOARD_ZOLID_HYBRID_TV_STICK: ctl->demod = XC3028_FE_ZARLINK456; break; case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2: diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c index a54cb8dc..67b16036 100644 --- a/drivers/media/usb/em28xx/em28xx-dvb.c +++ b/drivers/media/usb/em28xx/em28xx-dvb.c @@ -1488,6 +1488,7 @@ static int em28xx_dvb_ini
[PATCH] [2] [ do not use] Add new dvb-t board \":Zolid Hybrid Tv Stick\"
I am sorry, I have made a mistake. I will sent in a correct version. Thanks, Marcel
[PATCH] [3] Add new dvb-t board ":Zolid Hybrid Tv Stick"
From 40e6302a75521d3a2aa8d67b2945b4940f98427b Mon Sep 17 00:00:00 2001 From: Marcel Stork Date: Thu, 26 Apr 2018 21:17:02 +0200 Subject: [PATCH] Add new dvb-t board ":Zolid Hybrid Tv Stick". Extra code to be able to use this stick, only digital, not analog nor remote-control. Changes to be committed: modified: drivers/media/usb/em28xx/em28xx-cards.c modified: drivers/media/usb/em28xx/em28xx-dvb.c modified: drivers/media/usb/em28xx/em28xx.h Signed-off-by: Marcel Stork --- drivers/media/usb/em28xx/em28xx-cards.c | 30 +- drivers/media/usb/em28xx/em28xx-dvb.c | 1 + drivers/media/usb/em28xx/em28xx.h | 1 + 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c index 6e0e67d2..a62e6f4b 100644 --- a/drivers/media/usb/em28xx/em28xx-cards.c +++ b/drivers/media/usb/em28xx/em28xx-cards.c @@ -87,6 +87,21 @@ static const struct em28xx_reg_seq default_digital[] = { { -1, -1, -1, -1}, }; +/* Board :Zolid Hybrid Tv Stick */ +static struct em28xx_reg_seq zolid_tuner[] = { + {EM2820_R08_GPIO_CTRL, 0xfd, 0xff, 100}, + {EM2820_R08_GPIO_CTRL, 0xfe, 0xff, 100}, + { -1, -1, -1, -1}, +}; + +static struct em28xx_reg_seq zolid_digital[] = { + {EM2820_R08_GPIO_CTRL, 0x6a, 0xff, 100}, + {EM2820_R08_GPIO_CTRL, 0x7a, 0xff, 100}, + {EM2880_R04_GPO,0x04, 0xff, 100}, + {EM2880_R04_GPO,0x0c, 0xff, 100}, + { -1, -1, -1, -1}, +}; + /* Board Hauppauge WinTV HVR 900 analog */ static const struct em28xx_reg_seq hauppauge_wintv_hvr_900_analog[] = { {EM2820_R08_GPIO_CTRL, 0x2d, ~EM_GPIO_4, 10}, @@ -666,6 +681,16 @@ const struct em28xx_board em28xx_boards[] = { .tuner_type= TUNER_ABSENT, .is_webcam = 1, /* To enable sensor probe */ }, + [EM2882_BOARD_ZOLID_HYBRID_TV_STICK] = { + .name = ":ZOLID HYBRID TV STICK", + .tuner_type = TUNER_XC2028, + .tuner_gpio = zolid_tuner, + .decoder= EM28XX_TVP5150, + .xclk = EM28XX_XCLK_FREQUENCY_12MHZ, + .mts_firmware = 1, + .has_dvb= 1, + .dvb_gpio = zolid_digital, + }, [EM2750_BOARD_DLCW_130] = { /* Beijing Huaqi Information Digital Technology Co., Ltd */ .name = "Huaqi DLCW-130", @@ -2493,7 +2518,7 @@ struct usb_device_id em28xx_id_table[] = { .driver_info = EM2820_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2881), .driver_info = EM2820_BOARD_UNKNOWN }, - { USB_DEVICE(0xeb1a, 0x2883), + { USB_DEVICE(0xeb1a, 0x2883), /* used by :Zolid Hybrid Tv Stick */ .driver_info = EM2820_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2868), .driver_info = EM2820_BOARD_UNKNOWN }, @@ -2688,6 +2713,7 @@ static const struct em28xx_hash_table em28xx_eeprom_hash[] = { {0xb8846b20, EM2881_BOARD_PINNACLE_HYBRID_PRO, TUNER_XC2028}, {0x63f653bd, EM2870_BOARD_REDDO_DVB_C_USB_BOX, TUNER_ABSENT}, {0x4e913442, EM2882_BOARD_DIKOM_DK300, TUNER_XC2028}, + {0x85dd871e, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, }; /* I2C devicelist hash table for devices with generic USB IDs */ @@ -2699,6 +2725,7 @@ static const struct em28xx_hash_table em28xx_i2c_hash[] = { {0xc51200e3, EM2820_BOARD_GADMEI_TVR200, TUNER_LG_PAL_NEW_TAPC}, {0x4ba50080, EM2861_BOARD_GADMEI_UTV330PLUS, TUNER_TNF_5335MF}, {0x6b800080, EM2874_BOARD_LEADERSHIP_ISDBT, TUNER_ABSENT}, + {0x27e10080, EM2882_BOARD_ZOLID_HYBRID_TV_STICK, TUNER_XC2028}, }; /* NOTE: introduce a separate hash table for devices with 16 bit eeproms */ @@ -3187,6 +3214,7 @@ void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl) case EM2880_BOARD_TERRATEC_HYBRID_XS: case EM2880_BOARD_TERRATEC_HYBRID_XS_FR: case EM2881_BOARD_PINNACLE_HYBRID_PRO: + case EM2882_BOARD_ZOLID_HYBRID_TV_STICK: ctl->demod = XC3028_FE_ZARLINK456; break; case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2: diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c index a54cb8dc..67b16036 100644 --- a/drivers/media/usb/em28xx/em28xx-dvb.c +++ b/drivers/media/usb/em28xx/em28xx-dvb.c @@ -1488,6 +1488,7 @@ static int em28xx_dvb_ini
[PATCH] [superseded] remove 2 excess lines in driver module em28xx
superseded by msg130250 Thanks, Marcel
Re: [PATCH] [superseded] Add new dvb-t board \":Zolid Hybrid Tv Stick\"
superseded by msg130325 Thanks, Marcel
[PATCH] [2] [superseded] Add new dvb-t board \":Zolid Hybrid Tv Stick\"
superseded by msg130325 Thanks, Marcel
[Solved] ZOLID new usb dvb-t
Solved. See msg130325 Thanks, Marcel
[Solved] Help needed for zolid usb dvb-t stick
Solved. See msg130325. Thanks, Marcel
[Solved] Hm, seems I got me a \"msg08693 (2009)\" situation, smelly (hot) dvb-t electronics
Solved. See msg130325 Thanks, Marcel
[Solved] Problem retrieving zl10353 information: Resource temporarily unavailable (but signal =71% ?)
Solved. See msg130325. Thanks, Marcel
[Solved] How to proceed ? => [PATCH ?] EM28xx driver ?
Solved. See msg 130325. Thanks, Marcel
ZOLID new usb dvb-t
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 . [ 2876.949274] xc2028 3-0061: Loading firmware for type=D2633 DTV8 (210), id . [ 2876.961893] xc2028 3-0061: Loading SCODE for type=DTV6 QAM DTV7 ZARLINK456 SCODE HAS_IF_4760 (62e0), id . 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_ha
Help needed for zolid usb dvb-t stick
(a better request) 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, 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 and therefore 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 (see below). Successfully compiled the driver, made progress but sadly no victory. After a "scan /usr/share/dvb/dvb-t/nl-all" and at each frequentie tuning failed, the following lines were added to the dmesg. [ 2876.028035] xc2028 3-0061: Loading firmware for type=BASE F8MHZ MTS (7), id . [ 2876.949274] xc2028 3-0061: Loading firmware for type=D2633 DTV8 (210), id . [ 2876.961893] xc2028 3-0061: Loading SCODE for type=DTV6 QAM DTV7 ZARLINK456 SCODE HAS_IF_4760 (62e0), id . At this point i think i have two problems which i cannot solve. * 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: em28xx.h + #define EM2882_BOARD_ZOLID_HYBRID_TV_STICK 74 em28xx-dvb.c + static struct zl10353_config em28xx_zl10353_with_xc3028_zolid = { + .demod_address = (0x1e >> 1), + .no_tuner = 1, + .parallel_ts = 1, + .if2 = 45000, + }; static int dvb_init(struct em28xx *dev) + 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 + 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}, + }; struct em28xx_board em28xx_boards[] = { + [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, + } }, + }, --
Hm, seems I got me a "msg08693 (2009)" situation, smelly (hot) dvb-t electronics
Hello, I'm trying to get a :zolid dvb-t stick to work but at this stage I got the alarming smell, "tuning failed" and "tuning status == 0x04" (500 to 1000 Khz beside the wanted frequency the tuning status shows: == 0x06) Debug zl10353 and tuner-xc2028 (using a scan) shows me no info which I could use to tackle this problem (see below) For sure I could use info about gpio settings (in respect to the hardware) what they control, the desired value and correct sequence Tips and/or directions how to tackle this problem are welcome Greatings, Marcel Stork (netherlands) Hardware: xc3028L, wjce6353, tvp5150 and em2882 dmesg: [ 463.120045] usb 1-3: new high speed USB device using ehci_hcd and address 3 [ 463.257112] usb 1-3: New USB device found, idVendor=eb1a, idProduct=2883 [ 463.257123] usb 1-3: New USB device strings: Mfr=0, Product=1, SerialNumber=2 [ 463.257132] usb 1-3: Product: USB 2883 Device [ 463.257139] usb 1-3: SerialNumber: 200804 [ 463.258956] usb 1-3: configuration #1 chosen from 1 choice [ 463.259217] em28xx: New device USB 2883 Device @ 480 Mbps (eb1a:2883, interface 0, class 0) [ 463.259357] em28xx #0: chip ID is em2882/em2883 [ 463.412859] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 83 28 d0 12 65 00 6a 22 8c 10 [ 463.412893] em28xx #0: i2c eeprom 10: 00 00 24 57 4e 37 01 00 60 00 00 00 02 00 00 00 [ 463.412923] em28xx #0: i2c eeprom 20: 5e 00 01 00 f0 10 01 00 b8 00 00 00 5b 1e 00 00 [ 463.412953] em28xx #0: i2c eeprom 30: 00 00 20 40 20 6e 04 20 01 01 00 00 00 00 00 00 [ 463.412983] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 d3 c4 00 00 [ 463.413013] em28xx #0: i2c eeprom 50: 00 a2 b2 87 81 80 00 00 00 00 00 00 00 00 00 00 [ 463.413043] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00 [ 463.413073] em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 38 00 33 00 20 00 44 00 [ 463.413102] em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 10 03 32 00 [ 463.413132] em28xx #0: i2c eeprom 90: 30 00 30 00 38 00 30 00 34 00 00 00 00 00 00 00 [ 463.413162] em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 463.413192] em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 463.413221] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 463.413250] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 463.413280] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 463.413309] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 463.413344] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0x85dd871e [ 463.413352] em28xx #0: EEPROM info: [ 463.413357] em28xx #0: AC97 audio (5 sample rates) [ 463.413364] em28xx #0: 500mA max power [ 463.413371] em28xx #0: Table at 0x24, strings=0x226a, 0x108c, 0x [ 463.414106] em28xx #0: Identified as :ZOLID Hybrid TV Stick (card=74) [ 463.419807] tvp5150 3-005c: chip found @ 0xb8 (em28xx #0) [ 463.425429] tuner 3-0061: chip found @ 0xc2 (em28xx #0) [ 463.425708] xc2028: Xcv2028/3028 init called! [ 463.425717] xc2028 3-0061: creating new instance [ 463.425725] xc2028 3-0061: type set to XCeive xc2028/xc3028 tuner [ 463.425736] xc2028 3-0061: xc2028_set_config called [ 463.425747] xc2028 3-0061: xc2028_set_analog_freq called [ 463.425757] xc2028 3-0061: generic_set_freq called [ 463.425765] xc2028 3-0061: should set frequency 567250 kHz [ 463.425773] xc2028 3-0061: check_firmware called [ 463.425781] xc2028 3-0061: load_all_firmwares called [ 463.425789] xc2028 3-0061: Reading firmware xc3028L-v36.fw [ 463.425799] usb 1-3: firmware: requesting xc3028L-v36.fw [ 463.433292] xc2028 3-0061: Loading 81 firmware images from xc3028L-v36.fw, type: xc2028 firmware, ver 3.6 [ 463.433319] xc2028 3-0061: Reading firmware type BASE F8MHZ (3), id 0, size=9144. [ 463.433357] xc2028 3-0061: Reading firmware type BASE F8MHZ MTS (7), id 0, size=9030. [ 463.433395] xc2028 3-0061: Reading firmware type BASE FM (401), id 0, size=9054. [ 463.433433] xc2028 3-0061: Reading firmware type BASE FM INPUT1 (c01), id 0, size=9068. [ 463.433463] xc2028 3-0061: Reading firmware type BASE (1), id 0, size=9132. [ 463.433498] xc2028 3-0061: Reading firmware type BASE MTS (5), id 0, size=9006. [ 463.433517] xc2028 3-0061: Reading firmware type (0), id 7, size=161. [ 463.433530] xc2028 3-0061: Reading firmware type MTS (4), id 7, size=169. [ 463.433544] xc2028 3-0061: Reading firmware type (0), id 7, size=161. [ 463.433556] xc2028 3-0061: Reading firmware type MTS (4), id 7, size=169. [ 463.433569] xc2028 3-0061: Reading firmware type (0), id 7, size=161. [ 463.433581] xc2028 3-0061: Reading firmware type MTS (4), id 7, size=169. [ 463.433594] xc2028 3-0061: Reading firmware type (0), id 7, size=161. [ 463.433606] xc2028 3-0061: Reading firmware type MTS (4), id 7, size=169. [ 463.433619] xc2028 3-0061: Reading firmware type (0), id e0, size=161. [
Where to find the "em28xx log parser"
Hello, I'm trying to make a patch for a :zolid usb dvb-t receiver. Like to try the "em28xx log parser" to decode the usbsnoop output. According to: http://www.linuxtv.org/wiki/index.php/Bus_snooping/sniffing it has been out there at least once but so far no luck to find it. So, the program or a link where to find would help. Thanks, Marcel Stork (Netherlands) -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Problem retrieving zl10353 information: Resource temporarily unavailable (but signal =71% ?)
Hello, I'm trying to get a dvb-t usb-stick to work with debian. Components: em2882 - xc3028l (uses XC3028L-V36.fw) - ce6353 (zl10353) - tvp5150 - emp202 Kernel: 4.7.0-0.bpo.1-686-pae - debian 8 i2c device: eeprom @ 0xa0 - tvp5150 @ 0xb8 - tuner(analog) @0xc2 (from dmesg 2.6 kernel) I got to this point: femon -H: FE: Zarlink ZL10353 DVB-T (DVBT) Problem retrieving frontend information: Resource temporarily unavailable status C| signal 71% | snr 74% | ber -1080313980 | unc -1218616323 | Using next (G)PIO settings, enable more did not improve anything: static struct em28xx_reg_seq zolid_tuner[] = { // {EM2820_R08_GPIO_CTRL, EM_GPIO_4, EM_GPIO_4, 10}, // {EM2820_R08_GPIO_CTRL, 0, EM_GPIO_4, 10}, // {EM2820_R08_GPIO_CTRL, EM_GPIO_4, EM_GPIO_4, 10}, { -1, -1, -1, -1}, }; static struct em28xx_reg_seq zolid_digital[] = { // {EM2820_R08_GPIO_CTRL, 0x6e, ~EM_GPIO_4, 100}, // {EM2880_R04_GPO,0x04, 0xff, 100}, /* zl10353 reset ? */ {EM2880_R04_GPO,0x08, 0xff,10}, /* zl10353 to connect tuner (dmesg) */ // {EM2880_R04_GPO,0x0c, 0xff,10}, { -1, -1, -1, -1}, }; static struct em28xx_reg_seq zolid_analog[] = { {EM2820_R08_GPIO_CTRL, 0x6d, ~EM_GPIO_4, 10}, /* em202 (dmesg) */ // {EM2880_R04_GPO,0x04, 0xff, 100}, // {EM2880_R04_GPO,0x08, 0xff,10}, // {EM2880_R04_GPO,0x0c, 0xff,10}, { -1, -1, -1, -1}, Two years ago I used snoop and perl tools on the ms-windows-driver and got next result: 40 00 00 00 04 00 01 00 >>> 04, 08 or 0c 19 times alternating 08 and 0c, and the last one was 04 followed by 0c Also 40 00 00 00 08 00 01 00 >>> 6a, 6b, 6f, 7a, 7f, fd, fe or ff I tried all of them in the second Coulomb zolid_digital as EM2820_R09_GPIO_CTRL, no improvement. I do have a data-sheet em2882, did search trough linux-media and used duck-duck-go trying to get relevant info, no luck at this point. Question: Where to find knowledge about the em2882 GPIO and GPO ? And naturally, any tips or advice is appreciated. Thanks in advance. Marcel Stork (Netherlands) lsusb: Bus 005 Device 002: ID eb1a:2883 eMPIA Technology, Inc. -- /dev/dvb/adapter0 with demux0, drv0, frontend0 and net0 is created. -- dmesg: [ 1897.124737] em28xx: New device USB 2883 Device @ 480 Mbps (eb1a:2883, interface 0, class 0) [ 1897.124745] em28xx: Audio interface 0 found (Vendor Class) [ 1897.124750] em28xx: Video interface 0 found: isoc [ 1897.124754] em28xx: DVB interface 0 found: isoc [ 1897.124896] em28xx: chip ID is em2882/3 [ 1897.230009] em2882/3 #0: EEPROM ID = 1a eb 67 95, EEPROM hash = 0x85dd871e [ 1897.230017] em2882/3 #0: EEPROM info: [ 1897.230020] em2882/3 #0: AC97 audio (5 sample rates) [ 1897.230024] em2882/3 #0: 500mA max power [ 1897.230029] em2882/3 #0: Table at offset 0x24, strings=0x226a, 0x108c, 0x [ 1897.230035] em2882/3 #0: Identified as :ZOLID HYBRID TV STICK (card=100) [ 1897.230040] em2882/3 #0: analog set to isoc mode. [ 1897.230044] em2882/3 #0: dvb set to isoc mode. [ 1897.230280] usbcore: registered new interface driver em28xx [ 1897.291557] em2882/3 #0: Registering V4L2 extension [ 1897.313877] tvp5150 7-005c: tvp5150 (4.0) chip found @ 0xb8 (em2882/3 #0) [ 1897.313885] tvp5150 7-005c: tvp5150am1 detected. [ 1897.327869] tuner 7-0061: Tuner -1 found with type(s) Radio TV. [ 1897.376267] xc2028 7-0061: creating new instance [ 1897.376277] xc2028 7-0061: type set to XCeive xc2028/xc3028 tuner [ 1897.376495] em2882/3 #0: Config register raw data: 0xd0 [ 1897.377246] em2882/3 #0: AC97 vendor ID = 0x [ 1897.377621] em2882/3 #0: AC97 features = 0x6a90 [ 1897.377626] em2882/3 #0: Empia 202 AC97 audio processor detected [ 1897.399113] usb 5-3: firmware: direct-loading firmware xc3028L-v36.fw [ 1897.399129] xc2028 7-0061: Loading 81 firmware images from xc3028L-v36.fw, type: xc2028 firmware, ver 3.6 [ 1897.524132] xc2028 7-0061: Loading firmware for type=BASE F8MHZ MTS (7), id . [ 1898.511621] MTS (4), id 00ff: [ 1898.511630] xc2028 7-0061: Loading firmware for type=MTS (4), id 0007. [ 1898.809002] em2882/3 #0: V4L2 video device registered as video0 [ 1898.809009] em2882/3 #0: V4L2 VBI device registered as vbi0 [ 1898.809994] em2882/3 #0: V4L2 extension successfully initialized [ 1898.81] em28xx: Registered (Em28xx v4l2 Extension) extension [ 1898.971663]