summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath11k/pci.h
diff options
context:
space:
mode:
authorGovind Singh <govinds@codeaurora.org>2020-08-13 12:04:24 +0300
committerKalle Valo <kvalo@codeaurora.org>2020-08-17 13:07:12 +0300
commit1399fb87ea3e96d26398a16cb95dc395a68c51bc (patch)
tree916546acf9afae73c2a13c464945176f56db14a9 /drivers/net/wireless/ath/ath11k/pci.h
parentb8246f88468440ac596238ff402bcb636053d657 (diff)
ath11k: register MHI controller device for QCA6390
Modem Host Interface (MHI) is a communication protocol to communicate with external Qualcomm modems and Wi-Fi chipsets over high speed peripheral buses. Even though MHI doesn’t dictate underlying physical layer, protocol and MHI stack is structured for PCI based devices. Register directly with MHI subsystem as a MHI device driver for firmware download to QCA6390. Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1 Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.1.0.1-01238-QCAHKSWPL_SILICONZ-2 Signed-off-by: Govind Singh <govinds@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/1597309466-19688-9-git-send-email-kvalo@codeaurora.org
Diffstat (limited to 'drivers/net/wireless/ath/ath11k/pci.h')
-rw-r--r--drivers/net/wireless/ath/ath11k/pci.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath11k/pci.h b/drivers/net/wireless/ath/ath11k/pci.h
index db75eae26f71..85e033069d7a 100644
--- a/drivers/net/wireless/ath/ath11k/pci.h
+++ b/drivers/net/wireless/ath/ath11k/pci.h
@@ -2,6 +2,10 @@
/*
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
*/
+#ifndef _ATH11K_PCI_H
+#define _ATH11K_PCI_H
+
+#include <linux/mhi.h>
#include "core.h"
@@ -21,10 +25,20 @@ struct ath11k_pci {
struct pci_dev *pdev;
struct ath11k_base *ab;
u16 dev_id;
+ char amss_path[100];
u32 msi_ep_base_data;
+ struct mhi_controller *mhi_ctrl;
+ unsigned long mhi_state;
};
static inline struct ath11k_pci *ath11k_pci_priv(struct ath11k_base *ab)
{
return (struct ath11k_pci *)ab->drv_priv;
}
+
+int ath11k_pci_get_user_msi_assignment(struct ath11k_pci *ar_pci, char *user_name,
+ int *num_vectors, u32 *user_base_data,
+ u32 *base_vector);
+int ath11k_pci_get_msi_irq(struct device *dev, unsigned int vector);
+
+#endif