diff mbox series

arm64: defconfig: Disable firmware sysfs fallback

Message ID 20210930215300.60290-1-bjorn.andersson@linaro.org
State Accepted
Commit 5c1c3e2a7693c5e47a7d93898ade1acaac2afb38
Headers show
Series arm64: defconfig: Disable firmware sysfs fallback | expand

Commit Message

Bjorn Andersson Sept. 30, 2021, 9:53 p.m. UTC
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

Comments

Dmitry Baryshkov Oct. 1, 2021, 12:12 a.m. UTC | #1
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
Shawn Guo Oct. 5, 2021, 6:05 a.m. UTC | #2
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 mbox series

Patch

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