Lines Matching refs:lio
85 static int lio_get_intrmod_cfg(struct lio *lio,
110 struct lio *lio = if_getsoftc(ifp); in lio_send_queue_count_update() local
111 struct octeon_device *oct = lio->oct_dev; in lio_send_queue_count_update()
120 nctrl.iq_no = lio->linfo.txpciq[0].s.q_no; in lio_send_queue_count_update()
122 nctrl.lio = lio; in lio_send_queue_count_update()
125 ret = lio_send_ctrl_pkt(lio->oct_dev, &nctrl); in lio_send_queue_count_update()
137 lio_add_hw_stats(struct lio *lio) in lio_add_hw_stats() argument
139 struct octeon_device *oct_dev = lio->oct_dev; in lio_add_hw_stats()
150 callout_reset(&lio->stats_timer, lio_ms_to_ticks(lio->stats_interval), in lio_add_hw_stats()
151 lio_get_fw_stats, lio); in lio_add_hw_stats()
157 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, lio, 0, in lio_add_hw_stats()
161 CTLFLAG_RD, &lio->link_changes, "Link Change Counter"); in lio_add_hw_stats()
163 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, lio, 0, in lio_add_hw_stats()
166 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, lio, 0, in lio_add_hw_stats()
174 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, lio, 0, in lio_add_hw_stats()
177 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, lio, 0, in lio_add_hw_stats()
180 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, lio, LIO_SET_RING_RX, in lio_add_hw_stats()
183 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, lio, LIO_SET_RING_TX, in lio_add_hw_stats()
186 CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, lio, LIO_SET_RING_RX, in lio_add_hw_stats()
189 CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, lio, LIO_SET_RING_TX, in lio_add_hw_stats()
192 CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, lio, 0, in lio_add_hw_stats()
195 CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, lio, 0, in lio_add_hw_stats()
210 if (lio_get_intrmod_cfg(lio, &lio->intrmod_cfg)) in lio_add_hw_stats()
214 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
218 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
222 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
226 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
230 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
234 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
238 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
242 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
246 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
250 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
254 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
258 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
262 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
266 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio, in lio_add_hw_stats()
626 struct lio *lio = (struct lio *)arg1; in lio_get_eeprom() local
627 struct octeon_device *oct_dev = lio->oct_dev; in lio_get_eeprom()
660 struct lio *lio = (struct lio *)arg1; in lio_get_set_pauseparam() local
661 struct octeon_device *oct = lio->oct_dev; in lio_get_set_pauseparam()
662 struct octeon_link_info *linfo = &lio->linfo; in lio_get_set_pauseparam()
695 nctrl.iq_no = lio->linfo.txpciq[0].s.q_no; in lio_get_set_pauseparam()
697 nctrl.lio = lio; in lio_get_set_pauseparam()
716 ret = lio_send_ctrl_pkt(lio->oct_dev, &nctrl); in lio_get_set_pauseparam()
732 struct lio *lio = (struct lio *)arg1; in lio_get_regs() local
733 struct octeon_device *oct = lio->oct_dev; in lio_get_regs()
734 if_t ifp = lio->ifp; in lio_get_regs()
960 struct lio *lio = (struct lio *)arg1; in lio_get_ringparam() local
961 struct octeon_device *oct = lio->oct_dev; in lio_get_ringparam()
985 struct lio *lio = if_getsoftc(ifp); in lio_reset_queues() local
986 struct octeon_device *oct = lio->oct_dev; in lio_reset_queues()
1038 struct lio *lio = (struct lio *)arg1; in lio_set_ringparam() local
1039 struct octeon_device *oct = lio->oct_dev; in lio_set_ringparam()
1060 lio_ifstate_set(lio, LIO_IFSTATE_RESETTING); in lio_set_ringparam()
1062 if (if_getdrvflags(lio->ifp) & IFF_DRV_RUNNING) { in lio_set_ringparam()
1063 lio_stop(lio->ifp); in lio_set_ringparam()
1069 lio->ifidx, rx_count); in lio_set_ringparam()
1084 lio_ifstate_set(lio, LIO_IFSTATE_RESETTING); in lio_set_ringparam()
1086 if (if_getdrvflags(lio->ifp) & IFF_DRV_RUNNING) { in lio_set_ringparam()
1087 lio_stop(lio->ifp); in lio_set_ringparam()
1093 lio->ifidx, tx_count); in lio_set_ringparam()
1097 if (lio_reset_queues(lio->ifp, lio->linfo.num_txpciq)) in lio_set_ringparam()
1100 lio_irq_reallocate_irqs(oct, lio->linfo.num_txpciq); in lio_set_ringparam()
1102 lio_open(lio); in lio_set_ringparam()
1104 lio_ifstate_reset(lio, LIO_IFSTATE_RESETTING); in lio_set_ringparam()
1110 LIO_SET_NUM_RX_DESCS_NIC_IF(lio_get_conf(oct), lio->ifidx, in lio_set_ringparam()
1114 LIO_SET_NUM_TX_DESCS_NIC_IF(lio_get_conf(oct), lio->ifidx, in lio_set_ringparam()
1123 struct lio *lio = (struct lio *)arg1; in lio_get_channels() local
1124 struct octeon_device *oct = lio->oct_dev; in lio_get_channels()
1128 max_combined = lio->linfo.num_txpciq; in lio_get_channels()
1197 struct lio *lio = (struct lio *)arg1; in lio_set_channels() local
1198 struct octeon_device *oct = lio->oct_dev; in lio_set_channels()
1218 max_combined = lio->linfo.num_txpciq; in lio_set_channels()
1229 lio_ifstate_set(lio, LIO_IFSTATE_RESETTING); in lio_set_channels()
1231 if (if_getdrvflags(lio->ifp) & IFF_DRV_RUNNING) { in lio_set_channels()
1232 lio_stop(lio->ifp); in lio_set_channels()
1236 if (lio_reset_queues(lio->ifp, combined_count)) in lio_set_channels()
1241 lio_open(lio); in lio_set_channels()
1243 lio_ifstate_reset(lio, LIO_IFSTATE_RESETTING); in lio_set_channels()
1252 struct lio *lio = (struct lio *)arg1; in lio_get_set_fwmsglevel() local
1253 if_t ifp = lio->ifp; in lio_get_set_fwmsglevel()
1256 if (lio_ifstate_check(lio, LIO_IFSTATE_RESETTING)) in lio_get_set_fwmsglevel()
1259 old_msglvl = new_msglvl = lio->msg_enable; in lio_get_set_fwmsglevel()
1268 if (new_msglvl ^ lio->msg_enable) { in lio_get_set_fwmsglevel()
1275 lio->msg_enable = new_msglvl; in lio_get_set_fwmsglevel()
1283 struct lio *lio = (struct lio *)arg1; in lio_set_stats_interval() local
1286 old_time = new_time = lio->stats_interval; in lio_set_stats_interval()
1295 lio->stats_interval = new_time; in lio_set_stats_interval()
1311 struct lio *lio = if_getsoftc(ifp); in lio_fw_stats_callback() local
1389 callout_schedule(&lio->stats_timer, in lio_fw_stats_callback()
1390 lio_ms_to_ticks(lio->stats_interval)); in lio_fw_stats_callback()
1397 struct lio *lio = arg; in lio_get_fw_stats() local
1398 struct octeon_device *oct_dev = lio->oct_dev; in lio_get_fw_stats()
1403 if (callout_pending(&lio->stats_timer) || in lio_get_fw_stats()
1404 callout_active(&lio->stats_timer) == 0) in lio_get_fw_stats()
1417 sc->iq_no = lio->linfo.txpciq[0].s.q_no; in lio_get_fw_stats()
1435 callout_schedule(&lio->stats_timer, in lio_get_fw_stats()
1436 lio_ms_to_ticks(lio->stats_interval)); in lio_get_fw_stats()
1446 struct lio *lio = if_getsoftc(ifp); in lio_get_intrmod_callback() local
1455 memcpy(&lio->intrmod_cfg, &resp->intrmod, in lio_get_intrmod_callback()
1464 lio_get_intrmod_cfg(struct lio *lio, struct octeon_intrmod_cfg *intr_cfg) in lio_get_intrmod_cfg() argument
1468 struct octeon_device *oct_dev = lio->oct_dev; in lio_get_intrmod_cfg()
1480 sc->iq_no = lio->linfo.txpciq[0].s.q_no; in lio_get_intrmod_cfg()
1520 lio_set_intrmod_cfg(struct lio *lio, struct octeon_intrmod_cfg *intr_cfg) in lio_set_intrmod_cfg() argument
1525 struct octeon_device *oct_dev = lio->oct_dev; in lio_set_intrmod_cfg()
1546 sc->iq_no = lio->linfo.txpciq[0].s.q_no; in lio_set_intrmod_cfg()
1581 lio_intrmod_cfg_rx_intrcnt(struct lio *lio, struct octeon_intrmod_cfg *intrmod, in lio_intrmod_cfg_rx_intrcnt() argument
1584 struct octeon_device *oct = lio->oct_dev; in lio_intrmod_cfg_rx_intrcnt()
1619 lio_intrmod_cfg_rx_intrtime(struct lio *lio, struct octeon_intrmod_cfg *intrmod, in lio_intrmod_cfg_rx_intrtime() argument
1622 struct octeon_device *oct = lio->oct_dev; in lio_intrmod_cfg_rx_intrtime()
1659 lio_intrmod_cfg_tx_intrcnt(struct lio *lio, struct octeon_intrmod_cfg *intrmod, in lio_intrmod_cfg_tx_intrcnt() argument
1662 struct octeon_device *oct = lio->oct_dev; in lio_intrmod_cfg_tx_intrcnt()
1706 struct lio *lio = (struct lio *)arg1; in lio_get_set_intr_coalesce() local
1707 struct octeon_device *oct = lio->oct_dev; in lio_get_set_intr_coalesce()
1716 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1717 new_val = old_val = lio->intrmod_cfg.rx_enable; in lio_get_set_intr_coalesce()
1726 lio->intrmod_cfg.rx_enable = new_val ? 1 : 0; in lio_get_set_intr_coalesce()
1730 if (lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1731 new_val = old_val = lio->intrmod_cfg.tx_enable; in lio_get_set_intr_coalesce()
1740 lio->intrmod_cfg.tx_enable = new_val ? 1 : 0; in lio_get_set_intr_coalesce()
1744 if (!lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1758 if (!lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1772 if (!lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1786 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1787 new_val = old_val = lio->intrmod_cfg.minpkt_ratethr; in lio_get_set_intr_coalesce()
1796 if (lio->intrmod_cfg.rx_enable || lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1797 lio->intrmod_cfg.minpkt_ratethr = new_val; in lio_get_set_intr_coalesce()
1801 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1802 new_val = old_val = lio->intrmod_cfg.rx_mintmr_trigger; in lio_get_set_intr_coalesce()
1811 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1812 lio->intrmod_cfg.rx_mintmr_trigger = new_val; in lio_get_set_intr_coalesce()
1816 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1817 new_val = old_val = lio->intrmod_cfg.rx_mincnt_trigger; in lio_get_set_intr_coalesce()
1826 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1827 lio->intrmod_cfg.rx_mincnt_trigger = new_val; in lio_get_set_intr_coalesce()
1831 if (lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1832 new_val = old_val = lio->intrmod_cfg.tx_mincnt_trigger; in lio_get_set_intr_coalesce()
1841 if (lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1842 lio->intrmod_cfg.tx_mincnt_trigger = new_val; in lio_get_set_intr_coalesce()
1846 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1847 new_val = old_val = lio->intrmod_cfg.maxpkt_ratethr; in lio_get_set_intr_coalesce()
1856 if (lio->intrmod_cfg.rx_enable || lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1857 lio->intrmod_cfg.maxpkt_ratethr = new_val; in lio_get_set_intr_coalesce()
1861 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1862 new_val = old_val = lio->intrmod_cfg.rx_maxtmr_trigger; in lio_get_set_intr_coalesce()
1871 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1872 lio->intrmod_cfg.rx_maxtmr_trigger = new_val; in lio_get_set_intr_coalesce()
1876 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1877 new_val = old_val = lio->intrmod_cfg.rx_maxcnt_trigger; in lio_get_set_intr_coalesce()
1886 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1887 lio->intrmod_cfg.rx_maxcnt_trigger = new_val; in lio_get_set_intr_coalesce()
1891 if (lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1892 new_val = old_val = lio->intrmod_cfg.tx_maxcnt_trigger; in lio_get_set_intr_coalesce()
1901 if (lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1902 lio->intrmod_cfg.tx_maxcnt_trigger = new_val; in lio_get_set_intr_coalesce()
1906 if (lio->intrmod_cfg.rx_enable) in lio_get_set_intr_coalesce()
1907 new_val = old_val = lio->intrmod_cfg.check_intrvl; in lio_get_set_intr_coalesce()
1916 if (lio->intrmod_cfg.rx_enable || lio->intrmod_cfg.tx_enable) in lio_get_set_intr_coalesce()
1917 lio->intrmod_cfg.check_intrvl = new_val; in lio_get_set_intr_coalesce()
1924 lio->intrmod_cfg.rx_usecs = LIO_GET_OQ_INTR_TIME_CFG(lio_get_conf(oct)); in lio_get_set_intr_coalesce()
1925 lio->intrmod_cfg.rx_frames = LIO_GET_OQ_INTR_PKT_CFG(lio_get_conf(oct)); in lio_get_set_intr_coalesce()
1926 lio->intrmod_cfg.tx_frames = LIO_GET_IQ_INTR_PKT_CFG(lio_get_conf(oct)); in lio_get_set_intr_coalesce()
1928 ret = lio_set_intrmod_cfg(lio, &lio->intrmod_cfg); in lio_get_set_intr_coalesce()
1932 if (!lio->intrmod_cfg.rx_enable) { in lio_get_set_intr_coalesce()
1939 ret = lio_intrmod_cfg_rx_intrtime(lio, &lio->intrmod_cfg, in lio_get_set_intr_coalesce()
1944 ret = lio_intrmod_cfg_rx_intrcnt(lio, &lio->intrmod_cfg, in lio_get_set_intr_coalesce()
1955 if (!lio->intrmod_cfg.tx_enable) { in lio_get_set_intr_coalesce()
1959 ret = lio_intrmod_cfg_tx_intrcnt(lio, &lio->intrmod_cfg, in lio_get_set_intr_coalesce()