public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel GFX <intel-gfx@lists.freedesktop.org>,
	Ben Widawsky <ben@bwidawsk.net>,
	Ben Widawsky <benjamin.widawsky@intel.com>
Subject: Re: [PATCH] drm/i915: Quirk to ignore VBT bpp
Date: Mon, 23 Sep 2013 20:59:06 +0300	[thread overview]
Message-ID: <87k3i7l8r9.fsf@intel.com> (raw)
In-Reply-To: <52405933.1030304@linux.intel.com>

On Mon, 23 Sep 2013, Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> wrote:
> On 09/22/2013 11:18 PM, Jani Nikula wrote:
>> On Sat, 21 Sep 2013, Ben Widawsky <benjamin.widawsky@intel.com> 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@ffwll.ch>
>>> 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@ffwll.ch>
>>> Date:   Tue Feb 19 17:45:00 2013 +0100
>>>
>>>      drm/i915: force bpp for eDP panels
>>>
>>> Reported-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
>>> CC: Adam Jackson <ajax@redhat.com>
>>> CC: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
>>> ---
>>>   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@lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

      reply	other threads:[~2013-09-23 18:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-20 21:43 [PATCH] drm/i915: Quirk to ignore VBT bpp Ben Widawsky
2013-09-23  6:18 ` Jani Nikula
2013-09-23 15:07   ` Srinivas Pandruvada
2013-09-23 17:59     ` Jani Nikula [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k3i7l8r9.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=ben@bwidawsk.net \
    --cc=benjamin.widawsky@intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=srinivas.pandruvada@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox