summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/bluetooth-power.h2
-rw-r--r--include/linux/ipa.h82
-rw-r--r--include/linux/ipa_odu_bridge.h84
3 files changed, 100 insertions, 68 deletions
diff --git a/include/linux/bluetooth-power.h b/include/linux/bluetooth-power.h
index a411520a83b2..7211c48dbc7b 100644
--- a/include/linux/bluetooth-power.h
+++ b/include/linux/bluetooth-power.h
@@ -27,6 +27,8 @@ struct bt_power_vreg_data {
/* voltage levels to be set */
unsigned int low_vol_level;
unsigned int high_vol_level;
+ /* current level to be set */
+ unsigned int load_uA;
/*
* is set voltage supported for this regulator?
* false => set voltage is not supported
diff --git a/include/linux/ipa.h b/include/linux/ipa.h
index fe99c620b85b..3a87177b623f 100644
--- a/include/linux/ipa.h
+++ b/include/linux/ipa.h
@@ -907,12 +907,23 @@ struct IpaHwStatsWDIInfoData_t {
* Rx buffers)
* @rdy_ring_size: size of the Rx ring in bytes
* @rdy_ring_rp_pa: physical address of the location through which IPA uc is
+ * reading (WDI-1.0)
+ * @rdy_comp_ring_base_pa: physical address of the base of the Rx completion
+ * ring (WDI-2.0)
+ * @rdy_comp_ring_wp_pa: physical address of the location through which IPA
+ * uc is writing (WDI-2.0)
+ * @rdy_comp_ring_size: size of the Rx_completion ring in bytes
* expected to communicate about the Read pointer into the Rx Ring
*/
struct ipa_wdi_ul_params {
phys_addr_t rdy_ring_base_pa;
u32 rdy_ring_size;
phys_addr_t rdy_ring_rp_pa;
+ phys_addr_t rdy_comp_ring_base_pa;
+ phys_addr_t rdy_comp_ring_wp_pa;
+ u32 rdy_comp_ring_size;
+ u32 *rdy_ring_rp_va;
+ u32 *rdy_comp_ring_wp_va;
};
/**
@@ -926,6 +937,9 @@ struct ipa_wdi_ul_params_smmu {
struct sg_table rdy_ring;
u32 rdy_ring_size;
phys_addr_t rdy_ring_rp_pa;
+ struct sg_table rdy_comp_ring;
+ phys_addr_t rdy_comp_ring_wp_pa;
+ u32 rdy_comp_ring_size;
};
/**
@@ -1038,30 +1052,6 @@ struct ipa_wdi_buffer_info {
};
/**
- * struct odu_bridge_params - parameters for odu bridge initialization API
- *
- * @netdev_name: network interface name
- * @priv: private data that will be supplied to client's callback
- * @tx_dp_notify: callback for handling SKB. the following event are supported:
- * IPA_WRITE_DONE: will be called after client called to odu_bridge_tx_dp()
- * Client is expected to free the skb.
- * IPA_RECEIVE: will be called for delivering skb to APPS.
- * Client is expected to deliver the skb to network stack.
- * @send_dl_skb: callback for sending skb on downlink direction to adapter.
- * Client is expected to free the skb.
- * @device_ethaddr: device Ethernet address in network order.
- * @ipa_desc_size: IPA Sys Pipe Desc Size
- */
-struct odu_bridge_params {
- const char *netdev_name;
- void *priv;
- ipa_notify_cb tx_dp_notify;
- int (*send_dl_skb)(void *priv, struct sk_buff *skb);
- u8 device_ethaddr[ETH_ALEN];
- u32 ipa_desc_size;
-};
-
-/**
* enum ipa_mhi_event_type - event type for mhi callback
*
* @IPA_MHI_EVENT_READY: IPA MHI is ready and IPA uC is loaded. After getting
@@ -1424,20 +1414,6 @@ enum ipacm_client_enum ipa_get_client(int pipe_idx);
bool ipa_get_client_uplink(int pipe_idx);
/*
- * ODU bridge
- */
-
-int odu_bridge_init(struct odu_bridge_params *params);
-
-int odu_bridge_connect(void);
-
-int odu_bridge_disconnect(void);
-
-int odu_bridge_tx_dp(struct sk_buff *skb, struct ipa_tx_meta *metadata);
-
-int odu_bridge_cleanup(void);
-
-/*
* IPADMA
*/
int ipa_dma_init(void);
@@ -2090,36 +2066,6 @@ static inline bool ipa_get_client_uplink(int pipe_idx)
return -EPERM;
}
-
-/*
- * ODU bridge
- */
-static inline int odu_bridge_init(struct odu_bridge_params *params)
-{
- return -EPERM;
-}
-
-static inline int odu_bridge_disconnect(void)
-{
- return -EPERM;
-}
-
-static inline int odu_bridge_connect(void)
-{
- return -EPERM;
-}
-
-static inline int odu_bridge_tx_dp(struct sk_buff *skb,
- struct ipa_tx_meta *metadata)
-{
- return -EPERM;
-}
-
-static inline int odu_bridge_cleanup(void)
-{
- return -EPERM;
-}
-
/*
* IPADMA
*/
diff --git a/include/linux/ipa_odu_bridge.h b/include/linux/ipa_odu_bridge.h
new file mode 100644
index 000000000000..5d30a9784998
--- /dev/null
+++ b/include/linux/ipa_odu_bridge.h
@@ -0,0 +1,84 @@
+/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _IPA_ODO_BRIDGE_H_
+#define _IPA_ODO_BRIDGE_H_
+
+#include <linux/ipa.h>
+
+/**
+ * struct odu_bridge_params - parameters for odu bridge initialization API
+ *
+ * @netdev_name: network interface name
+ * @priv: private data that will be supplied to client's callback
+ * @tx_dp_notify: callback for handling SKB. the following event are supported:
+ * IPA_WRITE_DONE: will be called after client called to odu_bridge_tx_dp()
+ * Client is expected to free the skb.
+ * IPA_RECEIVE: will be called for delivering skb to APPS.
+ * Client is expected to deliver the skb to network stack.
+ * @send_dl_skb: callback for sending skb on downlink direction to adapter.
+ * Client is expected to free the skb.
+ * @device_ethaddr: device Ethernet address in network order.
+ * @ipa_desc_size: IPA Sys Pipe Desc Size
+ */
+struct odu_bridge_params {
+ const char *netdev_name;
+ void *priv;
+ ipa_notify_cb tx_dp_notify;
+ int (*send_dl_skb)(void *priv, struct sk_buff *skb);
+ u8 device_ethaddr[ETH_ALEN];
+ u32 ipa_desc_size;
+};
+
+#if defined CONFIG_IPA || defined CONFIG_IPA3
+
+int odu_bridge_init(struct odu_bridge_params *params);
+
+int odu_bridge_connect(void);
+
+int odu_bridge_disconnect(void);
+
+int odu_bridge_tx_dp(struct sk_buff *skb, struct ipa_tx_meta *metadata);
+
+int odu_bridge_cleanup(void);
+
+#else
+
+static inline int odu_bridge_init(struct odu_bridge_params *params)
+{
+ return -EPERM;
+}
+
+static inline int odu_bridge_disconnect(void)
+{
+ return -EPERM;
+}
+
+static inline int odu_bridge_connect(void)
+{
+ return -EPERM;
+}
+
+static inline int odu_bridge_tx_dp(struct sk_buff *skb,
+ struct ipa_tx_meta *metadata)
+{
+ return -EPERM;
+}
+
+static inline int odu_bridge_cleanup(void)
+{
+ return -EPERM;
+}
+
+#endif /* CONFIG_IPA || defined CONFIG_IPA3 */
+
+#endif /* _IPA_ODO_BRIDGE_H */