On Fri, Jan 6, 2023 at 1:19 PM Ivan T. Ivanov <iivanov@xxxxxxx> wrote: > > The introduction of support for Apple board types inadvertently changed > the precedence order, causing hybrid SMBIOS+DT platforms to look up the > firmware using the DMI information instead of the device tree compatible > to generate the board type. Revert back to the old behavior, > as affected platforms use firmwares named after the DT compatible. > > Fixes: 7682de8b3351 ("wifi: brcmfmac: of: Fetch Apple properties") > > [1] https://bugzilla.opensuse.org/show_bug.cgi?id=1206697#c13 > > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Ivan T. Ivanov <iivanov@xxxxxxx> > Reviewed-by: Hector Martin <marcan@xxxxxxxxx> Tested-by: Peter Robinson <pbrobinson@xxxxxxxxx> Tested on a RPi3B+, a RPi4B and a Rockchips device with 6.2rc2 and it fixed the issue I had seen on Fedora. Thanks > --- > Changes since v1 > Rewrite commit message according feedback. > https://lore.kernel.org/all/20230106072746.29516-1-iivanov@xxxxxxx/ > > drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c > index a83699de01ec..fdd0c9abc1a1 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c > @@ -79,7 +79,8 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, > /* Apple ARM64 platforms have their own idea of board type, passed in > * via the device tree. They also have an antenna SKU parameter > */ > - if (!of_property_read_string(np, "brcm,board-type", &prop)) > + err = of_property_read_string(np, "brcm,board-type", &prop); > + if (!err) > settings->board_type = prop; > > if (!of_property_read_string(np, "apple,antenna-sku", &prop)) > @@ -87,7 +88,7 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, > > /* Set board-type to the first string of the machine compatible prop */ > root = of_find_node_by_path("/"); > - if (root && !settings->board_type) { > + if (root && err) { > char *board_type; > const char *tmp; > > -- > 2.35.3 >