Commit Graph

649558 Commits

Author SHA1 Message Date
changqing.gao
ceff2f8513 fs: KASAN error in nls uniname cmp [1/1]
PD#SWPL-6404

Problem:
KASAN error:global-out-of-bounds in nls_uniname_cmp

Solution:
Append "\0\0" to the string of UNI_CUR_DIR_NAME and UNI_PAR_DIR_NAME

Verify:
x301

Change-Id: Ic94e837ed7874d337207c31eedfc966b46ab8ecd
Signed-off-by: changqing.gao <changqing.gao@amlogic.com>
2020-06-29 11:45:44 +09:00
Hanjie Lin
c329f60c6b sdcardfs: revert because compile fail [1/1]
PD#SWPL-15901

Problem:
Revert "RAVENPLAT-277: Kernel components sdcardfs - CVE-2018-9514 [1/1]"

Solution:
This reverts commit d03e7aa0704f2165d357337d77041041ac14af27.

Platform:
Raven

Verify:
Raven

Change-Id: I6110ce2290dc763146d1de68d86ab227a3cb8890
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:44 +09:00
Hanjie Lin
ac7c8de0a8 ext4: always initialize the crc32c checksum driver [1/1]
PD#SWPL-15901

Problem:
OTT-6792
upstream a45403b515

The extended attribute code now uses the crc32c checksum for hashing
purposes, so we should just always always initialize it.  We also want
to prevent NULL pointer dereferences if one of the metadata checksum
features is enabled after the file sytsem is originally mounted.

This issue has been assigned CVE-2018-1094.

https://bugzilla.kernel.org/show_bug.cgi?id=199183
https://bugzilla.redhat.com/show_bug.cgi?id=1560788

Solution:

Verify:

Change-Id: I30362945537ff4aa05fbf8e83dc52c25b3d24586
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:44 +09:00
Hanjie Lin
be15e1f813 RAVENPLAT-310: Kernel components ext4 filesystem - CVE-2018-10880[1/1]
PD#SWPL-15901

Problem:
In ext4_xattr_make_inode_space of xattr.c, there is a possible out-of-bounds
write due to improper input validation. This could lead to local escalation
of privilege in the kernel with no additional execution privileges needed.
User interaction is needed for exploitation.

Solution:
The fix is designed to never move system.data out of the inode.

Platform:
Raven

Verify:
Raven

Change-Id: I0820e6e84c8a5ab7d40d14ce14c11f9f8e1f9503
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:44 +09:00
Hanjie Lin
d5a35d151f RAVENPLAT-277: Kernel components sdcardfs - CVE-2018-9514 [1/1]
PD#SWPL-15901

Problem:
In sdcardfs_open of file.c, there is a possible Use After Free
due to an unusual root cause. This could lead to local escalation
of privilege with no additional execution privileges needed.
User interaction is not needed for exploitation.

Solution:
The fix is designed to avoid the OVERRIDE_CRED macro in favor
of more explicit control flow.

Platform:
Raven

Verify:
Raven

Change-Id: Idab016c33c2dfbd9425533ed5c5501b671677572
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:44 +09:00
Sriram Rajagopalan
01c5015da5 Android Security Bulletin - November 2019-11 - Kernel components ext4 filesystem - CVE-2019-11833 [1/1]
PD#OTT-6798

Problem:
ext4: zero out the unused memory region in the extent tree block

Solution:
This commit zeroes out the unused memory region in the buffer_head
corresponding to the extent metablock after writing the extent header
and the corresponding extent node entries.

This is done to prevent random uninitialized data from getting into
the filesystem when the extent block is synced.

This fixes CVE-2019-11833.

Verify:
Raven

Change-Id: I5c6aae01432f5517b539312507e59e8dfb9c25eb
Signed-off-by: Sriram Rajagopalan <sriramr@arista.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:43 +09:00
Jianxin Pan
f9c5f8a821 dts: debug: enable ftrace_ramoops for new dts [1/1]
PD#SWPL-6028
PD#SWPL-8535

Problem:
enable ftrce in ramoops for new dtbs

Solution:
enable ftrce in ramoops for new dtbs

Verify:
X301

