ACPI _PS0 failing with UNINITIALIZED_ARG

Alexander Boettcher alexander.boettcher at ...1...
Fri Aug 4 11:12:52 CEST 2017


Hi,

On 03.08.2017 13:29, Johannes Kliemann wrote:
>> I have a touchscreen controller (which is an I2C slave) that I need to enable via APCI. This should be done by calling the _PS0 ACPI method. I call this method by using AcpiEvaluateObject with no arguments and no return values.

just guessing. Since the touchscreen controller is a slave of the I2C
controller, you have to have a (ACPI) driver to enable the I2C and
potentially also the right I2C slaves.

>> what am I missing to successfully enable the touchscreen device via ACPI? Is there something the Linux kernel is initializing implicitly (I couldn't find something like this)?
> 
> The current workaround for this issue is to use the GPIO pins to enable
> the controller. But this isn't the desired way since it requires an
> additional GPIO driver that takes ~100 LOC and also a separate ACPI
> initialization for this driver.

again, just guessing. Your workaround sounds bit like a part of the
initialize sequence of the I2C controller.

> Besides that other functions that are needed to get initial parameters
> return errors. On the specific device I have the following examples:
> 
>> \_SB_.I2C4.SSCN
>> \_SB_.I2C4.FMCN
>> \_SB_.I2C4.FPCN
>> \_SB_.I2C4.HSCN

again, just guessing. Probably you need/have to find the right acpi
method to initialize the I2C controller, so that the slaves, as your
touchscreen, may work properly.

>> what am I missing to successfully enable the touchscreen device via
ACPI? Is there something the Linux kernel is initializing implicitly (I
couldn't find something like this)?

... just guessing: the Linux kernel initialize the I2C controller for
sure fully, thats why the I2C method in the ACPI tables of your I2C
slave work in Linux ?


If all my guessing above is wrong, another direction could be to check
the version of the acpica library used by Genode and the ACPICA version
you have in the Linux kernel. I know that ACPICA library code and Linux
code does not exactly match (but they have common roots), so that one
may possibly deduce the difference in the behavior. Maybe a update to a
new ACPICA library version for Genode can help (since there a features
and fixes in the upstream ACPICA library according to the changelog) ?

Good luck,

-- 
Alexander Boettcher
Genode Labs

http://www.genode-labs.com - http://www.genode.org

Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




More information about the users mailing list