[PATCH v4 2/2] ath11k: Use reserved host DDR addresses from DT for PCI devices

Anilkumar Kolli akolli at codeaurora.org
Sun Nov 21 22:12:27 PST 2021


On 2021-11-21 20:15, Sven Eckelmann wrote:
> On Sunday, 21 November 2021 15:22:01 CET Anilkumar Kolli wrote:
> [...]
>> +static int ath11k_mhi_read_addr_from_dt(struct mhi_controller 
>> *mhi_ctrl)
>> +{
>> +	struct device_node *np;
>> +	dma_addr_t start;
>> +	u32 reg[4];
>> +	int ret;
>> +
>> +	np = of_find_node_by_type(NULL, "memory");
>> +	if (!np)
>> +		return -ENOENT;
>> +
>> +	ret = of_property_read_u32_array(np, "reg", reg, 4);
>> +	if (ret)
>> +		return ret;
>> +
>> +	start = reg[0] + reg[1];
>> +	mhi_ctrl->iova_start = start + 0x1000000;
>> +	mhi_ctrl->iova_stop = start + reg[2] + reg[3];
>> +
>> +	return 0;
>> +}
>> +
> [...]
>> +			ret = of_property_read_u32(dev->of_node, "memory-region",
>> +						   &hremote_phandle);
>> +			if (ret) {
>> +				ath11k_dbg(ab, ATH11K_DBG_QMI,
>> +					   "qmi fail to get hremote phandle\n");
>> +				return ret;
>> +			}
>> +
>> +			hremote_node = of_find_node_by_phandle(hremote_phandle);
>> +			if (!hremote_node) {
>> +				ath11k_dbg(ab, ATH11K_DBG_QMI,
>> +					   "qmi fail to get hremote_node\n");
>> +				return ret;
>> +			}
>> +
>> +			ret = of_property_read_u32_array(hremote_node, "reg", reg, 4);
>> +			if (ret) {
>> +				ath11k_dbg(ab, ATH11K_DBG_QMI,
>> +					   "qmi fail to get reg from hremote\n");
>> +				return ret;
>> +			}
>> +
>> +			start = reg[0] + reg[1];
>> +			size = reg[2] + reg[3];
> 
> See my messages for v2 [1] and v3 [2]
> 
> 
Thanks for the review,

Here addresses are always within 32-bit.
so I will change the API to read only 2 integers and update start 
addresss and size.

> [1]
> https://patchwork.kernel.org/project/linux-wireless/patch/1637082058-6398-2-git-send-email-akolli@codeaurora.org/#24605391
> [2]
> https://patchwork.kernel.org/project/linux-wireless/patch/1637244892-27267-2-git-send-email-akolli@codeaurora.org/#24605417


- Anil.



More information about the ath11k mailing list