From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754954AbdC1KSD (ORCPT ); Tue, 28 Mar 2017 06:18:03 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:51051 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754333AbdC1KSC (ORCPT ); Tue, 28 Mar 2017 06:18:02 -0400 From: Arnd Bergmann To: Jason Cooper , Andrew Lunn , Sebastian Hesselbarth , Gregory Clement Cc: Arnd Bergmann , "David S. Miller" , Florian Fainelli , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] ARM: orion5x: only call into phylib when available Date: Tue, 28 Mar 2017 12:15:41 +0200 Message-Id: <20170328101606.53008-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:2aDfsAlKZfGHI5rbn5VBzbfy0u3QgYOF7KiMT59cjeO5n4fv83O hL7bVNEY9DOtRwdIWR5qtY2wAVCLn39FnngwMs9XEmo5JtJkVZy3RTbn42gHqss0UGuvS69 WHs9IBl7TbtKHyd4ITMkJxw3PEEozwHw2v72tGIacNSH+7EYoc21g/JB4AloHQ+BY5Vff9Q MES50NRgfosNki0Dr47ww== X-UI-Out-Filterresults: notjunk:1;V01:K0:VNsuAK90ZwY=:BHAQnkcHkjknt8dFLLzeCj md1a91qoqVexIA7sYRYGt6io22m+oXfQLbjX4XQSO0lJgripuMW8h1p6+BjkGlTGaLcR//GhU JLXy29Suyop8sPIlBDxv2stlUh2xVQR06SAnde2awrjpc0abd+BVTWb+3P1XVrbfuPRN5RatH c9raeaooYw61bf5qHmQq0vZvNsc4HEnoiJ3KZyWJihPR4+X7O43swG4b5QU1mRRXwbMEVLFV6 onz5iU1I/f/4DKWrJijt0Ix2q7JN0aunNd2c6mW5YkFhgTw/oPMb/5stB49YoqJk+iIVpbUsq 4gnB6xNpWWCp9tm3CCRoS+MFJTY5LZ7bLeSBy2Am+FJ7RJJNyFDPbz4k1KjSC+oaCfIJ+5d0a IHGkgogZNx9QrrnNcDhFY4GG6cBBU5cm+YeRUFnduaQ/SR6XsKRX34u2n15PgKtkJ9gZc3kMp xiXJyLZVVO6pEMNzYEb17GRxKMPii8EEOEjY9BBodrCErBMDMACqJKTT8cIhZZFb+vFczVD43 2X6Wr7Fo/wzf5Cc5rx8IQWrYx9aEAIDOXZxtcMLHcYP8ZTDrqfAVdupj7PSf0WuhL4abEfez2 uj9Huwgkk6801QP9oWDHBlpF4+LgtXx4GO/tp8SXCLkOtfIplmoM2XbXb8snyoWr0cCBpdF4N h2GbvsrHV4lsrqRqqmo6yjjuITg2HFQDjAyRC8HTvTRtkVdye4xkUu9z+kBnHK0R6iCs= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Board code cannot call mdiobus_register_board_info() when phylib or mdio_device is a loadable module: arch/arm/plat-orion/common.o: In function `orion_ge00_switch_init': :(.init.text+0x474): undefined reference to `mdiobus_register_board_info' I had a number of ideas for how this could be solved, but after the MDIO code got split out from PHYLIB it has gotten too hard, so I'm basically giving up, and only call the mdiobus_register_board_info() function if the MDIO layer is built-in to avoid the link error. This is similar to how we handle PHY registration on other ARM platforms. Fixes: 90eff9096c01 ("net: phy: Allow splitting MDIO bus/device support from PHYs") Fixes: 648ea0134069 ("net: phy: Allow pre-declaration of MDIO devices") Signed-off-by: Arnd Bergmann --- arch/arm/mach-orion5x/Kconfig | 1 + arch/arm/plat-orion/common.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig index 468b8cb7fd5f..e3429c8c2e38 100644 --- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig @@ -6,6 +6,7 @@ menuconfig ARCH_ORION5X select GPIOLIB select MVEBU_MBUS select PCI + select PHYLIB if NETDEVICES select PLAT_ORION_LEGACY help Support for the following Marvell Orion 5x series SoCs: diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c index 9255b6d67ba5..aff6994950ba 100644 --- a/arch/arm/plat-orion/common.c +++ b/arch/arm/plat-orion/common.c @@ -468,6 +468,7 @@ void __init orion_ge11_init(struct mv643xx_eth_platform_data *eth_data, eth_data, &orion_ge11); } +#ifdef CONFIG_ARCH_ORION5X /***************************************************************************** * Ethernet switch ****************************************************************************/ @@ -480,6 +481,9 @@ void __init orion_ge00_switch_init(struct dsa_chip_data *d) struct mdio_board_info *bd; unsigned int i; + if (!IS_BUILTIN(CONFIG_PHYLIB)) + return; + for (i = 0; i < ARRAY_SIZE(d->port_names); i++) if (!strcmp(d->port_names[i], "cpu")) break; @@ -493,6 +497,7 @@ void __init orion_ge00_switch_init(struct dsa_chip_data *d) mdiobus_register_board_info(&orion_ge00_switch_board_info, 1); } +#endif /***************************************************************************** * I2C -- 2.9.0