From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Lezcano Subject: Re: Bisected 3.12.0-rc1 Laptop screen goes blank during kernelboot Date: Wed, 25 Sep 2013 14:29:40 +0200 Message-ID: <5242D734.7020800@linaro.org> References: <523C8238.3000200@xmsnet.nl> <523E51A9.8050609@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: Received: from mail-we0-f172.google.com ([74.125.82.172]:59229 "EHLO mail-we0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752428Ab3IYM3n (ORCPT ); Wed, 25 Sep 2013 08:29:43 -0400 Received: by mail-we0-f172.google.com with SMTP id w61so6052687wes.31 for ; Wed, 25 Sep 2013 05:29:42 -0700 (PDT) In-Reply-To: <523E51A9.8050609@gmail.com> Sender: linux-pm-owner@vger.kernel.org List-Id: linux-pm@vger.kernel.org To: Aaron Lu Cc: Hans de Bruin , linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org, Linux-pm mailing list On 09/22/2013 04:10 AM, Aaron Lu wrote: > Add linux-pm. >=20 > -Aaron >=20 > On 09/21/2013 01:13 AM, Hans de Bruin wrote: >> During boot time my laptop screen goes blank when de kernel switches= the=20 >> screen to another resolution. The backlight is on. Eventually a kde=20 >> login box appears out of the blackness. Swiching to a lower resoluti= on=20 >> gives me a black screen again. After testing the=20 >> intel-gfx@lists.freedesktop.org developers test-tree problem less th= ey=20 >> sugested a bisect. That bisect ended in: >> >> >> commit 137b944e100278d696826cf25c83014ac17473fe >> Author: Daniel Lezcano >> Date: Wed Jun 12 15:08:48 2013 +0200 >> >> cpuidle: Make it clear that governors cannot be modules >> >> cpufreq governors are defined as modules in the code, but the Kco= nfig >> options do not allow them to be built as modules. This is not re= ally >> a problem, but the cpuidle init ordering is: the cpuidle init >> functions (framework and driver) and then the governors. That le= ads >> to some weirdness in the cpuidle framework. >> >> Namely, cpuidle_register_device() calls cpuidle_enable_device() = which >> fails at the first attempt, because governors have not been regis= tered >> yet. When a governor is registered, the framework calls >> cpuidle_enable_device() again which runs __cpuidle_register_devic= e() >> only then. Of course, for that to work, the cpuidle_enable_devic= e() >> return value has to be ignored by cpuidle_register_device(). >> >> Instead of having this cyclic call graph and relying on a posit= ive >> side effects of the hackish back and forth cpuidle_enable_devic= e() >> calls it is better to fix the cpuidle init ordering. >> >> To that end, replace the module init code with postcore_initcal= l() >> so we have: >> >> * cpuidle framework : core_initcall >> * cpuidle governors : postcore_initcall >> * cpuidle drivers : device_initcall >> >> and remove the corresponding module exit code as it is dead any= way >> (governors can't be built as modules). >> >> [rjw: Changelog] >> Signed-off-by: Daniel Lezcano >> Signed-off-by: Rafael J. Wysocki >> >> :040000 040000 45e7cb28411864c00b62296a7ff239f9f139d5d9=20 >> 86a36b01dee52a77cfbab41a973b7a2bfa44ce34 M drivers >> >> >> >> Reverting it makes the problem go away. Ok, can you give more informations about it, I don't see the connection between screen resolution and cpuidle. It would be interesting here to understand the root problem. Can you give the cpuidle configuration (used governor and driver) ? If you don't revert the patch but disable cpuidle (eg. cpuidle.off=3D1 or don't compile it in the kernel), does the bug issue still occur ? Thanks -- Daniel --=20 Linaro.org =E2=94=82 Open source software for= ARM SoCs =46ollow Linaro: Facebook | Twitter | Blog