forked from mirror/openwrt
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 | ||