Add a project for WeTek Play 2

This commit is contained in:
Alex Deryskyba 2016-08-19 08:32:10 +02:00
parent e3fb270883
commit 0ee0599023
19 changed files with 51807 additions and 0 deletions

View File

@ -0,0 +1,24 @@
#!/bin/sh
################################################################################
# This file is part of LibreELEC - https://LibreELEC.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. config/options $1
mkdir -p $RELEASE_DIR/3rdparty/bootloader
cp $INSTALL/usr/share/bootloader/dtb.img $RELEASE_DIR/3rdparty/bootloader

View File

@ -0,0 +1,140 @@
#*********************************************************************************************************
#this file is configuration for each factory remote device
# work_mode 0 :software mode 1 :hardware mode
# repeat_enable 0 :disable repeat 1 :enable repeat
#
# factory_code each device has it's unique factory code.
# pattern:custom_code(16bit)+index_code(16bit)
# examble: 0xff000001 = 0xff00(custom cod) 0001 (index)
#
# release_delay unit:ms.release will report from kernel to user layer after this period of time
# from press or repeat triggered.
#
# debug_enable 0 :debug disable 1 :debug disable
#
# SW MODE:
# bit_count how many bits in each frame
# tw_leader_act time window for leader active
# tw_bit0 time window for bit0 time.
# tw_bit1 time window for bit1 time
# tw_repeat_leader time window for repeat leader
# REG
# reg_base_gen set value for PREG_IR_DEC_BASE_GEN
# reg_control set value for PREG_IR_DEC_CONTROL
# reg_leader_act set value for PREG_IR_DEC_LEADER_ACTIVE
# reg_leader_idle set value for PREG_IR_DEC_LEADER_IDLE
# reg_repeat_leader set value for PREG_IR_DEC_REPEAT_IDLE
# reg_bit0_time set value for PREG_IR_DEC_BIT0_TIME
#*************************************************************************************************************
#amlogic NEC remote
factory_code = 0x5f5e0001
work_mode = 0
repeat_enable = 1
repeat_delay = 40
repeat_peroid = 39
release_delay = 121
debug_enable = 1
fn_key_scancode = 0x84
up_key_scancode = 0x50
down_key_scancode = 0x4b
left_key_scancode = 0x4c
right_key_scancode = 0x4d
ok_key_scancode = 0x47
mouse_begin
0 0x4c
1 0x4d
2 0x50
3 0x4b
mouse_end
key_begin
0x02 116 # power
0x46 88 # 2nd power button (F12, ends WeTV)
0x10 113 # volume mute
0x22 2 # 1
0x23 3 # 2
0x24 4 # 3
0x25 5 # 4
0x26 6 # 5
0x27 7 # 6
0x28 8 # 7
0x29 9 # 8
0x30 10 # 9
0x71 14 # delete
0x21 11 # 0
0x72 58 # caps lock
0x48 127 # menu
0x03 102 # home
0x61 158 # back
0x83 580 # app_switch
0x77 373 # assist
0x50 103 # up
0x4b 108 # down
0x4c 105 # left
0x4d 106 # right
0x47 28 # ok
0x44 115 # volume up
0x43 114 # volume down
0x41 402 # channel up
0x42 403 # channel down
0x4f 64 # * (mapped as f6)
0x82 388 # teletext
0x73 398 # red
0x74 399 # green
0x75 400 # yellow
0x76 401 # blue
0x67 165 # previous
0x79 168 # rewind
0x80 208 # fast fprward
0x81 163 # next
0x04 167 # record
0x2c 164 # play/pause
0x2b 166 # stop
key_end
repeat_key_begin
0x02 116 # power
0x46 88 # 2nd power button (F12, ends WeTV)
0x10 113 # volume mute
0x22 2 # 1
0x23 3 # 2
0x24 4 # 3
0x25 5 # 4
0x26 6 # 5
0x27 7 # 6
0x28 8 # 7
0x29 9 # 8
0x30 10 # 9
0x71 14 # delete
0x21 11 # 0
0x72 58 # caps lock
0x48 127 # menu
0x03 102 # home
0x61 158 # back
0x83 580 # app_switch
0x77 373 # assist
0x50 103 # up
0x4b 108 # down
0x4c 105 # left
0x4d 106 # right
0x47 353 # ok
0x44 115 # volume up
0x43 114 # volume down
0x41 402 # channel up
0x42 403 # channel down
0x4f 64 # * (mapped as f6)
0x82 388 # teletext
0x73 398 # red
0x74 399 # green
0x75 400 # yellow
0x76 401 # blue
0x67 165 # previous
0x79 168 # rewind
0x80 208 # fast fprward
0x81 163 # next
0x04 167 # record
0x2c 164 # play/pause
0x2b 166 # stop
repeat_key_end

