Re: [PATCH v4 2/2] mfd: axp20x-i2c: Document that this must be builtin on x86

From: Hans de Goede
Date: Fri May 26 2017 - 07:15:02 EST


Hi,

On 22-05-17 12:56, Lee Jones wrote:
On Mon, 15 May 2017, Hans de Goede wrote:

On x86 the axp288 PMIC provides an ACPI OpRegion handler, which must be
available before other drivers using it are loaded, which can only be
ensured if the mfd, OpRegionr and i2c-bus drivers are built in.

Since the axp20x mfd code is used on non X86 too we cannot simply change
this into a bool, I've tried some Kconfig magic with if x86 but I could
not get this working correctly, so this commit just documents that this
should be builtin on x86, which fixes errors like these during boot:

mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA
ACPI Error: No handler for Region [REGS] (ffff93543b0cc3a8) [UserDefinedRegion]
ACPI Error: Region UserDefinedRegion (ID=143) has no handler (20170119/exfldio-2
ACPI Error: Method parse/execution failed [\_SB.PCI0.I2C7.PMI5.GET] (Node ffff93
ACPI Error: Method parse/execution failed [\_SB.PCI0.SHC1._PS0] (Node ffff93543b
acpi 80860F14:02: Failed to change power state to D0

Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>

Would be good to get an Ack by the users/maintainers of this driver.

If you look at recent commits to drivers for the mfd-subdevices for the AXP288
(which is the only AXP PMIC found on x86 systems) you will see that I've
been the only one touch them / caring about them and in many cases fixing
them from being non-functional to actually working.

I do have quite a few people who are using the AXP288 code on Bay and Cherry
Trail devices with this PMIC and who have send me thank you's and test
success reports.

So I guess I'm the closest thing to a MAINTAINER for the axp288 bits of
this driver.

---
Changes in v2:
-Fix Kconfig depends and selects to fix warning reported by kbuild test robot
-Improve commit msg (add example of ACPI errors this avoids)
Changes in v3:
-Since the axp20x mfd code is used on ARM too where it does not necessarily
need to be builtin settle for simply documenting the need to have this
builtin on x86
---
drivers/mfd/Kconfig | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 61ebda81e134..cfac1e8a0a20 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -160,6 +160,11 @@ config MFD_AXP20X_I2C
components like regulators or the PEK (Power Enable Key) under the
corresponding menus.
+ Note on x86 this provides an ACPI OpRegion, so this must be 'y'
+ (builtin) and not a module, as the OpRegion must be available as
+ soon as possible. For the same reason the i2c bus driver options

Nit: s/i2c/I2C/

Fixed for v5 (which I will send in a minute).

Regards,

Hans