wcn36xx: fix iris child-node lookup
authorJohan Hovold <johan@kernel.org>
Sat, 11 Nov 2017 17:05:32 +0000 (18:05 +0100)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 20 Nov 2017 16:20:41 +0000 (18:20 +0200)
Fix child-node lookup during probe, which ended up searching the whole
device tree depth-first starting at the parent rather than just matching
on its children.

To make things worse, the parent mmio node was also prematurely freed.

Fixes: fd52bdae9ab0 ("wcn36xx: Disable 5GHz for wcn3620")
Cc: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wcn36xx/main.c

index 71812a2dd513d3192a4ec2d2243da6726d0c5e5e..f7d228b5ba933f744474be119802f41e461c5715 100644 (file)
@@ -1233,7 +1233,7 @@ static int wcn36xx_platform_get_resources(struct wcn36xx *wcn,
        }
 
        /* External RF module */
-       iris_node = of_find_node_by_name(mmio_node, "iris");
+       iris_node = of_get_child_by_name(mmio_node, "iris");
        if (iris_node) {
                if (of_device_is_compatible(iris_node, "qcom,wcn3620"))
                        wcn->rf_id = RF_IRIS_WCN3620;