1*d14abf15SRobert Mustacchi 
2*d14abf15SRobert Mustacchi /*****************************************************************************
3*d14abf15SRobert Mustacchi  * CDDL HEADER START
4*d14abf15SRobert Mustacchi  *
5*d14abf15SRobert Mustacchi  * The contents of this file are subject to the terms of the
6*d14abf15SRobert Mustacchi  * Common Development and Distribution License (the "License").
7*d14abf15SRobert Mustacchi  * You may not use this file except in compliance with the License.
8*d14abf15SRobert Mustacchi  *
9*d14abf15SRobert Mustacchi  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*d14abf15SRobert Mustacchi  * or http://www.opensolaris.org/os/licensing.
11*d14abf15SRobert Mustacchi  * See the License for the specific language governing permissions
12*d14abf15SRobert Mustacchi  * and limitations under the License.
13*d14abf15SRobert Mustacchi  *
14*d14abf15SRobert Mustacchi  * When distributing Covered Code, include this CDDL HEADER in each
15*d14abf15SRobert Mustacchi  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*d14abf15SRobert Mustacchi  * If applicable, add the following below this CDDL HEADER, with the
17*d14abf15SRobert Mustacchi  * fields enclosed by brackets "[]" replaced with your own identifying
18*d14abf15SRobert Mustacchi  * information: Portions Copyright [yyyy] [name of copyright owner]
19*d14abf15SRobert Mustacchi  *
20*d14abf15SRobert Mustacchi  * CDDL HEADER END
21*d14abf15SRobert Mustacchi  *
22*d14abf15SRobert Mustacchi  * Copyright 2014 QLogic Corporation
23*d14abf15SRobert Mustacchi  * The contents of this file are subject to the terms of the
24*d14abf15SRobert Mustacchi  * QLogic End User License (the "License").
25*d14abf15SRobert Mustacchi  * You may not use this file except in compliance with the License.
26*d14abf15SRobert Mustacchi  *
27*d14abf15SRobert Mustacchi  * You can obtain a copy of the License at
28*d14abf15SRobert Mustacchi  * http://www.qlogic.com/Resources/Documents/DriverDownloadHelp/
29*d14abf15SRobert Mustacchi  * QLogic_End_User_Software_License.txt
30*d14abf15SRobert Mustacchi  * See the License for the specific language governing permissions
31*d14abf15SRobert Mustacchi  * and limitations under the License.
32*d14abf15SRobert Mustacchi  *
33*d14abf15SRobert Mustacchi  *****************************************************************************/
34*d14abf15SRobert Mustacchi 
35*d14abf15SRobert Mustacchi #include "sync.h"
36*d14abf15SRobert Mustacchi #include "lm5710.h"
37*d14abf15SRobert Mustacchi 
38*d14abf15SRobert Mustacchi #ifndef UEFI64
39*d14abf15SRobert Mustacchi typedef u32_t mm_int_ptr_t;
40*d14abf15SRobert Mustacchi #else
41*d14abf15SRobert Mustacchi typedef u64_t mm_int_ptr_t;
42*d14abf15SRobert Mustacchi #endif
43*d14abf15SRobert Mustacchi 
44*d14abf15SRobert Mustacchi typedef int mm_spin_lock_t;
45*d14abf15SRobert Mustacchi 
46*d14abf15SRobert Mustacchi #define mm_read_barrier_imp()
47*d14abf15SRobert Mustacchi #define mm_write_barrier_imp()
48*d14abf15SRobert Mustacchi #define mm_barrier_imp()
49*d14abf15SRobert Mustacchi 
mm_atomic_set_imp(u32_t * p,u32_t v)50*d14abf15SRobert Mustacchi static __inline void mm_atomic_set_imp(u32_t *p, u32_t v)
51*d14abf15SRobert Mustacchi {
52*d14abf15SRobert Mustacchi     LOCK();
53*d14abf15SRobert Mustacchi     *p = v;
54*d14abf15SRobert Mustacchi     UNLOCK();
55*d14abf15SRobert Mustacchi }
56*d14abf15SRobert Mustacchi 
mm_atomic_dec_imp(u32_t * p)57*d14abf15SRobert Mustacchi static __inline s32_t mm_atomic_dec_imp(u32_t *p)
58*d14abf15SRobert Mustacchi {
59*d14abf15SRobert Mustacchi     s32_t ret;
60*d14abf15SRobert Mustacchi     LOCK();
61*d14abf15SRobert Mustacchi     ret = --(*p);
62*d14abf15SRobert Mustacchi     UNLOCK();
63*d14abf15SRobert Mustacchi     return ret;
64*d14abf15SRobert Mustacchi }
65*d14abf15SRobert Mustacchi 
mm_atomic_inc_imp(u32_t * p)66*d14abf15SRobert Mustacchi static __inline s32_t mm_atomic_inc_imp(u32_t *p)
67*d14abf15SRobert Mustacchi {
68*d14abf15SRobert Mustacchi     s32_t ret;
69*d14abf15SRobert Mustacchi     LOCK();
70*d14abf15SRobert Mustacchi     ret = ++(*p);
71*d14abf15SRobert Mustacchi     UNLOCK();
72*d14abf15SRobert Mustacchi     return ret;
73*d14abf15SRobert Mustacchi }
74*d14abf15SRobert Mustacchi 
mm_atomic_and_imp(u32_t * p,u32_t v)75*d14abf15SRobert Mustacchi static __inline s32_t mm_atomic_and_imp(u32_t *p, u32_t v)
76*d14abf15SRobert Mustacchi {
77*d14abf15SRobert Mustacchi     s32_t ret;
78*d14abf15SRobert Mustacchi     LOCK();
79*d14abf15SRobert Mustacchi     ret = *p;
80*d14abf15SRobert Mustacchi     *p &= v;
81*d14abf15SRobert Mustacchi     UNLOCK();
82*d14abf15SRobert Mustacchi     return ret;
83*d14abf15SRobert Mustacchi }
84*d14abf15SRobert Mustacchi 
mm_atomic_long_and_imp(unsigned long * p,unsigned long v)85*d14abf15SRobert Mustacchi static __inline unsigned long mm_atomic_long_and_imp(unsigned long *p,
86*d14abf15SRobert Mustacchi                                                      unsigned long v)
87*d14abf15SRobert Mustacchi {
88*d14abf15SRobert Mustacchi     unsigned long ret;
89*d14abf15SRobert Mustacchi     LOCK();
90*d14abf15SRobert Mustacchi     ret = *p;
91*d14abf15SRobert Mustacchi     *p &= v;
92*d14abf15SRobert Mustacchi     UNLOCK();
93*d14abf15SRobert Mustacchi     return ret;
94*d14abf15SRobert Mustacchi }
95*d14abf15SRobert Mustacchi 
mm_atomic_or_imp(u32_t * p,u32_t v)96*d14abf15SRobert Mustacchi static __inline s32_t mm_atomic_or_imp(u32_t *p, u32_t v)
97*d14abf15SRobert Mustacchi {
98*d14abf15SRobert Mustacchi     s32_t ret;
99*d14abf15SRobert Mustacchi     LOCK();
100*d14abf15SRobert Mustacchi     ret = *p;
101*d14abf15SRobert Mustacchi     *p |= v;
102*d14abf15SRobert Mustacchi     UNLOCK();
103*d14abf15SRobert Mustacchi     return ret;
104*d14abf15SRobert Mustacchi }
105*d14abf15SRobert Mustacchi 
mm_atomic_long_or_imp(unsigned long * p,unsigned long v)106*d14abf15SRobert Mustacchi static __inline unsigned long mm_atomic_long_or_imp(unsigned long *p,
107*d14abf15SRobert Mustacchi                                                     unsigned long v)
108*d14abf15SRobert Mustacchi {
109*d14abf15SRobert Mustacchi     unsigned long ret;
110*d14abf15SRobert Mustacchi     LOCK();
111*d14abf15SRobert Mustacchi     ret = *p;
112*d14abf15SRobert Mustacchi     *p |= v;
113*d14abf15SRobert Mustacchi     UNLOCK();
114*d14abf15SRobert Mustacchi     return ret;
115*d14abf15SRobert Mustacchi }
116*d14abf15SRobert Mustacchi 
117*d14abf15SRobert Mustacchi #define mm_atomic_read_imp(_p)      (*_p)
118*d14abf15SRobert Mustacchi #define mm_atomic_long_read_imp(_p) (*_p)
119*d14abf15SRobert Mustacchi 
mm_atomic_cmpxchg_imp(u32_t * p,u32_t old_v,u32_t new_v)120*d14abf15SRobert Mustacchi static __inline s32_t mm_atomic_cmpxchg_imp(u32_t *p,
121*d14abf15SRobert Mustacchi                                             u32_t old_v,
122*d14abf15SRobert Mustacchi                                             u32_t new_v)
123*d14abf15SRobert Mustacchi {
124*d14abf15SRobert Mustacchi     s32_t ret;
125*d14abf15SRobert Mustacchi     LOCK();
126*d14abf15SRobert Mustacchi     ret = *p;
127*d14abf15SRobert Mustacchi     if (*p == old_v)
128*d14abf15SRobert Mustacchi     {
129*d14abf15SRobert Mustacchi         *p = new_v;
130*d14abf15SRobert Mustacchi     }
131*d14abf15SRobert Mustacchi     UNLOCK();
132*d14abf15SRobert Mustacchi     return ret;
133*d14abf15SRobert Mustacchi }
134*d14abf15SRobert Mustacchi 
135*d14abf15SRobert Mustacchi 
136*d14abf15SRobert Mustacchi #define MM_WRITE_DOORBELL_IMP(PDEV, BAR, CID, VAL) \
137*d14abf15SRobert Mustacchi     LM_BAR_WR32_OFFSET((PDEV), BAR_1, (u32_t)((int_ptr_t)((u8_t *)(PDEV)->context_info->array[CID].cid_resc.mapped_cid_bar_addr - \
138*d14abf15SRobert Mustacchi                                                           (PDEV)->hw_info.mem_base[BAR_1].as_u64 + (DPM_TRIGER_TYPE))), (VAL))
139*d14abf15SRobert Mustacchi 
140*d14abf15SRobert Mustacchi #define MM_REGISTER_LPME_IMP(_pdev, _func, _b_fw_access, _b_queue_for_fw) \
141*d14abf15SRobert Mustacchi     (LM_STATUS_SUCCESS)
142*d14abf15SRobert Mustacchi 
143*d14abf15SRobert Mustacchi 
144*d14abf15SRobert Mustacchi #define MM_ACQUIRE_SPQ_LOCK_IMP(pdev)     LOCK()
145*d14abf15SRobert Mustacchi #define MM_RELEASE_SPQ_LOCK_IMP(pdev)     UNLOCK()
146*d14abf15SRobert Mustacchi #define MM_ACQUIRE_SPQ_LOCK_DPC_IMP(pdev) LOCK()
147*d14abf15SRobert Mustacchi #define MM_RELEASE_SPQ_LOCK_DPC_IMP(pdev) UNLOCK()
148*d14abf15SRobert Mustacchi 
149*d14abf15SRobert Mustacchi #define MM_ACQUIRE_CID_LOCK_IMP(pdev) LOCK()
150*d14abf15SRobert Mustacchi #define MM_RELEASE_CID_LOCK_IMP(pdev) UNLOCK()
151*d14abf15SRobert Mustacchi 
152*d14abf15SRobert Mustacchi #define MM_ACQUIRE_REQUEST_LOCK_IMP(pdev) LOCK()
153*d14abf15SRobert Mustacchi #define MM_RELEASE_REQUEST_LOCK_IMP(pdev) UNLOCK()
154*d14abf15SRobert Mustacchi 
155*d14abf15SRobert Mustacchi #define MM_ACQUIRE_PHY_LOCK_IMP(pdev)     LOCK()
156*d14abf15SRobert Mustacchi #define MM_RELEASE_PHY_LOCK_IMP(pdev)     UNLOCK()
157*d14abf15SRobert Mustacchi #define MM_ACQUIRE_PHY_LOCK_DPC_IMP(pdev) LOCK()
158*d14abf15SRobert Mustacchi #define MM_RELEASE_PHY_LOCK_DPC_IMP(pdev) UNLOCK()
159*d14abf15SRobert Mustacchi 
160*d14abf15SRobert Mustacchi #define MM_ACQUIRE_MCP_LOCK_IMP(pdev) LOCK()
161*d14abf15SRobert Mustacchi #define MM_RELEASE_MCP_LOCK_IMP(pdev) UNLOCK()
162*d14abf15SRobert Mustacchi 
163*d14abf15SRobert Mustacchi #define MM_ACQUIRE_ISLES_CONTROL_LOCK_IMP(pdev)     LOCK()
164*d14abf15SRobert Mustacchi #define MM_RELEASE_ISLES_CONTROL_LOCK_IMP(pdev)     UNLOCK()
165*d14abf15SRobert Mustacchi #define MM_ACQUIRE_ISLES_CONTROL_LOCK_DPC_IMP(pdev) LOCK()
166*d14abf15SRobert Mustacchi #define MM_RELEASE_ISLES_CONTROL_LOCK_DPC_IMP(pdev) UNLOCK()
167*d14abf15SRobert Mustacchi 
168*d14abf15SRobert Mustacchi #define MM_ACQUIRE_IND_REG_LOCK_IMP(pdev) LOCK()
169*d14abf15SRobert Mustacchi #define MM_RELEASE_IND_REG_LOCK_IMP(pdev) UNLOCK()
170*d14abf15SRobert Mustacchi 
171*d14abf15SRobert Mustacchi #define MM_ACQUIRE_RAMROD_COMP_LOCK_IMP(_pdev) LOCK()
172*d14abf15SRobert Mustacchi #define MM_RELEASE_RAMROD_COMP_LOCK_IMP(_pdev) UNLOCK()
173*d14abf15SRobert Mustacchi 
174*d14abf15SRobert Mustacchi #define MM_ACQUIRE_LOADER_LOCK_IMP() LOCK()
175*d14abf15SRobert Mustacchi #define MM_RELEASE_LOADER_LOCK_IMP() UNLOCK()
176*d14abf15SRobert Mustacchi 
177*d14abf15SRobert Mustacchi #define MM_ACQUIRE_SP_REQ_MGR_LOCK_IMP(pdev) LOCK()
178*d14abf15SRobert Mustacchi #define MM_RELEASE_SP_REQ_MGR_LOCK_IMP(pdev) UNLOCK()
179*d14abf15SRobert Mustacchi 
180*d14abf15SRobert Mustacchi #define MM_ACQUIRE_SB_LOCK_IMP(pdev, sb_idx) LOCK()
181*d14abf15SRobert Mustacchi #define MM_RELEASE_SB_LOCK_IMP(pdev, sb_idx) UNLOCK()
182*d14abf15SRobert Mustacchi 
183*d14abf15SRobert Mustacchi #define MM_ACQUIRE_ETH_CON_LOCK_IMP(pdev) LOCK()
184*d14abf15SRobert Mustacchi #define MM_RELEASE_ETH_CON_LOCK_IMP(pdev) UNLOCK()
185*d14abf15SRobert Mustacchi 
186*d14abf15SRobert Mustacchi #ifdef VF_INVOLVED
187*d14abf15SRobert Mustacchi 
188*d14abf15SRobert Mustacchi #define MM_ACQUIRE_PF_LOCK_IMP(pdev) LOCK()
189*d14abf15SRobert Mustacchi #define MM_RELEASE_PF_LOCK_IMP(pdev) UNLOCK()
190*d14abf15SRobert Mustacchi 
191*d14abf15SRobert Mustacchi #define MM_ACQUIRE_VFS_STATS_LOCK_IMP(pdev)     LOCK()
192*d14abf15SRobert Mustacchi #define MM_RELEASE_VFS_STATS_LOCK_IMP(pdev)     UNLOCK()
193*d14abf15SRobert Mustacchi #define MM_ACQUIRE_VFS_STATS_LOCK_DPC_IMP(pdev) LOCK()
194*d14abf15SRobert Mustacchi #define MM_RELEASE_VFS_STATS_LOCK_DPC_IMP(pdev) UNLOCK()
195*d14abf15SRobert Mustacchi 
196*d14abf15SRobert Mustacchi #endif /* VF_INVOLVED */
197*d14abf15SRobert Mustacchi 
mm_init_lock(struct _lm_device_t * _pdev,mm_spin_lock_t * lock)198*d14abf15SRobert Mustacchi static __inline void mm_init_lock(struct _lm_device_t *_pdev,
199*d14abf15SRobert Mustacchi                                   mm_spin_lock_t *lock)
200*d14abf15SRobert Mustacchi {
201*d14abf15SRobert Mustacchi     /* Do nothing */
202*d14abf15SRobert Mustacchi }
203*d14abf15SRobert Mustacchi 
mm_acquire_lock(mm_spin_lock_t * spinlock)204*d14abf15SRobert Mustacchi static __inline lm_status_t mm_acquire_lock(mm_spin_lock_t *spinlock)
205*d14abf15SRobert Mustacchi {
206*d14abf15SRobert Mustacchi     LOCK();
207*d14abf15SRobert Mustacchi     return LM_STATUS_SUCCESS;
208*d14abf15SRobert Mustacchi }
209*d14abf15SRobert Mustacchi 
mm_release_lock(mm_spin_lock_t * spinlock)210*d14abf15SRobert Mustacchi static __inline lm_status_t mm_release_lock(mm_spin_lock_t *spinlock)
211*d14abf15SRobert Mustacchi {
212*d14abf15SRobert Mustacchi     UNLOCK();
213*d14abf15SRobert Mustacchi     return LM_STATUS_SUCCESS;
214*d14abf15SRobert Mustacchi }
215*d14abf15SRobert Mustacchi 
216*d14abf15SRobert Mustacchi 
217*d14abf15SRobert Mustacchi 
218*d14abf15SRobert Mustacchi 
219*d14abf15SRobert Mustacchi 
220*d14abf15SRobert Mustacchi 
221*d14abf15SRobert Mustacchi #define mm_er_initiate_recovery_imp(pdev) \
222*d14abf15SRobert Mustacchi     (LM_STATUS_FAILURE)
223*d14abf15SRobert Mustacchi 
224*d14abf15SRobert Mustacchi #define mm_register_dpc_imp(_pdev, _func) \
225*d14abf15SRobert Mustacchi     (LM_STATUS_FAILURE)
226*d14abf15SRobert Mustacchi 
227*d14abf15SRobert Mustacchi #define mm_empty_ramrod_received_imp(pdev, empty_data)
228*d14abf15SRobert Mustacchi 
229*d14abf15SRobert Mustacchi #define mm_dbus_start_if_enabled_imp(pdev)
230*d14abf15SRobert Mustacchi #define mm_dbus_stop_if_started_imp(pdev)
231*d14abf15SRobert Mustacchi 
232*d14abf15SRobert Mustacchi #ifdef BIG_ENDIAN
233*d14abf15SRobert Mustacchi // LE
234*d14abf15SRobert Mustacchi #define mm_le16_to_cpu_imp(val) SWAP_BYTES16(val)
235*d14abf15SRobert Mustacchi #define mm_cpu_to_le16_imp(val) SWAP_BYTES16(val)
236*d14abf15SRobert Mustacchi #define mm_le32_to_cpu_imp(val) SWAP_BYTES32(val)
237*d14abf15SRobert Mustacchi #define mm_cpu_to_le32_imp(val) SWAP_BYTES32(val)
238*d14abf15SRobert Mustacchi // BE
239*d14abf15SRobert Mustacchi #define mm_be32_to_cpu_imp(val) (val)
240*d14abf15SRobert Mustacchi #define mm_cpu_to_be32_imp(val) (val)
241*d14abf15SRobert Mustacchi #define mm_be16_to_cpu_imp(val) (val)
242*d14abf15SRobert Mustacchi #define mm_cpu_to_be16_imp(val) (val)
243*d14abf15SRobert Mustacchi #else /* LITTLE_ENDIAN */
244*d14abf15SRobert Mustacchi // LE
245*d14abf15SRobert Mustacchi #define mm_le16_to_cpu_imp(val) (val)
246*d14abf15SRobert Mustacchi #define mm_cpu_to_le16_imp(val) (val)
247*d14abf15SRobert Mustacchi #define mm_le32_to_cpu_imp(val) (val)
248*d14abf15SRobert Mustacchi #define mm_cpu_to_le32_imp(val) (val)
249*d14abf15SRobert Mustacchi // BE
250*d14abf15SRobert Mustacchi #define mm_be32_to_cpu_imp(val) SWAP_BYTES32(val)
251*d14abf15SRobert Mustacchi #define mm_cpu_to_be32_imp(val) SWAP_BYTES32(val)
252*d14abf15SRobert Mustacchi #define mm_be16_to_cpu_imp(val) SWAP_BYTES16(val)
253*d14abf15SRobert Mustacchi #define mm_cpu_to_be16_imp(val) SWAP_BYTES16(val)
254*d14abf15SRobert Mustacchi #endif /* ifdef BIG_ENDIAN */
255*d14abf15SRobert Mustacchi 
256*d14abf15SRobert Mustacchi 
257*d14abf15SRobert Mustacchi #define mm_get_bar_offset_imp(pdev, bar_num, bar_addr) \
258*d14abf15SRobert Mustacchi     lm_get_bar_offset_direct(pdev, bar_num, bar_addr)
259*d14abf15SRobert Mustacchi 
260*d14abf15SRobert Mustacchi #define mm_get_bar_size_imp(pdev, bar_num, val_p) \
261*d14abf15SRobert Mustacchi     lm_get_bar_size_direct(pdev, bar_num, val_p)
262*d14abf15SRobert Mustacchi 
263*d14abf15SRobert Mustacchi #define MM_DCB_MP_L2_IS_ENABLE(_pdev)  (FALSE)
264*d14abf15SRobert Mustacchi 
265*d14abf15SRobert Mustacchi void mm_bar_read_byte(struct _lm_device_t *pdev,
266*d14abf15SRobert Mustacchi                       u8_t bar,
267*d14abf15SRobert Mustacchi                       u32_t offset,
268*d14abf15SRobert Mustacchi                       u8_t *ret);
269*d14abf15SRobert Mustacchi 
270*d14abf15SRobert Mustacchi void mm_bar_read_word(struct _lm_device_t *pdev,
271*d14abf15SRobert Mustacchi                       u8_t bar,
272*d14abf15SRobert Mustacchi                       u32_t offset,
273*d14abf15SRobert Mustacchi                       u16_t *ret);
274*d14abf15SRobert Mustacchi 
275*d14abf15SRobert Mustacchi void mm_bar_read_dword(struct _lm_device_t *pdev,
276*d14abf15SRobert Mustacchi                        u8_t bar,
277*d14abf15SRobert Mustacchi                        u32_t offset,
278*d14abf15SRobert Mustacchi                        u32_t *ret);
279*d14abf15SRobert Mustacchi 
280*d14abf15SRobert Mustacchi void mm_bar_read_ddword(struct _lm_device_t *pdev,
281*d14abf15SRobert Mustacchi                         u8_t bar,
282*d14abf15SRobert Mustacchi                         u32_t offset,
283*d14abf15SRobert Mustacchi                         u64_t *ret);
284*d14abf15SRobert Mustacchi 
285*d14abf15SRobert Mustacchi void mm_bar_write_byte(struct _lm_device_t *pdev,
286*d14abf15SRobert Mustacchi                        u8_t bar,
287*d14abf15SRobert Mustacchi                        u32_t offset,
288*d14abf15SRobert Mustacchi                        u8_t val);
289*d14abf15SRobert Mustacchi 
290*d14abf15SRobert Mustacchi void mm_bar_write_word(struct _lm_device_t *pdev,
291*d14abf15SRobert Mustacchi                        u8_t bar,
292*d14abf15SRobert Mustacchi                        u32_t offset,
293*d14abf15SRobert Mustacchi                        u16_t val);
294*d14abf15SRobert Mustacchi 
295*d14abf15SRobert Mustacchi void mm_bar_write_dword(struct _lm_device_t *pdev,
296*d14abf15SRobert Mustacchi                         u8_t bar,
297*d14abf15SRobert Mustacchi                         u32_t offset,
298*d14abf15SRobert Mustacchi                         u32_t val);
299*d14abf15SRobert Mustacchi 
300*d14abf15SRobert Mustacchi void mm_bar_write_ddword(struct _lm_device_t *pdev,
301*d14abf15SRobert Mustacchi                          u8_t bar,
302*d14abf15SRobert Mustacchi                          u32_t offset,
303*d14abf15SRobert Mustacchi                          u64_t val);
304*d14abf15SRobert Mustacchi 
305*d14abf15SRobert Mustacchi void mm_bar_copy_buffer(
306*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
307*d14abf15SRobert Mustacchi 	u8_t                  bar,
308*d14abf15SRobert Mustacchi 	u32_t                 offset,
309*d14abf15SRobert Mustacchi     u32_t                 size,
310*d14abf15SRobert Mustacchi 	u32_t                 *buf_ptr
311*d14abf15SRobert Mustacchi 	);
312*d14abf15SRobert Mustacchi 
313*d14abf15SRobert Mustacchi u32_t mm_get_wol_flags( IN struct _lm_device_t* pdev );
314*d14abf15SRobert Mustacchi 
315*d14abf15SRobert Mustacchi u32_t mm_get_feature_flags(struct _lm_device_t* pdev);
316*d14abf15SRobert Mustacchi 
317*d14abf15SRobert Mustacchi u32_t mm_get_vmq_cnt(struct _lm_device_t* pdev);
318*d14abf15SRobert Mustacchi 
319*d14abf15SRobert Mustacchi lm_status_t mm_i2c_update(struct _lm_device_t *pdev);
320*d14abf15SRobert Mustacchi 
321*d14abf15SRobert Mustacchi u64_t mm_query_system_time(void);
322