From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752419AbdFONHr (ORCPT ); Thu, 15 Jun 2017 09:07:47 -0400 Received: from mx1.redhat.com ([209.132.183.28]:8801 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752316AbdFONHn (ORCPT ); Thu, 15 Jun 2017 09:07:43 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 60192145F9A Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=hdegoede@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 60192145F9A Subject: Re: [PATCH] mfd: intel_soc_pmic: use 'depends on' instead of 'select' To: Lee Jones , Arnd Bergmann Cc: Rob Herring , Andy Shevchenko , linux-kernel@vger.kernel.org References: <20170609104510.3420617-1-arnd@arndb.de> <20170615080905.3p325p4dxenll5l6@dell> From: Hans de Goede Message-ID: Date: Thu, 15 Jun 2017 15:07:40 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <20170615080905.3p325p4dxenll5l6@dell> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Thu, 15 Jun 2017 13:07:43 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 15-06-17 10:09, Lee Jones wrote: > On Fri, 09 Jun 2017, Arnd Bergmann wrote: > >> I ran into a build error on ARM with a platform that has a non-standard >> clk implementation: >> >> drivers/clk/clk.o: In function `clk_disable': >> clk.c:(.text.clk_disable+0x0): multiple definition of `clk_disable' >> arch/arm/mach-omap1/clock.o:clock.c:(.text.clk_disable+0x0): first defined here >> drivers/clk/clk.o: In function `clk_enable': >> clk.c:(.text.clk_enable+0x0): multiple definition of `clk_enable' >> arch/arm/mach-omap1/clock.o:clock.c:(.text.clk_enable+0x0): first defined here >> >> The problem is a device driver that uses 'select COMMON_CLK', which is >> generally a bad idea: selecting a subsystem should only be done from >> a platform, otherwise we run into circular dependencies. The same driver >> also selects 'GPIOLIB' and 'I2C', which has a similar effect. >> >> This turns all three into 'depends on', as it should be. The same pattern >> exists for INTEL_SOC_PMIC and INTEL_SOC_PMIC_CHTWC, so we fix both the >> same way to keep them in sync. INTEL_SOC_PMIC does not depend on ACPI, >> so we don't need to 'select' the I2C master driver when ACPI is disabled. >> >> Finally, we can limit the build to x86, unless we are compile testing. >> >> Fixes: 2f91ded5f8f4 ("mfd: Add Cherry Trail Whiskey Cove PMIC driver") >> Fixes: 5f125f1f5705 ("mfd: intel_soc_pmic: Select designware i2c-bus driver") >> Signed-off-by: Arnd Bergmann >> --- >> drivers/mfd/Kconfig | 15 ++++++--------- >> 1 file changed, 6 insertions(+), 9 deletions(-) > > I need 2 patches, one for each of the Fixes above. The plan being to > squash them into the original commits (keeping sign-off credits of > course) to prevent bisectability breakage. > > If that does not happen, I will have to remove both offending patches > until they are fixed. Ok, I've just send out a split version if this patch. Regards, Hans >> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig >> index ea5daa935518..74fa52582f06 100644 >> --- a/drivers/mfd/Kconfig >> +++ b/drivers/mfd/Kconfig >> @@ -454,14 +454,12 @@ config LPC_SCH >> >> config INTEL_SOC_PMIC >> bool "Support for Crystal Cove PMIC" >> - depends on HAS_IOMEM >> - select GPIOLIB >> - select I2C >> + depends on HAS_IOMEM && I2C=y && GPIOLIB && COMMON_CLK >> + depends on X86 || COMPILE_TEST >> select MFD_CORE >> select REGMAP_I2C >> select REGMAP_IRQ >> - select COMMON_CLK >> - select I2C_DESIGNWARE_PLATFORM >> + select I2C_DESIGNWARE_PLATFORM if ACPI >> help >> Select this option to enable support for Crystal Cove PMIC >> on some Intel SoC systems. The PMIC provides ADC, GPIO, >> @@ -484,13 +482,12 @@ config INTEL_SOC_PMIC_BXTWC >> on these systems. >> >> config INTEL_SOC_PMIC_CHTWC >> - bool "Support for Intel Cherry Trail Whiskey Cove PMIC" >> - depends on ACPI && HAS_IOMEM >> + tristate "Support for Intel Cherry Trail Whiskey Cove PMIC" >> + depends on ACPI && HAS_IOMEM && I2C=y && COMMON_CLK >> + depends on X86 || COMPILE_TEST >> select MFD_CORE >> - select I2C >> select REGMAP_I2C >> select REGMAP_IRQ >> - select COMMON_CLK >> select I2C_DESIGNWARE_PLATFORM >> help >> Select this option to enable support for the Intel Cherry Trail >