It fixes a issue hidden in:

95 static bool igp_read_bios_from_vram(struct amdgpu_device *adev)
 96 {
 97     uint8_t __iomem *bios;
 98     resource_size_t vram_base;
 99     resource_size_t size = 256 * 1024; /* ??? */
100
101     if (!(adev->flags & AMD_IS_APU))
102             if (amdgpu_need_post(adev))
103             return false;


This makes bios reading fallback to SMC INDEX/DATA register case.

— 
Sincerely Yours,
Pixel








On 17/10/2017, 3:48 PM, "Liu, Monk" <[email protected]> wrote:

>I don't understand how this patch works??? Looks like just rename vpost_needed 
>to check_post
>
>-----Original Message-----
>From: Pixel Ding [mailto:[email protected]] 
>Sent: 2017年10月17日 14:38
>To: [email protected]; Liu, Monk <[email protected]>; Koenig, 
>Christian <[email protected]>
>Cc: Li, Bingley <[email protected]>; Sun, Gary <[email protected]>; Ding, 
>Pixel <[email protected]>
>Subject: [PATCH 1/3] drm/amdgpu: always consider virualised device for 
>checking post
>
>From: pding <[email protected]>
>
>The post checking on scratch registers isn't reliable for virtual function.
>
>Signed-off-by: pding <[email protected]>
>---
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
>b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>index 683965b..ab8f0d6 100644
>--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>@@ -669,7 +669,7 @@ void amdgpu_gart_location(struct amdgpu_device *adev, 
>struct amdgpu_mc *mc)
>  * or post is needed if  hw reset is performed.
>  * Returns true if need or false if not.
>  */
>-bool amdgpu_need_post(struct amdgpu_device *adev)
>+static bool amdgpu_check_post(struct amdgpu_device *adev)
> {
>       uint32_t reg;
> 
>@@ -692,7 +692,7 @@ bool amdgpu_need_post(struct amdgpu_device *adev)
> 
> }
> 
>-static bool amdgpu_vpost_needed(struct amdgpu_device *adev)
>+bool amdgpu_need_post(struct amdgpu_device *adev)
> {
>       if (amdgpu_sriov_vf(adev))
>               return false;
>@@ -716,7 +716,7 @@ static bool amdgpu_vpost_needed(struct amdgpu_device *adev)
>                               return true;
>               }
>       }
>-      return amdgpu_need_post(adev);
>+      return amdgpu_check_post(adev);
> }
> 
> /**
>@@ -2208,7 +2208,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
>       amdgpu_device_detect_sriov_bios(adev);
> 
>       /* Post card if necessary */
>-      if (amdgpu_vpost_needed(adev)) {
>+      if (amdgpu_need_post(adev)) {
>               if (!adev->bios) {
>                       dev_err(adev->dev, "no vBIOS found\n");
>                       amdgpu_vf_error_put(AMDGIM_ERROR_VF_NO_VBIOS, 0, 0);
>--
>2.9.5
>
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to