/openbmc/linux/drivers/net/ethernet/pensando/ionic/ |
H A D | ionic_lif.c | 38 static void ionic_link_status_check(struct ionic_lif *lif); 39 static void ionic_lif_handle_fw_down(struct ionic_lif *lif); 40 static void ionic_lif_handle_fw_up(struct ionic_lif *lif); 41 static void ionic_lif_set_netdev_info(struct ionic_lif *lif); 43 static void ionic_txrx_deinit(struct ionic_lif *lif); 44 static int ionic_txrx_init(struct ionic_lif *lif); 45 static int ionic_start_queues(struct ionic_lif *lif); 46 static void ionic_stop_queues(struct ionic_lif *lif); 47 static void ionic_lif_queue_identify(struct ionic_lif *lif); 55 struct ionic_lif *lif; in ionic_dim_work() local [all …]
|
H A D | ionic_ethtool.c | 14 static void ionic_get_stats_strings(struct ionic_lif *lif, u8 *buf) in ionic_get_stats_strings() argument 19 ionic_stats_groups[i].get_strings(lif, &buf); in ionic_get_stats_strings() 25 struct ionic_lif *lif = netdev_priv(netdev); in ionic_get_stats() local 28 if (test_bit(IONIC_LIF_F_FW_RESET, lif->state)) in ionic_get_stats() 33 ionic_stats_groups[i].get_values(lif, &buf); in ionic_get_stats() 36 static int ionic_get_stats_count(struct ionic_lif *lif) in ionic_get_stats_count() argument 41 num_stats += ionic_stats_groups[i].get_count(lif); in ionic_get_stats_count() 48 struct ionic_lif *lif = netdev_priv(netdev); in ionic_get_sset_count() local 53 count = ionic_get_stats_count(lif); in ionic_get_sset_count() 62 struct ionic_lif *lif = netdev_priv(netdev); in ionic_get_strings() local [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_phc.c | 67 static int ionic_lif_hwstamp_set_ts_config(struct ionic_lif *lif, in ionic_lif_hwstamp_set_ts_config() argument 70 struct ionic *ionic = lif->ionic; in ionic_lif_hwstamp_set_ts_config() 79 if (!lif->phc || !lif->phc->ptp) in ionic_lif_hwstamp_set_ts_config() 82 mutex_lock(&lif->phc->config_lock); in ionic_lif_hwstamp_set_ts_config() 94 memcpy(config, &lif->phc->ts_config, sizeof(*config)); in ionic_lif_hwstamp_set_ts_config() 95 memset(&lif->phc->ts_config, 0, sizeof(lif->phc->ts_config)); in ionic_lif_hwstamp_set_ts_config() 96 lif->phc->ts_config_tx_mode = 0; in ionic_lif_hwstamp_set_ts_config() 97 lif->phc->ts_config_rx_filt = 0; in ionic_lif_hwstamp_set_ts_config() 107 if ((ionic->ident.lif.eth.hwstamp_tx_modes & mask) != mask) { in ionic_lif_hwstamp_set_ts_config() 116 if ((ionic->ident.lif.eth.hwstamp_rx_filters & mask) != mask) { in ionic_lif_hwstamp_set_ts_config() [all …]
|
H A D | ionic_lif.h | 91 #define q_to_tx_stats(q) (&(q)->lif->txqstats[(q)->index]) 92 #define q_to_rx_stats(q) (&(q)->lif->rxqstats[(q)->index]) 250 struct ionic_lif *lif; member 263 static inline void ionic_init_queue_params(struct ionic_lif *lif, in ionic_init_queue_params() argument 266 qparam->nxqs = lif->nxqs; in ionic_init_queue_params() 267 qparam->ntxq_descs = lif->ntxq_descs; in ionic_init_queue_params() 268 qparam->nrxq_descs = lif->nrxq_descs; in ionic_init_queue_params() 269 qparam->rxq_features = lif->rxq_features; in ionic_init_queue_params() 270 qparam->intr_split = test_bit(IONIC_LIF_F_SPLIT_INTR, lif->state); in ionic_init_queue_params() 271 qparam->cmb_tx = test_bit(IONIC_LIF_F_CMB_TX_RINGS, lif->state); in ionic_init_queue_params() [all …]
|
H A D | ionic_stats.c | 159 #define MAX_Q(lif) ((lif)->netdev->real_num_tx_queues) argument 161 static void ionic_add_lif_txq_stats(struct ionic_lif *lif, int q_num, in ionic_add_lif_txq_stats() argument 164 struct ionic_tx_stats *txstats = &lif->txqstats[q_num]; in ionic_add_lif_txq_stats() 176 static void ionic_add_lif_rxq_stats(struct ionic_lif *lif, int q_num, in ionic_add_lif_rxq_stats() argument 179 struct ionic_rx_stats *rxstats = &lif->rxqstats[q_num]; in ionic_add_lif_rxq_stats() 190 static void ionic_get_lif_stats(struct ionic_lif *lif, in ionic_get_lif_stats() argument 198 for (q_num = 0; q_num < MAX_Q(lif); q_num++) { in ionic_get_lif_stats() 199 ionic_add_lif_txq_stats(lif, q_num, stats); in ionic_get_lif_stats() 200 ionic_add_lif_rxq_stats(lif, q_num, stats); in ionic_get_lif_stats() 203 if (lif->hwstamp_txq) in ionic_get_lif_stats() [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_bus_pci.c | 188 if (ionic->lif && in ionic_sriov_configure() 189 test_bit(IONIC_LIF_F_FW_RESET, ionic->lif->state)) in ionic_sriov_configure() 330 /* Allocate and init the LIF */ in ionic_probe() 333 dev_err(dev, "Cannot size LIF: %d, aborting\n", err); in ionic_probe() 339 dev_err(dev, "Cannot allocate LIF: %d, aborting\n", err); in ionic_probe() 343 err = ionic_lif_init(ionic->lif); in ionic_probe() 345 dev_err(dev, "Cannot init LIF: %d, aborting\n", err); in ionic_probe() 364 err = ionic_lif_register(ionic->lif); in ionic_probe() 366 dev_err(dev, "Cannot register LIF: %d, aborting\n", err); in ionic_probe() 379 ionic_lif_deinit(ionic->lif); in ionic_probe() [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 117 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_main.c | 213 static void ionic_adminq_flush(struct ionic_lif *lif) in ionic_adminq_flush() argument 219 spin_lock_irqsave(&lif->adminq_lock, irqflags); in ionic_adminq_flush() 220 if (!lif->adminqcq) { in ionic_adminq_flush() 221 spin_unlock_irqrestore(&lif->adminq_lock, irqflags); in ionic_adminq_flush() 225 q = &lif->adminqcq->q; in ionic_adminq_flush() 234 spin_unlock_irqrestore(&lif->adminq_lock, irqflags); in ionic_adminq_flush() 237 void ionic_adminq_netdev_err_print(struct ionic_lif *lif, u8 opcode, in ionic_adminq_netdev_err_print() argument 245 netdev_err(lif->netdev, "%s (%d) failed: %s (%d)\n", in ionic_adminq_netdev_err_print() 249 static int ionic_adminq_check_err(struct ionic_lif *lif, in ionic_adminq_check_err() argument 261 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_txrx.c | 31 netdev = q->lif->netdev; in ionic_txq_poke_doorbell() 46 ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type, in ionic_txq_poke_doorbell() 71 ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type, in ionic_rxq_poke_doorbell() 88 return netdev_get_tx_queue(q->lif->netdev, q->index); in q_to_ndq() 94 struct net_device *netdev = q->lif->netdev; in ionic_rx_page_alloc() 135 struct net_device *netdev = q->lif->netdev; in ionic_rx_page_free() 179 struct net_device *netdev = q->lif->netdev; in ionic_rx_frags() 240 struct net_device *netdev = q->lif->netdev; in ionic_rx_copybreak() 272 skb->protocol = eth_type_trans(skb, q->lif->netdev); in ionic_rx_copybreak() 282 struct net_device *netdev = q->lif->netdev; in ionic_rx_clean() [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_if.h | 31 /* LIF commands */ 115 * @lif_index: LIF index 273 * @ndbpgs_per_lif: Number of doorbell pages per LIF 316 * struct ionic_lif_identify_cmd - LIF identify command 318 * @type: LIF type (enum ionic_lif_type) 329 * struct ionic_lif_identify_comp - LIF identify command completion 340 * enum ionic_lif_capability - LIF capabilities 341 * @IONIC_LIF_CAP_ETH: LIF supports Ethernet 342 * @IONIC_LIF_CAP_RDMA: LIF supports RDMA 443 * enum ionic_lif_state - LIF state [all …]
|
H A D | ionic.h | 50 struct ionic_lif *lif; member 72 int ionic_adminq_post(struct ionic_lif *lif, struct ionic_admin_ctx *ctx); 73 int ionic_adminq_wait(struct ionic_lif *lif, struct ionic_admin_ctx *ctx, 75 int ionic_adminq_post_wait(struct ionic_lif *lif, struct ionic_admin_ctx *ctx); 76 int ionic_adminq_post_wait_nomsg(struct ionic_lif *lif, struct ionic_admin_ctx *ctx); 77 void ionic_adminq_netdev_err_print(struct ionic_lif *lif, u8 opcode,
|
H A D | ionic_dev.h | 82 /* LIF commands */ 230 struct ionic_lif *lif; member 281 struct ionic_lif *lif; member 356 int ionic_db_page_num(struct ionic_lif *lif, int pid); 358 int ionic_get_cmb(struct ionic_lif *lif, u32 *pgid, phys_addr_t *pgaddr, int order); 359 void ionic_put_cmb(struct ionic_lif *lif, u32 pgid, int order); 361 int ionic_cq_init(struct ionic_lif *lif, struct ionic_cq *cq, 372 int ionic_q_init(struct ionic_lif *lif, struct ionic_dev *idev,
|
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()
|
/openbmc/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 97 format = vsp1_entity_get_pad_format(&lif->entity, lif->entity.config, in lif_configure_stream() 125 vsp1_lif_write(lif, dlb, VI6_LIF_CSBTH, in lif_configure_stream() 129 vsp1_lif_write(lif, dlb, VI6_LIF_CTRL, in lif_configure_stream() 141 vsp1_lif_write(lif, dlb, VI6_LIF_LBA, in lif_configure_stream() 156 struct vsp1_lif *lif; in vsp1_lif_create() local 159 lif = devm_kzalloc(vsp1->dev, sizeof(*lif), GFP_KERNEL); in vsp1_lif_create() 160 if (lif == NULL) in vsp1_lif_create() [all …]
|
H A D | vsp1_drm.c | 260 __func__, pipe->lif->index, in vsp1_du_pipeline_setup_brx() 293 __func__, pipe->lif->index, BRX_NAME(brx)); in vsp1_du_pipeline_setup_brx() 307 owner_pipe->pipe.lif->index); in vsp1_du_pipeline_setup_brx() 322 __func__, pipe->lif->index, BRX_NAME(brx)); in vsp1_du_pipeline_setup_brx() 479 /* Setup the output side of the pipeline (WPF and LIF). */ 515 ret = v4l2_subdev_call(&pipe->lif->subdev, pad, set_fmt, NULL, in vsp1_du_pipeline_setup_output() 520 dev_dbg(vsp1->dev, "%s: set format %ux%u (%x) on LIF%u sink\n", in vsp1_du_pipeline_setup_output() 522 format.format.code, pipe->lif->index); in vsp1_du_pipeline_setup_output() 531 dev_dbg(vsp1->dev, "%s: format mismatch on LIF%u\n", __func__, in vsp1_du_pipeline_setup_output() 532 pipe->lif->index); in vsp1_du_pipeline_setup_output() [all …]
|
H A D | vsp1_pipe.h | 101 * @lif: LIF entity, if present 133 struct vsp1_entity *lif; member
|
H A D | vsp1_drv.c | 178 if (!vsp1->lif[i]) in vsp1_uapi_create_links() 183 &vsp1->lif[i]->entity.subdev.entity, in vsp1_uapi_create_links() 350 struct vsp1_lif *lif; in vsp1_create_entities() local 352 lif = vsp1_lif_create(vsp1, i); in vsp1_create_entities() 353 if (IS_ERR(lif)) { in vsp1_create_entities() 354 ret = PTR_ERR(lif); in vsp1_create_entities() 358 vsp1->lif[i] = lif; in vsp1_create_entities() 359 list_add_tail(&lif->entity.list_dev, &vsp1->entities); in vsp1_create_entities()
|
/openbmc/linux/include/linux/pds/ |
H A D | pds_adminq.h | 25 /* LIF commands */ 247 * union pds_core_lif_config - LIF configuration 248 * @state: LIF state (enum pds_core_lif_state) 250 * @name: LIF name 252 * @features: LIF features active (enum pds_core_hw_features) 269 * struct pds_core_lif_status - LIF status register 279 * struct pds_core_lif_info - LIF info structure 280 * @config: LIF configuration structure 281 * @status: LIF status structure 289 * struct pds_core_lif_identity - LIF identity information (type-specific) [all …]
|
/openbmc/linux/drivers/net/ethernet/cisco/enic/ |
H A D | vnic_resource.h | 57 u16 lif; /* loopback lif for mgmt frames */ member
|