From a691fe095b02823e60a076ec593b9fcec7723cc8 Mon Sep 17 00:00:00 2001 From: SuperKali Date: Sat, 8 Mar 2025 14:14:46 +0100 Subject: [PATCH] rockchip64-6.14: Set dma mask to 64 bit (#7924) --- ...-drm-rockchip-Set-dma-mask-to-64-bit.patch | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 patch/kernel/archive/rockchip64-6.14/general-drm-rockchip-Set-dma-mask-to-64-bit.patch diff --git a/patch/kernel/archive/rockchip64-6.14/general-drm-rockchip-Set-dma-mask-to-64-bit.patch b/patch/kernel/archive/rockchip64-6.14/general-drm-rockchip-Set-dma-mask-to-64-bit.patch new file mode 100644 index 0000000000..7ce7354e6e --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.14/general-drm-rockchip-Set-dma-mask-to-64-bit.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: SuperKali +Date: Fri, 7 Mar 2025 15:06:42 +0000 +Subject: drm/rockchip: Set dma mask to 64 bit + +The vop mmu support translate physical address upper 4 GB to iova +below 4 GB. So set dma mask to 64 bit to indicate we support address +> 4GB. + +This can avoid warnging message like this on some boards with DDR +> 4 GB: + +rockchip-drm display-subsystem: swiotlb buffer is full (sz: 266240 bytes), total 32768 (slots), used 130 (slots) +rockchip-drm display-subsystem: swiotlb buffer is full (sz: 266240 bytes), total 32768 (slots), used 0 (slots) +rockchip-drm display-subsystem: swiotlb buffer is full (sz: 266240 bytes), total 32768 (slots), used 130 (slots) +rockchip-drm display-subsystem: swiotlb buffer is full (sz: 266240 bytes), total 32768 (slots), used 130 (slots) +rockchip-drm display-subsystem: swiotlb buffer is full (sz: 266240 bytes), total 32768 (slots), used 0 (slots) +--- + drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c ++++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +@@ -472,7 +472,9 @@ static int rockchip_drm_platform_probe(struct platform_device *pdev) + return ret; + } + +- return 0; ++ ret = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(64)); ++ ++ return ret; + } + + static void rockchip_drm_platform_remove(struct platform_device *pdev) +-- +Armbian +