| /linux/drivers/net/ethernet/pensando/ionic/ |
| H A D | ionic_lif.c | 40 static void ionic_link_status_check(struct ionic_lif *lif); 41 static void ionic_lif_handle_fw_down(struct ionic_lif *lif); 42 static void ionic_lif_handle_fw_up(struct ionic_lif *lif); 43 static void ionic_lif_set_netdev_info(struct ionic_lif *lif); 45 static void ionic_txrx_deinit(struct ionic_lif *lif); 46 static int ionic_txrx_init(struct ionic_lif *lif); 47 static int ionic_start_queues(struct ionic_lif *lif); 48 static void ionic_stop_queues(struct ionic_lif *lif); 49 static void ionic_lif_queue_identify(struct ionic_lif *lif); 51 static void ionic_xdp_rxqs_prog_update(struct ionic_lif *lif); [all …]
|
| H A D | ionic_rx_filter.c | 13 void ionic_rx_filter_free(struct ionic_lif *lif, struct ionic_rx_filter *f) in ionic_rx_filter_free() argument 15 struct device *dev = lif->ionic->dev; in ionic_rx_filter_free() 22 void ionic_rx_filter_replay(struct ionic_lif *lif) in ionic_rx_filter_replay() argument 38 head = &lif->rx_filters.by_id[i]; in ionic_rx_filter_replay() 42 dev_dbg(&lif->netdev->dev, "replay filter command:\n"); in ionic_rx_filter_replay() 46 err = ionic_adminq_post_wait(lif, &ctx); in ionic_rx_filter_replay() 50 netdev_info(lif->netdev, "Replay failed - %d: vlan %d\n", in ionic_rx_filter_replay() 55 netdev_info(lif->netdev, "Replay failed - %d: mac %pM\n", in ionic_rx_filter_replay() 59 netdev_info(lif->netdev, "Replay failed - %d: vlan %d mac %pM\n", in ionic_rx_filter_replay() 65 spin_lock_bh(&lif->rx_filters.lock); in ionic_rx_filter_replay() [all …]
|
| H A D | ionic_stats.c | 171 #define MAX_Q(lif) ((lif)->netdev->real_num_tx_queues) argument 173 static void ionic_add_lif_txq_stats(struct ionic_lif *lif, int q_num, in ionic_add_lif_txq_stats() argument 176 struct ionic_tx_stats *txstats = &lif->txqstats[q_num]; in ionic_add_lif_txq_stats() 189 static void ionic_add_lif_rxq_stats(struct ionic_lif *lif, int q_num, in ionic_add_lif_rxq_stats() argument 192 struct ionic_rx_stats *rxstats = &lif->rxqstats[q_num]; in ionic_add_lif_rxq_stats() 208 static void ionic_get_lif_stats(struct ionic_lif *lif, in ionic_get_lif_stats() argument 216 for (q_num = 0; q_num < MAX_Q(lif); q_num++) { in ionic_get_lif_stats() 217 ionic_add_lif_txq_stats(lif, q_num, stats); in ionic_get_lif_stats() 218 ionic_add_lif_rxq_stats(lif, q_num, stats); in ionic_get_lif_stats() 221 if (lif->hwstamp_txq) in ionic_get_lif_stats() [all …]
|
| H A D | ionic_aux.c | 20 int ionic_auxbus_register(struct ionic_lif *lif) in ionic_auxbus_register() argument 26 if (!(le64_to_cpu(lif->ionic->ident.lif.capabilities) & IONIC_LIF_CAP_RDMA)) in ionic_auxbus_register() 37 dev_err(lif->ionic->dev, "Failed to allocate aux id: %d\n", id); in ionic_auxbus_register() 44 aux_dev->dev.parent = &lif->ionic->pdev->dev; in ionic_auxbus_register() 46 ionic_adev->lif = lif; in ionic_auxbus_register() 49 dev_err(lif->ionic->dev, "Failed to initialize %s aux device: %d\n", in ionic_auxbus_register() 58 dev_err(lif->ionic->dev, "Failed to add %s aux device: %d\n", in ionic_auxbus_register() 64 lif->ionic_adev = ionic_adev; in ionic_auxbus_register() 68 void ionic_auxbus_unregister(struct ionic_lif *lif) in ionic_auxbus_unregister() argument 70 mutex_lock(&lif->adev_lock); in ionic_auxbus_unregister() [all …]
|
| H A D | ionic_bus_pci.c | 190 if (ionic->lif && in ionic_sriov_configure() 191 test_bit(IONIC_LIF_F_FW_RESET, ionic->lif->state)) in ionic_sriov_configure() 341 /* Allocate and init the LIF */ in ionic_probe() 344 dev_err(dev, "Cannot size LIF: %d, aborting\n", err); in ionic_probe() 350 dev_err(dev, "Cannot allocate LIF: %d, aborting\n", err); in ionic_probe() 354 err = ionic_lif_init(ionic->lif); in ionic_probe() 356 dev_err(dev, "Cannot init LIF: %d, aborting\n", err); in ionic_probe() 375 err = ionic_lif_register(ionic->lif); in ionic_probe() 377 dev_err(dev, "Cannot register LIF: %d, aborting\n", err); in ionic_probe() 381 ionic_auxbus_register(ionic->lif); in ionic_probe() [all …]
|
| H A D | ionic_main.c | 193 static void ionic_adminq_flush(struct ionic_lif *lif) in ionic_adminq_flush() argument 200 spin_lock_irqsave(&lif->adminq_lock, irqflags); in ionic_adminq_flush() 201 if (!lif->adminqcq) { in ionic_adminq_flush() 202 spin_unlock_irqrestore(&lif->adminq_lock, irqflags); in ionic_adminq_flush() 206 q = &lif->adminqcq->q; in ionic_adminq_flush() 215 spin_unlock_irqrestore(&lif->adminq_lock, irqflags); in ionic_adminq_flush() 218 void ionic_adminq_netdev_err_print(struct ionic_lif *lif, u8 opcode, in ionic_adminq_netdev_err_print() argument 226 netdev_err(lif->netdev, "%s (%d) failed: %s (%d)\n", in ionic_adminq_netdev_err_print() 230 static int ionic_adminq_check_err(struct ionic_lif *lif, in ionic_adminq_check_err() argument 242 ionic_adminq_netdev_err_print(lif, ctx->cmd.cmd.opcode, in ionic_adminq_check_err() [all …]
|
| H A D | ionic_dev.c | 17 struct ionic_lif *lif = ionic->lif; in ionic_watchdog_cb() local 24 if (!lif) in ionic_watchdog_cb() 29 __func__, hb, netif_running(lif->netdev), in ionic_watchdog_cb() 30 test_bit(IONIC_LIF_F_UP, lif->state)); in ionic_watchdog_cb() 33 !test_bit(IONIC_LIF_F_FW_RESET, lif->state)) in ionic_watchdog_cb() 34 ionic_link_status_check_request(lif, CAN_NOT_SLEEP); in ionic_watchdog_cb() 36 if (test_bit(IONIC_LIF_F_FILTER_SYNC_NEEDED, lif->state) && in ionic_watchdog_cb() 37 !test_bit(IONIC_LIF_F_FW_RESET, lif->state)) { in ionic_watchdog_cb() 40 netdev_err(lif->netdev, "rxmode change dropped\n"); in ionic_watchdog_cb() 45 netdev_dbg(lif->netdev, "deferred: rx_mode\n"); in ionic_watchdog_cb() [all …]
|
| H A D | ionic_debugfs.c | 50 seq_printf(seq, "max_ucast_filters: %d\n", ident->lif.eth.max_ucast_filters); in identity_show() 51 seq_printf(seq, "max_mcast_filters: %d\n", ident->lif.eth.max_mcast_filters); in identity_show() 70 (u32 *)&ionic->ident.lif.eth.config.queue_count[IONIC_QTYPE_TXQ]); in ionic_debugfs_add_sizes() 72 (u32 *)&ionic->ident.lif.eth.config.queue_count[IONIC_QTYPE_RXQ]); in ionic_debugfs_add_sizes() 113 void ionic_debugfs_add_qcq(struct ionic_lif *lif, struct ionic_qcq *qcq) in ionic_debugfs_add_qcq() argument 116 struct ionic_dev *idev = &lif->ionic->idev; in ionic_debugfs_add_qcq() 121 struct device *dev = lif->ionic->dev; in ionic_debugfs_add_qcq() 125 qcq_dentry = debugfs_create_dir(q->name, lif->dentry); in ionic_debugfs_add_qcq() 209 (u64 *)&lif->info->status.eid); in ionic_debugfs_add_qcq() 211 (u16 *)&lif->info->status.link_status); in ionic_debugfs_add_qcq() [all …]
|
| H A D | ionic_rx_filter.h | 34 void ionic_rx_filter_free(struct ionic_lif *lif, struct ionic_rx_filter *f); 35 void ionic_rx_filter_replay(struct ionic_lif *lif); 36 int ionic_rx_filters_init(struct ionic_lif *lif); 37 void ionic_rx_filters_deinit(struct ionic_lif *lif); 38 int ionic_rx_filter_save(struct ionic_lif *lif, u32 flow_id, u16 rxq_index, 41 struct ionic_rx_filter *ionic_rx_filter_by_vlan(struct ionic_lif *lif, u16 vid); 42 struct ionic_rx_filter *ionic_rx_filter_by_addr(struct ionic_lif *lif, const u8 *addr); 43 struct ionic_rx_filter *ionic_rx_filter_rxsteer(struct ionic_lif *lif); 44 void ionic_rx_filter_sync(struct ionic_lif *lif); 45 int ionic_lif_list_addr(struct ionic_lif *lif, const u8 *addr, bool mode); [all …]
|
| H A D | ionic_debugfs.h | 17 void ionic_debugfs_add_lif(struct ionic_lif *lif); 18 void ionic_debugfs_add_qcq(struct ionic_lif *lif, struct ionic_qcq *qcq); 19 void ionic_debugfs_del_lif(struct ionic_lif *lif); 28 static inline void ionic_debugfs_add_lif(struct ionic_lif *lif) { } in ionic_debugfs_add_lif() argument 29 static inline void ionic_debugfs_add_qcq(struct ionic_lif *lif, struct ionic_qcq *qcq) { } in ionic_debugfs_add_qcq() argument 30 static inline void ionic_debugfs_del_lif(struct ionic_lif *lif) { } in ionic_debugfs_del_lif() argument
|
| H A D | ionic_txrx.c | 50 netdev = q->lif->netdev; in ionic_txq_poke_doorbell() 65 ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type, in ionic_txq_poke_doorbell() 90 ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type, in ionic_rxq_poke_doorbell() 400 struct ionic_lif *lif = netdev_priv(netdev); in ionic_xdp_xmit() local 408 if (unlikely(!test_bit(IONIC_LIF_F_UP, lif->state))) in ionic_xdp_xmit() 420 qi = cpu ? (cpu - 1) % lif->nxqs : cpu; in ionic_xdp_xmit() 422 txq = &lif->txqcqs[qi]->q; in ionic_xdp_xmit() 447 ionic_dbell_ring(lif->kern_dbpage, txq->hw_type, in ionic_xdp_xmit() 612 struct net_device *netdev = q->lif->netdev; in ionic_rx_clean() 646 use_copybreak = len <= q->lif->rx_copybreak; in ionic_rx_clean() [all …]
|
| H A D | ionic_stats.h | 40 void (*get_strings)(struct ionic_lif *lif, u8 **buf); 41 void (*get_values)(struct ionic_lif *lif, u64 **buf); 42 u64 (*get_count)(struct ionic_lif *lif);
|
| H A D | ionic_fw.c | 94 int ionic_firmware_update(struct ionic_lif *lif, const struct firmware *fw, in ionic_firmware_update() argument 97 struct ionic_dev *idev = &lif->ionic->idev; in ionic_firmware_update() 98 struct net_device *netdev = lif->netdev; in ionic_firmware_update() 99 struct ionic *ionic = lif->ionic; in ionic_firmware_update()
|
| H A D | ionic_devlink.c | 18 return ionic_firmware_update(ionic->lif, params->fw, extack); in ionic_dl_flash_update() 91 SET_NETDEV_DEVLINK_PORT(ionic->lif->netdev, &ionic->dl_port); in ionic_devlink_register()
|
| H A D | ionic_devlink.h | 9 int ionic_firmware_update(struct ionic_lif *lif, const struct firmware *fw,
|
| /linux/drivers/media/platform/renesas/vsp1/ |
| H A D | vsp1_lif.c | 26 static inline void vsp1_lif_write(struct vsp1_lif *lif, in vsp1_lif_write() argument 29 vsp1_dl_body_write(dlb, reg + lif->entity.index * VI6_LIF_OFFSET, in vsp1_lif_write() 92 struct vsp1_lif *lif = to_lif(&entity->subdev); in lif_configure_stream() local 124 vsp1_lif_write(lif, dlb, VI6_LIF_CSBTH, in lif_configure_stream() 128 vsp1_lif_write(lif, dlb, VI6_LIF_CTRL, in lif_configure_stream() 140 vsp1_lif_write(lif, dlb, VI6_LIF_LBA, in lif_configure_stream() 155 struct vsp1_lif *lif; in vsp1_lif_create() local 158 lif = devm_kzalloc(vsp1->dev, sizeof(*lif), GFP_KERNEL); in vsp1_lif_create() 159 if (lif == NULL) in vsp1_lif_create() 162 lif->entity.ops = &lif_entity_ops; in vsp1_lif_create() [all …]
|
| /linux/drivers/infiniband/hw/ionic/ |
| H A D | ionic_ibdev.c | 38 attr->hw_ver = ionic_lif_asic_rev(dev->lif_cfg.lif); in ionic_query_device() 169 ionic_lif_fw_version(dev->lif_cfg.lif, str, IB_FW_VERSION_NAME_MAX); in ionic_get_dev_fw_str() 178 return sysfs_emit(buf, "0x%x\n", ionic_lif_asic_rev(dev->lif_cfg.lif)); in hw_rev_show() 315 ionic_fill_lif_cfg(ionic_adev->lif, &dev->lif_cfg); in ionic_create_ibdev() 342 ndev = ionic_lif_netdev(ionic_adev->lif); in ionic_create_ibdev()
|
| H A D | ionic_admin.c | 312 /* Reset RDMA lif on a timeout */ in ionic_admin_dwork() 388 * we timed out. Initiate RDMA LIF reset and indicate in ionic_admin_busy_wait() 451 rc = ionic_adminq_post_wait(dev->lif_cfg.lif, admin); in ionic_rdma_devcmd() 723 * nor are any completed locally. After resetting the lif, it will be in ionic_kill_rdma_admin() 728 * If there was a failure resetting the lif using this strategy, in ionic_kill_rdma_admin() 742 /* pause rdma admin queues to reset lif */ in ionic_kill_rdma_admin() 752 ionic_request_rdma_reset(dev->lif_cfg.lif); in ionic_kill_rdma_admin() 1003 rc = ionic_intr_alloc(dev->lif_cfg.lif, &intr_obj); in ionic_create_eq() 1043 ionic_intr_free(dev->lif_cfg.lif, eq->intr); in ionic_create_eq() 1060 ionic_intr_free(dev->lif_cfg.lif, eq->intr); in ionic_destroy_eq()
|
| H A D | ionic_controlpath.c | 1738 rc = ionic_get_cmb(dev->lif_cfg.lif, &qp->sq_cmb_pgid, in ionic_qp_sq_init_cmb() 1754 ionic_put_cmb(dev->lif_cfg.lif, qp->sq_cmb_pgid, qp->sq_cmb_order); in ionic_qp_sq_init_cmb() 1775 ionic_put_cmb(dev->lif_cfg.lif, qp->sq_cmb_pgid, qp->sq_cmb_order); in ionic_qp_sq_destroy_cmb() 1964 rc = ionic_get_cmb(dev->lif_cfg.lif, &qp->rq_cmb_pgid, in ionic_qp_rq_init_cmb() 1980 ionic_put_cmb(dev->lif_cfg.lif, qp->rq_cmb_pgid, qp->rq_cmb_order); in ionic_qp_rq_init_cmb() 2001 ionic_put_cmb(dev->lif_cfg.lif, qp->rq_cmb_pgid, qp->rq_cmb_order); in ionic_qp_rq_destroy_cmb()
|
| /linux/drivers/net/ethernet/cisco/enic/ |
| H A D | vnic_resource.h | 57 u16 lif; /* loopback lif for mgmt frames */ member
|
| /linux/drivers/scsi/fnic/ |
| H A D | vnic_devcmd.h | 331 * Enable the LIF migration from MQ to VF and vice versa. MQ and VF 335 * be attached to the LIF.
|
| H A D | fcpio.h | 393 * used by the host to notify the firmware of the lif's s_id 429 * used by the host to notify the firmware of the lif's s_id
|
| H A D | fnic_res.c | 432 /* Clear LIF stats */ in fnic_alloc_vnic_resources()
|
| /linux/drivers/scsi/snic/ |
| H A D | snic_res.c | 255 /* Clear LIF stats */ in snic_alloc_vnic_res()
|
| /linux/include/linux/pds/ |
| H A D | pds_core_if.h | 112 * @ndbpgs_per_lif: Number of doorbell pages per LIF
|