Re: [PATCH] wifi: wfx: handle EPROBE_DEFER with of_get_mac_address
From: Rosen Penev
Date: Mon Apr 27 2026 - 15:31:49 EST
On Mon, Apr 27, 2026 at 12:49 AM Jérôme Pouiller
<jerome.pouiller@xxxxxxxxxx> wrote:
>
> Hello Rosen,
>
> On Monday 27 April 2026 07:16:04 Central European Summer Time Rosen Penev wrote:
> >
> > In case nvmem gets used and is not ready in time for probe of wfx,
> > EPROBE_DEFER gets called. Return it so that a proper MAC address can be
> > specified in such a case.
> >
> > Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
> > ---
> > drivers/net/wireless/silabs/wfx/main.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/net/wireless/silabs/wfx/main.c b/drivers/net/wireless/silabs/wfx/main.c
> > index dda36e41eed1..dc40a9bd986d 100644
> > --- a/drivers/net/wireless/silabs/wfx/main.c
> > +++ b/drivers/net/wireless/silabs/wfx/main.c
> > @@ -445,6 +445,8 @@ int wfx_probe(struct wfx_dev *wdev)
> > for (i = 0; i < ARRAY_SIZE(wdev->addresses); i++) {
> > eth_zero_addr(wdev->addresses[i].addr);
> > err = of_get_mac_address(wdev->dev->of_node, wdev->addresses[i].addr);
> > + if (err == -EPROBE_DEFER)
> > + goto irq_unsubscribe;
> > if (!err)
> > wdev->addresses[i].addr[ETH_ALEN - 1] += i;
> > else
>
> I assume this patch works when WF200 is connected on SPI with reset GPIO
> configured. However, for SDIO and without gpio reset, we can't run the
> device initialisation twice.
>
> I believe the check has to happen before the call to wfx_init_device().
>
> To check it works as expected, can you also test your patch without the
> reset-gpio attribute?
I do not have this hardware.
>
>
> --
> Jérôme Pouiller
>
>