[PATCH] FROMLIST: wilco_ec: Fix Kconfig dependencies

From: Nick Crews
Date: Tue Feb 12 2019 - 18:46:15 EST


In the initial version of the Wilco EC Driver, the
dependency order was wrong. It before was possible to
select CONFIG_WILCO_EC and CONFIG_CROS_EC_LPC without
having CONFIG_CROS_EC_LPC_MEC. This was wrong, since
WILCO_EC depends upon CONFIG CROS_EC_LPC_MEC, not the
other way around.

---
drivers/platform/chrome/Kconfig | 2 +-
drivers/platform/chrome/wilco_ec/Kconfig | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/platform/chrome/Kconfig b/drivers/platform/chrome/Kconfig
index 462eb9dfa4f2..b69561050868 100644
--- a/drivers/platform/chrome/Kconfig
+++ b/drivers/platform/chrome/Kconfig
@@ -95,7 +95,7 @@ config CROS_EC_LPC

config CROS_EC_LPC_MEC
bool "ChromeOS Embedded Controller LPC Microchip EC (MEC) variant"
- depends on CROS_EC_LPC || WILCO_EC
+ depends on CROS_EC_LPC
default n
help
If you say Y here, a variant LPC protocol for the Microchip EC
diff --git a/drivers/platform/chrome/wilco_ec/Kconfig
b/drivers/platform/chrome/wilco_ec/Kconfig
index d8e2cddb4712..de097690fce3 100644
--- a/drivers/platform/chrome/wilco_ec/Kconfig
+++ b/drivers/platform/chrome/wilco_ec/Kconfig
@@ -1,7 +1,6 @@
config WILCO_EC
tristate "ChromeOS Wilco Embedded Controller"
- depends on ACPI && X86
- select CROS_EC_LPC_MEC
+ depends on ACPI && X86 && CROS_EC_LPC_MEC
help
If you say Y here, you get support for talking to the ChromeOS
Wilco EC over an eSPI bus. This uses a simple byte-level protocol
--
2.20.1


On Tue, Feb 12, 2019 at 5:13 PM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>
> On 2/12/19 3:49 PM, Nick Crews wrote:
> > OK, here is the patch to fix this problem. We had the dependency backwards.
> >
> > Should I re-send out the entire patch series to the LKML with this fix in it?
> >
> >
> > diff --git a/drivers/platform/chrome/Kconfig b/drivers/platform/chrome/Kconfig
> > index 462eb9dfa4f2..b69561050868 100644
> > --- a/drivers/platform/chrome/Kconfig
> > +++ b/drivers/platform/chrome/Kconfig
> > @@ -95,7 +95,7 @@ config CROS_EC_LPC
> >
> > config CROS_EC_LPC_MEC
> > bool "ChromeOS Embedded Controller LPC Microchip EC (MEC) variant"
> > - depends on CROS_EC_LPC || WILCO_EC
> > + depends on CROS_EC_LPC
> > default n
> > help
> > If you say Y here, a variant LPC protocol for the Microchip EC
> > diff --git a/drivers/platform/chrome/wilco_ec/Kconfig b/drivers/platform/chrome/wilco_ec/Kconfig
> > index d8e2cddb4712..6ea2d3f64ce5 100644
> > --- a/drivers/platform/chrome/wilco_ec/Kconfig
> > +++ b/drivers/platform/chrome/wilco_ec/Kconfig
> > @@ -1,6 +1,6 @@
> > config WILCO_EC
> > tristate "ChromeOS Wilco Embedded Controller"
> > - depends on ACPI && X86
> > + depends on ACPI && X86 && CROS_EC_LPC_MEC
> > select CROS_EC_LPC_MEC
> > help
> > If you say Y here, you get support for talking to the ChromeOS
> >
> >
>
> Nick,
>
> Did you test this?
>
> When I apply the patch (by hand, since it was whitespace-mangled/damaged),
> I get this:
>
> rdunlap@midway:linux-next-20190212> make ARCH=x86_64 O=X64 oldconfig
> make[1]: Entering directory '/home/rdunlap/lnx/next/linux-next-20190212/X64'
> GEN Makefile
> scripts/kconfig/conf --oldconfig Kconfig
> drivers/platform/chrome/Kconfig:84:error: recursive dependency detected!
> drivers/platform/chrome/Kconfig:84: symbol CROS_EC_LPC_MEC is selected by WILCO_EC
> drivers/platform/chrome/wilco_ec/Kconfig:1: symbol WILCO_EC depends on CROS_EC_LPC_MEC
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
>
>
>
>
> --
> ~Randy