Re: Linux 2.6.31-rc7
From: Linus Torvalds
Date: Wed Aug 26 2009 - 13:13:24 EST
On Wed, 26 Aug 2009, Dave Airlie wrote:
>
> 3. Here's the thing, we do detect something has changed, we detect we no
> longer have a monitor connected on the mac mini because the routing
> for the DDC pins is insane and need special treatment in the driver.
That's the second thing - DDC in general seems to be _very_ flaky on intel
chips.
And I don't mean that in a "Mac Mini" kind of sense. I'm seeing in on
other machines. Here's my old EeePC 701:
[drm] Initialized drm 1.1.0 20060810
i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
i915 0000:00:02.0: setting latency timer to 64
i2c-adapter i2c-1: unable to read EDID block.
i915 0000:00:02.0: LVDS-1: no EDID data
[drm] DAC-6: set mode 640x480 0
i2c-adapter i2c-1: unable to read EDID block.
i915 0000:00:02.0: LVDS-1: no EDID data
[drm] TV-11: set mode NTSC 480i 0
allocated 800x480 fb: 0x007df000, bo f735b540
[drm] LVDS-8: set mode 800x480 15
Console: switching to colour frame buffer device 100x30
and quite frankly, I suspect you've never ever actually googled for "no
EDID data", because if you had, you'd have seen that this is quite common.
And yes, the response of KMS seems to be "ok, I failed at EDID, so I'll
just assume something isn't there". And then usually it picks LVDS
instead, if it finds a VBT table for it. Which happens to work fine on
most laptops, but it's still just a random heuristic.
And yes, for all I know it's because the display really doesn't do any
EDID.
And that really kind of is the point - it doesn't even matter whether the
problem is the Intel driver doing something wrong on the EDID front (which
it has done quite often - ranging from just looking at the wrong port, to
not setting the right bits to make bit-banging i2c work AT ALL), or
whether the problem is that the hardware is wired up oddly (Mac Mini) or
whether it's the hardware simply not doign EDID at all (maybe my EeePC? Or
a really old VGA monitor, or whatever).
In all three cases the end result is "no EDID", but regardless of that,
the correct action is basically _never_ to say "ok, I'll just assume that
the display is on connector XYZ regardless of what the state of the
graphics chip is".
> so yes I think do better at failing is what is needed, its still
> failing but its more user friendly fail.
Yes. If something fails ("oops, I can't seem EDID for any connector"), I
wish KMS would fail way better than just default to some crazy setup. The
failure mode should be to at least drive whatever the BIOS enabled.
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/