Alex, Christian, et al. Thanks for your rapid response! I can certainly make the change PPC-only (#ifdef CONFIG_PPC64...) and I think that's the safest way to go right now. It makes the patch very specific to Cedar on PowerPC64, so it doesn't break anything that may have come to depend on Russell's and Alistair's changes, and my timetable for getting a fix in is very short. -- Ben On Thu, Feb 22, 2018 at 2:25 AM, Christian König < ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > Am 22.02.2018 um 03:05 schrieb Alex Deucher: > >> On Wed, Feb 21, 2018 at 6:41 PM, Ben Crocker wrote: >> >>> In radeon_device_init, set the need_dma32 flag for Cedar chips >>> (e.g. FirePro 2270). This fixes, or at least works around, a bug >>> on PowerPC exposed by last year's commits >>> >>> 8e3f1b1d8255105f31556aacf8aeb6071b00d469 (Russell Currey) >>> >>> and >>> >>> 253fd51e2f533552ae35a0c661705da6c4842c1b (Alistair Popple) >>> >>> which enabled the 64-bit DMA iommu bypass. >>> >>> This caused the device to freeze, in some cases unrecoverably, and is >>> the subject of several bug reports internal to Red Hat. >>> >> Can we make this ppc only? 40 bit DMA works fine on x86. >> > > Yeah and at least when the dma_coherent allocator path is used it should > work fine on PPC as well. > > So that is not really a driver bug, but a platform bug and we should think > about reverting or at least disabling those two patches instead. > > Christian. > > >> Alex >> >> Signed-off-by: Ben Crocker >>> --- >>> drivers/gpu/drm/radeon/radeon_device.c | 5 ++++- >>> 1 file changed, 4 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/gpu/drm/radeon/radeon_device.c >>> b/drivers/gpu/drm/radeon/radeon_device.c >>> index ffc10cadcf34..02538903830d 100644 >>> --- a/drivers/gpu/drm/radeon/radeon_device.c >>> +++ b/drivers/gpu/drm/radeon/radeon_device.c >>> @@ -1395,7 +1395,10 @@ int radeon_device_init(struct radeon_device *rdev, >>> if (rdev->flags & RADEON_IS_AGP) >>> rdev->need_dma32 = true; >>> if ((rdev->flags & RADEON_IS_PCI) && >>> - (rdev->family <= CHIP_RS740)) >>> + (rdev->family <= CHIP_RS740 || rdev->family == CHIP_CEDAR)) >>> + rdev->need_dma32 = true; >>> + if ((rdev->flags & RADEON_IS_PCIE) && >>> + (rdev->family == CHIP_CEDAR)) >>> rdev->need_dma32 = true; >>> >>> dma_bits = rdev->need_dma32 ? 32 : 40; >>> -- >>> 2.13.6 >>> >>> _______________________________________________ >>> dri-devel mailing list >>> dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org >>> https://lists.freedesktop.org/mailman/listinfo/dri-devel >>> >> _______________________________________________ >> amd-gfx mailing list >> amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org >> https://lists.freedesktop.org/mailman/listinfo/amd-gfx >> > >