diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 905c581ce6..5494e698db 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -19,7 +19,7 @@ PKG_NAME="linux" case "$LINUX" in amlogic) - PKG_VERSION="amlogic-3.10-24e850b-oe" + PKG_VERSION="amlogic-3.10-fa4c242" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" ;; imx6) diff --git a/projects/WeTek_Play/linux/linux.arm.conf b/projects/WeTek_Play/linux/linux.arm.conf index 09a7ca542e..9f0d883e90 100644 --- a/projects/WeTek_Play/linux/linux.arm.conf +++ b/projects/WeTek_Play/linux/linux.arm.conf @@ -1286,6 +1286,7 @@ CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y CONFIG_MALI_SHARED_INTERRUPTS=y CONFIG_MESON6_GPU_EXTRA=y # CONFIG_MALI_PMU_PARALLEL_POWER_UP is not set +# CONFIG_MALI_QUIET is not set # # ION support diff --git a/projects/WeTek_Play/patches/linux/80-ge2d-fix-ge2d_state-race.patch b/projects/WeTek_Play/patches/linux/80-ge2d-fix-ge2d_state-race.patch deleted file mode 100644 index 8e5a48983f..0000000000 --- a/projects/WeTek_Play/patches/linux/80-ge2d-fix-ge2d_state-race.patch +++ /dev/null @@ -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); diff --git a/projects/WeTek_Play/patches/linux/90-meson6-maxclock-unclamp.patch b/projects/WeTek_Play/patches/linux/90-meson6-maxclock-unclamp.patch deleted file mode 100644 index 450477d272..0000000000 --- a/projects/WeTek_Play/patches/linux/90-meson6-maxclock-unclamp.patch +++ /dev/null @@ -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; - diff --git a/projects/WeTek_Play/patches/linux/95-meson6-fixhdmitx-audiolock-1080p24.patch b/projects/WeTek_Play/patches/linux/95-meson6-fixhdmitx-audiolock-1080p24.patch deleted file mode 100644 index 3ac7f2807a..0000000000 --- a/projects/WeTek_Play/patches/linux/95-meson6-fixhdmitx-audiolock-1080p24.patch +++ /dev/null @@ -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: