Hi, Thorsten here, the Linux kernel's regression tracker.
Rafael, I noticed a report about a regression in bugzilla.kernel.org
that (if I understood things correctly, which in this case I'm not
entirely sure of) appears to be caused by a change of yours:
60fa6ae6e6d09e ("ACPI: EC: Install address space handler at the
namespace root")
As many (most?) kernel developers don't keep an eye on the bug tracker,
I decided to write this mail. To quote from
https://bugzilla.kernel.org/show_bug.cgi?id=218945 :
> VitaliiT 2024-06-07 12:43:14 UTC
>
> Created attachment 306438 [details]
> Workaround for asus gu605
>
> Creating this ticket to highlight a regression introduced with a fix
> proposed in https://bugzilla.kernel.org/show_bug.cgi?id=218789
>
> Actually that patch breaks ac and battery modules.
> Sysfs readings for gu605 reported:
> - that AC is always online independently if power source connected
> - battery readings are wrong: capacity always 100, voltage is always
> 5000, current is always 1000000; charge_full and charge_full_design is
> always 5000. All values are not correct.
>
> I've updated defect 218789 with a workaround patch that makes ac and
> battery modules working again with 6.10 source tree.
>
> Unfortunately, I can not provide correct solution since I am not acpi
> expert, but I feel that Lenovo laptop might need quirks or separate
> logic for EC initialization flow.
>
> Additionally, not sure if it is correct to use ACPI_ROOT_OBJECT as
> acpi_handle when actual acpi_ec requested for initialization. An ACPI
> expert might need to look into this.
>
> Here are some results of investigation:
>
> In 218789 due to reported error proposed to use ACPI_ROOT_OBJECT which
> supposed to initalize EC's, but on asus laptops this change breaks
> backward compatibility.
>
> So ec_install_handlers is called from acpi_ec_setup and first_ec will be
> set to ec in the beginning, so in ec_install_handlers() ACPI_ROOT_OBJECT
> will be used as handler.
> static int ec_install_handlers(struct acpi_ec *ec, struct acpi_device
> *device,
> bool call_reg)
> {
> acpi_handle scope_handle = ec == first_ec ? ACPI_ROOT_OBJECT :
> ec->handle;
>
> And this method is called from acpi_ec_setup where first_ec will be set
> to ec:
>
> static int acpi_ec_setup(struct acpi_ec *ec, struct acpi_device *device,
> bool call_reg)
> {
> int ret;
>
> /* First EC capable of handling transactions */
> if (!first_ec)
> first_ec = ec;
>
> I understand th> VitaliiT 2024-06-07 12:43:14 UTC
at original defect should be fixed, but preserving things
> which used to work should be also priority.
>
> Please let me know if additional information is needed.
>
> The fix which just works (probably it is not "proper" fix, but that
> patch makes asus battery and ac modules working as supposed to).
See the ticket for more details. Note, you have to use bugzilla to reach
the reporter, as I sadly[1] can not CCed them in mails like this.
Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.
[1] because bugzilla.kernel.org tells users upon registration their
"email address will never be displayed to logged out users"
P.S.: let me use this mail to also add the report to the list of tracked
regressions to ensure it's doesn't fall through the cracks:
#regzbot introduced: 60fa6ae6e6d09e
#regzbot title: ACPI: EC: ac and battery readings for asus laptops
(gu605) broken
#regzbot from: VitaliiT
#regzbot duplicate: https://bugzilla.kernel.org/show_bug.cgi?id=218945
#regzbot ignore-activity
On Tue, Jun 11, 2024 at 1:48 PM Linux regression tracking (Thorsten
Leemhuis) <[email protected]> wrote:
>
> Hi, Thorsten here, the Linux kernel's regression tracker.
>
> Rafael, I noticed a report about a regression in bugzilla.kernel.org
> that (if I understood things correctly, which in this case I'm not
> entirely sure of) appears to be caused by a change of yours:
> 60fa6ae6e6d09e ("ACPI: EC: Install address space handler at the
> namespace root")
>
> As many (most?) kernel developers don't keep an eye on the bug tracker,
> I decided to write this mail. To quote from
> https://bugzilla.kernel.org/show_bug.cgi?id=218945 :
Thanks for forwarding, I responded in the BZ.