All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Thomas Richter <thor@math.tu-berlin.de>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
Subject: Re: Questions on display pipes on 835GM
Date: Sat, 5 Oct 2013 14:44:32 +0300	[thread overview]
Message-ID: <20131005114432.GE9395@intel.com> (raw)
In-Reply-To: <524FCEE8.4010307@math.tu-berlin.de>

On Sat, Oct 05, 2013 at 10:33:44AM +0200, Thomas Richter wrote:
> Hi Daniel, hi folks,
> 
> just playing again with the support code for the NS2501 DVO in my old 
> laptop. Despite finding one bug I'll send a patch
> for soon, there is something else that makes we wonder, and that is the 
> connection to external monitors.
> 
> Just to remind you, the NS2501 in this specific laptop, or probably in 
> general, seems to be clocked by parts of the
> sync signal of the display pipe. If the display pipe does not deliver 
> the right clock, the DVO locks up and does not
> react anymore to any commands on the i2c bus. The current ns2501 DVO 
> driver code thus includes a little hack that,
> if it detects that the DVO remains silent, forces the pipe A DLL to the 
> right values to reactivate it. This is a hack, though
> it works.
> 
> Now, interesting things happen if I connect an external monitor: The 
> i915 code reads the edid data from the monitor,
> finds that the monitor prefers a high clock rate (here an old CRT) of 
> 75Hz vertical, and reconfigures the display pipe.
> Interestingly, this *also* seems to modify the display pipe of the DVO 
> which should actually be connected to a
> different pipe. Anyhow, as now the DVO sees a clock signal out of its 
> operating range (60Hz vertical) it locks up and
> no display appears *on the internal* LCD. In fact, the display breaks 
> down completely and all you get is a residual
> display on the TFT which no longer receives refresh. If I force the 
> clocking of the external monitor to 60Hz, both
> displays work again. So for me it looks like the role of the display 
> pipes is somehow swapped if I connect an external
> monitor - it seems as if in this case either both monitors are driven by 
> the same pipe (why?) of that now pipe B feeds
> the DVI1 hence the DVO and the TFT, and pipe A feeds the external monitor.
> 
> Thus, here my questions:
> *) Can I, within the dvo driver code, somehow detect to which display 
> pipe the DVO and thus the TFT is actually connected
> to?

Something like this:
intel_dvo = container_of(dvo,  struct intel_dvo, dev);
pipe = to_intel_ctrc(intel_dvo.base.base.crtc)->pipe

But currectly it looks like struct intel_dvo isn't visible 
outside intel_dvo.c which would need changing, or the hacks
need to be moved into intel_dvoc.

> *) Can I somehow prohibit that the DVO is driven by *anything but* the 
> 60Hz signal it likes, thus to prevent the lock-up
> and disable the weird hack I'm currently using?

I think currently it should be driven at the correct rate or not at all.


The CRT port can only be driven by pipe A, so I think that explains why
your hacks may go bad when a CRT monitor is used.

I see several problems with the ns2501 code.
- it assumes DVOC. While that may be true always, getting the correct
  register from .dvo_reg is trivial
- assumes pipe A, which as stated isn't always true. During modesetting
  operations you can get the correct crtc via intel_dvo.base.base.crtc,
  from which you can get the pipe.
- the hack doesn't set up all the DPLL registers, but I suppose we
  could try to eliminate the hack. One thing that would need maybe
  fixing is the get_hw_state function. We could perhaps just change
  intel_dvo.c not to call the connector get_hw_state func if the
  encoder says the dvo port isn't active.

> 
> Somehow, the logic which display pipe drives which output is still 
> unclear to me. Would be great if somebody could help
> me out here.
> 
> Thanks,
>      Thomas
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC

  reply	other threads:[~2013-10-05 11:44 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-23 22:51 [PATCH] drm/i915: enable trickle feed on Haswell Paulo Zanoni
2013-08-30 17:25 ` Ville Syrjälä
2013-09-02  6:01   ` Daniel Vetter
     [not found]   ` <29427_1378101775_52242A0E_29427_747_1_20130902060151.GE9374@phenom.ffwll.local>
2013-10-05  8:33     ` Questions on display pipes on 835GM Thomas Richter
2013-10-05 11:44       ` Ville Syrjälä [this message]
     [not found]       ` <29761_1380973482_524FFBA9_29761_4042_1_20131005114432.GE9395@intel.com>
2013-10-05 16:47         ` Thomas Richter
2013-10-05 19:24           ` Daniel Vetter
2013-10-05 19:39             ` Daniel Vetter
     [not found]             ` <29761_1381001928_52506AC8_29761_5606_1_20131005193904.GX31334@phenom.ffwll.local>
2013-10-05 23:09               ` Thomas Richter
2013-10-05 23:37                 ` Daniel Vetter
     [not found]                 ` <5132_1381149082_5252A99A_5132_80_1_CAKMK7uHkOJ=urFKCacocf_i+6YL9Azf5vK=Au-kRJMi=sNBP1Q@mail.gmail.com>
2013-10-07 21:58                   ` Broken in 3.10.10 (was: Questions on display pipes on 835GM) Thomas Richter
2013-10-08  7:24                     ` Daniel Vetter
2013-10-08  8:39                       ` Daniel Vetter
2013-10-08  9:14                         ` Chris Wilson
     [not found]                       ` <26192_1381221546_5253C4A9_26192_7222_1_CAKMK7uGvk9vuNXunutyHjkGjvBWsv7ObN02EfbG2679MtQ5M=A@mail.gmail.com>
2013-10-08 17:06                         ` Broken in 3.10.10 Thomas Richter
2013-10-05 23:04         ` [PATCH] 835GM DLL setup Thomas Richter
2013-10-05 23:46           ` Daniel Vetter

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=20131005114432.GE9395@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=thor@math.tu-berlin.de \
    /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.