[PATCH 1/2] drm/amdgpu: Add pci revision id

Deucher, Alexander Alexander.Deucher at amd.com
Mon Jul 11 13:34:12 UTC 2016


> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Ken Wang
> Sent: Monday, July 11, 2016 1:42 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Wang, Qingqing
> Subject: [PATCH 1/2] drm/amdgpu: Add pci revision id
> 
> Change-Id: I304ea635d0bfddecc4ae44f22e73166bad2d6f86
> Signed-off-by: Ken Wang <Qingqing.Wang at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu.h |  1 +
>  drivers/gpu/drm/amd/amdgpu/vi.c     | 20 ++++++++++++++++++++
>  2 files changed, 21 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index a464456..bd94f50 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -1988,6 +1988,7 @@ struct amdgpu_device {
>  	uint32_t			family;
>  	uint32_t			rev_id;
>  	uint32_t			external_rev_id;
> +	uint32_t			pci_rev_id;
>  	unsigned long			flags;
>  	int				usec_timeout;
>  	const struct amdgpu_asic_funcs	*asic_funcs;
> diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c
> b/drivers/gpu/drm/amd/amdgpu/vi.c
> index c628a09..f37f818 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vi.c
> @@ -1456,6 +1456,25 @@ static uint32_t vi_get_rev_id(struct
> amdgpu_device *adev)
>  			>> PCIE_EFUSE4__STRAP_BIF_ATI_REV_ID__SHIFT;
>  }
> 
> +static uint32_t vi_get_pci_rev_id(struct amdgpu_device *adev)
> +{
> +	uint32_t pci_rev_id = 0;
> +	uint32_t major, minor;
> +
> +	if (adev->flags & AMD_IS_APU)
> +		return 0;
> +
> +	major = (RREG32(mmPCIE_EFUSE4) &
> PCIE_EFUSE4__STRAP_BIF_F0_MAJOR_REV_ID_MASK)
> +			>>
> PCIE_EFUSE4__STRAP_BIF_F0_MAJOR_REV_ID__SHIFT;
> +
> +	minor = (RREG32(mmPCIE_EFUSE4) &
> PCIE_EFUSE4__STRAP_BIF_F0_MINOR_REV_ID_MASK)
> +			>>
> PCIE_EFUSE4__STRAP_BIF_F0_MINOR_REV_ID__SHIFT;
> +
> +	pci_rev_id = ((major & 0xf) << 4) | (minor & 0xf);
> +
> +	return pci_rev_id;
> +}
> +
>  static const struct amdgpu_asic_funcs vi_asic_funcs =
>  {
>  	.read_disabled_bios = &vi_read_disabled_bios,
> @@ -1495,6 +1514,7 @@ static int vi_common_early_init(void *handle)
>  		smc_enabled = true;
> 
>  	adev->rev_id = vi_get_rev_id(adev);
> +	adev->pci_rev_id = vi_get_pci_rev_id(adev);

How is this different from adev->pdev->revision?  Can't we just use that directly?

Alex

>  	adev->external_rev_id = 0xFF;
>  	switch (adev->asic_type) {
>  	case CHIP_TOPAZ:
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list