radeon/vce: make reloc offset signed
authorChristian König <christian.koenig@amd.com>
Mon, 15 Jun 2015 18:19:48 +0000 (20:19 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 14 Aug 2015 13:02:30 +0000 (15:02 +0200)
We need a negative offset for FW 50.

Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
src/gallium/drivers/radeon/radeon_vce.c
src/gallium/drivers/radeon/radeon_vce.h
src/gallium/drivers/radeon/radeon_vce_40_2_2.c
src/gallium/drivers/radeon/radeon_vce_50.c

index e53ef3f8486e90b126731e7d49bbc3940df58b3e..0b667fd489b6d70480e980c436ba40db89d76f87 100644 (file)
@@ -217,7 +217,7 @@ struct rvce_cpb_slot *l1_slot(struct rvce_encoder *enc)
  * Calculate the offsets into the CPB
  */
 void rvce_frame_offset(struct rvce_encoder *enc, struct rvce_cpb_slot *slot,
-                      unsigned *luma_offset, unsigned *chroma_offset)
+                      signed *luma_offset, signed *chroma_offset)
 {
        unsigned pitch = align(enc->luma->level[0].pitch_bytes, 128);
        unsigned vpitch = align(enc->luma->npix_y, 16);
@@ -501,7 +501,7 @@ bool rvce_is_fw_version_supported(struct r600_common_screen *rscreen)
  */
 void rvce_add_buffer(struct rvce_encoder *enc, struct radeon_winsys_cs_handle *buf,
                      enum radeon_bo_usage usage, enum radeon_bo_domain domain,
-                     uint32_t offset)
+                     signed offset)
 {
        int reloc_idx;
 
index 28629043bc3496ed03217a72b3d61360770a874c..06e9868ca960330494ce6991c59608ba5e48fc52 100644 (file)
@@ -118,7 +118,7 @@ struct rvce_cpb_slot *current_slot(struct rvce_encoder *enc);
 struct rvce_cpb_slot *l0_slot(struct rvce_encoder *enc);
 struct rvce_cpb_slot *l1_slot(struct rvce_encoder *enc);
 void rvce_frame_offset(struct rvce_encoder *enc, struct rvce_cpb_slot *slot,
-                      unsigned *luma_offset, unsigned *chroma_offset);
+                      signed *luma_offset, signed *chroma_offset);
 
 struct pipe_video_codec *rvce_create_encoder(struct pipe_context *context,
                                             const struct pipe_video_codec *templat,
@@ -129,7 +129,7 @@ bool rvce_is_fw_version_supported(struct r600_common_screen *rscreen);
 
 void rvce_add_buffer(struct rvce_encoder *enc, struct radeon_winsys_cs_handle *buf,
                     enum radeon_bo_usage usage, enum radeon_bo_domain domain,
-                    uint32_t offset);
+                    signed offset);
 
 /* init vce fw 40.2.2 specific callbacks */
 void radeon_vce_40_2_2_init(struct rvce_encoder *enc);
index ede540d7ac842521bd2888f8ec16443f83bdc1f2..e64fbc7afb0491095f3296112d6369bc4b3466a5 100644 (file)
@@ -294,8 +294,8 @@ static void config(struct rvce_encoder *enc)
 
 static void encode(struct rvce_encoder *enc)
 {
+       signed luma_offset, chroma_offset;
        int i;
-       unsigned luma_offset, chroma_offset;
 
        enc->task_info(enc, 0x00000003, 0, 0, 0);
 
index 377e15431862af350c51dac62360584e1f5a5bb8..5bf221944189a4a6f3065e119ba2df00a2e2ec92 100644 (file)
@@ -78,8 +78,8 @@ static void rate_control(struct rvce_encoder *enc)
 
 static void encode(struct rvce_encoder *enc)
 {
+       signed luma_offset, chroma_offset;
        int i;
-       unsigned luma_offset, chroma_offset;
 
        enc->task_info(enc, 0x00000003, 0, 0, 0);