View | Details | Raw Unified | Return to bug 12878 | Differences between
and this patch

Collapse All | Expand All

(-)file_not_specified_in_diff (-1 / +69 lines)
Line  Link Here
0
-- a/arch/x86/kernel/acpi/boot.c
0
++ b/arch/x86/kernel/acpi/boot.c
Lines 1349-1354 static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) Link Here
1349
}
1349
}
1350
1350
1351
/*
1351
/*
1352
 * Enable A20 line using KBC even if it's already enabled using other method.
1353
 * This is needed for some MSI laptops to resume from S3.
1354
 */
1355
static int __init a20_enable_kbc(const struct dmi_system_id *d)
1356
{
1357
	printk(KERN_NOTICE "%s detected: enabling A20 using KBC\n", d->ident);
1358
	outb(0xd1, 0x64);	/* Command write */
1359
	outb(0xdf, 0x60);	/* A20 on */
1360
	outb(0xff, 0x64);	/* Null command, but UHCI wants it */
1361
1362
	return 0;
1363
}
1364
1365
/*
1352
 * If your system is blacklisted here, but you find that acpi=force
1366
 * If your system is blacklisted here, but you find that acpi=force
1353
 * works for you, please contact linux-acpi@vger.kernel.org
1367
 * works for you, please contact linux-acpi@vger.kernel.org
1354
 */
1368
 */
Lines 1423-1428 static struct dmi_system_id __initdata acpi_dmi_table[] = { Link Here
1423
		     DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
1437
		     DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
1424
		     },
1438
		     },
1425
	 },
1439
	 },
1440
	/*
1441
	 * Some MSI laptop BIOSes are broken - INT 15h code uses port 92h to
1442
	 * enable A20 line but resume code assumes that KBC was used.
1443
	 * The laptop will not resume from S3 otherwise but powers off
1444
	 * after a while and then powers on again stuck with a blank screen.
1445
	 */
1446
	{
1447
	 .callback = a20_enable_kbc,
1448
	 .ident = "MSI EX600 Laptop",
1449
	 .matches = {
1450
		     DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
1451
		     DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook EX600"),
1452
		     },
1453
	 },
1454
	{
1455
	 .callback = a20_enable_kbc,
1456
	 .ident = "MSI EX700 Laptop",
1457
	 .matches = {
1458
		     DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
1459
		     DMI_MATCH(DMI_PRODUCT_NAME, "EX700"),
1460
		     },
1461
	 },
1462
	{
1463
	 .callback = a20_enable_kbc,
1464
	 .ident = "MSI GX700 Laptop",
1465
	 .matches = {
1466
		     DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
1467
		     DMI_MATCH(DMI_PRODUCT_NAME, "GX700"),
1468
		     },
1469
	 },
1470
	{
1471
	 .callback = a20_enable_kbc,
1472
	 .ident = "MSI VR201 Laptop",
1473
	 .matches = {
1474
		     DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
1475
		     DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR201"),
1476
		     },
1477
	 },
1478
	{
1479
	 .callback = a20_enable_kbc,
1480
	 .ident = "MSI VR601 Laptop",
1481
	 .matches = {
1482
		     DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
1483
		     DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR601"),
1484
		     },
1485
	 },
1486
	{
1487
	 .callback = a20_enable_kbc,
1488
	 .ident = "MSI PR200 Laptop",
1489
	 .matches = {
1490
		     DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
1491
		     DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook PR200"),
1492
		     },
1493
	 },
1426
	{}
1494
	{}
1427
};
1495
};
1428
1496

Return to bug 12878