The following code: if (dmi_name_in_vendors("Micro-Star") || dmi_name_in_vendors("Notebook")) { pr_info(PREFIX "Enabling special treatment for EC from MSI.\n"); EC_FLAGS_MSI = 1; } enables MSI workaround on all notebooks, introducing delays into EC handling. The || should probably be && instead.
No, "Notebook" in vendor field of DMI is specific to MSI, as I am aware of. So, || is intended.
I beg to differ. My laptop includes "Notebook" in the product name. Why would you think that this would somehow identify a MSI laptop? Manufacturer: Hewlett-Packard Product Name: HP Pavilion dv2700 Notebook PC If this _really_ is intended, can you explain why it would make any sense to enable a MSI bug workaround on my laptop? I still detect bogons.
I believe you may be misinterpreting the effect of the (poorly-named) function dmi_name_in_vendors(). It searches a haystack of several DMI strings, not just the DMI vendor string.
please provide output of dmidecode for your machine.
Created attachment 22902 [details] dmidecode
please check if the patch http://bugzilla.kernel.org/attachment.cgi?id=22911 works for you.
Testing. By the way, the comment for ACPI_EC_DELAY is also wrong, it is a 500us delay, not a 500ms delay.
No, it is half a second. Same name was used for MSI workaround, and there it is in usec. There is a patch already, which splits MSI specific value apart.
The patch works, so please apply to mainline.
commit 0adf3c746a73684b3f8c2821a584e1db998f61e9 ACPI: EC: Rewrite DMI checks shipped in Linux-2.6.32-rc3 closed