Hi all,
I tried diving into the acpica utility to check if I can make the state reports work on some of our machines. Currently I am testing it on the lenovo x250 and the hp 840 laptops.
However, I am not sure how and if to proceed here.
The current behaviour is as following:
When the machine starts up, it produces the reports of acpi_ac and acpi_battery correctly. When I disconnect the power outlet, these reports do not get updated. instead, I do get acpi_ec report updates on some of the different events, such as connecting and disconnecting the laptop to AC. These events have different values on the different laptops.
The ec report acpica produces on the hp840:
[init -> acpi_report_rom] report 'acpica -> acpi_ec' [init -> acpi_report_rom] <acpi_ec> [init -> acpi_report_rom] <ec> [init -> acpi_report_rom] <data value="8" count="36">triggered</data> <-- this is added on a charge up event (it seems to trigger periodically when the battery is not full and AC is connected [init -> acpi_report_rom] <data value="9" count="53"/> <-- this is added on a charge down event (it seems to trigger periodically when the battery is not full) [init -> acpi_report_rom] <data value="6" count="2"/> <-- AC connect/disconnect event (this triggers once when disconnecting and once when connecting) [init -> acpi_report_rom] </ec> [init -> acpi_report_rom] </acpi_ec>
on the x250:
[init -> acpi_report_rom] report 'acpica -> acpi_ec' [init -> acpi_report_rom] <acpi_ec> [init -> acpi_report_rom] <ec> [init -> acpi_report_rom] <data value="38" count="1">triggered</data> <-- AC disconnect event (this triggers once when disconnecting) [init -> acpi_report_rom] <data value="77" count="1"/> <-- AC connect event (this triggers once when connecting) [init -> acpi_report_rom] <data value="39" count="1"/> <-- AC connect event (this also triggers once when connecting) [init -> acpi_report_rom] </ec> [init -> acpi_report_rom] </acpi_ec>
Some observations:
* The charge/discharge events do not work on the x250. * On the hp840 connecting and deconnecting share the same data value. * On both laptops, disconnecting and reconnecting the AC outlet only triggers the ec report once, and doing it again does not produce a report. Reconnecting AC a second time also seems to cause the charge events to stop being reported on the hp840. * The lid report only works on the hp840. * The power button works on the hp840 and only works on the x250 if you press it for a longer time (but not so long as to turn off the device). * Ideally, for some device, such as one of the above, we would like all of these reports to be updated correctly.
I have some questions about this:
* You mentioned in your issue about sculpt EA that the reports not getting updated are a known issue. Do you have any plans of fixing this in the future? * Do you think solutions to this issue are going to be device specific? Which parts are generally the same for different laptops? * Is the difference in handling of the events on these machines caused by the acpica C code not supporting these machines, or by the Genode code not supporting them? or both? * A workaround could be installing a timer and generating the initial reports periodically. Do you think this would be worth implementing or would fixing the problem be easier? * For device specific parts: suppose it works on your test setup, how should we proceed to make it work on other hardware?