Lines Matching defs:lio

86 static int	lio_get_intrmod_cfg(struct lio *lio,
111 struct lio *lio = if_getsoftc(ifp);
112 struct octeon_device *oct = lio->oct_dev;
121 nctrl.iq_no = lio->linfo.txpciq[0].s.q_no;
123 nctrl.lio = lio;
126 ret = lio_send_ctrl_pkt(lio->oct_dev, &nctrl);
138 lio_add_hw_stats(struct lio *lio)
140 struct octeon_device *oct_dev = lio->oct_dev;
151 callout_reset(&lio->stats_timer, lio_ms_to_ticks(lio->stats_interval),
152 lio_get_fw_stats, lio);
158 CTLTYPE_INT | CTLFLAG_RW, lio, 0,
162 CTLFLAG_RD, &lio->link_changes, "Link Change Counter");
164 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, lio, 0,
167 CTLTYPE_INT | CTLFLAG_RW, lio, 0,
176 lio, 0, lio_get_regs, "A",
179 CTLTYPE_INT | CTLFLAG_RW, lio, 0,
183 CTLTYPE_INT | CTLFLAG_RW, lio, LIO_SET_RING_RX,
186 CTLTYPE_INT | CTLFLAG_RW, lio, LIO_SET_RING_TX,
189 CTLTYPE_INT | CTLFLAG_RD, lio, LIO_SET_RING_RX,
192 CTLTYPE_INT | CTLFLAG_RD, lio, LIO_SET_RING_TX,
195 CTLTYPE_INT | CTLFLAG_RW, lio, 0, lio_set_channels,
198 CTLTYPE_INT | CTLFLAG_RD, lio, 0, lio_get_channels,
213 if (lio_get_intrmod_cfg(lio, &lio->intrmod_cfg))
217 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
221 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
225 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
229 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
233 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
237 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
241 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
245 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
249 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
253 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
257 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
261 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
265 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
269 CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, lio,
630 struct lio *lio = (struct lio *)arg1;
631 struct octeon_device *oct_dev = lio->oct_dev;
664 struct lio *lio = (struct lio *)arg1;
665 struct octeon_device *oct = lio->oct_dev;
666 struct octeon_link_info *linfo = &lio->linfo;
699 nctrl.iq_no = lio->linfo.txpciq[0].s.q_no;
701 nctrl.lio = lio;
720 ret = lio_send_ctrl_pkt(lio->oct_dev, &nctrl);
736 struct lio *lio = (struct lio *)arg1;
737 struct octeon_device *oct = lio->oct_dev;
738 struct ifnet *ifp = lio->ifp;
967 struct lio *lio = (struct lio *)arg1;
968 struct octeon_device *oct = lio->oct_dev;
992 struct lio *lio = if_getsoftc(ifp);
993 struct octeon_device *oct = lio->oct_dev;
1045 struct lio *lio = (struct lio *)arg1;
1046 struct octeon_device *oct = lio->oct_dev;
1067 lio_ifstate_set(lio, LIO_IFSTATE_RESETTING);
1069 if (if_getdrvflags(lio->ifp) & IFF_DRV_RUNNING) {
1070 lio_stop(lio->ifp);
1076 lio->ifidx, rx_count);
1091 lio_ifstate_set(lio, LIO_IFSTATE_RESETTING);
1093 if (if_getdrvflags(lio->ifp) & IFF_DRV_RUNNING) {
1094 lio_stop(lio->ifp);
1100 lio->ifidx, tx_count);
1104 if (lio_reset_queues(lio->ifp, lio->linfo.num_txpciq))
1107 lio_irq_reallocate_irqs(oct, lio->linfo.num_txpciq);
1109 lio_open(lio);
1111 lio_ifstate_reset(lio, LIO_IFSTATE_RESETTING);
1117 LIO_SET_NUM_RX_DESCS_NIC_IF(lio_get_conf(oct), lio->ifidx,
1121 LIO_SET_NUM_TX_DESCS_NIC_IF(lio_get_conf(oct), lio->ifidx,
1130 struct lio *lio = (struct lio *)arg1;
1131 struct octeon_device *oct = lio->oct_dev;
1135 max_combined = lio->linfo.num_txpciq;
1204 struct lio *lio = (struct lio *)arg1;
1205 struct octeon_device *oct = lio->oct_dev;
1225 max_combined = lio->linfo.num_txpciq;
1236 lio_ifstate_set(lio, LIO_IFSTATE_RESETTING);
1238 if (if_getdrvflags(lio->ifp) & IFF_DRV_RUNNING) {
1239 lio_stop(lio->ifp);
1243 if (lio_reset_queues(lio->ifp, combined_count))
1248 lio_open(lio);
1250 lio_ifstate_reset(lio, LIO_IFSTATE_RESETTING);
1259 struct lio *lio = (struct lio *)arg1;
1260 struct ifnet *ifp = lio->ifp;
1263 if (lio_ifstate_check(lio, LIO_IFSTATE_RESETTING))
1266 old_msglvl = new_msglvl = lio->msg_enable;
1275 if (new_msglvl ^ lio->msg_enable) {
1282 lio->msg_enable = new_msglvl;
1290 struct lio *lio = (struct lio *)arg1;
1293 old_time = new_time = lio->stats_interval;
1302 lio->stats_interval = new_time;
1318 struct lio *lio = if_getsoftc(ifp);
1396 callout_schedule(&lio->stats_timer,
1397 lio_ms_to_ticks(lio->stats_interval));
1404 struct lio *lio = arg;
1405 struct octeon_device *oct_dev = lio->oct_dev;
1410 if (callout_pending(&lio->stats_timer) ||
1411 callout_active(&lio->stats_timer) == 0)
1424 sc->iq_no = lio->linfo.txpciq[0].s.q_no;
1442 callout_schedule(&lio->stats_timer,
1443 lio_ms_to_ticks(lio->stats_interval));
1453 struct lio *lio = if_getsoftc(ifp);
1462 memcpy(&lio->intrmod_cfg, &resp->intrmod,
1471 lio_get_intrmod_cfg(struct lio *lio, struct octeon_intrmod_cfg *intr_cfg)
1475 struct octeon_device *oct_dev = lio->oct_dev;
1487 sc->iq_no = lio->linfo.txpciq[0].s.q_no;
1527 lio_set_intrmod_cfg(struct lio *lio, struct octeon_intrmod_cfg *intr_cfg)
1532 struct octeon_device *oct_dev = lio->oct_dev;
1553 sc->iq_no = lio->linfo.txpciq[0].s.q_no;
1588 lio_intrmod_cfg_rx_intrcnt(struct lio *lio, struct octeon_intrmod_cfg *intrmod,
1591 struct octeon_device *oct = lio->oct_dev;
1626 lio_intrmod_cfg_rx_intrtime(struct lio *lio, struct octeon_intrmod_cfg *intrmod,
1629 struct octeon_device *oct = lio->oct_dev;
1666 lio_intrmod_cfg_tx_intrcnt(struct lio *lio, struct octeon_intrmod_cfg *intrmod,
1669 struct octeon_device *oct = lio->oct_dev;
1713 struct lio *lio = (struct lio *)arg1;
1714 struct octeon_device *oct = lio->oct_dev;
1723 if (lio->intrmod_cfg.rx_enable)
1724 new_val = old_val = lio->intrmod_cfg.rx_enable;
1733 lio->intrmod_cfg.rx_enable = new_val ? 1 : 0;
1737 if (lio->intrmod_cfg.tx_enable)
1738 new_val = old_val = lio->intrmod_cfg.tx_enable;
1747 lio->intrmod_cfg.tx_enable = new_val ? 1 : 0;
1751 if (!lio->intrmod_cfg.rx_enable)
1765 if (!lio->intrmod_cfg.rx_enable)
1779 if (!lio->intrmod_cfg.tx_enable)
1793 if (lio->intrmod_cfg.rx_enable)
1794 new_val = old_val = lio->intrmod_cfg.minpkt_ratethr;
1803 if (lio->intrmod_cfg.rx_enable || lio->intrmod_cfg.tx_enable)
1804 lio->intrmod_cfg.minpkt_ratethr = new_val;
1808 if (lio->intrmod_cfg.rx_enable)
1809 new_val = old_val = lio->intrmod_cfg.rx_mintmr_trigger;
1818 if (lio->intrmod_cfg.rx_enable)
1819 lio->intrmod_cfg.rx_mintmr_trigger = new_val;
1823 if (lio->intrmod_cfg.rx_enable)
1824 new_val = old_val = lio->intrmod_cfg.rx_mincnt_trigger;
1833 if (lio->intrmod_cfg.rx_enable)
1834 lio->intrmod_cfg.rx_mincnt_trigger = new_val;
1838 if (lio->intrmod_cfg.tx_enable)
1839 new_val = old_val = lio->intrmod_cfg.tx_mincnt_trigger;
1848 if (lio->intrmod_cfg.tx_enable)
1849 lio->intrmod_cfg.tx_mincnt_trigger = new_val;
1853 if (lio->intrmod_cfg.rx_enable)
1854 new_val = old_val = lio->intrmod_cfg.maxpkt_ratethr;
1863 if (lio->intrmod_cfg.rx_enable || lio->intrmod_cfg.tx_enable)
1864 lio->intrmod_cfg.maxpkt_ratethr = new_val;
1868 if (lio->intrmod_cfg.rx_enable)
1869 new_val = old_val = lio->intrmod_cfg.rx_maxtmr_trigger;
1878 if (lio->intrmod_cfg.rx_enable)
1879 lio->intrmod_cfg.rx_maxtmr_trigger = new_val;
1883 if (lio->intrmod_cfg.rx_enable)
1884 new_val = old_val = lio->intrmod_cfg.rx_maxcnt_trigger;
1893 if (lio->intrmod_cfg.rx_enable)
1894 lio->intrmod_cfg.rx_maxcnt_trigger = new_val;
1898 if (lio->intrmod_cfg.tx_enable)
1899 new_val = old_val = lio->intrmod_cfg.tx_maxcnt_trigger;
1908 if (lio->intrmod_cfg.tx_enable)
1909 lio->intrmod_cfg.tx_maxcnt_trigger = new_val;
1913 if (lio->intrmod_cfg.rx_enable)
1914 new_val = old_val = lio->intrmod_cfg.check_intrvl;
1923 if (lio->intrmod_cfg.rx_enable || lio->intrmod_cfg.tx_enable)
1924 lio->intrmod_cfg.check_intrvl = new_val;
1931 lio->intrmod_cfg.rx_usecs = LIO_GET_OQ_INTR_TIME_CFG(lio_get_conf(oct));
1932 lio->intrmod_cfg.rx_frames = LIO_GET_OQ_INTR_PKT_CFG(lio_get_conf(oct));
1933 lio->intrmod_cfg.tx_frames = LIO_GET_IQ_INTR_PKT_CFG(lio_get_conf(oct));
1935 ret = lio_set_intrmod_cfg(lio, &lio->intrmod_cfg);
1939 if (!lio->intrmod_cfg.rx_enable) {
1946 ret = lio_intrmod_cfg_rx_intrtime(lio, &lio->intrmod_cfg,
1951 ret = lio_intrmod_cfg_rx_intrcnt(lio, &lio->intrmod_cfg,
1962 if (!lio->intrmod_cfg.tx_enable) {
1966 ret = lio_intrmod_cfg_tx_intrcnt(lio, &lio->intrmod_cfg,