From: Shaohua Li On Asus A6VC laptop, PCI config space read of slot 01:01.* after ACPI _PTS is exectued always returns 0xFFFFFFFF. Force _PTS is executed after suspending devices Signed-off-by: Shaohua Li --- drivers/acpi/sleep/main.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) Index: linux-2.6.25-rc7/drivers/acpi/sleep/main.c =================================================================== --- linux-2.6.25-rc7.orig/drivers/acpi/sleep/main.c +++ linux-2.6.25-rc7/drivers/acpi/sleep/main.c @@ -272,12 +272,31 @@ static int __init init_ints_after_s1(con return 0; } +/* + * Laptop needs _PTS is executed after suspending devices. + * Asus A6VC - PCI config read of slot 01:01.* after _PTS returns 0xFFFFFFFF. + */ +static int __init new_suspend_order(const struct dmi_system_id *d) +{ + printk(KERN_WARNING PREFIX "%s detected, " + "acpi_new_pts_ordering is force enabled\n", d->ident); + new_pts_ordering = true; + return 0; +} + static struct dmi_system_id __initdata acpisleep_dmi_table[] = { { .callback = init_ints_after_s1, .ident = "Toshiba Satellite 4030cdt", .matches = {DMI_MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"),}, }, + { + .callback = new_suspend_order, + .ident = "Asus A6VC", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "A6VC"),}, + }, {}, }; #endif /* CONFIG_SUSPEND */