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

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=1bcdaf0598685592844698a4f77f66537efea139

Ah, yes indeed. Thanks, do I have your reviewed-by with that fixed?

Christian.


+       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


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to