From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751181AbbCKGXe (ORCPT ); Wed, 11 Mar 2015 02:23:34 -0400 Received: from mail-wg0-f54.google.com ([74.125.82.54]:37347 "EHLO mail-wg0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750755AbbCKGXb (ORCPT ); Wed, 11 Mar 2015 02:23:31 -0400 Date: Wed, 11 Mar 2015 07:23:24 +0100 From: Ingo Molnar To: "Li, Aubrey" Cc: Ingo Molnar , "alan@linux.intel.com" , Arjan van de Ven , "Rafael J. Wysocki" , "Brown, Len" , "H. Peter Anvin" , x86@kernel.org, LKML Subject: Re: [PATCH v2] x86: Bypass legacy PIC and PIT in ACPI hardware reduced mode Message-ID: <20150311062324.GA29788@gmail.com> References: <54FFC593.6070002@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <54FFC593.6070002@linux.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Li, Aubrey wrote: > On a platform in ACPI Hardware-reduced mode, the legacy PIC and PIT > may not be initialized even though they may be present in silicon. > Touching these legacy components causes unexpected result on system. s/causes unexpected result on system/ causes unexpected results on the system > > On Bay Trail-T(ASUS-T100) platform, touching these legacy components s/On Bay Trail-T(ASUS-T100) platform/ On the Bay Trail-T(ASUS-T100) platform > blocks platform hardware low idle power state(S0ix) during system > suspend. So we should bypass them in ACPI hardware reduced mode. > > Suggested-by: Arjan van de Ven > Signed-off-by: Li Aubrey > Cc: Len Brown > Cc: Rafael J. Wysocki > Cc: Alan Cox > --- > arch/x86/kernel/acpi/boot.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c > index b9e30da..1e5a7865 100644 > --- a/arch/x86/kernel/acpi/boot.c > +++ b/arch/x86/kernel/acpi/boot.c > @@ -1343,6 +1343,24 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) > } > > /* > + * ACPI offers an alternative platform interface model that removes > + * ACPI hardware requirements for platforms that do not implement > + * the PC Architecture. > + * > + * We initialize the Hardware-reduced ACPI model here > + */ > +static void __init acpi_reduced_hw_init(void) > +{ > + /* > + * Override x86_init functions and bypass legacy pic > + * in Hardware-reduced ACPI mode > + */ > + x86_init.timers.timer_init = x86_init_noop; > + x86_init.irqs.pre_vector_init = x86_init_noop; > + legacy_pic = &null_legacy_pic; > +} > + > +/* > * If your system is blacklisted here, but you find that acpi=force > * works for you, please contact linux-acpi@vger.kernel.org > */ > @@ -1541,6 +1559,9 @@ int __init early_acpi_boot_init(void) > */ > early_acpi_process_madt(); > > + if (acpi_gbl_reduced_hardware) > + acpi_reduced_hw_init(); Ok, my final bike shed painting job would be to move the 'acpi_gbl_reduced_hardware' flag check inside acpi_reduced_hw_init(): that makes it nicely self-sustained and all in a single place. With that fixed it looks good to me. Should I merge it for v4.0 upstream merge, in tip:x86/urgent? The 'touches hardware in unexpected ways' aspect qualifies it for urgent treatment IMO. Thanks, Ingo