[Intel-gfx] [PATCH 05/10] drm/i915: force bpp for eDP panels
Jani Nikula
jani.nikula at intel.com
Fri Feb 22 07:50:36 CET 2013
On Fri, 22 Feb 2013, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> We'ev had our fair share of woes already which showed that we can't
^^
> rely on the bpc limits in the EDID for eDP panels without risking
> black screens. So now we limit the depth by what the BIOS recommends
> in the VBT:
>
> commit 2f4f649a69a9eb51f6e98130e19dd90a260a4145
> Author: Jani Nikula <jani.nikula at intel.com>
> Date: Mon Nov 12 14:33:44 2012 +0200
>
> drm/i915: do not ignore eDP bpc settings from vbt
>
> But that's not enough, since at least the panel on my ASUS Zenbook
> Prime here is also unhappy if the bpc is too low. Hence just take the
> firmware value and dither to get what flimsy panels want.
>
> Like before we ensure that we don't change the bpp if the firmware
> doesn't proved a value, see
s/proved/provide/
> commit 2f4f649a69a9eb51f6e98130e19dd90a260a4145
> Author: Jani Nikula <jani.nikula at intel.com>
> Date: Mon Nov 12 14:33:44 2012 +0200
>
> drm/i915: do not ignore eDP bpc settings from vbt
That's the same reference as above. Perhaps you mean:
commit 9a30a61f3516871c5c638fd7c025fbaa11ddf7fe
Author: Jani Nikula <jani.nikula at intel.com>
Date: Mon Nov 12 14:33:45 2012 +0200
drm/i915: do not default to 18 bpp for eDP if missing from VBT
With that and a few typos here and there sorted out,
Reviewed-by: Jani Nikula <jani.nikula at intel.com>
> Cc: Jani Nikula <jani.nikula at intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 83e3791..81693fc 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -755,8 +755,15 @@ intel_dp_compute_config(struct intel_encoder *encoder,
> /* Walk through all bpp values. Luckily they're all nicely spaced with 2
> * bpc in between. */
> bpp = min_t(int, 8*3, pipe_config->pipe_bpp);
> - if (is_edp(intel_dp) && dev_priv->edp.bpp)
> - bpp = min_t(int, bpp, dev_priv->edp.bpp);
> +
> + /* eDP panels are really fickle, try to enfore the bpp the firmware
^
> + * recomments. This means we'll up-dither 16bpp framebuffers on
^
> + * high-depth panels. */
> + if (is_edp(intel_dp) && dev_priv->edp.bpp) {
> + DRM_DEBUG_KMS("forcing bpp for eDP panel to BIOS-provided %i\n",
> + dev_priv->edp.bpp);
> + bpp = dev_priv->edp.bpp;
> + }
>
> for (; bpp >= 6*3; bpp -= 2*3) {
> mode_rate = intel_dp_link_required(target_clock, bpp);
> --
> 1.7.11.4
More information about the Intel-gfx
mailing list