Thread (6 messages) 6 messages, 6 authors, 2023-01-16

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

From: Arend Van Spriel <hidden>
Date: 2023-01-06 16:21:34
Also in: linux-devicetree, linux-wireless, netdev, stable

On 1/6/2023 2:19 PM, Ivan T. Ivanov 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@vger.kernel.org
Signed-off-by: Ivan T. Ivanov <redacted>
Looks good to me. I do have a question about the devicetree node for 
brcmfmac. The driver does a compatible check against 
"brcm,bcm4329-fmac". I actually expect all devicetree specifications to 
use this. That said I noticed the check for it in brcmf_of_probe() 
should be moved so it is the first check done.

Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
quoted hunk ↗ jump to hunk
Reviewed-by: Hector Martin <redacted>
---
Changes since v1
Rewrite commit message according feedback.
https://lore.kernel.org/all/20230106072746.29516-1-iivanov@suse.de/ (local)

  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;
  
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help