Merge pull request #3794 from codesnake/wetek_dvb

wetek_play: Add full support for WeTek internal DVB-T/T2, DVB-C, DVB-S/S2 and ATSC tuners
This commit is contained in:
Stefan Saraev 2015-01-15 11:51:04 +02:00
commit 17bc2cf305
14 changed files with 7832 additions and 9820 deletions

View File

@ -19,7 +19,7 @@
PKG_NAME="linux"
case "$LINUX" in
amlogic)
PKG_VERSION="amlogic-3.10-b992de0"
PKG_VERSION="amlogic-3.10-24e850b"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
imx6)

Binary file not shown.

View File

@ -0,0 +1 @@
../wetek-dvb-driver.service

View File

@ -0,0 +1,13 @@
[Unit]
Description=WeTek DVB driver
DefaultDependencies=no
Before=local-fs.target shutdown.target
Conflicts=shutdown.target
[Service]
Type=oneshot
ExecStart=/sbin/insmod /lib/modules/wetekdvb.ko
RemainAfterExit=yes
[Install]
WantedBy=local-fs.target

View File

@ -1130,6 +1130,7 @@ CONFIG_AM_DISPLAY_MODULE=y
# Amlogic video output module
#
CONFIG_AM_TV_OUTPUT=y
CONFIG_AML_VOUT_FRAMERATE_AUTOMATION=y
# CONFIG_AM_LCD_OUTPUT is not set
#
@ -1230,16 +1231,18 @@ CONFIG_DEINTERLACE=y
#
# Amlogic DVB driver
#
CONFIG_AM_DVB=y
# CONFIG_AM_DVB is not set
#
# AMLOGIC CI Driver
#
# CONFIG_AM_CI is not set
# CONFIG_AM_PCMCIA is not set
# CONFIG_AM_IOBUS is not set
# CONFIG_AM_SI2177 is not set
CONFIG_AM_AVL6211=y
#
# WetekPlay driver
#
CONFIG_WETEK=y
#
# GPU (ARM Mali)
@ -2848,7 +2851,7 @@ CONFIG_USB_SERIAL=y
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_MOTOROLA is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_PL2303 is not set
CONFIG_USB_SERIAL_PL2303=m
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_QCAUX is not set
# CONFIG_USB_SERIAL_QUALCOMM is not set

View File

