3fce12568a
Jonas Gorski commented on the previous patch:
|This is actually the wrong fix and papers over an issue in one of our
|local patches.
|
|We intentionally allow regmap to be built as a module, see
|
|/target/linux/generic/hack-4.14/259-regmap_dynamic.patch
|[...]
|[The regulator code] optionally supports regmap thanks to the stubs
|provided if regmap is disabled - which breaks if you compile regmap
|as a module.
In order to mitigate this issue, this patch reverts the previous patch
and replaces the existing IS_ENABLED(CONFIG_REGMAP) with
IS_REACHABLE(CONFIG_REGMAP). This solves this particular issue as the
regulator code will now automatically fallback to the regmap stubs in
case the kmod-regmap module is enabled, but nothing else sets
CONFIG_REGMAP=y.
Note: There's still a potential issue that this patch doesn't solve:
If someone ever wants to make a OpenWrt kernel package for a
regulator module that requires the REGMAP feature for a target that
doesn't set CONFIG_REGMAP=y but has CONFIG_REGULATOR=y, the resulting
kmod-regulator-xyz package will not work on the target.
Luckily, there aren't any in-tree OpenWrt kernel module packages for
regulators at the moment. On the bright side: regmap is a critical
part nowadays and all new and upcoming architectures require it by
default. This will likely only ever be a problem for legacy targets
and devices that cannot afford to enable REGMAP.
Cc: Jonas Gorski <jonas.gorski@gmail.com>
Cc: John Crispin <john@phrozen.org>
Fixes:
|
||
---|---|---|
.. | ||
adm5120 | ||
adm8668 | ||
apm821xx | ||
ar7 | ||
ar71xx | ||
arc770 | ||
archs38 | ||
armvirt | ||
at91 | ||
ath25 | ||
ath79 | ||
au1000 | ||
bcm53xx | ||
brcm47xx | ||
brcm63xx | ||
brcm2708 | ||
cns3xxx | ||
gemini | ||
generic | ||
imx6 | ||
ipq40xx | ||
ipq806x | ||
ixp4xx | ||
kirkwood | ||
lantiq | ||
layerscape | ||
malta | ||
mcs814x | ||
mediatek | ||
mpc85xx | ||
mvebu | ||
mxs | ||
octeon | ||
octeontx | ||
omap | ||
omap24xx | ||
orion | ||
oxnas | ||
pistachio | ||
ppc40x | ||
ppc44x | ||
ramips | ||
rb532 | ||
samsung | ||
sunxi | ||
uml | ||
x86 | ||
xburst | ||
zynq | ||
Makefile |