View File

@ -0,0 +1,21 @@
[Unit]
Description=Debug Shell on /dev/ttyS0
DefaultDependencies=no
ConditionKernelCommandLine=console=ttyS0,115200
[Service]
WorkingDirectory=/storage
Environment="ENV=/etc/profile"
ExecStartPre=/bin/sh -c 'echo -en "\033[?25h"'
ExecStart=/bin/sh
Restart=always
RestartSec=0
StandardInput=tty
TTYPath=/dev/ttyS0
KillMode=process
IgnoreSIGPIPE=no
# bash ignores SIGTERM
KillSignal=SIGHUP
[Install]
WantedBy=sysinit.target

View File

@ -0,0 +1,52 @@
#
# Configuration for Amlogic M8 Audio
#
AML-M8AUDIO.pcm.default {
@args [ CARD ]
@args.CARD { type string }
type plug
slave.pcm {
@func concat
strings [ "dmix:" $CARD ]
}
}
<confdir:pcm/front.conf>
AML-M8AUDIO.pcm.front.0 {
@args [ CARD ]
@args.CARD { type string }
type hw
card $CARD
device 0
format S32_LE
}
<confdir:pcm/surround71.conf>
AML-M8AUDIO.pcm.surround71.0 {
@args [ CARD ]
@args.CARD { type string }
type route
ttable.0.0 1
ttable.1.1 1
ttable.2.6 1
ttable.3.7 1
ttable.4.3 1
ttable.5.2 1
ttable.6.4 1
ttable.7.5 1
slave.pcm {
type plug
slave {
pcm {
type hw
card $CARD
device 0
}
channels 8
format S32_LE
}
}
}

View File

@ -0,0 +1,47 @@
#!/bin/sh
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
[ -z "$SYSTEM_ROOT" ] && SYSTEM_ROOT=""
[ -z "$BOOT_ROOT" ] && BOOT_ROOT="/flash"
IMAGE_KERNEL="/flash/kernel.img"
# parse command line arguments
for arg in $(cat /proc/cmdline); do
case $arg in
BOOT_IMAGE=*)
IMAGE_KERNEL="${arg#*=}"
;;
esac
done
# mount $BOOT_ROOT r/w
mount -o remount,rw $BOOT_ROOT
if [ -b $IMAGE_KERNEL ]; then
dd if="$SYSTEM_ROOT/usr/share/bootloader/dtb.img" of="/dev/dtb" bs=262144 2>&1
else
cp -p $SYSTEM_ROOT/usr/share/bootloader/dtb.img $BOOT_ROOT
fi
# mount $BOOT_ROOT r/o
sync
mount -o remount,ro $BOOT_ROOT

View File

@ -0,0 +1,57 @@
#!/bin/sh
###############################################################################
# This file is part of LibreELEC - https://LibreELEC.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
hdmimode=720p
# Parse command line arguments
for arg in $(cat /proc/cmdline); do
case $arg in
hdmimode=*)
hdmimode="${arg#*=}"
;;
esac
done
# echo "$hdmimode" > /sys/class/display/mode
# Enable first framebuffer
echo 0 > /sys/class/graphics/fb0/blank
# Disable second framebuffer
echo 1 > /sys/class/graphics/fb1/blank
# Disable framebuffer scaling
echo 0 > /sys/class/graphics/fb0/free_scale
# set initial video state
echo 1 > /sys/class/video/disable_video
# Set framebuffer geometry to match the resolution
case "$hdmimode" in
720*)
fbset -fb /dev/fb0 -g 1280 720 1920 2160 32
;;
1080*)
fbset -fb /dev/fb0 -g 1920 1080 1920 2160 32
;;
esac
# Include deinterlacer into default VFM map
echo rm default > /sys/class/vfm/map
echo add default decoder ppmgr deinterlace amvideo > /sys/class/vfm/map

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,36 @@
show_progress(0.500000, 3);
set_bootloader_env("upgrade_step", "3");
ui_print("Wiping Userdata");
format("ext4", "EMMC", "/dev/block/data", "0", "/data");
ui_print("Writing kernel image");
assert(package_extract_file("KERNEL", "/tmp/boot.img"),
write_raw_image("/tmp/boot.img", "boot"),
delete("/tmp/boot.img"));
ui_print("Writing device tree image");
write_dtb_image(package_extract_file("dtb.img"));
show_progress(0.020000, 0);
ui_print("Wiping System");
format("ext4", "EMMC", "/dev/block/system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/system", "/system");
ui_print("Writing system files");
package_extract_dir("system", "/system");
unmount("/system");
show_progress(0.300000, 60);
ui_print("Writing recovery");
write_raw_image(package_extract_file("recovery.img"), "recovery");
show_progress(0.018000, 0);
ui_print("Writing bootloader");
write_raw_image(package_extract_file("bootloader.img"), "bootloader");
set_bootloader_env("upgrade_step", "1");
show_progress(0.100000, 0);
ui_print("LibreELEC Installed Successfully");

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<advancedsettings>
<showexitbutton>false</showexitbutton>
<samba>
<clienttimeout>30</clienttimeout>
</samba>
</advancedsettings>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,156 @@
################################################################################
# setup system defaults
################################################################################
# The TARGET_CPU variable controls which processor should be targeted for
# generated code.
case $TARGET_ARCH in
aarch64)
# TARGET_CPU:
# arm2 arm250 arm3 arm6 arm60 arm600 arm610 arm620 arm7 arm7m arm7d
# arm7dm arm7di arm7dmi arm70 arm700 arm700i arm710 arm710c
# arm7100 arm720 arm7500 arm7500fe arm7tdmi arm7tdmi-s arm710t
# arm720t arm740t strongarm strongarm110 strongarm1100
# strongarm1110 arm8 arm810 arm9 arm9e arm920 arm920t arm922t
# arm946e-s arm966e-s arm968e-s arm926ej-s arm940t arm9tdmi
# arm10tdmi arm1020t arm1026ej-s arm10e arm1020e arm1022e
# arm1136j-s arm1136jf-s mpcore mpcorenovfp arm1156t2-s
# arm1176jz-s arm1176jzf-s cortex-a8 cortex-a9 cortex-r4
# cortex-r4f cortex-m3 cortex-m1 xscale iwmmxt iwmmxt2 ep9312.
#
TARGET_CPU="cortex-a53"
;;
esac
# Bootloader to use (syslinux / u-boot / atv-bootloader / bcm2835-bootloader)
BOOTLOADER="u-boot"
# u-boot version to use (default)
UBOOT_VERSION=""
# Configuration for u-boot
UBOOT_CONFIG=""
# Target Configfile for u-boot
UBOOT_CONFIGFILE=""
# Kernel target
KERNEL_TARGET="Image.lzo"
# Kernel extra targets to build
KERNEL_UBOOT_EXTRA_TARGET="gxbb_p200_2G_wetek_play_2.dtb"
# Build Android kernel image using mkbootimg
BUILD_ANDROID_BOOTIMG="yes"
# Additional options to be passed to Android mkbootimg
ANDROID_BOOTIMG_OPTIONS="--second arch/arm64/boot/dts/amlogic/gxbb_p200_2G_wetek_play_2.dtb --base 0x0 --kernel_offset 0x1080000"
# Additional kernel make parameters (for example to specify the u-boot loadaddress)
KERNEL_MAKE_EXTRACMD=""
# Kernel to use. values can be:
# default: default mainline kernel
LINUX="amlogic-3.14"
################################################################################
# setup build defaults
################################################################################
# Project CFLAGS
PROJECT_CFLAGS=""
# SquashFS compression method (gzip / lzo / xz)
SQUASHFS_COMPRESSION="lzo"
################################################################################
# setup project defaults
################################################################################
# build and install ALSA Audio support (yes / no)
ALSA_SUPPORT="yes"
# OpenGL(X) implementation to use (no / Mesa)
OPENGL="no"
# OpenGL-ES implementation to use (no / bcm2835-driver / gpu-viv-bin-mx6q / opengl-meson6)
OPENGLES="opengl-meson"
# Amlogic Meson SOC family (8 / 6 / gxbb)
MESON_FAMILY="gxbb"
# include uvesafb support (yes / no)
UVESAFB_SUPPORT="no"
# Displayserver to use (x11 / no)
DISPLAYSERVER="no"
# Windowmanager to use (ratpoison / fluxbox / none)
WINDOWMANAGER="none"
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
GRAPHIC_DRIVERS=""
# KODI Player implementation to use (default / bcm2835-driver / libfslvpuwrap / libamcodec)
KODIPLAYER_DRIVER="libamcodec"
# Modules to install in initramfs for early boot
INITRAMFS_MODULES=""
# additional drivers to install:
# for a list of additinoal drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
ADDITIONAL_DRIVERS="gpu-aml brcmap6xxx-aml wetekdvb"
# additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware)
# Space separated list is supported,
# e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware"
FIRMWARE="misc-firmware wlan-firmware dvb-firmware brcmfmac_sdio-firmware-aml"
# build and install ATV IR remote support (yes / no)
ATVCLIENT_SUPPORT="no"
# build and install IRServer IR/LCD support (yes / no)
IRSERVER_SUPPORT="no"
# Amlogic IR remote support (yes / no)
AMREMOTE_SUPPORT="yes"
# build with swap support (yes / no)
SWAP_SUPPORT="no"
# swap support enabled per default (yes / no)
SWAP_ENABLED_DEFAULT="no"
# swapfile size if SWAP_SUPPORT=yes in MB
SWAPFILESIZE="128"
# build with installer (yes / no)
INSTALLER_SUPPORT="no"
# build and install 'RSXS' Screensaver (yes / no)
KODI_SCR_RSXS="no"
# build and install 'ProjectM' Visualization (yes / no)
KODI_VIS_PROJECTM="no"
# build and install 'GOOM' Visualization (yes / no)
KODI_VIS_GOOM="no"
# build and install 'FishBMC' Visualization (yes / no)
KODI_VIS_FISHBMC="no"
# extra build dependeices
EXTRA_DEPS="mkimage"
EXTRA_DEPS_PKG="u-boot-tools"
# kernel image name
KERNEL_NAME="kernel.img"
# set the addon dirs
ADDON_PATH="$ADDON_VERSION/WeTek_Hub/$TARGET_ARCH"
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"

