Len,
* Len Brown <[email protected]> [100120 06:21]:
> On Thu, 7 Jan 2010, Christian Hofstaedtler wrote:
>
> Thanks for writing this patch Christian,
> it is something that has been unsettled for
> a long time and it will be great to close the issue.
>
> > Newer hardware is assumed to no longer reboot succesfully using the
> > keyboard controller, but needs to use ACPI instead.
> > To not cause problems with older hardware, only hardware with a BIOS
> > date 2006 or newer is considered for this choice. Broken BIOSes
> > reporting a BIOS date of 0 are not specially considered, and therefore
> > get the KBD reboot behaviour.
> >
> > Also unifiy reboot_type selection code.
>
> Please split the patch in two patches:
>
> 1. cleanup w/o policy change
> 2. policy change w/o cleanup
>
> better if the policy change is #2, so if we need to revert it
> we don't have to revert the cleanup too.
Please find the splitted patch in reply to your mail.
> > Signed-off-by: Christian Hofstaedtler <[email protected]>
> > ---
> > arch/x86/include/asm/emergency-restart.h | 1 +
> > arch/x86/kernel/reboot.c | 65 ++++++++++++++++++++++++------
> > 2 files changed, 53 insertions(+), 13 deletions(-)
>
>
> > +/* See if the Hardware is new enough to support ACPI reboots. */
> > +static int __init reboot_acpi_likey_supported(void)
> > +{
> > + int year;
> > +
> > + /* Doesn't exist? Likely an old system */
> > + if (!dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL)) {
> > + return 0;
> > + }
>
> I think it may be better to simply return 1 in this case.
>
> While we have seen dmi_get_date() fail in practice on "modern" machines,
> if CONFIG_ACPI_BLACKLIST_YEAR is set, we will already punish users by
> disabling ACPI and making them invoke acpi=force.
>
> So the effect of this check is to disable ACPI-reset
> on systems where the user has likely already invoked acpi=force --
> which seems somewhat counter-intuitive.
Okay; I've also re-added the check for year==0, so these machines
get the same behaviour.
> > + /* 2006 was decided as the cut-off year. */
> > + if (year < 2006) {
> > + return 0;
> > + }
>
> I'd rather see 2003.
> If we run into trouble, it is a 1-liner to move it forward.
> But I think we'll probably do fine with anything newer than 2001.
Made this 2003.
> thanks,
> Len Brown, Intel Open Source Technolgy Center
Christian
--
christian hofstaedtler