Comment 528 for bug 1958019

Revision history for this message
In , cam (cam-linux-kernel-bugs) wrote :

Well, I did make a tiny bit of progress.

Seems the option to enable CS35L41 amp support needs to define some
dependencies... But for now, we can enable them in the kernel manually.

You may already have it enabled, but the "i2c-multi-instantiate" module
is also needed. For convenience, the kernel option is simply
I2C_MULTI_INSTANTIATE.

Unfortunately, it doesn't quite work:
[ 1364.629567] acpi CLSA0101:00: GPIO: looking up 0 in _CRS
[ 1364.629582] acpi CLSA0101:00: GPIO: looking up 1 in _CRS
[ 1364.629592] acpi CLSA0101:00: GPIO: looking up 2 in _CRS
[ 1364.629605] acpi CLSA0101:00: GPIO: looking up 3 in _CRS
[ 1364.629655] gpio gpiochip0: Persistence not supported for GPIO 230
[ 1364.629711] I2C multi instantiate pseudo device driver CLSA0101:00:
Error requesting irq at index 0: -22
[ 1364.629732] I2C multi instantiate pseudo device driver: probe of
CLSA0101:00 failed with error -22

under drivers/platform/x86/i2c-multi-instantiate.c, we have:
static const struct i2c_inst_data clsa0100_data[]  = {
         { "cs35l41-hda", IRQ_RESOURCE_GPIO, 0 },
         { "cs35l41-hda", IRQ_RESOURCE_GPIO, 0 },
         {}
};

Maybe something about this doesn't quite work on Intel or at least this
model of laptop?

On another note:
When I first got this laptop some months back, the touchpad initially
didn't work due to some some mapping issues with GPIO on TigerLake. It
was quickly fixed:
https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel.git/commit/?h=fixes&id=2f658f7a3953f6d70bab90e117aff8d0ad44e200

Maybe there's some more Tigerlake/GPIO issues to be sorted out? Probably
not; this is just a shot in the dark.

On 11/27/21 13:01, <email address hidden> wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=208555
>
> --- Comment #514 from Weikai Kong (<email address hidden>) ---
> Another thing I have to point out is that when I uninstalled Cirrus Logic
> Amplifiers from Windows the same thing happened as well.
>
>> I'm not really sure how Linux detects devices via ACPI (or in general).
>> I do know there's some differences in regards to i2c on Intel Vs. AMD
>> (something like one has 2 i2c controllers where as the other has just
>> 1), but I strongly suspect the kernel abstracts much of that away.
> I don't see 2 I2Cs controllers for the amplifier or things like that while at
> it.
> The amplifier is connected to Intel(R) Serial IO I2C Host Controller - 43EA
> (\_SB.PC00.I2C2) on Windows. The other 43E9 (\_SB.PC00.I2C1) controller is
> for
> HID. Nothing is connected to 43E8(\_SB.PC00.I2C0) for me.
>