Change-Id: If5db23ed5e37dcd2522229e5aa2ed31e78a75c48
Signed-off-by: Jianxin Pan <jianxin.pan@amlogic.com>
2020-06-29 11:45:43 +09:00
Lei Qian
527a2ac25d kernel: merge DTVKit [12/14]
PD#SWPL-10512

Problem:
merge DTVKit

Solution:
merge DTVKit

Verify:
verify by r314, marconi

Change-Id: I103edf65cebbc2b4fcf4152edd7a83a4f0e6f27e
Signed-off-by: Lei Qian <lei.qian@amlogic.com>
2020-06-29 11:45:43 +09:00
Hanjie Lin
08ba6e7ffa sched: disable EAS on non-big-little platforms [1/1]
PD#SWPL-8759

Problem:
disable EAS on non-big-little platforms

Solution:
disable EAS on non-big-little platforms

Verify:
w400, u200

Change-Id: I11845def9efaa2e1da8fd30ac26daeb0dc47eda4
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:43 +09:00
Hanjie Lin
91db4e07b9 RAVENPLAT-199: CVE-2017-0605 vulnerability in kernel trace subsystem [1/1]
PD#SWPL-15901

Problem:
Elevation of privilege vulnerability in kernel trace subsystem
(device specific)

Solution:
use strlcpy instead of strcpy

Platform:
Raven

Verify:
Raven

Change-Id: Ie0214a88c4194f892f8f7cda4965c1931e415bbc
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:43 +09:00
Tao Zeng
6ce0e26b0e cpuhotplug: offline workqueue before close cpu [1/1]
PD#TV-7079

Problem:
Deadlock happened when burning cpu at high temperature.
 1486                        1916
schedule                    schedule
schedule_preempt_disabled   schedule_timeout
__mutex_lock_slowpath       wait_for_common
mutex_lock                  wait_for_completion

cpu_hotplug_set_max --wait hpg.mutex

                            cpuhp_kick_ap_work   --wait flush work
cpufreq_set_max_cpu_num     _cpu_down            --hold hpg.mutex
cpucore_set_cur_state       do_cpu_down
thermal_cdev_update         cpu_down
power_actor_set_power       cpu_subsys_offline
power_allocator_throttle    device_offline
handle_thermal_trip         cpu_hotplug_thread
thermal_zone_device_update  kthread
thermal_zone_device_check   ret_from_fork
process_one_work
worker_thread    --It's a work
kthread
ret_from_fork

Solution:
Close work queue before hold lock

Verify:
T972

Change-Id: I557281a1674bd67472b0655e4f1ba409ffead42f
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
2020-06-29 11:45:43 +09:00
Qiufang Dai
58104a8866 suspend: fix freeze abort hangup which caused by insmod [1/1]
PD#GH-134

Problem:
When freeze abort happen, it will lose device_unblock_probing(),
so device probe is blocked.

Solution:
When freeze abort happen, release device_block_probing

Verify:
SM1_S905D3_AC200

Change-Id: I3e591fe9ed392b6a4d30285817a91fbfec25336f
Signed-off-by: Qiufang Dai <qiufang.dai@amlogic.com>
2020-06-29 11:45:43 +09:00
Joel Fernandes (Google)
a8ec9f5274 rcu: Avoid unnecessary softirq when system is idle
PD#SWPL-16045

commit b2eb85b49a upstream

When there are no callbacks pending on an idle system, I noticed that
RCU softirq is continuously firing. During this the cpu_no_qs is set to
false, and core_needs_qs is set to true indefinitely. This causes
rcu_process_callbacks to be repeatedly called, even though the node
corresponding to the CPU has that CPU's mask bit cleared and the system
is idle. I believe the race is when such mask clearing is done during
idle CPU scan of the quiescent state forcing stage in the kthread
instead of the softirq. Since the rnp mask is cleared, but the flags on
the CPU's rdp are not cleared, the CPU thinks it still needs to report
to core RCU.

Cure this by clearing the core_needs_qs flag when the CPU detects that
its node is already updated which will avoid the unwanted softirq raises
to the benefit of real-time systems.

Test: Ran rcutorture for various tree RCU configs.

Change-Id: Ibf34014eabdb0105847e5e642348e32e4a6194a1
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:43 +09:00
Kees Cook
c4aa33507d Revert "pstore: Honor dmesg_restrict sysctl on dmesg dumps"
PD#SWPL-7092

This reverts commit 68c4a4f8ab, with
various conflict clean-ups.

With the default root directory mode set to 0750 now, the capability
check was redundant.

Change-Id: If978c34cef8345b0ba67a038eed7d54d4f1423d6
Suggested-by: Nick Kralevich <nnk@google.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
2020-06-29 11:45:43 +09:00
Jiamin Ma
67deaf62c8 Security: fix sts testPocCVE_2016_6753 [1/1]
PD#SWPL-7852

Problem:
android.security.sts.Poc16_11#testPocCVE_2016_6753 fail

Solution:
do not expose kernel addr info via cgroup_css_links_read

Verify:
U200

Change-Id: I74e4904e8b662db9d6589a1926c62c87e12d6f6f
Signed-off-by: Jiamin Ma <jiamin.ma@amlogic.com>
2020-06-29 11:45:43 +09:00
zhiqiang liang
d447e8dbeb suspend: power: plug off the secondary cpus for freeze mode [1/1]
PD#SWPL-2399

Problem:
freeze mode can not kill the secondary cpus

Solution:
move the cpu kill function before the freeze function

Verify:
tl1 test success

Change-Id: I1da7cb8bcd800b8372fd152490eadd4ef3866ece
Signed-off-by: zhiqiang liang <zhiqiang.liang@amlogic.com>
2020-06-29 11:45:43 +09:00
libo
2d53e35e98 wifi: add tcp delay ack support [1/1]
PD#OTT-5388

Problem:
wifi rx throughput issue

Solution:
add tcp delay ack support
enable tcp dealy ack by following command:
echo 1 > /proc/sys/net/ipv4/tcp_use_userconfig
echo 60 > /proc/sys/net/ipv4/tcp_delack_seg

Verify:
u211

Change-Id: I060810b2800bae377388ba6ed9f9256597c9e6ea
Signed-off-by: libo <bo.li@amlogic.com>
2020-06-29 11:45:43 +09:00
Hanjie Lin
7687cdf9a8 RAVENPLAT-247:Kernel components bluetooth - CVE-2018-9363[1/1]
PD#SWPL-15901

Problem:
In the hidp_process_report in bluetooth, there is an integer overflow.
This could lead to an out of bounds write with no additional execution
privileges needed.  User interaction is not needed for exploitation.

Solution:
The fix is designed to make the length an unsigned integer and prevent
the overflow condition.

Platform:
Raven

Verify:
Raven

Change-Id: I2f7b2c5aea90120777177a4bdf238110e2ec22e2
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:42 +09:00
Cong Wang
8264e9dd7b OSS vulnerability found in [boot.img]:[linux_kernel] (CVE-2018-12232) Risk:[] [1/1]
PD#OTT-6793

Problem:
socket: close race condition between sock_close() and sockfs_setattr()

Solution:
fchownat() doesn't even hold refcnt of fd until it figures out
fd is really needed (otherwise is ignored) and releases it after
it resolves the path. This means sock_close() could race with
sockfs_setattr(), which leads to a NULL pointer dereference
since typically we set sock->sk to NULL in ->release().

As pointed out by Al, this is unique to sockfs. So we can fix this
in socket layer by acquiring inode_lock in sock_close() and
checking against NULL in sockfs_setattr().

sock_release() is called in many places, only the sock_close()
path matters here. And fortunately, this should not affect normal
sock_close() as it is only called when the last fd refcnt is gone.
It only affects sock_close() with a parallel sockfs_setattr() in
progress, which is not common.

Verify:
Raven

Change-Id: I336827581400c93c655e6bd9b837ec6f07c94632
Fixes: 86741ec254 ("net: core: Add a UID field to struct sock.")
Reported-by: shankarapailoor <shankarapailoor@gmail.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Lorenzo Colitti <lorenzo@google.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:42 +09:00
Hanjie Lin
1c0227a312 RAVENPLAT 2381:OSS vulnerability found in [boot.img]:[linux_kernel] (CVE-2018-6555) Risk:[] [1/1]
PD#OTT-5671

[Problem]
The irda_setsockopt function in net/irda/af_irda.c and later in
drivers/staging/irda/net/af_irda.c in the Linux kernel before 4.17
allows local users to cause a denial of service (ias_object
		use-after-free and system crash) or possibly have unspecified other
impact via an AF_IRDA socket.

[Solution]
The irda_setsockopt() function conditionally allocates memory for a new
self->ias_object or, in some cases, reuses the existing
self->ias_object. Existing objects were incorrectly reinserted into the
LM_IAS database which corrupted the doubly linked list used for the
hashbin implementation of the LM_IAS database. When combined with a
memory leak in irda_bind(), this issue could be leveraged to create a
use-after-free vulnerability in the hashbin list. This patch fixes the
issue by only inserting newly allocated objects into the database.

[Test]

Change-Id: Idbdc870be0064e331969b39a7b6e447c16a9073a
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:42 +09:00
Hanjie Lin
a6bce3480b RAVENPLAT 2378:OSS vulnerability found in [boot.img]:[linux_kernel] (CVE-2018-9517) Risk:[] [1/1]
PD#OTT-5666

[Problem]
In pppol2tp_connect, there is possible memory corruption due to a
use after free. This could lead to local escalation of privilege with
System execution privileges needed. User interaction is not needed for
exploitation.

[Solution]
l2tp: pass tunnel pointer to ->session_create()

Using l2tp_tunnel_find() in pppol2tp_session_create() and
l2tp_eth_create() is racy, because no reference is held on the
returned session. These functions are only used to implement the
->session_create callback which is run by l2tp_nl_cmd_session_create().
Therefore searching for the parent tunnel isn't necessary because
l2tp_nl_cmd_session_create() already has a pointer to it and holds a
reference.

This patch modifies ->session_create()'s prototype to directly pass the
the parent tunnel as parameter, thus avoiding searching for it in
pppol2tp_session_create() and l2tp_eth_create().

Since we have to touch the ->session_create() call in
l2tp_nl_cmd_session_create(), let's also remove the useless conditional:
we know that ->session_create isn't NULL at this point because it's
already been checked earlier in this same function.

Finally, one might be tempted to think that the removed
l2tp_tunnel_find() calls were harmless because they would return the
same tunnel as the one held by l2tp_nl_cmd_session_create() anyway.
But that tunnel might be removed and a new one created with same tunnel
Id before the l2tp_tunnel_find() call. In this case l2tp_tunnel_find()
	would return the new tunnel which wouldn't be protected by the
	reference held by l2tp_nl_cmd_session_create().

Change-Id: I50e19ae5abb4009205e59105222bf92e3587f9c4
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:42 +09:00
Hanjie Lin
1cf6bdf3ea RAVENPLAT-2379:OSS vulnerability found in [boot.img]:[linux_kernel] (CVE-2018-5390) Risk:[] [1/1]
PD#OTT-5669

[Problem]
Linux kernel versions 4.9+ can be forced to make very expensive calls
to tcp_collapse_ofo_queue() and tcp_prune_ofo_queue() for every incoming
packet which can lead to a denial of service.

[Solution]
Juha-Matti Tilli reported that malicious peers could inject tiny
packets in out_of_order_queue, forcing very expensive calls
to tcp_collapse_ofo_queue() and tcp_prune_ofo_queue() for
every incoming packet.
With tcp_rmem[2] default of 6MB, the ooo queue could
contain ~7000 nodes.
This patch series makes sure we cut cpu cycles enough to
render the attack not critical.
We might in the future go further, like disconnecting
or black-holing proven malicious flows.

[Test]

Change-Id: I09c72cd11a38516f3b6e293deb21c5dd0faa3d9e
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:42 +09:00
Hanjie Lin
6785925f41 debug: improve ftrace_ramoops for io trace [1/1]
PD#SWPL-6028

Problem:
optimize

Solution:
 - restore memtype setting method to default.
   depends on dts unbuffered attr,
   default 0 means pgprot_writecombine and 1 means pgprot_noncached.
 - always enable ramoop_io_en.
 - fix ioremap_page_range() print mistake.

Verify:

Change-Id: Ib4383d1f5ff8310cfe4f5f732413e0d517d557b5
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:42 +09:00
Tao Zeng
b5b613f16e mm: fix global free page not same with buddy system [1/1]
PD#TV-12041

