<div dir="ltr"><div><div>I considered that, but I'm only equipped to test on a few cards--the ones IBM is interested in.<br></div>So this Cedar-specific change fixes the problem on the FirePro 2270; the other cards seem</div><div>perfectly capable of handling 40+ bit DMA addresses on the Power8 platform.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 22, 2018 at 11:07 AM, Alex Deucher <span dir="ltr"><<a href="mailto:alexdeucher@gmail.com" target="_blank">alexdeucher@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Feb 22, 2018 at 10:55 AM, Ben Crocker <<a href="mailto:bcrocker@redhat.com">bcrocker@redhat.com</a>> wrote:<br>
> Alex, Christian, et al.<br>
><br>
> Thanks for your rapid response!<br>
><br>
> I can certainly make the change PPC-only (#ifdef CONFIG_PPC64...) and I<br>
> think<br>
> that's the safest way to go right now.  It makes the patch very specific to<br>
> Cedar<br>
> on PowerPC64, so it doesn't break anything that may have come to depend on<br>
> Russell's and Alistair's changes, and my timetable for getting a fix in is<br>
> very short.<br>
<br>
</span>If you want to go this route, you might just set need_dma32<br>
unconditionally for PPC64.  The bus interface hw is pretty much the<br>
same across all asics in this time period.<br>
<span class="HOEnZb"><font color="#888888"><br>
Alex<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
><br>
> -- Ben<br>
><br>
><br>
><br>
> On Thu, Feb 22, 2018 at 2:25 AM, Christian König<br>
> <<a href="mailto:ckoenig.leichtzumerken@gmail.com">ckoenig.leichtzumerken@gmail.<wbr>com</a>> wrote:<br>
>><br>
>> Am 22.02.2018 um 03:05 schrieb Alex Deucher:<br>
>>><br>
>>> On Wed, Feb 21, 2018 at 6:41 PM, Ben Crocker <<a href="mailto:bcrocker@redhat.com">bcrocker@redhat.com</a>> wrote:<br>
>>>><br>
>>>> In radeon_device_init, set the need_dma32 flag for Cedar chips<br>
>>>> (e.g. FirePro 2270).  This fixes, or at least works around, a bug<br>
>>>> on PowerPC exposed by last year's commits<br>
>>>><br>
>>>> 8e3f1b1d8255105f31556aacf8aeb6<wbr>071b00d469 (Russell Currey)<br>
>>>><br>
>>>> and<br>
>>>><br>
>>>> 253fd51e2f533552ae35a0c661705d<wbr>a6c4842c1b (Alistair Popple)<br>
>>>><br>
>>>> which enabled the 64-bit DMA iommu bypass.<br>
>>>><br>
>>>> This caused the device to freeze, in some cases unrecoverably, and is<br>
>>>> the subject of several bug reports internal to Red Hat.<br>
>>><br>
>>> Can we make this ppc only?  40 bit DMA works fine on x86.<br>
>><br>
>><br>
>> Yeah and at least when the dma_coherent allocator path is used it should<br>
>> work fine on PPC as well.<br>
>><br>
>> So that is not really a driver bug, but a platform bug and we should think<br>
>> about reverting or at least disabling those two patches instead.<br>
>><br>
>> Christian.<br>
>><br>
>>><br>
>>> Alex<br>
>>><br>
>>>> Signed-off-by: Ben Crocker <<a href="mailto:bcrocker@redhat.com">bcrocker@redhat.com</a>><br>
>>>> ---<br>
>>>>   drivers/gpu/drm/radeon/radeon_<wbr>device.c | 5 ++++-<br>
>>>>   1 file changed, 4 insertions(+), 1 deletion(-)<br>
>>>><br>
>>>> diff --git a/drivers/gpu/drm/radeon/<wbr>radeon_device.c<br>
>>>> b/drivers/gpu/drm/radeon/<wbr>radeon_device.c<br>
>>>> index ffc10cadcf34..02538903830d 100644<br>
>>>> --- a/drivers/gpu/drm/radeon/<wbr>radeon_device.c<br>
>>>> +++ b/drivers/gpu/drm/radeon/<wbr>radeon_device.c<br>
>>>> @@ -1395,7 +1395,10 @@ int radeon_device_init(struct radeon_device<br>
>>>> *rdev,<br>
>>>>          if (rdev->flags & RADEON_IS_AGP)<br>
>>>>                  rdev->need_dma32 = true;<br>
>>>>          if ((rdev->flags & RADEON_IS_PCI) &&<br>
>>>> -           (rdev->family <= CHIP_RS740))<br>
>>>> +           (rdev->family <= CHIP_RS740 || rdev->family == CHIP_CEDAR))<br>
>>>> +               rdev->need_dma32 = true;<br>
>>>> +       if ((rdev->flags & RADEON_IS_PCIE) &&<br>
>>>> +           (rdev->family == CHIP_CEDAR))<br>
>>>>                  rdev->need_dma32 = true;<br>
>>>><br>
>>>>          dma_bits = rdev->need_dma32 ? 32 : 40;<br>
>>>> --<br>
>>>> 2.13.6<br>
>>>><br>
>>>> ______________________________<wbr>_________________<br>
>>>> dri-devel mailing list<br>
>>>> <a href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.<wbr>org</a><br>
>>>> <a href="https://lists.freedesktop.org/mailman/listinfo/dri-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/dri-devel</a><br>
>>><br>
>>> ______________________________<wbr>_________________<br>
>>> amd-gfx mailing list<br>
>>> <a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
>>> <a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/amd-gfx</a><br>
>><br>
>><br>
><br>
______________________________<wbr>_________________<br>
amd-gfx mailing list<br>
<a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/amd-gfx</a><br>
</div></div></blockquote></div><br></div>