Loading drivers/gpu/msm/adreno.c +3 −0 Original line number Diff line number Diff line Loading @@ -1440,6 +1440,9 @@ static int adreno_probe(struct platform_device *pdev) if (adreno_support_64bit(adreno_dev)) device->mmu.features |= KGSL_MMU_64BIT; if (adreno_is_a6xx(adreno_dev)) device->mmu.features |= KGSL_MMU_SMMU_APERTURE; device->pwrctrl.bus_width = adreno_dev->gpucore->bus_width; status = kgsl_device_platform_probe(device); Loading drivers/gpu/msm/kgsl_iommu.c +4 −4 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2011-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2011-2020, The Linux Foundation. All rights reserved. */ #include <linux/compat.h> Loading Loading @@ -1203,8 +1203,8 @@ static int _init_global_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt) goto done; } if (!MMU_FEATURE(mmu, KGSL_MMU_GLOBAL_PAGETABLE) && scm_is_call_available(SCM_SVC_MP, CP_SMMU_APERTURE_ID)) { if (kgsl_mmu_is_perprocess(mmu) && MMU_FEATURE(mmu, KGSL_MMU_SMMU_APERTURE)) { struct scm_desc desc = {0}; desc.args[0] = 0xFFFF0000 | ((CP_APERTURE_REG & 0xff) << 8) | Loading @@ -1222,7 +1222,7 @@ static int _init_global_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt) dev_err(device->dev, "SMMU aperture programming call failed with error %d\n", ret); return ret; goto done; } } Loading drivers/gpu/msm/kgsl_mmu.h +3 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2002,2007-2020, The Linux Foundation. All rights reserved. */ #ifndef __KGSL_MMU_H #define __KGSL_MMU_H Loading Loading @@ -135,6 +135,8 @@ struct kgsl_mmu_pt_ops { #define KGSL_MMU_NEED_GUARD_PAGE BIT(9) /* The device supports IO coherency */ #define KGSL_MMU_IO_COHERENT BIT(10) /* The device supports aperture programming from secure world */ #define KGSL_MMU_SMMU_APERTURE BIT(11) /** * struct kgsl_mmu - Master definition for KGSL MMU devices Loading Loading
drivers/gpu/msm/adreno.c +3 −0 Original line number Diff line number Diff line Loading @@ -1440,6 +1440,9 @@ static int adreno_probe(struct platform_device *pdev) if (adreno_support_64bit(adreno_dev)) device->mmu.features |= KGSL_MMU_64BIT; if (adreno_is_a6xx(adreno_dev)) device->mmu.features |= KGSL_MMU_SMMU_APERTURE; device->pwrctrl.bus_width = adreno_dev->gpucore->bus_width; status = kgsl_device_platform_probe(device); Loading
drivers/gpu/msm/kgsl_iommu.c +4 −4 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2011-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2011-2020, The Linux Foundation. All rights reserved. */ #include <linux/compat.h> Loading Loading @@ -1203,8 +1203,8 @@ static int _init_global_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt) goto done; } if (!MMU_FEATURE(mmu, KGSL_MMU_GLOBAL_PAGETABLE) && scm_is_call_available(SCM_SVC_MP, CP_SMMU_APERTURE_ID)) { if (kgsl_mmu_is_perprocess(mmu) && MMU_FEATURE(mmu, KGSL_MMU_SMMU_APERTURE)) { struct scm_desc desc = {0}; desc.args[0] = 0xFFFF0000 | ((CP_APERTURE_REG & 0xff) << 8) | Loading @@ -1222,7 +1222,7 @@ static int _init_global_pt(struct kgsl_mmu *mmu, struct kgsl_pagetable *pt) dev_err(device->dev, "SMMU aperture programming call failed with error %d\n", ret); return ret; goto done; } } Loading
drivers/gpu/msm/kgsl_mmu.h +3 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2002,2007-2020, The Linux Foundation. All rights reserved. */ #ifndef __KGSL_MMU_H #define __KGSL_MMU_H Loading Loading @@ -135,6 +135,8 @@ struct kgsl_mmu_pt_ops { #define KGSL_MMU_NEED_GUARD_PAGE BIT(9) /* The device supports IO coherency */ #define KGSL_MMU_IO_COHERENT BIT(10) /* The device supports aperture programming from secure world */ #define KGSL_MMU_SMMU_APERTURE BIT(11) /** * struct kgsl_mmu - Master definition for KGSL MMU devices Loading