Re: Linux 3.4-rc4

From: Luca Tettamanti
Date: Mon Apr 30 2012 - 07:01:29 EST


On Mon, Apr 30, 2012 at 11:07 AM, Maarten Maathuis <madman2003@xxxxxxxxx> wrote:
> On Mon, Apr 30, 2012 at 12:37 AM, Dmitry Torokhov
> <dmitry.torokhov@xxxxxxxxx> wrote:
>> On Sat, Apr 28, 2012 at 11:33:50AM -0400, Nick Bowler wrote:
>>> On 2012-04-28 02:19 -0400, Alex Deucher wrote:
>>> > On Fri, Apr 27, 2012 at 8:39 PM, Nick Bowler <nbowler@xxxxxxxxxxxxxxxx> wrote:
>>> > > Hi Ben,
>>> > >
>>> > > On 2012-04-27 15:20 +1000, Ben Skeggs wrote:
>>> > >> Does this patch help you at all?
>>> > >>
>>> > >> http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=a3a285f17867f0018de798b5ee85731ec1268305
>>> > >
>>> > > Yes. ÂI cherry-picked this patch on top of Linus' master (3.4-rc4+) and
>>> > > this appears to solve the "black screen on VGA" problem described in the
>>> > > original report. ÂThanks!
>>> > >
>>> > > Unfortunately, that's not the end of my VGA-related regressions. :(
>>> > >
>>> > > While tracking down the black screen issue, I've been having the monitor
>>> > > directly connected to the video card the whole time, but now when I'm
>>> > > connected through my KVM switch (an IOGear GCS1804), it appears that
>>> > > something's going wrong with reading the EDID, because the available
>>> > > modes are all screwed up (both console and X decide they want to drive
>>> > > the display at 1024x768). ÂHere's the output of xrandr on 3.2.15:
>>> > >
>>> > > Â% xrandr
>>> > > ÂScreen 1: minimum 320 x 200, current 1600 x 1200, maximum 4096 x 4096
>>> > > ÂVGA-1 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 352mm x 264mm
>>> > > Â Â 1600x1200 Â Â Â75.0*+ Â 70.0 Â Â 65.0 Â Â 60.0
>>> > > Â Â 1280x1024 Â Â Â85.0 + Â 75.0 Â Â 60.0
>>> > > Â Â 1920x1440 Â Â Â60.0
>>> > > Â Â 1856x1392 Â Â Â60.0
>>> > > Â Â 1792x1344 Â Â Â60.0
>>> > > Â Â 1920x1200 Â Â Â74.9 Â Â 59.9
>>> > > Â Â 1680x1050 Â Â Â84.9 Â Â 74.9 Â Â 60.0
>>> > > Â Â 1400x1050 Â Â Â85.0 Â Â 74.9 Â Â 60.0
>>> > > Â Â 1440x900 Â Â Â 84.8 Â Â 75.0 Â Â 59.9
>>> > > Â Â 1280x960 Â Â Â 85.0 Â Â 60.0
>>> > > Â Â 1360x768 Â Â Â 60.0
>>> > > Â Â 1280x800 Â Â Â 84.9 Â Â 74.9 Â Â 59.8
>>> > > Â Â 1152x864 Â Â Â 75.0
>>> > > Â Â 1280x768 Â Â Â 84.8 Â Â 74.9 Â Â 59.9
>>> > > Â Â 1024x768 Â Â Â 85.0 Â Â 75.1 Â Â 75.0 Â Â 70.1 Â Â 60.0 Â Â 43.5 Â Â 43.5
>>> > > Â Â 832x624 Â Â Â Â74.6
>>> > > Â Â 800x600 Â Â Â Â85.1 Â Â 72.2 Â Â 75.0 Â Â 60.3 Â Â 56.2
>>> > > Â Â 848x480 Â Â Â Â60.0
>>> > > Â Â 640x480 Â Â Â Â85.0 Â Â 75.0 Â Â 72.8 Â Â 72.8 Â Â 66.7 Â Â 60.0 Â Â 59.9
>>> > > Â Â 720x400 Â Â Â Â85.0 Â Â 87.8 Â Â 70.1
>>> > > Â Â 640x400 Â Â Â Â85.1
>>> > > Â Â 640x350 Â Â Â Â85.1
>>> > > Â Â 320x200 Â Â Â 165.1
>>> > >
>>> > > And on 3.4-rc4+ (with your patch cherry-picked):
>>> > >
>>> > > Â% xrandr
>>> > > ÂScreen 1: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
>>> > > ÂVGA-1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
>>> > > Â Â 1024x768 Â Â Â 60.0*
>>> > > Â Â 800x600 Â Â Â Â60.3 Â Â 56.2
>>> > > Â Â 848x480 Â Â Â Â60.0
>>> > > Â Â 640x480 Â Â Â Â59.9
>>> > > Â Â 320x200 Â Â Â 165.1
>>> > >
>>> > > Running xrandr on 3.4-rc4+ also causes the screen to go black for a
>>> > > second when it does not on 3.2.15. ÂIt also causes several messages of
>>> > > the form
>>> > >
>>> > > Â[drm] nouveau 0000:01:00.0: Load detected on output B
>>> > >
>>> > > to be logged. ÂAlso, looking at /sys/class/drm/card0-VGA-1/edid I see
>>> > > that it is empty on 3.4-rc4+ and it is correct on 3.2.15. ÂThings seem
>>> > > to work OK when the KVM is not involved.
>>> >
>>> > Were you ever able to fetch a EDID with the KVM involved? ÂKVMs are
>>> > notorious for not connecting the ddc pins.
>>>
>>> Yes, it works on 3.2.15 as described above.
>>
>> I have the same (or similar) KVM (not in the office at the moment) and I
>> can confirm that with newer kernels EDID fecthing in flaky. It's 50/50
>> if EDED retrieval succeeds or if it fails with:
>>
>> Apr 26 13:06:57 dtor-d630 kernel: [13464.936336] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>> Apr 26 13:06:57 dtor-d630 kernel: [13464.955317] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>> Apr 26 13:06:57 dtor-d630 kernel: [13464.973879] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>> Apr 27 09:13:03 dtor-d630 kernel: [44602.087659] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>> Apr 27 09:13:03 dtor-d630 kernel: [44602.107147] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>> Apr 27 09:13:03 dtor-d630 kernel: [44602.126908] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>> Apr 27 09:13:03 dtor-d630 kernel: [44602.146277] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>> Apr 27 09:13:03 dtor-d630 kernel: [44602.297659] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>> Apr 27 09:13:03 dtor-d630 kernel: [44602.317063] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 208
>>
>> Earlier kernels were able to retrieve EDEDs reliably.
>>
>> This is with:
>>
>> [ Â Â1.678392] [drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x086b00a2)
>
> Just a crazy thought, but didn't we change some timings related to
> EDID retrieval? To make it faster.

Hum, this commit:

commit 1849ecb22fb3b5d57b65e7369a3957adf9f26f39
Author: Jean Delvare <jdelvare@xxxxxxx>
Date: Sat Jan 28 11:07:09 2012 +0100

drm/kms: Make i2c buses faster

doubled the data rate but only for radeon and intel drivers. nouveau
doesn't use the standard i2c-algo-bit helpers (BTW: the cond_resched()
has been removed), and AFAICS it's using 1us delay; the other drivers
are using 10us, 1us seems a bit too low...

Luca
--
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/