Re: [PATCH v2] brcmfmac: Prefer DT board type over DMI board type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux