Lines Matching refs:port

190  * Where appropriate the two low order bits indicate the port number
226 /* TE1 port physical configuration */
370 #define STARTPORT 3 /* Start an HDLC port */
371 #define STOPPORT 4 /* Stop an HDLC port */
372 #define ABORTTX 5 /* Abort the transmitter for a port */
424 /* Per port (line or channel) information
459 /* Per port info */
481 /* Convert an HDLC device pointer into a port info pointer and similar */
825 fst_tx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,
828 struct net_device *dev = port_to_dev(port);
834 FST_WRB(card, txDescrRing[port->index][txpos].bits,
855 fst_rx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,
858 struct net_device *dev = port_to_dev(port);
863 pi = port->index;
875 if (port->mode == FST_RAW)
880 fst_process_rx_status(rx_status, port_to_dev(port)->name);
942 /* Issue a Mailbox command for a port.
947 fst_issue_cmd(struct fst_port_info *port, unsigned short cmd)
954 card = port->card;
956 mbval = FST_RDW(card, portMailbox[port->index][0]);
970 mbval = FST_RDW(card, portMailbox[port->index][0]);
979 FST_WRW(card, portMailbox[port->index][0], cmd);
982 port->txpos = 0;
983 port->txipos = 0;
984 port->start = 0;
993 fst_op_raise(struct fst_port_info *port, unsigned int outputs)
995 outputs |= FST_RDL(port->card, v24OpSts[port->index]);
996 FST_WRL(port->card, v24OpSts[port->index], outputs);
998 if (port->run)
999 fst_issue_cmd(port, SETV24O);
1003 fst_op_lower(struct fst_port_info *port, unsigned int outputs)
1005 outputs = ~outputs & FST_RDL(port->card, v24OpSts[port->index]);
1006 FST_WRL(port->card, v24OpSts[port->index], outputs);
1008 if (port->run)
1009 fst_issue_cmd(port, SETV24O);
1013 * Setup port Rx buffers
1016 fst_rx_config(struct fst_port_info *port)
1024 pi = port->index;
1025 card = port->card;
1036 port->rxpos = 0;
1041 * Setup port Tx buffers
1044 fst_tx_config(struct fst_port_info *port)
1052 pi = port->index;
1053 card = port->card;
1063 port->txpos = 0;
1064 port->txipos = 0;
1065 port->start = 0;
1072 fst_intr_te1_alarm(struct fst_card_info *card, struct fst_port_info *port)
1086 if (netif_carrier_ok(port_to_dev(port))) {
1088 netif_carrier_off(port_to_dev(port));
1094 if (!netif_carrier_ok(port_to_dev(port))) {
1096 netif_carrier_on(port_to_dev(port));
1118 fst_intr_ctlchg(struct fst_card_info *card, struct fst_port_info *port)
1122 signals = FST_RDL(card, v24DebouncedSts[port->index]);
1124 if (signals & (((port->hwif == X21) || (port->hwif == X21D))
1126 if (!netif_carrier_ok(port_to_dev(port))) {
1128 netif_carrier_on(port_to_dev(port));
1131 if (netif_carrier_ok(port_to_dev(port))) {
1133 netif_carrier_off(port_to_dev(port));
1141 fst_log_rx_error(struct fst_card_info *card, struct fst_port_info *port,
1144 struct net_device *dev = port_to_dev(port);
1152 dbg(DBG_ASS, "Rx fifo error on card %d port %d buffer %d\n",
1153 card->card_no, port->index, rxp);
1157 dbg(DBG_ASS, "Rx crc error on card %d port %d\n",
1158 card->card_no, port->index);
1162 dbg(DBG_ASS, "Rx frame error on card %d port %d\n",
1163 card->card_no, port->index);
1167 dbg(DBG_ASS, "Rx length error (%d) on card %d port %d\n",
1168 len, card->card_no, port->index);
1175 fst_recover_rx_error(struct fst_card_info *card, struct fst_port_info *port,
1181 pi = port->index;
1206 port->rxpos = rxp;
1214 fst_intr_rx(struct fst_card_info *card, struct fst_port_info *port)
1222 struct net_device *dev = port_to_dev(port);
1225 pi = port->index;
1226 rxp = port->rxpos;
1229 dbg(DBG_RX | DBG_INTR, "intr_rx: No buffer port %d pos %d\n",
1247 card->card_no, port->index);
1252 port->rxpos = rxp;
1262 fst_log_rx_error(card, port, dmabits, rxp, len);
1263 fst_recover_rx_error(card, port, dmabits, rxp, len);
1277 port->rxpos = rxp;
1301 if (port->mode == FST_RAW)
1306 fst_process_rx_status(rx_status, port_to_dev(port)->name);
1311 card->dma_port_rx = port;
1317 if (rxp != port->rxpos) {
1319 dbg(DBG_ASS, "rxp = %d rxpos = %d\n", rxp, port->rxpos);
1322 port->rxpos = rxp;
1333 struct fst_port_info *port;
1342 * Step through each port on this card
1346 for (pi = 0, port = card->ports; pi < card->nports; pi++, port++) {
1347 if (!port->run)
1350 dev = port_to_dev(port);
1351 while (!(FST_RDB(card, txDescrRing[pi][port->txpos].bits) &
1360 if ((txq_length = port->txqe - port->txqs) < 0) {
1373 skb = port->txq[port->txqs];
1374 port->txqs++;
1375 if (port->txqs == FST_TXQ_DEPTH) {
1376 port->txqs = 0;
1383 FST_WRW(card, txDescrRing[pi][port->txpos].bcnt,
1390 [port->
1394 txDescrRing[pi][port->txpos].
1404 card->dma_port_tx = port;
1406 card->dma_txpos = port->txpos;
1412 [port->txpos][0]),
1415 if (++port->txpos >= NUM_TX_BUFFER)
1416 port->txpos = 0;
1420 if (port->start) {
1423 (port));
1424 port->start = 0;
1441 struct fst_port_info *port;
1447 for (pi = 0, port = card->ports; pi < card->nports; pi++, port++) {
1448 if (!port->run)
1451 while (!(FST_RDB(card, rxDescrRing[pi][port->rxpos].bits)
1462 fst_intr_rx(card, port);
1476 struct fst_port_info *port;
1568 port = &card->ports[event & 0x03];
1575 if (port->run)
1576 fst_intr_te1_alarm(card, port);
1583 if (port->run)
1584 fst_intr_ctlchg(card, port);
1591 dbg(DBG_TX, "Abort complete port %d\n", port->index);
1601 dbg(DBG_TX, "Tx underflow port %d\n", port->index);
1602 port_to_dev(port)->stats.tx_errors++;
1603 port_to_dev(port)->stats.tx_fifo_errors++;
1604 dbg(DBG_ASS, "Tx underflow on card %d port %d\n",
1605 card->card_no, port->index);
1675 set_conf_from_info(struct fst_card_info *card, struct fst_port_info *port,
1688 port->mode = FST_RAW;
1690 port->mode = FST_GEN_HDLC;
1700 FST_WRB(card, portConfig[port->index].invertClock,
1765 gather_conf_info(struct fst_card_info *card, struct fst_port_info *port,
1772 i = port->index;
1805 * in bits 0 and 1 of cableStatus. See which port we are and
1809 if (port->index == 0) {
1861 fst_set_iface(struct fst_card_info *card, struct fst_port_info *port,
1879 i = port->index;
1884 port->hwif = V35;
1889 port->hwif = V24;
1894 port->hwif = X21;
1899 port->hwif = X21D;
1904 port->hwif = T1;
1909 port->hwif = E1;
1936 fst_get_iface(struct fst_card_info *card, struct fst_port_info *port,
1946 switch (port->hwif) {
1974 i = port->index;
1993 struct fst_port_info *port;
2001 port = dev_to_port(dev);
2002 card = port->card;
2078 gather_conf_info(card, port, &info);
2101 return set_conf_from_info(card, port, &info);
2106 return fst_get_iface(card, port, ifr);
2115 return fst_set_iface(card, port, ifr);
2118 port->mode = FST_RAW;
2122 if (port->mode == FST_RAW) {
2129 port->mode = FST_GEN_HDLC;
2142 fst_openport(struct fst_port_info *port)
2150 if (port->card->state == FST_RUNNING) {
2151 if (port->run) {
2152 dbg(DBG_OPEN, "open: found port already running\n");
2154 fst_issue_cmd(port, STOPPORT);
2155 port->run = 0;
2158 fst_rx_config(port);
2159 fst_tx_config(port);
2160 fst_op_raise(port, OPSTS_RTS | OPSTS_DTR);
2162 fst_issue_cmd(port, STARTPORT);
2163 port->run = 1;
2165 signals = FST_RDL(port->card, v24DebouncedSts[port->index]);
2166 if (signals & (((port->hwif == X21) || (port->hwif == X21D))
2168 netif_carrier_on(port_to_dev(port));
2170 netif_carrier_off(port_to_dev(port));
2172 txq_length = port->txqe - port->txqs;
2173 port->txqe = 0;
2174 port->txqs = 0;
2180 fst_closeport(struct fst_port_info *port)
2182 if (port->card->state == FST_RUNNING) {
2183 if (port->run) {
2184 port->run = 0;
2185 fst_op_lower(port, OPSTS_RTS | OPSTS_DTR);
2187 fst_issue_cmd(port, STOPPORT);
2189 dbg(DBG_OPEN, "close: port not running\n");
2198 struct fst_port_info *port;
2200 port = dev_to_port(dev);
2204 if (port->mode != FST_RAW) {
2212 fst_openport(port);
2220 struct fst_port_info *port;
2225 port = dev_to_port(dev);
2226 card = port->card;
2237 if (port->mode != FST_RAW) {
2258 struct fst_port_info *port;
2261 port = dev_to_port(dev);
2262 card = port->card;
2265 dbg(DBG_ASS, "Tx timeout card %d port %d\n",
2266 card->card_no, port->index);
2267 fst_issue_cmd(port, ABORTTX);
2271 port->start = 0;
2278 struct fst_port_info *port;
2282 port = dev_to_port(dev);
2283 card = port->card;
2292 "Tried to transmit but no carrier on card %d port %d\n",
2293 card->card_no, port->index);
2309 * Check there is room in the port txq
2312 if ((txq_length = port->txqe - port->txqs) < 0) {
2326 port->start = 1; /* I'm using this to signal stop sent up */
2335 dbg(DBG_ASS, "Tx queue overflow card %d port %d\n",
2336 card->card_no, port->index);
2344 port->txq[port->txqe] = skb;
2345 port->txqe++;
2346 if (port->txqe == FST_TXQ_DEPTH)
2347 port->txqe = 0;
2388 pr_err("Cannot register HDLC device for port %d (errno %d)\n",