Problem:
Lost RAM is too high, we checked meminfo, found that global free
page count is not same with real value counted from buddy system
usually after long time running, this different value can be over
200 MB:
[  484.055739@1] HighMem free:16652kB min:512kB low:15932kB
                              ~~~~~~16MB
[  484.067393@1] lowmem_reserve[]: 0 0 0
[  484.071021@1] HighMem: 2308*4kB (UMC) 1296*8kB (UMC) 913*16kB
                (UMC) 555*32kB (UMC) 339*64kB (UMC) 25*128kB
				(UMC) 2*256kB (C) 1*512kB (C) 1*1024kB (C)
	             0*2048kB 39*4096kB (C) = 238656kB
				                          ~~~~~~~~238MB

Solution:
Fix wrong sub of free pages when no fallback pages get from high memzone.

Verify:
x301

Change-Id: Iae011ec216e2479dd400aea1af4750ad436fe946
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
2020-06-29 11:45:42 +09:00
Hanjie Lin
7324f50b91 RAVENPLAT 2387:OSS vulnerability found in [boot.img]:[linux_kernel] (CVE-2018-17182) Risk:[] [1/1]
PD#OTT-5676

[Problem]
digital security team requires OSS to be patched up to the latest or non-vulnerable version

[Solution]
mm: get rid of vmacache_flush_all() entirely
Jann Horn points out that the vmacache_flush_all() function is not only
potentially expensive, it's buggy too.  It also happens to be entirely
unnecessary, because the sequence number overflow case can be avoided by
simply making the sequence number be 64-bit.  That doesn't even grow the
data structures in question, because the other adjacent fields are
already 64-bit.
So simplify the whole thing by just making the sequence number overflow
case go away entirely, which gets rid of all the complications and makes
the code faster too.  Win-win.

[Test]

Change-Id: I536c7b183ced970e18c9d67211f32da0ee404111
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
2020-06-29 11:45:42 +09:00
Tao Zeng
b906e6e076 sched: change sleep api for __migration_entry_wait [1/1]
PD#TV-7519

Problem:
schedule_timeout did not really make task sleep. It will cause
rt thread bug when this thread is waiting for a cma page migrated:
sched: RT throttling activated for rt_rq eaf671b8 (cpu 1)
potential CPU hogs:
        btu message loo (4253)
[<c037d5b8>] task_tick_rt+0x0/0x120
[<c037d914>] pick_next_task_rt+0x1cc/0x1e4
[<c0fa8534>] __schedule+0x598/0x91c
[<c0fa891c>] schedule+0x64/0xc4
[<c0fac134>] schedule_timeout+0x1dc/0x47c
[<c0493ba4>] __migration_entry_wait+0x168/0x194
               ~~~~~blocked here
[<c0493c20>] migration_entry_wait+0x50/0x54
[<c0473008>] do_swap_page+0x404/0x4e8
[<c047357c>] handle_mm_fault+0x1ec/0xa60
[<c031a2f0>] do_page_fault+0x2d4/0x3a8
[<c0301408>] do_PrefetchAbort+0x48/0xb0
[<c030f78c>] ret_from_exception+0x0/0x34

Solution:
using usleep_range instead of schedule_timeout

Verify:
t905x

Change-Id: I908022b747ad921b5863af377291abdf06672f15
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
2020-06-29 11:45:42 +09:00
Luke Go
f7ad20866b Partial: audio: set hdmi format-check threshold by input samplerate [2/2]
PD#SWPL-6340

Problem:
ddp audio input from hdmiin is not smooth

Solution:
set hdmiin format-check threshold by input sr

Verify:
Verified by x301.

Change-Id: Idb8ffa616c3880b1c34d61ca4e8c2917343a9ffc
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:42 +09:00
Zhe Wang
459ff4ab1e audio: fixed regression of TV-8378 [1/1]
PD#SWPL-13063

Problem:
dd/ddp/dts isn't decoded when window swithing

Solution:
fixed regression of TV-8378

Verify:
X301 T972

Change-Id: Id85dde4b06af9ae9609a5ed269d884fa8500044b
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:41 +09:00
Zhe Wang
b9da9b6590 audio: optimize parameters of HW resample [1/1]
PD#SWPL-16157

Problem:
THD+N test fail of 88.2KHz and 176.4KHz from hdmiin

Solution:
1) optimize parameters of resampleB
2) disable AA filter for resampleA

Verify:
TM2 AB301

Change-Id: If3ef1e283acc8dbb38590f6ae7270b8f59ef83b8
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:41 +09:00
Zhe Wang
15132a78d4 audio: add clip thd control interface [1/3]
PD#SWPL-10716

Problem:
when audio signal change from -30dB to 0dB, audio suddenly output power
is higher than 150% instantaneous maximum power

Solution:
add clip thd control interface

Verify:
verified on TL1-X301

Change-Id: Id16ba3c220a22b473eaa1e3ff87bf5dde2a83227
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:41 +09:00
Zhe Wang
5b894c3e7f audio: fixed audio clk source sel error [1/1]
PD#SWPL-8663

Problem:
there is no audio clk on SM1

Solution:
fixed clk source setting error

Verify:
AC200

Change-Id: Ief01d680c435cfc2f50f9b7da0a6e4d68db846d5
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:41 +09:00
Kevin Kim
1b21fb5ff1 odroid-common:Matching the mixer control with alsa-util
Change-Id: I276e86be72f8bd00215b540e4c312ba5a4a1706c
2020-06-29 11:45:41 +09:00
Kevin Kim
322402ebcd ODROID-COMMON:Support up to 384KHz sample rate.
Change-Id: Iad8a1337637b5f09d444c632935a1326123a04d8
2020-06-29 11:45:41 +09:00
jian.zhou
45f46fed09 audio: disable spdifout play zero data function in driver [1/1]
PD#OTT-7246

Problem:
spdifout in platform probe function will cause pop sound
as we have done this at uboot stage

Solution:
disable spdifout play zero data function

Verify:
S905Y2-U221

Change-Id: I6885a200cdb909854e239bb172568ec0af503a06
Signed-off-by: jian.zhou <jian.zhou@amlogic.com>
2020-06-29 11:45:41 +09:00
Shuai Li
aeee2e9f3d audio: add param check for resample [1/1]
PD#SWPL-7798

Problem:
Crashed when audio resample setting params
are invalid.

Solution:
Add check method if the params is invalid.

Verify:
Tl1.

Change-Id: I1e0396be8d401c0a49ff0de9fd7f160f0c8133ca
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2020-06-29 11:45:41 +09:00
Shuai Li
04379de380 audio: external tdm-loopback [1/1]
PD#SH-1626

Problem:
Can not record ADC's i2s output from Loopback

Solution:
1. Fix the wrong reg config in TDM OE pin.
2. move the lr/sclk pad configuration to probe.

Verify:
SM1.

Change-Id: I01f419e4b0ba72fb7295641c6e7d9a189754c9d7
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2020-06-29 11:45:41 +09:00
Xing Wang
27b3fa2f1b audio: auge: improve compatibility for eARC RX/TX connection [1/1]
PD#SWPL-15189

Problem:
1. earc rx fails to connect to a sony tv
2. earc tx fails to connect to AVR-X4500H

Solution:
1. reset earc_rx pll
2. reduce comma_th

Verify:
ab311

Change-Id: I162b9697d151b682df01093cdc086330a97f8fab
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2020-06-29 11:45:41 +09:00
Xing Wang
f31c0a9a3e audio: auge: add mixer for eARC RX/TX latency and capability [1/1]
PD#SWPL-6918

Problem:
lack function to read/write eARC RX/TX latency and capability

Solution:
add mixer for eARC RX set/get latency and capability
add mixer for eARC RX get latency and capability

Verify:
ab311

Change-Id: I0d8aa00af7d856493417dc881a1a8c40497b12a5
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2020-06-29 11:45:41 +09:00
Shuai Li
b24bddd7c9 audio: add lock for resampler [1/1]
PD#SWPL-8134

Problem:
kernel NULL pointer for aml_resample_enable

Solution:
add lock for resampler

Verify:
Need stress test for x301

Change-Id: I1bbf5d7aeab681399c93f0cba9cc59195d3be0d6
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2020-06-29 11:45:41 +09:00
Zhe Wang
58cf86024c audio: disable some audio print messages for ATV str test [1/1]
PD#TV-8460

Problem:
ATV str test is stucked

Solution:
disable some audio print messages

Verify:
Verfied on marconi

Change-Id: I284c8afde3a6bc9ff3b8ebfe19360abbb152c3f8
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:40 +09:00
Shuai Li
719d492856 audio: Fix audio stuck [1/1]
PD#SWPL-9142

Problem:
Audio stuck in stress test.

Solution:
Work around:
Wait until the fifo stops and then stop toddr.

Verify:
Tl1.

Change-Id: I8ce50732a7e23124b4b37374aa4505d79cd68cfe
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2020-06-29 11:45:40 +09:00
Zhe Wang
f52a9e725f audio: set audio path from frhdmirx through spdifin mode [1/2]
PD#SWPL-11054

Problem:
hdmiin source, audio input is randomly LR invert

Solution:
set audio path from frhdmirx through spdifin mode

Verify:
Verified on X301

Change-Id: Ib40d30b8b6d8bc28da69bf9b4f37ae2ef9228761
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:40 +09:00
Xing Wang
d204178ebf audio: auge: fix ARC to single mode [1/1]
PD#SWPL-8967

Problem:
ARC amplitude,The test value is 0.376V, requiring 0.4-0.6VPP

Solution:
update to single mode

Verify:
tl1

Change-Id: I59198596f6db22ec49eea35084325005f13bc5b6
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2020-06-29 11:45:40 +09:00
Shuai Li
6e25ccd91d audio: support 48k out & 16k loopback [1/1]
PD#SWPL-7741

Problem:
Enable the loopback function.
Fix 48k output & 16k loopback abnormal.

Solution:
Fix the resample source.
DO not touch output clk at loopback driver.

Verify:
Sm1, AC213

Change-Id: I210083813e9e6ec834941da333f8ce076e9afbcf
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2020-06-29 11:45:40 +09:00
Xing Wang
ab2e2f9786 audio: auge: toddr irq interrupt protection for freeze mode [1/1]
PD#TV-10448

Problem:
crash when finished early supend but not entry suspend,
the system is waked up

Solution:
add toddr irq interrupt protection when entry suspend
and exit from suspend

Verify:
x301

Change-Id: I7ade7a745511bab83c70b5649b6af318163568d9
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2020-06-29 11:45:40 +09:00
Shuai Li
29fefb910a audio: audio ABUS stuck issue [1/1]
PD#SWPL-9142

Problem:
Audio Abus may be stuck if it is stopped
when the burst is not finished.
And the stuck can't be recovered
unless reboot the system.

Solution:
Add check to make sure that the transfer
is over then start to disable the toddr fifo.

Verify:
TL1 stress test.

Change-Id: I28dcf84ddec421bc70370b2544f0bf1f3272e7b4
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2020-06-29 11:45:40 +09:00
Zhe Wang
114b99730d audio: add clk tuning_enable/start_enable control in dts [1/1]
PD#SWPL-8306

Problem:
speaker without audio on S400. sideeffect of SWPL-7680

Solution:
add control interface in dts to enable clk tuning
and start clk before codec init

Verify:
verify on S400

Change-Id: Ic9f4e7b13b7d4ced18852346cdc7cf5f48e510dc
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:40 +09:00
Zhe Wang
25c54d3ed0 audio: fixed dtv audio clk setting error in samesource [1/1]
PD#SWPL-9593

Problem:
dtv audio is heard slower in spk

Solution:
when mclk is changed, spdif clk changes correspondingly in samesource case

Verify:
X301

Change-Id: I15fcb598ba893762580f0a5aac856376af8c94ec
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>
2020-06-29 11:45:40 +09:00
Kevin Kim
0d76096354 ODROID-COMMON: sound/soc: support up to 384KHz sample rate.
Change-Id: Iad8a1337637b5f09d444c632935a1326123a04d8
2020-06-29 11:45:40 +09:00
Jian Xu
2e16669748 audio: auge: fix the samesource spdif clock recovery issue [1/1]
PD#SWPL-3667

Problem:
after playback none-48K raw audio, the spdif clock
is not recoved to 48K when tdm/spdif same source

Solution:
use the same clock source as tdm if samesource and
config that when tdm hardware prepare.

Verify:
AC213

Change-Id: I0d5dc5f51b5de14d155902e0fe72c293071c93ec
Signed-off-by: Jian Xu <jian.xu@amlogic.com>
2020-06-29 11:45:40 +09:00