aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/csr/csr_wifi_hip_card.h
blob: bd47f606e0dee38c0ff84902b2a1b836c1f340d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/*****************************************************************************

            (c) Cambridge Silicon Radio Limited 2012
            All rights reserved and confidential information of CSR

            Refer to LICENSE.txt included with this source for details
            on the license terms.

*****************************************************************************/

/*
 ******************************************************************************
 * FILE : csr_wifi_hip_card.h
 *
 * PURPOSE : Defines abstract interface for hardware specific functions.
 *           Note, this is a different file from one of the same name in the
 *           Windows driver.
 *
 *****************************************************************************
 */
#ifndef __CARD_H__
#define __CARD_H__

#include "csr_wifi_hip_card_sdio.h"
#include "csr_wifi_hip_signals.h"
#include "csr_wifi_hip_unifi_udi.h"


/*****************************************************************************
 * CardEnableInt -
 */
CsrResult CardEnableInt(card_t *card);

/*****************************************************************************
 * CardGenInt -
 */
CsrResult CardGenInt(card_t *card);

/*****************************************************************************
 * CardPendingInt -
 */
CsrResult CardPendingInt(card_t *card, u8 *pintr);

/*****************************************************************************
 * CardDisableInt -
 */
CsrResult CardDisableInt(card_t *card);

/*****************************************************************************
 * CardClearInt -
 */
CsrResult CardClearInt(card_t *card);

/*****************************************************************************
 * CardDisable -
 */
void CardDisable(card_t *card);

/*****************************************************************************
 * CardIntEnabled -
 */
CsrResult CardIntEnabled(card_t *card, u8 *enabled);

/*****************************************************************************
 * CardGetDataSlotSize
 */
u16 CardGetDataSlotSize(card_t *card);

/*****************************************************************************
 * CardWriteBulkData -
 */
CsrResult CardWriteBulkData(card_t *card, card_signal_t *csptr, unifi_TrafficQueue queue);


/*****************************************************************************
 * CardClearFromHostDataSlot -
 */
void CardClearFromHostDataSlot(card_t *card, const s16 aSlotNum);

#ifdef CSR_WIFI_REQUEUE_PACKET_TO_HAL
/*****************************************************************************
 * CardClearFromHostDataSlotWithoutFreeingBulkData - Clear the data stot
 * without freeing the bulk data
 */

void CardClearFromHostDataSlotWithoutFreeingBulkData(card_t *card, const s16 aSlotNum);
#endif

/*****************************************************************************
 * CardGetFreeFromHostDataSlots -
 */
u16 CardGetFreeFromHostDataSlots(card_t *card);

u16 CardAreAllFromHostDataSlotsEmpty(card_t *card);

CsrResult card_start_processor(card_t *card, enum unifi_dbg_processors_select which);

CsrResult card_wait_for_firmware_to_start(card_t *card, u32 *paddr);

CsrResult unifi_dl_firmware(card_t *card, void *arg);
CsrResult unifi_dl_patch(card_t *card, void *arg, u32 boot_ctrl);
CsrResult unifi_do_loader_op(card_t *card, u32 op_addr, u8 opcode);
void* unifi_dl_fw_read_start(card_t *card, s8 is_fw);

CsrResult unifi_coredump_handle_request(card_t *card);

CsrResult ConvertCsrSdioToCsrHipResult(card_t *card, CsrResult csrResult);
#ifdef CSR_WIFI_HIP_DEBUG_OFFLINE
void unifi_debug_log_to_buf(const char *fmt, ...);
void unifi_debug_string_to_buf(const char *str);
void unifi_debug_hex_to_buf(const char *buff, u16 length);
#endif

#endif /* __CARD_H__ */