From mboxrd@z Thu Jan 1 00:00:00 1970 From: Suresh Kumar Subject: vesafb, intel_drv and gm45 Date: Wed, 16 Mar 2011 12:04:36 +0530 Message-ID: <4d805a2a.ce3c2b0a.7d2f.16df@mx.google.com> References: Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-iy0-f177.google.com (mail-iy0-f177.google.com [209.85.210.177]) by gabe.freedesktop.org (Postfix) with ESMTP id B7FBC9E75D for ; Tue, 15 Mar 2011 23:35:23 -0700 (PDT) Received: by iyf40 with SMTP id 40so1515387iyf.36 for ; Tue, 15 Mar 2011 23:35:23 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org [Continuing from IRC] Hello all, I have GM45 mobile chipset (PCI_CHIP_GM45_GM/0x2A42). And running Xorg 1.6.5, Intel driver 2.7.0 and kernel 2.6.29. I need to use vesafb (bootsplash depends on it), and for some (legacy code) reasons I can't immediately migrate the system to newer kernel (or start using plymouth+KMS (KMS requires newer kernel?)). The issue is, with vesafb built in and booting kernel with "vga=0x317", X starts slow (by about 7 seconds) and then there after every "xrandr -q" takes about 3+ seconds (without vesafb it takes about ~ 100 ms). I notice that most of the time it spends is in getting EDID information over I2C read/write (there are too many I2CUDelay() calls). Starting X with "vesa_drv" works fine (presumably it goes over VBE). One hypothesis was "vesafb" makes some (BIOS) calls at start which puts GM45 chipset under some condition which intel_drv is not able to handle. To verify that I took up "intel-gpu-tools" and used it dump registers and compare them with and without vesafb. Indeed there was some difference (http://pastebin.com/gv9GXKAc) - VGACNTRL was enabled, "display B" was enabled etc. Now before starting X, I used "intel_reg_write" to restore them back to "ideal" condition (i.e., == register values without vesafb boot) and cross verified those values as well. But the issue still persists. (though one strange thing I notice is when I reset back those registers, the screen gets garbled, especially when I manipulate VGACNTRL, Probably vesafb is still holding onto it?) Now that was a bummer, any other pointer to possible problematic areas where I can look into would be nice. Thanks, Suresh