projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c044e86
)
drm/msm: Use the correct dma_sync calls harder
author
Rob Clark
<robdclark@chromium.org>
Wed, 4 Sep 2019 16:56:03 +0000
(09:56 -0700)
committer
Rob Clark
<robdclark@chromium.org>
Wed, 4 Sep 2019 17:05:05 +0000
(10:05 -0700)
Looks like the dma_sync calls don't do what we want on armv7 either.
Fixes:
Unable to handle kernel paging request at virtual address
50001000
pgd = (ptrval)
[
50001000
] *pgd=
00000000
Internal error: Oops: 805 [#1] SMP ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted
5.3.0-rc6-00271-g9f159ae07f07
#4
Hardware name: Freescale i.MX53 (Device Tree Support)
PC is at v7_dma_clean_range+0x20/0x38
LR is at __dma_page_cpu_to_dev+0x28/0x90
pc : [<
c011c76c
>] lr : [<
c01181c4
>] psr:
20000013
sp :
d80b5a88
ip :
de96c000
fp :
d840ce6c
r10:
00000000
r9 :
00000001
r8 :
d843e010
r7 :
00000000
r6 :
00008000
r5 :
ddb6c000
r4 :
00000000
r3 :
0000003f
r2 :
00000040
r1 :
50008000
r0 :
50001000
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
Control:
10c5387d
Table:
70004019
DAC:
00000051
Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
Signed-off-by: Rob Clark <robdclark@chromium.org>
Fixes: 3de433c5b38a ("drm/msm: Use the correct dma_sync calls in msm_gem")
Tested-by: Fabio Estevam <festevam@gmail.com>
drivers/gpu/drm/msm/msm_gem.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/msm/msm_gem.c
b/drivers/gpu/drm/msm/msm_gem.c
index 7263f4373f07c9b9899c55f4a60a6142905d914e..5a6a79fbc9d6e9afd90b7a3a1cf156d0afc6e27c 100644
(file)
--- a/
drivers/gpu/drm/msm/msm_gem.c
+++ b/
drivers/gpu/drm/msm/msm_gem.c
@@
-52,7
+52,7
@@
static void sync_for_device(struct msm_gem_object *msm_obj)
{
struct device *dev = msm_obj->base.dev->dev;
- if (get_dma_ops(dev)) {
+ if (get_dma_ops(dev)
&& IS_ENABLED(CONFIG_ARM64)
) {
dma_sync_sg_for_device(dev, msm_obj->sgt->sgl,
msm_obj->sgt->nents, DMA_BIDIRECTIONAL);
} else {
@@
-65,7
+65,7
@@
static void sync_for_cpu(struct msm_gem_object *msm_obj)
{
struct device *dev = msm_obj->base.dev->dev;
- if (get_dma_ops(dev)) {
+ if (get_dma_ops(dev)
&& IS_ENABLED(CONFIG_ARM64)
) {
dma_sync_sg_for_cpu(dev, msm_obj->sgt->sgl,
msm_obj->sgt->nents, DMA_BIDIRECTIONAL);
} else {