Rename MEC_HPD_SIZE to GFXN_MEC_HPD_SIZE to clarify it is specific to a
gfx generation.

Signed-off-by: Andres Rodriguez <andre...@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 11 +++++------
 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 15 +++++++--------
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 17 ++++++++---------
 3 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index c930bb8..3b98162 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -32,40 +32,41 @@
 #include "clearstate_ci.h"
 
 #include "dce/dce_8_0_d.h"
 #include "dce/dce_8_0_sh_mask.h"
 
 #include "bif/bif_4_1_d.h"
 #include "bif/bif_4_1_sh_mask.h"
 
 #include "gca/gfx_7_0_d.h"
 #include "gca/gfx_7_2_enum.h"
 #include "gca/gfx_7_2_sh_mask.h"
 
 #include "gmc/gmc_7_0_d.h"
 #include "gmc/gmc_7_0_sh_mask.h"
 
 #include "oss/oss_2_0_d.h"
 #include "oss/oss_2_0_sh_mask.h"
 
 #define GFX7_NUM_GFX_RINGS     1
 #define GFX7_NUM_COMPUTE_RINGS 8
+#define GFX7_MEC_HPD_SIZE      2048
 
 static void gfx_v7_0_set_ring_funcs(struct amdgpu_device *adev);
 static void gfx_v7_0_set_irq_funcs(struct amdgpu_device *adev);
 static void gfx_v7_0_set_gds_init(struct amdgpu_device *adev);
 
 MODULE_FIRMWARE("radeon/bonaire_pfp.bin");
 MODULE_FIRMWARE("radeon/bonaire_me.bin");
 MODULE_FIRMWARE("radeon/bonaire_ce.bin");
 MODULE_FIRMWARE("radeon/bonaire_rlc.bin");
 MODULE_FIRMWARE("radeon/bonaire_mec.bin");
 
 MODULE_FIRMWARE("radeon/hawaii_pfp.bin");
 MODULE_FIRMWARE("radeon/hawaii_me.bin");
 MODULE_FIRMWARE("radeon/hawaii_ce.bin");
 MODULE_FIRMWARE("radeon/hawaii_rlc.bin");
 MODULE_FIRMWARE("radeon/hawaii_mec.bin");
 
 MODULE_FIRMWARE("radeon/kaveri_pfp.bin");
 MODULE_FIRMWARE("radeon/kaveri_me.bin");
 MODULE_FIRMWARE("radeon/kaveri_ce.bin");
@@ -2804,90 +2805,88 @@ static void gfx_v7_0_cp_compute_fini(struct 
amdgpu_device *adev)
                }
        }
 }
 
 static void gfx_v7_0_mec_fini(struct amdgpu_device *adev)
 {
        int r;
 
        if (adev->gfx.mec.hpd_eop_obj) {
                r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, false);
                if (unlikely(r != 0))
                        dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", 
r);
                amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj);
                amdgpu_bo_unreserve(adev->gfx.mec.hpd_eop_obj);
 
                amdgpu_bo_unref(&adev->gfx.mec.hpd_eop_obj);
                adev->gfx.mec.hpd_eop_obj = NULL;
        }
 }
 
-#define MEC_HPD_SIZE 2048
-
 static int gfx_v7_0_mec_init(struct amdgpu_device *adev)
 {
        int r;
        u32 *hpd;
 
        /*
         * KV:    2 MEC, 4 Pipes/MEC, 8 Queues/Pipe - 64 Queues total
         * CI/KB: 1 MEC, 4 Pipes/MEC, 8 Queues/Pipe - 32 Queues total
         * Nonetheless, we assign only 1 pipe because all other pipes will
         * be handled by KFD
         */
        adev->gfx.mec.num_mec = 1;
        adev->gfx.mec.num_pipe = 1;
        adev->gfx.mec.num_queue = adev->gfx.mec.num_mec * 
adev->gfx.mec.num_pipe * 8;
 
        if (adev->gfx.mec.hpd_eop_obj == NULL) {
                r = amdgpu_bo_create(adev,
-                                    adev->gfx.mec.num_mec 
*adev->gfx.mec.num_pipe * MEC_HPD_SIZE * 2,
+                                    adev->gfx.mec.num_mec * 
adev->gfx.mec.num_pipe * GFX7_MEC_HPD_SIZE * 2,
                                     PAGE_SIZE, true,
                                     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
                                     &adev->gfx.mec.hpd_eop_obj);
                if (r) {
                        dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", 
r);
                        return r;
                }
        }
 
        r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, false);
        if (unlikely(r != 0)) {
                gfx_v7_0_mec_fini(adev);
                return r;
        }
        r = amdgpu_bo_pin(adev->gfx.mec.hpd_eop_obj, AMDGPU_GEM_DOMAIN_GTT,
                          &adev->gfx.mec.hpd_eop_gpu_addr);
        if (r) {
                dev_warn(adev->dev, "(%d) pin HDP EOP bo failed\n", r);
                gfx_v7_0_mec_fini(adev);
                return r;
        }
        r = amdgpu_bo_kmap(adev->gfx.mec.hpd_eop_obj, (void **)&hpd);
        if (r) {
                dev_warn(adev->dev, "(%d) map HDP EOP bo failed\n", r);
                gfx_v7_0_mec_fini(adev);
                return r;
        }
 
        /* clear memory.  Not sure if this is required or not */
