On Tue, May 18, 2021 at 12:09:56PM +0100, Emil Velikov wrote: > Hi Ville, > > On Mon, 17 May 2021 at 18:24, Ville Syrjälä > <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > > > > On Sun, May 16, 2021 at 06:14:32PM +0100, Emil Velikov wrote: > > > From: Vivek Das Mohapatra <vivek@xxxxxxxxxxxxx> > > > > > > This patch is to do with seamless handover, eg when the sequence is > > > bootloader → plymouth → desktop. > > > > > > It switches the vga arbiter from the "other" GPU to the default one > > > (intel in this case), so the driver can issue some io(). > > > > I don't understand what this commit message is trying to say. > > > Bunch of context is lost due to the patch age, so I'm not 100% sure of > the actual hardware setup where this occurs. > Does the following make sense? > > Currently on dual GPU systems, we do not get seamless handover as the > output flickers during the transition bootloader -> plymouth -> > desktop. > This happens as a result of switching (via the VGA arbiter) from the > "other" GPU back to the default i915 one and issuing io() commands. Hmm. Does this work? --- a/drivers/gpu/drm/i915/display/intel_vga.c +++ b/drivers/gpu/drm/i915/display/intel_vga.c @@ -29,6 +29,9 @@ void intel_vga_disable(struct drm_i915_private *dev_priv) i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv); u8 sr1; + if (intel_de_read(dev_priv, vga_reg) & VGA_DISP_DISABLE) + return; + /* WaEnableVGAAccessThroughIOPort:ctg,elk,ilk,snb,ivb,vlv,hsw */ vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO); outb(SR01, VGA_SR_INDEX); -- Ville Syrjälä Intel