Message ID | 20210930215300.60290-1-bjorn.andersson@linaro.org |
---|---|
State | Accepted |
Commit | 5c1c3e2a7693c5e47a7d93898ade1acaac2afb38 |
Headers | show |
Series | arm64: defconfig: Disable firmware sysfs fallback | expand |
On Fri, 1 Oct 2021 at 00:51, Bjorn Andersson <bjorn.andersson@linaro.org> wrote: > > Part of the enablement of SDMA on the IMX platforms, '7f4e4afa140c > ("arm64: defconfig: Enable SDMA on i.mx8mq/8mm")' also enabled > CONFIG_FW_LOADER_USER_HELPER_FALLBACK, to allow "firmware loaded by > udev". > > Unfortunately having the fallback enabled does, due to the 60 second > timeout, essentially requiring userspace to provide a firmware loader. > But systemd dropped the support for this interface back in 2014 and > because arm64 is the only architecture that has this enabled, there > doesn't seem to be any standard solution available. I tend to use the following 'standard' solution: cat /lib/udev/rules.d/50-firmware.rules # stub for immediately telling the kernel that userspace firmware loading # failed; necessary to avoid long timeouts with CONFIG_FW_LOADER_USER_HELPER=y SUBSYSTEM=="firmware", ACTION=="add", ATTR{loading}="-1" > Examples of this problem can be found in e.g. the ath10k driver, which > with a standard distro can take about 10 minutes before wlan0 appears. > > The alternative to this patch would be to change these drivers to use > firmware_request_direct(), to avoid the sysfs fallback. But that would > prevent other systems, such as Android, to rely on a userspace firmware > loader to pick the firmware from a non-standard place, with just a > custom defconfig. > > This patch therefor attempts to align the arm64 defconfig will all other > architectures in the upstream kernel. > > Cc: Robin Gong <yibin.gong@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org> > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > arch/arm64/configs/defconfig | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig > index da988a54bfb9..f9e0b3fdaf0b 100644 > --- a/arch/arm64/configs/defconfig > +++ b/arch/arm64/configs/defconfig > @@ -243,7 +243,6 @@ CONFIG_PCI_EPF_TEST=m > CONFIG_DEVTMPFS=y > CONFIG_DEVTMPFS_MOUNT=y > CONFIG_FW_LOADER_USER_HELPER=y > -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y > CONFIG_HISILICON_LPC=y > CONFIG_SIMPLE_PM_BUS=y > CONFIG_FSL_MC_BUS=y > -- > 2.29.2 > -- With best wishes Dmitry
On Thu, Sep 30, 2021 at 02:53:00PM -0700, Bjorn Andersson wrote: > Part of the enablement of SDMA on the IMX platforms, '7f4e4afa140c > ("arm64: defconfig: Enable SDMA on i.mx8mq/8mm")' also enabled > CONFIG_FW_LOADER_USER_HELPER_FALLBACK, to allow "firmware loaded by > udev". > > Unfortunately having the fallback enabled does, due to the 60 second > timeout, essentially requiring userspace to provide a firmware loader. > But systemd dropped the support for this interface back in 2014 and > because arm64 is the only architecture that has this enabled, there > doesn't seem to be any standard solution available. > > Examples of this problem can be found in e.g. the ath10k driver, which > with a standard distro can take about 10 minutes before wlan0 appears. > > The alternative to this patch would be to change these drivers to use > firmware_request_direct(), to avoid the sysfs fallback. But that would > prevent other systems, such as Android, to rely on a userspace firmware > loader to pick the firmware from a non-standard place, with just a > custom defconfig. > > This patch therefor attempts to align the arm64 defconfig will all other > architectures in the upstream kernel. > > Cc: Robin Gong <yibin.gong@nxp.com> > Cc: Shawn Guo <shawnguo@kernel.org> Acked-by: Shawn Guo <shawnguo@kernel.org> > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> > --- > arch/arm64/configs/defconfig | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig > index da988a54bfb9..f9e0b3fdaf0b 100644 > --- a/arch/arm64/configs/defconfig > +++ b/arch/arm64/configs/defconfig > @@ -243,7 +243,6 @@ CONFIG_PCI_EPF_TEST=m > CONFIG_DEVTMPFS=y > CONFIG_DEVTMPFS_MOUNT=y > CONFIG_FW_LOADER_USER_HELPER=y > -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y > CONFIG_HISILICON_LPC=y > CONFIG_SIMPLE_PM_BUS=y > CONFIG_FSL_MC_BUS=y > -- > 2.29.2 >
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index da988a54bfb9..f9e0b3fdaf0b 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -243,7 +243,6 @@ CONFIG_PCI_EPF_TEST=m CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_FW_LOADER_USER_HELPER=y -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y CONFIG_HISILICON_LPC=y CONFIG_SIMPLE_PM_BUS=y CONFIG_FSL_MC_BUS=y
Part of the enablement of SDMA on the IMX platforms, '7f4e4afa140c ("arm64: defconfig: Enable SDMA on i.mx8mq/8mm")' also enabled CONFIG_FW_LOADER_USER_HELPER_FALLBACK, to allow "firmware loaded by udev". Unfortunately having the fallback enabled does, due to the 60 second timeout, essentially requiring userspace to provide a firmware loader. But systemd dropped the support for this interface back in 2014 and because arm64 is the only architecture that has this enabled, there doesn't seem to be any standard solution available. Examples of this problem can be found in e.g. the ath10k driver, which with a standard distro can take about 10 minutes before wlan0 appears. The alternative to this patch would be to change these drivers to use firmware_request_direct(), to avoid the sysfs fallback. But that would prevent other systems, such as Android, to rely on a userspace firmware loader to pick the firmware from a non-standard place, with just a custom defconfig. This patch therefor attempts to align the arm64 defconfig will all other architectures in the upstream kernel. Cc: Robin Gong <yibin.gong@nxp.com> Cc: Shawn Guo <shawnguo@kernel.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> --- arch/arm64/configs/defconfig | 1 - 1 file changed, 1 deletion(-) -- 2.29.2