On 9/4/2024 3:27 PM, Caleb Connolly wrote: > On SC7280 platforms which are running with TrustZone, it is not > necessary to manually map the memory regions used by the wifi hardware. > However, ath11k will currently fail to load unless both memory regions > are specified. > > This breaks wifi on the rb3gen2 which only specifies the firmware memory > region and does not use the CE region. > > Adjust the order of operations in ath11k_ahb_fw_resources_init() to > check for the wifi-firmware subnode before attempting to parse the > memory regions. > > Signed-off-by: Caleb Connolly <caleb.connolly@xxxxxxxxxx> > --- > Cc: linux-arm-msm@xxxxxxxxxxxxxxx > --- > drivers/net/wireless/ath/ath11k/ahb.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c > index 634d385fd9ad..e24f8da565db 100644 > --- a/drivers/net/wireless/ath/ath11k/ahb.c > +++ b/drivers/net/wireless/ath/ath11k/ahb.c > @@ -999,20 +999,20 @@ static int ath11k_ahb_fw_resources_init(struct ath11k_base *ab) > */ > if (!ab->hw_params.fixed_fw_mem) > return 0; > > - ret = ath11k_ahb_setup_msa_resources(ab); > - if (ret) { > - ath11k_err(ab, "failed to setup msa resources\n"); > - return ret; > - } > - > node = of_get_child_by_name(host_dev->of_node, "wifi-firmware"); > if (!node) { > ab_ahb->fw.use_tz = true; > return 0; > } > > + ret = ath11k_ahb_setup_msa_resources(ab); > + if (ret) { > + ath11k_err(ab, "failed to setup msa resources\n"); > + return ret; > + } > + > info.fwnode = &node->fwnode; > info.parent = host_dev; > info.name = node->name; > info.dma_mask = DMA_BIT_MASK(32); ath11k_ahb_setup_msa_resources(ab), will only read the device-tree and save the memory addresses/size form device-tree to ab_ahb->fw. These saved address, only used if "wifi-firmware" node is defined. This the node "wifi-firmware" is not defined it is considered to be running with TrustZone, and saved addresses are not of use. This changes looks fine.