> -----Original Message-----
> From: amd-gfx [mailto:[email protected]] On Behalf
> Of Monk Liu
> Sent: Friday, November 11, 2016 5:04 AM
> To: [email protected]
> Cc: Liu, Monk
> Subject: [PATCH] drm/amdgpu:fix vpost_needed routine
> 
> 1,cleanup description/comments
> 2,for FIJI & passthrough, force post when smc fw version below 22.15
> 3,for other cases, follow regular rules
> 
> Change-Id: Iecdeec1801a920c1f4ea9c8fd40be9ac2f1f3c51
> Signed-off-by: Monk Liu <[email protected]>

Can you rebase this against amd-staging-4.7?  We reworked this code once we 
fixed the firmware version tracking in the firmware itself.  The firmware prior 
to that has a fixed version so we can check for that and special case it.

Alex

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 27 +++++++---------------
> -----
>  1 file changed, 7 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 5970c40..dbfe471 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -637,12 +637,10 @@ static bool amdgpu_vpost_needed(struct
> amdgpu_device *adev)
>               return false;
> 
>       if (amdgpu_passthrough(adev)) {
> -             /* for FIJI: In whole GPU pass-through virtualization case
> -              * old smc fw won't clear some registers (e.g. MEM_SIZE,
> BIOS_SCRATCH)
> -              * so amdgpu_card_posted return false and driver will
> incorrectly skip vPost.
> -              * but if we force vPost do in pass-through case, the driver
> reload will hang.
> -              * whether doing vPost depends on amdgpu_card_posted if
> smc version is above
> -              * 00160e00 for FIJI.
> +             /* for FIJI: In whole GPU pass-through virtualization case,
> after VM reboot
> +              * some old smc fw still need driver do vPost otherwise gpu
> hang, while
> +              * those smc fw version above 22.15 doesn't have this flaw,
> so we force
> +              * vpost executed for smc version below 22.15
>                */
>               if (adev->asic_type == CHIP_FIJI) {
>                       int err;
> @@ -653,22 +651,11 @@ static bool amdgpu_vpost_needed(struct
> amdgpu_device *adev)
>                               return true;
> 
>                       fw_ver = *((uint32_t *)adev->pm.fw->data + 69);
> -                     if (fw_ver >= 0x00160e00)
> -                             return !amdgpu_card_posted(adev);
> +                     if (fw_ver < 0x00160e00)
> +                             return true;
>               }
> -     } else {
> -             /* in bare-metal case, amdgpu_card_posted return false
> -              * after system reboot/boot, and return true if driver
> -              * reloaded.
> -              * we shouldn't do vPost after driver reload otherwise GPU
> -              * could hang.
> -              */
> -             if (amdgpu_card_posted(adev))
> -                     return false;
>       }
> -
> -     /* we assume vPost is neede for all other cases */
> -     return true;
> +     return !amdgpu_card_posted(adev);
>  }
> 
>  /**
> --
> 1.9.1
> 
> _______________________________________________
> amd-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to