-       memset(hpd, 0, adev->gfx.mec.num_mec *adev->gfx.mec.num_pipe * 
MEC_HPD_SIZE * 2);
+       memset(hpd, 0, adev->gfx.mec.num_mec * adev->gfx.mec.num_pipe * 
GFX7_MEC_HPD_SIZE * 2);
 
        amdgpu_bo_kunmap(adev->gfx.mec.hpd_eop_obj);
        amdgpu_bo_unreserve(adev->gfx.mec.hpd_eop_obj);
 
        return 0;
 }
 
 struct hqd_registers
 {
        u32 cp_mqd_base_addr;
        u32 cp_mqd_base_addr_hi;
        u32 cp_hqd_active;
        u32 cp_hqd_vmid;
        u32 cp_hqd_persistent_state;
        u32 cp_hqd_pipe_priority;
        u32 cp_hqd_queue_priority;
        u32 cp_hqd_quantum;
        u32 cp_hqd_pq_base;
        u32 cp_hqd_pq_base_hi;
        u32 cp_hqd_pq_rptr;
@@ -2961,55 +2960,55 @@ static int gfx_v7_0_cp_compute_resume(struct 
amdgpu_device *adev)
        bool use_doorbell = true;
        u64 hqd_gpu_addr;
        u64 mqd_gpu_addr;
        u64 eop_gpu_addr;
        u64 wb_gpu_addr;
        u32 *buf;
        struct bonaire_mqd *mqd;
        struct amdgpu_ring *ring;
 
        /* fix up chicken bits */
        tmp = RREG32(mmCP_CPF_DEBUG);
        tmp |= (1 << 23);
        WREG32(mmCP_CPF_DEBUG, tmp);
 
        /* init the pipes */
        mutex_lock(&adev->srbm_mutex);
        for (i = 0; i < (adev->gfx.mec.num_pipe * adev->gfx.mec.num_mec); i++) {
                int me = (i < 4) ? 1 : 2;
                int pipe = (i < 4) ? i : (i - 4);
 
-               eop_gpu_addr = adev->gfx.mec.hpd_eop_gpu_addr + (i * 
MEC_HPD_SIZE * 2);
+               eop_gpu_addr = adev->gfx.mec.hpd_eop_gpu_addr + (i * 
GFX7_MEC_HPD_SIZE * 2);
 
                cik_srbm_select(adev, me, pipe, 0, 0);
 
                /* write the EOP addr */
                WREG32(mmCP_HPD_EOP_BASE_ADDR, eop_gpu_addr >> 8);
                WREG32(mmCP_HPD_EOP_BASE_ADDR_HI, upper_32_bits(eop_gpu_addr) 
>> 8);
 
                /* set the VMID assigned */
                WREG32(mmCP_HPD_EOP_VMID, 0);
 
                /* set the EOP size, register value is 2^(EOP_SIZE+1) dwords */
                tmp = RREG32(mmCP_HPD_EOP_CONTROL);
                tmp &= ~CP_HPD_EOP_CONTROL__EOP_SIZE_MASK;
-               tmp |= order_base_2(MEC_HPD_SIZE / 8);
+               tmp |= order_base_2(GFX7_MEC_HPD_SIZE / 8);
                WREG32(mmCP_HPD_EOP_CONTROL, tmp);
        }
        cik_srbm_select(adev, 0, 0, 0, 0);
        mutex_unlock(&adev->srbm_mutex);
 
        /* init the queues.  Just two for now. */
        for (i = 0; i < adev->gfx.num_compute_rings; i++) {
                ring = &adev->gfx.compute_ring[i];
 
                if (ring->mqd_obj == NULL) {
                        r = amdgpu_bo_create(adev,
                                             sizeof(struct bonaire_mqd),
                                             PAGE_SIZE, true,
                                             AMDGPU_GEM_DOMAIN_GTT, 0, NULL, 
NULL,
                                             &ring->mqd_obj);
                        if (r) {
                                dev_warn(adev->dev, "(%d) create MQD bo 
failed\n", r);
                                return r;
                        }
                }
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index df50e34..fc94c3a 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -36,40 +36,41 @@
 #include "gmc/gmc_8_2_sh_mask.h"
 
 #include "oss/oss_3_0_d.h"
 #include "oss/oss_3_0_sh_mask.h"
 
 #include "bif/bif_5_0_d.h"
 #include "bif/bif_5_0_sh_mask.h"
 
 #include "gca/gfx_8_0_d.h"
 #include "gca/gfx_8_0_enum.h"
 #include "gca/gfx_8_0_sh_mask.h"
 #include "gca/gfx_8_0_enum.h"
 
 #include "dce/dce_10_0_d.h"
 #include "dce/dce_10_0_sh_mask.h"
 
 #include "smu/smu_7_1_3_d.h"
 
 #define GFX8_NUM_GFX_RINGS     1
 #define GFX8_NUM_COMPUTE_RINGS 8
+#define GFX8_MEC_HPD_SIZE 2048
 
 #define TOPAZ_GB_ADDR_CONFIG_GOLDEN 0x22010001
 #define CARRIZO_GB_ADDR_CONFIG_GOLDEN 0x22010001
 #define POLARIS11_GB_ADDR_CONFIG_GOLDEN 0x22011002
 #define TONGA_GB_ADDR_CONFIG_GOLDEN 0x22011003
 
 #define ARRAY_MODE(x)                                  ((x) << 
GB_TILE_MODE0__ARRAY_MODE__SHIFT)
 #define PIPE_CONFIG(x)                                 ((x) << 
GB_TILE_MODE0__PIPE_CONFIG__SHIFT)
 #define TILE_SPLIT(x)                                  ((x) << 
GB_TILE_MODE0__TILE_SPLIT__SHIFT)
 #define MICRO_TILE_MODE_NEW(x)                         ((x) << 
GB_TILE_MODE0__MICRO_TILE_MODE_NEW__SHIFT)
 #define SAMPLE_SPLIT(x)                                        ((x) << 
GB_TILE_MODE0__SAMPLE_SPLIT__SHIFT)
 #define BANK_WIDTH(x)                                  ((x) << 
GB_MACROTILE_MODE0__BANK_WIDTH__SHIFT)
 #define BANK_HEIGHT(x)                                 ((x) << 
GB_MACROTILE_MODE0__BANK_HEIGHT__SHIFT)
 #define MACRO_TILE_ASPECT(x)                           ((x) << 
GB_MACROTILE_MODE0__MACRO_TILE_ASPECT__SHIFT)
 #define NUM_BANKS(x)                                   ((x) << 
GB_MACROTILE_MODE0__NUM_BANKS__SHIFT)
 
 #define RLC_CGTT_MGCG_OVERRIDE__CPF_MASK            0x00000001L
 #define RLC_CGTT_MGCG_OVERRIDE__RLC_MASK            0x00000002L
 #define RLC_CGTT_MGCG_OVERRIDE__MGCG_MASK           0x00000004L
 #define RLC_CGTT_MGCG_OVERRIDE__CGCG_MASK           0x00000008L
@@ -1396,116 +1397,114 @@ static int gfx_v8_0_kiq_init_ring(struct 
amdgpu_device *adev,
                ring->pipe = 1;
        }
 
        ring->queue = 0;
        ring->eop_gpu_addr = kiq->eop_gpu_addr;
        sprintf(ring->name, "kiq %d.%d.%d", ring->me, ring->pipe, ring->queue);
        r = amdgpu_ring_init(adev, ring, 1024,
                             irq, AMDGPU_CP_KIQ_IRQ_DRIVER0);
        if (r)
                dev_warn(adev->dev, "(%d) failed to init kiq ring\n", r);
 
        return r;
 }
 static void gfx_v8_0_kiq_free_ring(struct amdgpu_ring *ring,
                                   struct amdgpu_irq_src *irq)
 {
        amdgpu_wb_free(ring->adev, ring->adev->virt.reg_val_offs);
        amdgpu_ring_fini(ring);
 }
 
-#define MEC_HPD_SIZE 2048
-
 static int gfx_v8_0_mec_init(struct amdgpu_device *adev)
 {
        int r;
        u32 *hpd;
 
        /*
         * we assign only 1 pipe because all other pipes will
         * be handled by KFD
         */
        adev->gfx.mec.num_mec = 1;
        adev->gfx.mec.num_pipe = 1;
        adev->gfx.mec.num_queue = adev->gfx.mec.num_mec * 
adev->gfx.mec.num_pipe * 8;
 
        if (adev->gfx.mec.hpd_eop_obj == NULL) {
                r = amdgpu_bo_create(adev,
-                                    adev->gfx.mec.num_queue * MEC_HPD_SIZE,
+                                    adev->gfx.mec.num_queue * 
GFX8_MEC_HPD_SIZE,
                                     PAGE_SIZE, true,
                                     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
                                     &adev->gfx.mec.hpd_eop_obj);
                if (r) {
                        dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", 
r);
                        return r;
                }
        }
 
        r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, false);
        if (unlikely(r != 0)) {
                gfx_v8_0_mec_fini(adev);
                return r;
        }
        r = amdgpu_bo_pin(adev->gfx.mec.hpd_eop_obj, AMDGPU_GEM_DOMAIN_GTT,
                          &adev->gfx.mec.hpd_eop_gpu_addr);
        if (r) {
                dev_warn(adev->dev, "(%d) pin HDP EOP bo failed\n", r);
                gfx_v8_0_mec_fini(adev);
                return r;
        }
        r = amdgpu_bo_kmap(adev->gfx.mec.hpd_eop_obj, (void **)&hpd);
        if (r) {
                dev_warn(adev->dev, "(%d) map HDP EOP bo failed\n", r);
                gfx_v8_0_mec_fini(adev);
                return r;
        }
 
-       memset(hpd, 0, adev->gfx.mec.num_queue * MEC_HPD_SIZE);
+       memset(hpd, 0, adev->gfx.mec.num_queue * GFX8_MEC_HPD_SIZE);
 
        amdgpu_bo_kunmap(adev->gfx.mec.hpd_eop_obj);
        amdgpu_bo_unreserve(adev->gfx.mec.hpd_eop_obj);
 
        return 0;
 }
 
 static void gfx_v8_0_kiq_fini(struct amdgpu_device *adev)
 {
        struct amdgpu_kiq *kiq = &adev->gfx.kiq;
 
        amdgpu_bo_free_kernel(&kiq->eop_obj, &kiq->eop_gpu_addr, NULL);
 }
 
 static int gfx_v8_0_kiq_init(struct amdgpu_device *adev)
 {
        int r;
        u32 *hpd;
        struct amdgpu_kiq *kiq = &adev->gfx.kiq;
 
-       r = amdgpu_bo_create_kernel(adev, MEC_HPD_SIZE, PAGE_SIZE,
+       r = amdgpu_bo_create_kernel(adev, GFX8_MEC_HPD_SIZE, PAGE_SIZE,
                                    AMDGPU_GEM_DOMAIN_GTT, &kiq->eop_obj,
                                    &kiq->eop_gpu_addr, (void **)&hpd);
        if (r) {
                dev_warn(adev->dev, "failed to create KIQ bo (%d).\n", r);
                return r;
        }
 
-       memset(hpd, 0, MEC_HPD_SIZE);
+       memset(hpd, 0, GFX8_MEC_HPD_SIZE);
 
        r = amdgpu_bo_reserve(kiq->eop_obj, false);
        if (unlikely(r != 0))
                dev_warn(adev->dev, "(%d) reserve kiq eop bo failed\n", r);
        amdgpu_bo_kunmap(kiq->eop_obj);
        amdgpu_bo_unreserve(kiq->eop_obj);
 
        return 0;
 }
 
 static const u32 vgpr_init_compute_shader[] =
 {
        0x7e000209, 0x7e020208,
        0x7e040207, 0x7e060206,
        0x7e080205, 0x7e0a0204,
        0x7e0c0203, 0x7e0e0202,
        0x7e100201, 0x7e120200,
        0x7e140209, 0x7e160208,
        0x7e180207, 0x7e1a0206,
        0x7e1c0205, 0x7e1e0204,
@@ -2138,41 +2137,41 @@ static int gfx_v8_0_sw_init(void *handle)
                if (r)
                        return r;
        }
 
        /* set up the compute queues */
        for (i = 0; i < adev->gfx.num_compute_rings; i++) {
                unsigned irq_type;
 
                /* max 32 queues per MEC */
                if ((i >= 32) || (i >= AMDGPU_MAX_COMPUTE_RINGS)) {
                        DRM_ERROR("Too many (%d) compute rings!\n", i);
                        break;
                }
                ring = &adev->gfx.compute_ring[i];
                ring->ring_obj = NULL;
                ring->use_doorbell = true;
                ring->doorbell_index = AMDGPU_DOORBELL_MEC_RING0 + i;
                ring->me = 1; /* first MEC */
                ring->pipe = i / 8;
                ring->queue = i % 8;
-               ring->eop_gpu_addr = adev->gfx.mec.hpd_eop_gpu_addr + (i * 
MEC_HPD_SIZE);
+               ring->eop_gpu_addr = adev->gfx.mec.hpd_eop_gpu_addr + (i * 
GFX8_MEC_HPD_SIZE);
                sprintf(ring->name, "comp_%d.%d.%d", ring->me, ring->pipe, 
ring->queue);
                irq_type = AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP + ring->pipe;
                /* type-2 packets are deprecated on MEC, use type-3 instead */
                r = amdgpu_ring_init(adev, ring, 1024, &adev->gfx.eop_irq,
                                     irq_type);
                if (r)
                        return r;
        }
 
        r = gfx_v8_0_kiq_init(adev);
        if (r) {
                DRM_ERROR("Failed to init KIQ BOs!\n");
                return r;
        }
 
        kiq = &adev->gfx.kiq;
        r = gfx_v8_0_kiq_init_ring(adev, &kiq->ring, &kiq->irq);
        if (r)
                return r;
 
@@ -4758,41 +4757,41 @@ static int gfx_v8_0_mqd_init(struct amdgpu_ring *ring)
        struct amdgpu_device *adev = ring->adev;
        struct vi_mqd *mqd = ring->mqd_ptr;
        uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr;
        uint32_t tmp;
 
        mqd->header = 0xC0310800;
        mqd->compute_pipelinestat_enable = 0x00000001;
        mqd->compute_static_thread_mgmt_se0 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se1 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se2 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se3 = 0xffffffff;
        mqd->compute_misc_reserved = 0x00000003;
 
        eop_base_addr = ring->eop_gpu_addr >> 8;
        mqd->cp_hqd_eop_base_addr_lo = eop_base_addr;
        mqd->cp_hqd_eop_base_addr_hi = upper_32_bits(eop_base_addr);
 
        /* set the EOP size, register value is 2^(EOP_SIZE+1) dwords */
        tmp = RREG32(mmCP_HQD_EOP_CONTROL);
        tmp = REG_SET_FIELD(tmp, CP_HQD_EOP_CONTROL, EOP_SIZE,
-                       (order_base_2(MEC_HPD_SIZE / 4) - 1));
+                       (order_base_2(GFX8_MEC_HPD_SIZE / 4) - 1));
 
        mqd->cp_hqd_eop_control = tmp;
 
        /* enable doorbell? */
        tmp = REG_SET_FIELD(RREG32(mmCP_HQD_PQ_DOORBELL_CONTROL),
                            CP_HQD_PQ_DOORBELL_CONTROL,
                            DOORBELL_EN,
                            ring->use_doorbell ? 1 : 0);
 
        mqd->cp_hqd_pq_doorbell_control = tmp;
 
        /* disable the queue if it's active */
        mqd->cp_hqd_dequeue_request = 0;
        mqd->cp_hqd_pq_rptr = 0;
        mqd->cp_hqd_pq_wptr = 0;
 
        /* set the pointer to the MQD */
        mqd->cp_mqd_base_addr_lo = ring->mqd_gpu_addr & 0xfffffffc;
        mqd->cp_mqd_base_addr_hi = upper_32_bits(ring->mqd_gpu_addr);
 
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index 87596e4..0de7ff4 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -23,40 +23,41 @@
 #include <linux/firmware.h>
 #include "drmP.h"
 #include "amdgpu.h"
 #include "amdgpu_gfx.h"
 #include "soc15.h"
 #include "soc15d.h"
 
 #include "vega10/soc15ip.h"
 #include "vega10/GC/gc_9_0_offset.h"
 #include "vega10/GC/gc_9_0_sh_mask.h"
 #include "vega10/vega10_enum.h"
 #include "vega10/HDP/hdp_4_0_offset.h"
 
 #include "soc15_common.h"
 #include "clearstate_gfx9.h"
 #include "v9_structs.h"
 
 #define GFX9_NUM_GFX_RINGS     1
 #define GFX9_NUM_COMPUTE_RINGS 8
 #define GFX9_NUM_SE            4
