* Re: [PATCH V3.6 1/2] linux-media: dvbsky: add support for Mygica T230C v2
2019-07-17 18:05 [PATCH V3.6 0/2] linux-media: dvbsky: add support for Mygica T230C v2 Jan Pieter van Woerkom
@ 2019-07-17 18:09 ` Jan Pieter van Woerkom
2019-07-17 18:11 ` [PATCH V3.6 2/2] " Jan Pieter van Woerkom
2019-07-18 0:36 ` [PATCH V3.6.1 " Jan Pieter van Woerkom
2 siblings, 0 replies; 6+ messages in thread
From: Jan Pieter van Woerkom @ 2019-07-17 18:09 UTC (permalink / raw)
To: linux-media
Cc: Michael Ira Krufky, Antti Palosaari, Sean Young, Frantisek Rysanek
Adds support for the "Mygica T230C v2" into the "dvbsky" driver.
Signed-off-by: Jan Pieter van Woerkom <jp@jpvw.nl>
Tested-by: Frank Rysanek <Frantisek.Rysanek@post.cz>
---
diff -ru a/drivers/media/usb/dvb-usb-v2/dvbsky.c b/drivers/media/usb/dvb-usb-v2/dvbsky.c
--- a/drivers/media/usb/dvb-usb-v2/dvbsky.c 2019-07-08 00:41:56.000000000 +0200
+++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c 2019-07-16 06:05:07.607212862 +0200
@@ -551,6 +551,8 @@
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)
+ si2168_config.ts_mode |= SI2168_TS_CLK_MANUAL;
si2168_config.ts_clock_inv = 1;
state->i2c_client_demod = dvb_module_probe("si2168", NULL,
@@ -790,6 +792,9 @@
{ DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C,
&mygica_t230c_props, "MyGica Mini DVB-T2 USB Stick T230C",
RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
+ { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C2,
+ &mygica_t230c_props, "MyGica Mini DVB-T2 USB Stick T230C v2",
+ RC_MAP_TOTAL_MEDIA_IN_HAND_02) },
{ }
};
MODULE_DEVICE_TABLE(usb, dvbsky_id_table);
diff -ru a/include/media/dvb-usb-ids.h b/include/media/dvb-usb-ids.h
--- a/include/media/dvb-usb-ids.h 2019-07-08 00:41:56.000000000 +0200
+++ b/include/media/dvb-usb-ids.h 2019-07-16 06:05:07.607212862 +0200
@@ -388,6 +388,7 @@
#define USB_PID_MYGICA_D689 0xd811
#define USB_PID_MYGICA_T230 0xc688
#define USB_PID_MYGICA_T230C 0xc689
+#define USB_PID_MYGICA_T230C2 0xc68a
#define USB_PID_ELGATO_EYETV_DIVERSITY 0x0011
#define USB_PID_ELGATO_EYETV_DTT 0x0021
#define USB_PID_ELGATO_EYETV_DTT_2 0x003f
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3.6 2/2] linux-media: dvbsky: add support for Mygica T230C v2
2019-07-17 18:05 [PATCH V3.6 0/2] linux-media: dvbsky: add support for Mygica T230C v2 Jan Pieter van Woerkom
2019-07-17 18:09 ` [PATCH V3.6 1/2] " Jan Pieter van Woerkom
@ 2019-07-17 18:11 ` Jan Pieter van Woerkom
2019-07-17 19:25 ` Sean Young
2019-07-18 0:36 ` [PATCH V3.6.1 " Jan Pieter van Woerkom
2 siblings, 1 reply; 6+ messages in thread
From: Jan Pieter van Woerkom @ 2019-07-17 18:11 UTC (permalink / raw)
To: linux-media
Cc: Michael Ira Krufky, Antti Palosaari, Sean Young, Frantisek Rysanek
The T230C v2 hardware needs a mode of the si2168 chip to be
set for which the si2168 driver previously had no support.
This patch uses a specific measure to configure this on the
T230C v2 hardware only - see the flag passed via the ts_mode
attribute and its dependency on USB_PID_MYGICA_T230C2.
Signed-off-by: Jan Pieter van Woerkom <jp@jpvw.nl>
Tested-by: Frank Rysanek <Frantisek.Rysanek@post.cz>
---
diff -ru a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
--- a/drivers/media/dvb-frontends/si2168.c 2019-07-08 00:41:56.000000000 +0200
+++ b/drivers/media/dvb-frontends/si2168.c 2019-07-16 21:21:39.267802750 +0200
@@ -82,8 +82,18 @@
dev_dbg(&client->dev, "%s acquire: %d\n", __func__, acquire);
+ /* set manual value */
+ if (dev->ts_mode & SI2168_TS_CLK_MANUAL) {
+ memcpy(cmd.args, "\x14\x00\x0d\x10\xe8\x03", 6);
+ cmd.wlen = 6;
+ cmd.rlen = 4;
+ ret = si2168_cmd_execute(client, &cmd);
+ if (ret)
+ return ret;
+ }
/* set TS_MODE property */
memcpy(cmd.args, "\x14\x00\x01\x10\x10\x00", 6);
+ cmd.args[4] <<= (dev->ts_mode & SI2168_TS_CLK_MANUAL) >> 5;
if (acquire)
cmd.args[4] |= dev->ts_mode;
else
diff -ru a/drivers/media/dvb-frontends/si2168.h b/drivers/media/dvb-frontends/si2168.h
--- a/drivers/media/dvb-frontends/si2168.h 2019-07-08 00:41:56.000000000 +0200
+++ b/drivers/media/dvb-frontends/si2168.h 2019-07-16 06:29:53.913009262 +0200
@@ -30,6 +30,7 @@
#define SI2168_TS_PARALLEL 0x06
#define SI2168_TS_SERIAL 0x03
#define SI2168_TS_TRISTATE 0x00
+#define SI2168_TS_CLK_MANUAL 0x20
u8 ts_mode;
/* TS clock inverted */
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3.6 2/2] linux-media: dvbsky: add support for Mygica T230C v2
2019-07-17 18:11 ` [PATCH V3.6 2/2] " Jan Pieter van Woerkom
@ 2019-07-17 19:25 ` Sean Young
2019-07-18 0:29 ` JP
0 siblings, 1 reply; 6+ messages in thread
From: Sean Young @ 2019-07-17 19:25 UTC (permalink / raw)
To: Jan Pieter van Woerkom
Cc: linux-media, Michael Ira Krufky, Antti Palosaari, Frantisek Rysanek
On Wed, Jul 17, 2019 at 08:11:50PM +0200, Jan Pieter van Woerkom wrote:
> The T230C v2 hardware needs a mode of the si2168 chip to be
> set for which the si2168 driver previously had no support.
> This patch uses a specific measure to configure this on the
> T230C v2 hardware only - see the flag passed via the ts_mode
> attribute and its dependency on USB_PID_MYGICA_T230C2.
>
> Signed-off-by: Jan Pieter van Woerkom <jp@jpvw.nl>
> Tested-by: Frank Rysanek <Frantisek.Rysanek@post.cz>
> ---
> diff -ru a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
> --- a/drivers/media/dvb-frontends/si2168.c 2019-07-08 00:41:56.000000000 +0200
> +++ b/drivers/media/dvb-frontends/si2168.c 2019-07-16 21:21:39.267802750 +0200
> @@ -82,8 +82,18 @@
>
> dev_dbg(&client->dev, "%s acquire: %d\n", __func__, acquire);
>
> + /* set manual value */
> + if (dev->ts_mode & SI2168_TS_CLK_MANUAL) {
> + memcpy(cmd.args, "\x14\x00\x0d\x10\xe8\x03", 6);
> + cmd.wlen = 6;
> + cmd.rlen = 4;
> + ret = si2168_cmd_execute(client, &cmd);
> + if (ret)
> + return ret;
> + }
> /* set TS_MODE property */
> memcpy(cmd.args, "\x14\x00\x01\x10\x10\x00", 6);
> + cmd.args[4] <<= (dev->ts_mode & SI2168_TS_CLK_MANUAL) >> 5;
I'm sorry but this is not very readable. How about:
if (dev->ts_mode & SI2168_TS_CLK_MANUAL)
cmd.args[4] = SI2168_TS_CLK_MANUAL;
?
Sean
> if (acquire)
> cmd.args[4] |= dev->ts_mode;
> else
> diff -ru a/drivers/media/dvb-frontends/si2168.h b/drivers/media/dvb-frontends/si2168.h
> --- a/drivers/media/dvb-frontends/si2168.h 2019-07-08 00:41:56.000000000 +0200
> +++ b/drivers/media/dvb-frontends/si2168.h 2019-07-16 06:29:53.913009262 +0200
> @@ -30,6 +30,7 @@
> #define SI2168_TS_PARALLEL 0x06
> #define SI2168_TS_SERIAL 0x03
> #define SI2168_TS_TRISTATE 0x00
> +#define SI2168_TS_CLK_MANUAL 0x20
> u8 ts_mode;
>
> /* TS clock inverted */
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3.6 2/2] linux-media: dvbsky: add support for Mygica T230C v2
2019-07-17 19:25 ` Sean Young
@ 2019-07-18 0:29 ` JP
0 siblings, 0 replies; 6+ messages in thread
From: JP @ 2019-07-18 0:29 UTC (permalink / raw)
To: Sean Young
Cc: linux-media, Michael Ira Krufky, Antti Palosaari, Frantisek Rysanek
On 7/17/19 9:25 PM, Sean Young wrote:
> On Wed, Jul 17, 2019 at 08:11:50PM +0200, Jan Pieter van Woerkom wrote:
>> The T230C v2 hardware needs a mode of the si2168 chip to be
>> set for which the si2168 driver previously had no support.
>> This patch uses a specific measure to configure this on the
>> T230C v2 hardware only - see the flag passed via the ts_mode
>> attribute and its dependency on USB_PID_MYGICA_T230C2.
>>
>> Signed-off-by: Jan Pieter van Woerkom <jp@jpvw.nl>
>> Tested-by: Frank Rysanek <Frantisek.Rysanek@post.cz>
>> ---
>> diff -ru a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
>> --- a/drivers/media/dvb-frontends/si2168.c 2019-07-08 00:41:56.000000000 +0200
>> +++ b/drivers/media/dvb-frontends/si2168.c 2019-07-16 21:21:39.267802750 +0200
>> @@ -82,8 +82,18 @@
>>
>> dev_dbg(&client->dev, "%s acquire: %d\n", __func__, acquire);
>>
>> + /* set manual value */
>> + if (dev->ts_mode & SI2168_TS_CLK_MANUAL) {
>> + memcpy(cmd.args, "\x14\x00\x0d\x10\xe8\x03", 6);
>> + cmd.wlen = 6;
>> + cmd.rlen = 4;
>> + ret = si2168_cmd_execute(client, &cmd);
>> + if (ret)
>> + return ret;
>> + }
>> /* set TS_MODE property */
>> memcpy(cmd.args, "\x14\x00\x01\x10\x10\x00", 6);
>> + cmd.args[4] <<= (dev->ts_mode & SI2168_TS_CLK_MANUAL) >> 5;
> I'm sorry but this is not very readable. How about:
>
> if (dev->ts_mode & SI2168_TS_CLK_MANUAL)
> cmd.args[4] = SI2168_TS_CLK_MANUAL;
>
> ?
Yes you're right. I'll post update in this thread.
>
> Sean
>
>> if (acquire)
>> cmd.args[4] |= dev->ts_mode;
>> else
>> diff -ru a/drivers/media/dvb-frontends/si2168.h b/drivers/media/dvb-frontends/si2168.h
>> --- a/drivers/media/dvb-frontends/si2168.h 2019-07-08 00:41:56.000000000 +0200
>> +++ b/drivers/media/dvb-frontends/si2168.h 2019-07-16 06:29:53.913009262 +0200
>> @@ -30,6 +30,7 @@
>> #define SI2168_TS_PARALLEL 0x06
>> #define SI2168_TS_SERIAL 0x03
>> #define SI2168_TS_TRISTATE 0x00
>> +#define SI2168_TS_CLK_MANUAL 0x20
>> u8 ts_mode;
>>
>> /* TS clock inverted */
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3.6.1 2/2] linux-media: dvbsky: add support for Mygica T230C v2
2019-07-17 18:05 [PATCH V3.6 0/2] linux-media: dvbsky: add support for Mygica T230C v2 Jan Pieter van Woerkom
2019-07-17 18:09 ` [PATCH V3.6 1/2] " Jan Pieter van Woerkom
2019-07-17 18:11 ` [PATCH V3.6 2/2] " Jan Pieter van Woerkom
@ 2019-07-18 0:36 ` Jan Pieter van Woerkom
2 siblings, 0 replies; 6+ messages in thread
From: Jan Pieter van Woerkom @ 2019-07-18 0:36 UTC (permalink / raw)
To: linux-media
Cc: Michael Ira Krufky, Antti Palosaari, Sean Young, Frantisek Rysanek
The T230C v2 hardware needs a mode of the si2168 chip to be
set for which the si2168 driver previously had no support.
This patch uses a specific measure to configure this on the
T230C v2 hardware only - see the flag passed via the ts_mode
attribute and its dependency on USB_PID_MYGICA_T230C2.
Signed-off-by: Jan Pieter van Woerkom <jp@jpvw.nl>
---
diff -ru a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
--- a/drivers/media/dvb-frontends/si2168.c 2019-07-08 00:41:56.000000000 +0200
+++ b/drivers/media/dvb-frontends/si2168.c 2019-07-18 01:57:35.036592424 +0200
@@ -82,8 +82,19 @@
dev_dbg(&client->dev, "%s acquire: %d\n", __func__, acquire);
+ /* set manual value */
+ if (dev->ts_mode & SI2168_TS_CLK_MANUAL) {
+ memcpy(cmd.args, "\x14\x00\x0d\x10\xe8\x03", 6);
+ cmd.wlen = 6;
+ cmd.rlen = 4;
+ ret = si2168_cmd_execute(client, &cmd);
+ if (ret)
+ return ret;
+ }
/* set TS_MODE property */
memcpy(cmd.args, "\x14\x00\x01\x10\x10\x00", 6);
+ if (dev->ts_mode & SI2168_TS_CLK_MANUAL)
+ cmd.args[4] = SI2168_TS_CLK_MANUAL;
if (acquire)
cmd.args[4] |= dev->ts_mode;
else
diff -ru a/drivers/media/dvb-frontends/si2168.h b/drivers/media/dvb-frontends/si2168.h
--- a/drivers/media/dvb-frontends/si2168.h 2019-07-08 00:41:56.000000000 +0200
+++ b/drivers/media/dvb-frontends/si2168.h 2019-07-16 06:29:53.913009262 +0200
@@ -30,6 +30,7 @@
#define SI2168_TS_PARALLEL 0x06
#define SI2168_TS_SERIAL 0x03
#define SI2168_TS_TRISTATE 0x00
+#define SI2168_TS_CLK_MANUAL 0x20
u8 ts_mode;
/* TS clock inverted */
^ permalink raw reply [flat|nested] 6+ messages in thread