[Mesa-dev] [PATCH 1/2] radeon/winsys: add uvd ring support to winsys v2
Andreas Boll
andreas.boll.dev at gmail.com
Thu Apr 11 07:51:53 PDT 2013
2013/4/11 Christian König <deathsimple at vodafone.de>
> Am 11.04.2013 15:54, schrieb Andreas Boll:
>
> 2013/4/11 Christian König <deathsimple at vodafone.de>
>>
>> From: Christian König <christian.koenig at amd.com>
>>>
>>> Separated from UVD patch for clarity.
>>>
>>> v2: sync with next tree for 3.10
>>>
>>> http://cgit.freedesktop.org/~**agd5f/linux/log/?h=drm-next-3.**10-wip<http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-3.10-wip>
>>>
>>> Signed-off-by: Christian König <christian.koenig at amd.com>
>>> ---
>>> src/gallium/winsys/radeon/drm/**radeon_drm_cs.c | 11 +++++++++++
>>> src/gallium/winsys/radeon/drm/**radeon_drm_winsys.c | 17
>>> +++++++++++++++++
>>> src/gallium/winsys/radeon/drm/**radeon_winsys.h | 3 +++
>>> 3 files changed, 31 insertions(+)
>>>
>>> diff --git a/src/gallium/winsys/radeon/**drm/radeon_drm_cs.c
>>> b/src/gallium/winsys/radeon/**drm/radeon_drm_cs.c
>>> index aa7e295..720e086 100644
>>> --- a/src/gallium/winsys/radeon/**drm/radeon_drm_cs.c
>>> +++ b/src/gallium/winsys/radeon/**drm/radeon_drm_cs.c
>>> @@ -94,6 +94,10 @@
>>> #define RADEON_CS_RING_DMA 2
>>> #endif
>>>
>>> +#ifndef RADEON_CS_RING_UVD
>>> +#define RADEON_CS_RING_UVD 3
>>> +#endif
>>> +
>>> #ifndef RADEON_CS_END_OF_FRAME
>>> #define RADEON_CS_END_OF_FRAME 0x04
>>> #endif
>>> @@ -490,6 +494,13 @@ static void radeon_drm_cs_flush(struct
>>> radeon_winsys_cs *rcs, unsigned flags)
>>> cs->cst->flags[0] |= RADEON_CS_USE_VM;
>>> }
>>> break;
>>> +
>>> + case RING_UVD:
>>> + cs->cst->flags[0] = 0;
>>> + cs->cst->flags[1] = RADEON_CS_RING_UVD;
>>> + cs->cst->cs.num_chunks = 3;
>>> + break;
>>> +
>>> default:
>>> case RING_GFX:
>>> cs->cst->flags[0] = 0;
>>> diff --git a/src/gallium/winsys/radeon/**drm/radeon_drm_winsys.c
>>> b/src/gallium/winsys/radeon/**drm/radeon_drm_winsys.c
>>> index d1f7643..f32626b 100644
>>> --- a/src/gallium/winsys/radeon/**drm/radeon_drm_winsys.c
>>> +++ b/src/gallium/winsys/radeon/**drm/radeon_drm_winsys.c
>>> @@ -90,6 +90,14 @@
>>> #define RADEON_INFO_TIMESTAMP 0x11
>>> #endif
>>>
>>> +#ifndef RADEON_INFO_RING_WORKING
>>> +#define RADEON_INFO_RING_WORKING 0x15
>>> +#endif
>>> +
>>> +#ifndef RADEON_CS_RING_UVD
>>> +#define RADEON_CS_RING_UVD 3
>>> +#endif
>>> +
>>> static struct util_hash_table *fd_tab = NULL;
>>>
>>> /* Enable/disable feature access for one command stream.
>>> @@ -323,6 +331,15 @@ static boolean do_winsys_init(struct
>>> radeon_drm_winsys *ws)
>>> ws->info.r600_has_dma = TRUE;
>>> }
>>>
>>> + /* Check for UVD */
>>> + ws->info.has_uvd = FALSE;
>>> + if (ws->info.drm_minor >= 31) {
>>>
>>> This should be >= 32
>> See [1]
>>
>> Thanks,
>> Andreas.
>>
>> [1]
>> http://cgit.freedesktop.org/~**agd5f/linux/commit/?h=drm-**
>> next-3.10-wip&id=**1bcdaf0598685592844698a4f77f66**537efea139<http://cgit.freedesktop.org/~agd5f/linux/commit/?h=drm-next-3.10-wip&id=1bcdaf0598685592844698a4f77f66537efea139>
>>
>
> Ah, yes indeed. Thanks, do I have your reviewed-by with that fixed?
>
> Christian.
>
>
Yes.
Looking forward to see rv770 support ;-)
Andreas.
>
>> + uint32_t value = RADEON_CS_RING_UVD;
>>> + if (radeon_get_drm_value(ws->fd, RADEON_INFO_RING_WORKING,
>>> + "UVD Ring working", &value))
>>> + ws->info.has_uvd = value;
>>> + }
>>> +
>>> /* Get GEM info. */
>>> retval = drmCommandWriteRead(ws->fd, DRM_RADEON_GEM_INFO,
>>> &gem_info, sizeof(gem_info));
>>> diff --git a/src/gallium/winsys/radeon/**drm/radeon_winsys.h
>>> b/src/gallium/winsys/radeon/**drm/radeon_winsys.h
>>> index 36f1f8e..e343188 100644
>>> --- a/src/gallium/winsys/radeon/**drm/radeon_winsys.h
>>> +++ b/src/gallium/winsys/radeon/**drm/radeon_winsys.h
>>> @@ -142,6 +142,7 @@ enum chip_class {
>>> enum ring_type {
>>> RING_GFX = 0,
>>> RING_DMA,
>>> + RING_UVD,
>>> RING_LAST,
>>> };
>>>
>>> @@ -170,6 +171,8 @@ struct radeon_info {
>>> uint32_t drm_minor;
>>> uint32_t drm_patchlevel;
>>>
>>> + boolean has_uvd;
>>> +
>>> uint32_t r300_num_gb_pipes;
>>> uint32_t r300_num_z_pipes;
>>>
>>> --
>>> 1.7.9.5
>>>
>>> ______________________________**_________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> http://lists.freedesktop.org/**mailman/listinfo/mesa-dev<http://lists.freedesktop.org/mailman/listinfo/mesa-dev>
>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130411/fb79024e/attachment.html>
More information about the mesa-dev
mailing list