+#define GFX9_MEC_HPD_SIZE 2048
 #define RLCG_UCODE_LOADING_START_ADDRESS 0x2000
 
 MODULE_FIRMWARE("amdgpu/vega10_ce.bin");
 MODULE_FIRMWARE("amdgpu/vega10_pfp.bin");
 MODULE_FIRMWARE("amdgpu/vega10_me.bin");
 MODULE_FIRMWARE("amdgpu/vega10_mec.bin");
 MODULE_FIRMWARE("amdgpu/vega10_mec2.bin");
 MODULE_FIRMWARE("amdgpu/vega10_rlc.bin");
 
 static const struct amdgpu_gds_reg_offset amdgpu_gds_reg_offset[] =
 {
        {SOC15_REG_OFFSET(GC, 0, mmGDS_VMID0_BASE), SOC15_REG_OFFSET(GC, 0, 
mmGDS_VMID0_SIZE),
                SOC15_REG_OFFSET(GC, 0, mmGDS_GWS_VMID0), SOC15_REG_OFFSET(GC, 
0, mmGDS_OA_VMID0)},
        {SOC15_REG_OFFSET(GC, 0, mmGDS_VMID1_BASE), SOC15_REG_OFFSET(GC, 0, 
mmGDS_VMID1_SIZE),
                SOC15_REG_OFFSET(GC, 0, mmGDS_GWS_VMID1), SOC15_REG_OFFSET(GC, 
0, mmGDS_OA_VMID1)},
        {SOC15_REG_OFFSET(GC, 0, mmGDS_VMID2_BASE), SOC15_REG_OFFSET(GC, 0, 
mmGDS_VMID2_SIZE),
                SOC15_REG_OFFSET(GC, 0, mmGDS_GWS_VMID2), SOC15_REG_OFFSET(GC, 
0, mmGDS_OA_VMID2)},
        {SOC15_REG_OFFSET(GC, 0, mmGDS_VMID3_BASE), SOC15_REG_OFFSET(GC, 0, 
mmGDS_VMID3_SIZE),
                SOC15_REG_OFFSET(GC, 0, mmGDS_GWS_VMID3), SOC15_REG_OFFSET(GC, 
0, mmGDS_OA_VMID3)},
        {SOC15_REG_OFFSET(GC, 0, mmGDS_VMID4_BASE), SOC15_REG_OFFSET(GC, 0, 
mmGDS_VMID4_SIZE),
@@ -457,63 +458,61 @@ static void gfx_v9_0_mec_fini(struct amdgpu_device *adev)
                if (unlikely(r != 0))
                        dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", 
r);
                amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj);
                amdgpu_bo_unreserve(adev->gfx.mec.hpd_eop_obj);
 
                amdgpu_bo_unref(&adev->gfx.mec.hpd_eop_obj);
                adev->gfx.mec.hpd_eop_obj = NULL;
        }
        if (adev->gfx.mec.mec_fw_obj) {
                r = amdgpu_bo_reserve(adev->gfx.mec.mec_fw_obj, false);
                if (unlikely(r != 0))
                        dev_warn(adev->dev, "(%d) reserve mec firmware bo 
failed\n", r);
                amdgpu_bo_unpin(adev->gfx.mec.mec_fw_obj);
                amdgpu_bo_unreserve(adev->gfx.mec.mec_fw_obj);
 
                amdgpu_bo_unref(&adev->gfx.mec.mec_fw_obj);
                adev->gfx.mec.mec_fw_obj = NULL;
        }
 }
 
