of_mdio: select fixed phy support unconditionally
authorArnd Bergmann <arnd@arndb.de>
Fri, 24 Jun 2016 09:24:08 +0000 (11:24 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 28 Jun 2016 09:47:52 +0000 (05:47 -0400)
commita5e4bd991362223346e1d3561e61d7a25797fe25
treee427d46b7060163c55e6627bfc0e982df454651b
parent56e2f23b7225d2e7b42826aee065cbf96834114d
of_mdio: select fixed phy support unconditionally

Calling the fixed-phy functions when CONFIG_FIXED_PHY=m as a previous
change tried cannot work if the caller is in built-in code:

drivers/of/built-in.o: In function `of_phy_register_fixed_link':
of_reserved_mem.c:(.text+0x85e0): undefined reference to `fixed_phy_register'

Making of_mdio depend on 'FIXED_PHY || !FIXED_PHY' would solve this
dependency by enforcing that OF_MDIO itself becomes a loadable module
when FIXED_PHY=y, but that creates a different dependency as it
breaks any built-in ethernet driver that uses of_mdio.

Making FIXED_PHY a bool option also cannot work, since it depends on
PHYLIB, which again is tristate.

This version now uses 'select FIXED_PHY' to ensure that the fixed-phy
portion of of_mdio is not optional. The main downside of this is
a small increase in code size for cases that do not need fixed phy
support, but it should avoid all of the link-time problems.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: d1bd330a229f ("of_mdio: Enable fixed PHY support if driver is a module")
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/of/Kconfig
drivers/of/of_mdio.c
include/linux/of_mdio.h