projects
/
carl9170fw.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
carl9170 firmware: merge CARL9170FW_PSM with the standard RF code
[carl9170fw.git]
/
carlfw
/
include
/
dma.h
diff --git
a/carlfw/include/dma.h
b/carlfw/include/dma.h
index 91da8651a3366cfb50cbf8aeaeabea102153db85..70417360854bcab334b47fc08d0d6c14f96fc508 100644
(file)
--- a/
carlfw/include/dma.h
+++ b/
carlfw/include/dma.h
@@
-6,7
+6,7
@@
* Copyright (c) 2000-2005 ZyDAS Technology Corporation
* Copyright (c) 2007-2009 Atheros Communications, Inc.
* Copyright 2009 Johannes Berg <johannes@sipsolutions.net>
* Copyright (c) 2000-2005 ZyDAS Technology Corporation
* Copyright (c) 2007-2009 Atheros Communications, Inc.
* Copyright 2009 Johannes Berg <johannes@sipsolutions.net>
- * Copyright 2009
, 2010
Christian Lamparter <chunkeey@googlemail.com>
+ * Copyright 2009
-2011
Christian Lamparter <chunkeey@googlemail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-44,19
+44,13
@@
struct dma_desc {
void *dataAddr;
} __packed;
struct dma_desc *nextAddr; /* Next TD address */
void *dataAddr;
} __packed;
struct dma_desc *nextAddr; /* Next TD address */
-} __packed;
+} __packed
__aligned(4)
;
-/*
(Up, Dn, 5x Tx, Rx), USB Int, (5x delayed Tx + retry), CAB, BA
*/
-#define AR9170_TERMINATOR_NUMBER_B
8
+/*
Up, Dn, 5x Tx, retry, Rx, [USB Int], (CAB), (BA)
*/
+#define AR9170_TERMINATOR_NUMBER_B
9
#define AR9170_TERMINATOR_NUMBER_INT 1
#define AR9170_TERMINATOR_NUMBER_INT 1
-#ifdef CONFIG_CARL9170FW_DELAYED_TX
-#define AR9170_TERMINATOR_NUMBER_DELAY 6
-#else
-#define AR9170_TERMINATOR_NUMBER_DELAY 0
-#endif /* CONFIG_CARL9170FW_DELAYED_TX */
-
#ifdef CONFIG_CARL9170FW_CAB_QUEUE
#define AR9170_TERMINATOR_NUMBER_CAB CARL9170_INTF_NUM
#else
#ifdef CONFIG_CARL9170FW_CAB_QUEUE
#define AR9170_TERMINATOR_NUMBER_CAB CARL9170_INTF_NUM
#else
@@
-70,7
+64,6
@@
struct dma_desc {
#endif /* CONFIG_CARL9170FW_HANDLE_BACK_REQ */
#define AR9170_TERMINATOR_NUMBER (AR9170_TERMINATOR_NUMBER_B + \
AR9170_TERMINATOR_NUMBER_INT + \
#endif /* CONFIG_CARL9170FW_HANDLE_BACK_REQ */
#define AR9170_TERMINATOR_NUMBER (AR9170_TERMINATOR_NUMBER_B + \
AR9170_TERMINATOR_NUMBER_INT + \
- AR9170_TERMINATOR_NUMBER_DELAY + \
AR9170_TERMINATOR_NUMBER_CAB + \
AR9170_TERMINATOR_NUMBER_BA)
AR9170_TERMINATOR_NUMBER_CAB + \
AR9170_TERMINATOR_NUMBER_BA)
@@
-121,11
+114,11
@@
struct carl9170_sram_reserved {
* | - Up (to USB host)
* | - Down (from USB host)
* | - TX (5x, to wifi)
* | - Up (to USB host)
* | - Down (from USB host)
* | - TX (5x, to wifi)
+ * | - AMPDU TX retry
* | - RX (from wifi)
* | - CAB Queue
* | - FW cmd & req descriptor
* | - BlockAck descriptor
* | - RX (from wifi)
* | - CAB Queue
* | - FW cmd & req descriptor
* | - BlockAck descriptor
- * | - Delayed TX (5x)
* | total: AR9170_TERMINATOR_NUMBER
* +--
* | block descriptors (dma_desc)
* | total: AR9170_TERMINATOR_NUMBER
* +--
* | block descriptors (dma_desc)
@@
-147,7
+140,6
@@
struct carl9170_sram_reserved {
* 0x18000
*/
* 0x18000
*/
-#define AR9170_SRAM_SIZE 0x18000
#define CARL9170_SRAM_RESERVED (sizeof(struct carl9170_sram_reserved))
#define AR9170_FRAME_MEMORY_SIZE (AR9170_SRAM_SIZE - CARL9170_SRAM_RESERVED)
#define CARL9170_SRAM_RESERVED (sizeof(struct carl9170_sram_reserved))
#define AR9170_FRAME_MEMORY_SIZE (AR9170_SRAM_SIZE - CARL9170_SRAM_RESERVED)
@@
-170,8
+162,8
@@
struct ar9170_data_block {
struct ar9170_dma_memory {
struct dma_desc terminator[AR9170_TERMINATOR_NUMBER];
struct dma_desc block[AR9170_BLOCK_NUMBER];
struct ar9170_dma_memory {
struct dma_desc terminator[AR9170_TERMINATOR_NUMBER];
struct dma_desc block[AR9170_BLOCK_NUMBER];
- struct ar9170_data_block data[AR9170_BLOCK_NUMBER] __a
ttribute__((aligned(BLOCK_ALIGNMENT))
);
- struct carl9170_sram_reserved reserved __a
ttribute__((aligned(BLOCK_ALIGNMENT))
);
+ struct ar9170_data_block data[AR9170_BLOCK_NUMBER] __a
ligned(BLOCK_ALIGNMENT
);
+ struct carl9170_sram_reserved reserved __a
ligned(BLOCK_ALIGNMENT
);
};
extern struct ar9170_dma_memory dma_mem;
};
extern struct ar9170_dma_memory dma_mem;
@@
-224,8
+216,11
@@
void dma_init_descriptors(void);
void dma_reclaim(struct dma_queue *q, struct dma_desc *desc);
void dma_put(struct dma_queue *q, struct dma_desc *desc);
void dma_queue_reclaim(struct dma_queue *dst, struct dma_queue *src);
void dma_reclaim(struct dma_queue *q, struct dma_desc *desc);
void dma_put(struct dma_queue *q, struct dma_desc *desc);
void dma_queue_reclaim(struct dma_queue *dst, struct dma_queue *src);
-void queue_dump(void);
-void wlan_txq_hangfix(const unsigned int queue);
+
+static inline __inline bool is_terminator(struct dma_queue *q, struct dma_desc *desc)
+{
+ return q->terminator == desc;
+}
static inline __inline bool queue_empty(struct dma_queue *q)
{
static inline __inline bool queue_empty(struct dma_queue *q)
{