Linux-libre 3.10.103-gnu
[librecmc/linux-libre.git] / drivers / staging / csr / csr_wifi_hip_card.h
1 /*****************************************************************************
2
3             (c) Cambridge Silicon Radio Limited 2012
4             All rights reserved and confidential information of CSR
5
6             Refer to LICENSE.txt included with this source for details
7             on the license terms.
8
9 *****************************************************************************/
10
11 /*
12  ******************************************************************************
13  * FILE : csr_wifi_hip_card.h
14  *
15  * PURPOSE : Defines abstract interface for hardware specific functions.
16  *           Note, this is a different file from one of the same name in the
17  *           Windows driver.
18  *
19  *****************************************************************************
20  */
21 #ifndef __CARD_H__
22 #define __CARD_H__
23
24 #include "csr_wifi_hip_card_sdio.h"
25 #include "csr_wifi_hip_signals.h"
26 #include "csr_wifi_hip_unifi_udi.h"
27
28
29 /*****************************************************************************
30  * CardEnableInt -
31  */
32 CsrResult CardEnableInt(card_t *card);
33
34 /*****************************************************************************
35  * CardGenInt -
36  */
37 CsrResult CardGenInt(card_t *card);
38
39 /*****************************************************************************
40  * CardPendingInt -
41  */
42 CsrResult CardPendingInt(card_t *card, u8 *pintr);
43
44 /*****************************************************************************
45  * CardDisableInt -
46  */
47 CsrResult CardDisableInt(card_t *card);
48
49 /*****************************************************************************
50  * CardClearInt -
51  */
52 CsrResult CardClearInt(card_t *card);
53
54 /*****************************************************************************
55  * CardDisable -
56  */
57 void CardDisable(card_t *card);
58
59 /*****************************************************************************
60  * CardIntEnabled -
61  */
62 CsrResult CardIntEnabled(card_t *card, u8 *enabled);
63
64 /*****************************************************************************
65  * CardGetDataSlotSize
66  */
67 u16 CardGetDataSlotSize(card_t *card);
68
69 /*****************************************************************************
70  * CardWriteBulkData -
71  */
72 CsrResult CardWriteBulkData(card_t *card, card_signal_t *csptr, unifi_TrafficQueue queue);
73
74
75 /*****************************************************************************
76  * CardClearFromHostDataSlot -
77  */
78 void CardClearFromHostDataSlot(card_t *card, const s16 aSlotNum);
79
80 #ifdef CSR_WIFI_REQUEUE_PACKET_TO_HAL
81 /*****************************************************************************
82  * CardClearFromHostDataSlotWithoutFreeingBulkData - Clear the data stot
83  * without freeing the bulk data
84  */
85
86 void CardClearFromHostDataSlotWithoutFreeingBulkData(card_t *card, const s16 aSlotNum);
87 #endif
88
89 /*****************************************************************************
90  * CardGetFreeFromHostDataSlots -
91  */
92 u16 CardGetFreeFromHostDataSlots(card_t *card);
93
94 u16 CardAreAllFromHostDataSlotsEmpty(card_t *card);
95
96 CsrResult card_start_processor(card_t *card, enum unifi_dbg_processors_select which);
97
98 CsrResult card_wait_for_firmware_to_start(card_t *card, u32 *paddr);
99
100 CsrResult unifi_dl_firmware(card_t *card, void *arg);
101 CsrResult unifi_dl_patch(card_t *card, void *arg, u32 boot_ctrl);
102 CsrResult unifi_do_loader_op(card_t *card, u32 op_addr, u8 opcode);
103 void* unifi_dl_fw_read_start(card_t *card, s8 is_fw);
104
105 CsrResult unifi_coredump_handle_request(card_t *card);
106
107 CsrResult ConvertCsrSdioToCsrHipResult(card_t *card, CsrResult csrResult);
108 #ifdef CSR_WIFI_HIP_DEBUG_OFFLINE
109 void unifi_debug_log_to_buf(const char *fmt, ...);
110 void unifi_debug_string_to_buf(const char *str);
111 void unifi_debug_hex_to_buf(const char *buff, u16 length);
112 #endif
113
114 #endif /* __CARD_H__ */