[PATCH] drm/amdgpu:fix vpost_needed routine
Deucher, Alexander
Alexander.Deucher at amd.com
Mon Nov 14 16:54:25 UTC 2016
> -----Original Message-----
> From: Liu, Monk
> Sent: Sunday, November 13, 2016 10:17 PM
> To: Deucher, Alexander; amd-gfx at freedesktop.org
> Subject: 答复: [PATCH] drm/amdgpu:fix vpost_needed routine
>
> Alex, the patch is already rebased against staging-4.7 , it just fixed non-FIJI
> pass-through bug, which should use regular rules but without this patch it
> will always do post.
Whoops, sorry, I mixed this up with another change. Patch is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
>
> BR Monk
>
> -----邮件原件-----
> 发件人: Deucher, Alexander
> 发送时间: Friday, November 11, 2016 11:05 PM
> 收件人: Liu, Monk; amd-gfx at freedesktop.org
> 抄送: Liu, Monk
> 主题: RE: [PATCH] drm/amdgpu:fix vpost_needed routine
>
> > -----Original Message-----
> > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> > Of Monk Liu
> > Sent: Friday, November 11, 2016 5:04 AM
> > To: amd-gfx at freedesktop.org
> > 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 <Monk.Liu at amd.com>
>
> 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
> > amd-gfx at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list