[PATCH 2/2] drm/radeon: add new info ioctl query for hawaii accel

Christian König deathsimple at vodafone.de
Fri Jul 25 02:30:55 PDT 2014


Am 25.07.2014 um 05:05 schrieb Alex Deucher:
> On Thu, Jul 24, 2014 at 10:24 PM, Michel Dänzer <michel at daenzer.net> wrote:
>> On 25.07.2014 11:06, Michel Dänzer wrote:
>>> On 25.07.2014 11:05, Michel Dänzer wrote:
>>>> On 25.07.2014 08:51, Alex Deucher wrote:
>>>>> We need to make sure we have a new enough firmware with
>>>>> the fixed nop packet.
>>>>>
>>>>> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
>>>>> ---
>>>>>   drivers/gpu/drm/radeon/radeon_kms.c | 6 ++++++
>>>>>   include/uapi/drm/radeon_drm.h       | 1 +
>>>>>   2 files changed, 7 insertions(+)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
>>>>> index 35d9318..3ea9f59 100644
>>>>> --- a/drivers/gpu/drm/radeon/radeon_kms.c
>>>>> +++ b/drivers/gpu/drm/radeon/radeon_kms.c
>>>>> @@ -529,6 +529,12 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file
>>>>>              else
>>>>>                      *value = 1;
>>>>>              break;
>>>>> +   case RADEON_INFO_HAWAII_ACCEL:
>>>>> +           if (rdev->new_fw)
>>>>> +                   *value = 1;
>>>>> +           else
>>>>> +                   *value = 0;
>>>>> +           break;
>>>>>      default:
>>>>>              DRM_DEBUG_KMS("Invalid request %d\n", info->request);
>>>>>              return -EINVAL;
>>>>> diff --git a/include/uapi/drm/radeon_drm.h b/include/uapi/drm/radeon_drm.h
>>>>> index 509b2d7..a41dec3 100644
>>>>> --- a/include/uapi/drm/radeon_drm.h
>>>>> +++ b/include/uapi/drm/radeon_drm.h
>>>>> @@ -1010,6 +1010,7 @@ struct drm_radeon_cs {
>>>>>   #define RADEON_INFO_VRAM_USAGE             0x1e
>>>>>   #define RADEON_INFO_GTT_USAGE              0x1f
>>>>>   #define RADEON_INFO_ACTIVE_CU_COUNT        0x20
>>>>> +#define RADEON_INFO_HAWAII_ACCEL   0x21
>>>>>
>>>>>   struct drm_radeon_info {
>>>>>      uint32_t                request;
>>>>>
>>>> Please make the RADEON_INFO_ACCEL_WORKING(2) ioctl do the right thing
>>>> for Hawaii instead of adding yet another one.
>>> Ugh, s/ioctl/info query/ of course.
>> Hmm, I guess that doesn't work because older kernels returned 1 for
>> those on Hawaii...
> Right.  The hawaii problems came down to two things:
>
> 1. missing tiling info setup (fixed with Jerome's patch:
> http://cgit.freedesktop.org/~agd5f/linux/commit/?h=drm-next-3.17-wip&id=78e758aa27d9d430c61999160ddf72e829c5cf26)
> for hawaii.  This was due to merging hawaii support after we fixed up
> CI tiling.  Dave already merged this and it should show up in stable.
>
> 2. The current Hawaii CP firmware doesn't support the special case
> 0xffff1000 type 3 NOP packet.  The newer firmware version I added
> support for in 3.17 supports this packet.
>
> So we can either patch mesa to use the type 2 packets for now and
> allow it to work with kernels with older firmware.  The problem is the
> compute rings don't support type 2 packets anymore and they are
> deprecated on gfx, plus we'd still have to deal with existing versions
> of mesa that still use the problematic packet.
>
> It just seemed easier to add a new kernel check.

Can we still make the check a bit more generic? E.g. not so HAWAII 
specific name and maybe returning more information from the new firmware 
header?

Something like this,
Christian.

>
> Alex
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel



More information about the dri-devel mailing list