Some MSI laptop BIOSes are broken - INT 15h code uses port 92h to enable A20
line but resume code assumes that KBC was used.
The laptop will not resume from S3 otherwise but powers off after a while
and then powers on again stuck with a blank screen.
Fix it by enabling A20 using KBC. Affected laptop list and DMI data are from
bug reports at Ubuntu Launchpad.
Tested with EX600 and PR200.
Fixes https://bugzilla.kernel.org/show_bug.cgi?id=12878
Signed-off-by: Ondrej Zary <[email protected]>
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1349,6 +1349,20 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
}
/*
+ * Enable A20 line using KBC even if it's already enabled using other method.
+ * This is needed for some MSI laptops to resume from S3.
+ */
+static int __init a20_enable_kbc(const struct dmi_system_id *d)
+{
+ printk(KERN_NOTICE "%s detected: enabling A20 using KBC\n", d->ident);
+ outb(0xd1, 0x64); /* Command write */
+ outb(0xdf, 0x60); /* A20 on */
+ outb(0xff, 0x64); /* Null command, but UHCI wants it */
+
+ return 0;
+}
+
+/*
* If your system is blacklisted here, but you find that acpi=force
* works for you, please contact [email protected]
*/
@@ -1423,6 +1437,60 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
},
},
+ /*
+ * Some MSI laptop BIOSes are broken - INT 15h code uses port 92h to
+ * enable A20 line but resume code assumes that KBC was used.
+ * The laptop will not resume from S3 otherwise but powers off
+ * after a while and then powers on again stuck with a blank screen.
+ */
+ {
+ .callback = a20_enable_kbc,
+ .ident = "MSI EX600 Laptop",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook EX600"),
+ },
+ },
+ {
+ .callback = a20_enable_kbc,
+ .ident = "MSI EX700 Laptop",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "EX700"),
+ },
+ },
+ {
+ .callback = a20_enable_kbc,
+ .ident = "MSI GX700 Laptop",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "GX700"),
+ },
+ },
+ {
+ .callback = a20_enable_kbc,
+ .ident = "MSI VR201 Laptop",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR201"),
+ },
+ },
+ {
+ .callback = a20_enable_kbc,
+ .ident = "MSI VR601 Laptop",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR601"),
+ },
+ },
+ {
+ .callback = a20_enable_kbc,
+ .ident = "MSI PR200 Laptop",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook PR200"),
+ },
+ },
{}
};
--
Ondrej Zary
On Wednesday 24 of October 2012 08:47:52 Ondrej Zary wrote:
> Some MSI laptop BIOSes are broken - INT 15h code uses port 92h to enable A20
> line but resume code assumes that KBC was used.
> The laptop will not resume from S3 otherwise but powers off after a while
> and then powers on again stuck with a blank screen.
>
> Fix it by enabling A20 using KBC. Affected laptop list and DMI data are from
> bug reports at Ubuntu Launchpad.
>
> Tested with EX600 and PR200.
>
> Fixes https://bugzilla.kernel.org/show_bug.cgi?id=12878
>
> Signed-off-by: Ondrej Zary <[email protected]>
Acked-by: Rafael J. Wysocki <[email protected]>
> --- a/arch/x86/kernel/acpi/boot.c
> +++ b/arch/x86/kernel/acpi/boot.c
> @@ -1349,6 +1349,20 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
> }
>
> /*
> + * Enable A20 line using KBC even if it's already enabled using other method.
> + * This is needed for some MSI laptops to resume from S3.
> + */
> +static int __init a20_enable_kbc(const struct dmi_system_id *d)
> +{
> + printk(KERN_NOTICE "%s detected: enabling A20 using KBC\n", d->ident);
> + outb(0xd1, 0x64); /* Command write */
> + outb(0xdf, 0x60); /* A20 on */
> + outb(0xff, 0x64); /* Null command, but UHCI wants it */
> +
> + return 0;
> +}
> +
> +/*
> * If your system is blacklisted here, but you find that acpi=force
> * works for you, please contact [email protected]
> */
> @@ -1423,6 +1437,60 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
> DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
> },
> },
> + /*
> + * Some MSI laptop BIOSes are broken - INT 15h code uses port 92h to
> + * enable A20 line but resume code assumes that KBC was used.
> + * The laptop will not resume from S3 otherwise but powers off
> + * after a while and then powers on again stuck with a blank screen.
> + */
> + {
> + .callback = a20_enable_kbc,
> + .ident = "MSI EX600 Laptop",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook EX600"),
> + },
> + },
> + {
> + .callback = a20_enable_kbc,
> + .ident = "MSI EX700 Laptop",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "EX700"),
> + },
> + },
> + {
> + .callback = a20_enable_kbc,
> + .ident = "MSI GX700 Laptop",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "GX700"),
> + },
> + },
> + {
> + .callback = a20_enable_kbc,
> + .ident = "MSI VR201 Laptop",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR201"),
> + },
> + },
> + {
> + .callback = a20_enable_kbc,
> + .ident = "MSI VR601 Laptop",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR601"),
> + },
> + },
> + {
> + .callback = a20_enable_kbc,
> + .ident = "MSI PR200 Laptop",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook PR200"),
> + },
> + },
> {}
> };
>
>
>
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Minor concern: it should do the wait for ready before sending each command.
"Rafael J. Wysocki" <[email protected]> wrote:
>On Wednesday 24 of October 2012 08:47:52 Ondrej Zary wrote:
>> Some MSI laptop BIOSes are broken - INT 15h code uses port 92h to
>enable A20
>> line but resume code assumes that KBC was used.
>> The laptop will not resume from S3 otherwise but powers off after a
>while
>> and then powers on again stuck with a blank screen.
>>
>> Fix it by enabling A20 using KBC. Affected laptop list and DMI data
>are from
>> bug reports at Ubuntu Launchpad.
>>
>> Tested with EX600 and PR200.
>>
>> Fixes https://bugzilla.kernel.org/show_bug.cgi?id=12878
>>
>> Signed-off-by: Ondrej Zary <[email protected]>
>
>Acked-by: Rafael J. Wysocki <[email protected]>
>
>
>> --- a/arch/x86/kernel/acpi/boot.c
>> +++ b/arch/x86/kernel/acpi/boot.c
>> @@ -1349,6 +1349,20 @@ static int __init
>dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
>> }
>>
>> /*
>> + * Enable A20 line using KBC even if it's already enabled using
>other method.
>> + * This is needed for some MSI laptops to resume from S3.
>> + */
>> +static int __init a20_enable_kbc(const struct dmi_system_id *d)
>> +{
>> + printk(KERN_NOTICE "%s detected: enabling A20 using KBC\n",
>d->ident);
>> + outb(0xd1, 0x64); /* Command write */
>> + outb(0xdf, 0x60); /* A20 on */
>> + outb(0xff, 0x64); /* Null command, but UHCI wants it */
>> +
>> + return 0;
>> +}
>> +
>> +/*
>> * If your system is blacklisted here, but you find that acpi=force
>> * works for you, please contact [email protected]
>> */
>> @@ -1423,6 +1437,60 @@ static struct dmi_system_id __initdata
>acpi_dmi_table[] = {
>> DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
>> },
>> },
>> + /*
>> + * Some MSI laptop BIOSes are broken - INT 15h code uses port 92h
>to
>> + * enable A20 line but resume code assumes that KBC was used.
>> + * The laptop will not resume from S3 otherwise but powers off
>> + * after a while and then powers on again stuck with a blank
>screen.
>> + */
>> + {
>> + .callback = a20_enable_kbc,
>> + .ident = "MSI EX600 Laptop",
>> + .matches = {
>> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook EX600"),
>> + },
>> + },
>> + {
>> + .callback = a20_enable_kbc,
>> + .ident = "MSI EX700 Laptop",
>> + .matches = {
>> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> + DMI_MATCH(DMI_PRODUCT_NAME, "EX700"),
>> + },
>> + },
>> + {
>> + .callback = a20_enable_kbc,
>> + .ident = "MSI GX700 Laptop",
>> + .matches = {
>> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> + DMI_MATCH(DMI_PRODUCT_NAME, "GX700"),
>> + },
>> + },
>> + {
>> + .callback = a20_enable_kbc,
>> + .ident = "MSI VR201 Laptop",
>> + .matches = {
>> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR201"),
>> + },
>> + },
>> + {
>> + .callback = a20_enable_kbc,
>> + .ident = "MSI VR601 Laptop",
>> + .matches = {
>> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR601"),
>> + },
>> + },
>> + {
>> + .callback = a20_enable_kbc,
>> + .ident = "MSI PR200 Laptop",
>> + .matches = {
>> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook PR200"),
>> + },
>> + },
>> {}
>> };
>>
>>
>>
>>
--
Sent from my mobile phone. Please excuse brevity and lack of formatting.
On Wednesday 24 October 2012 21:36:04 H. Peter Anvin wrote:
> Minor concern: it should do the wait for ready before sending each command.
It was a hack and then I forgot to add the waits... Should I redo the patch?
I'll not be able to test it as I have to return the machine.
> "Rafael J. Wysocki" <[email protected]> wrote:
> >On Wednesday 24 of October 2012 08:47:52 Ondrej Zary wrote:
> >> Some MSI laptop BIOSes are broken - INT 15h code uses port 92h to
> >
> >enable A20
> >
> >> line but resume code assumes that KBC was used.
> >> The laptop will not resume from S3 otherwise but powers off after a
> >
> >while
> >
> >> and then powers on again stuck with a blank screen.
> >>
> >> Fix it by enabling A20 using KBC. Affected laptop list and DMI data
> >
> >are from
> >
> >> bug reports at Ubuntu Launchpad.
> >>
> >> Tested with EX600 and PR200.
> >>
> >> Fixes https://bugzilla.kernel.org/show_bug.cgi?id=12878
> >>
> >> Signed-off-by: Ondrej Zary <[email protected]>
> >
> >Acked-by: Rafael J. Wysocki <[email protected]>
> >
> >> --- a/arch/x86/kernel/acpi/boot.c
> >> +++ b/arch/x86/kernel/acpi/boot.c
> >> @@ -1349,6 +1349,20 @@ static int __init
> >
> >dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
> >
> >> }
> >>
> >> /*
> >> + * Enable A20 line using KBC even if it's already enabled using
> >
> >other method.
> >
> >> + * This is needed for some MSI laptops to resume from S3.
> >> + */
> >> +static int __init a20_enable_kbc(const struct dmi_system_id *d)
> >> +{
> >> + printk(KERN_NOTICE "%s detected: enabling A20 using KBC\n",
> >
> >d->ident);
> >
> >> + outb(0xd1, 0x64); /* Command write */
> >> + outb(0xdf, 0x60); /* A20 on */
> >> + outb(0xff, 0x64); /* Null command, but UHCI wants it */
> >> +
> >> + return 0;
> >> +}
> >> +
> >> +/*
> >> * If your system is blacklisted here, but you find that acpi=force
> >> * works for you, please contact [email protected]
> >> */
> >> @@ -1423,6 +1437,60 @@ static struct dmi_system_id __initdata
> >
> >acpi_dmi_table[] = {
> >
> >> DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
> >> },
> >> },
> >> + /*
> >> + * Some MSI laptop BIOSes are broken - INT 15h code uses port 92h
> >
> >to
> >
> >> + * enable A20 line but resume code assumes that KBC was used.
> >> + * The laptop will not resume from S3 otherwise but powers off
> >> + * after a while and then powers on again stuck with a blank
> >
> >screen.
> >
> >> + */
> >> + {
> >> + .callback = a20_enable_kbc,
> >> + .ident = "MSI EX600 Laptop",
> >> + .matches = {
> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> >> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook EX600"),
> >> + },
> >> + },
> >> + {
> >> + .callback = a20_enable_kbc,
> >> + .ident = "MSI EX700 Laptop",
> >> + .matches = {
> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> >> + DMI_MATCH(DMI_PRODUCT_NAME, "EX700"),
> >> + },
> >> + },
> >> + {
> >> + .callback = a20_enable_kbc,
> >> + .ident = "MSI GX700 Laptop",
> >> + .matches = {
> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> >> + DMI_MATCH(DMI_PRODUCT_NAME, "GX700"),
> >> + },
> >> + },
> >> + {
> >> + .callback = a20_enable_kbc,
> >> + .ident = "MSI VR201 Laptop",
> >> + .matches = {
> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> >> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR201"),
> >> + },
> >> + },
> >> + {
> >> + .callback = a20_enable_kbc,
> >> + .ident = "MSI VR601 Laptop",
> >> + .matches = {
> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> >> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR601"),
> >> + },
> >> + },
> >> + {
> >> + .callback = a20_enable_kbc,
> >> + .ident = "MSI PR200 Laptop",
> >> + .matches = {
> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
> >> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook PR200"),
> >> + },
> >> + },
> >> {}
> >> };
--
Ondrej Zary
Probably should.
Ondrej Zary <[email protected]> wrote:
>On Wednesday 24 October 2012 21:36:04 H. Peter Anvin wrote:
>> Minor concern: it should do the wait for ready before sending each
>command.
>
>It was a hack and then I forgot to add the waits... Should I redo the
>patch?
>I'll not be able to test it as I have to return the machine.
>
>> "Rafael J. Wysocki" <[email protected]> wrote:
>> >On Wednesday 24 of October 2012 08:47:52 Ondrej Zary wrote:
>> >> Some MSI laptop BIOSes are broken - INT 15h code uses port 92h to
>> >
>> >enable A20
>> >
>> >> line but resume code assumes that KBC was used.
>> >> The laptop will not resume from S3 otherwise but powers off after
>a
>> >
>> >while
>> >
>> >> and then powers on again stuck with a blank screen.
>> >>
>> >> Fix it by enabling A20 using KBC. Affected laptop list and DMI
>data
>> >
>> >are from
>> >
>> >> bug reports at Ubuntu Launchpad.
>> >>
>> >> Tested with EX600 and PR200.
>> >>
>> >> Fixes https://bugzilla.kernel.org/show_bug.cgi?id=12878
>> >>
>> >> Signed-off-by: Ondrej Zary <[email protected]>
>> >
>> >Acked-by: Rafael J. Wysocki <[email protected]>
>> >
>> >> --- a/arch/x86/kernel/acpi/boot.c
>> >> +++ b/arch/x86/kernel/acpi/boot.c
>> >> @@ -1349,6 +1349,20 @@ static int __init
>> >
>> >dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
>> >
>> >> }
>> >>
>> >> /*
>> >> + * Enable A20 line using KBC even if it's already enabled using
>> >
>> >other method.
>> >
>> >> + * This is needed for some MSI laptops to resume from S3.
>> >> + */
>> >> +static int __init a20_enable_kbc(const struct dmi_system_id *d)
>> >> +{
>> >> + printk(KERN_NOTICE "%s detected: enabling A20 using KBC\n",
>> >
>> >d->ident);
>> >
>> >> + outb(0xd1, 0x64); /* Command write */
>> >> + outb(0xdf, 0x60); /* A20 on */
>> >> + outb(0xff, 0x64); /* Null command, but UHCI wants it */
>> >> +
>> >> + return 0;
>> >> +}
>> >> +
>> >> +/*
>> >> * If your system is blacklisted here, but you find that
>acpi=force
>> >> * works for you, please contact [email protected]
>> >> */
>> >> @@ -1423,6 +1437,60 @@ static struct dmi_system_id __initdata
>> >
>> >acpi_dmi_table[] = {
>> >
>> >> DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
>> >> },
>> >> },
>> >> + /*
>> >> + * Some MSI laptop BIOSes are broken - INT 15h code uses port
>92h
>> >
>> >to
>> >
>> >> + * enable A20 line but resume code assumes that KBC was used.
>> >> + * The laptop will not resume from S3 otherwise but powers off
>> >> + * after a while and then powers on again stuck with a blank
>> >
>> >screen.
>> >
>> >> + */
>> >> + {
>> >> + .callback = a20_enable_kbc,
>> >> + .ident = "MSI EX600 Laptop",
>> >> + .matches = {
>> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> >> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook EX600"),
>> >> + },
>> >> + },
>> >> + {
>> >> + .callback = a20_enable_kbc,
>> >> + .ident = "MSI EX700 Laptop",
>> >> + .matches = {
>> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> >> + DMI_MATCH(DMI_PRODUCT_NAME, "EX700"),
>> >> + },
>> >> + },
>> >> + {
>> >> + .callback = a20_enable_kbc,
>> >> + .ident = "MSI GX700 Laptop",
>> >> + .matches = {
>> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> >> + DMI_MATCH(DMI_PRODUCT_NAME, "GX700"),
>> >> + },
>> >> + },
>> >> + {
>> >> + .callback = a20_enable_kbc,
>> >> + .ident = "MSI VR201 Laptop",
>> >> + .matches = {
>> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> >> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR201"),
>> >> + },
>> >> + },
>> >> + {
>> >> + .callback = a20_enable_kbc,
>> >> + .ident = "MSI VR601 Laptop",
>> >> + .matches = {
>> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> >> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook VR601"),
>> >> + },
>> >> + },
>> >> + {
>> >> + .callback = a20_enable_kbc,
>> >> + .ident = "MSI PR200 Laptop",
>> >> + .matches = {
>> >> + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"),
>> >> + DMI_MATCH(DMI_PRODUCT_NAME, "MSI Notebook PR200"),
>> >> + },
>> >> + },
>> >> {}
>> >> };
--
Sent from my mobile phone. Please excuse brevity and lack of formatting.
On Wed, 24 Oct 2012 12:36:04 -0700
"H. Peter Anvin" <[email protected]> wrote:
> Minor concern: it should do the wait for ready before sending each command.
Can we get a command line to do this quirk too - it strikes me that if
the MSIs rely upon it then it may be something Windows always does so
will be useful to try on other problem machines as an experiment.
On 10/24/2012 02:09 PM, Alan Cox wrote:
> On Wed, 24 Oct 2012 12:36:04 -0700
> "H. Peter Anvin" <[email protected]> wrote:
>
>> Minor concern: it should do the wait for ready before sending each command.
>
> Can we get a command line to do this quirk too - it strikes me that if
> the MSIs rely upon it then it may be something Windows always does so
> will be useful to try on other problem machines as an experiment.
I agree, one has to keep in mind the age-old question "how does Windows
work?" since it surely has no such quirk. I'd say we're sometimes too
quick to add these DMI quirks when a more general solution would be
somehow figure out how the Linux behavior differs from what Windows is
doing.
My guess is that Windows explicitly enables A20 on resume. We should do that too, really... with the current heavily unified realmode code it should be easy - let me hack up a patch in the morning.
Robert Hancock <[email protected]> wrote:
>On 10/24/2012 02:09 PM, Alan Cox wrote:
>> On Wed, 24 Oct 2012 12:36:04 -0700
>> "H. Peter Anvin" <[email protected]> wrote:
>>
>>> Minor concern: it should do the wait for ready before sending each
>command.
>>
>> Can we get a command line to do this quirk too - it strikes me that
>if
>> the MSIs rely upon it then it may be something Windows always does so
>> will be useful to try on other problem machines as an experiment.
>
>I agree, one has to keep in mind the age-old question "how does Windows
>
>work?" since it surely has no such quirk. I'd say we're sometimes too
>quick to add these DMI quirks when a more general solution would be
>somehow figure out how the Linux behavior differs from what Windows is
>doing.
--
Sent from my mobile phone. Please excuse brevity and lack of formatting.
On Friday 26 October 2012, H. Peter Anvin wrote:
> My guess is that Windows explicitly enables A20 on resume. We should do
> that too, really... with the current heavily unified realmode code it
> should be easy - let me hack up a patch in the morning.
Neither s3_beep nor s3_leds (this patch:
https://lists.ubuntu.com/archives/kernel-team/2011-May/015621.html ) worked
for me so I thing that BIOS breaks on resume before we can do anything.
> Robert Hancock <[email protected]> wrote:
> >On 10/24/2012 02:09 PM, Alan Cox wrote:
> >> On Wed, 24 Oct 2012 12:36:04 -0700
> >>
> >> "H. Peter Anvin" <[email protected]> wrote:
> >>> Minor concern: it should do the wait for ready before sending each
> >
> >command.
> >
> >> Can we get a command line to do this quirk too - it strikes me that
> >
> >if
> >
> >> the MSIs rely upon it then it may be something Windows always does so
> >> will be useful to try on other problem machines as an experiment.
> >
> >I agree, one has to keep in mind the age-old question "how does Windows
> >
> >work?" since it surely has no such quirk. I'd say we're sometimes too
> >quick to add these DMI quirks when a more general solution would be
> >somehow figure out how the Linux behavior differs from what Windows is
> >doing.
--
Ondrej Zary