2013/4/11 Christian König <deathsim...@vodafone.de> > Am 11.04.2013 15:54, schrieb Andreas Boll: > > 2013/4/11 Christian König <deathsim...@vodafone.de> >> >> From: Christian König <christian.koe...@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.koe...@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@lists.freedesktop.org >>> http://lists.freedesktop.org/**mailman/listinfo/mesa-dev<http://lists.freedesktop.org/mailman/listinfo/mesa-dev> >>> >>> >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev