[PATCH] drm/radeon: Disable writeback by default on ppc

Alex Deucher alexdeucher at gmail.com
Tue Dec 10 07:12:10 PST 2013


On Tue, Dec 10, 2013 at 10:04 AM, Alex Deucher <alexdeucher at gmail.com> wrote:
> On Mon, Dec 9, 2013 at 9:20 PM, Michel Dänzer <michel at daenzer.net> wrote:
>> On Mon, 2013-12-09 at 19:48 -0500, Alex Deucher wrote:
>>>
>>> -u32 cik_compute_ring_get_wptr(struct radeon_device *rdev,
>>> -                             struct radeon_ring *ring)
>>> +u32 cik_compute_get_wptr(struct radeon_device *rdev,
>>> +                        struct radeon_ring *ring)
>>>  {
>>>         u32 wptr;
>>>
>>>         if (rdev->wb.enabled) {
>>> -               wptr = le32_to_cpu(rdev->wb.wb[ring->wptr_offs/4]);
>>> +               wptr = rdev->wb.wb[ring->wptr_offs/4];
>>>         } else {
>>>                 mutex_lock(&rdev->srbm_mutex);
>>>                 cik_srbm_select(rdev, ring->me, ring->pipe,
>>> ring->queue, 0);
>>> @@ -4053,8 +4081,8 @@ u32 cik_compute_ring_get_wptr(struct
>>> radeon_device *rdev,
>>>         return wptr;
>>>  }
>>>
>>> -void cik_compute_ring_set_wptr(struct radeon_device *rdev,
>>> -                              struct radeon_ring *ring)
>>> +void cik_compute_set_wptr(struct radeon_device *rdev,
>>> +                         struct radeon_ring *ring)
>>>  {
>>>         rdev->wb.wb[ring->wptr_offs/4] = cpu_to_le32(ring->wptr);
>>
>> I think this cpu_to_le32() needs to be dropped as well to match
>> cik_compute_ring_get_wptr().
>
> whoops, yeah, missed that one.

Updated patch attached.

Alex

>
>>
>>
>>> diff --git a/drivers/gpu/drm/radeon/radeon.h
>>> b/drivers/gpu/drm/radeon/radeon.h
>>> index b1f990d..e7c02a7 100644
>>> --- a/drivers/gpu/drm/radeon/radeon.h
>>> +++ b/drivers/gpu/drm/radeon/radeon.h
>>> @@ -779,13 +779,11 @@ struct radeon_ring {
>>>         volatile uint32_t       *ring;
>>>         unsigned                rptr;
>>>         unsigned                rptr_offs;
>>> -       unsigned                rptr_reg;
>>>         unsigned                rptr_save_reg;
>>>         u64                     next_rptr_gpu_addr;
>>>         volatile u32            *next_rptr_cpu_addr;
>>>         unsigned                wptr;
>>>         unsigned                wptr_old;
>>> -       unsigned                wptr_reg;
>>
>> What's the motivation for removing these? Seems like keeping them would
>> allow keeping this patch and the resulting code smaller (fewer function
>> variants) and cleaner (no if/else/... for the register offsets in the
>> variants).
>
> I was trying to remove the asic specific info out of the ring struct
> and into the asic specific functions.
>
> Alex
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-drm-radeon-remove-generic-rptr-wptr-functions-v2.patch
Type: text/x-diff
Size: 33917 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131210/9860a79a/attachment-0001.patch>


More information about the dri-devel mailing list