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
prev parent 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