View File

@ -0,0 +1,52 @@
From d642bb3423bc06e262dbdefd2aefaf2e852fdd0d Mon Sep 17 00:00:00 2001
From: Jamie Coldhill <wrxtasy@amnet.net.au>
Date: Tue, 27 Sep 2016 15:45:06 +0800
Subject: [PATCH] [aml] Scale video axis correctly when 1080p to 2160p
switching
---
.../cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
index f9b4138..dd7100a 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
@@ -2172,12 +2172,8 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
CRect gui, display;
gui = CRect(0, 0, CDisplaySettings::GetInstance().GetCurrentResolutionInfo().iWidth, CDisplaySettings::GetInstance().GetCurrentResolutionInfo().iHeight);
-
-#ifdef TARGET_ANDROID
display = m_display_rect;
-#else
- display = gui;
-#endif
+
if (gui != display)
{
float xscale = display.Width() / gui.Width();
@@ -2191,6 +2187,20 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
dst_rect.y1 *= yscale;
dst_rect.y2 *= yscale;
}
+ else if ((SrcRect.Width() != DestRect.Width()) && (SrcRect.Width() >= 3840))
+ {
+ float xscale = (3840 / DestRect.Width());
+ float yscale = xscale;
+ if (m_stereo_mode == RENDER_STEREO_MODE_SPLIT_VERTICAL)
+ xscale /= 2.0;
+ else if (m_stereo_mode == RENDER_STEREO_MODE_SPLIT_HORIZONTAL)
+ yscale /= 2.0;
+ dst_rect.x1 = 0;
+ dst_rect.y1 = (DestRect.y1 * yscale);
+ dst_rect.x2 *= xscale;
+ dst_rect.y2 *= yscale;
+ }
+
if (m_stereo_mode == RENDER_STEREO_MODE_MONO)
{
--
1.7.10.4

View File

@ -0,0 +1,12 @@
diff --git a/drivers/amlogic/bluetooth/bt_device.c b/drivers/amlogic/bluetooth/bt_device.c
index 6ebd7f2..87d1916 100644
--- a/drivers/amlogic/bluetooth/bt_device.c
+++ b/drivers/amlogic/bluetooth/bt_device.c
@@ -235,6 +235,7 @@ static int bt_probe(struct platform_device *pdev)
register_early_suspend(&bt_early_suspend);
#endif
+ bt_device_on(pdata);
return 0;
err_rfkill:

View File

@ -0,0 +1,13 @@
diff --git a/drivers/amlogic/display/logo/logo.c b/drivers/amlogic/display/logo/logo.c
index 9266be3..c2f10bd 100644
--- a/drivers/amlogic/display/logo/logo.c
+++ b/drivers/amlogic/display/logo/logo.c
@@ -117,7 +117,7 @@ int set_osd_freescaler(int index, enum vmode_e new_mode)
static int refresh_mode_and_logo(bool first)
{
enum vmode_e cur_mode = VMODE_MAX;
- int hdp_state = get_hpd_state();
+ int hdp_state = 1;//get_hpd_state();
if (!first && osd_get_logo_index() != logo_info.index)
return -1;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
diff --git a/drivers/amlogic/display/logo/logo.c b/drivers/amlogic/display/logo/logo.c
index 9266be3..6803f10 100644
--- a/drivers/amlogic/display/logo/logo.c
+++ b/drivers/amlogic/display/logo/logo.c
@@ -246,6 +246,7 @@ __setup("logo=", logo_setup);
static int __init get_hdmi_mode(char *str)
{
hdmimode = vmode_name_to_mode(str);
+ set_vout_init_vmode(str);
pr_info("get hdmimode: %s\n", str);
return 1;
diff --git a/drivers/amlogic/display/vout/vout_serve.c b/drivers/amlogic/display/vout/vout_serve.c
index fae61b3..a248367 100644
--- a/drivers/amlogic/display/vout/vout_serve.c
+++ b/drivers/amlogic/display/vout/vout_serve.c
@@ -664,7 +664,16 @@ static int __init get_vout_init_mode(char *str)
return 0;
}
-__setup("vout=", get_vout_init_mode);
+//__setup("vout=", get_vout_init_mode);
+
+void set_vout_init_vmode(char *str)
+{
+ char str2[1024];
+ strcpy(str2, str);
+ strcat(str2, ",en"); // logo was already displayed by uboot
+ get_vout_init_mode(str2);
+}
+EXPORT_SYMBOL(set_vout_init_vmode);
MODULE_AUTHOR("Platform-BJ <platform.bj@amlogic.com>");
MODULE_DESCRIPTION("VOUT Server Module");
diff --git a/include/linux/amlogic/vout/vout_notify.h b/include/linux/amlogic/vout/vout_notify.h
index 2e4922a..659da93 100644
--- a/include/linux/amlogic/vout/vout_notify.h
+++ b/include/linux/amlogic/vout/vout_notify.h
@@ -102,6 +102,7 @@ extern enum vmode_e validate_vmode2(char *);
extern void set_vout2_mode_internal(char *name);
extern enum vmode_e get_logo_vmode(void);
extern int set_logo_vmode(enum vmode_e);
+extern void set_vout_init_vmode(char *);
extern int vout2_suspend(void);
extern int vout2_resume(void);

File diff suppressed because it is too large Load Diff