Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1606387 > unrolled thread

[PATCH 0/5] Intel PMIC: Intel PMIC mfd and OPRegion drivers must be built in

Started byHans de Goede <hdegoede@redhat.com>
First post2017-03-22 12:30 +0100
Last post2017-03-22 12:40 +0100
Articles 8 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/5] Intel PMIC: Intel PMIC mfd and OPRegion drivers must be built in Hans de Goede <hdegoede@redhat.com> - 2017-03-22 12:30 +0100
    [PATCH 4/5] mfd: intel_soc_pmic_chtwc: This driver must always be builtin when enabled Hans de Goede <hdegoede@redhat.com> - 2017-03-22 12:40 +0100
    [PATCH 3/5] mfd: axp20c-i2c: Select designware i2c-bus driver on x86 Hans de Goede <hdegoede@redhat.com> - 2017-03-22 12:40 +0100
    [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver Hans de Goede <hdegoede@redhat.com> - 2017-03-22 12:40 +0100
      Re: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus  driver Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-03-22 14:00 +0100
        Re: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver Lee Jones <lee.jones@linaro.org> - 2017-03-23 17:50 +0100
          Re: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver Hans de Goede <hdegoede@redhat.com> - 2017-03-23 23:40 +0100
    [PATCH 5/5] ACPI / PMIC: mfd: intel_pmic_chtwc: This driver must always be builtin Hans de Goede <hdegoede@redhat.com> - 2017-03-22 12:40 +0100

#1606387 — [PATCH 0/5] Intel PMIC: Intel PMIC mfd and OPRegion drivers must be built in

FromHans de Goede <hdegoede@redhat.com>
Date2017-03-22 12:30 +0100
Subject[PATCH 0/5] Intel PMIC: Intel PMIC mfd and OPRegion drivers must be built in
Message-ID<tnMCK-1Dh-17@gated-at.bofh.it>
Hi All,

Here is a series enforcing Intel PMIC mfd and OPRegion drivers to be built
in, this is necessary so that the OPRegion handlers are registered before
other drivers try to enter D0 which may require these OPRegion handlers.

Note patches 4 & 5 are for drivers which have been submitted but not
yet accepted in -next, so theoretically they could be squashed into
the original patches, but I believe it is good to keep them as separate
commits to have a git history which documents why these are builtin.

The patches span both the mfd and ACPI subsystems but can me merged
independently of each other I'm posting this as a single series as
both sides are part of fixing the same issue.

Regards,

Hans

[toc] | [next] | [standalone]


#1606390 — [PATCH 4/5] mfd: intel_soc_pmic_chtwc: This driver must always be builtin when enabled

FromHans de Goede <hdegoede@redhat.com>
Date2017-03-22 12:40 +0100
Subject[PATCH 4/5] mfd: intel_soc_pmic_chtwc: This driver must always be builtin when enabled
Message-ID<tnMMp-1H2-1@gated-at.bofh.it>
In reply to#1606387
The chtwc 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, opregion and i2c-bus drivers are built in.

This commit changes the option for the mfd driver to bool and adds
a select for the i2c-bus driver, ensuring both are built-in if enabled.

This fixes errors like these during boot:

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

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/mfd/Kconfig | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 08f8dcb..396245d 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -443,12 +443,15 @@ config INTEL_SOC_PMIC
 	  on these systems.
 
 config INTEL_SOC_PMIC_CHTWC
-	tristate "Support for Intel Cherry Trail Whiskey Cove PMIC"
+	# This is a bool as it provides an ACPI Opregion which must be
+	# available as soon as possible
+	bool "Support for Intel Cherry Trail Whiskey Cove PMIC"
 	depends on ACPI
 	depends on I2C
 	select MFD_CORE
 	select REGMAP_I2C
 	select REGMAP_IRQ
+	select I2C_DESIGNWARE_PLATFORM
 	help
 	  Select this option to enable support for the Intel Cherry Trail
 	  Whiskey Cove PMIC found on some Intel Cherry Trail systems.
-- 
2.9.3

[toc] | [prev] | [next] | [standalone]


#1606391 — [PATCH 3/5] mfd: axp20c-i2c: Select designware i2c-bus driver on x86

FromHans de Goede <hdegoede@redhat.com>
Date2017-03-22 12:40 +0100
Subject[PATCH 3/5] mfd: axp20c-i2c: Select designware i2c-bus driver on x86
Message-ID<tnMMp-1H2-3@gated-at.bofh.it>
In reply to#1606387
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, opregion driver and i2c-bus drivers are built in.

The opregion driver is a bool depending on MFD_AXP20X_I2C ensuring that
it will be builtin if the opregion driver is to be enabled, add a
select for the designware-options to ensure those get built in too.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/mfd/Kconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 0c6a967..08f8dcb 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -148,6 +148,8 @@ config MFD_AXP20X_I2C
 	tristate "X-Powers AXP series PMICs with I2C"
 	select MFD_AXP20X
 	select REGMAP_I2C
+	select I2C_DESIGNWARE_PLATFORM if X86
+	select I2C_DESIGNWARE_BAYTRAIL if X86
 	depends on I2C
 	help
 	  If you say Y here you get support for the X-Powers AXP series power
-- 
2.9.3

[toc] | [prev] | [next] | [standalone]


#1606393 — [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver

FromHans de Goede <hdegoede@redhat.com>
Date2017-03-22 12:40 +0100
Subject[PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver
Message-ID<tnMMq-1H2-25@gated-at.bofh.it>
In reply to#1606387
The Crystal Cove PMIC provides an ACPI OPRegion handler, which must be
available before other drivers using it are loaded, which is why
INTEL_SOC_PMIC is a bool.

Just having the driver is not enough, the driver for the i2c-bus must
also be built in, to ensure this, this patch adds a select for it.

While at it this patch also changes the human readable name of the Kconfig
option to make clear the INTEL_SOC_PMIC option selects support for the
Intel Crystal Cove PMIC and documents why this is a bool.

Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Note this patch will partially conflicts with (contains the same changes as)
a patch in Andy Shevchenko's tree.
---
 drivers/mfd/Kconfig | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index d427a10..0c6a967 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -425,14 +425,17 @@ config LPC_SCH
 	  System Management Bus and General Purpose I/O.
 
 config INTEL_SOC_PMIC
-	bool "Support for Intel Atom SoC PMIC"
+	# This is a bool as it provides an ACPI Opregion which must be
+	# available as soon as possible
+	bool "Support for Intel Crystal Cove PMIC"
 	depends on GPIOLIB
 	depends on I2C=y
 	select MFD_CORE
 	select REGMAP_I2C
 	select REGMAP_IRQ
+	select I2C_DESIGNWARE_PLATFORM
 	help
-	  Select this option to enable support for the PMIC device
+	  Select this option to enable support for the Crystal Cove PMIC
 	  on some Intel SoC systems. The PMIC provides ADC, GPIO,
 	  thermal, charger and related power management functions
 	  on these systems.
-- 
2.9.3

[toc] | [prev] | [next] | [standalone]


#1606440 — Re: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver

FromAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Date2017-03-22 14:00 +0100
SubjectRe: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver
Message-ID<tnO1P-2wP-11@gated-at.bofh.it>
In reply to#1606393
On Wed, 2017-03-22 at 12:29 +0100, Hans de Goede wrote:
> The Crystal Cove PMIC provides an ACPI OPRegion handler, which must be
> available before other drivers using it are loaded, which is why
> INTEL_SOC_PMIC is a bool.
> 
> Just having the driver is not enough, the driver for the i2c-bus must
> also be built in, to ensure this, this patch adds a select for it.
> 

> While at it this patch also changes the human readable name of the
> Kconfig
> option to make clear the INTEL_SOC_PMIC option selects support for the
> Intel Crystal Cove PMIC and documents why this is a bool.

The above is what my patch does, I'm okay if the change is going with
this series as long as Lee is on the same side. Otherwise I would prefer
to go my changes first.

> 
> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> Note this patch will partially conflicts with (contains the same
> changes as)
> a patch in Andy Shevchenko's tree.
> ---
>  drivers/mfd/Kconfig | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index d427a10..0c6a967 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -425,14 +425,17 @@ config LPC_SCH
>  	  System Management Bus and General Purpose I/O.
>  
>  config INTEL_SOC_PMIC
> -	bool "Support for Intel Atom SoC PMIC"
> +	# This is a bool as it provides an ACPI Opregion which must
> be
> +	# available as soon as possible
> +	bool "Support for Intel Crystal Cove PMIC"
>  	depends on GPIOLIB
>  	depends on I2C=y
>  	select MFD_CORE
>  	select REGMAP_I2C
>  	select REGMAP_IRQ
> +	select I2C_DESIGNWARE_PLATFORM
>  	help
> -	  Select this option to enable support for the PMIC device
> +	  Select this option to enable support for the Crystal Cove
> PMIC
>  	  on some Intel SoC systems. The PMIC provides ADC, GPIO,
>  	  thermal, charger and related power management functions
>  	  on these systems.

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

[toc] | [prev] | [next] | [standalone]


#1607702 — Re: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver

FromLee Jones <lee.jones@linaro.org>
Date2017-03-23 17:50 +0100
SubjectRe: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver
Message-ID<toe5Y-4Wc-27@gated-at.bofh.it>
In reply to#1606440
On Wed, 22 Mar 2017, Andy Shevchenko wrote:

> On Wed, 2017-03-22 at 12:29 +0100, Hans de Goede wrote:
> > The Crystal Cove PMIC provides an ACPI OPRegion handler, which must be
> > available before other drivers using it are loaded, which is why
> > INTEL_SOC_PMIC is a bool.
> > 
> > Just having the driver is not enough, the driver for the i2c-bus must
> > also be built in, to ensure this, this patch adds a select for it.
> > 
> 
> > While at it this patch also changes the human readable name of the
> > Kconfig
> > option to make clear the INTEL_SOC_PMIC option selects support for the
> > Intel Crystal Cove PMIC and documents why this is a bool.
> 
> The above is what my patch does, I'm okay if the change is going with
> this series as long as Lee is on the same side. Otherwise I would prefer
> to go my changes first.

I think this set is going to need to be rebase on top of MFD.

> > Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > ---
> > Note this patch will partially conflicts with (contains the same
> > changes as)
> > a patch in Andy Shevchenko's tree.
> > ---
> >  drivers/mfd/Kconfig | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> > index d427a10..0c6a967 100644
> > --- a/drivers/mfd/Kconfig
> > +++ b/drivers/mfd/Kconfig
> > @@ -425,14 +425,17 @@ config LPC_SCH
> >  	  System Management Bus and General Purpose I/O.
> >  
> >  config INTEL_SOC_PMIC
> > -	bool "Support for Intel Atom SoC PMIC"
> > +	# This is a bool as it provides an ACPI Opregion which must
> > be
> > +	# available as soon as possible
> > +	bool "Support for Intel Crystal Cove PMIC"
> >  	depends on GPIOLIB
> >  	depends on I2C=y
> >  	select MFD_CORE
> >  	select REGMAP_I2C
> >  	select REGMAP_IRQ
> > +	select I2C_DESIGNWARE_PLATFORM
> >  	help
> > -	  Select this option to enable support for the PMIC device
> > +	  Select this option to enable support for the Crystal Cove
> > PMIC
> >  	  on some Intel SoC systems. The PMIC provides ADC, GPIO,
> >  	  thermal, charger and related power management functions
> >  	  on these systems.
> 

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

[toc] | [prev] | [next] | [standalone]


#1607997 — Re: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver

FromHans de Goede <hdegoede@redhat.com>
Date2017-03-23 23:40 +0100
SubjectRe: [PATCH 2/5] mfd: intel_soc_pmic: Select designware i2c-bus driver
Message-ID<tojyG-sG-13@gated-at.bofh.it>
In reply to#1607702
Hi,

On 23-03-17 17:46, Lee Jones wrote:
> On Wed, 22 Mar 2017, Andy Shevchenko wrote:
>
>> On Wed, 2017-03-22 at 12:29 +0100, Hans de Goede wrote:
>>> The Crystal Cove PMIC provides an ACPI OPRegion handler, which must be
>>> available before other drivers using it are loaded, which is why
>>> INTEL_SOC_PMIC is a bool.
>>>
>>> Just having the driver is not enough, the driver for the i2c-bus must
>>> also be built in, to ensure this, this patch adds a select for it.
>>>
>>
>>> While at it this patch also changes the human readable name of the
>>> Kconfig
>>> option to make clear the INTEL_SOC_PMIC option selects support for the
>>> Intel Crystal Cove PMIC and documents why this is a bool.
>>
>> The above is what my patch does, I'm okay if the change is going with
>> this series as long as Lee is on the same side. Otherwise I would prefer
>> to go my changes first.
>
> I think this set is going to need to be rebase on top of MFD.

This patch (2/5) and 3/5 should apply cleanly as they only
touch drivers/mfd/Kconfig and mfd-for-next has only 1 commit
touching Kconfig which is no where near the areas these 2
patches are making changes. So I believe they can be applied as is.

As for the other patches, patch 1/5 is for the ACPI subsys, since
you've requested changes to the Cherry Trail Whiskey Cove MFD driver
I will squash 4/5 into the new version of that and 5/5 again is an
ACPI patch.

Regards,

Hans



>
>>> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>> ---
>>> Note this patch will partially conflicts with (contains the same
>>> changes as)
>>> a patch in Andy Shevchenko's tree.
>>> ---
>>>  drivers/mfd/Kconfig | 7 +++++--
>>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
>>> index d427a10..0c6a967 100644
>>> --- a/drivers/mfd/Kconfig
>>> +++ b/drivers/mfd/Kconfig
>>> @@ -425,14 +425,17 @@ config LPC_SCH
>>>  	  System Management Bus and General Purpose I/O.
>>>
>>>  config INTEL_SOC_PMIC
>>> -	bool "Support for Intel Atom SoC PMIC"
>>> +	# This is a bool as it provides an ACPI Opregion which must
>>> be
>>> +	# available as soon as possible
>>> +	bool "Support for Intel Crystal Cove PMIC"
>>>  	depends on GPIOLIB
>>>  	depends on I2C=y
>>>  	select MFD_CORE
>>>  	select REGMAP_I2C
>>>  	select REGMAP_IRQ
>>> +	select I2C_DESIGNWARE_PLATFORM
>>>  	help
>>> -	  Select this option to enable support for the PMIC device
>>> +	  Select this option to enable support for the Crystal Cove
>>> PMIC
>>>  	  on some Intel SoC systems. The PMIC provides ADC, GPIO,
>>>  	  thermal, charger and related power management functions
>>>  	  on these systems.
>>
>

[toc] | [prev] | [next] | [standalone]


#1606395 — [PATCH 5/5] ACPI / PMIC: mfd: intel_pmic_chtwc: This driver must always be builtin

FromHans de Goede <hdegoede@redhat.com>
Date2017-03-22 12:40 +0100
Subject[PATCH 5/5] ACPI / PMIC: mfd: intel_pmic_chtwc: This driver must always be builtin
Message-ID<tnMMq-1H2-23@gated-at.bofh.it>
In reply to#1606387
The chtwc PMIC provides an ACPI OPRegion handler, which must be available
before other drivers using it are loaded, which can only be ensured if
both the mfd and opregion drivers are built in.

This fixes errors like these during boot:

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

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/acpi/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index ec09fa2..842530f 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -517,7 +517,7 @@ config BXT_WC_PMIC_OPREGION
 	  This config adds ACPI operation region support for BXT WhiskeyCove PMIC.
 
 config CHT_WC_PMIC_OPREGION
-	tristate "ACPI operation region support for CHT Whiskey Cove PMIC"
+	bool "ACPI operation region support for CHT Whiskey Cove PMIC"
 	depends on INTEL_SOC_PMIC_CHTWC
 	help
 	  This config adds ACPI operation region support for CHT Whiskey Cove PMIC.
-- 
2.9.3

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web