mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
9fd9fb1e7bd1635289e53f1aeeac835d8a55dee0
It will cause an error when use memcpy(), so use for(;;) instead, and
need find out the root cause later.
For upstream reference: 76f1416e64 ("drm/rockchip: Do not use memcpy for
MMIO addresses")
For px30, the reg len is 0x1fc, this will trigger a none 8 byte alignment
address in _memcpy.
Error log when use memcpy() as below:
vop_power_enable regsbak: 0xffffff80050ad040 regs: 0xffffffc00a85d000 len: 0x1fc
Unable to handle kernel paging request at virtual address ffffffc00a55d1bc
Mem abort info:
ESR = 0x0000000096000021
EC = 0x25: DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
FSC = 0x21: alignment fault
Data abort info:
ISV = 0, ISS = 0x00000021
CM = 0, WnR = 0
swapper pgtable: 4k pages, 39-bit VAs, pgdp=0000000001cc4000
[ffffffc00a55d1bc] pgd=100000007ffff003, p4d=100000007ffff003, pud=100000007ffff003, pmd=1000000002d7c003, pte=00680000ff460713
Internal error: Oops: 0000000096000021 [#1] PREEMPT SMP
Modules linked in:
CPU: 2 PID: 112 Comm: recovery Not tainted 6.1.25 #1091
Hardware name: Rockchip PX30 evb ddr3 board (DT)
pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : __memcpy+0x168/0x250
lr : vop_initial+0x218/0x9e8
sp : ffffffc00ab1b920
x29: ffffffc00ab1b920 x28: 000000000000032a x27: ffffff8006611780
x26: ffffff80033f3c00 x25: ffffffc00994d6ac x24: ffffff8002eae010
x23: ffffff80033f3c18 x22: 00000000000002d0 x21: ffffff8004938100
x20: ffffffc009979341 x19: ffffff8004ae0040 x18: ffffffffffffffff
x17: 0000000000000000 x16: 00000000000000c0 x15: 0000000000000004
x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000
x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0000080000000000
x5 : ffffff8005e0ca3c x4 : ffffffc00a55d1fc x3 : ffffff8005e0c9c0
x2 : ffffffffffffffec x1 : ffffffc00a55d1c0 x0 : ffffff8005e0c840
Call trace:
__memcpy+0x168/0x250
vop_crtc_atomic_enable+0x120/0x2c30
drm_atomic_helper_commit_modeset_enables+0x50/0x268
rockchip_drm_atomic_helper_commit_tail_rpm+0x48/0x190
commit_tail+0x108/0x1f4
drm_atomic_helper_commit+0x204/0x220
drm_atomic_commit+0xa0/0xc8
drm_atomic_helper_set_config+0x60/0xdc
drm_mode_setcrtc+0x29c/0x6cc
drm_ioctl+0x248/0x3b8
drm_compat_ioctl+0xd8/0xe8
__arm64_compat_sys_ioctl+0x14c/0x168
invoke_syscall+0x3c/0xfc
el0_svc_common+0xb8/0x160
do_el0_svc_compat+0x18/0x20
el0_svc_compat+0x24/0x8c
el0t_32_sync_handler+0x70/0xa8
el0t_32_sync+0x17c/0x180
Change-Id: I4e13298e66797df39233b91a3163c156a4e175bc
Signed-off-by: Liang Chen <cl@rock-chips.com>
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
Linux kernel
============
There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.
In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``. The formatted documentation can also be read online at:
https://www.kernel.org/doc/html/latest/
There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.
Description
Languages
C
97.7%
Assembly
1.6%
Makefile
0.3%
Perl
0.1%