[PATCH] drm/amdgpu: Add "harvest" to IP discovery sysfs

Luben Tuikov luben.tuikov at amd.com
Tue Feb 15 14:15:40 UTC 2022


At the moment it's 0 across all IPs.
I doubt there are any consumers of the harvest data at the moment.
Since this will be fixed in VBIOS eventually, I suggest we add it now for completeness and it'll be there when this is fixed in VBIOS.

Regards,
Luben


On 2022-02-15 03:58, Chen, Guchun wrote:
> [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-bounces at lists.freedesktop.org> On Behalf Of Luben Tuikov
> Sent: Tuesday, February 15, 2022 7:22 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Tuikov, Luben <Luben.Tuikov at 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.Deucher at amd.com>
> Signed-off-by: Luben Tuikov <luben.tuikov at 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

Regards,
-- 
Luben


More information about the amd-gfx mailing list