On Mon, 23 Sep 2013, Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx> wrote: > On 09/22/2013 11:18 PM, Jani Nikula wrote: >> On Sat, 21 Sep 2013, Ben Widawsky <benjamin.widawsky@xxxxxxxxx> wrote: >>> We've had several reports of an Asus Zenbook reporting an 18bpp eDP >>> display, which then proceeds to not work. Using the default 24, work >>> just fine. Since it appears this is somewhat common in the budding world >>> of eDP, make a new quirk for it, and use it. >> Srinivas, are you using UEFI boot? Does the problem go away if you try >> enabling CSM or legacy boot? >> >> That would be [1]. On certain machines we need to use the bpp from VBT, >> otherwise eDP fails. For some reason the VBT on certain other machines >> reports a different bpp value depending on UEFI vs. CSM/legacy boot, >> where the former fails but latter works. >> >> There are more affected machines than just Asus Zenbook UX31A IVB, and >> I'm not sure if quirking is the right option... still hoping to find a >> good solution that works out of the box for everyone. >> > I see for some folks enabling legacy mode solves this issue and for some > it doesn't solve (There are number of report of this issue). I'd be interested in references and hard data; I was pretty much under the impression it always works in legacy. > For me UEFI boot is important because I am working on some feature > requiring UEFI boot. Of course; I'm not saying enabling legacy is a fix, or even a decent workaround. Just interested in another data point. Jani. >> BR, >> Jani. >> >> >> [1] https://bugzilla.kernel.org/show_bug.cgi?id=59841 >> >> >>> This code has been changed several times. Amongst the most recent with >>> the best history are: >>> >>> commit 57c219633275c7e7413f8bc7be250dc092887458 >>> Author: Daniel Vetter <daniel.vetter@xxxxxxxx> >>> Date: Thu Apr 4 17:19:37 2013 +0200 >>> >>> drm/i915: revert eDP bpp clamping code changes >>> >>> and >>> >>> commit af13188a1a6623fc8b4b6c42178046fb80f8b1d0 >>> Author: Daniel Vetter <daniel.vetter@xxxxxxxx> >>> Date: Tue Feb 19 17:45:00 2013 +0100 >>> >>> drm/i915: force bpp for eDP panels >>> >>> Reported-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx> >>> CC: Adam Jackson <ajax@xxxxxxxxxx> >>> CC: Daniel Vetter <daniel.vetter@xxxxxxxx> >>> Signed-off-by: Ben Widawsky <ben@xxxxxxxxxxxx> >>> --- >>> drivers/gpu/drm/i915/i915_drv.h | 1 + >>> drivers/gpu/drm/i915/intel_display.c | 12 ++++++++++++ >>> drivers/gpu/drm/i915/intel_dp.c | 4 +++- >>> 3 files changed, 16 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h >>> index 8c52cbd..bc8ff0a 100644 >>> --- a/drivers/gpu/drm/i915/i915_drv.h >>> +++ b/drivers/gpu/drm/i915/i915_drv.h >>> @@ -672,6 +672,7 @@ enum intel_sbi_destination { >>> #define QUIRK_LVDS_SSC_DISABLE (1<<1) >>> #define QUIRK_INVERT_BRIGHTNESS (1<<2) >>> #define QUIRK_NO_PCH_PWM_ENABLE (1<<3) >>> +#define QUIRK_IGNORE_VBT_BPP (1<<4) >>> >>> struct intel_fbdev; >>> struct intel_fbc_work; >>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c >>> index 8206ee7..c364377 100644 >>> --- a/drivers/gpu/drm/i915/intel_display.c >>> +++ b/drivers/gpu/drm/i915/intel_display.c >>> @@ -10139,6 +10139,15 @@ static void quirk_no_pcm_pwm_enable(struct drm_device *dev) >>> DRM_INFO("applying no-PCH_PWM_ENABLE quirk\n"); >>> } >>> >>> +/* Some machines (ux31a) advertise the panel should use 18bpp, but it lies. >>> + */ >>> +static void quirk_ignore_vbt_bpp(struct drm_device *dev) >>> +{ >>> + struct drm_i915_private *dev_priv = dev->dev_private; >>> + dev_priv->quirks |= QUIRK_IGNORE_VBT_BPP; >>> + DRM_INFO("applying IGNORE_VBT_BPP quirk\n"); >>> +} >>> + >>> struct intel_quirk { >>> int device; >>> int subsystem_vendor; >>> @@ -10213,6 +10222,9 @@ static struct intel_quirk intel_quirks[] = { >>> { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable }, >>> /* Dell XPS13 HD and XPS13 FHD Ivy Bridge */ >>> { 0x0166, 0x1028, 0x058b, quirk_no_pcm_pwm_enable }, >>> + >>> + /* Asus Zenbook UX31A Ivybridge eDP */ >>> + { 0x0166, 0x1043, 0x1517, quirk_ignore_vbt_bpp }, >>> }; >>> >>> static void intel_init_quirks(struct drm_device *dev) >>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c >>> index 9770160..fd47be8 100644 >>> --- a/drivers/gpu/drm/i915/intel_dp.c >>> +++ b/drivers/gpu/drm/i915/intel_dp.c >>> @@ -805,7 +805,9 @@ 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 = pipe_config->pipe_bpp; >>> - if (is_edp(intel_dp) && dev_priv->vbt.edp_bpp) { >>> + if (is_edp(intel_dp) && >>> + dev_priv->vbt.edp_bpp && >>> + (dev_priv->quirks & QUIRK_IGNORE_VBT_BPP) == 0) { >>> DRM_DEBUG_KMS("clamping bpp for eDP panel to BIOS-provided %i\n", >>> dev_priv->vbt.edp_bpp); >>> bpp = min_t(int, bpp, dev_priv->vbt.edp_bpp); >>> -- >>> 1.8.4 >>> >>> _______________________________________________ >>> Intel-gfx mailing list >>> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx >>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx