diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/bluetooth-power.h | 2 | ||||
| -rw-r--r-- | include/linux/ipa.h | 82 | ||||
| -rw-r--r-- | include/linux/ipa_odu_bridge.h | 84 |
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 */ |
