Lines Matching refs:cbdr
1034 int enetc_alloc_cbdr(struct device *dev, struct enetc_cbdr *cbdr)
1036 int size = cbdr->bd_count * sizeof(struct enetc_cbd);
1038 cbdr->bd_base = dma_alloc_coherent(dev, size, &cbdr->bd_dma_base,
1040 if (!cbdr->bd_base)
1044 if (!IS_ALIGNED(cbdr->bd_dma_base, 128)) {
1045 dma_free_coherent(dev, size, cbdr->bd_base, cbdr->bd_dma_base);
1049 cbdr->next_to_clean = 0;
1050 cbdr->next_to_use = 0;
1055 void enetc_free_cbdr(struct device *dev, struct enetc_cbdr *cbdr)
1057 int size = cbdr->bd_count * sizeof(struct enetc_cbd);
1059 dma_free_coherent(dev, size, cbdr->bd_base, cbdr->bd_dma_base);
1060 cbdr->bd_base = NULL;
1063 void enetc_setup_cbdr(struct enetc_hw *hw, struct enetc_cbdr *cbdr)
1069 enetc_wr(hw, ENETC_SICBDRBAR0, lower_32_bits(cbdr->bd_dma_base));
1070 enetc_wr(hw, ENETC_SICBDRBAR1, upper_32_bits(cbdr->bd_dma_base));
1071 enetc_wr(hw, ENETC_SICBDRLENR, ENETC_RTBLENR_LEN(cbdr->bd_count));
1079 cbdr->pir = hw->reg + ENETC_SICBDRPIR;
1080 cbdr->cir = hw->reg + ENETC_SICBDRCIR;