summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorJayachandran Sreekumaran <jsreekum@codeaurora.org>2018-09-03 17:47:39 +0530
committerJayachandran Sreekumaran <jsreekum@codeaurora.org>2019-10-14 11:33:53 +0530
commite5b2b112b3d9bc67afc37d1dd70d9bb0ac1b8b01 (patch)
treee8a95b8e5dec04ebf3952cf160da2a12e72d801a /include/net
parent2a61e30d4462de293371173af5c153e0ea195f0e (diff)
cnss2: Add support for genoa sdio
Add support for genoa sdio Change-Id: Icf004d954ca0b508830412da6a381a7844f66efe Signed-off-by: Jayachandran Sreekumaran <jsreekum@codeaurora.org>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/cnss2.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/include/net/cnss2.h b/include/net/cnss2.h
index eb6908feb7ef..e57b65f97f0f 100644
--- a/include/net/cnss2.h
+++ b/include/net/cnss2.h
@@ -15,6 +15,10 @@
#include <linux/pci.h>
#include <linux/usb.h>
+#include <linux/mmc/sdio_func.h>
+#ifdef CONFIG_SDIO_QCN
+#include <linux/qcn_sdio_al.h>
+#endif
#define CNSS_MAX_FILE_NAME 20
#define CNSS_MAX_TIMESTAMP_LEN 32
@@ -111,6 +115,21 @@ struct cnss_usb_wlan_driver {
const struct usb_device_id *id_table;
};
+#ifdef CONFIG_SDIO_QCN
+struct cnss_sdio_wlan_driver {
+ const char *name;
+ const struct sdio_device_id *id_table;
+ int (*probe)(struct sdio_func *, const struct sdio_device_id *);
+ void (*remove)(struct sdio_func *);
+ int (*reinit)(struct sdio_func *, const struct sdio_device_id *);
+ void (*shutdown)(struct sdio_func *);
+ void (*crash_shutdown)(struct sdio_func *);
+ int (*suspend)(struct device *);
+ int (*resume)(struct device *);
+ void (*update_status)(struct sdio_func *, uint32_t status);
+};
+#endif
+
enum cnss_driver_status {
CNSS_UNINITIALIZED,
CNSS_INITIALIZED,
@@ -251,5 +270,42 @@ extern int cnss_usb_wlan_register_driver(struct cnss_usb_wlan_driver *driver);
extern void cnss_usb_wlan_unregister_driver(struct cnss_usb_wlan_driver *
driver);
extern int cnss_usb_is_device_down(struct device *dev);
+#ifdef CONFIG_SDIO_QCN
+extern int cnss_sdio_wlan_register_driver(struct cnss_sdio_wlan_driver *
+ driver_ops);
+extern void cnss_sdio_wlan_unregister_driver(struct cnss_sdio_wlan_driver *
+ driver_ops);
+extern struct sdio_al_client_handle *cnss_sdio_wlan_get_sdio_al_client_handle(
+ struct sdio_func *func);
+extern struct sdio_al_channel_handle *cnss_sdio_wlan_register_sdio_al_channel(
+ struct sdio_al_channel_data *channel_data);
+extern void cnss_sdio_wlan_unregister_sdio_al_channel(
+ struct sdio_al_channel_handle *ch_handle);
+#else
+extern inline int cnss_sdio_wlan_register_driver(void *driver_ops)
+{
+ return 0;
+}
+
+extern inline void cnss_sdio_wlan_unregister_driver(void *driver_ops)
+{
+
+}
+
+extern inline void *cnss_sdio_wlan_get_sdio_al_client_handle(void *func)
+{
+ return NULL;
+}
+
+extern inline void *cnss_sdio_wlan_register_sdio_al_channel(void *channel_data)
+{
+ return NULL;
+}
+
+extern inline void cnss_sdio_wlan_unregister_sdio_al_channel(void *ch_handle)
+{
+
+}
+#endif
#endif /* _NET_CNSS2_H */