Lines Matching refs:port

62 #define TX_DMA_ADDR(port)	(0x40 + (4 * (port)))
63 #define RX_DMA_ADDR(port) (0x30 + (4 * (port)))
145 int port;
171 static void fpga_queue(struct solos_card *card, int port, struct sk_buff *skb,
221 prm.port = SOLOS_CHAN(atmdev);
227 fpga_queue(card, prm.port, skb, NULL);
277 prm.port = SOLOS_CHAN(atmdev);
283 fpga_queue(card, prm.port, skb, NULL);
348 static int process_status(struct solos_card *card, int port, struct sk_buff *skb)
353 if (!card->atmdev[port])
371 dev_dbg(&card->dev->dev, "Status packet indicated Solos error on port %d (starting up?)\n",
372 port);
393 atm_dev_signal_change(card->atmdev[port], ATM_PHY_SIG_LOST);
394 dev_info(&card->dev->dev, "Port %d: %s\n", port, state_str);
406 port, state_str, rate_down/1000, rate_up/1000,
409 card->atmdev[port]->link_rate = rate_down / 424;
410 atm_dev_signal_change(card->atmdev[port], ATM_PHY_SIG_FOUND);
415 static int process_command(struct solos_card *card, int port, struct sk_buff *skb)
435 if (prm->port == port && prm->pid == cmdpid) {
768 int port;
777 for (port = 0; port < card->nr_ports; port++) {
778 if (card_flags & (0x10 << port)) {
785 skb = card->rx_skb[port];
786 card->rx_skb[port] = NULL;
798 rx_done |= 0x10 << port;
800 memcpy_fromio(header, RX_BUF(card, port), sizeof(*header));
816 RX_BUF(card, port) + sizeof(*header),
820 dev_info(&card->dev->dev, "Received: port %d\n", port);
829 vcc = find_vcc(card->atmdev[port], le16_to_cpu(header->vpi),
833 dev_warn(&card->dev->dev, "Received packet for unknown VPI.VCI %d.%d on port %d\n",
835 port);
845 if (process_status(card, port, skb) &&
847 dev_warn(&card->dev->dev, "Bad status packet of %d bytes on port %d:\n", skb->len, port);
855 if (process_command(card, port, skb))
858 if (skb_queue_len(&card->cli_queue[port]) > 10) {
860 dev_warn(&card->dev->dev, "Dropping console response on port %d\n",
861 port);
864 skb_queue_tail(&card->cli_queue[port], skb);
870 if (card->using_dma && card->atmdev[port] &&
871 !card->rx_skb[port]) {
878 card->config_regs + RX_DMA_ADDR(port));
879 card->rx_skb[port] = skb;
952 unsigned char port = SOLOS_CHAN(vcc->dev);
958 skb_queue_walk_safe(&card->tx_queue[port], skb, tmpskb) {
960 skb_unlink(skb, &card->tx_queue[port]);
979 fpga_queue(card, port, skb, NULL);
983 "Timeout waiting for VCC close on port %d\n", port);
1026 static void fpga_queue(struct solos_card *card, int port, struct sk_buff *skb,
1035 old_len = skb_queue_len(&card->tx_queue[port]);
1036 skb_queue_tail(&card->tx_queue[port], skb);
1038 card->tx_mask |= (1 << port);
1053 unsigned char port;
1063 * for a new port... but it's going to call this function again if
1068 for (port = 0; tx_pending; tx_pending >>= 1, port++) {
1070 struct sk_buff *oldskb = card->tx_skb[port];
1074 card->tx_skb[port] = NULL;
1077 skb = skb_dequeue(&card->tx_queue[port]);
1079 card->tx_mask &= ~(1 << port);
1083 memcpy_toio(TX_BUF(card, port), skb->data, skb->len);
1084 tx_started |= 1 << port;
1089 data = card->dma_bounce + (BUF_SIZE * port);
1094 card->tx_skb[port] = skb;
1096 card->config_regs + TX_DMA_ADDR(port));
1108 dev_info(&card->dev->dev, "Transmitted: port %d\n",
1109 port);