From 61756ba5e93d331e904ae22665639a307b86c9bd Mon Sep 17 00:00:00 2001 From: Jianqun Xu Date: Fri, 15 Apr 2022 14:29:42 +0800 Subject: [PATCH] soc: rockchip: rk_dmabuf_procfs fix segment error for dma debug [ 951.963848][ T2104] ------------[ cut here ]------------ [ 951.963901][ T2104] DMA-API: platform dmabuf: mapping sg segment longer than device claims to support [len=262144] [max=65536] [ 951.963936][ T2104] WARNING: CPU: 3 PID: 2104 at kernel/dma/debug.c:1174 debug_dma_map_sg+0x1d4/0x3f8 [ 951.963944][ T2104] Modules linked in: [ 951.963966][ T2104] CPU: 3 PID: 2104 Comm: cat Not tainted 5.10.66 #264 [ 951.963974][ T2104] Hardware name: Rockchip RK3588 EVB1 LP4 V10 Board (DT) [ 951.963987][ T2104] pstate: 60400009 (nZCv daif +PAN -UAO -TCO BTYPE=--) [ 951.963997][ T2104] pc : debug_dma_map_sg+0x1d4/0x3f8 [ 951.964006][ T2104] lr : debug_dma_map_sg+0x1d4/0x3f8 [ 951.964013][ T2104] sp : ffffffc0153bbab0 [ 951.964023][ T2104] x29: ffffffc0153bbad0 x28: ffffff81013abd80 [ 951.964035][ T2104] x27: 000000000000000e x26: 0000000000010000 [ 951.964047][ T2104] x25: ffffffffffffffff x24: ffffff81420a2968 [ 951.964058][ T2104] x23: ffffff814b13dc00 x22: ffffff8104515810 [ 951.964069][ T2104] x21: ffffffc011d7f000 x20: 000000000000000e [ 951.964081][ T2104] x19: ffffffc011b99000 x18: ffffffc01a5e5080 [ 951.964091][ T2104] x17: 0000000000000000 x16: 00000000000000d8 [ 951.964102][ T2104] x15: 0000000000000004 x14: 0000000000003fff Fixes: 61a59410bfe8 ("soc: rockchip: Add a dmabuf procfs for rockchip") Signed-off-by: Jianqun Xu Change-Id: I9eec7b5a1ccefed5a4d7e485cbb2e263ce7da970 --- drivers/soc/rockchip/rk_dmabuf_procfs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/soc/rockchip/rk_dmabuf_procfs.c b/drivers/soc/rockchip/rk_dmabuf_procfs.c index d65d68ea749d..5ac42a6bbbbe 100644 --- a/drivers/soc/rockchip/rk_dmabuf_procfs.c +++ b/drivers/soc/rockchip/rk_dmabuf_procfs.c @@ -132,6 +132,7 @@ static int __init rk_dmabuf_init(void) }; pdev = platform_device_register_full(&dev_info); + dma_set_max_seg_size(&pdev->dev, (unsigned int)DMA_BIT_MASK(64)); dmabuf_dev = pdev ? &pdev->dev : NULL; proc_create_single("rk_dmabuf", 0, NULL, rk_dmabuf_show);