mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +00:00
WeTek_Play: Update Linux kernel to 3.10-fa4c242
This commit is contained in:
parent
323e323ec0
commit
c2c8b85177
@ -19,7 +19,7 @@
|
|||||||
PKG_NAME="linux"
|
PKG_NAME="linux"
|
||||||
case "$LINUX" in
|
case "$LINUX" in
|
||||||
amlogic)
|
amlogic)
|
||||||
PKG_VERSION="amlogic-3.10-24e850b-oe"
|
PKG_VERSION="amlogic-3.10-fa4c242"
|
||||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
;;
|
;;
|
||||||
imx6)
|
imx6)
|
||||||
|
@ -1286,6 +1286,7 @@ CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y
|
|||||||
CONFIG_MALI_SHARED_INTERRUPTS=y
|
CONFIG_MALI_SHARED_INTERRUPTS=y
|
||||||
CONFIG_MESON6_GPU_EXTRA=y
|
CONFIG_MESON6_GPU_EXTRA=y
|
||||||
# CONFIG_MALI_PMU_PARALLEL_POWER_UP is not set
|
# CONFIG_MALI_PMU_PARALLEL_POWER_UP is not set
|
||||||
|
# CONFIG_MALI_QUIET is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ION support
|
# ION support
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
--- a/include/linux/amlogic/ge2d/ge2d_wq.h 2015-01-14 00:46:24.916408987 +0100
|
|
||||||
+++ b/include/linux/amlogic/ge2d/ge2d_wq.h 2015-01-14 00:45:24.233715480 +0100
|
|
||||||
@@ -81,6 +81,7 @@
|
|
||||||
ge2d_event_t event ;
|
|
||||||
int irq_num;
|
|
||||||
int ge2d_state;
|
|
||||||
+ spinlock_t state_lock; //for sync access to ge2d_state
|
|
||||||
int process_queue_state;
|
|
||||||
}ge2d_manager_t ;
|
|
||||||
|
|
||||||
--- a/drivers/amlogic/display/ge2d/ge2d_wq.c 2015-01-14 00:59:18.775744127 +0100
|
|
||||||
+++ b/drivers/amlogic/display/ge2d/ge2d_wq.c 2015-01-14 00:58:59.440160948 +0100
|
|
||||||
@@ -144,9 +144,11 @@
|
|
||||||
}while(pos!=head);
|
|
||||||
ge2d_manager.last_wq=wq;
|
|
||||||
exit:
|
|
||||||
+ spin_lock(&ge2d_manager.state_lock);
|
|
||||||
if(ge2d_manager.ge2d_state==GE2D_STATE_REMOVING_WQ)
|
|
||||||
- complete(&ge2d_manager.event.process_complete);
|
|
||||||
+ complete(&ge2d_manager.event.process_complete);
|
|
||||||
ge2d_manager.ge2d_state=GE2D_STATE_IDLE;
|
|
||||||
+ spin_unlock(&ge2d_manager.state_lock);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -854,8 +856,17 @@
|
|
||||||
spin_unlock(&ge2d_manager.event.sem_lock);
|
|
||||||
if((ge2d_manager.current_wq==ge2d_work_queue)&&(ge2d_manager.ge2d_state== GE2D_STATE_RUNNING))
|
|
||||||
{
|
|
||||||
- ge2d_manager.ge2d_state=GE2D_STATE_REMOVING_WQ;
|
|
||||||
- wait_for_completion(&ge2d_manager.event.process_complete);
|
|
||||||
+ // check again with lock
|
|
||||||
+ int wasRunning = 0;
|
|
||||||
+ spin_lock(&ge2d_manager.state_lock);
|
|
||||||
+ if (ge2d_manager.ge2d_state== GE2D_STATE_RUNNING)
|
|
||||||
+ {
|
|
||||||
+ ge2d_manager.ge2d_state=GE2D_STATE_REMOVING_WQ;
|
|
||||||
+ wasRunning = 1;
|
|
||||||
+ }
|
|
||||||
+ spin_unlock(&ge2d_manager.state_lock);
|
|
||||||
+ if (wasRunning)
|
|
||||||
+ wait_for_completion(&ge2d_manager.event.process_complete);
|
|
||||||
ge2d_manager.last_wq=NULL; //condition so complex ,simplify it .
|
|
||||||
}//else we can delete it safely.
|
|
||||||
|
|
||||||
@@ -902,6 +913,7 @@
|
|
||||||
//prepare bottom half
|
|
||||||
|
|
||||||
spin_lock_init(&ge2d_manager.event.sem_lock);
|
|
||||||
+ spin_lock_init(&ge2d_manager.state_lock);
|
|
||||||
sema_init (&ge2d_manager.event.cmd_in_sem,1);
|
|
||||||
init_waitqueue_head (&ge2d_manager.event.cmd_complete);
|
|
||||||
init_completion(&ge2d_manager.event.process_complete);
|
|
@ -1,11 +0,0 @@
|
|||||||
--- a/arch/arm/mach-meson6/clock.c.orig 2015-01-14 18:04:05.216364113 +0100
|
|
||||||
+++ b/arch/arm/mach-meson6/clock.c 2015-01-14 18:04:22.807966326 +0100
|
|
||||||
@@ -1419,7 +1419,7 @@
|
|
||||||
#endif /* CONFIG_SMP */
|
|
||||||
int error = 0;
|
|
||||||
|
|
||||||
- int cpu_freq_limit = 1200000000;
|
|
||||||
+ int cpu_freq_limit = 1512000000;
|
|
||||||
if (rate < 1000)
|
|
||||||
rate *= 1000000;
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
--- a/arch/arm/mach-meson6/hdmi_tx_hw/hdmi_tx_hw.c.orig 2015-01-15 22:15:55.446965413 +0100
|
|
||||||
+++ b/arch/arm/mach-meson6/hdmi_tx_hw/hdmi_tx_hw.c 2015-01-15 22:16:13.378517737 +0100
|
|
||||||
@@ -1999,6 +1999,7 @@
|
|
||||||
{
|
|
||||||
unsigned int audio_N_para = 6272;
|
|
||||||
unsigned int audio_N_tolerance = 3;
|
|
||||||
+ unsigned int multiplier = 1;
|
|
||||||
// unsigned int audio_CTS = 30000;
|
|
||||||
|
|
||||||
hdmi_print(INF, AUD "audio channel num is %d\n", hdmitx_device->cur_audio_param.channel_num);
|
|
||||||
@@ -2122,15 +2123,22 @@
|
|
||||||
hdmi_print(INF, AUD "reset audio N para\n");
|
|
||||||
switch(audio_param->sample_rate){
|
|
||||||
case FS_44K1:
|
|
||||||
- audio_N_para = 6272 * 2;
|
|
||||||
- break;
|
|
||||||
case FS_48K:
|
|
||||||
- audio_N_para = 6144 * 2;
|
|
||||||
+ multiplier = 2;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ //1080p24hz mode is a special case - at least for yamaha amps
|
|
||||||
+ //it needs 3 times the normal npara to get a stable audio lock
|
|
||||||
+ if((hdmitx_device->cur_VIC == HDMI_1080p24))
|
|
||||||
+ {
|
|
||||||
+ multiplier = 3;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ audio_N_para *= multiplier;
|
|
||||||
+
|
|
||||||
//TODO. Different audio type, maybe have different settings
|
|
||||||
switch(audio_param->type){
|
|
||||||
case CT_PCM:
|
|
Loading…
x
Reference in New Issue
Block a user