@ -1,13 +0,0 @@
diff -Naur a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
--- a/drivers/media/dvb-core/dvb_frontend.c 2014-12-08 17:33:43.262657721 +0100
+++ b/drivers/media/dvb-core/dvb_frontend.c 2014-12-08 17:34:37.126207052 +0100
@@ -2416,6 +2416,9 @@
if(cmd == FE_SET_PROPERTY) {
tvps = (struct dtv_properties __user *)parg;
+ if(fe->ops.set_mode)
+ fe->ops.set_mode(fe, FE_QPSK);
+
dev_dbg(fe->dvb->device, "%s: properties.num = %d\n", __func__, tvps->num);
dev_dbg(fe->dvb->device, "%s: properties.props = %p\n", __func__, tvps->props);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
diff -Naur a/arch/arm/boot/dts/amlogic/meson6_g18.dtd b/arch/arm/boot/dts/amlogic/meson6_g18.dtd
--- a/arch/arm/boot/dts/amlogic/meson6_g18.dtd 2014-12-11 15:25:42.771688733 +0100
+++ b/arch/arm/boot/dts/amlogic/meson6_g18.dtd 2014-12-11 15:30:01.493678109 +0100
--- a/arch/arm/boot/dts/amlogic/meson6_g18.dtd 2015-01-12 21:28:39.000000000 +0100
+++ b/arch/arm/boot/dts/amlogic/meson6_g18.dtd 2015-01-12 21:25:40.000000000 +0100
@@ -1,761 +1,751 @@
-/*
- * Amlogic-MX SKT Device Tree Source
@ -1556,7 +1556,7 @@ diff -Naur a/arch/arm/boot/dts/amlogic/meson6_g18.dtd b/arch/arm/boot/dts/amlogi
partition = <&nand_partitions>;
rb_detect = <1>;
};
@@ -856,547 +823,578 @@
@@ -856,547 +823,595 @@
offset=<0x0 0x4a800000>;
size=<0x0 0x20000000>;
};
@ -2223,6 +2223,15 @@ diff -Naur a/arch/arm/boot/dts/amlogic/meson6_g18.dtd b/arch/arm/boot/dts/amlogi
+ };
+
+
+/// **************************************************************************************
+/// - Smartcard
+ smartcard{
+ compatible = "amlogic,smartcard";
+ smc_reset_level = <1>;
+ smc_reset = "GPIOX_31";
+ pinctrl-names = "default";
+ pinctrl-0 = <&smc_pins>;
+ };
+
+
+
@ -2246,6 +2255,14 @@ diff -Naur a/arch/arm/boot/dts/amlogic/meson6_g18.dtd b/arch/arm/boot/dts/amlogi
+ dev_name = "pinmux";
+ #pinmux-cells=<2>;
+
+ smc_pins:smc_pins{
+ amlogic,setmask = <4 0x003c0000>;
+ amlogic,clrmask = <4 0x000003c0
+ 4 0x03c00000
+ 8 0x3f000000>;
+ amlogic,pins = "GPIOX_17","GPIOX_18","GPIOX_19","GPIOX_20";
+ };
+
+//$$ MATCH "uart_ao_pin_match" = "&ao_uart_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR 2 = "amlogic,pins"

View File

@ -0,0 +1,55 @@
diff -Naur a/drivers/amlogic/amports/esparser.c b/drivers/amlogic/amports/esparser.c
--- a/drivers/amlogic/amports/esparser.c 2015-01-04 18:07:57.000000000 +0100
+++ b/drivers/amlogic/amports/esparser.c 2015-01-01 16:42:13.000000000 +0100
@@ -296,11 +296,14 @@
WRITE_MPEG_REG(RESET1_REGISTER, RESET_PARSER);
/* TS data path */
+ /* Ignore FEC control for WetekPlay */
+#ifndef CONFIG_WETEK
#ifndef CONFIG_AM_DVB
WRITE_MPEG_REG(FEC_INPUT_CONTROL, 0);
#else
tsdemux_set_reset_flag();
#endif
+#endif
CLEAR_MPEG_REG_MASK(TS_HIU_CTL, 1 << USE_HI_BSF_INTERFACE);
CLEAR_MPEG_REG_MASK(TS_HIU_CTL_2, 1 << USE_HI_BSF_INTERFACE);
CLEAR_MPEG_REG_MASK(TS_HIU_CTL_3, 1 << USE_HI_BSF_INTERFACE);
diff -Naur a/drivers/amlogic/amports/psparser.c b/drivers/amlogic/amports/psparser.c
--- a/drivers/amlogic/amports/psparser.c 2015-01-04 18:07:58.000000000 +0100
+++ b/drivers/amlogic/amports/psparser.c 2015-01-01 16:43:58.000000000 +0100
@@ -833,11 +833,15 @@
WRITE_MPEG_REG(RESET1_REGISTER, RESET_PARSER);
/* TS data path */
+ /* Ignore FEC control for WetekPlay */
+#ifndef CONFIG_WETEK
#ifndef CONFIG_AM_DVB
WRITE_MPEG_REG(FEC_INPUT_CONTROL, 0);
#else
tsdemux_set_reset_flag();
#endif
+#endif
+
CLEAR_MPEG_REG_MASK(TS_HIU_CTL, 1 << USE_HI_BSF_INTERFACE);
CLEAR_MPEG_REG_MASK(TS_HIU_CTL_2, 1 << USE_HI_BSF_INTERFACE);
CLEAR_MPEG_REG_MASK(TS_HIU_CTL_3, 1 << USE_HI_BSF_INTERFACE);
diff -Naur a/drivers/amlogic/amports/rmparser.c b/drivers/amlogic/amports/rmparser.c
--- a/drivers/amlogic/amports/rmparser.c 2015-01-04 18:07:58.000000000 +0100
+++ b/drivers/amlogic/amports/rmparser.c 2015-01-01 16:44:39.000000000 +0100
@@ -80,11 +80,14 @@
WRITE_MPEG_REG(RESET1_REGISTER, RESET_PARSER);
/* TS data path */
+ /* Ignore FEC control for WetekPlay */
+#ifndef CONFIG_WETEK
#ifndef CONFIG_AM_DVB
WRITE_MPEG_REG(FEC_INPUT_CONTROL, 0);
#else
tsdemux_set_reset_flag();
#endif
+#endif
CLEAR_MPEG_REG_MASK(TS_HIU_CTL, 1 << USE_HI_BSF_INTERFACE);
CLEAR_MPEG_REG_MASK(TS_HIU_CTL_2, 1 << USE_HI_BSF_INTERFACE);
CLEAR_MPEG_REG_MASK(TS_HIU_CTL_3, 1 << USE_HI_BSF_INTERFACE);