[Public]

Hi Luben,

I suggest holding on this pls. Harvest bit per IP data structure from VBIOS is 
not consistently correct. Exposing it to use via sysfs may confuse users.

Regards,
Guchun

-----Original Message-----
From: amd-gfx <amd-gfx-boun...@lists.freedesktop.org> On Behalf Of Luben Tuikov
Sent: Tuesday, February 15, 2022 7:22 AM
To: amd-gfx@lists.freedesktop.org
Cc: Deucher, Alexander <alexander.deuc...@amd.com>; Tuikov, Luben 
<luben.tui...@amd.com>
Subject: [PATCH] drm/amdgpu: Add "harvest" to IP discovery sysfs

Add the "harvest" field to the IP attributes in the IP discovery sysfs 
visualization, as this field is present in the binary data.

Cc: Alex Deucher <alexander.deuc...@amd.com>
Signed-off-by: Luben Tuikov <luben.tui...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index c8dbdb78988ce0..0496d369504641 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -393,6 +393,7 @@ struct ip_hw_instance {
        int hw_id;
        u8  num_instance;
        u8  major, minor, revision;
+       u8  harvest;
 
        int num_base_addresses;
        u32 base_addr[];
@@ -440,6 +441,11 @@ static ssize_t revision_show(struct ip_hw_instance 
*ip_hw_instance, char *buf)
        return sysfs_emit(buf, "%d\n", ip_hw_instance->revision);  }
 
+static ssize_t harvest_show(struct ip_hw_instance *ip_hw_instance, char 
+*buf) {
+       return sysfs_emit(buf, "0x%01X\n", ip_hw_instance->harvest); }
+
 static ssize_t num_base_addresses_show(struct ip_hw_instance *ip_hw_instance, 
char *buf)  {
        return sysfs_emit(buf, "%d\n", ip_hw_instance->num_base_addresses);
@@ -471,6 +477,7 @@ static struct ip_hw_instance_attr ip_hw_attr[] = {
        __ATTR_RO(major),
        __ATTR_RO(minor),
        __ATTR_RO(revision),
+       __ATTR_RO(harvest),
        __ATTR_RO(num_base_addresses),
        __ATTR_RO(base_addr),
 };
@@ -708,6 +715,7 @@ static int amdgpu_discovery_sysfs_ips(struct amdgpu_device 
*adev,
                        ip_hw_instance->major = ip->major;
                        ip_hw_instance->minor = ip->minor;
                        ip_hw_instance->revision = ip->revision;
+                       ip_hw_instance->harvest = ip->harvest;
                        ip_hw_instance->num_base_addresses = 
ip->num_base_address;
 
                        for (kk = 0; kk < ip_hw_instance->num_base_addresses; 
kk++)

base-commit: d8604f1d237a145db48bae4ea60b85a5875df307
--
2.35.1.102.g2b9c120970

Reply via email to