From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Keith Packard" Subject: Flicker-free boot in DRM Date: Sat, 29 Oct 2011 00:05:22 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0669816504==" Return-path: Received: from keithp.com (home.keithp.com [63.227.221.253]) by gabe.freedesktop.org (Postfix) with ESMTP id 4E3BC9E907 for ; Sat, 29 Oct 2011 00:05:26 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by keithp.com (Postfix) with ESMTP id 07CCE7600FA for ; Sat, 29 Oct 2011 00:05:26 -0700 (PDT) Received: from keithp.com ([127.0.0.1]) by localhost (keithp.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id iUT4mcCaGHIL for ; Sat, 29 Oct 2011 00:05:23 -0700 (PDT) Received: from koto.keithp.com (localhost [127.0.0.1]) by keithp.com (Postfix) with ESMTP id 05B867600FA for ; Sat, 29 Oct 2011 00:05: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: "drivers, Intel" List-Id: intel-gfx@lists.freedesktop.org --===============0669816504== Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" --=-=-= Content-Transfer-Encoding: quoted-printable Steve Langasek came over today and we hacked on the i915 driver initialization code to try and avoid the initial mode set. I thought I'd summarize what we found out. * Ubuntu has hacked up grub2 so that it gets the boot monitor running in a reasonable configuration using VBE calls if possible. In particular, it does try to find a 32bpp mode. Unfortunately, this won't actually work on many machines as the BIOS is often missing the native mode for the panel. So, we'll often need to deal with situations where the BIOS has got the panel running in the right mode, but there's a scaler running and the pipe and plane are wrong. I wonder if it's possible to change the plane/pipe/scaler configuration without turning the panel off and without causing any visible artifacts on the screen. My (limited) testing generated quite the visual fireworks... * Would UEFI do any better? It does provide a native mode on my MBA, it would be nice to know if this is at all common on regular PC hardware that has UEFI support. * I've got LVDS pulling the current mode out of the hardware, and nearly have eDP doing the same. eDP is a bit harder because computing the nominal pixel clock from the hw clock and M/N ratios is harder than just pulling the PLL values out. * Constructing a fake drm_framebuffer is a pain; there are a million places that assume all kinds of things about the frame buffer on a crtc. * DRM destroys all references to the current mode before crtc->mode_set is called. This makes it impossible to short-circuit pieces of mode_set internally. There's absolutely no reason for this; all of the changed data are available as parameters to the underlying functions. * drm should let the driver decide whether mode_set_base will work to switch frame buffers. Otherwise, there are all kinds of cases which the hardware supports and which it will refuse to let through. I think it should return -EAGAIN or some such to signal that the system should try to do a full mode set. =20=20 I'll try changing the interface to mode_set_base and see how much further I get. All of the preliminary patches I've done are on my panel-takeover branch on git://people.freedesktop.org/~keithp/linux =2D-=20 keith.packard@intel.com --=-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIVAwUBTqulsjYtFsjWk68qAQjl7xAAijttEWKBqG0kewYXqfXxzlmWPxqFsvIW ZND3Xn5d8MKHAexWjZfH1Dr3qkVEaqYVIksvRjXQDFYFZN0Nv0YtXS739HBTjYnG RMagYx67Xk269DH72aedm0sQzqSDeIYGp9gvvdxYzSDFMnSLUlunBagzUrpJ2UUT 9OCioX1fSIL/VMjEUc4chr5O8UQFMIOAGeAeCT9n9OSrN0tNket3St7rBHy/NBNF nGge+NLG+PgzQwuQvcai2E6U9aYBN9nOAbN0+PWXyUidapTk0MtaxVVe5VrVVLJd 12Byf/PwE1Zxr2X2w5bBpUrF4o0st4xjRg4mhMpzdhw9UPcYzL2USOfgT3P3wdaO RwSFqP3u2HazfQ2YnGRQfAADGq+xMfYkLz/8hffElXGHcysOJ079T13PwGUVORWB 8rBgG5rlL5HMuZo/Ckch+/8oLHq7gfFayJYCU6XIcDYnwIDoou8grZD9lvQrixCn Zr5XDClIMXT2FDQmfk+v2gDfX8/FTxzh+Ofh85XS4a1+qgPzywW0as5rOQ+k7ted vIYiyZYWNhrzAkuEd7//4JVb39WhnA2o0mNc46cHkpJYL7cncdrBTPpnWtkUCzO5 p5wd2iqd6d2n9jr8fUTQ5sX941U5Wwifo1x6XhvZtpu2oBsqEhXEPadM4HAEvwIJ xv0Icjd37v8= =nTrp -----END PGP SIGNATURE----- --=-=-=-- --===============0669816504== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx --===============0669816504==--