summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2019-10-14 04:48:43 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2019-10-14 04:48:42 -0700
commitc65b9585249986588b205fbed6eda20924423e72 (patch)
treeb87f3b9444b200d10fd08b2f29a6051cc7a68667 /include/net
parent4b981b7bf74d71edaf1f666a10d4ae8ea2eadc9a (diff)
parente5b2b112b3d9bc67afc37d1dd70d9bb0ac1b8b01 (diff)
Merge "cnss2: Add support for genoa sdio"
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 69b9e5d607ef..5ed1b05277b1 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,
@@ -256,5 +275,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 */