-#define MEC_HPD_SIZE 2048
-
 static int gfx_v9_0_mec_init(struct amdgpu_device *adev)
 {
        int r;
        u32 *hpd;
        const __le32 *fw_data;
        unsigned fw_size;
        u32 *fw;
 
        const struct gfx_firmware_header_v1_0 *mec_hdr;
 
        /*
         * we assign only 1 pipe because all other pipes will
         * be handled by KFD
         */
        adev->gfx.mec.num_mec = 1;
        adev->gfx.mec.num_pipe = 1;
        adev->gfx.mec.num_queue = adev->gfx.mec.num_mec * 
adev->gfx.mec.num_pipe * 8;
 
        if (adev->gfx.mec.hpd_eop_obj == NULL) {
                r = amdgpu_bo_create(adev,
-                                    adev->gfx.mec.num_queue * MEC_HPD_SIZE,
+                                    adev->gfx.mec.num_queue * 
GFX9_MEC_HPD_SIZE,
                                     PAGE_SIZE, true,
                                     AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL,
                                     &adev->gfx.mec.hpd_eop_obj);
                if (r) {
                        dev_warn(adev->dev, "(%d) create HDP EOP bo failed\n", 
r);
                        return r;
                }
        }
 
        r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, false);
        if (unlikely(r != 0)) {
                gfx_v9_0_mec_fini(adev);
                return r;
        }
        r = amdgpu_bo_pin(adev->gfx.mec.hpd_eop_obj, AMDGPU_GEM_DOMAIN_GTT,
                          &adev->gfx.mec.hpd_eop_gpu_addr);
        if (r) {
                dev_warn(adev->dev, "(%d) pin HDP EOP bo failed\n", r);
                gfx_v9_0_mec_fini(adev);
                return r;
@@ -572,49 +571,49 @@ static int gfx_v9_0_mec_init(struct amdgpu_device *adev)
        amdgpu_bo_kunmap(adev->gfx.mec.mec_fw_obj);
        amdgpu_bo_unreserve(adev->gfx.mec.mec_fw_obj);
 
 
        return 0;
 }
 
 static void gfx_v9_0_kiq_fini(struct amdgpu_device *adev)
 {
        struct amdgpu_kiq *kiq = &adev->gfx.kiq;
 
        amdgpu_bo_free_kernel(&kiq->eop_obj, &kiq->eop_gpu_addr, NULL);
 }
 
 static int gfx_v9_0_kiq_init(struct amdgpu_device *adev)
 {
        int r;
        u32 *hpd;
        struct amdgpu_kiq *kiq = &adev->gfx.kiq;
 
-       r = amdgpu_bo_create_kernel(adev, MEC_HPD_SIZE, PAGE_SIZE,
+       r = amdgpu_bo_create_kernel(adev, GFX9_MEC_HPD_SIZE, PAGE_SIZE,
                                    AMDGPU_GEM_DOMAIN_GTT, &kiq->eop_obj,
                                    &kiq->eop_gpu_addr, (void **)&hpd);
        if (r) {
                dev_warn(adev->dev, "failed to create KIQ bo (%d).\n", r);
                return r;
        }
 
-       memset(hpd, 0, MEC_HPD_SIZE);
+       memset(hpd, 0, GFX9_MEC_HPD_SIZE);
 
        r = amdgpu_bo_reserve(kiq->eop_obj, false);
        if (unlikely(r != 0))
                dev_warn(adev->dev, "(%d) reserve kiq eop bo failed\n", r);
        amdgpu_bo_kunmap(kiq->eop_obj);
        amdgpu_bo_unreserve(kiq->eop_obj);
 
        return 0;
 }
 
 static int gfx_v9_0_kiq_init_ring(struct amdgpu_device *adev,
                                  struct amdgpu_ring *ring,
                                  struct amdgpu_irq_src *irq)
 {
        struct amdgpu_kiq *kiq = &adev->gfx.kiq;
        int r = 0;
 
        r = amdgpu_wb_get(adev, &adev->virt.reg_val_offs);
        if (r)
                return r;
@@ -1078,41 +1077,41 @@ static int gfx_v9_0_sw_init(void *handle)
                if (r)
                        return r;
        }
 
        /* set up the compute queues */
        for (i = 0; i < adev->gfx.num_compute_rings; i++) {
                unsigned irq_type;
 
                /* max 32 queues per MEC */
                if ((i >= 32) || (i >= AMDGPU_MAX_COMPUTE_RINGS)) {
                        DRM_ERROR("Too many (%d) compute rings!\n", i);
                        break;
                }
                ring = &adev->gfx.compute_ring[i];
                ring->ring_obj = NULL;
                ring->use_doorbell = true;
                ring->doorbell_index = (AMDGPU_DOORBELL64_MEC_RING0 + i) << 1;
                ring->me = 1; /* first MEC */
                ring->pipe = i / 8;
                ring->queue = i % 8;
-               ring->eop_gpu_addr = adev->gfx.mec.hpd_eop_gpu_addr + (i * 
MEC_HPD_SIZE);
+               ring->eop_gpu_addr = adev->gfx.mec.hpd_eop_gpu_addr + (i * 
GFX9_MEC_HPD_SIZE);
                sprintf(ring->name, "comp %d.%d.%d", ring->me, ring->pipe, 
ring->queue);
                irq_type = AMDGPU_CP_IRQ_COMPUTE_MEC1_PIPE0_EOP + ring->pipe;
                /* type-2 packets are deprecated on MEC, use type-3 instead */
                r = amdgpu_ring_init(adev, ring, 1024,
                                     &adev->gfx.eop_irq, irq_type);
                if (r)
                        return r;
        }
 
        if (amdgpu_sriov_vf(adev)) {
                r = gfx_v9_0_kiq_init(adev);
                if (r) {
                        DRM_ERROR("Failed to init KIQ BOs!\n");
                        return r;
                }
 
                kiq = &adev->gfx.kiq;
                r = gfx_v9_0_kiq_init_ring(adev, &kiq->ring, &kiq->irq);
                if (r)
                        return r;
@@ -1883,41 +1882,41 @@ static int gfx_v9_0_mqd_init(struct amdgpu_ring *ring)
        struct amdgpu_device *adev = ring->adev;
        struct v9_mqd *mqd = ring->mqd_ptr;
        uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr;
        uint32_t tmp;
 
        mqd->header = 0xC0310800;
        mqd->compute_pipelinestat_enable = 0x00000001;
        mqd->compute_static_thread_mgmt_se0 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se1 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se2 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se3 = 0xffffffff;
        mqd->compute_misc_reserved = 0x00000003;
 
        eop_base_addr = ring->eop_gpu_addr >> 8;
        mqd->cp_hqd_eop_base_addr_lo = eop_base_addr;
        mqd->cp_hqd_eop_base_addr_hi = upper_32_bits(eop_base_addr);
 
        /* set the EOP size, register value is 2^(EOP_SIZE+1) dwords */
        tmp = RREG32_SOC15(GC, 0, mmCP_HQD_EOP_CONTROL);
        tmp = REG_SET_FIELD(tmp, CP_HQD_EOP_CONTROL, EOP_SIZE,
-                       (order_base_2(MEC_HPD_SIZE / 4) - 1));
+                       (order_base_2(GFX9_MEC_HPD_SIZE / 4) - 1));
 
        mqd->cp_hqd_eop_control = tmp;
 
        /* enable doorbell? */
        tmp = RREG32_SOC15(GC, 0, mmCP_HQD_PQ_DOORBELL_CONTROL);
 
        if (ring->use_doorbell) {
                tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_DOORBELL_CONTROL,
                                    DOORBELL_OFFSET, ring->doorbell_index);
                tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_DOORBELL_CONTROL,
                                    DOORBELL_EN, 1);
                tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_DOORBELL_CONTROL,
                                    DOORBELL_SOURCE, 0);
                tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_DOORBELL_CONTROL,
                                    DOORBELL_HIT, 0);
        }
        else
                tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_DOORBELL_CONTROL,
                                         DOORBELL_EN, 0);
 
