[PATCH v2 05/19] ath11k: Remove core PCI references from PCI common code

Manikanta Pubbisetty quic_mpubbise at quicinc.com
Mon Feb 21 02:08:31 PST 2022



On 2/21/2022 2:47 PM, Kalle Valo wrote:
> Manikanta Pubbisetty <quic_mpubbise at quicinc.com> writes:
> 
>> On 1/28/2022 3:50 PM, Kalle Valo wrote:
>>> Manikanta Pubbisetty <quic_mpubbise at quicinc.com> writes:
>>>
>>>> Remove core PCI and ath11k PCI references(struct ath11k_pci)
>>>> from PCI common code. Since, PCI common code will be used
>>>> by hybrid bus devices, this code should be independent
>>>> from ATH11K PCI references and Linux core PCI references
>>>> like struct pci_dev.
>>>>
>>>> Since this change introduces function callbacks for bus wakeup
>>>> and bus release operations, wakeup_mhi HW param is no longer
>>>> needed and hence it is removed completely. Alternatively, bus
>>>> wakeup/release ops for QCA9074 are initialized to NULL as
>>>> QCA9704 does not need bus wakeup/release for register accesses.
>>>>
>>>> Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00573-QCAMSLSWPLZ-1
>>>> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
>>>> Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
>>>> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00192-QCAHKSWPL_SILICONZ-1
>>>>
>>>> Signed-off-by: Manikanta Pubbisetty <quic_mpubbise at quicinc.com>
>>>
>>> [...]
>>>
>>>> @@ -651,6 +653,13 @@ struct ath11k_bus_params {
>>>>    	bool fixed_bdf_addr;
>>>>    	bool fixed_mem_region;
>>>>    	bool static_window_map;
>>>> +	struct {
>>>> +		void (*wakeup)(struct ath11k_base *ab);
>>>> +		void (*release)(struct ath11k_base *ab);
>>>> +		int (*get_msi_irq)(struct ath11k_base *ab, unsigned int vector);
>>>> +		void (*window_write32)(struct ath11k_base *ab, u32 offset, u32 value);
>>>> +		u32 (*window_read32)(struct ath11k_base *ab, u32 offset);
>>>> +	} ops;
>>>>    };
>>>
>>> Please don't use bus_params for this, I'm starting to suspect that we
>>> actually need to remove struct ath11k_bus_params altogether. It would be
>>> cleaner to have separate 'struct ath11k_pci_ops' or something like that.
>>>
>>
>> Sure, something like 'struct ath11k_bus_ops' in ath11k_base struct
>> would be appropriate.
> 
> But we have 'struct ath11k_hif_ops' already, and that's basically
> ath11k_bus_ops with a confusing name :) (IIRC HIF means Host InterFace,
> or something like that.) So having both ath11k_bus_ops and
> ath11k_hif_ops would become even more confusing.
> 
> You are basically abstracting out PCI functionality, that's why I
> suggested ath11k_pci_ops. But yeah, naming is hard :)
> 

Hmmm, makes sense :)



More information about the ath11k mailing list