On 6/8/19 5:49 AM, JP wrote:
I made the Mygica T230c2 work on kernel 5.1.7, but I have no idea
how to submit this. http://jpvw.nl/pub/test/dvb/linux-5.1.7-t230c2.patch
Please can someone help me out. It looks like the extra code in the
demodulator does not effect other drivers that use it. Tested with a
T230, they bothseem to work OK.
Jan Pieter van Woerkom
diff -ru a/drivers/media/dvb-frontends/si2168.c
b/drivers/media/dvb-frontends/si2168.c
--- a/drivers/media/dvb-frontends/si2168.c 2019-06-04
07:59:45.000000000 +0200
+++ b/drivers/media/dvb-frontends/si2168.c 2019-06-07
22:49:21.226337473 +0200
@@ -91,8 +91,16 @@
dev_dbg(&client->dev, "%s acquire: %d\n", __func__, acquire);
+ /* set ts clock freq to 10Mhz */
+ 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;
+
0x03e8 is 1000 and value used is 10 000Hz steps ==> 10 000 000 = 10MHz.
Which means 8bit parallel ts bus has capacity of 80Mbit/s which sounds
correct max for DVB-T2. What is default value set to that property? Many
times those default values are just correct.
/* set TS_MODE property */
- memcpy(cmd.args, "\x14\x00\x01\x10\x10\x00", 6);
+ memcpy(cmd.args, "\x14\x00\x01\x10\x00\x00", 6);
+ cmd.args[4] = dev->ts_mode & 0x30;
if (acquire)
cmd.args[4] |= dev->ts_mode;
else
And that enables use of own value.
Anyhow, I don't like idea of piggybacking those "magic" bits on ts mode
configuration variable. It is better to define own configuration value
for ts clock on use it when it is set.
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-06-04
07:59:45.000000000 +0200
+++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c 2019-06-07
16:47:32.141530489 +0200
@@ -560,6 +560,9 @@
si2168_config.i2c_adapter = &i2c_adapter;
si2168_config.fe = &adap->fe[0];
si2168_config.ts_mode = SI2168_TS_PARALLEL;
+ if (d->udev->descriptor.idProduct == USB_PID_MYGICA_T230C2)
+ si2168_config.ts_mode |= 0x20;
si2168_config.ts_clock_inv = 1;
state->i2c_client_demod = dvb_module_probe("si2168", NULL,
@@ -799,6 +802,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 T230C2",
+ 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-06-04 07:59:45.000000000 +0200
+++ b/include/media/dvb-usb-ids.h 2019-06-06 17:32:32.159187000 +0200
@@ -387,6 +387,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
What is that T230C2 stick? Naming sounds like a DVB-C2 capable, but I
found only T230C model from MyGica site. Where I can get one?
And also patch should be split to two logical parts, first add manual ts
frequency support to si2168 and then other patch which adds device itself.
And which are tuner and demod versions/revisions used for that device?
regards
Antti
--
http://palosaari.fi/