Lines Matching refs:rcb_common

205  *@rcb_common: rcb common device
207 void hns_rcb_common_init_commit_hw(struct rcb_common_cb *rcb_common)
210 dsaf_write_dev(rcb_common, RCB_COM_CFG_SYS_FSH_REG, 1);
289 *@rcb_common: rcb_common device
293 static void hns_rcb_set_port_desc_cnt(struct rcb_common_cb *rcb_common,
296 dsaf_write_dev(rcb_common, RCB_CFG_BD_NUM_REG + port_idx * 4,
301 struct rcb_common_cb *rcb_common, u32 port_idx, u32 timeout)
303 if (AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver)) {
304 dsaf_write_dev(rcb_common, RCB_CFG_OVERTIME_REG,
306 } else if (!HNS_DSAF_IS_DEBUG(rcb_common->dsaf_dev)) {
308 dsaf_write_dev(rcb_common,
312 dsaf_write_dev(rcb_common,
316 dsaf_write_dev(rcb_common,
320 dsaf_write_dev(rcb_common,
326 static int hns_rcb_common_get_port_num(struct rcb_common_cb *rcb_common)
328 if (!HNS_DSAF_IS_DEBUG(rcb_common->dsaf_dev))
336 struct rcb_common_cb *rcb_common, int en)
342 dsaf_write_dev(rcb_common, RCB_COM_INTSTS_ECC_ERR_REG, clr_vlue);
344 dsaf_write_dev(rcb_common, RCB_COM_SF_CFG_RING_STS, clr_vlue);
346 dsaf_write_dev(rcb_common, RCB_COM_SF_CFG_BD_RINT_STS, clr_vlue);
348 dsaf_write_dev(rcb_common, RCB_COM_RINT_TX_PKT_REG, clr_vlue);
349 dsaf_write_dev(rcb_common, RCB_COM_AXI_ERR_STS, clr_vlue);
352 dsaf_write_dev(rcb_common, RCB_COM_INTMASK_ECC_ERR_REG, msk_vlue);
354 dsaf_write_dev(rcb_common, RCB_COM_SF_CFG_INTMASK_RING, msk_vlue);
357 dsaf_write_dev(rcb_common, RCB_COM_SF_CFG_INTMASK_BD, msk_vlue | 2);
359 dsaf_write_dev(rcb_common, RCB_COM_INTMSK_TX_PKT_REG, msk_vlue);
360 dsaf_write_dev(rcb_common, RCB_COM_AXI_WR_ERR_INTMASK, msk_vlue);
365 *@rcb_common: rcb_common device
368 int hns_rcb_common_init_hw(struct rcb_common_cb *rcb_common)
372 int port_num = hns_rcb_common_get_port_num(rcb_common);
374 hns_rcb_comm_exc_irq_en(rcb_common, 0);
376 reg_val = dsaf_read_dev(rcb_common, RCB_COM_CFG_INIT_FLAG_REG);
378 dev_err(rcb_common->dsaf_dev->dev,
384 hns_rcb_set_port_desc_cnt(rcb_common, i, rcb_common->desc_num);
386 rcb_common, i, HNS_RCB_DEF_RX_COALESCED_FRAMES);
387 if (!AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver) &&
388 !HNS_DSAF_IS_DEBUG(rcb_common->dsaf_dev))
390 rcb_common, i, HNS_RCB_DEF_TX_COALESCED_FRAMES);
392 rcb_common, i, HNS_RCB_DEF_COALESCED_USECS);
395 dsaf_write_dev(rcb_common, RCB_COM_CFG_ENDIAN_REG,
398 if (AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver)) {
399 dsaf_write_dev(rcb_common, RCB_COM_CFG_FNA_REG, 0x0);
400 dsaf_write_dev(rcb_common, RCB_COM_CFG_FA_REG, 0x1);
402 dsaf_set_dev_bit(rcb_common, RCBV2_COM_CFG_USER_REG,
404 dsaf_set_dev_bit(rcb_common, RCBV2_COM_CFG_USER_REG,
406 dsaf_set_dev_bit(rcb_common, RCBV2_COM_CFG_TSO_MODE_REG,
440 struct rcb_common_cb *rcb_common;
446 is_ver1 = AE_IS_VER1(ring_pair_cb->rcb_common->dsaf_dev->dsaf_ver);
461 rcb_common = ring_pair_cb->rcb_common;
462 desc_num = rcb_common->dsaf_dev->desc_num;
488 struct rcb_common_cb *rcb_common, int ring_idx)
490 return ring_idx / (rcb_common->max_q_per_vf * rcb_common->max_vfn);
495 static int hns_rcb_get_base_irq_idx(struct rcb_common_cb *rcb_common)
497 bool is_ver1 = AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver);
499 if (!HNS_DSAF_IS_DEBUG(rcb_common->dsaf_dev))
509 *@rcb_common: rcb common device
511 int hns_rcb_get_cfg(struct rcb_common_cb *rcb_common)
515 u32 ring_num = rcb_common->ring_num;
516 int base_irq_idx = hns_rcb_get_base_irq_idx(rcb_common);
518 to_platform_device(rcb_common->dsaf_dev->dev);
519 bool is_ver1 = AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver);
522 ring_pair_cb = &rcb_common->ring_pair_cb[i];
523 ring_pair_cb->rcb_common = rcb_common;
524 ring_pair_cb->dev = rcb_common->dsaf_dev->dev;
527 RCB_COMM_BASE_TO_RING_BASE(rcb_common->io_base, i);
529 hns_rcb_get_port_in_comm(rcb_common, i);
541 RCB_COMM_BASE_TO_RING_BASE(rcb_common->phy_base, i);
550 *@rcb_common: rcb_common device
556 struct rcb_common_cb *rcb_common, u32 port_idx)
558 return dsaf_read_dev(rcb_common, RCB_CFG_PKTLINE_REG + port_idx * 4);
563 *@rcb_common: rcb_common device
569 struct rcb_common_cb *rcb_common, u32 port_idx)
574 return dsaf_read_dev(rcb_common, reg);
579 *@rcb_common: rcb_common device
585 struct rcb_common_cb *rcb_common, u32 port_idx)
587 if (AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver))
588 return dsaf_read_dev(rcb_common, RCB_CFG_OVERTIME_REG) /
591 return dsaf_read_dev(rcb_common,
597 *@rcb_common: rcb_common device
605 struct rcb_common_cb *rcb_common, u32 port_idx, u32 timeout)
607 u32 old_timeout = hns_rcb_get_coalesce_usecs(rcb_common, port_idx);
612 if (AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver)) {
613 if (!HNS_DSAF_IS_DEBUG(rcb_common->dsaf_dev)) {
614 dev_err(rcb_common->dsaf_dev->dev,
620 dev_err(rcb_common->dsaf_dev->dev,
624 hns_rcb_set_port_timeout(rcb_common, port_idx, timeout);
630 *@rcb_common: rcb_common device
638 struct rcb_common_cb *rcb_common, u32 port_idx, u32 coalesced_frames)
641 hns_rcb_get_tx_coalesced_frames(rcb_common, port_idx);
648 dev_err(rcb_common->dsaf_dev->dev,
654 dsaf_write_dev(rcb_common, reg, coalesced_frames);
660 *@rcb_common: rcb_common device
668 struct rcb_common_cb *rcb_common, u32 port_idx, u32 coalesced_frames)
671 hns_rcb_get_rx_coalesced_frames(rcb_common, port_idx);
676 if (coalesced_frames >= rcb_common->desc_num ||
679 dev_err(rcb_common->dsaf_dev->dev,
684 dsaf_write_dev(rcb_common, RCB_CFG_PKTLINE_REG + port_idx * 4,
760 static u8 __iomem *hns_rcb_common_get_vaddr(struct rcb_common_cb *rcb_common)
762 struct dsaf_device *dsaf_dev = rcb_common->dsaf_dev;
767 static phys_addr_t hns_rcb_common_get_paddr(struct rcb_common_cb *rcb_common)
769 struct dsaf_device *dsaf_dev = rcb_common->dsaf_dev;
777 struct rcb_common_cb *rcb_common;
783 rcb_common =
785 struct_size(rcb_common, ring_pair_cb, ring_num),
787 if (!rcb_common) {
791 rcb_common->comm_index = comm_index;
792 rcb_common->ring_num = ring_num;
793 rcb_common->dsaf_dev = dsaf_dev;
795 rcb_common->desc_num = dsaf_dev->desc_num;
798 rcb_common->max_vfn = max_vfn;
799 rcb_common->max_q_per_vf = max_q_per_vf;
801 rcb_common->io_base = hns_rcb_common_get_vaddr(rcb_common);
802 rcb_common->phy_base = hns_rcb_common_get_paddr(rcb_common);
804 dsaf_dev->rcb_common[comm_index] = rcb_common;
811 dsaf_dev->rcb_common[comm_index] = NULL;
818 struct dsaf_device *dsaf_dev = ring->rcb_common->dsaf_dev;
820 = dsaf_dev->ppe_common[ring->rcb_common->comm_index];