fw.usb.int_desc = &dma_mem.terminator[i++];
#ifdef CONFIG_CARL9170FW_CAB_QUEUE
- fw.wlan.cab_queue.head = fw.wlan.cab_queue.terminator = &dma_mem.terminator[i++];
+ /* GCC bug ? */
+# if (CARL9170_INTF_NUM != 2)
+ for (j = 0; j < CARL9170_INTF_NUM; j++)
+ fw.wlan.cab_queue[j].head = fw.wlan.cab_queue[j].terminator = &dma_mem.terminator[i++];
+#else
+ fw.wlan.cab_queue[0].head = fw.wlan.cab_queue[0].terminator = &dma_mem.terminator[i++];
+ fw.wlan.cab_queue[1].head = fw.wlan.cab_queue[1].terminator = &dma_mem.terminator[i++];
+#endif
#endif /* CONFIG_CARL9170FW_CAB_QUEUE */
#ifdef CONFIG_CARL9170FW_HANDLE_BACK_REQ
fw.wlan.tx_delay[j].head = fw.wlan.tx_delay[j].terminator = &dma_mem.terminator[i++];
#endif /* CONFIG_CARL9170FW_DELAYED_TX */
+ BUILD_BUG_ON(AR9170_TERMINATOR_NUMBER != j);
+
DBG("Blocks:%d [tx:%d, rx:%d] Terminators:%d/%d\n",
AR9170_BLOCK_NUMBER, AR9170_TX_BLOCK_NUMBER,
AR9170_RX_BLOCK_NUMBER, AR9170_TERMINATOR_NUMBER, i);
tmpDesc = desc;
- /* force correct CTRL_BITS */
- tmpDesc->ctrl = 0;
- tmpDesc->ctrl |= AR9170_CTRL_FS_BIT;
while (1) {
/* update totalLen */
tmpDesc->totalLen = desc->totalLen;
break;
tmpDesc = tmpDesc->nextAddr;
- tmpDesc->ctrl = 0;
}
- tmpDesc->ctrl |= AR9170_CTRL_LS_BIT;
/* 2. Next address of Last TD to be added = first TD */
desc->lastAddr->nextAddr = desc;