Re: FAILED: patch "[PATCH] drm/i915/dp: workaround BIOS eDP bpp clamping issue" failed to apply to 3.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Greg,

I applied the patch to stable 3.10.y and 3.11.y without any problems using
patch. Git cherry picking the commit did not work though, but that might be
related to my very limited git skills.

Cheers, Ulf

> On November 9, 2013 at 7:21 AM gregkh@xxxxxxxxxxxxxxxxxxx wrote:
>
>
>
> The patch below does not apply to the 3.11-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <stable@xxxxxxxxxxxxxxx>.
>
> thanks,
>
> greg k-h
>
> ------------------ original commit in Linus's tree ------------------
>
> >From c6cd2ee2d59111a07cd9199564c9bdcb2d11e5cf Mon Sep 17 00:00:00 2001
> From: Jani Nikula <jani.nikula@xxxxxxxxx>
> Date: Mon, 21 Oct 2013 10:52:07 +0300
> Subject: [PATCH] drm/i915/dp: workaround BIOS eDP bpp clamping issue
>
> This isn't a real fix to the problem, but rather a stopgap measure while
> trying to find a proper solution.
>
> There are several laptops out there that fail to light up the eDP panel
> in UEFI boot mode. They seem to be mostly IVB machines, including but
> apparently not limited to Dell XPS 13, Asus TX300, Asus UX31A, Asus
> UX32VD, Acer Aspire S7. They seem to work in CSM or legacy boot.
>
> The difference between UEFI and CSM is that the BIOS provides a
> different VBT to the kernel. The UEFI VBT typically specifies 18 bpp and
> 1.62 GHz link for eDP, while CSM VBT has 24 bpp and 2.7 GHz link. We end
> up clamping to 18 bpp in UEFI mode, which we can fit in the 1.62 Ghz
> link, and for reasons yet unknown fail to light up the panel.
>
> Dithering from 24 to 18 bpp itself seems to work; if we use 18 bpp with
> 2.7 GHz link, the eDP panel lights up. So essentially this is a link
> speed issue, and *not* a bpp clamping issue.
>
> The bug raised its head since
> commit 657445fe8660100ad174600ebfa61536392b7624
> Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
> Date:   Sat May 4 10:09:18 2013 +0200
>
>     Revert "drm/i915: revert eDP bpp clamping code changes"
>
> which started clamping bpp *before* computing the link requirements, and
> thus affecting the required bandwidth. Clamping after the computations
> kept the link at 2.7 GHz.
>
> Even though the BIOS tells us to use 18 bpp through the VBT, it happily
> boots up at 24 bpp and 2.7 GHz itself! Use this information to
> selectively ignore the VBT provided value.
>
> We can't ignore the VBT eDP bpp altogether, as there are other laptops
> that do require the clamping to be used due to EDID reporting higher bpp
> than the panel can support.
>
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59841
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67950
> Tested-by: Ulf Winkelvos <ulf@xxxxxxxxxxxx>
> Tested-by: jkp <jkp@xxxxxx>
> CC: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
> Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 2c555f91bfae..1a431377d83b 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1401,6 +1401,26 @@ static void intel_dp_get_config(struct intel_encoder
> *encoder,
>            else
>                    pipe_config->port_clock = 270000;
>    }
> +
> +  if (is_edp(intel_dp) && dev_priv->vbt.edp_bpp &&
> +      pipe_config->pipe_bpp > dev_priv->vbt.edp_bpp) {
> +          /*
> +           * This is a big fat ugly hack.
> +           *
> +           * Some machines in UEFI boot mode provide us a VBT that has 18
> +           * bpp and 1.62 GHz link bandwidth for eDP, which for reasons
> +           * unknown we fail to light up. Yet the same BIOS boots up with
> +           * 24 bpp and 2.7 GHz link. Use the same bpp as the BIOS uses as
> +           * max, not what it tells us to use.
> +           *
> +           * Note: This will still be broken if the eDP panel is not lit
> +           * up by the BIOS, and thus we can't get the mode at module
> +           * load.
> +           */
> +          DRM_DEBUG_KMS("pipe has %d bpp for eDP panel, overriding
> BIOS-provided max %d bpp\n",
> +                        pipe_config->pipe_bpp, dev_priv->vbt.edp_bpp);
> +          dev_priv->vbt.edp_bpp = pipe_config->pipe_bpp;
> +  }
>  }
> 
>  static bool is_edp_psr(struct intel_dp *intel_dp)
>
>
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]