Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: dvbsky: add support for MyGica T230C2_LITE and T230A

Add Geniatech MyGica T230C2_LITE and T230A as many people
are asking support for these devices on forums.

Link: https://lore.kernel.org/linux-media/YMuptIYFLdwSmw//@kali

Signed-off-by: Ján Čáni <pego149@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

authored by

Ján Čáni and committed by
Mauro Carvalho Chehab
387caebe e73f0f0e

+29 -10
+27 -10
drivers/media/usb/dvb-usb-v2/dvbsky.c
··· 541 541 si2168_config.i2c_adapter = &i2c_adapter; 542 542 si2168_config.fe = &adap->fe[0]; 543 543 si2168_config.ts_mode = SI2168_TS_PARALLEL; 544 - if (le16_to_cpu(d->udev->descriptor.idProduct) == USB_PID_MYGICA_T230C2) 544 + if (le16_to_cpu(d->udev->descriptor.idProduct) == USB_PID_MYGICA_T230C2 || 545 + le16_to_cpu(d->udev->descriptor.idProduct) == USB_PID_MYGICA_T230C2_LITE || 546 + le16_to_cpu(d->udev->descriptor.idProduct) == USB_PID_MYGICA_T230A) 545 547 si2168_config.ts_mode |= SI2168_TS_CLK_MANUAL; 546 548 si2168_config.ts_clock_inv = 1; 547 549 ··· 579 577 580 578 static int dvbsky_identify_state(struct dvb_usb_device *d, const char **name) 581 579 { 582 - dvbsky_gpio_ctrl(d, 0x04, 1); 583 - msleep(20); 584 - dvbsky_gpio_ctrl(d, 0x83, 0); 585 - dvbsky_gpio_ctrl(d, 0xc0, 1); 586 - msleep(100); 587 - dvbsky_gpio_ctrl(d, 0x83, 1); 588 - dvbsky_gpio_ctrl(d, 0xc0, 0); 589 - msleep(50); 590 - 580 + if (le16_to_cpu(d->udev->descriptor.idProduct) == USB_PID_MYGICA_T230A) { 581 + dvbsky_gpio_ctrl(d, 0x87, 0); 582 + msleep(20); 583 + dvbsky_gpio_ctrl(d, 0x86, 1); 584 + dvbsky_gpio_ctrl(d, 0x80, 0); 585 + msleep(100); 586 + dvbsky_gpio_ctrl(d, 0x80, 1); 587 + msleep(50); 588 + } else { 589 + dvbsky_gpio_ctrl(d, 0x04, 1); 590 + msleep(20); 591 + dvbsky_gpio_ctrl(d, 0x83, 0); 592 + dvbsky_gpio_ctrl(d, 0xc0, 1); 593 + msleep(100); 594 + dvbsky_gpio_ctrl(d, 0x83, 1); 595 + dvbsky_gpio_ctrl(d, 0xc0, 0); 596 + msleep(50); 597 + } 591 598 return WARM; 592 599 } 593 600 ··· 800 789 { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C2, 801 790 &mygica_t230c_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230C v2", 802 791 RC_MAP_TOTAL_MEDIA_IN_HAND_02) }, 792 + { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230C2_LITE, 793 + &mygica_t230c_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230C v2 Lite", 794 + NULL) }, 795 + { DVB_USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230A, 796 + &mygica_t230c_props, "MyGica Mini DVB-(T/T2/C) USB Stick T230A", 797 + NULL) }, 803 798 { } 804 799 }; 805 800 MODULE_DEVICE_TABLE(usb, dvbsky_id_table);
+2
include/media/dvb-usb-ids.h
··· 394 394 #define USB_PID_MYGICA_T230C 0xc689 395 395 #define USB_PID_MYGICA_T230C2 0xc68a 396 396 #define USB_PID_MYGICA_T230C_LITE 0xc699 397 + #define USB_PID_MYGICA_T230C2_LITE 0xc69a 398 + #define USB_PID_MYGICA_T230A 0x689a 397 399 #define USB_PID_ELGATO_EYETV_DIVERSITY 0x0011 398 400 #define USB_PID_ELGATO_EYETV_DTT 0x0021 399 401 #define USB_PID_ELGATO_EYETV_DTT_2 0x003f