Lines Matching refs:ionic
136 struct device *dev = lif->ionic->dev; in ionic_request_irq()
154 struct ionic *ionic = lif->ionic; in ionic_intr_alloc() local
157 index = find_first_zero_bit(ionic->intrs, ionic->nintrs); in ionic_intr_alloc()
158 if (index == ionic->nintrs) { in ionic_intr_alloc()
160 __func__, index, ionic->nintrs); in ionic_intr_alloc()
164 set_bit(index, ionic->intrs); in ionic_intr_alloc()
165 ionic_intr_init(&ionic->idev, intr, index); in ionic_intr_alloc()
172 if (index != INTR_INDEX_NOT_ASSIGNED && index < lif->ionic->nintrs) in ionic_intr_free()
173 clear_bit(index, lif->ionic->intrs); in ionic_intr_free()
194 idev = &lif->ionic->idev; in ionic_qcq_enable()
195 dev = lif->ionic->dev; in ionic_qcq_enable()
230 idev = &lif->ionic->idev; in ionic_qcq_disable()
231 dev = lif->ionic->dev; in ionic_qcq_disable()
249 struct ionic_dev *idev = &lif->ionic->idev; in ionic_lif_qcq_deinit()
250 struct device *dev = lif->ionic->dev; in ionic_lif_qcq_deinit()
272 struct device *dev = lif->ionic->dev; in ionic_qcq_free()
293 struct device *dev = lif->ionic->dev; in ionic_qcqs_free()
341 struct ionic_dev *idev = &lif->ionic->idev; in ionic_qcq_alloc()
343 struct device *dev = lif->ionic->dev; in ionic_qcq_alloc()
402 err = ionic_bus_get_irq(lif->ionic, new->intr.index); in ionic_qcq_alloc()
474 struct device *dev = lif->ionic->dev; in ionic_qcqs_alloc()
489 if (lif->ionic->nnqs_per_lif) { in ionic_qcqs_alloc()
555 struct device *dev = lif->ionic->dev; in ionic_lif_txq_init()
602 struct device *dev = lif->ionic->dev; in ionic_lif_rxq_init()
674 dev_dbg(lif->ionic->dev, "notifyq event:\n"); in ionic_notifyq_service()
700 struct ionic_dev *idev = &lif->ionic->idev; in ionic_notifyq_clean()
858 struct ionic *ionic = lif->ionic; in ionic_lif_addr() local
868 nmfilters = le32_to_cpu(ionic->ident.lif.eth.max_mcast_filters); in ionic_lif_addr()
869 nufilters = le32_to_cpu(ionic->ident.lif.eth.max_ucast_filters); in ionic_lif_addr()
982 ident = &lif->ionic->ident; in ionic_set_rx_mode()
1067 struct device *dev = lif->ionic->dev; in ionic_set_nic_features()
1091 dev_info_once(lif->ionic->dev, "NIC is not supporting vlan offload, likely in SmartNIC mode\n"); in ionic_set_nic_features()
1354 tbl_sz = le16_to_cpu(lif->ionic->ident.lif.eth.rss_ind_tbl_sz); in ionic_lif_rss_config()
1378 tbl_sz = le16_to_cpu(lif->ionic->ident.lif.eth.rss_ind_tbl_sz); in ionic_lif_rss_init()
1389 tbl_sz = le16_to_cpu(lif->ionic->ident.lif.eth.rss_ind_tbl_sz); in ionic_lif_rss_deinit()
1455 coal = ionic_coal_usec_to_hw(lif->ionic, lif->rx_coalesce_usecs); in ionic_txrx_alloc()
1467 ionic_intr_coal_init(lif->ionic->idev.intr_ctrl, in ionic_txrx_alloc()
1585 dev_dbg(lif->ionic->dev, "%s: %s state=DOWN\n", in ionic_stop()
1589 dev_dbg(lif->ionic->dev, "%s: %s state=UP\n", __func__, lif->name); in ionic_stop()
1641 static struct ionic_lif *ionic_lif_alloc(struct ionic *ionic, unsigned int index) in ionic_lif_alloc() argument
1643 struct device *dev = ionic->dev; in ionic_lif_alloc()
1651 ionic->ntxqs_per_lif, ionic->ntxqs_per_lif); in ionic_lif_alloc()
1661 ionic->master_lif = lif; in ionic_lif_alloc()
1669 lif->neqs = ionic->neqs_per_lif; in ionic_lif_alloc()
1670 lif->nxqs = ionic->ntxqs_per_lif; in ionic_lif_alloc()
1672 lif->ionic = ionic; in ionic_lif_alloc()
1678 coal = ionic_coal_usec_to_hw(lif->ionic, IONIC_ITR_COAL_USEC_DEFAULT); in ionic_lif_alloc()
1679 lif->rx_coalesce_usecs = ionic_coal_hw_to_usec(lif->ionic, coal); in ionic_lif_alloc()
1705 tbl_sz = le16_to_cpu(lif->ionic->ident.lif.eth.rss_ind_tbl_sz); in ionic_lif_alloc()
1718 list_add_tail(&lif->list, &ionic->lifs); in ionic_lif_alloc()
1735 int ionic_lifs_alloc(struct ionic *ionic) in ionic_lifs_alloc() argument
1739 INIT_LIST_HEAD(&ionic->lifs); in ionic_lifs_alloc()
1742 set_bit(0, ionic->lifbits); in ionic_lifs_alloc()
1743 lif = ionic_lif_alloc(ionic, 0); in ionic_lifs_alloc()
1750 struct ionic_dev *idev = &lif->ionic->idev; in ionic_lif_reset()
1752 mutex_lock(&lif->ionic->dev_cmd_lock); in ionic_lif_reset()
1754 ionic_dev_cmd_wait(lif->ionic, DEVCMD_TIMEOUT); in ionic_lif_reset()
1755 mutex_unlock(&lif->ionic->dev_cmd_lock); in ionic_lif_reset()
1760 struct device *dev = lif->ionic->dev; in ionic_lif_free()
1778 ionic_bus_unmap_dbpage(lif->ionic, lif->kern_dbpage); in ionic_lif_free()
1789 void ionic_lifs_free(struct ionic *ionic) in ionic_lifs_free() argument
1794 list_for_each_safe(cur, tmp, &ionic->lifs) { in ionic_lifs_free()
1818 void ionic_lifs_deinit(struct ionic *ionic) in ionic_lifs_deinit() argument
1823 list_for_each_safe(cur, tmp, &ionic->lifs) { in ionic_lifs_deinit()
1831 struct device *dev = lif->ionic->dev; in ionic_lif_adminq_init()
1838 idev = &lif->ionic->idev; in ionic_lif_adminq_init()
1842 mutex_lock(&lif->ionic->dev_cmd_lock); in ionic_lif_adminq_init()
1844 err = ionic_dev_cmd_wait(lif->ionic, DEVCMD_TIMEOUT); in ionic_lif_adminq_init()
1846 mutex_unlock(&lif->ionic->dev_cmd_lock); in ionic_lif_adminq_init()
1885 struct device *dev = lif->ionic->dev; in ionic_lif_notifyq_init()
1971 struct ionic_dev *idev = &lif->ionic->idev; in ionic_lif_init()
1972 struct device *dev = lif->ionic->dev; in ionic_lif_init()
1979 mutex_lock(&lif->ionic->dev_cmd_lock); in ionic_lif_init()
1981 err = ionic_dev_cmd_wait(lif->ionic, DEVCMD_TIMEOUT); in ionic_lif_init()
1983 mutex_unlock(&lif->ionic->dev_cmd_lock); in ionic_lif_init()
1990 lif->dbid_count = le32_to_cpu(lif->ionic->ident.dev.ndbpgs_per_lif); in ionic_lif_init()
2007 lif->kern_dbpage = ionic_bus_map_dbpage(lif->ionic, dbpage_num); in ionic_lif_init()
2018 if (lif->ionic->nnqs_per_lif) { in ionic_lif_init()
2049 ionic_bus_unmap_dbpage(lif->ionic, lif->kern_dbpage); in ionic_lif_init()
2058 int ionic_lifs_init(struct ionic *ionic) in ionic_lifs_init() argument
2064 list_for_each_safe(cur, tmp, &ionic->lifs) { in ionic_lifs_init()
2107 struct ionic *ionic = container_of(nb, struct ionic, nb); in ionic_lif_notify() local
2110 if (!lif || lif->ionic != ionic) in ionic_lif_notify()
2122 int ionic_lifs_register(struct ionic *ionic) in ionic_lifs_register() argument
2126 INIT_WORK(&ionic->nb_work, ionic_lif_notify_work); in ionic_lifs_register()
2128 ionic->nb.notifier_call = ionic_lif_notify; in ionic_lifs_register()
2130 err = register_netdevice_notifier(&ionic->nb); in ionic_lifs_register()
2132 ionic->nb.notifier_call = NULL; in ionic_lifs_register()
2135 err = register_netdev(ionic->master_lif->netdev); in ionic_lifs_register()
2137 dev_err(ionic->dev, "Cannot register net device, aborting\n"); in ionic_lifs_register()
2141 ionic_link_status_check_request(ionic->master_lif); in ionic_lifs_register()
2142 ionic->master_lif->registered = true; in ionic_lifs_register()
2147 void ionic_lifs_unregister(struct ionic *ionic) in ionic_lifs_unregister() argument
2149 if (ionic->nb.notifier_call) { in ionic_lifs_unregister()
2150 unregister_netdevice_notifier(&ionic->nb); in ionic_lifs_unregister()
2151 cancel_work_sync(&ionic->nb_work); in ionic_lifs_unregister()
2152 ionic->nb.notifier_call = NULL; in ionic_lifs_unregister()
2159 cancel_work_sync(&ionic->master_lif->deferred.work); in ionic_lifs_unregister()
2160 cancel_work_sync(&ionic->master_lif->tx_timeout_work); in ionic_lifs_unregister()
2161 if (ionic->master_lif->netdev->reg_state == NETREG_REGISTERED) in ionic_lifs_unregister()
2162 unregister_netdev(ionic->master_lif->netdev); in ionic_lifs_unregister()
2165 int ionic_lif_identify(struct ionic *ionic, u8 lif_type, in ionic_lif_identify() argument
2168 struct ionic_dev *idev = &ionic->idev; in ionic_lif_identify()
2174 mutex_lock(&ionic->dev_cmd_lock); in ionic_lif_identify()
2176 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT); in ionic_lif_identify()
2178 mutex_unlock(&ionic->dev_cmd_lock); in ionic_lif_identify()
2182 dev_dbg(ionic->dev, "capabilities 0x%llx\n", in ionic_lif_identify()
2185 dev_dbg(ionic->dev, "eth.max_ucast_filters %d\n", in ionic_lif_identify()
2187 dev_dbg(ionic->dev, "eth.max_mcast_filters %d\n", in ionic_lif_identify()
2189 dev_dbg(ionic->dev, "eth.features 0x%llx\n", in ionic_lif_identify()
2191 dev_dbg(ionic->dev, "eth.queue_count[IONIC_QTYPE_ADMINQ] %d\n", in ionic_lif_identify()
2193 dev_dbg(ionic->dev, "eth.queue_count[IONIC_QTYPE_NOTIFYQ] %d\n", in ionic_lif_identify()
2195 dev_dbg(ionic->dev, "eth.queue_count[IONIC_QTYPE_RXQ] %d\n", in ionic_lif_identify()
2197 dev_dbg(ionic->dev, "eth.queue_count[IONIC_QTYPE_TXQ] %d\n", in ionic_lif_identify()
2199 dev_dbg(ionic->dev, "eth.config.name %s\n", lid->eth.config.name); in ionic_lif_identify()
2200 dev_dbg(ionic->dev, "eth.config.mac %pM\n", lid->eth.config.mac); in ionic_lif_identify()
2201 dev_dbg(ionic->dev, "eth.config.mtu %d\n", in ionic_lif_identify()
2207 int ionic_lifs_size(struct ionic *ionic) in ionic_lifs_size() argument
2209 struct ionic_identity *ident = &ionic->ident; in ionic_lifs_size()
2243 err = ionic_bus_alloc_irq_vectors(ionic, nintrs); in ionic_lifs_size()
2245 dev_err(ionic->dev, "Can't get intrs from OS: %d\n", err); in ionic_lifs_size()
2252 ionic_bus_free_irq_vectors(ionic); in ionic_lifs_size()
2256 ionic->nnqs_per_lif = nnqs_per_lif; in ionic_lifs_size()
2257 ionic->neqs_per_lif = neqs; in ionic_lifs_size()
2258 ionic->ntxqs_per_lif = nxqs; in ionic_lifs_size()
2259 ionic->nrxqs_per_lif = nxqs; in ionic_lifs_size()
2260 ionic->nintrs = nintrs; in ionic_lifs_size()
2262 ionic_debugfs_add_sizes(ionic); in ionic_lifs_size()
2279 dev_err(ionic->dev, "Can't get minimum %d intrs from OS\n", min_intrs); in ionic_lifs_size()