Created attachment 127161
acpi_ec_clear function, only run on affected hardware
Thanks Dennis, some good suggestions there. I've attached a slightly cleaner version of the patch (hopefully).
1. Yes, acpi_ec_clear() should have been void - thanks.
2. I've #define'd a constant ACPI_EC_CLEAR_ITER to store the magical "20".
3. I've incorporated your extra messages
Lastly, I've been thinking about whether this should be more hardware specific. While it would be trivial to instead add a sequence of table entries such as:
I currently feel that just picking up the system vendor is enough, on the basis that:
- this probably affects more Samsung systems than we realise
- it really shouldn't do any harm on systems without this bug
- if you look at the other entries in the table, they turn on quirks for things like "all ASUS systems", so it's not unprecedented
But, if it's knocked back for not being specific enough, here's a suggested list of product name substrings:
530U
535U
540U
550P
900X
(Mine is 900X3F/NP900X3F-K01AU)
As for adding another boot parameter, my personal opinion is that it's not necessary since we have a simple user space program which can be used to check if systems are affected. That is, I can't really think of a situation where the user space program couldn't work just as well as a stop-gap measure until other hardware was added to the table.
Created attachment 127161
acpi_ec_clear function, only run on affected hardware
Thanks Dennis, some good suggestions there. I've attached a slightly cleaner version of the patch (hopefully).
1. Yes, acpi_ec_clear() should have been void - thanks.
2. I've #define'd a constant ACPI_EC_CLEAR_ITER to store the magical "20".
3. I've incorporated your extra messages
Lastly, I've been thinking about whether this should be more hardware specific. While it would be trivial to instead add a sequence of table entries such as:
{
ec_clear_ on_resume, "Samsung hardware", {
DMI_MATCH( DMI_SYS_ VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
DMI_MATCH( DMI_PRODUCT_ NAME, "900X")}, NULL}
I currently feel that just picking up the system vendor is enough, on the basis that:
- this probably affects more Samsung systems than we realise
- it really shouldn't do any harm on systems without this bug
- if you look at the other entries in the table, they turn on quirks for things like "all ASUS systems", so it's not unprecedented
But, if it's knocked back for not being specific enough, here's a suggested list of product name substrings:
530U
535U
540U
550P
900X
(Mine is 900X3F/ NP900X3F- K01AU)
As for adding another boot parameter, my personal opinion is that it's not necessary since we have a simple user space program which can be used to check if systems are affected. That is, I can't really think of a situation where the user space program couldn't work just as well as a stop-gap measure until other hardware was added to the table.