Comment 29 for bug 286001

Revision history for this message
Kai Jauch (kaijauch) wrote : Re: [g45] Incorrect resolution when docked on Dell Latitude E6400

No, the problem still remains.

KMS detects and sets the "preferred" resolutions for each device correctly (1600x1200 on DVI1, 1440x900 on LVDS1). When X starts up, the resolutions set by KMS IMHO should be kept, but aren't. X sets both displays to the highest common resolution, which is 1152x864.
Though you can see what you're doing on both displays this way, it defeats the purpose of KMS (set resolutions as early as possible and use them when X is starting) and adds unnecessary flickering and delay to the boot process (when X resets both displays to a common resolution). Using another resolution than the preferred one doesn't look that good on a TFT, either. If the lid is closed, there isn't even a point in limiting the resolution to 1152x864 as LVDS1 should then simply be disabled. The only enabled output should then be DVI1 at 1600x1200, which could be fully used.

In my opinion it would be best if the resolutions set by KMS are kept by X and the usable area on both displays should be determined by the display with the lower resolution (1440x900 fits into 1600x1200), much like it is already happening during boot with usplash. If the lid is closed during startup, there is no point in enabling LVDS1 and limiting the usable area as I can't see anything on there as long as the lid is closed.

Those are the scenarios as I think they should be (but aren't):

1. Booting with LVDS1 and DVI1 attached, lid open:
- KMS sets LVDS1 to 1440x900, DVI1 to 1600x1200
- X starts up and restricts the usable area to 1440x900, but doesn't reset the resolutions

2a. Booting with LVDS1 and DVI1 attached, lid closed:
- KMS sets LVDS1 to 1440x900, DVI1 to 1600x1200
- X starts up and disables LVDS1, leaving DVI1 fully usable

  OR (better):

2b. Booting with LVDS1 and DVI1 attached, lid closed:
- KMS sets DVI1 to 1600x1200, LVDS1 disabled
- X starts up and uses the only enabled output: DVI1

I attached a little ASCII drawing which hopefully explains what I mean by "restricting the usable area".

If you need any more information, please let me know.