@@ -3740,52 +3739,52 @@ static int gfx_v9_0_init_queue(struct amdgpu_ring *ring)
        /* init the mqd struct */
        memset(buf, 0, sizeof(struct v9_mqd));
 
        mqd = (struct v9_mqd *)buf;
        mqd->header = 0xC0310800;
        mqd->compute_pipelinestat_enable = 0x00000001;
        mqd->compute_static_thread_mgmt_se0 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se1 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se2 = 0xffffffff;
        mqd->compute_static_thread_mgmt_se3 = 0xffffffff;
        mqd->compute_misc_reserved = 0x00000003;
        mutex_lock(&adev->srbm_mutex);
        soc15_grbm_select(adev, ring->me,
                               ring->pipe,
                               ring->queue, 0);
        /* disable wptr polling */
        WREG32_FIELD15(GC, 0, CP_PQ_WPTR_POLL_CNTL, EN, 0);
 
        /* write the EOP addr */
        BUG_ON(ring->me != 1 || ring->pipe != 0); /* can't handle other cases 
eop address */
-       eop_gpu_addr = adev->gfx.mec.hpd_eop_gpu_addr + (ring->queue * 
MEC_HPD_SIZE);
+       eop_gpu_addr = adev->gfx.mec.hpd_eop_gpu_addr + (ring->queue * 
GFX9_MEC_HPD_SIZE);
        eop_gpu_addr >>= 8;
 
        WREG32_SOC15(GC, 0, mmCP_HQD_EOP_BASE_ADDR, 
lower_32_bits(eop_gpu_addr));
        WREG32_SOC15(GC, 0, mmCP_HQD_EOP_BASE_ADDR_HI, 
upper_32_bits(eop_gpu_addr));
        mqd->cp_hqd_eop_base_addr_lo = lower_32_bits(eop_gpu_addr);
        mqd->cp_hqd_eop_base_addr_hi = upper_32_bits(eop_gpu_addr);
 
        /* set the EOP size, register value is 2^(EOP_SIZE+1) dwords */
        tmp = RREG32_SOC15(GC, 0, mmCP_HQD_EOP_CONTROL);
        tmp = REG_SET_FIELD(tmp, CP_HQD_EOP_CONTROL, EOP_SIZE,
-                                   (order_base_2(MEC_HPD_SIZE / 4) - 1));
+                                   (order_base_2(GFX9_MEC_HPD_SIZE / 4) - 1));
        WREG32_SOC15(GC, 0, mmCP_HQD_EOP_CONTROL, tmp);
 
        /* enable doorbell? */
        tmp = RREG32_SOC15(GC, 0, mmCP_HQD_PQ_DOORBELL_CONTROL);
        if (use_doorbell)
                tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_DOORBELL_CONTROL, 
DOORBELL_EN, 1);
        else
                tmp = REG_SET_FIELD(tmp, CP_HQD_PQ_DOORBELL_CONTROL, 
DOORBELL_EN, 0);
 
        WREG32_SOC15(GC, 0, mmCP_HQD_PQ_DOORBELL_CONTROL, tmp);
        mqd->cp_hqd_pq_doorbell_control = tmp;
 
        /* disable the queue if it's active */
        ring->wptr = 0;
        mqd->cp_hqd_dequeue_request = 0;
        mqd->cp_hqd_pq_rptr = 0;
        mqd->cp_hqd_pq_wptr_lo = 0;
        mqd->cp_hqd_pq_wptr_hi = 0;
        if (RREG32_SOC15(GC, 0, mmCP_HQD_ACTIVE) & 1) {
                WREG32_SOC15(GC, 0, mmCP_HQD_DEQUEUE_REQUEST, 1);
-- 
2.9.3

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to