1. To get logic address more stable, we ping 3 times to each
logic address. If the result is NACK for two times, this
logic address is not occupied.
2. If transmmit cec data failed, retry immediately.
4. set CECOP_IMAGE_VIEW_ON only taget to TV, not broadcasting.
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
Unable to handle kernel paging request at virtual address 40ce80f8
pgd = ffffffc001022000
[40ce80f8] *pgd=0000000025b19003, *pmd=000000001cb1f003, *pte=0000000000000000
Internal error: Oops: 96000005 [#1] PREEMPT SMP
Modules linked in: pvrsrvkm(O) drmboot(PO)
CPU: 7 PID: 2558 Comm: kworker/u16:1 Tainted: P W O 3.10.0 #66
Workqueue: hdmi-ff980000.hdmi hdmi_work_queue
task: ffffffc01ca83f00 ti: ffffffc033e00000 task.ti: ffffffc033e00000
PC is at hdmi_wq_insert+0xa4/0x2ac
LR is at hdmi_wq_insert+0x74/0x2ac
pc : [<ffffffc000341014>] lr : [<ffffffc000340fe4>] pstate: 60000145
Use inline fuction hdmi_destroy_modelist replace fb_destroy_modelist.
For unkown reason, variable struct hdmi *hdmi is deferent before and
after calling fb_destroy_modelist.
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
Application should read /sys/class/display/HDMI/audioinfo
to detect sink device support audio or not.
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
If one process calls sys_reboot and that process then stops other
CPUs while those CPUs are within a spin_lock() region we can
potentially encounter a deadlock scenario like below.
CPU 0 CPU 1
----- -----
spin_lock(my_lock)
smp_send_stop()
<send IPI> handle_IPI()
disable_preemption/irqs
while(1);
<PREEMPT>
spin_lock(my_lock) <--- Waits forever
We shouldn't attempt to run any other tasks after we send a stop
IPI to a CPU so disable preemption so that this task runs to
completion. We use local_irq_disable() here for cross-arch
consistency with x86.
Based-on-work-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Arun KS <getarunks@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit b9acc49ee9)
Conflicts:
arch/arm64/kernel/process.c
This patch ports most of commit 19ab428f4b "ARM: 7759/1: decouple CPU
offlining from reboot/shutdown" by Stephen Warren from arch/arm to
arch/arm64.
machine_shutdown() is a hook for kexec. Add a comment saying so, since
it isn't obvious from the function name.
Halt, power-off, and restart have different requirements re: stopping
secondary CPUs than kexec has. The former simply require the secondary
CPUs to be quiesced somehow, whereas kexec requires them to be
completely non-operational, so that no matter where the kexec target
images are written in RAM, they won't influence operation of the
secondary CPUS,which could happen if the CPUs were still executing some
kind of pin loop. To this end, modify machine_halt, power_off, and
restart to call smp_send_stop() directly, rather than calling
machine_shutdown().
In machine_shutdown(), replace the call to smp_send_stop() with a call
to disable_nonboot_cpus(). This completely disables all but one CPU,
thus satisfying the kexec requirements a couple paragraphs above.
Signed-off-by: Arun KS <getarunks@gmail.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 90f51a09ef)