*/
static unsigned int macb_dma_desc_get_size(struct macb *bp)
{
+ unsigned int desc_size = sizeof(struct macb_dma_desc);
+
#ifdef MACB_EXT_DESC
- unsigned int desc_size;
+ if (bp->hw_dma_cap & HW_DMA_CAP_64B)
+ desc_size += sizeof(struct macb_dma_desc_64);
+ if (bp->hw_dma_cap & HW_DMA_CAP_PTP)
+ desc_size += sizeof(struct macb_dma_desc_ptp);
+#endif
- switch (bp->hw_dma_cap) {
- case HW_DMA_CAP_64B:
- desc_size = sizeof(struct macb_dma_desc)
- + sizeof(struct macb_dma_desc_64);
- break;
- case HW_DMA_CAP_PTP:
- desc_size = sizeof(struct macb_dma_desc)
- + sizeof(struct macb_dma_desc_ptp);
- break;
- case HW_DMA_CAP_64B_PTP:
- desc_size = sizeof(struct macb_dma_desc)
- + sizeof(struct macb_dma_desc_64)
- + sizeof(struct macb_dma_desc_ptp);
- break;
- default:
- desc_size = sizeof(struct macb_dma_desc);
- }
return desc_size;
-#endif
- return sizeof(struct macb_dma_desc);
}
static unsigned int macb_adj_dma_desc_idx(struct macb *bp, unsigned int desc_idx)