wifi: ath: Use of_reserved_mem_region_to_resource() for "memory-region"
PATCH v3 1/1 wifi: ath: Use of_reserved_mem_region_to_resource() for "memory-region"
Use the newly added of_reserved_mem_region_to_resource() function to handle "memory-region" properties.
The error handling is a bit different for ath10k. "memory-region" is optional, so failed lookup is not an error. But then an error in of_address_to_resource() is treated as an error. However, that distinction is not really important. Either the region is available and usable or it is not. So now, it is just of_reserved_mem_region_to_resource() which is checked for an error.
---
v3:
- Rebase on v6.17-rc1
v2:
- Split to separate patch
--- drivers/net/wireless/ath/ath10k/snoc.c | 14 +++----------- drivers/net/wireless/ath/ath11k/ahb.c | 17 +++-------------- drivers/net/wireless/ath/ath11k/qmi.c | 17 ++++------------- 3 files changed, 10 insertions(+), 38 deletions(-)
drivers/net/wireless/ath/ath10k/snoc.c +3 -11
@@ -13,7 +13,7 @@#include <linux/property.h> #include <linux/regulator/consumer.h> #include <linux/remoteproc/qcom_rproc.h> -#include <linux/of_address.h> +#include <linux/of_reserved_mem.h> #include <linux/iommu.h> #include "ce.h"
@@ -1559,19 +1559,11 @@ static void ath10k_modem_deinit(struct ath10k *ar)static int ath10k_setup_msa_resources (struct ath10k *ar,u32 msa_size) {struct device *dev = ar->dev; -struct device_node *node;struct resource r;int ret; - node =of_parse_phandle (dev->of_node,"memory-region" ,0 ); -if (node) { - ret =of_address_to_resource (node,0 , &r); -of_node_put (node); -if (ret) { -dev_err (dev,"failed to resolve msa fixed region\n" ); -return ret; - } - + ret =of_reserved_mem_region_to_resource (dev->of_node,0 , &r); +if (!ret) { ar->msa.paddr = r.start; ar->msa.mem_size =resource_size (&r); ar->msa.vaddr = devm_memremap(dev, ar->msa.paddr,
drivers/net/wireless/ath/ath11k/ahb.c +3 -14
@@ -9,8 +9,8 @@#include <linux/property.h> #include <linux/of_device.h> #include <linux/of.h> +#include <linux/of_reserved_mem.h> #include <linux/dma-mapping.h> -#include <linux/of_address.h> #include <linux/iommu.h> #include "ahb.h" #include "debug.h"
@@ -919,16 +919,10 @@ static int ath11k_ahb_setup_msa_resources(struct ath11k_base *ab) {struct ath11k_ahb *ab_ahb =ath11k_ahb_priv (ab);struct device *dev = ab->dev; -struct device_node *node;struct resource r;int ret; - node =of_parse_phandle (dev->of_node,"memory-region" ,0 ); -if (!node) -return -ENOENT ; - - ret =of_address_to_resource (node,0 , &r); -of_node_put (node); + ret =of_reserved_mem_region_to_resource (dev->of_node,0 , &r);if (ret) {dev_err (dev,"failed to resolve msa fixed region\n" );return ret;
@@ -937,12 +931,7 @@ static int ath11k_ahb_setup_msa_resources(struct ath11k_base *ab) ab_ahb->fw.msa_paddr = r.start; ab_ahb->fw.msa_size =resource_size (&r); - node =of_parse_phandle (dev->of_node,"memory-region" ,1 ); -if (!node) -return -ENOENT ; - - ret =of_address_to_resource (node,0 , &r); -of_node_put (node); + ret =of_reserved_mem_region_to_resource (dev->of_node,1 , &r);if (ret) {dev_err (dev,"failed to resolve ce fixed region\n" );return ret;
drivers/net/wireless/ath/ath11k/qmi.c +4 -13
@@ -13,7 +13,7 @@#include "debug.h" #include "hif.h" #include <linux/of.h> -#include <linux/of_address.h> +#include <linux/of_reserved_mem.h> #include <linux/ioport.h> #include <linux/firmware.h> #include <linux/of_irq.h>
@@ -2040,23 +2040,14 @@ static int ath11k_qmi_alloc_target_mem_chunk(struct ath11k_base *ab)static int ath11k_qmi_assign_target_mem_chunk (struct ath11k_base *ab) {struct device *dev = ab->dev; -struct device_node *hremote_node =NULL ; -struct resource res; +struct resource res = {};u32 host_ddr_sz;int i, idx, ret;for (i =0 , idx =0 ; i < ab->qmi.mem_seg_count; i++) {switch (ab->qmi.target_mem[i].type) {case HOST_DDR_REGION_TYPE : - hremote_node =of_parse_phandle (dev->of_node,"memory-region" ,0 ); -if (!hremote_node) { -ath11k_dbg (ab,ATH11K_DBG_QMI , -"fail to get hremote_node\n" ); -return -ENODEV ; - } - - ret =of_address_to_resource (hremote_node,0 , &res); -of_node_put (hremote_node); + ret =of_reserved_mem_region_to_resource (dev->of_node,0 , &res);if (ret) {ath11k_dbg (ab,ATH11K_DBG_QMI ,"fail to get reg from hremote\n" );
@@ -2095,7 +2086,7 @@ static int ath11k_qmi_assign_target_mem_chunk(struct ath11k_base *ab) }if (ath11k_core_coldboot_cal_support (ab)) { -if (hremote_node) { +if (resource_size (&res)) { ab->qmi.target_mem[idx].paddr = res.start + host_ddr_sz; ab->qmi.target_mem[idx].iaddr =
Signature · 1 line
2.47.2
Quoted 11 lines · Rob Herring (Arm)
Use the newly added
of_reserved_mem_region_to_resource()function to handle "memory-region" properties.The error handling is a bit different for ath10k. "memory-region" is optional, so failed lookup is not an error. But then an error in
of_address_to_resource()is treated as an error. However, that distinction is not really important. Either the region is available and usable or it is not. So now, it is justof_reserved_mem_region_to_resource()which is checked for an error.Signed-off-by Rob Herring (Arm) <[email protected]>
Jeff Johnson
AppliedQuoted 11 lines · Rob Herring (Arm)
Use the newly added
of_reserved_mem_region_to_resource()function to handle "memory-region" properties.The error handling is a bit different for ath10k. "memory-region" is optional, so failed lookup is not an error. But then an error in
of_address_to_resource()is treated as an error. However, that distinction is not really important. Either the region is available and usable or it is not. So now, it is justof_reserved_mem_region_to_resource()which is checked for an error.[...]
Applied, thanks!
[1/1] wifi: ath: Use of_reserved_mem_region_to_resource() for "memory-region"
commit: 900730dc4705dc78f9bf69c4c513ec018bffee37
Best regards,
Signature · 1 line
Jeff Johnson <[email protected]>