[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