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. 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