From: JP <jp@jpvw.nl>
To: Vincent Fortier <th0ma7@gmail.com>, linux-media@vger.kernel.org
Subject: Re: [PATCH] Backport MYGICA T230A adapter
Date: Tue, 16 Mar 2021 17:55:04 +0100 [thread overview]
Message-ID: <f62ab424-7dc6-ee57-d098-fb5008c33cef@jpvw.nl> (raw)
In-Reply-To: <e57634b4-b6f3-fcbd-2e43-cfed3a429918@gmail.com>
Hi Vincent.
On 3/13/21 1:36 PM, Vincent Fortier wrote:
> Hi all,
>
> (first patch posting so don't hesitate to let me know where to find
> additional info to improve next time)
My advice is to do this on newer kernel.
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.6.tar.xz
So we can share it with the world.
I have all T230* receivers, so i can test t230a and also if it doesn't
break the others.
Cheers,
Jan Pieter.
> The following patch is a manual backport based on crazycat69 /
> linux_media git repository:
>
> https://github.com/crazycat69/linux_media/commit/e1ef47d604775c550a8f0d1bda276c113f882c9b?branch=e1ef47d604775c550a8f0d1bda276c113f882c9b&diff=unified
>
>
>
> MYGICA T230A support was found on the following thread:
> https://forum.libreelec.tv/thread/23142-mygica-t230a/?pageNo=2
>
> Built successfully over commit
> 069192365e2cec8b47f6e6701fb2aa50f763c602 (March 9th) on media_build
> git tree with driver snapshot from 2021-03-07-1c5ab1e2286f over
> Synology 4.4.59 / 4.4.60 kernels. Also built successfully over
> 3.10.105 using latest compatible snapshot from 2021-01-13 using driver
> version 2021-01-08-321af22a3d2f (as sadly pre-4.4 support was removed
> recently).
>
> User thread confirming it to work under Synology NAS under 4.4.59
> kernel available here:
>
> https://github.com/th0ma7/synology/issues/9
>
> Much thnx in advance.
>
> - vin
>
> ---
>
> diff -uprN ../linuxtv.orig/linux/drivers/media/usb/dvb-usb-v2/dvbsky.c
> ./linux/drivers/media/usb/dvb-usb-v2/dvbsky.c
> --- ../linuxtv.orig/linux/drivers/media/usb/dvb-usb-v2/dvbsky.c
> 2020-11-06 05:40:16.000000000 +0000
> +++ ./linux/drivers/media/usb/dvb-usb-v2/dvbsky.c 2021-02-19
> 14:31:34.405091839 +0000
> @@ -529,7 +529,7 @@ static int dvbsky_t330_attach(struct dvb
> return 0;
> }
>
> -static int dvbsky_mygica_t230c_attach(struct dvb_usb_adapter *adap)
> +static int dvbsky_mygica_t230_attach(struct dvb_usb_adapter *adap)
> {
> struct dvbsky_state *state = adap_to_priv(adap);
> struct dvb_usb_device *d = adap_to_d(adap);
> @@ -541,7 +541,9 @@ static int dvbsky_mygica_t230c_attach(st
> si2168_config.i2c_adapter = &i2c_adapter;
> si2168_config.fe = &adap->fe[0];
> si2168_config.ts_mode = SI2168_TS_PARALLEL;
> - if (le16_to_cpu(d->udev->descriptor.idProduct) ==
> USB_PID_MYGICA_T230C2)
> + if (le16_to_cpu(d->udev->descriptor.idProduct) ==
> USB_PID_MYGICA_T230C2 ||
> + le16_to_cpu(d->udev->descriptor.idProduct) ==
> USB_PID_MYGICA_T230C2_LITE ||
> + le16_to_cpu(d->udev->descriptor.idProduct) ==
> USB_PID_MYGICA_T230A)
> si2168_config.ts_mode |= SI2168_TS_CLK_MANUAL;
> si2168_config.ts_clock_inv = 1;
>
> @@ -553,19 +555,26 @@ static int dvbsky_mygica_t230c_attach(st
>
> /* attach tuner */
> si2157_config.fe = adap->fe[0];
> - if (le16_to_cpu(d->udev->descriptor.idProduct) ==
> USB_PID_MYGICA_T230) {
> - si2157_config.if_port = 1;
> - state->i2c_client_tuner = dvb_module_probe("si2157", NULL,
> + switch (le16_to_cpu(d->udev->descriptor.idProduct)) {
> + case USB_PID_MYGICA_T230C:
> + case USB_PID_MYGICA_T230C2:
> + case USB_PID_MYGICA_T230C2_LITE:
> + case USB_PID_MYGICA_T230A: {
> + si2157_config.if_port = 0;
> + state->i2c_client_tuner = dvb_module_probe("si2157", "si2141",
> i2c_adapter,
> 0x60,
> &si2157_config);
> - } else {
> - si2157_config.if_port = 0;
> - state->i2c_client_tuner = dvb_module_probe("si2157", "si2141",
> + break;
> + }
> + default: {
> + si2157_config.if_port = 1;
> + state->i2c_client_tuner = dvb_module_probe("si2157", NULL,
> i2c_adapter,
> 0x60,
> &si2157_config);
> }
> + }
> if (!state->i2c_client_tuner) {
> dvb_module_release(state->i2c_client_demod);
> return -ENODEV;
> @@ -577,14 +586,24 @@ static int dvbsky_mygica_t230c_attach(st
>
> static int dvbsky_identify_state(struct dvb_usb_device *d, const char
> **name)
> {
> - dvbsky_gpio_ctrl(d, 0x04, 1);
> - msleep(20);
> - dvbsky_gpio_ctrl(d, 0x83, 0);
> - dvbsky_gpio_ctrl(d, 0xc0, 1);
> - msleep(100);
> - dvbsky_gpio_ctrl(d, 0x83, 1);
> - dvbsky_gpio_ctrl(d, 0xc0, 0);
> - msleep(50);
> + if (le16_to_cpu(d->udev->descriptor.idProduct) ==
> USB_PID_MYGICA_T230A) {
> + dvbsky_gpio_ctrl(d, 0x87, 0);
> + msleep(20);
> + dvbsky_gpio_ctrl(d, 0x86, 1);
> + dvbsky_gpio_ctrl(d, 0x80, 0);
> + msleep(100);
> + dvbsky_gpio_ctrl(d, 0x80, 1);
> + msleep(50);
> + } else {
> + dvbsky_gpio_ctrl(d, 0x04, 1);
> + msleep(20);
> + dvbsky_gpio_ctrl(d, 0x83, 0);
> + dvbsky_gpio_ctrl(d, 0xc0, 1);
> + msleep(100);
> + dvbsky_gpio_ctrl(d, 0x83, 1);
> + dvbsky_gpio_ctrl(d, 0xc0, 0);
> + msleep(50);
> + }
>
> return WARM;
> }
> @@ -719,7 +738,7 @@ static struct dvb_usb_device_properties
> }
> };
>
> -static struct dvb_usb_device_properties mygica_t230c_props = {
> +static struct dvb_usb_device_properties mygica_t230_props = {
> .driver_name = KBUILD_MODNAME,
> .owner = THIS_MODULE,
> .adapter_nr = adapter_nr,
> @@ -730,7 +749,7 @@ static struct dvb_usb_device_properties
> .generic_bulk_ctrl_delay = DVBSKY_MSG_DELAY,
>
> .i2c_algo = &dvbsky_i2c_algo,
> - .frontend_attach = dvbsky_mygica_t230c_attach,
> + .frontend_attach = dvbsky_mygica_t230_attach,
> .frontend_detach = dvbsky_frontend_detach,
> .init = dvbsky_init,
> .get_rc_config = dvbsky_get_rc_config,
> @@ -778,16 +797,22 @@ static const struct usb_device_id dvbsky
> &dvbsky_s960_props, "Terratec Cinergy S2 Rev.4",
> RC_MAP_DVBSKY) },
> { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230,
> - &mygica_t230c_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230",
> + &mygica_t230_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230",
> RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
> { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C,
> - &mygica_t230c_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230C",
> + &mygica_t230_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230C",
> RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
> { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C_LITE,
> - &mygica_t230c_props, "MyGica Mini DVB-(T/T2/C) USB Stick
> T230C Lite",
> + &mygica_t230_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230C
> Lite",
> NULL) },
> { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C2,
> - &mygica_t230c_props, "MyGica Mini DVB-(T/T2/C) USB Stick
> T230C v2",
> + &mygica_t230_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230C
> v2",
> + RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
> + { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C2_LITE,
> + &mygica_t230_props, "MyGica Mini DVB-T2 USB Stick T230C Lite
> v2",
> + RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
> + { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230A,
> + &mygica_t230_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230A",
> RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
> { }
> };
> diff -uprN ../linuxtv.orig/linux/include/media/dvb-usb-ids.h
> ./linux/include/media/dvb-usb-ids.h
> --- ../linuxtv.orig/linux/include/media/dvb-usb-ids.h 2020-05-26
> 05:40:21.000000000 +0000
> +++ ./linux/include/media/dvb-usb-ids.h 2021-02-19
> 14:27:21.459391941 +0000
> @@ -394,6 +394,8 @@
> #define USB_PID_MYGICA_T230C 0xc689
> #define USB_PID_MYGICA_T230C2 0xc68a
> #define USB_PID_MYGICA_T230C_LITE 0xc699
> +#define USB_PID_MYGICA_T230C2_LITE 0xc69a
> +#define USB_PID_MYGICA_T230A 0x689a
> #define USB_PID_ELGATO_EYETV_DIVERSITY 0x0011
> #define USB_PID_ELGATO_EYETV_DTT 0x0021
> #define USB_PID_ELGATO_EYETV_DTT_2 0x003f
>
>
next prev parent reply other threads:[~2021-03-16 16:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-13 12:36 [PATCH] Backport MYGICA T230A adapter Vincent Fortier
2021-03-13 21:37 ` JP
2021-03-16 16:55 ` JP [this message]
2021-03-16 23:43 ` Vincent Fortier
2021-03-17 16:24 ` JP
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=f62ab424-7dc6-ee57-d098-fb5008c33cef@jpvw.nl \
--to=jp@jpvw.nl \
--cc=linux-media@vger.kernel.org \
--cc=th0ma7@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).