Lines Matching refs:adapter
311 struct adapter *adap = pi->adapter; in dcb_tx_queue_prio_enable()
346 void t4_os_link_changed(struct adapter *adapter, int port_id, int link_stat) in t4_os_link_changed() argument
348 struct net_device *dev = adapter->port[port_id]; in t4_os_link_changed()
366 void t4_os_portmod_changed(const struct adapter *adap, int port_id) in t4_os_portmod_changed()
397 unsigned int mb = pi->adapter->pf; in set_addr_filters()
403 ret = t4_alloc_mac_filt(pi->adapter, mb, pi->viid, free, in set_addr_filters()
417 ret = t4_alloc_mac_filt(pi->adapter, mb, pi->viid, free, in set_addr_filters()
427 return t4_set_addr_hash(pi->adapter, mb, pi->viid, uhash != 0, in set_addr_filters()
454 ret = t4_set_rxmode(pi->adapter, pi->adapter->pf, pi->viid, mtu, in set_rxmode()
471 unsigned int mb = pi->adapter->pf; in link_start()
477 ret = t4_set_rxmode(pi->adapter, mb, pi->viid, dev->mtu, -1, -1, -1, in link_start()
480 ret = t4_change_mac(pi->adapter, mb, pi->viid, in link_start()
489 ret = t4_link_l1cfg(pi->adapter, mb, pi->tx_chan, in link_start()
493 ret = t4_enable_vi_params(pi->adapter, mb, pi->viid, true, in link_start()
519 static void dcb_rpl(struct adapter *adap, const struct fw_port_cmd *pcmd) in dcb_rpl()
541 static void clear_filter(struct adapter *adap, struct filter_entry *f) in clear_filter()
561 static void filter_rpl(struct adapter *adap, const struct cpl_set_tcb_rpl *rpl) in filter_rpl()
716 static void disable_msi(struct adapter *adapter) in disable_msi() argument
718 if (adapter->flags & USING_MSIX) { in disable_msi()
719 pci_disable_msix(adapter->pdev); in disable_msi()
720 adapter->flags &= ~USING_MSIX; in disable_msi()
721 } else if (adapter->flags & USING_MSI) { in disable_msi()
722 pci_disable_msi(adapter->pdev); in disable_msi()
723 adapter->flags &= ~USING_MSI; in disable_msi()
732 struct adapter *adap = cookie; in t4_nondata_intr()
747 static void name_msix_vecs(struct adapter *adap) in name_msix_vecs()
782 static int request_msix_queue_irqs(struct adapter *adap) in request_msix_queue_irqs()
848 static void free_msix_queue_irqs(struct adapter *adap) in free_msix_queue_irqs()
877 struct adapter *adapter = pi->adapter; in cxgb4_write_rss() local
880 rxq = &adapter->sge.ethrxq[pi->first_qset]; in cxgb4_write_rss()
889 err = t4_config_rss_range(adapter, adapter->pf, pi->viid, 0, in cxgb4_write_rss()
897 err = t4_config_vi_rss(adapter, adapter->mbox, pi->viid, in cxgb4_write_rss()
914 static int setup_rss(struct adapter *adap) in setup_rss()
944 static void quiesce_rx(struct adapter *adap) in quiesce_rx()
963 static void disable_interrupts(struct adapter *adap) in disable_interrupts()
980 static void enable_rx(struct adapter *adap) in enable_rx()
1000 static int alloc_ofld_rxqs(struct adapter *adap, struct sge_ofld_rxq *q, in alloc_ofld_rxqs()
1030 static int setup_sge_queues(struct adapter *adap) in setup_sge_queues()
1167 static int set_filter_wr(struct adapter *adapter, int fidx) in set_filter_wr() argument
1169 struct filter_entry *f = &adapter->tids.ftid_tab[fidx]; in set_filter_wr()
1184 f->l2t = t4_l2t_alloc_switching(adapter->l2t); in set_filter_wr()
1189 if (t4_l2t_set_switching(adapter, f->l2t, f->fs.vlan, in set_filter_wr()
1198 ftid = adapter->tids.ftid_base + fidx; in set_filter_wr()
1247 FW_FILTER_WR_RX_RPL_IQ_V(adapter->sge.fw_evtq.abs_id)); in set_filter_wr()
1281 t4_ofld_send(adapter, skb); in set_filter_wr()
1287 static int del_filter_wr(struct adapter *adapter, int fidx) in del_filter_wr() argument
1289 struct filter_entry *f = &adapter->tids.ftid_tab[fidx]; in del_filter_wr()
1295 ftid = adapter->tids.ftid_base + fidx; in del_filter_wr()
1302 t4_mk_filtdelwr(ftid, fwr, adapter->sge.fw_evtq.abs_id); in del_filter_wr()
1308 t4_mgmt_tx(adapter, skb); in del_filter_wr()
1402 struct adapter *adap = q->adap; in cxgb4_set_rspq_intr_params()
1440 err = t4_set_rxmode(pi->adapter, pi->adapter->pf, pi->viid, -1, in cxgb_set_features()
1448 static int setup_debugfs(struct adapter *adap) in setup_debugfs()
1615 struct adapter *adap = container_of(t, struct adapter, tids); in cxgb4_queue_tid_release()
1634 struct adapter *adap; in process_tid_release_list()
1636 adap = container_of(work, struct adapter, tid_release_task); in process_tid_release_list()
1667 struct adapter *adap = container_of(t, struct adapter, tids); in cxgb4_remove_tid()
1696 struct adapter *adap = container_of(t, struct adapter, tids); in tid_init()
1757 struct adapter *adap; in cxgb4_create_server()
1798 struct adapter *adap; in cxgb4_create_server6()
1829 struct adapter *adap; in cxgb4_remove_server()
1979 struct adapter *adap = netdev2adap(dev); in cxgb4_dbfifo_count()
2022 struct adapter *adap = pci_get_drvdata(pdev); in cxgb4_get_tcp_stats()
2033 struct adapter *adap = netdev2adap(dev); in cxgb4_iscsi_init()
2044 struct adapter *adap = netdev2adap(dev); in cxgb4_flush_eq_cache()
2050 static int read_eq_indices(struct adapter *adap, u16 qid, u16 *pidx, u16 *cidx) in read_eq_indices()
2071 struct adapter *adap = netdev2adap(dev); in cxgb4_sync_txq_pidx()
2103 struct adapter *adap; in cxgb4_read_tpte()
2172 struct adapter *adap; in cxgb4_read_sge_timestamp()
2233 static void drain_db_fifo(struct adapter *adap, int usecs) in drain_db_fifo()
2264 static void enable_txq_db(struct adapter *adap, struct sge_txq *q) in enable_txq_db()
2280 static void disable_dbs(struct adapter *adap) in disable_dbs()
2292 static void enable_dbs(struct adapter *adap) in enable_dbs()
2304 static void notify_rdma_uld(struct adapter *adap, enum cxgb4_control cmd) in notify_rdma_uld()
2313 struct adapter *adap; in process_db_full()
2315 adap = container_of(work, struct adapter, db_full_task); in process_db_full()
2329 static void sync_txq_pidx(struct adapter *adap, struct sge_txq *q) in sync_txq_pidx()
2362 static void recover_all_queues(struct adapter *adap) in recover_all_queues()
2376 struct adapter *adap; in process_db_drop()
2378 adap = container_of(work, struct adapter, db_drop_task); in process_db_drop()
2413 void t4_db_full(struct adapter *adap) in t4_db_full()
2424 void t4_db_dropped(struct adapter *adap) in t4_db_dropped()
2433 static void uld_attach(struct adapter *adap, unsigned int uld) in uld_attach()
2500 static void attach_ulds(struct adapter *adap) in attach_ulds()
2516 static void detach_ulds(struct adapter *adap) in detach_ulds()
2539 static void notify_ulds(struct adapter *adap, enum cxgb4_state new_state) in notify_ulds()
2562 struct adapter *adap; in cxgb4_register_uld()
2587 struct adapter *adap; in cxgb4_unregister_uld()
2608 struct adapter *adap; in cxgb4_inet6addr_handler()
2655 static void update_clip(const struct adapter *adap) in update_clip()
2687 static int cxgb_up(struct adapter *adap) in cxgb_up()
2734 static void cxgb_down(struct adapter *adapter) in cxgb_down() argument
2736 cancel_work_sync(&adapter->tid_release_task); in cxgb_down()
2737 cancel_work_sync(&adapter->db_full_task); in cxgb_down()
2738 cancel_work_sync(&adapter->db_drop_task); in cxgb_down()
2739 adapter->tid_release_task_busy = false; in cxgb_down()
2740 adapter->tid_release_head = NULL; in cxgb_down()
2742 t4_sge_stop(adapter); in cxgb_down()
2743 t4_free_sge_resources(adapter); in cxgb_down()
2744 adapter->flags &= ~FULL_INIT_DONE; in cxgb_down()
2754 struct adapter *adapter = pi->adapter; in cxgb_open() local
2758 if (!(adapter->flags & FULL_INIT_DONE)) { in cxgb_open()
2759 err = cxgb_up(adapter); in cxgb_open()
2773 struct adapter *adapter = pi->adapter; in cxgb_close() local
2777 return t4_enable_vi(adapter, adapter->pf, pi->viid, false, false); in cxgb_close()
2796 static int delete_filter(struct adapter *adapter, unsigned int fidx) in delete_filter() argument
2801 if (fidx >= adapter->tids.nftids + adapter->tids.nsftids) in delete_filter()
2804 f = &adapter->tids.ftid_tab[fidx]; in delete_filter()
2809 return del_filter_wr(adapter, fidx); in delete_filter()
2820 struct adapter *adap; in cxgb4_create_server_filter()
2885 struct adapter *adap; in cxgb4_remove_server_filter()
2910 struct adapter *adapter = p->adapter; in cxgb_get_stats() local
2916 spin_lock(&adapter->stats_lock); in cxgb_get_stats()
2918 spin_unlock(&adapter->stats_lock); in cxgb_get_stats()
2921 t4_get_port_stats_offset(adapter, p->tx_chan, &stats, in cxgb_get_stats()
2923 spin_unlock(&adapter->stats_lock); in cxgb_get_stats()
2981 mbox = pi->adapter->pf; in cxgb_ioctl()
2983 ret = t4_mdio_rd(pi->adapter, mbox, prtad, devad, in cxgb_ioctl()
2986 ret = t4_mdio_wr(pi->adapter, mbox, prtad, devad, in cxgb_ioctl()
3032 ret = t4_set_rxmode(pi->adapter, pi->adapter->pf, pi->viid, new_mtu, -1, in cxgb_change_mtu()
3048 ret = t4_change_mac(pi->adapter, pi->adapter->pf, pi->viid, in cxgb_set_mac_addr()
3062 struct adapter *adap = pi->adapter; in cxgb_netpoll()
3100 void t4_fatal_err(struct adapter *adap) in t4_fatal_err()
3107 static void setup_memwin(struct adapter *adap) in setup_memwin()
3114 static void setup_memwin_rdma(struct adapter *adap) in setup_memwin_rdma()
3135 static int adap_init1(struct adapter *adap, struct fw_caps_config_cmd *c) in adap_init1()
3240 static int adap_init0_tweaks(struct adapter *adapter) in adap_init0_tweaks() argument
3247 t4_fixup_host_params(adapter, PAGE_SIZE, L1_CACHE_BYTES); in adap_init0_tweaks()
3253 dev_err(&adapter->pdev->dev, in adap_init0_tweaks()
3258 t4_set_reg_field(adapter, SGE_CONTROL_A, in adap_init0_tweaks()
3266 t4_tp_wr_bits_indirect(adapter, TP_INGRESS_CONFIG_A, in adap_init0_tweaks()
3340 static int adap_init0_phy(struct adapter *adap) in adap_init0_phy()
3411 static int adap_init0_config(struct adapter *adapter, int reset) in adap_init0_config() argument
3426 ret = t4_fw_reset(adapter, adapter->mbox, in adap_init0_config()
3437 if (is_10gbt_device(adapter->pdev->device)) { in adap_init0_config()
3438 ret = adap_init0_phy(adapter); in adap_init0_config()
3447 switch (CHELSIO_CHIP_VERSION(adapter->params.chip)) { in adap_init0_config()
3458 dev_err(adapter->pdev_dev, "Device %d is not supported\n", in adap_init0_config()
3459 adapter->pdev->device); in adap_init0_config()
3464 ret = request_firmware(&cf, fw_config_file, adapter->pdev_dev); in adap_init0_config()
3468 maddr = t4_flash_cfg_addr(adapter); in adap_init0_config()
3481 ret = t4_query_params(adapter, adapter->mbox, in adap_init0_config()
3482 adapter->pf, 0, 1, params, val); in adap_init0_config()
3501 spin_lock(&adapter->win0_lock); in adap_init0_config()
3502 ret = t4_memory_rw(adapter, 0, mtype, maddr, in adap_init0_config()
3514 ret = t4_memory_rw(adapter, 0, mtype, in adap_init0_config()
3519 spin_unlock(&adapter->win0_lock); in adap_init0_config()
3544 ret = t4_wr_mbox(adapter, adapter->mbox, &caps_cmd, sizeof(caps_cmd), in adap_init0_config()
3560 ret = t4_wr_mbox(adapter, adapter->mbox, &caps_cmd, in adap_init0_config()
3573 dev_warn(adapter->pdev_dev, "Configuration File checksum "\ in adap_init0_config()
3585 ret = t4_wr_mbox(adapter, adapter->mbox, &caps_cmd, sizeof(caps_cmd), in adap_init0_config()
3594 ret = adap_init0_tweaks(adapter); in adap_init0_config()
3602 ret = t4_fw_initialize(adapter, adapter->mbox); in adap_init0_config()
3609 dev_info(adapter->pdev_dev, "Successfully configured using Firmware "\ in adap_init0_config()
3621 dev_warn(adapter->pdev_dev, "\"%s\" configuration file error %d\n", in adap_init0_config()
3687 static int adap_init0(struct adapter *adap) in adap_init0()
4164 struct adapter *adap = pci_get_drvdata(pdev); in eeh_err_detected()
4196 struct adapter *adap = pci_get_drvdata(pdev); in eeh_slot_reset()
4248 struct adapter *adap = pci_get_drvdata(pdev); in eeh_resume()
4278 static inline void init_rspq(struct adapter *adap, struct sge_rspq *q, in init_rspq()
4293 static void cfg_queues(struct adapter *adap) in cfg_queues()
4423 static void reduce_ethqs(struct adapter *adap, int n) in reduce_ethqs()
4450 static int enable_msix(struct adapter *adap) in enable_msix()
4522 static int init_rss(struct adapter *adap) in init_rss()
4547 const struct adapter *adap = pi->adapter; in print_port_info()
4590 static void free_some_resources(struct adapter *adapter) in free_some_resources() argument
4594 t4_free_mem(adapter->l2t); in free_some_resources()
4595 t4_free_mem(adapter->tids.tid_tab); in free_some_resources()
4596 kfree(adapter->sge.egr_map); in free_some_resources()
4597 kfree(adapter->sge.ingr_map); in free_some_resources()
4598 kfree(adapter->sge.starving_fl); in free_some_resources()
4599 kfree(adapter->sge.txq_maperr); in free_some_resources()
4601 kfree(adapter->sge.blocked_fl); in free_some_resources()
4603 disable_msi(adapter); in free_some_resources()
4605 for_each_port(adapter, i) in free_some_resources()
4606 if (adapter->port[i]) { in free_some_resources()
4607 struct port_info *pi = adap2pinfo(adapter, i); in free_some_resources()
4610 t4_free_vi(adapter, adapter->mbox, adapter->pf, in free_some_resources()
4612 kfree(adap2pinfo(adapter, i)->rss); in free_some_resources()
4613 free_netdev(adapter->port[i]); in free_some_resources()
4615 if (adapter->flags & FW_OK) in free_some_resources()
4616 t4_fw_bye(adapter, adapter->pf); in free_some_resources()
4650 struct adapter *adapter = NULL; in init_one() local
4715 adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); in init_one()
4716 if (!adapter) { in init_one()
4721 adapter->workq = create_singlethread_workqueue("cxgb4"); in init_one()
4722 if (!adapter->workq) { in init_one()
4728 adapter->flags |= DEV_ENABLED; in init_one()
4730 adapter->regs = regs; in init_one()
4731 adapter->pdev = pdev; in init_one()
4732 adapter->pdev_dev = &pdev->dev; in init_one()
4733 adapter->mbox = func; in init_one()
4734 adapter->pf = func; in init_one()
4735 adapter->msg_enable = dflt_msg_enable; in init_one()
4736 memset(adapter->chan_map, 0xff, sizeof(adapter->chan_map)); in init_one()
4738 spin_lock_init(&adapter->stats_lock); in init_one()
4739 spin_lock_init(&adapter->tid_release_lock); in init_one()
4740 spin_lock_init(&adapter->win0_lock); in init_one()
4742 INIT_WORK(&adapter->tid_release_task, process_tid_release_list); in init_one()
4743 INIT_WORK(&adapter->db_full_task, process_db_full); in init_one()
4744 INIT_WORK(&adapter->db_drop_task, process_db_drop); in init_one()
4746 err = t4_prep_adapter(adapter); in init_one()
4751 if (!is_t4(adapter->params.chip)) { in init_one()
4754 adapter->pf); in init_one()
4755 qpp = 1 << QUEUESPERPAGEPF0_G(t4_read_reg(adapter, in init_one()
4770 adapter->bar2 = ioremap_wc(pci_resource_start(pdev, 2), in init_one()
4772 if (!adapter->bar2) { in init_one()
4779 setup_memwin(adapter); in init_one()
4780 err = adap_init0(adapter); in init_one()
4782 bitmap_zero(adapter->sge.blocked_fl, adapter->sge.egr_sz); in init_one()
4784 setup_memwin_rdma(adapter); in init_one()
4789 if (!is_t4(adapter->params.chip)) in init_one()
4790 t4_write_reg(adapter, SGE_STAT_CFG_A, in init_one()
4793 for_each_port(adapter, i) { in init_one()
4805 adapter->port[i] = netdev; in init_one()
4807 pi->adapter = adapter; in init_one()
4831 pci_set_drvdata(pdev, adapter); in init_one()
4833 if (adapter->flags & FW_OK) { in init_one()
4834 err = t4_port_init(adapter, func, func, 0); in init_one()
4837 } else if (adapter->params.nports == 1) { in init_one()
4844 u8 *na = adapter->params.vpd.na; in init_one()
4846 err = t4_get_raw_vpd_params(adapter, &adapter->params.vpd); in init_one()
4851 t4_set_hw_addr(adapter, 0, hw_addr); in init_one()
4858 cfg_queues(adapter); in init_one()
4860 adapter->l2t = t4_init_l2t(adapter->l2t_start, adapter->l2t_end); in init_one()
4861 if (!adapter->l2t) { in init_one()
4864 adapter->params.offload = 0; in init_one()
4868 adapter->clipt = t4_init_clip_tbl(adapter->clipt_start, in init_one()
4869 adapter->clipt_end); in init_one()
4870 if (!adapter->clipt) { in init_one()
4876 adapter->params.offload = 0; in init_one()
4879 if (is_offload(adapter) && tid_init(&adapter->tids) < 0) { in init_one()
4882 adapter->params.offload = 0; in init_one()
4885 if (is_offload(adapter)) { in init_one()
4886 if (t4_read_reg(adapter, LE_DB_CONFIG_A) & HASHEN_F) { in init_one()
4891 hash_base = t4_read_reg(adapter, hash_reg); in init_one()
4892 adapter->tids.hash_base = hash_base / 4; in init_one()
4895 hash_base = t4_read_reg(adapter, hash_reg); in init_one()
4896 adapter->tids.hash_base = hash_base; in init_one()
4902 if (msi > 1 && enable_msix(adapter) == 0) in init_one()
4903 adapter->flags |= USING_MSIX; in init_one()
4905 adapter->flags |= USING_MSI; in init_one()
4907 err = init_rss(adapter); in init_one()
4917 for_each_port(adapter, i) { in init_one()
4918 pi = adap2pinfo(adapter, i); in init_one()
4919 netif_set_real_num_tx_queues(adapter->port[i], pi->nqsets); in init_one()
4920 netif_set_real_num_rx_queues(adapter->port[i], pi->nqsets); in init_one()
4922 err = register_netdev(adapter->port[i]); in init_one()
4925 adapter->chan_map[pi->tx_chan] = i; in init_one()
4926 print_port_info(adapter->port[i]); in init_one()
4938 adapter->debugfs_root = debugfs_create_dir(pci_name(pdev), in init_one()
4940 setup_debugfs(adapter); in init_one()
4946 if (is_offload(adapter)) in init_one()
4947 attach_ulds(adapter); in init_one()
4960 free_some_resources(adapter); in init_one()
4962 if (!is_t4(adapter->params.chip)) in init_one()
4963 iounmap(adapter->bar2); in init_one()
4965 if (adapter->workq) in init_one()
4966 destroy_workqueue(adapter->workq); in init_one()
4968 kfree(adapter); in init_one()
4981 struct adapter *adapter = pci_get_drvdata(pdev); in remove_one() local
4988 if (adapter) { in remove_one()
4994 destroy_workqueue(adapter->workq); in remove_one()
4996 if (is_offload(adapter)) in remove_one()
4997 detach_ulds(adapter); in remove_one()
4999 disable_interrupts(adapter); in remove_one()
5001 for_each_port(adapter, i) in remove_one()
5002 if (adapter->port[i]->reg_state == NETREG_REGISTERED) in remove_one()
5003 unregister_netdev(adapter->port[i]); in remove_one()
5005 debugfs_remove_recursive(adapter->debugfs_root); in remove_one()
5010 if (adapter->tids.ftid_tab) { in remove_one()
5011 struct filter_entry *f = &adapter->tids.ftid_tab[0]; in remove_one()
5012 for (i = 0; i < (adapter->tids.nftids + in remove_one()
5013 adapter->tids.nsftids); i++, f++) in remove_one()
5015 clear_filter(adapter, f); in remove_one()
5018 if (adapter->flags & FULL_INIT_DONE) in remove_one()
5019 cxgb_down(adapter); in remove_one()
5021 free_some_resources(adapter); in remove_one()
5023 t4_cleanup_clip_tbl(adapter); in remove_one()
5025 iounmap(adapter->regs); in remove_one()
5026 if (!is_t4(adapter->params.chip)) in remove_one()
5027 iounmap(adapter->bar2); in remove_one()
5029 if ((adapter->flags & DEV_ENABLED)) { in remove_one()
5031 adapter->flags &= ~DEV_ENABLED; in remove_one()
5035 kfree(adapter); in remove_one()