X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Finclude%2Fdma.h;h=ea905f5dca21df60d545b9ca0c168544300e81ad;hb=3890b79f7dde42f3be5963430b940bc61a29ee98;hp=91da8651a3366cfb50cbf8aeaeabea102153db85;hpb=65dd584c008fdc28e8398bacfdb311b19ae80507;p=carl9170fw.git diff --git a/carlfw/include/dma.h b/carlfw/include/dma.h index 91da865..ea905f5 100644 --- a/carlfw/include/dma.h +++ b/carlfw/include/dma.h @@ -44,7 +44,7 @@ struct dma_desc { 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 @@ -147,7 +147,6 @@ struct carl9170_sram_reserved { * 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) @@ -170,8 +169,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_data_block data[AR9170_BLOCK_NUMBER] __attribute__((aligned(BLOCK_ALIGNMENT))); - struct carl9170_sram_reserved reserved __attribute__((aligned(BLOCK_ALIGNMENT))); + struct ar9170_data_block data[AR9170_BLOCK_NUMBER] __aligned(BLOCK_ALIGNMENT); + struct carl9170_sram_reserved reserved __aligned(BLOCK_ALIGNMENT); }; extern struct ar9170_dma_memory dma_mem; @@ -224,8 +223,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 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) {