[PATCH] x86: remove superfluous dmi_ignore_irq0_timer_override quirks - Kernel

This is a discussion on [PATCH] x86: remove superfluous dmi_ignore_irq0_timer_override quirks - Kernel ; The problem should be solved with commits: x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC IMHO it does not make ...

+ Reply to Thread
Results 1 to 6 of 6

Thread: [PATCH] x86: remove superfluous dmi_ignore_irq0_timer_override quirks

  1. [PATCH] x86: remove superfluous dmi_ignore_irq0_timer_override quirks

    The problem should be solved with commits:

    x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC

    IMHO it does not make sense to check within a dmi-quirk
    whether an early-quirk was applied. Boot sequence is as follows:

    acpi_boot_table_init() (it applies dmi-quirks)
    ....
    early_quirks() (detect bogus IRQ0 override)
    ....
    acpi_boot_init() (setup IO APIC)

    Thus with current code we will always get following warnings for
    Laptops that have this dmi_ignore_irq0_timer_override dmi quirk:

    WARNING: at arch/x86/kernel/acpi/boot.c:1410
    dmi_ignore_irq0_timer_override+0x30/0x60()
    ati_ixp4x0 quirk not complete.

    .... just because the early-quirk (ati_ixp4x0) was not yet executed.

    Signed-off-by: Andreas Herrmann
    ---
    arch/x86/kernel/acpi/boot.c | 60 -------------------------------------------
    1 files changed, 0 insertions(+), 60 deletions(-)

    Please apply.

    Thanks,
    Andreas


    diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
    index eb875cd..4835cf9 100644
    --- a/arch/x86/kernel/acpi/boot.c
    +++ b/arch/x86/kernel/acpi/boot.c
    @@ -1414,24 +1414,6 @@ static int __init force_acpi_ht(const struct dmi_system_id *d)
    }

    /*
    - * Force ignoring BIOS IRQ0 pin2 override
    - */
    -static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
    -{
    - /*
    - * The ati_ixp4x0_rev() early PCI quirk should have set
    - * the acpi_skip_timer_override flag already:
    - */
    - if (!acpi_skip_timer_override) {
    - WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n");
    - pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n",
    - d->ident);
    - acpi_skip_timer_override = 1;
    - }
    - return 0;
    -}
    -
    -/*
    * If your system is blacklisted here, but you find that acpi=force
    * works for you, please contact acpi-devel@sourceforge.net
    */
    @@ -1598,48 +1580,6 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
    DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
    },
    },
    - /*
    - * HP laptops which use a DSDT reporting as HP/SB400/10000,
    - * which includes some code which overrides all temperature
    - * trip points to 16C if the INTIN2 input of the I/O APIC
    - * is enabled. This input is incorrectly designated the
    - * ISA IRQ 0 via an interrupt source override even though
    - * it is wired to the output of the master 8259A and INTIN0
    - * is not connected at all. Force ignoring BIOS IRQ0 pin2
    - * override in that cases.
    - */
    - {
    - .callback = dmi_ignore_irq0_timer_override,
    - .ident = "HP nx6115 laptop",
    - .matches = {
    - DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
    - DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6115"),
    - },
    - },
    - {
    - .callback = dmi_ignore_irq0_timer_override,
    - .ident = "HP NX6125 laptop",
    - .matches = {
    - DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
    - DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6125"),
    - },
    - },
    - {
    - .callback = dmi_ignore_irq0_timer_override,
    - .ident = "HP NX6325 laptop",
    - .matches = {
    - DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
    - DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6325"),
    - },
    - },
    - {
    - .callback = dmi_ignore_irq0_timer_override,
    - .ident = "HP 6715b laptop",
    - .matches = {
    - DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
    - DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"),
    - },
    - },
    {}
    };

    --
    1.6.0.2



    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: [PATCH] x86: remove superfluous dmi_ignore_irq0_timer_override quirks

    On Thu, Oct 16, 2008 at 12:57:06PM +0200, Andreas Herrmann wrote:
    > The problem should be solved with commits:
    >
    > x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    > x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    >
    > IMHO it does not make sense to check within a dmi-quirk
    > whether an early-quirk was applied. Boot sequence is as follows:
    >
    > acpi_boot_table_init() (it applies dmi-quirks)
    > ...
    > early_quirks() (detect bogus IRQ0 override)
    > ...
    > acpi_boot_init() (setup IO APIC)
    >
    > Thus with current code we will always get following warnings for
    > Laptops that have this dmi_ignore_irq0_timer_override dmi quirk:
    >
    > WARNING: at arch/x86/kernel/acpi/boot.c:1410
    > dmi_ignore_irq0_timer_override+0x30/0x60()
    > ati_ixp4x0 quirk not complete.
    >
    > ... just because the early-quirk (ati_ixp4x0) was not yet executed.
    >


    Hi Ingo,

    How are chances that this patch will go into tip-tree?
    I'd like to see this fix in 2.6.28.


    Thanks,

    Andreas


    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. Re: [PATCH] x86: remove superfluous dmi_ignore_irq0_timer_override quirks


    * Andreas Herrmann wrote:

    > The problem should be solved with commits:
    >
    > x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    > x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    >
    > IMHO it does not make sense to check within a dmi-quirk
    > whether an early-quirk was applied. Boot sequence is as follows:
    >
    > acpi_boot_table_init() (it applies dmi-quirks)
    > ...
    > early_quirks() (detect bogus IRQ0 override)
    > ...
    > acpi_boot_init() (setup IO APIC)
    >
    > Thus with current code we will always get following warnings for
    > Laptops that have this dmi_ignore_irq0_timer_override dmi quirk:
    >
    > WARNING: at arch/x86/kernel/acpi/boot.c:1410
    > dmi_ignore_irq0_timer_override+0x30/0x60()
    > ati_ixp4x0 quirk not complete.
    >
    > ... just because the early-quirk (ati_ixp4x0) was not yet executed.


    could we move the DMI check to after the early quicks stage? It would be
    nice to have this double check, for at least one kernel cycle.

    Ingo
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  4. Re: [PATCH] x86: remove superfluous dmi_ignore_irq0_timer_override quirks

    On Wed, Oct 22, 2008 at 12:02:54PM +0200, Ingo Molnar wrote:
    >
    > * Andreas Herrmann wrote:
    >
    > > The problem should be solved with commits:
    > >
    > > x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    > > x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    > >
    > > IMHO it does not make sense to check within a dmi-quirk
    > > whether an early-quirk was applied. Boot sequence is as follows:
    > >
    > > acpi_boot_table_init() (it applies dmi-quirks)
    > > ...
    > > early_quirks() (detect bogus IRQ0 override)
    > > ...
    > > acpi_boot_init() (setup IO APIC)
    > >
    > > Thus with current code we will always get following warnings for
    > > Laptops that have this dmi_ignore_irq0_timer_override dmi quirk:
    > >
    > > WARNING: at arch/x86/kernel/acpi/boot.c:1410
    > > dmi_ignore_irq0_timer_override+0x30/0x60()
    > > ati_ixp4x0 quirk not complete.
    > >
    > > ... just because the early-quirk (ati_ixp4x0) was not yet executed.

    >
    > could we move the DMI check to after the early quicks stage? It would be
    > nice to have this double check, for at least one kernel cycle.


    Ok, I'll have a look at that.

    Andreas


    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  5. [PATCH] x86: call dmi-quirks for HP Laptops after early-quirks are executed

    Problems with bogus IRQ0 override of those laptops should be fixed
    with commits

    x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC

    that introduce early-quirks based on chipset configuration.

    For further information, see
    http://bugzilla.kernel.org/show_bug.cgi?id=11516

    Instead of removing the related dmi-quirks completely we'd like to
    keep them for (at least) one kernel version -- to double-check whether
    the early-quirks really took effect. But the dmi-quirks need to be
    called after early-quirks are executed. With this patch calling
    sequence for dmi-quirks is changed as follows:

    acpi_boot_table_init() (dmi-quirks)
    ...
    early_quirks() (detect bogus IRQ0 override)
    ...
    acpi_boot_init() (late dmi-quirks and setup IO APIC)

    Note: Plan is to remove the "late dmi-quirks" with next kernel version.

    Cc: Ingo Molnar
    Signed-off-by: Andreas Herrmann

    ---
    arch/x86/kernel/acpi/boot.c | 8 ++++++++
    1 files changed, 8 insertions(+), 0 deletions(-)

    diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
    index 0d1c26a..3e822bc 100644
    --- a/arch/x86/kernel/acpi/boot.c
    +++ b/arch/x86/kernel/acpi/boot.c
    @@ -1598,6 +1598,11 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
    DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
    },
    },
    + {}
    +};
    +
    +/* second table for DMI checks that should run after early-quirks */
    +static struct dmi_system_id __initdata acpi_dmi_table_late[] = {
    /*
    * HP laptops which use a DSDT reporting as HP/SB400/10000,
    * which includes some code which overrides all temperature
    @@ -1726,6 +1731,9 @@ int __init early_acpi_boot_init(void)

    int __init acpi_boot_init(void)
    {
    + /* those are executed after early-quirks are executed */
    + dmi_check_system(acpi_dmi_table_late);
    +
    /*
    * If acpi_disabled, bail out
    * One exception: acpi=ht continues far enough to enumerate LAPICs
    --
    1.6.0.2



    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  6. Re: [PATCH] x86: call dmi-quirks for HP Laptops after early-quirks are executed


    * Andreas Herrmann wrote:

    > Problems with bogus IRQ0 override of those laptops should be fixed
    > with commits
    >
    > x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    > x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC
    >
    > that introduce early-quirks based on chipset configuration.
    >
    > For further information, see
    > http://bugzilla.kernel.org/show_bug.cgi?id=11516
    >
    > Instead of removing the related dmi-quirks completely we'd like to
    > keep them for (at least) one kernel version -- to double-check whether
    > the early-quirks really took effect. But the dmi-quirks need to be
    > called after early-quirks are executed. With this patch calling
    > sequence for dmi-quirks is changed as follows:
    >
    > acpi_boot_table_init() (dmi-quirks)
    > ...
    > early_quirks() (detect bogus IRQ0 override)
    > ...
    > acpi_boot_init() (late dmi-quirks and setup IO APIC)
    >
    > Note: Plan is to remove the "late dmi-quirks" with next kernel version.
    >
    > Cc: Ingo Molnar
    > Signed-off-by: Andreas Herrmann


    applied to tip/x86/urgent, thanks Andreas!

    Ingo
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread