Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[cascardo/linux.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 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 #include "csr_wifi_hip_card_sdio.h"
29 #include "csr_wifi_hip_signals.h"
30 #include "csr_wifi_hip_unifi_udi.h"
31
32
33 /*****************************************************************************
34  * CardEnableInt -
35  */
36 CsrResult CardEnableInt(card_t *card);
37
38 /*****************************************************************************
39  * CardGenInt -
40  */
41 CsrResult CardGenInt(card_t *card);
42
43 /*****************************************************************************
44  * CardPendingInt -
45  */
46 CsrResult CardPendingInt(card_t *card, u8 *pintr);
47
48 /*****************************************************************************
49  * CardDisableInt -
50  */
51 CsrResult CardDisableInt(card_t *card);
52
53 /*****************************************************************************
54  * CardClearInt -
55  */
56 CsrResult CardClearInt(card_t *card);
57
58 /*****************************************************************************
59  * CardDisable -
60  */
61 void CardDisable(card_t *card);
62
63 /*****************************************************************************
64  * CardIntEnabled -
65  */
66 CsrResult CardIntEnabled(card_t *card, u8 *enabled);
67
68 /*****************************************************************************
69  * CardGetDataSlotSize
70  */
71 u16 CardGetDataSlotSize(card_t *card);
72
73 /*****************************************************************************
74  * CardWriteBulkData -
75  */
76 CsrResult CardWriteBulkData(card_t *card, card_signal_t *csptr, unifi_TrafficQueue queue);
77
78
79 /*****************************************************************************
80  * CardClearFromHostDataSlot -
81  */
82 void CardClearFromHostDataSlot(card_t *card, const s16 aSlotNum);
83
84 #ifdef CSR_WIFI_REQUEUE_PACKET_TO_HAL
85 /*****************************************************************************
86  * CardClearFromHostDataSlotWithoutFreeingBulkData - Clear the data stot
87  * without freeing the bulk data
88  */
89
90 void CardClearFromHostDataSlotWithoutFreeingBulkData(card_t *card, const s16 aSlotNum);
91 #endif
92
93 /*****************************************************************************
94  * CardGetFreeFromHostDataSlots -
95  */
96 u16 CardGetFreeFromHostDataSlots(card_t *card);
97
98 u16 CardAreAllFromHostDataSlotsEmpty(card_t *card);
99
100 CsrResult card_start_processor(card_t *card, enum unifi_dbg_processors_select which);
101
102 CsrResult card_wait_for_firmware_to_start(card_t *card, u32 *paddr);
103
104 CsrResult unifi_dl_firmware(card_t *card, void *arg);
105 CsrResult unifi_dl_patch(card_t *card, void *arg, u32 boot_ctrl);
106 CsrResult unifi_do_loader_op(card_t *card, u32 op_addr, u8 opcode);
107 void* unifi_dl_fw_read_start(card_t *card, s8 is_fw);
108
109 CsrResult unifi_coredump_handle_request(card_t *card);
110
111 CsrResult ConvertCsrSdioToCsrHipResult(card_t *card, CsrResult csrResult);
112 #ifdef CSR_WIFI_HIP_DEBUG_OFFLINE
113 void unifi_debug_log_to_buf(const char *fmt, ...);
114 void unifi_debug_string_to_buf(const char *str);
115 void unifi_debug_hex_to_buf(const char *buff, u16 length);
116 #endif
117
118
119 #ifdef __cplusplus
120 }
121 #endif
122
123 #endif /* __CARD_H__ */