[PATCH] drm/radeon: add ring working query

Alex Deucher alexdeucher at gmail.com
Tue Apr 9 07:26:16 PDT 2013


On Tue, Apr 9, 2013 at 10:13 AM, Jerome Glisse <j.glisse at gmail.com> wrote:
>
> On Tue, Apr 9, 2013 at 8:44 AM, Christian König <deathsimple at vodafone.de> wrote:
>>
>> From: Christian König <christian.koenig at amd.com>
>>
>> Add new ioctl option and bumb minor version number.
>
>
> I already have the tiling patch that bump the version, but i think it's just a matter for Alex.

I'll take care of it.

Alex

>
> Reviewed-by: Jerome Glisse <jglisse at redhat.com>
>
>>
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>>  drivers/gpu/drm/radeon/radeon_drv.c |    2 +-
>>  drivers/gpu/drm/radeon/radeon_kms.c |   17 +++++++++++++++++
>>  include/uapi/drm/radeon_drm.h       |    2 ++
>>  3 files changed, 20 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
>> index 66a7f0f..31b193b 100644
>> --- a/drivers/gpu/drm/radeon/radeon_drv.c
>> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
>> @@ -73,7 +73,7 @@
>>   *   2.30.0 - fix for FMASK texturing
>>   */
>>  #define KMS_DRIVER_MAJOR       2
>> -#define KMS_DRIVER_MINOR       30
>> +#define KMS_DRIVER_MINOR       31
>>  #define KMS_DRIVER_PATCHLEVEL  0
>>  int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
>>  int radeon_driver_unload_kms(struct drm_device *dev);
>> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
>> index 3019759..8cb9d12 100644
>> --- a/drivers/gpu/drm/radeon/radeon_kms.c
>> +++ b/drivers/gpu/drm/radeon/radeon_kms.c
>> @@ -376,6 +376,23 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
>>                 else
>>                         return -EINVAL;
>>                 break;
>> +       case RADEON_INFO_RING_WORKING:
>> +               switch (value) {
>> +               case RADEON_CS_RING_GFX:
>> +               case RADEON_CS_RING_COMPUTE:
>> +                       value = rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready;
>> +                       break;
>> +               case RADEON_CS_RING_DMA:
>> +                       value = rdev->ring[R600_RING_TYPE_DMA_INDEX].ready;
>> +                       value |= rdev->ring[CAYMAN_RING_TYPE_DMA1_INDEX].ready;
>> +                       break;
>> +               case RADEON_CS_RING_UVD:
>> +                       value = rdev->ring[R600_RING_TYPE_UVD_INDEX].ready;
>> +                       break;
>> +               default:
>> +                       return -EINVAL;
>> +               }
>> +               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 cd085d1..8459415 100644
>> --- a/include/uapi/drm/radeon_drm.h
>> +++ b/include/uapi/drm/radeon_drm.h
>> @@ -973,6 +973,8 @@ struct drm_radeon_cs {
>>  #define RADEON_INFO_MAX_SE             0x12
>>  /* max SH per SE */
>>  #define RADEON_INFO_MAX_SH_PER_SE      0x13
>> +/* query if a RADEON_CS_RING_* submission is supported */
>> +#define RADEON_INFO_RING_WORKING       0x14
>>
>>  struct drm_radeon_info {
>>         uint32_t                request;
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>

On Tue, Apr 9, 2013 at 10:13 AM, Jerome Glisse <j.glisse at gmail.com> wrote:
> On Tue, Apr 9, 2013 at 8:44 AM, Christian König <deathsimple at vodafone.de>
> wrote:
>>
>> From: Christian König <christian.koenig at amd.com>
>>
>> Add new ioctl option and bumb minor version number.
>
>
> I already have the tiling patch that bump the version, but i think it's just
> a matter for Alex.
>
> Reviewed-by: Jerome Glisse <jglisse at redhat.com>
>
>>
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>>  drivers/gpu/drm/radeon/radeon_drv.c |    2 +-
>>  drivers/gpu/drm/radeon/radeon_kms.c |   17 +++++++++++++++++
>>  include/uapi/drm/radeon_drm.h       |    2 ++
>>  3 files changed, 20 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c
>> b/drivers/gpu/drm/radeon/radeon_drv.c
>> index 66a7f0f..31b193b 100644
>> --- a/drivers/gpu/drm/radeon/radeon_drv.c
>> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
>> @@ -73,7 +73,7 @@
>>   *   2.30.0 - fix for FMASK texturing
>>   */
>>  #define KMS_DRIVER_MAJOR       2
>> -#define KMS_DRIVER_MINOR       30
>> +#define KMS_DRIVER_MINOR       31
>>  #define KMS_DRIVER_PATCHLEVEL  0
>>  int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
>>  int radeon_driver_unload_kms(struct drm_device *dev);
>> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c
>> b/drivers/gpu/drm/radeon/radeon_kms.c
>> index 3019759..8cb9d12 100644
>> --- a/drivers/gpu/drm/radeon/radeon_kms.c
>> +++ b/drivers/gpu/drm/radeon/radeon_kms.c
>> @@ -376,6 +376,23 @@ int radeon_info_ioctl(struct drm_device *dev, void
>> *data, struct drm_file *filp)
>>                 else
>>                         return -EINVAL;
>>                 break;
>> +       case RADEON_INFO_RING_WORKING:
>> +               switch (value) {
>> +               case RADEON_CS_RING_GFX:
>> +               case RADEON_CS_RING_COMPUTE:
>> +                       value =
>> rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready;
>> +                       break;
>> +               case RADEON_CS_RING_DMA:
>> +                       value =
>> rdev->ring[R600_RING_TYPE_DMA_INDEX].ready;
>> +                       value |=
>> rdev->ring[CAYMAN_RING_TYPE_DMA1_INDEX].ready;
>> +                       break;
>> +               case RADEON_CS_RING_UVD:
>> +                       value =
>> rdev->ring[R600_RING_TYPE_UVD_INDEX].ready;
>> +                       break;
>> +               default:
>> +                       return -EINVAL;
>> +               }
>> +               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 cd085d1..8459415 100644
>> --- a/include/uapi/drm/radeon_drm.h
>> +++ b/include/uapi/drm/radeon_drm.h
>> @@ -973,6 +973,8 @@ struct drm_radeon_cs {
>>  #define RADEON_INFO_MAX_SE             0x12
>>  /* max SH per SE */
>>  #define RADEON_INFO_MAX_SH_PER_SE      0x13
>> +/* query if a RADEON_CS_RING_* submission is supported */
>> +#define RADEON_INFO_RING_WORKING       0x14
>>
>>  struct drm_radeon_info {
>>         uint32_t                request;
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>
>
> _______________________________________________
> 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