From: Ben Goz <ben....@amd.com>

This patch adds a new property to kfd_device_info structure. That structure
holds information that is H/W specific.

The new property is called asic_family and its purpose is to distinguish
between different asic families in amdkfd operations, mainly in QCM (queue
control & management)

This patch also adds a new enum, to select different ASICs. We set the current
kfd_device_info instance as Kaveri and create a new instance which describes
the new AMD APU, codenamed 'Carrizo'.

Signed-off-by: Ben Goz <ben.goz at amd.com>
Signed-off-by: Oded Gabbay <oded.gabbay at amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_device.c | 10 +++++++++-
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h   |  6 ++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
index 994a9c1..24b37ff 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -31,6 +31,14 @@
 #define MQD_SIZE_ALIGNED 768

 static const struct kfd_device_info kaveri_device_info = {
+       .asic_family = CHIP_KAVERI,
+       .max_pasid_bits = 16,
+       .ih_ring_entry_size = 4 * sizeof(uint32_t),
+       .mqd_size_aligned = MQD_SIZE_ALIGNED
+};
+
+static const struct kfd_device_info carrizo_device_info = {
+       .asic_family = CHIP_CARRIZO,
        .max_pasid_bits = 16,
        .ih_ring_entry_size = 4 * sizeof(uint32_t),
        .num_of_watch_points = 4,
@@ -65,7 +73,7 @@ static const struct kfd_deviceid supported_devices[] = {
        { 0x1318, &kaveri_device_info },        /* Kaveri */
        { 0x131B, &kaveri_device_info },        /* Kaveri */
        { 0x131C, &kaveri_device_info },        /* Kaveri */
-       { 0x131D, &kaveri_device_info },        /* Kaveri */
+       { 0x131D, &kaveri_device_info }         /* Kaveri */
 };

 static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size,
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h 
b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
index a4e0ddd..872a1da 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
@@ -104,7 +104,13 @@ enum cache_policy {
        cache_policy_noncoherent
 };

+enum asic_family_type {
+       CHIP_KAVERI = 0,
+       CHIP_CARRIZO
+};
+
 struct kfd_device_info {
+       unsigned int asic_family;
        unsigned int max_pasid_bits;
        size_t ih_ring_entry_size;
        uint8_t num_of_watch_points;
-- 
1.9.1

Reply via email to