Hi,
The brcmfmac driver needs a firmware to work.
With a Samsung Galaxy SIII (GT-I9300) that runs GNU/Linux (and an out of
tree u-boot), when the brcmfmac is builtin the kernel (=y), when
brcmfmac is probed, the root filesystem (that is on a partition of the
internal eMMC) isn't mounted yet.
So the brcmfmac driver fails to find its firmware, even if a firmware
is present at the right location in the root filesystem.
I've tried to set brcmfmac_module_init to late_initcall and
late_initcall_sync but that didn't change much.
I also looked a bit in init/main.c and init/do_mount.c and I didn't find
any generic way that would already be used in drivers/ to wait for the
rootfs to be mounted.
I've attached the dmesg, .config (as config) and defconfig used to
reproduce the bug if needed.
For testing I used the following commit linux/master[1]:
> commit 4b93c544e90e2b28326182d31ee008eb80e02074 (thunderbolt: test:
> split up test cases in tb_test_credit_alloc_all)
What would be the proper way of fixing that?
References:
-----------
[1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Denis.