Sagar Dharia | 33beca0 | 2012-10-22 16:21:46 -0600 | [diff] [blame] | 1 | /* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 2 | * |
| 3 | * This program is free software; you can redistribute it and/or modify |
| 4 | * it under the terms of the GNU General Public License version 2 and |
| 5 | * only version 2 as published by the Free Software Foundation. |
| 6 | * |
| 7 | * This program is distributed in the hope that it will be useful, |
| 8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 10 | * GNU General Public License for more details. |
| 11 | */ |
| 12 | |
| 13 | #ifndef _SLIM_MSM_H |
| 14 | #define _SLIM_MSM_H |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 15 | |
Sagar Dharia | 2b8a4b5 | 2013-05-15 20:01:45 -0600 | [diff] [blame] | 16 | #include <linux/irq.h> |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 17 | #include <linux/kthread.h> |
| 18 | #include <mach/msm_qmi_interface.h> |
Naveen Kaje | 0ba80fa | 2013-10-29 18:24:15 -0600 | [diff] [blame] | 19 | #include <mach/subsystem_notif.h> |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 20 | |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 21 | /* Per spec.max 40 bytes per received message */ |
Sagar Dharia | 5c8ad19 | 2013-05-31 11:39:05 -0600 | [diff] [blame] | 22 | #define SLIM_MSGQ_BUF_LEN 40 |
| 23 | |
| 24 | #define MSM_TX_BUFS 2 |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 25 | |
| 26 | #define SLIM_USR_MC_GENERIC_ACK 0x25 |
| 27 | #define SLIM_USR_MC_MASTER_CAPABILITY 0x0 |
| 28 | #define SLIM_USR_MC_REPORT_SATELLITE 0x1 |
| 29 | #define SLIM_USR_MC_ADDR_QUERY 0xD |
| 30 | #define SLIM_USR_MC_ADDR_REPLY 0xE |
| 31 | #define SLIM_USR_MC_DEFINE_CHAN 0x20 |
| 32 | #define SLIM_USR_MC_DEF_ACT_CHAN 0x21 |
| 33 | #define SLIM_USR_MC_CHAN_CTRL 0x23 |
| 34 | #define SLIM_USR_MC_RECONFIG_NOW 0x24 |
| 35 | #define SLIM_USR_MC_REQ_BW 0x28 |
| 36 | #define SLIM_USR_MC_CONNECT_SRC 0x2C |
| 37 | #define SLIM_USR_MC_CONNECT_SINK 0x2D |
| 38 | #define SLIM_USR_MC_DISCONNECT_PORT 0x2E |
| 39 | |
Sagar Dharia | b046b3c | 2014-01-27 21:30:48 -0700 | [diff] [blame] | 40 | #define SLIM_USR_MC_REPEAT_CHANGE_VALUE 0x0 |
| 41 | #define MSM_SLIM_VE_MAX_MAP_ADDR 0xFFF |
| 42 | #define SLIM_MAX_VE_SLC_BYTES 16 |
| 43 | |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 44 | #define MSM_SLIM_AUTOSUSPEND MSEC_PER_SEC |
| 45 | |
| 46 | /* |
| 47 | * Messages that can be received simultaneously: |
| 48 | * Client reads, LPASS master responses, announcement messages |
| 49 | * Receive upto 10 messages simultaneously. |
| 50 | */ |
| 51 | #define MSM_SLIM_DESC_NUM 32 |
| 52 | |
| 53 | /* MSM Slimbus peripheral settings */ |
| 54 | #define MSM_SLIM_PERF_SUMM_THRESHOLD 0x8000 |
| 55 | #define MSM_SLIM_NPORTS 24 |
| 56 | #define MSM_SLIM_NCHANS 32 |
| 57 | |
Sagar Dharia | a3c6a38 | 2013-06-21 12:18:20 -0600 | [diff] [blame] | 58 | #define QC_MFGID_LSB 0x2 |
| 59 | #define QC_MFGID_MSB 0x17 |
| 60 | #define QC_CHIPID_SL 0x10 |
| 61 | #define QC_DEVID_SAT1 0x3 |
| 62 | #define QC_DEVID_SAT2 0x4 |
| 63 | #define QC_DEVID_PGD 0x5 |
| 64 | |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 65 | #define SLIM_MSG_ASM_FIRST_WORD(l, mt, mc, dt, ad) \ |
| 66 | ((l) | ((mt) << 5) | ((mc) << 8) | ((dt) << 15) | ((ad) << 16)) |
| 67 | |
Sagar Dharia | 0a69333 | 2013-04-15 17:59:03 -0600 | [diff] [blame] | 68 | #define INIT_MX_RETRIES 10 |
| 69 | #define DEF_RETRY_MS 10 |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 70 | #define MSM_CONCUR_MSG 8 |
| 71 | #define SAT_CONCUR_MSG 8 |
| 72 | #define DEF_WATERMARK (8 << 1) |
| 73 | #define DEF_ALIGN 0 |
| 74 | #define DEF_PACK (1 << 6) |
| 75 | #define ENABLE_PORT 1 |
| 76 | |
| 77 | #define DEF_BLKSZ 0 |
| 78 | #define DEF_TRANSZ 0 |
| 79 | |
| 80 | #define SAT_MAGIC_LSB 0xD9 |
| 81 | #define SAT_MAGIC_MSB 0xC5 |
| 82 | #define SAT_MSG_VER 0x1 |
| 83 | #define SAT_MSG_PROT 0x1 |
| 84 | #define MSM_SAT_SUCCSS 0x20 |
| 85 | #define MSM_MAX_NSATS 2 |
| 86 | #define MSM_MAX_SATCH 32 |
| 87 | |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 88 | /* Slimbus QMI service */ |
| 89 | #define SLIMBUS_QMI_SVC_ID 0x0301 |
Karthikeyan Ramasubramanian | e6e2495 | 2013-09-20 15:45:18 -0600 | [diff] [blame] | 90 | #define SLIMBUS_QMI_SVC_V1 1 |
| 91 | #define SLIMBUS_QMI_INS_ID 0 |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 92 | |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 93 | #define PGD_THIS_EE(r, v) ((v) ? PGD_THIS_EE_V2(r) : PGD_THIS_EE_V1(r)) |
| 94 | #define PGD_PORT(r, p, v) ((v) ? PGD_PORT_V2(r, p) : PGD_PORT_V1(r, p)) |
| 95 | #define CFG_PORT(r, v) ((v) ? CFG_PORT_V2(r) : CFG_PORT_V1(r)) |
| 96 | |
| 97 | #define PGD_THIS_EE_V2(r) (dev->base + (r ## _V2) + (dev->ee * 0x1000)) |
| 98 | #define PGD_PORT_V2(r, p) (dev->base + (r ## _V2) + ((p) * 0x1000)) |
| 99 | #define CFG_PORT_V2(r) ((r ## _V2)) |
| 100 | /* Component registers */ |
| 101 | enum comp_reg_v2 { |
| 102 | COMP_CFG_V2 = 4, |
| 103 | COMP_TRUST_CFG_V2 = 0x3000, |
| 104 | }; |
| 105 | |
| 106 | /* Manager PGD registers */ |
| 107 | enum pgd_reg_v2 { |
| 108 | PGD_CFG_V2 = 0x800, |
| 109 | PGD_STAT_V2 = 0x804, |
| 110 | PGD_INT_EN_V2 = 0x810, |
| 111 | PGD_INT_STAT_V2 = 0x814, |
| 112 | PGD_INT_CLR_V2 = 0x818, |
| 113 | PGD_OWN_EEn_V2 = 0x300C, |
| 114 | PGD_PORT_INT_EN_EEn_V2 = 0x5000, |
| 115 | PGD_PORT_INT_ST_EEn_V2 = 0x5004, |
| 116 | PGD_PORT_INT_CL_EEn_V2 = 0x5008, |
| 117 | PGD_PORT_CFGn_V2 = 0x14000, |
| 118 | PGD_PORT_STATn_V2 = 0x14004, |
| 119 | PGD_PORT_PARAMn_V2 = 0x14008, |
| 120 | PGD_PORT_BLKn_V2 = 0x1400C, |
| 121 | PGD_PORT_TRANn_V2 = 0x14010, |
| 122 | PGD_PORT_MCHANn_V2 = 0x14014, |
| 123 | PGD_PORT_PSHPLLn_V2 = 0x14018, |
| 124 | PGD_PORT_PC_CFGn_V2 = 0x8000, |
| 125 | PGD_PORT_PC_VALn_V2 = 0x8004, |
| 126 | PGD_PORT_PC_VFR_TSn_V2 = 0x8008, |
| 127 | PGD_PORT_PC_VFR_STn_V2 = 0x800C, |
| 128 | PGD_PORT_PC_VFR_CLn_V2 = 0x8010, |
| 129 | PGD_IE_STAT_V2 = 0x820, |
| 130 | PGD_VE_STAT_V2 = 0x830, |
| 131 | }; |
| 132 | |
| 133 | #define PGD_THIS_EE_V1(r) (dev->base + (r ## _V1) + (dev->ee * 16)) |
| 134 | #define PGD_PORT_V1(r, p) (dev->base + (r ## _V1) + ((p) * 32)) |
| 135 | #define CFG_PORT_V1(r) ((r ## _V1)) |
| 136 | /* Component registers */ |
| 137 | enum comp_reg_v1 { |
| 138 | COMP_CFG_V1 = 0, |
| 139 | COMP_TRUST_CFG_V1 = 0x14, |
| 140 | }; |
| 141 | |
| 142 | /* Manager PGD registers */ |
| 143 | enum pgd_reg_v1 { |
| 144 | PGD_CFG_V1 = 0x1000, |
| 145 | PGD_STAT_V1 = 0x1004, |
| 146 | PGD_INT_EN_V1 = 0x1010, |
| 147 | PGD_INT_STAT_V1 = 0x1014, |
| 148 | PGD_INT_CLR_V1 = 0x1018, |
| 149 | PGD_OWN_EEn_V1 = 0x1020, |
| 150 | PGD_PORT_INT_EN_EEn_V1 = 0x1030, |
| 151 | PGD_PORT_INT_ST_EEn_V1 = 0x1034, |
| 152 | PGD_PORT_INT_CL_EEn_V1 = 0x1038, |
| 153 | PGD_PORT_CFGn_V1 = 0x1080, |
| 154 | PGD_PORT_STATn_V1 = 0x1084, |
| 155 | PGD_PORT_PARAMn_V1 = 0x1088, |
| 156 | PGD_PORT_BLKn_V1 = 0x108C, |
| 157 | PGD_PORT_TRANn_V1 = 0x1090, |
| 158 | PGD_PORT_MCHANn_V1 = 0x1094, |
| 159 | PGD_PORT_PSHPLLn_V1 = 0x1098, |
| 160 | PGD_PORT_PC_CFGn_V1 = 0x1600, |
| 161 | PGD_PORT_PC_VALn_V1 = 0x1604, |
| 162 | PGD_PORT_PC_VFR_TSn_V1 = 0x1608, |
| 163 | PGD_PORT_PC_VFR_STn_V1 = 0x160C, |
| 164 | PGD_PORT_PC_VFR_CLn_V1 = 0x1610, |
| 165 | PGD_IE_STAT_V1 = 0x1700, |
| 166 | PGD_VE_STAT_V1 = 0x1710, |
| 167 | }; |
| 168 | |
Sagar Dharia | 2b8a4b5 | 2013-05-15 20:01:45 -0600 | [diff] [blame] | 169 | enum msm_slim_port_status { |
| 170 | MSM_PORT_OVERFLOW = 1 << 2, |
| 171 | MSM_PORT_UNDERFLOW = 1 << 3, |
| 172 | MSM_PORT_DISCONNECT = 1 << 19, |
| 173 | }; |
| 174 | |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 175 | enum msm_ctrl_state { |
| 176 | MSM_CTRL_AWAKE, |
Sagar Dharia | d1468b7 | 2013-07-16 12:56:22 -0600 | [diff] [blame] | 177 | MSM_CTRL_IDLE, |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 178 | MSM_CTRL_ASLEEP, |
Sagar Dharia | 33beca0 | 2012-10-22 16:21:46 -0600 | [diff] [blame] | 179 | MSM_CTRL_DOWN, |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 180 | }; |
| 181 | |
Sagar Dharia | 24419e3 | 2013-01-14 17:56:32 -0700 | [diff] [blame] | 182 | enum msm_slim_msgq { |
| 183 | MSM_MSGQ_DISABLED, |
| 184 | MSM_MSGQ_RESET, |
| 185 | MSM_MSGQ_ENABLED, |
Sagar Dharia | da48bd6 | 2013-03-21 18:02:40 -0600 | [diff] [blame] | 186 | MSM_MSGQ_DOWN, |
Sagar Dharia | 24419e3 | 2013-01-14 17:56:32 -0700 | [diff] [blame] | 187 | }; |
| 188 | |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 189 | struct msm_slim_sps_bam { |
| 190 | u32 hdl; |
| 191 | void __iomem *base; |
| 192 | int irq; |
| 193 | }; |
| 194 | |
| 195 | struct msm_slim_endp { |
| 196 | struct sps_pipe *sps; |
| 197 | struct sps_connect config; |
| 198 | struct sps_register_event event; |
| 199 | struct sps_mem_buffer buf; |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 200 | bool connected; |
| 201 | }; |
| 202 | |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 203 | struct msm_slim_qmi { |
| 204 | struct qmi_handle *handle; |
| 205 | struct task_struct *task; |
| 206 | struct kthread_work kwork; |
| 207 | struct kthread_worker kworker; |
Sagar Dharia | cc1001e | 2012-11-06 13:56:42 -0700 | [diff] [blame] | 208 | struct completion qmi_comp; |
| 209 | struct notifier_block nb; |
Sagar Dharia | 33beca0 | 2012-10-22 16:21:46 -0600 | [diff] [blame] | 210 | struct work_struct ssr_down; |
| 211 | struct work_struct ssr_up; |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 212 | }; |
| 213 | |
Naveen Kaje | 0ba80fa | 2013-10-29 18:24:15 -0600 | [diff] [blame] | 214 | struct msm_slim_mdm { |
| 215 | struct notifier_block nb; |
| 216 | void *ssr; |
| 217 | }; |
| 218 | |
Sagar Dharia | a3c6a38 | 2013-06-21 12:18:20 -0600 | [diff] [blame] | 219 | struct msm_slim_pdata { |
| 220 | u32 apps_pipes; |
| 221 | u32 eapc; |
| 222 | }; |
| 223 | |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 224 | struct msm_slim_ctrl { |
| 225 | struct slim_controller ctrl; |
| 226 | struct slim_framer framer; |
| 227 | struct device *dev; |
| 228 | void __iomem *base; |
| 229 | struct resource *slew_mem; |
Sagar Dharia | 71fcea5 | 2012-09-12 23:21:57 -0600 | [diff] [blame] | 230 | struct resource *bam_mem; |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 231 | u32 curr_bw; |
| 232 | u8 msg_cnt; |
| 233 | u32 tx_buf[10]; |
Sagar Dharia | 5c8ad19 | 2013-05-31 11:39:05 -0600 | [diff] [blame] | 234 | u8 rx_msgs[MSM_CONCUR_MSG][SLIM_MSGQ_BUF_LEN]; |
| 235 | int tx_idx; |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 236 | spinlock_t rx_lock; |
| 237 | int head; |
| 238 | int tail; |
| 239 | int irq; |
| 240 | int err; |
| 241 | int ee; |
| 242 | struct completion *wr_comp; |
| 243 | struct msm_slim_sat *satd[MSM_MAX_NSATS]; |
| 244 | struct msm_slim_endp pipes[7]; |
| 245 | struct msm_slim_sps_bam bam; |
Sagar Dharia | 5c8ad19 | 2013-05-31 11:39:05 -0600 | [diff] [blame] | 246 | struct msm_slim_endp tx_msgq; |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 247 | struct msm_slim_endp rx_msgq; |
| 248 | struct completion rx_msgq_notify; |
| 249 | struct task_struct *rx_msgq_thread; |
| 250 | struct clk *rclk; |
| 251 | struct clk *hclk; |
| 252 | struct mutex tx_lock; |
| 253 | u8 pgdla; |
Sagar Dharia | 24419e3 | 2013-01-14 17:56:32 -0700 | [diff] [blame] | 254 | enum msm_slim_msgq use_rx_msgqs; |
Sagar Dharia | 5c8ad19 | 2013-05-31 11:39:05 -0600 | [diff] [blame] | 255 | enum msm_slim_msgq use_tx_msgqs; |
Sagar Dharia | 2b8a4b5 | 2013-05-15 20:01:45 -0600 | [diff] [blame] | 256 | int port_b; |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 257 | struct completion reconf; |
| 258 | bool reconf_busy; |
| 259 | bool chan_active; |
| 260 | enum msm_ctrl_state state; |
Sagar Dharia | 33beca0 | 2012-10-22 16:21:46 -0600 | [diff] [blame] | 261 | struct completion ctrl_up; |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 262 | int nsats; |
| 263 | u32 ver; |
Sagar Dharia | 33beca0 | 2012-10-22 16:21:46 -0600 | [diff] [blame] | 264 | struct work_struct slave_notify; |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 265 | struct msm_slim_qmi qmi; |
Sagar Dharia | a3c6a38 | 2013-06-21 12:18:20 -0600 | [diff] [blame] | 266 | struct msm_slim_pdata pdata; |
Naveen Kaje | 0ba80fa | 2013-10-29 18:24:15 -0600 | [diff] [blame] | 267 | struct msm_slim_mdm mdm; |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 268 | }; |
| 269 | |
| 270 | struct msm_sat_chan { |
| 271 | u8 chan; |
| 272 | u16 chanh; |
| 273 | int req_rem; |
| 274 | int req_def; |
| 275 | bool reconf; |
| 276 | }; |
| 277 | |
| 278 | struct msm_slim_sat { |
| 279 | struct slim_device satcl; |
| 280 | struct msm_slim_ctrl *dev; |
| 281 | struct workqueue_struct *wq; |
| 282 | struct work_struct wd; |
| 283 | u8 sat_msgs[SAT_CONCUR_MSG][40]; |
| 284 | struct msm_sat_chan *satch; |
| 285 | u8 nsatch; |
| 286 | bool sent_capability; |
| 287 | bool pending_reconf; |
| 288 | bool pending_capability; |
| 289 | int shead; |
| 290 | int stail; |
| 291 | spinlock_t lock; |
| 292 | }; |
| 293 | |
| 294 | enum rsc_grp { |
| 295 | EE_MGR_RSC_GRP = 1 << 10, |
| 296 | EE_NGD_2 = 2 << 6, |
| 297 | EE_NGD_1 = 0, |
| 298 | }; |
| 299 | |
| 300 | |
| 301 | int msm_slim_rx_enqueue(struct msm_slim_ctrl *dev, u32 *buf, u8 len); |
| 302 | int msm_slim_rx_dequeue(struct msm_slim_ctrl *dev, u8 *buf); |
| 303 | int msm_slim_get_ctrl(struct msm_slim_ctrl *dev); |
| 304 | void msm_slim_put_ctrl(struct msm_slim_ctrl *dev); |
Sagar Dharia | 2b8a4b5 | 2013-05-15 20:01:45 -0600 | [diff] [blame] | 305 | irqreturn_t msm_slim_port_irq_handler(struct msm_slim_ctrl *dev, u32 pstat); |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 306 | int msm_slim_init_endpoint(struct msm_slim_ctrl *dev, struct msm_slim_endp *ep); |
| 307 | void msm_slim_free_endpoint(struct msm_slim_endp *ep); |
| 308 | void msm_hw_set_port(struct msm_slim_ctrl *dev, u8 pn); |
Sagar Dharia | 100e721 | 2013-05-17 18:20:57 -0600 | [diff] [blame] | 309 | int msm_alloc_port(struct slim_controller *ctrl, u8 pn); |
| 310 | void msm_dealloc_port(struct slim_controller *ctrl, u8 pn); |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 311 | int msm_slim_connect_pipe_port(struct msm_slim_ctrl *dev, u8 pn); |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 312 | enum slim_port_err msm_slim_port_xfer_status(struct slim_controller *ctr, |
Sagar Dharia | 1bbf38c | 2014-02-07 19:40:12 -0700 | [diff] [blame] | 313 | u8 pn, phys_addr_t *done_buf, u32 *done_len); |
| 314 | int msm_slim_port_xfer(struct slim_controller *ctrl, u8 pn, phys_addr_t iobuf, |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 315 | u32 len, struct completion *comp); |
| 316 | int msm_send_msg_buf(struct msm_slim_ctrl *dev, u32 *buf, u8 len, u32 tx_reg); |
| 317 | u32 *msm_get_msg_buf(struct msm_slim_ctrl *dev, int len); |
| 318 | int msm_slim_rx_msgq_get(struct msm_slim_ctrl *dev, u32 *data, int offset); |
| 319 | int msm_slim_sps_init(struct msm_slim_ctrl *dev, struct resource *bam_mem, |
Sagar Dharia | 60f59a7 | 2012-10-17 12:42:03 -0600 | [diff] [blame] | 320 | u32 pipe_reg, bool remote); |
Sagar Dharia | 33beca0 | 2012-10-22 16:21:46 -0600 | [diff] [blame] | 321 | void msm_slim_sps_exit(struct msm_slim_ctrl *dev, bool dereg); |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 322 | |
Sagar Dharia | 24419e3 | 2013-01-14 17:56:32 -0700 | [diff] [blame] | 323 | int msm_slim_connect_endp(struct msm_slim_ctrl *dev, |
| 324 | struct msm_slim_endp *endpoint, |
| 325 | struct completion *notify); |
Sagar Dharia | 5c8ad19 | 2013-05-31 11:39:05 -0600 | [diff] [blame] | 326 | void msm_slim_disconnect_endp(struct msm_slim_ctrl *dev, |
| 327 | struct msm_slim_endp *endpoint, |
| 328 | enum msm_slim_msgq *msgq_flag); |
Kenneth Heitke | ae62604 | 2012-11-05 21:01:44 -0700 | [diff] [blame] | 329 | void msm_slim_qmi_exit(struct msm_slim_ctrl *dev); |
| 330 | int msm_slim_qmi_init(struct msm_slim_ctrl *dev, bool apps_is_master); |
| 331 | int msm_slim_qmi_power_request(struct msm_slim_ctrl *dev, bool active); |
Naveen Kaje | 0ba80fa | 2013-10-29 18:24:15 -0600 | [diff] [blame] | 332 | int msm_slim_qmi_check_framer_request(struct msm_slim_ctrl *dev); |
Sagar Dharia | 2754ab4 | 2012-08-21 18:07:39 -0600 | [diff] [blame] | 333 | #endif |