From patchwork Mon Aug 7 15:42:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 109569 Delivered-To: patch@linaro.org Received: by 10.182.109.195 with SMTP id hu3csp2906212obb; Mon, 7 Aug 2017 08:44:36 -0700 (PDT) X-Received: by 10.84.238.1 with SMTP id u1mr1089387plk.187.1502120676451; Mon, 07 Aug 2017 08:44:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502120676; cv=none; d=google.com; s=arc-20160816; b=M+DnO1jKZ/BNjugUo0jWJewu18uSa6B84XGDSnEaP/P9FjB6FDqXP55BsgbTPdWucY lW04FDDNtwDeFaX3HLRpLpfyD9DI9LHam3VrZFeIRN0uKuQDmsf3E+oxlt10uisdj9jF G4wIb9f1pI2RpFwjCsbemDZvHNdlSpy1WoWLJIC8wEEQczscENhKy1x5+KP1AqVBSfrr FiPorcGAqxCMvBXl5zKwVevC+1j4MTv7nRf0+1nOdG4g+jaZ/ZMwyTShjqlr4Wo1Tzab sZyvyPYspwuqZ5YBWt/FgxQnWtTS3DcTtPjsBhpu6hwiEUZP0hAhl1Z7/Ssu1ZN4LNyu yVIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=rL5/PNY2+2VZjwqJ3LbgrR6nEIpCpey30IvtU6XHhiw=; b=Iivju/eOWg4uKoolK+r4asTpVGeyl4Wl+X9e5QJeub1UqidQDr3kFCtjTaeavJeSws Ld4skjc2Tlh4/h/deW1S7D+oCCqSSnj5NpgK43dKEOGLrqP9TjX3QyPudX1wnaef88p4 NIdsI5jb2LVHJHbwKzgEM9keR/LFMAywKWzbj8Efj+txhM5aITZidKHCdlgAbKplRghi Z55xFQ+PlMwomkavmxeL/1Le/65Y5WsiOlyzD9KrvRyxhGbAxej/v/T377s0QG79K7h1 EqMLyjwYbpBYcvvyy4897Z/9UVD1vGO1Om2Rik7VNcPv3BZyKPGQogl/IgPLLxHPQfNq SNeQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s59si3435212plb.436.2017.08.07.08.44.36; Mon, 07 Aug 2017 08:44:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752107AbdHGPod (ORCPT + 25 others); Mon, 7 Aug 2017 11:44:33 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:60173 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751457AbdHGPoa (ORCPT ); Mon, 7 Aug 2017 11:44:30 -0400 Received: from wuerfel.lan ([78.43.238.10]) by mrelayeu.kundenserver.de (mreue103 [212.227.15.145]) with ESMTPA (Nemesis) id 0MRRcG-1e32M111E8-00SdTe; Mon, 07 Aug 2017 17:44:13 +0200 From: Arnd Bergmann To: Mark Brown Cc: Andy Shevchenko , Mika Westeberg , Daniel Mack , Haojian Zhuang , Robert Jarzmik , alsa-devel@alsa-project.org, Kuninori Morimoto , Arnd Bergmann , Geert Uytterhoeven , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] SPI: fix building SPI_PXA on MMP Date: Mon, 7 Aug 2017 17:42:55 +0200 Message-Id: <20170807154409.205269-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:kj5ZZQntFKyQicV9xJeTV0WB2iK/dCQKlPRge+H3URewKrVJzg5 xv7UB8NhYFLFTQlUMdzU5DPXwRqqLbFlyeU4uZpxPwLghHMzPrRQaGOFPHfDvjX53FGwZ4r pERrnO91Yv6L/tRavXiixTUnAUYpH88DaLsGaRS5Qmt4KXOpAxyexdRQyF5FVRBJCnyKpXu b+TBbq7AfF9WJKADbHTRA== X-UI-Out-Filterresults: notjunk:1; V01:K0:WDPvEBNNpNE=:sa1U4kXM+Co7GEhUIXwoLt FL53kguPy4VfoS6wrah7d4HbEXV7m+9RT0ZtNv6OWAPTfqiInUwLgdikz3GlyIqfZbrzdW8g6 LjywAwdHHj6S9Uxn6OJTJ5iv5n0ySSqj1/AvCQy2SxSb9K6PHv0FddJNdGOT8Xwg4UTLT+6Tk I5GbWWVx3o6HcZK8FPM2Bi7Xqp0TYSptSivsHJSbDefEazI3wK+6+yvM9uOLrsf7G1lc+UPUe CFmOOYfflexZsDfzpXk0Z9u+dasl5VgdGzl7BhNlY73BMx87wpU9Nnza1Un/BaaVEN82C6/z2 3C396jMYlgALolVJoOTkLds70+cfN24fxRrOrj89qUhFUgVRW38hCgmCG+n0rENlEj7dx7iB4 hrZB8v9EJ9z3twyPB/Zu4R7R1qsQIGJ2ca+vnAELQL3C6ZYJjpvz2FxsoXoBCP4dtHtM4qiR9 4SxDDf5nW6Cp5mz1OrT5sAkeMy48WcF9sKJWlVtgupgjNAcuewiQXhtBpxwoofAr74wDQtYHH bLt6L5loVYA2/6E+w2Pb9N5i+aDGihXpeZdJve2xvveZONEeBMBfYBbHkn9BXLn1pUCzYy6TP 9agdTt9/EH6cQ8/cJdo4eFpOrn+QvEDuZjs3KTsJnCEJpTCgJyoAuqH3T8yA9LpFje0YAjZzx Z0eqlOSj6AgxRqa0GZowlUesnQl6qN4/S6iA7OsgsQ3zaxYgeDmrS+9HcXKFWVAXvBNTgova6 9NOpi86SDfhrHAoGTjORtMiytUY5lIJ++HdCMg== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When the audio driver selects CONFIG_PXA_SSP on ARCH_MMP as a loadable module, and the PXA SPI driver is built-in, we get a link error in the SPI driver: drivers/spi/spi-pxa2xx.o: In function `pxa2xx_spi_remove': spi-pxa2xx.c:(.text+0x5f0): undefined reference to `pxa_ssp_free' drivers/spi/spi-pxa2xx.o: In function `pxa2xx_spi_probe': spi-pxa2xx.c:(.text+0xeac): undefined reference to `pxa_ssp_request' spi-pxa2xx.c:(.text+0x1468): undefined reference to `pxa_ssp_free' spi-pxa2xx.c:(.text+0x15bc): undefined reference to `pxa_ssp_free' The problem is that the PXA SPI driver only uses 'select SSP' specifically when building it for PXA, but we can also build it for PCI, which is meant for Intel x86 SoCs that use the same SPI block. When the sound driver forces the SSP to be a loadable module, the IS_ENABLED() check in include/linux/pxa2xx_ssp.h triggers but the spi driver can't reference the exported symbols. I had a different approach before, making the PCI case depend on X86, which fixed the problem by avoiding the MMP case. This goes a different route, making the driver select PXA_SSP also on MMP, which has an SSP that none of the boards in mainline Linux use for SPI. There is no harm in always enabling the build on MMP (PCI or not PCI), so I do that too, to document that this hardware is actually available on MMP. Link: https://patchwork.kernel.org/patch/8879921/ Signed-off-by: Arnd Bergmann --- drivers/spi/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.9.0 diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 9b31351fe429..f9f9b0940746 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -518,8 +518,8 @@ config SPI_PPC4xx config SPI_PXA2XX tristate "PXA2xx SSP SPI master" - depends on (ARCH_PXA || PCI || ACPI) - select PXA_SSP if ARCH_PXA + depends on (ARCH_PXA || ARCH_MMP || PCI || ACPI) + select PXA_SSP if ARCH_PXA || ARCH_MMP help This enables using a PXA2xx or Sodaville SSP port as a SPI master controller. The driver can be configured to use any SSP port and