Re: [PATCH v2 0/3] ChromeOS Embedded Controller charge control driver

From: Mario Limonciello
Date: Wed Jun 05 2024 - 16:32:50 EST


On 6/5/2024 04:33, Thomas Weißschuh wrote:
On 2024-06-04 20:27:57+0000, Dustin Howett wrote:
On Mon, Jun 3, 2024 at 3:59 PM Thomas Weißschuh <linux@xxxxxxxxxxxxxx> wrote:

Can you try disabling all of the Framework-specific charge control
settings and test again?
Probably the different, disparate logics in the Framework ECs are
conflicting with each other.

Fascinating! This board does indeed support charge limiting through
both interfaces. It looks like the most recently set one wins for a
time.

If it is the most recent one, shouldn't the driver have worked?
What does "for a time" mean?
I'm using only the upstream EC command and that seems to work fine.

The UEFI setup utility only sets the framework-specific charge limit value.

We should probably find some way to converge them, for all of the
supported Framework Laptop programs.

In the long term, Framework should align their implementation with
upstream CrOS EC and either drop their custom command or make it a thin
wrapper around the normal the upstream command.

(As you are familiar with EC programming maybe you want to tackle this?)

Until then I think we can detect at probe-time if the Framework APIs are
available and use them to disable the Framework-specific mechanism.
Then the CrOS EC commands should be usable.

The drawback is, that userspace using the Framework APIs will break
the driver. That userspace would need to migrate to the standard UAPI.

How does userspace access the Framework APIs? Surely it needs to go through the kernel? Could you "filter" the userspace calls to block them?

For example this is something that currently happens in the dell-pc driver to block userspace from doing thermal calls and instead guide people to the proper API that the driver exports.


Also the settings set in the firmware would be ignored at that point.

I don't want to use the functionality of the Framework command because
it's less featureful and I really hope it will go away at some point.