Am 29.11.2017 um 16:23 schrieb Oded Gabbay: > VMIDs 8-16 in Kaveri were reserved for use by the amdkfd driver. > Because we removed amdkfd support from radeon, those VMIDs are now > used by radeon and are initialized by radeon. > > This patch removes the function that initialized those VMIDs for amdkfd > use. > This initialization overridden the radeon initialization and caused GPU > faults and GUI crashed. > > This bug was found by Michel Dänzer. > > Signed-off-by: Oded Gabbay <oded.gabbay at gmail.com> Acked-by: Christian König <christian.koenig at amd.com> > --- > drivers/gpu/drm/radeon/cik.c | 24 ------------------------ > 1 file changed, 24 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c > index 898f9a0..a651191 100644 > --- a/drivers/gpu/drm/radeon/cik.c > +++ b/drivers/gpu/drm/radeon/cik.c > @@ -5451,28 +5451,6 @@ void cik_pcie_gart_tlb_flush(struct radeon_device *rdev) > WREG32(VM_INVALIDATE_REQUEST, 0x1); > } > > -static void cik_pcie_init_compute_vmid(struct radeon_device *rdev) > -{ > - int i; > - uint32_t sh_mem_bases, sh_mem_config; > - > - sh_mem_bases = 0x6000 | 0x6000 << 16; > - sh_mem_config = ALIGNMENT_MODE(SH_MEM_ALIGNMENT_MODE_UNALIGNED); > - sh_mem_config |= DEFAULT_MTYPE(MTYPE_NONCACHED); > - > - mutex_lock(&rdev->srbm_mutex); > - for (i = 8; i < 16; i++) { > - cik_srbm_select(rdev, 0, 0, 0, i); > - /* CP and shaders */ > - WREG32(SH_MEM_CONFIG, sh_mem_config); > - WREG32(SH_MEM_APE1_BASE, 1); > - WREG32(SH_MEM_APE1_LIMIT, 0); > - WREG32(SH_MEM_BASES, sh_mem_bases); > - } > - cik_srbm_select(rdev, 0, 0, 0, 0); > - mutex_unlock(&rdev->srbm_mutex); > -} > - > /** > * cik_pcie_gart_enable - gart enable > * > @@ -5586,8 +5564,6 @@ static int cik_pcie_gart_enable(struct radeon_device *rdev) > cik_srbm_select(rdev, 0, 0, 0, 0); > mutex_unlock(&rdev->srbm_mutex); > > - cik_pcie_init_compute_vmid(rdev); > - > cik_pcie_gart_tlb_flush(rdev); > DRM_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n", > (unsigned)(rdev->mc.gtt_size >> 20),