Lines Matching refs:adapter

300 	struct adapter *adap = pi->adapter;  in dcb_tx_queue_prio_enable()
334 void t4_os_link_changed(struct adapter *adapter, int port_id, int link_stat) in t4_os_link_changed() argument
336 struct net_device *dev = adapter->port[port_id]; in t4_os_link_changed()
354 void t4_os_portmod_changed(const struct adapter *adap, int port_id) in t4_os_portmod_changed()
385 unsigned int mb = pi->adapter->fn; in set_addr_filters()
391 ret = t4_alloc_mac_filt(pi->adapter, mb, pi->viid, free, in set_addr_filters()
405 ret = t4_alloc_mac_filt(pi->adapter, mb, pi->viid, free, in set_addr_filters()
415 return t4_set_addr_hash(pi->adapter, mb, pi->viid, uhash != 0, in set_addr_filters()
442 ret = t4_set_rxmode(pi->adapter, pi->adapter->fn, pi->viid, mtu, in set_rxmode()
459 unsigned int mb = pi->adapter->fn; in link_start()
465 ret = t4_set_rxmode(pi->adapter, mb, pi->viid, dev->mtu, -1, -1, -1, in link_start()
468 ret = t4_change_mac(pi->adapter, mb, pi->viid, in link_start()
477 ret = t4_link_start(pi->adapter, mb, pi->tx_chan, in link_start()
481 ret = t4_enable_vi_params(pi->adapter, mb, pi->viid, true, in link_start()
507 static void dcb_rpl(struct adapter *adap, const struct fw_port_cmd *pcmd) in dcb_rpl()
529 static void clear_filter(struct adapter *adap, struct filter_entry *f) in clear_filter()
549 static void filter_rpl(struct adapter *adap, const struct cpl_set_tcb_rpl *rpl) in filter_rpl()
704 static void disable_msi(struct adapter *adapter) in disable_msi() argument
706 if (adapter->flags & USING_MSIX) { in disable_msi()
707 pci_disable_msix(adapter->pdev); in disable_msi()
708 adapter->flags &= ~USING_MSIX; in disable_msi()
709 } else if (adapter->flags & USING_MSI) { in disable_msi()
710 pci_disable_msi(adapter->pdev); in disable_msi()
711 adapter->flags &= ~USING_MSI; in disable_msi()
720 struct adapter *adap = cookie; in t4_nondata_intr()
735 static void name_msix_vecs(struct adapter *adap) in name_msix_vecs()
770 static int request_msix_queue_irqs(struct adapter *adap) in request_msix_queue_irqs()
836 static void free_msix_queue_irqs(struct adapter *adap) in free_msix_queue_irqs()
864 const struct sge_eth_rxq *q = &pi->adapter->sge.ethrxq[pi->first_qset]; in cxgb4_write_rss()
874 err = t4_config_rss_range(pi->adapter, pi->adapter->fn, pi->viid, 0, in cxgb4_write_rss()
886 static int setup_rss(struct adapter *adap) in setup_rss()
912 static void quiesce_rx(struct adapter *adap) in quiesce_rx()
931 static void disable_interrupts(struct adapter *adap) in disable_interrupts()
948 static void enable_rx(struct adapter *adap) in enable_rx()
968 static int alloc_ofld_rxqs(struct adapter *adap, struct sge_ofld_rxq *q, in alloc_ofld_rxqs()
998 static int setup_sge_queues(struct adapter *adap) in setup_sge_queues()
1136 static int set_filter_wr(struct adapter *adapter, int fidx) in set_filter_wr() argument
1138 struct filter_entry *f = &adapter->tids.ftid_tab[fidx]; in set_filter_wr()
1153 f->l2t = t4_l2t_alloc_switching(adapter->l2t); in set_filter_wr()
1158 if (t4_l2t_set_switching(adapter, f->l2t, f->fs.vlan, in set_filter_wr()
1167 ftid = adapter->tids.ftid_base + fidx; in set_filter_wr()
1216 FW_FILTER_WR_RX_RPL_IQ_V(adapter->sge.fw_evtq.abs_id)); in set_filter_wr()
1250 t4_ofld_send(adapter, skb); in set_filter_wr()
1256 static int del_filter_wr(struct adapter *adapter, int fidx) in del_filter_wr() argument
1258 struct filter_entry *f = &adapter->tids.ftid_tab[fidx]; in del_filter_wr()
1264 ftid = adapter->tids.ftid_base + fidx; in del_filter_wr()
1271 t4_mk_filtdelwr(ftid, fwr, adapter->sge.fw_evtq.abs_id); in del_filter_wr()
1277 t4_mgmt_tx(adapter, skb); in del_filter_wr()
1327 static inline int is_offload(const struct adapter *adap) in is_offload()
1376 struct adapter *adap = q->adap; in cxgb4_set_rspq_intr_params()
1414 err = t4_set_rxmode(pi->adapter, pi->adapter->fn, pi->viid, -1, in cxgb_set_features()
1422 static int setup_debugfs(struct adapter *adap) in setup_debugfs()
1585 struct adapter *adap = container_of(t, struct adapter, tids); in cxgb4_queue_tid_release()
1604 struct adapter *adap; in process_tid_release_list()
1606 adap = container_of(work, struct adapter, tid_release_task); in process_tid_release_list()
1638 struct adapter *adap = container_of(t, struct adapter, tids); in cxgb4_remove_tid()
1661 struct adapter *adap = container_of(t, struct adapter, tids); in tid_init()
1720 struct adapter *adap; in cxgb4_create_server()
1761 struct adapter *adap; in cxgb4_create_server6()
1792 struct adapter *adap; in cxgb4_remove_server()
1920 struct adapter *adap = netdev2adap(dev); in cxgb4_dbfifo_count()
1963 struct adapter *adap = pci_get_drvdata(pdev); in cxgb4_get_tcp_stats()
1974 struct adapter *adap = netdev2adap(dev); in cxgb4_iscsi_init()
1985 struct adapter *adap = netdev2adap(dev); in cxgb4_flush_eq_cache()
1994 static int read_eq_indices(struct adapter *adap, u16 qid, u16 *pidx, u16 *cidx) in read_eq_indices()
2015 struct adapter *adap = netdev2adap(dev); in cxgb4_sync_txq_pidx()
2047 struct adapter *adap; in cxgb4_disable_db_coalescing()
2057 struct adapter *adap; in cxgb4_enable_db_coalescing()
2066 struct adapter *adap; in cxgb4_read_tpte()
2135 struct adapter *adap; in cxgb4_read_sge_timestamp()
2194 static void drain_db_fifo(struct adapter *adap, int usecs) in drain_db_fifo()
2225 static void enable_txq_db(struct adapter *adap, struct sge_txq *q) in enable_txq_db()
2241 static void disable_dbs(struct adapter *adap) in disable_dbs()
2253 static void enable_dbs(struct adapter *adap) in enable_dbs()
2265 static void notify_rdma_uld(struct adapter *adap, enum cxgb4_control cmd) in notify_rdma_uld()
2274 struct adapter *adap; in process_db_full()
2276 adap = container_of(work, struct adapter, db_full_task); in process_db_full()
2286 static void sync_txq_pidx(struct adapter *adap, struct sge_txq *q) in sync_txq_pidx()
2319 static void recover_all_queues(struct adapter *adap) in recover_all_queues()
2333 struct adapter *adap; in process_db_drop()
2335 adap = container_of(work, struct adapter, db_drop_task); in process_db_drop()
2369 void t4_db_full(struct adapter *adap) in t4_db_full()
2380 void t4_db_dropped(struct adapter *adap) in t4_db_dropped()
2389 static void uld_attach(struct adapter *adap, unsigned int uld) in uld_attach()
2455 static void attach_ulds(struct adapter *adap) in attach_ulds()
2471 static void detach_ulds(struct adapter *adap) in detach_ulds()
2494 static void notify_ulds(struct adapter *adap, enum cxgb4_state new_state) in notify_ulds()
2517 struct adapter *adap; in cxgb4_register_uld()
2542 struct adapter *adap; in cxgb4_unregister_uld()
2563 struct adapter *adap; in cxgb4_inet6addr_handler()
2610 static void update_clip(const struct adapter *adap) in update_clip()
2642 static int cxgb_up(struct adapter *adap) in cxgb_up()
2689 static void cxgb_down(struct adapter *adapter) in cxgb_down() argument
2691 cancel_work_sync(&adapter->tid_release_task); in cxgb_down()
2692 cancel_work_sync(&adapter->db_full_task); in cxgb_down()
2693 cancel_work_sync(&adapter->db_drop_task); in cxgb_down()
2694 adapter->tid_release_task_busy = false; in cxgb_down()
2695 adapter->tid_release_head = NULL; in cxgb_down()
2697 t4_sge_stop(adapter); in cxgb_down()
2698 t4_free_sge_resources(adapter); in cxgb_down()
2699 adapter->flags &= ~FULL_INIT_DONE; in cxgb_down()
2709 struct adapter *adapter = pi->adapter; in cxgb_open() local
2713 if (!(adapter->flags & FULL_INIT_DONE)) { in cxgb_open()
2714 err = cxgb_up(adapter); in cxgb_open()
2728 struct adapter *adapter = pi->adapter; in cxgb_close() local
2732 return t4_enable_vi(adapter, adapter->fn, pi->viid, false, false); in cxgb_close()
2751 static int delete_filter(struct adapter *adapter, unsigned int fidx) in delete_filter() argument
2756 if (fidx >= adapter->tids.nftids + adapter->tids.nsftids) in delete_filter()
2759 f = &adapter->tids.ftid_tab[fidx]; in delete_filter()
2764 return del_filter_wr(adapter, fidx); in delete_filter()
2775 struct adapter *adap; in cxgb4_create_server_filter()
2840 struct adapter *adap; in cxgb4_remove_server_filter()
2865 struct adapter *adapter = p->adapter; in cxgb_get_stats() local
2871 spin_lock(&adapter->stats_lock); in cxgb_get_stats()
2873 spin_unlock(&adapter->stats_lock); in cxgb_get_stats()
2876 t4_get_port_stats(adapter, p->tx_chan, &stats); in cxgb_get_stats()
2877 spin_unlock(&adapter->stats_lock); in cxgb_get_stats()
2935 mbox = pi->adapter->fn; in cxgb_ioctl()
2937 ret = t4_mdio_rd(pi->adapter, mbox, prtad, devad, in cxgb_ioctl()
2940 ret = t4_mdio_wr(pi->adapter, mbox, prtad, devad, in cxgb_ioctl()
2962 ret = t4_set_rxmode(pi->adapter, pi->adapter->fn, pi->viid, new_mtu, -1, in cxgb_change_mtu()
2978 ret = t4_change_mac(pi->adapter, pi->adapter->fn, pi->viid, in cxgb_set_mac_addr()
2992 struct adapter *adap = pi->adapter; in cxgb_netpoll()
3030 void t4_fatal_err(struct adapter *adap) in t4_fatal_err()
3042 static u32 t4_read_pcie_cfg4(struct adapter *adap, int reg) in t4_read_pcie_cfg4()
3076 static void setup_memwin(struct adapter *adap) in setup_memwin()
3119 static void setup_memwin_rdma(struct adapter *adap) in setup_memwin_rdma()
3140 static int adap_init1(struct adapter *adap, struct fw_caps_config_cmd *c) in adap_init1()
3245 static int adap_init0_tweaks(struct adapter *adapter) in adap_init0_tweaks() argument
3252 t4_fixup_host_params(adapter, PAGE_SIZE, L1_CACHE_BYTES); in adap_init0_tweaks()
3258 dev_err(&adapter->pdev->dev, in adap_init0_tweaks()
3263 t4_set_reg_field(adapter, SGE_CONTROL_A, in adap_init0_tweaks()
3271 t4_tp_wr_bits_indirect(adapter, TP_INGRESS_CONFIG_A, in adap_init0_tweaks()
3280 static int adap_init0_config(struct adapter *adapter, int reset) in adap_init0_config() argument
3295 ret = t4_fw_reset(adapter, adapter->mbox, in adap_init0_config()
3306 switch (CHELSIO_CHIP_VERSION(adapter->params.chip)) { in adap_init0_config()
3314 dev_err(adapter->pdev_dev, "Device %d is not supported\n", in adap_init0_config()
3315 adapter->pdev->device); in adap_init0_config()
3320 ret = request_firmware(&cf, fw_config_file, adapter->pdev_dev); in adap_init0_config()
3324 maddr = t4_flash_cfg_addr(adapter); in adap_init0_config()
3337 ret = t4_query_params(adapter, adapter->mbox, in adap_init0_config()
3338 adapter->fn, 0, 1, params, val); in adap_init0_config()
3357 spin_lock(&adapter->win0_lock); in adap_init0_config()
3358 ret = t4_memory_rw(adapter, 0, mtype, maddr, in adap_init0_config()
3370 ret = t4_memory_rw(adapter, 0, mtype, in adap_init0_config()
3375 spin_unlock(&adapter->win0_lock); in adap_init0_config()
3400 ret = t4_wr_mbox(adapter, adapter->mbox, &caps_cmd, sizeof(caps_cmd), in adap_init0_config()
3416 ret = t4_wr_mbox(adapter, adapter->mbox, &caps_cmd, in adap_init0_config()
3429 dev_warn(adapter->pdev_dev, "Configuration File checksum "\ in adap_init0_config()
3441 ret = t4_wr_mbox(adapter, adapter->mbox, &caps_cmd, sizeof(caps_cmd), in adap_init0_config()
3450 ret = adap_init0_tweaks(adapter); in adap_init0_config()
3458 ret = t4_fw_initialize(adapter, adapter->mbox); in adap_init0_config()
3465 dev_info(adapter->pdev_dev, "Successfully configured using Firmware "\ in adap_init0_config()
3477 dev_warn(adapter->pdev_dev, "\"%s\" configuration file error %d\n", in adap_init0_config()
3526 static int adap_init0(struct adapter *adap) in adap_init0()
3987 struct adapter *adap = pci_get_drvdata(pdev); in eeh_err_detected()
4019 struct adapter *adap = pci_get_drvdata(pdev); in eeh_slot_reset()
4071 struct adapter *adap = pci_get_drvdata(pdev); in eeh_resume()
4101 static inline void init_rspq(struct adapter *adap, struct sge_rspq *q, in init_rspq()
4116 static void cfg_queues(struct adapter *adap) in cfg_queues()
4246 static void reduce_ethqs(struct adapter *adap, int n) in reduce_ethqs()
4273 static int enable_msix(struct adapter *adap) in enable_msix()
4341 static int init_rss(struct adapter *adap) in init_rss()
4363 const struct adapter *adap = pi->adapter; in print_port_info()
4406 static void free_some_resources(struct adapter *adapter) in free_some_resources() argument
4410 t4_free_mem(adapter->l2t); in free_some_resources()
4411 t4_free_mem(adapter->tids.tid_tab); in free_some_resources()
4412 kfree(adapter->sge.egr_map); in free_some_resources()
4413 kfree(adapter->sge.ingr_map); in free_some_resources()
4414 kfree(adapter->sge.starving_fl); in free_some_resources()
4415 kfree(adapter->sge.txq_maperr); in free_some_resources()
4416 disable_msi(adapter); in free_some_resources()
4418 for_each_port(adapter, i) in free_some_resources()
4419 if (adapter->port[i]) { in free_some_resources()
4420 kfree(adap2pinfo(adapter, i)->rss); in free_some_resources()
4421 free_netdev(adapter->port[i]); in free_some_resources()
4423 if (adapter->flags & FW_OK) in free_some_resources()
4424 t4_fw_bye(adapter, adapter->fn); in free_some_resources()
4437 struct adapter *adapter = NULL; in init_one() local
4496 adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); in init_one()
4497 if (!adapter) { in init_one()
4502 adapter->workq = create_singlethread_workqueue("cxgb4"); in init_one()
4503 if (!adapter->workq) { in init_one()
4509 adapter->flags |= DEV_ENABLED; in init_one()
4511 adapter->regs = regs; in init_one()
4512 adapter->pdev = pdev; in init_one()
4513 adapter->pdev_dev = &pdev->dev; in init_one()
4514 adapter->mbox = func; in init_one()
4515 adapter->fn = func; in init_one()
4516 adapter->msg_enable = dflt_msg_enable; in init_one()
4517 memset(adapter->chan_map, 0xff, sizeof(adapter->chan_map)); in init_one()
4519 spin_lock_init(&adapter->stats_lock); in init_one()
4520 spin_lock_init(&adapter->tid_release_lock); in init_one()
4521 spin_lock_init(&adapter->win0_lock); in init_one()
4523 INIT_WORK(&adapter->tid_release_task, process_tid_release_list); in init_one()
4524 INIT_WORK(&adapter->db_full_task, process_db_full); in init_one()
4525 INIT_WORK(&adapter->db_drop_task, process_db_drop); in init_one()
4527 err = t4_prep_adapter(adapter); in init_one()
4532 if (!is_t4(adapter->params.chip)) { in init_one()
4535 adapter->fn); in init_one()
4536 qpp = 1 << QUEUESPERPAGEPF0_G(t4_read_reg(adapter, in init_one()
4551 adapter->bar2 = ioremap_wc(pci_resource_start(pdev, 2), in init_one()
4553 if (!adapter->bar2) { in init_one()
4560 setup_memwin(adapter); in init_one()
4561 err = adap_init0(adapter); in init_one()
4562 setup_memwin_rdma(adapter); in init_one()
4566 for_each_port(adapter, i) { in init_one()
4578 adapter->port[i] = netdev; in init_one()
4580 pi->adapter = adapter; in init_one()
4604 pci_set_drvdata(pdev, adapter); in init_one()
4606 if (adapter->flags & FW_OK) { in init_one()
4607 err = t4_port_init(adapter, func, func, 0); in init_one()
4616 cfg_queues(adapter); in init_one()
4618 adapter->l2t = t4_init_l2t(); in init_one()
4619 if (!adapter->l2t) { in init_one()
4622 adapter->params.offload = 0; in init_one()
4626 adapter->clipt = t4_init_clip_tbl(adapter->clipt_start, in init_one()
4627 adapter->clipt_end); in init_one()
4628 if (!adapter->clipt) { in init_one()
4634 adapter->params.offload = 0; in init_one()
4637 if (is_offload(adapter) && tid_init(&adapter->tids) < 0) { in init_one()
4640 adapter->params.offload = 0; in init_one()
4644 if (msi > 1 && enable_msix(adapter) == 0) in init_one()
4645 adapter->flags |= USING_MSIX; in init_one()
4647 adapter->flags |= USING_MSI; in init_one()
4649 err = init_rss(adapter); in init_one()
4659 for_each_port(adapter, i) { in init_one()
4660 pi = adap2pinfo(adapter, i); in init_one()
4661 netif_set_real_num_tx_queues(adapter->port[i], pi->nqsets); in init_one()
4662 netif_set_real_num_rx_queues(adapter->port[i], pi->nqsets); in init_one()
4664 err = register_netdev(adapter->port[i]); in init_one()
4667 adapter->chan_map[pi->tx_chan] = i; in init_one()
4668 print_port_info(adapter->port[i]); in init_one()
4680 adapter->debugfs_root = debugfs_create_dir(pci_name(pdev), in init_one()
4682 setup_debugfs(adapter); in init_one()
4688 if (is_offload(adapter)) in init_one()
4689 attach_ulds(adapter); in init_one()
4702 free_some_resources(adapter); in init_one()
4704 if (!is_t4(adapter->params.chip)) in init_one()
4705 iounmap(adapter->bar2); in init_one()
4707 if (adapter->workq) in init_one()
4708 destroy_workqueue(adapter->workq); in init_one()
4710 kfree(adapter); in init_one()
4723 struct adapter *adapter = pci_get_drvdata(pdev); in remove_one() local
4730 if (adapter) { in remove_one()
4736 destroy_workqueue(adapter->workq); in remove_one()
4738 if (is_offload(adapter)) in remove_one()
4739 detach_ulds(adapter); in remove_one()
4741 disable_interrupts(adapter); in remove_one()
4743 for_each_port(adapter, i) in remove_one()
4744 if (adapter->port[i]->reg_state == NETREG_REGISTERED) in remove_one()
4745 unregister_netdev(adapter->port[i]); in remove_one()
4747 debugfs_remove_recursive(adapter->debugfs_root); in remove_one()
4752 if (adapter->tids.ftid_tab) { in remove_one()
4753 struct filter_entry *f = &adapter->tids.ftid_tab[0]; in remove_one()
4754 for (i = 0; i < (adapter->tids.nftids + in remove_one()
4755 adapter->tids.nsftids); i++, f++) in remove_one()
4757 clear_filter(adapter, f); in remove_one()
4760 if (adapter->flags & FULL_INIT_DONE) in remove_one()
4761 cxgb_down(adapter); in remove_one()
4763 free_some_resources(adapter); in remove_one()
4765 t4_cleanup_clip_tbl(adapter); in remove_one()
4767 iounmap(adapter->regs); in remove_one()
4768 if (!is_t4(adapter->params.chip)) in remove_one()
4769 iounmap(adapter->bar2); in remove_one()
4771 if ((adapter->flags & DEV_ENABLED)) { in remove_one()
4773 adapter->flags &= ~DEV_ENABLED; in remove_one()
4777 kfree(adapter); in remove_one()