From: Keith Packard <keithp@keithp.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Dave Airlie <airlied@redhat.com>,
intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 14/21] drm/i915: Correct eDP panel power sequencing delay computations
Date: Fri, 30 Sep 2011 20:31:13 -0700 [thread overview]
Message-ID: <yunoby15qwu.fsf@aiko.keithp.com> (raw)
In-Reply-To: <20110930181644.GR2859@phenom.ffwll.local>
[-- Attachment #1: Type: text/plain, Size: 2791 bytes --]
On Fri, 30 Sep 2011 20:16:44 +0200, Daniel Vetter <daniel@ffwll.ch> wrote:
> Awesome patch description and the code agrees with what I've cross-checked
> on bspec. The only fear I have is that we currently ignore the backlight
> on/off timings and some panel probably relies on use waiting for backlight
> on/off + panel on/off in total. But that's material for another patch.
Ok, I've just read through the VBIOS source code to figure out how it
converts the edp_power_seq table into the panel delay register settings.
intel_bios.h says:
struct edp_power_seq {
u16 t3;
u16 t7;
u16 t9;
u16 t10;
u16 t12;
} __attribute__ ((packed));
The VBIOS source code says that these five words are:
Data Code
DW xxxx T1+T2 T1_T2 (Power Up Delay)
DW yyyy T3 T5 (Power-On to backlight On)
DW zzzz T4 T6 (Backlight off to power off)
DW wwww T5 T3 (power down delay)
DW tttt T7 T4 (power cycle delay)
('Data' is how the initialized data is labeled, 'Code' is how the
struct is defined and used. Yes, they appear to be different).
And, reading the code that programs the eDP registers
PP_ON_DELAYS = (T1_T2 << 16) | T5
PP_OFF_DELAYS = (T3 << 16) | T6
PP_DIVISOR = T4 / 1000 + 1
The BSPEC/BIOS names don't agree with the eDP spec. Here's my plan:
Data Code eDP spec intel_dp name What I'm using this for:
T1+T2 T1_T2 T1+T3 panel_power_up_delay VCC on to AUX channel
T3 T5 T6+T8 backlight_on_delay Link training to backlight on
T4 T6 T9 backlight_off_delay Backlight off to video off
T5 T3 T10 panel_power_down_delay Video off to VCC off
T7 T4 T11+T12 panel_power_cycle_delay VCC off to VCC on
It's trivial to pull the values back out of the PP registers, so I'll do
that and use the maximum of the two instead of preferring one or the
other. Waiting too long shouldn't ever hurt.
As far as the edp_power_seq register goes, I'd love to know where those
names came from. They don't quite match my interpretation, in
particular, the 't7' is almost certainly not the eDP T7 value, which is
the delay from valid video data on the link to a correct display,
which isn't a useful value as it doesn't impact the source at all.
Ok, so a bit more whacking of code and I'll post an updated patch that
uses all of these values as above.
--
keith.packard@intel.com
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2011-10-01 3:31 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-19 22:21 drm/i915: eDP cleanup patch series -- fixes SNB MacBook Air Keith Packard
2011-09-19 22:21 ` Keith Packard
2011-09-19 22:21 ` [PATCH 1/9] drm/i915: Enable digital port hotplug on PCH systems Keith Packard
2011-09-19 22:21 ` [PATCH 2/9] drm/i915: Remove extra 300ms delay during eDP mode setting Keith Packard
2011-09-19 22:21 ` [PATCH 3/9] drm/i915: Only use VBT panel mode on eDP if no EDID is found Keith Packard
2011-09-19 22:21 ` [PATCH 4/9] drm/i915: Check eDP power when doing aux channel communications Keith Packard
2011-09-19 22:21 ` [PATCH 5/9] drm/i915: Unlock PCH_PP_CONTROL always Keith Packard
2011-09-19 22:22 ` [PATCH 6/9] drm/i915: Make sure eDP power is on before using aux channel Keith Packard
2011-09-21 3:50 ` [Intel-gfx] " Jesse Barnes
2011-09-21 3:50 ` Jesse Barnes
2011-09-21 4:45 ` [Intel-gfx] " Keith Packard
2011-09-23 2:55 ` Jesse Barnes
2011-09-23 2:55 ` Jesse Barnes
2011-09-23 5:07 ` [Intel-gfx] " Keith Packard
2011-09-23 5:07 ` Keith Packard
2011-09-19 22:22 ` [PATCH 7/9] drm/i915: Correct eDP panel power sequencing delay computations Keith Packard
2011-09-19 22:22 ` [PATCH 8/9] drm/i915: Move eDP panel fixed mode from dev_priv to intel_dp Keith Packard
2011-09-19 22:22 ` [PATCH 9/9] drm/i915: Disable eDP VDD in a delayed work proc instead of synchronously Keith Packard
2011-09-21 4:17 ` [Intel-gfx] " Jesse Barnes
2011-09-21 4:51 ` Keith Packard
2011-09-23 3:22 ` Jesse Barnes
2011-09-23 3:22 ` Jesse Barnes
2011-09-30 1:09 ` [PATCH 00/24] MacBook Air patch sequence (v2) Keith Packard
2011-09-30 1:09 ` [PATCH 01/21] drm/i915: Enable digital port hotplug on PCH systems Keith Packard
2011-09-30 16:17 ` [Intel-gfx] " Daniel Vetter
2011-10-03 20:34 ` Jesse Barnes
2011-09-30 1:09 ` [PATCH 02/21] drm/i915: Shut down PCH interrupts during irq_uninstall Keith Packard
2011-09-30 16:20 ` Daniel Vetter
2011-09-30 17:44 ` Keith Packard
2011-09-30 17:56 ` Daniel Vetter
2011-09-30 1:09 ` [PATCH 03/21] drm/i915: Remove extra 300ms delay during eDP mode setting Keith Packard
2011-09-30 1:09 ` Keith Packard
2011-09-30 16:27 ` Daniel Vetter
2011-09-30 17:50 ` Keith Packard
2011-09-30 17:50 ` Keith Packard
2011-09-30 17:58 ` Daniel Vetter
2011-09-30 18:09 ` Daniel Vetter
2011-09-30 18:09 ` Daniel Vetter
2011-09-30 18:28 ` Keith Packard
2011-09-30 18:28 ` Keith Packard
2011-09-30 1:09 ` [PATCH 04/21] drm/i915: Only use VBT panel mode on eDP if no EDID is found Keith Packard
2011-09-30 1:09 ` Keith Packard
2011-09-30 16:32 ` Daniel Vetter
2011-09-30 17:58 ` Keith Packard
2011-10-03 20:42 ` [Intel-gfx] " Jesse Barnes
2011-09-30 1:09 ` [PATCH 05/21] drm/i915: Check eDP power when doing aux channel communications Keith Packard
2011-09-30 17:02 ` [Intel-gfx] " Daniel Vetter
2011-09-30 18:01 ` Keith Packard
2011-09-30 18:11 ` Daniel Vetter
2011-09-30 18:23 ` Chris Wilson
2011-10-03 20:48 ` Jesse Barnes
2011-10-03 20:48 ` Jesse Barnes
2011-09-30 1:09 ` [PATCH 06/21] drm/i915: Unlock PCH_PP_CONTROL always Keith Packard
2011-09-30 17:09 ` [Intel-gfx] " Daniel Vetter
2011-09-30 18:01 ` Keith Packard
2011-09-30 23:14 ` Keith Packard
2011-10-01 9:35 ` Daniel Vetter
2011-09-30 1:09 ` [PATCH 07/21] drm/i915: Check for eDP inside intel_edp_panel_vdd_on/off Keith Packard
2011-09-30 17:13 ` [Intel-gfx] " Daniel Vetter
2011-09-30 18:02 ` Keith Packard
2011-09-30 1:09 ` [PATCH 08/21] drm/i915: Turn force VDD back off when panel running in intel_dp_dpms Keith Packard
2011-09-30 17:15 ` [Intel-gfx] " Daniel Vetter
2011-09-30 1:09 ` [PATCH 09/21] drm/i915: Delay DP i2c initialization until panel power timings are computed Keith Packard
2011-09-30 17:25 ` [Intel-gfx] " Daniel Vetter
2011-09-30 1:09 ` [PATCH 10/21] drm/i915: Wrap DP EDID fetch functions to enable eDP panel power Keith Packard
2011-09-30 17:32 ` Daniel Vetter
2011-10-03 20:59 ` [Intel-gfx] " Jesse Barnes
2011-09-30 1:09 ` [PATCH 11/21] drm/i915: Enable eDP panel power during I2C initialization sequence Keith Packard
2011-09-30 17:26 ` Daniel Vetter
2011-09-30 1:09 ` [PATCH 12/21] drm/i915: Ensure eDP powered up during DP_SET_POWER operation in dp_prepare Keith Packard
2011-09-30 17:45 ` Daniel Vetter
2011-09-30 18:30 ` Keith Packard
2011-09-30 1:09 ` [PATCH 13/21] drm/i915: Place long delays after each eDP VDD operation Keith Packard
2011-09-30 18:01 ` [Intel-gfx] " Daniel Vetter
2011-09-30 18:31 ` Keith Packard
2011-09-30 1:09 ` [PATCH 14/21] drm/i915: Correct eDP panel power sequencing delay computations Keith Packard
2011-09-30 18:16 ` Daniel Vetter
2011-09-30 18:33 ` Keith Packard
2011-10-01 3:31 ` Keith Packard [this message]
2011-10-01 9:59 ` Daniel Vetter
2011-10-01 19:01 ` Keith Packard
2011-10-01 19:01 ` Keith Packard
2011-10-03 10:10 ` Daniel Vetter
2011-09-30 1:09 ` [PATCH 15/21] drm/i915: Move eDP panel fixed mode from dev_priv to intel_dp Keith Packard
2011-09-30 18:20 ` [Intel-gfx] " Daniel Vetter
2011-09-30 1:09 ` [PATCH 16/21] drm/i915: edp_panel_on does not need to return a bool Keith Packard
2011-09-30 18:21 ` Daniel Vetter
2011-10-03 21:03 ` [Intel-gfx] " Jesse Barnes
2011-09-30 1:09 ` [PATCH 17/21] drm/i915: Create helper functions to determine eDP power state Keith Packard
2011-09-30 18:26 ` [Intel-gfx] " Daniel Vetter
2011-09-30 1:09 ` [PATCH 18/21] drm/i915: Disable eDP VDD in a delayed work proc instead of synchronously Keith Packard
2011-09-30 10:31 ` Chris Wilson
2011-09-30 10:31 ` Chris Wilson
2011-09-30 18:06 ` Keith Packard
2011-09-30 18:47 ` Daniel Vetter
2011-09-30 20:56 ` Keith Packard
2011-09-30 22:01 ` Daniel Vetter
2011-09-30 1:09 ` [PATCH 19/21] drm/i915: Asynchronous eDP panel power off Keith Packard
2011-09-30 18:55 ` Daniel Vetter
2011-09-30 20:57 ` Keith Packard
2011-10-12 14:41 ` Dave Airlie
2011-10-12 16:43 ` Keith Packard
2011-09-30 1:09 ` [PATCH 20/21] drm/i915: Restrict ILK-specific eDP power hack to ILK Keith Packard
2011-09-30 18:57 ` Daniel Vetter
2011-09-30 1:09 ` [PATCH 21/21] drm/i915: No need to wait for eDP power off delay if panel is on Keith Packard
2011-09-30 19:01 ` Daniel Vetter
2011-09-30 3:33 ` [PATCH 00/24] MacBook Air patch sequence (v2) Greg KH
2011-09-30 8:58 ` Keith Packard
2011-09-30 13:57 ` Greg KH
2011-09-30 18:10 ` Keith Packard
2011-09-30 13:20 ` Ted Ts'o
2011-09-30 18:17 ` Keith Packard
2011-10-03 21:06 ` [Intel-gfx] " Jesse Barnes
2011-10-11 8:04 ` Chris Wilson
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=yunoby15qwu.fsf@aiko.keithp.com \
--to=keithp@keithp.com \
--cc=airlied@redhat.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.