Commit Graph

89052 Commits

Author SHA1 Message Date
Mauro (mdrjr) Ribeiro
62ae4276f9 Merge tag 'v4.9.187' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidn2-4.9.y
This is the 4.9.187 stable release

Change-Id: I49d360cc6e96f65307269d3be54c83533d034601
2019-08-05 20:46:01 -03:00
Mauro (mdrjr) Ribeiro
e2725a2437 Merge tag 'v4.9.186' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidn2-4.9.y
This is the 4.9.186 stable release
2019-08-05 20:45:46 -03:00
Jann Horn
837ffc9723 sched/fair: Don't free p->numa_faults with concurrent readers
commit 16d51a590a upstream.

When going through execve(), zero out the NUMA fault statistics instead of
freeing them.

During execve, the task is reachable through procfs and the scheduler. A
concurrent /proc/*/sched reader can read data from a freed ->numa_faults
allocation (confirmed by KASAN) and write it back to userspace.
I believe that it would also be possible for a use-after-free read to occur
through a race between a NUMA fault and execve(): task_numa_fault() can
lead to task_numa_compare(), which invokes task_weight() on the currently
running task of a different CPU.

Another way to fix this would be to make ->numa_faults RCU-managed or add
extra locking, but it seems easier to wipe the NUMA fault statistics on
execve.

Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Fixes: 82727018b0 ("sched/numa: Call task_numa_free() from do_execve()")
Link: https://lkml.kernel.org/r/20190716152047.14424-1-jannh@google.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-08-04 09:33:45 +02:00
Soheil Hassas Yeganeh
704533394e tcp: reset sk_send_head in tcp_write_queue_purge
[ Upstream commit dbbf2d1e40 ]

tcp_write_queue_purge clears all the SKBs in the write queue
but does not reset the sk_send_head. As a result, we can have
a NULL pointer dereference anywhere that we use tcp_send_head
instead of the tcp_write_queue_tail.

For example, after a27fd7a8ed (tcp: purge write queue upon RST),
we can purge the write queue on RST. Prior to
75c119afe1 (tcp: implement rb-tree based retransmit queue),
tcp_push will only check tcp_send_head and then accesses
tcp_write_queue_tail to send the actual SKB. As a result, it will
dereference a NULL pointer.

This has been reported twice for 4.14 where we don't have
75c119afe1:

By Timofey Titovets:

[  422.081094] BUG: unable to handle kernel NULL pointer dereference
at 0000000000000038
[  422.081254] IP: tcp_push+0x42/0x110
[  422.081314] PGD 0 P4D 0
[  422.081364] Oops: 0002 [#1] SMP PTI

By Yongjian Xu:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
IP: tcp_push+0x48/0x120
PGD 80000007ff77b067 P4D 80000007ff77b067 PUD 7fd989067 PMD 0
Oops: 0002 [#18] SMP PTI
Modules linked in: tcp_diag inet_diag tcp_bbr sch_fq iTCO_wdt
iTCO_vendor_support pcspkr ixgbe mdio i2c_i801 lpc_ich joydev input_leds shpchp
e1000e igb dca ptp pps_core hwmon mei_me mei ipmi_si ipmi_msghandler sg ses
scsi_transport_sas enclosure ext4 jbd2 mbcache sd_mod ahci libahci megaraid_sas
wmi ast ttm dm_mirror dm_region_hash dm_log dm_mod dax
CPU: 6 PID: 14156 Comm: [ET_NET 6] Tainted: G D 4.14.26-1.el6.x86_64 #1
Hardware name: LENOVO ThinkServer RD440 /ThinkServer RD440, BIOS A0TS80A
09/22/2014
task: ffff8807d78d8140 task.stack: ffffc9000e944000
RIP: 0010:tcp_push+0x48/0x120
RSP: 0018:ffffc9000e947a88 EFLAGS: 00010246
RAX: 00000000000005b4 RBX: ffff880f7cce9c00 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000040 RDI: ffff8807d00f5000
RBP: ffffc9000e947aa8 R08: 0000000000001c84 R09: 0000000000000000
R10: ffff8807d00f5158 R11: 0000000000000000 R12: ffff8807d00f5000
R13: 0000000000000020 R14: 00000000000256d4 R15: 0000000000000000
FS: 00007f5916de9700(0000) GS:ffff88107fd00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000038 CR3: 00000007f8226004 CR4: 00000000001606e0
Call Trace:
tcp_sendmsg_locked+0x33d/0xe50
tcp_sendmsg+0x37/0x60
inet_sendmsg+0x39/0xc0
sock_sendmsg+0x49/0x60
sock_write_iter+0xb6/0x100
do_iter_readv_writev+0xec/0x130
? rw_verify_area+0x49/0xb0
do_iter_write+0x97/0xd0
vfs_writev+0x7e/0xe0
? __wake_up_common_lock+0x80/0xa0
? __fget_light+0x2c/0x70
? __do_page_fault+0x1e7/0x530
do_writev+0x60/0xf0
? inet_shutdown+0xac/0x110
SyS_writev+0x10/0x20
do_syscall_64+0x6f/0x140
? prepare_exit_to_usermode+0x8b/0xa0
entry_SYSCALL_64_after_hwframe+0x3d/0xa2
RIP: 0033:0x3135ce0c57
RSP: 002b:00007f5916de4b00 EFLAGS: 00000293 ORIG_RAX: 0000000000000014
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000003135ce0c57
RDX: 0000000000000002 RSI: 00007f5916de4b90 RDI: 000000000000606f
RBP: 0000000000000000 R08: 0000000000000000 R09: 00007f5916de8c38
R10: 0000000000000000 R11: 0000000000000293 R12: 00000000000464cc
R13: 00007f5916de8c30 R14: 00007f58d8bef080 R15: 0000000000000002
Code: 48 8b 97 60 01 00 00 4c 8d 97 58 01 00 00 41 b9 00 00 00 00 41 89 f3 4c 39
d2 49 0f 44 d1 41 81 e3 00 80 00 00 0f 85 b0 00 00 00 <80> 4a 38 08 44 8b 8f 74
06 00 00 44 89 8f 7c 06 00 00 83 e6 01
RIP: tcp_push+0x48/0x120 RSP: ffffc9000e947a88
CR2: 0000000000000038
---[ end trace 8d545c2e93515549 ]---

There is other scenario which found in stable 4.4:
Allocated:
 [<ffffffff82f380a6>] __alloc_skb+0xe6/0x600 net/core/skbuff.c:218
 [<ffffffff832466c3>] alloc_skb_fclone include/linux/skbuff.h:856 [inline]
 [<ffffffff832466c3>] sk_stream_alloc_skb+0xa3/0x5d0 net/ipv4/tcp.c:833
 [<ffffffff83249164>] tcp_sendmsg+0xd34/0x2b00 net/ipv4/tcp.c:1178
 [<ffffffff83300ef3>] inet_sendmsg+0x203/0x4d0 net/ipv4/af_inet.c:755
Freed:
 [<ffffffff82f372fd>] __kfree_skb+0x1d/0x20 net/core/skbuff.c:676
 [<ffffffff83288834>] sk_wmem_free_skb include/net/sock.h:1447 [inline]
 [<ffffffff83288834>] tcp_write_queue_purge include/net/tcp.h:1460 [inline]
 [<ffffffff83288834>] tcp_connect_init net/ipv4/tcp_output.c:3122 [inline]
 [<ffffffff83288834>] tcp_connect+0xb24/0x30c0 net/ipv4/tcp_output.c:3261
 [<ffffffff8329b991>] tcp_v4_connect+0xf31/0x1890 net/ipv4/tcp_ipv4.c:246

BUG: KASAN: use-after-free in tcp_skb_pcount include/net/tcp.h:796 [inline]
BUG: KASAN: use-after-free in tcp_init_tso_segs net/ipv4/tcp_output.c:1619 [inline]
BUG: KASAN: use-after-free in tcp_write_xmit+0x3fc2/0x4cb0 net/ipv4/tcp_output.c:2056
 [<ffffffff81515cd5>] kasan_report.cold.7+0x175/0x2f7 mm/kasan/report.c:408
 [<ffffffff814f9784>] __asan_report_load2_noabort+0x14/0x20 mm/kasan/report.c:427
 [<ffffffff83286582>] tcp_skb_pcount include/net/tcp.h:796 [inline]
 [<ffffffff83286582>] tcp_init_tso_segs net/ipv4/tcp_output.c:1619 [inline]
 [<ffffffff83286582>] tcp_write_xmit+0x3fc2/0x4cb0 net/ipv4/tcp_output.c:2056
 [<ffffffff83287a40>] __tcp_push_pending_frames+0xa0/0x290 net/ipv4/tcp_output.c:2307

stable 4.4 and stable 4.9 don't have the commit abb4a8b870 ("tcp: purge write queue upon RST")
which is referred in dbbf2d1e40,
in tcp_connect_init, it calls tcp_write_queue_purge, and does not reset sk_send_head, then UAF.

stable 4.14 have the commit abb4a8b870 ("tcp: purge write queue upon RST"),
in tcp_reset, it calls tcp_write_queue_purge(sk), and does not reset sk_send_head, then UAF.

So this patch can be used to fix stable 4.4 and 4.9.

Fixes: a27fd7a8ed (tcp: purge write queue upon RST)
Reported-by: Timofey Titovets <nefelim4ag@gmail.com>
Reported-by: Yongjian Xu <yongjianchn@gmail.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
Tested-by: Yongjian Xu <yongjianchn@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mao Wenan <maowenan@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-08-04 09:33:43 +02:00
Linus Torvalds
50810015e0 access: avoid the RCU grace period for the temporary subjective credentials
commit d7852fbd0f upstream.

It turns out that 'access()' (and 'faccessat()') can cause a lot of RCU
work because it installs a temporary credential that gets allocated and
freed for each system call.

The allocation and freeing overhead is mostly benign, but because
credentials can be accessed under the RCU read lock, the freeing
involves a RCU grace period.

Which is not a huge deal normally, but if you have a lot of access()
calls, this causes a fair amount of seconday damage: instead of having a
nice alloc/free patterns that hits in hot per-CPU slab caches, you have
all those delayed free's, and on big machines with hundreds of cores,
the RCU overhead can end up being enormous.

But it turns out that all of this is entirely unnecessary.  Exactly
because access() only installs the credential as the thread-local
subjective credential, the temporary cred pointer doesn't actually need
to be RCU free'd at all.  Once we're done using it, we can just free it
synchronously and avoid all the RCU overhead.

So add a 'non_rcu' flag to 'struct cred', which can be set by users that
know they only use it in non-RCU context (there are other potential
users for this).  We can make it a union with the rcu freeing list head
that we need for the RCU case, so this doesn't need any extra storage.

Note that this also makes 'get_current_cred()' clear the new non_rcu
flag, in case we have filesystems that take a long-term reference to the
cred and then expect the RCU delayed freeing afterwards.  It's not
entirely clear that this is required, but it makes for clear semantics:
the subjective cred remains non-RCU as long as you only access it
synchronously using the thread-local accessors, but you _can_ use it as
a generic cred if you want to.

It is possible that we should just remove the whole RCU markings for
->cred entirely.  Only ->real_cred is really supposed to be accessed
through RCU, and the long-term cred copies that nfs uses might want to
explicitly re-enable RCU freeing if required, rather than have
get_current_cred() do it implicitly.

But this is a "minimal semantic changes" change for the immediate
problem.

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Jan Glauber <jglauber@marvell.com>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Jayachandran Chandrasekharan Nair <jnair@marvell.com>
Cc: Greg KH <greg@kroah.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: David Howells <dhowells@redhat.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-08-04 09:33:43 +02:00
Andrey Ryabinin
4b5d4bdfd1 compiler.h: Add read_word_at_a_time() function.
[ Upstream commit 7f1e541fc8 ]

Sometimes we know that it's safe to do potentially out-of-bounds access
because we know it won't cross a page boundary.  Still, KASAN will
report this as a bug.

Add read_word_at_a_time() function which is supposed to be used in such
cases.  In read_word_at_a_time() KASAN performs relaxed check - only the
first byte of access is validated.

Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-08-04 09:33:32 +02:00
Andrey Ryabinin
229b670e66 compiler.h, kasan: Avoid duplicating __read_once_size_nocheck()
[ Upstream commit bdb5ac801a ]

Instead of having two identical __read_once_size_nocheck() functions
with different attributes, consolidate all the difference in new macro
__no_kasan_or_inline and use it. No functional changes.

Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-08-04 09:33:32 +02:00
Marek Szyprowski
df5b05868d clocksource/drivers/exynos_mct: Increase priority over ARM arch timer
[ Upstream commit 6282edb72b ]

Exynos SoCs based on CA7/CA15 have 2 timer interfaces: custom Exynos MCT
(Multi Core Timer) and standard ARM Architected Timers.

There are use cases, where both timer interfaces are used simultanously.
One of such examples is using Exynos MCT for the main system timer and
ARM Architected Timers for the KVM and virtualized guests (KVM requires
arch timers).

Exynos Multi-Core Timer driver (exynos_mct) must be however started
before ARM Architected Timers (arch_timer), because they both share some
common hardware blocks (global system counter) and turning on MCT is
needed to get ARM Architected Timer working properly.

To ensure selecting Exynos MCT as the main system timer, increase MCT
timer rating. To ensure proper starting order of both timers during
suspend/resume cycle, increase MCT hotplug priority over ARM Archictected
Timers.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-08-04 09:33:22 +02:00
Waiman Long
8151383a17 rcu: Force inlining of rcu_read_lock()
[ Upstream commit 6da9f77517 ]

When debugging options are turned on, the rcu_read_lock() function
might not be inlined. This results in lockdep's print_lock() function
printing "rcu_read_lock+0x0/0x70" instead of rcu_read_lock()'s caller.
For example:

[   10.579995] =============================
[   10.584033] WARNING: suspicious RCU usage
[   10.588074] 4.18.0.memcg_v2+ #1 Not tainted
[   10.593162] -----------------------------
[   10.597203] include/linux/rcupdate.h:281 Illegal context switch in
RCU read-side critical section!
[   10.606220]
[   10.606220] other info that might help us debug this:
[   10.606220]
[   10.614280]
[   10.614280] rcu_scheduler_active = 2, debug_locks = 1
[   10.620853] 3 locks held by systemd/1:
[   10.624632]  #0: (____ptrval____) (&type->i_mutex_dir_key#5){.+.+}, at: lookup_slow+0x42/0x70
[   10.633232]  #1: (____ptrval____) (rcu_read_lock){....}, at: rcu_read_lock+0x0/0x70
[   10.640954]  #2: (____ptrval____) (rcu_read_lock){....}, at: rcu_read_lock+0x0/0x70

These "rcu_read_lock+0x0/0x70" strings are not providing any useful
information.  This commit therefore forces inlining of the rcu_read_lock()
function so that rcu_read_lock()'s caller is instead shown.

Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-08-04 09:33:19 +02:00
Portisch
53fc7a5a5b video_sink: add amvideocap module This will add the amvideocap module to kernel 4.9 If the frame rate is higher than 30 fps each second frame get captured. stretchblt: fix missing block assignment in _stretchblt_noalpha 2019-07-23 17:52:49 +09:00
Portisch
b2f2126dcb rc: implement ir-irmp-decoder 2019-07-23 17:52:49 +09:00
Portisch
53d5b25588 hdmi_ao_cec: save given cec config parameter to u-boot register 2019-07-23 17:52:49 +09:00
Zhe Wang
24b7a86956 audio: TM2 audio basic function bringup [1/1]
PD#SWPL-6721

Problem:
TM2 bringup

Solution:
audio basic function bringup

Verify:
Verified on T962e2_ab311

Change-Id: Ic48ded3964ea87e40c4d683d71a50bbdc1975f91
Signed-off-by: Zhe Wang <Zhe.Wang@amlogic.com>

Conflicts:
	arch/arm64/boot/dts/amlogic/tm2_t962x3_ab301.dts
2019-07-23 17:52:49 +09:00
ruixuan.li
c50512adc4 tm2: emmc run hs200 busmode [1/1]
PD#SWPL-5658

Problem:
emmc run high speed now

Solution:
modify dts

Verify:
passed on t962e2_ab319

Change-Id: Iedef30bed9547e7f57c883077462f1762c55fda3
Signed-off-by: ruixuan.li <ruixuan.li@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesontm2.dtsi
	arch/arm64/boot/dts/amlogic/mesontm2.dtsi
	arch/arm64/boot/dts/amlogic/tm2_t962e2_ab311.dts
	drivers/amlogic/mmc/aml_sd_emmc_v3.c
2019-07-23 17:52:49 +09:00
Long Yu
715f14bd50 storage: emmc: Add HS400 busmode support for TL1 [1/1]
PD#SWPL-2311

Problem:
not support HS400 busmode

Solution:
add HS400 busmode support for TL1

Verify:
TL1-T962X2_X301

Change-Id: I95ac19e9c0c5b84c9225602cda6964aaaee4151e
Signed-off-by: Long Yu <long.yu@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesontm2.dtsi
	arch/arm64/boot/dts/amlogic/mesontm2.dtsi
	arch/arm64/boot/dts/amlogic/tm2_t962x3_ab301.dts
	drivers/amlogic/mmc/aml_sd_emmc_v3.c
2019-07-23 17:52:49 +09:00
Nan Li
cd3580450b sdio: optimize sd & wifi TDMA [1/1]
PD#SWPL-1908

Problem:
sdio wifi error TDMA.

Solution:
optimize host reg value set error.

Verify:
u211 & u212

Change-Id: I0e0d52ac2bce42cf163f0065d46badc938832a65
Signed-off-by: Nan Li <nan.li@amlogic.com>

Conflicts:
	drivers/amlogic/mmc/aml_sd_emmc.c
	drivers/amlogic/mmc/aml_sd_emmc_v3.c
	drivers/amlogic/mmc/amlsd_of.c
	include/linux/amlogic/sd.h
2019-07-23 17:52:49 +09:00
Kevin Kim
6e46f0c992 ODROID:Merge BSP 2019.04 (fix build err-vout_lcd)
Change-Id: I92e6c903fa96763251844080d268bd5e74030ae9
2019-07-23 17:52:49 +09:00
Evoke Zhang
0b6f5784ae lcd: update panel parameters for tl1 [1/1]
PD#SWPL-3109

Problem:
tl1 tcon parameters need update

Solution:
1.update tcon parameters for tl1
2.add minilvds support

Verify:
x301

Change-Id: Ia9c1defb25f43b2b352400e2ab55c6a74b55d688
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi
	arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi
	arch/arm/boot/dts/amlogic/mesontxlx_r311-panel.dtsi
	arch/arm64/boot/dts/amlogic/mesontl1_t309-panel.dtsi
	arch/arm64/boot/dts/amlogic/mesontl1_x301-panel.dtsi
	arch/arm64/boot/dts/amlogic/mesontm2_t962x3_ab309-panel.dtsi
	drivers/amlogic/media/vout/lcd/lcd_clk_config.c
	drivers/amlogic/media/vout/lcd/lcd_debug.c
2019-07-23 17:52:49 +09:00
Evoke Zhang
d0533b8c2b lcd: update p2p config and pll setting for tl1 [1/1]
PD#SWPL-3108

Problem:
1. tcon pll don't support spread spectrum yet
2. no p2p parameters config

Solution:
1. add p2p config parameters
2. enable tl1 clk parameters auto generate
3. add tl1 tcon_pll spread spectrum support
4. update clk spread spectrum api:
   set ss_level(hex val):
       echo level <val> >/sys/class/lcd/ss
   set ss_freq(hex val):
       echo freq <val> >/sys/class/lcd/ss
   set ss_mode(hex val):
       echo mode <val> >/sys/class/lcd/ss
   set ss advance(hex val, [15:12]=mode, [11:8]=freq, [7:0]=level):
       echo <val> >/sys/class/lcd/ss
   show ss_level, ss_freq, ss_mode:
       cat /sys/class/lcd/ss

Verify:
x301

Change-Id: I99eeca84290403fe766b17673ba9b0f7429fae26
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi
	arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi
	arch/arm/boot/dts/amlogic/mesontm2_t962x3_ab309-panel.dtsi
	drivers/amlogic/media/vout/lcd/lcd_clk_config.c
	drivers/amlogic/media/vout/lcd/lcd_common.h
	drivers/amlogic/media/vout/lcd/lcd_debug.c
	drivers/amlogic/media/vout/lcd/lcd_tv/lcd_drv.c
	drivers/amlogic/media/vout/lcd/lcd_vout.c
	include/linux/amlogic/media/vout/lcd/lcd_vout.h
2019-07-23 17:52:49 +09:00
Kevin Kim
8985bac67d ODROID:Merge BSP 2019.04 (fix build err-vin)
Change-Id: I4bf9a1634e613e768dcc48248c6e4ff9f3f3d239
2019-07-23 17:52:49 +09:00
Xuhua Zhang
08d2167794 tvin: vdin: add interface to get signalinfo [1/1]
PD#TV-2083

Problem:
TVIN_IOC_G_SIG_INFO not complete enough

Solution:
add interface to get signalinfo

Verify:
Verify on TL1

Change-Id: I32f198f14dfcc1f8a8ee1f19c4065bd7d4d5dccc
Signed-off-by: Xuhua Zhang <xuhua.zhang@amlogic.com>

Conflicts:
	include/linux/amlogic/media/frame_provider/tvin/tvin.h
2019-07-23 17:52:49 +09:00
xuhua zhang
2a39427909 vdin: add vdin1 histgram [1/1]
PD#SWPL-3059

Problem:
vdin1 hisgram and screencap cannot be used simultaneously

Solution:
add vdin1 histgram,and make hist and screencap function to be compatible

Verify:
txlx r311

Change-Id: I759d1cdc69d59015ce845898990088eb6943cc41
Signed-off-by: xuhua zhang <xuhua.zhang@amlogic.com>

Conflicts:
	drivers/amlogic/media/vin/tvin/vdin/vdin_drv.c
	include/linux/amlogic/media/frame_provider/tvin/tvin.h
2019-07-23 17:52:49 +09:00
nengwen.chen
2b75a9c818 atv_demod: modify atv demod support multi tuner load [1/3]
PD#TV-1539

Problem:
modify atv demod support multi tuner load.

Solution:
1.add fine tune.
2.add set/get if info.
3.add tuner type set/get.
4.add multi tuner config in dts.
5.atv demod ver: V2.09.

Verify:
verified by x301

Change-Id: I23328bfab3d3508db67cef3e327002563eb1a87e
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/tl1_t962x2_t309.dts
	arch/arm/boot/dts/amlogic/txlx_t962x_r314.dts
	arch/arm64/boot/dts/amlogic/tm2_t962e2_ab311.dts
	arch/arm64/boot/dts/amlogic/txlx_t962x_r314.dts
2019-07-23 17:52:49 +09:00
Guosong Zhou
041b4d5d79 camera: add dvp camera [1/1]
PD#OTT-1204

Problem:
don't support dvp camera

Solution:
add dvp camera gc2145 camera driver

Verify:
test pass on U200

Change-Id: I5927d49a93952587af7bb460a5c405293d692153
Signed-off-by: Guosong Zhou <guosong.zhou@amlogic.com>

Conflicts:
	MAINTAINERS
	arch/arm/boot/dts/amlogic/g12a_s905d2_u200.dts
2019-07-23 17:52:49 +09:00
nengwen.chen
e7cd693aa9 camera: all sources are displayed as black screen except DTV.
PD#SWPL-3776

Problem:
all sources are displayed as black screen except DTV

Solution:
Revert "camera: add dvp camera [1/1]"

Verify:
verify by x301

Change-Id: I3f094ed18de4be382798515e5c68eb5505df2373
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>

Conflicts:
	MAINTAINERS
	arch/arm/boot/dts/amlogic/g12a_s905d2_u200.dts
	drivers/amlogic/media/camera/common/vm.c
	drivers/amlogic/media/camera/gc2145.c
2019-07-23 17:52:49 +09:00
Yong Qin
c0102386e4 cec: for support multi-logical address [1/1]
PD#SWPL-418

Problem:
cec: support multi-logical address

Solution:
if working on multi-logical address, enable two ip
1.enable cec_a, cec_b
2.enable two interrupt
3.enable two pinmux oa_7, ao_8
4.cec_a only send all msg
5.cec_b only receive all msg
6.discard ceca broadcast msg

Verify:
r311
r321
p321

Change-Id: I1dc93429876ede951657102bcd7d41a500946719
Signed-off-by: Yong Qin <yong.qin@amlogic.com>

Conflicts:
	drivers/amlogic/cec/hdmi_ao_cec.c
	drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h
2019-07-23 17:52:49 +09:00
Lei Qian
472272230e cec: revert changesy [1/1]
PD#SWPL-418

Problem:
TXL can't bootup

Solution:
revert it

Verify:
p321

Revert "cec: for support multi-logical address [2/2]"
This reverts commit cc185dc81d.

Revert "cec: for support multi-logical address [1/2]"
This reverts commit b7922078ea.

Change-Id: I1cef0ac194464d75ffff3fe765f15b5f944406b2
Signed-off-by: Lei Qian <lei.qian@amlogic.com>

Conflicts:
	drivers/amlogic/cec/hdmi_ao_cec.c
2019-07-23 17:52:49 +09:00
long yu
00f6381291 storage: emmc: Add HS400 busmode support for G12B-RevB [1/1]
PD#SWPL-5040

Problem:
not support HS400 busmode

Solution:
add HS400 busmode support for G12B-RevB

Verify:
T962X-R311,TL1-T962X2_X301,G12B-W400

Change-Id: I11a1f47b9473fa341c7d754a51d6e270551758a7
Signed-off-by: long yu <long.yu@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesong12b.dtsi
	arch/arm64/boot/dts/amlogic/mesong12b.dtsi
	drivers/amlogic/mmc/aml_sd_emmc_v3.c
	drivers/mmc/core/mmc.c
2019-07-23 17:52:49 +09:00
Tao Zeng
f82abc7940 ramdump: write compressed data [2/2]
PD#SWPL-6193

Problem:
ramdump need write compressed data to persist storage device.
But if we write it under uboot, it may cause journal and block
bitmap mismatch due to different version of file system. This
caused kernel panic after ramdump finished.

Solution:
Write compressed data under kernel.
This change also removed some extern function of ramdump since
we use sticky register to store ramdump information.

Verify:
p212

Change-Id: Idd83ec6ead4783918b90a39cf716fd3117402278
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesonaxg.dtsi
	arch/arm/boot/dts/amlogic/mesong12a.dtsi
	arch/arm/boot/dts/amlogic/mesongxl.dtsi
	arch/arm/boot/dts/amlogic/mesongxm.dtsi
	arch/arm/boot/dts/amlogic/mesontl1.dtsi
	arch/arm/boot/dts/amlogic/mesontxl.dtsi
	arch/arm/boot/dts/amlogic/mesontxlx.dtsi
	arch/arm64/boot/dts/amlogic/mesonaxg.dtsi
	arch/arm64/boot/dts/amlogic/mesong12a.dtsi
	arch/arm64/boot/dts/amlogic/mesongxl.dtsi
	arch/arm64/boot/dts/amlogic/mesongxm.dtsi
	arch/arm64/boot/dts/amlogic/mesontxl.dtsi
	arch/arm64/boot/dts/amlogic/mesontxlx.dtsi
	drivers/amlogic/memory_ext/ram_dump.c
	include/linux/amlogic/ramdump.h
2019-07-23 17:52:49 +09:00
Nian Jing
abad8a7c46 tvafe: add control for tvconfig snow config [1/1]
PD#SWPL-5985

Problem:
display snow when snow config disabled

Solution:
add control for tvconfig snow config

Verify:
verify it on x301

Change-Id: I3466efc98577f2403f3a6cd638ad7dbf70ce34dc
Signed-off-by: Nian Jing <nian.jing@amlogic.com>

Conflicts:
	include/linux/amlogic/media/frame_provider/tvin/tvin.h
2019-07-23 17:52:49 +09:00
Bichao Zheng
4cc9254223 irblaster: meson: refactored irblaster driver [1/1]
PD#SWPL-1856

Problem:
refactored irblaster code

Solution:
1. Refactor the code according to the core, provider, and consumer
   frameworks.
2. Provide software encode to let irblaster work according to different
   protocols
3. Provide a unified consumer interface to allow other consumer drivers
   to use irblaster.

Verify:
test pass on g12a_u200_v1

Change-Id: Ifd841ef0ed741b7fd721defc25691744ea2103f0
Signed-off-by: Bichao Zheng <bichao.zheng@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesontxl.dtsi
	arch/arm64/boot/dts/amlogic/axg_s410.dts
	arch/arm64/boot/dts/amlogic/mesontxl.dtsi
2019-07-23 17:52:49 +09:00
shaochan.liu
45845922e5 lcd: add lcd_driver support for tm2 [2/2]
PD#SWPL-6398

Problem:
add lcd_driver support

Solution:
add lcd_chip_tm2 and panel.dtsi

Verify:
ab301

Change-Id: I3cb5b67826ea2612e69b206168497771d5ced4b2
Signed-off-by: shaochan.liu <shaochan.liu@amlogic.com>

Conflicts:
	MAINTAINERS
	arch/arm64/boot/dts/amlogic/tm2_t962x3_ab301.dts
	drivers/amlogic/media/vout/lcd/lcd_debug.c
	drivers/amlogic/media/vout/lcd/lcd_phy_config.c
	drivers/amlogic/media/vout/lcd/lcd_tablet/lcd_drv.c
	drivers/amlogic/media/vout/lcd/lcd_tcon.c
	drivers/amlogic/media/vout/lcd/lcd_tv/lcd_drv.c
2019-07-23 17:52:49 +09:00
Hong Guo
ccca5b9ee3 CPUFREQ: Setting different cpufreq tables according to efuse information. [1/1]
PD#SWPL-4035

Problem:
Setting different cpufreq tables according to efuse information.

Solution:
Setting different cpufreq tables according to efuse information.

Verify:
g12a_u200, verify pass

Change-Id: I1bf571f332244f5727ef3cd8743f215f71248146
Signed-off-by: Hong Guo <hong.guo@amlogic.com>

Conflicts:
	drivers/amlogic/cpufreq/meson-cpufreq.c
2019-07-23 17:52:49 +09:00
Nan Li
cc50262270 sd: add sduart not supported flag [1/1]
PD#SWPL-4858

Problem:
tl1 not support sduart

Solution:
add not supported flag in match_data

Verify:
verify by tl1 skt

Change-Id: I651765433bb62892fad770c85a5eccd4805e7c79
Signed-off-by: Nan Li <nan.li@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/tl1_pxp.dts
	arch/arm/boot/dts/amlogic/tl1_t962x2_skt.dts
	drivers/amlogic/mmc/amlsd.c
2019-07-23 17:52:49 +09:00
Xing Wang
8aa35da1e3 audio: auge: transfer audio data to wake word algorithm [1/3]
PD#TV-3389

Problem:
add vad wake engine in kernel

Solution:
transfer audio data to wake engine

Verify:
x301

Change-Id: I7f44d0141141775bb40f01dbc344a295a72c9d87
Signed-off-by: Xing Wang <xing.wang@amlogic.com>

Conflicts:
	MAINTAINERS
2019-07-23 17:52:49 +09:00
Shuai Li
856ad33f9c audio: add spdif/HDMI mute ctrl [1/1]
PD#TV-3016

Problem:
HDMI SPDIF mute interface has no effect.

Solution:
Add these interfaces for auge platform.

Verify:
Tested locally.

Change-Id: I168c0940e0f2b3d94091d43c6b8190f6f833c0f1
Signed-off-by: Shuai Li <shuai.li@amlogic.com>

Conflicts:
	arch/arm64/boot/dts/amlogic/tm2_t962e2_ab311.dts
	sound/soc/amlogic/auge/spdif.c
2019-07-23 17:52:49 +09:00
yujie.wu
cf2fbdeaa0 audio: Add HBR audio info for HDMI input [2/3]
PD#SWPL-3435

Problem:
  P321 doesn't support DTS HD decoding

Solution:
  In HDMI RX module, we add a new field to
  indicate whether the input audio is HBR.
  With this info, hal can enable the PAO
  mode  to decode the HBR audio.

Verify:
  P321

Change-Id: I6fd180e6636905f5119fe1d313214d4b56d07d5e
Signed-off-by: yujie.wu <yujie.wu@amlogic.com>

Conflicts:
	drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h
	drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_hw.c
2019-07-23 17:52:49 +09:00
Zongdong Jiao
729b388b1a hdmitx: add dongle_mode case for low power [2/2]
PD#SWPL-5302

Problem:
For dongle products, it is connected to TV directly, and some
parameters are different from mbox.

Solution:
Add dongle mode for driver's usage

Verify:
U211/S905Y2

Change-Id: Ibe45b167800d3b830d78ca8e9d7b67efd64d8564
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>

Conflicts:
	drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hw_g12a.c
2019-07-23 17:52:49 +09:00
Zongdong Jiao
625f488cb0 hdmitx: rename HDMI_IEEE_OUI to avoid conflicts [1/1]
PD#SWPL-4705

Problem:
In 61207 patch, the define HDMI_IEEE_OUI is conflicted with the kernel
head file include/linux/hdmi.h

Solution:
rename HDMI_IEEE_OUI

Verify:
GXL/P212

Change-Id: I75a12734e85478f22edf0b48636ed86e60302b58
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>

Conflicts:
	drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
2019-07-23 17:52:49 +09:00
Zongdong Jiao
c51d9a2be3 hdmitx: add auto low latency mode(ALLM) [1/1]
PD#SWPL-4705

Problem:
Lack ALLM function

Solution:
Add ALLM function

Verify:
GXL/P212
If Rx supports ALLM, then
echo 1 > /sys/class/amhdmitx/amhdmitx0/allm_mode
otherwise it will set failed, cat allm_mode and will get 0.

Change-Id: I00233e5a5aac133b405590e7df78c7c4805ed0ef
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>

Conflicts:
	drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
2019-07-23 17:52:49 +09:00
Brian Zhu
8a0cfce510 vpp: add two layers support for each chips [1/6]
PD#SWPL-85

Problem:
Need support two video layers feature

Solution:
1.Add vd2 mif config
2.Add vd2 pps calculation and config
3.Add vd2 axis/crop/screen mode interface by sysfs and ioctl
4.Add layer query/alloc/free interface

Verify:
Verify on U212

Change-Id: I71fc9ab2ae0230c3e84c4b790e77d2c790951642
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

Conflicts:
	drivers/amlogic/media/video_sink/video.c
	drivers/amlogic/media/video_sink/video_keeper.c
	drivers/amlogic/media/video_sink/video_priv.h
	drivers/amlogic/media/video_sink/vpp.c
	include/linux/amlogic/media/video_sink/video.h
	include/linux/amlogic/media/video_sink/vpp.h
2019-07-23 17:52:49 +09:00
Evoke Zhang
2968992a4b lcd: optimize unifykey read flow to avoid crash [1/1]
PD#SWPL-4682

Problem:
lcd wait unifykey init timeout and read unifykey will crash

Solution:
incrase wait unifykey init time, and add read protection

Verify:
x301

Change-Id: Ib86a2b3b0c6c1491606404358420fd213dcfdaa8
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>

Conflicts:
	drivers/amlogic/media/vout/lcd/lcd_common.h
	drivers/amlogic/media/vout/lcd/lcd_tcon.c
	drivers/amlogic/media/vout/lcd/lcd_vout.c
2019-07-23 17:52:49 +09:00
Evoke Zhang
91c95b3e09 lcd: optimize tcon type for extensible usage [1/1]
PD#SWPL-3957

Problem:
tcon_type need extensible usage for special case

Solution:
tcon_type change to hex value

Verify:
x301

Change-Id: I26cb58ffc1cd2f525c8cf0f7c08b0d9cf66766e5
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesontl1_skt-panel.dtsi
	arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi
	arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi
	arch/arm64/boot/dts/amlogic/mesontl1_skt-panel.dtsi
	arch/arm64/boot/dts/amlogic/mesontl1_t309-panel.dtsi
	arch/arm64/boot/dts/amlogic/mesontl1_x301-panel.dtsi
	drivers/amlogic/media/vout/lcd/lcd_debug.c
	include/linux/amlogic/media/vout/lcd/lcd_vout.h
2019-07-23 17:52:49 +09:00
Evoke Zhang
199e697b7f backlight: ldim: add analog pwm support [1/1]
PD#SWPL-3702

Problem:
local dimming need analog pwm function

Solution:
add analog pwm support

Verify:
x301

Change-Id: I502bb7505947c1f3670f44d0d307f9546f1d57fd
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>

Conflicts:
	arch/arm/boot/dts/amlogic/mesontl1_t309-panel.dtsi
	arch/arm/boot/dts/amlogic/mesontl1_x301-panel.dtsi
	arch/arm/boot/dts/amlogic/mesontxlx_r311-panel.dtsi
	arch/arm64/boot/dts/amlogic/mesontl1_t309-panel.dtsi
	arch/arm64/boot/dts/amlogic/mesontl1_x301-panel.dtsi
	drivers/amlogic/media/vout/backlight/aml_ldim/ldim_dev_drv.c
	drivers/amlogic/media/vout/backlight/aml_ldim/ldim_drv.h
	include/linux/amlogic/media/vout/lcd/aml_ldim.h
2019-07-23 17:52:49 +09:00
Yong Qin
dfa3a8a79c vlock: screen flash after PAL NTSC swich [1/1]
PD#SWPL-4246

Problem:
the screen always flash after switch PAL to NTSC in AVin

Solution:
do not change pll M value, M value will case v by one fail

Verify:
verified on tl1 android p

Change-Id: Ib5ea8dfef1c40af5535e69fdc9241a7f77b4a7dd
Signed-off-by: Yong Qin <yong.qin@amlogic.com>

Conflicts:
	drivers/amlogic/media/enhancement/amvecm/amvecm.c
	drivers/amlogic/media/enhancement/amvecm/vlock.c
	drivers/amlogic/media/enhancement/amvecm/vlock.h
2019-07-23 17:52:49 +09:00
Evoke Zhang
6d4a452b14 backlight: ldim: add dev reg access api support [1/1]
PD#TV-1481

Problem:
need ldim_dev reg access uniform api

Solution:
add ldim_dev reg access uniform api

Verify:
x301

Change-Id: I72756d178ef70aac1f8b7fef842468f2e27a0ffe
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>

Conflicts:
	drivers/amlogic/media/vout/backlight/aml_ldim/ldim_dev_drv.c
	include/linux/amlogic/media/vout/lcd/aml_ldim.h
2019-07-23 17:52:49 +09:00
Shaochan Liu
fd04ea8e4c lcd: optimize bit_rate config in lcd driver [2/2]
PD#SWPL-3562

Problem:
optimize bit_rate config in lcd driver

Solution:
optimize bit_rate config in lcd driver

Verify:
verify by t962x2-x301

Change-Id: Ia804628aa60590f4311ece394ddacc08ca64d573
Signed-off-by: Shaochan Liu <shaochan.liu@amlogic.com>

Conflicts:
	drivers/amlogic/media/vout/lcd/lcd_clk_config.c
	drivers/amlogic/media/vout/lcd/lcd_debug.c
	drivers/amlogic/media/vout/lcd/lcd_tv/lcd_drv.c
	drivers/amlogic/media/vout/lcd/lcd_vout.c
	include/linux/amlogic/media/vout/lcd/lcd_vout.h
2019-07-23 17:52:49 +09:00
Evoke Zhang
1aac63619d lcd: update lvds,vbyone,p2p config [1/1]
PD#172587

Problem:
lcd not work on real chip

Solution:
update pll, phy and channel_swap config

Verify:
skt

Change-Id: I737f7c253697ed281050ad9606cbf7d86a4b2e39
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>

Conflicts:
	MAINTAINERS
	arch/arm/boot/dts/amlogic/mesontl1_skt-panel.dtsi
2019-07-23 17:52:49 +09:00
Zongdong Jiao
08f2b392f6 hdmitx: move work_internal_intr to delayed_work [1/1]
PD#SWPL-6894

Problem:
Queue work 'work_internal_intr' cause the hdcp22 flicker

Solution:
Move work_internal_intr to delayed_work

Verify:
G12/U212

Change-Id: Ib05c82bb66c9ad7396790d5eb237ff486c56c980
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
2019-07-23 17:52:49 +09:00
Jianxin Pan
5a78b7ca54 debug: save irqflag locally when ftrace_ramoops io [1/1]
PD#SWPL-6028

Problem:
save irqflag locally when ftrace_ramoops io

Solution:
save irqflag locally when ftrace_ramoops io

Verify:
TL1 x301

Change-Id: I6df9700cceaccc97dc983d88ada73197a6968f73
Signed-off-by: Jianxin Pan <jianxin.pan@amlogic.com>
2019-07-23 17:52:49 +09:00