mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
drm/v3d/v3d_drv: Check for error num after setting mask
[ Upstream commit4a39156166] Because of the possible failure of the dma_supported(), the dma_set_mask_and_coherent() may return error num. Therefore, it should be better to check it and return the error if fails. Also, we can create a variable for the mask to solve the alignment issue. Fixes:334dd38a38("drm/v3d: Set dma_mask as well as coherent_dma_mask") Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> Reviewed-by: Melissa Wen <mwen@igalia.com> Signed-off-by: Melissa Wen <melissa.srw@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220110013807.4105270-1-jiasheng@iscas.ac.cn Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
982d824a9b
commit
2ff993b3da
@@ -221,6 +221,7 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
|
||||
int ret;
|
||||
u32 mmu_debug;
|
||||
u32 ident1;
|
||||
u64 mask;
|
||||
|
||||
|
||||
v3d = devm_drm_dev_alloc(dev, &v3d_drm_driver, struct v3d_dev, drm);
|
||||
@@ -240,8 +241,11 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
|
||||
mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
|
||||
dma_set_mask_and_coherent(dev,
|
||||
DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH)));
|
||||
mask = DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH));
|
||||
ret = dma_set_mask_and_coherent(dev, mask);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);
|
||||
|
||||
ident1 = V3D_READ(V3D_HUB_IDENT1);
|
||||
|
||||
Reference in New Issue
Block a user