Lines Matching refs:dma
315 struct i596_dma *dma; member
369 static inline int wait_istat(struct net_device *dev, struct i596_dma *dma, int delcnt, char *str) in wait_istat() argument
371 DMA_INV(dev, &(dma->iscp), sizeof(struct i596_iscp)); in wait_istat()
372 while (--delcnt && dma->iscp.stat) { in wait_istat()
374 DMA_INV(dev, &(dma->iscp), sizeof(struct i596_iscp)); in wait_istat()
378 dev->name, str, SWAP16(dma->iscp.stat)); in wait_istat()
385 static inline int wait_cmd(struct net_device *dev, struct i596_dma *dma, int delcnt, char *str) in wait_cmd() argument
387 DMA_INV(dev, &(dma->scb), sizeof(struct i596_scb)); in wait_cmd()
388 while (--delcnt && dma->scb.command) { in wait_cmd()
390 DMA_INV(dev, &(dma->scb), sizeof(struct i596_scb)); in wait_cmd()
395 SWAP16(dma->scb.status), in wait_cmd()
396 SWAP16(dma->scb.command)); in wait_cmd()
406 struct i596_dma *dma = lp->dma; in i596_display_data() local
412 &dma->scp, dma->scp.sysbus, SWAP32(dma->scp.iscp)); in i596_display_data()
414 &dma->iscp, SWAP32(dma->iscp.stat), SWAP32(dma->iscp.scb)); in i596_display_data()
417 &dma->scb, SWAP16(dma->scb.status), SWAP16(dma->scb.command), in i596_display_data()
418 SWAP16(dma->scb.cmd), SWAP32(dma->scb.rfd)); in i596_display_data()
421 SWAP32(dma->scb.crc_err), SWAP32(dma->scb.align_err), in i596_display_data()
422 SWAP32(dma->scb.resource_err), SWAP32(dma->scb.over_err), in i596_display_data()
423 SWAP32(dma->scb.rcvdt_err), SWAP32(dma->scb.short_err)); in i596_display_data()
454 DMA_INV(dev, dma, sizeof(struct i596_dma)); in i596_display_data()
458 …e virt_to_dma(lp, v) ((lp)->dma_addr + (dma_addr_t)((unsigned long)(v)-(unsigned long)((lp)->dma)))
463 struct i596_dma *dma = lp->dma; in init_rx_bufs() local
470 for (i = 0, rbd = dma->rbds; i < rx_ring_size; i++, rbd++) { in init_rx_bufs()
487 lp->rbd_head = dma->rbds; in init_rx_bufs()
488 rbd = dma->rbds + rx_ring_size - 1; in init_rx_bufs()
489 rbd->v_next = dma->rbds; in init_rx_bufs()
490 rbd->b_next = SWAP32(virt_to_dma(lp, dma->rbds)); in init_rx_bufs()
494 for (i = 0, rfd = dma->rfds; i < rx_ring_size; i++, rfd++) { in init_rx_bufs()
501 lp->rfd_head = dma->rfds; in init_rx_bufs()
502 dma->scb.rfd = SWAP32(virt_to_dma(lp, dma->rfds)); in init_rx_bufs()
503 rfd = dma->rfds; in init_rx_bufs()
505 rfd->v_prev = dma->rfds + rx_ring_size - 1; in init_rx_bufs()
506 rfd = dma->rfds + rx_ring_size - 1; in init_rx_bufs()
507 rfd->v_next = dma->rfds; in init_rx_bufs()
508 rfd->b_next = SWAP32(virt_to_dma(lp, dma->rfds)); in init_rx_bufs()
511 DMA_WBACK_INV(dev, dma, sizeof(struct i596_dma)); in init_rx_bufs()
521 for (i = 0, rbd = lp->dma->rbds; i < rx_ring_size; i++, rbd++) { in remove_rx_bufs()
535 struct i596_dma *dma = lp->dma; in rebuild_rx_bufs() local
541 dma->rfds[i].rbd = I596_NULL; in rebuild_rx_bufs()
542 dma->rfds[i].cmd = SWAP16(CMD_FLEX); in rebuild_rx_bufs()
544 dma->rfds[rx_ring_size-1].cmd = SWAP16(CMD_EOL|CMD_FLEX); in rebuild_rx_bufs()
545 lp->rfd_head = dma->rfds; in rebuild_rx_bufs()
546 dma->scb.rfd = SWAP32(virt_to_dma(lp, dma->rfds)); in rebuild_rx_bufs()
547 lp->rbd_head = dma->rbds; in rebuild_rx_bufs()
548 dma->rfds[0].rbd = SWAP32(virt_to_dma(lp, dma->rbds)); in rebuild_rx_bufs()
550 DMA_WBACK_INV(dev, dma, sizeof(struct i596_dma)); in rebuild_rx_bufs()
557 struct i596_dma *dma = lp->dma; in init_i596_mem() local
567 dma->scp.sysbus = SYSBUS; in init_i596_mem()
568 dma->scp.iscp = SWAP32(virt_to_dma(lp, &(dma->iscp))); in init_i596_mem()
569 dma->iscp.scb = SWAP32(virt_to_dma(lp, &(dma->scb))); in init_i596_mem()
570 dma->iscp.stat = SWAP32(ISCP_BUSY); in init_i596_mem()
574 dma->scb.cmd = I596_NULL; in init_i596_mem()
578 DMA_WBACK(dev, &(dma->scp), sizeof(struct i596_scp)); in init_i596_mem()
579 DMA_WBACK(dev, &(dma->iscp), sizeof(struct i596_iscp)); in init_i596_mem()
580 DMA_WBACK(dev, &(dma->scb), sizeof(struct i596_scb)); in init_i596_mem()
582 mpu_port(dev, PORT_ALTSCP, virt_to_dma(lp, &dma->scp)); in init_i596_mem()
584 if (wait_istat(dev, dma, 1000, "initialization timed out")) in init_i596_mem()
598 dma->scb.command = 0; in init_i596_mem()
599 DMA_WBACK(dev, &(dma->scb), sizeof(struct i596_scb)); in init_i596_mem()
603 memcpy(dma->cf_cmd.i596_config, init_setup, 14); in init_i596_mem()
604 dma->cf_cmd.cmd.command = SWAP16(CmdConfigure); in init_i596_mem()
605 DMA_WBACK(dev, &(dma->cf_cmd), sizeof(struct cf_cmd)); in init_i596_mem()
606 i596_add_cmd(dev, &dma->cf_cmd.cmd); in init_i596_mem()
609 memcpy(dma->sa_cmd.eth_addr, dev->dev_addr, ETH_ALEN); in init_i596_mem()
610 dma->sa_cmd.cmd.command = SWAP16(CmdSASetup); in init_i596_mem()
611 DMA_WBACK(dev, &(dma->sa_cmd), sizeof(struct sa_cmd)); in init_i596_mem()
612 i596_add_cmd(dev, &dma->sa_cmd.cmd); in init_i596_mem()
615 dma->tdr_cmd.cmd.command = SWAP16(CmdTDR); in init_i596_mem()
616 DMA_WBACK(dev, &(dma->tdr_cmd), sizeof(struct tdr_cmd)); in init_i596_mem()
617 i596_add_cmd(dev, &dma->tdr_cmd.cmd); in init_i596_mem()
621 if (wait_cmd(dev, dma, 1000, "timed out waiting to issue RX_START")) { in init_i596_mem()
626 dma->scb.command = SWAP16(RX_START); in init_i596_mem()
627 dma->scb.rfd = SWAP32(virt_to_dma(lp, dma->rfds)); in init_i596_mem()
628 DMA_WBACK(dev, &(dma->scb), sizeof(struct i596_scb)); in init_i596_mem()
633 if (wait_cmd(dev, dma, 1000, "RX_START not processed")) in init_i596_mem()
779 lp->dma->scb.rfd = rfd->b_next; in i596_rx()
832 wait_cmd(dev, lp->dma, 100, "i596_cleanup_cmd timed out"); in i596_cleanup_cmd()
833 lp->dma->scb.cmd = I596_NULL; in i596_cleanup_cmd()
834 DMA_WBACK(dev, &(lp->dma->scb), sizeof(struct i596_scb)); in i596_cleanup_cmd()
846 wait_cmd(dev, lp->dma, 100, "i596_reset timed out"); in i596_reset()
851 lp->dma->scb.command = SWAP16(CUC_ABORT | RX_ABORT); in i596_reset()
852 DMA_WBACK(dev, &(lp->dma->scb), sizeof(struct i596_scb)); in i596_reset()
856 wait_cmd(dev, lp->dma, 1000, "i596_reset 2 timed out"); in i596_reset()
870 struct i596_dma *dma = lp->dma; in i596_add_cmd() local
890 wait_cmd(dev, dma, 100, "i596_add_cmd timed out"); in i596_add_cmd()
891 dma->scb.cmd = SWAP32(virt_to_dma(lp, &cmd->status)); in i596_add_cmd()
892 dma->scb.command = SWAP16(CUC_START); in i596_add_cmd()
893 DMA_WBACK(dev, &(dma->scb), sizeof(struct i596_scb)); in i596_add_cmd()
957 lp->dma->scb.command = SWAP16(CUC_START | RX_START); in i596_tx_timeout()
958 DMA_WBACK_INV(dev, &(lp->dma->scb), sizeof(struct i596_scb)); in i596_tx_timeout()
987 tx_cmd = lp->dma->tx_cmds + lp->next_tx_cmd; in i596_start_xmit()
988 tbd = lp->dma->tbds + lp->next_tx_cmd; in i596_start_xmit()
1052 struct i596_dma *dma; in i82596_probe() local
1066 dma = (struct i596_dma *) DMA_ALLOC(dev->dev.parent, in i82596_probe()
1068 if (!dma) { in i82596_probe()
1076 memset(dma, 0, sizeof(struct i596_dma)); in i82596_probe()
1077 lp->dma = dma; in i82596_probe()
1079 dma->scb.command = 0; in i82596_probe()
1080 dma->scb.cmd = I596_NULL; in i82596_probe()
1081 dma->scb.rfd = I596_NULL; in i82596_probe()
1084 DMA_WBACK_INV(dev, dma, sizeof(struct i596_dma)); in i82596_probe()
1089 (void *)dma, lp->dma_addr); in i82596_probe()
1098 dev->name, dma, (int)sizeof(struct i596_dma), in i82596_probe()
1099 &dma->scb)); in i82596_probe()
1117 struct i596_dma *dma; in i596_interrupt() local
1121 dma = lp->dma; in i596_interrupt()
1125 wait_cmd(dev, dma, 100, "i596 interrupt, timeout"); in i596_interrupt()
1126 status = SWAP16(dma->scb.status); in i596_interrupt()
1258 dma->scb.cmd = SWAP32(virt_to_dma(lp, &lp->cmd_head->status)); in i596_interrupt()
1259 DMA_WBACK_INV(dev, &dma->scb, sizeof(struct i596_scb)); in i596_interrupt()
1282 wait_cmd(dev, dma, 100, "i596 interrupt, timeout"); in i596_interrupt()
1283 dma->scb.command = SWAP16(ack_cmd); in i596_interrupt()
1284 DMA_WBACK(dev, &dma->scb, sizeof(struct i596_scb)); in i596_interrupt()
1292 wait_cmd(dev, dma, 100, "i596 interrupt, exit timeout"); in i596_interrupt()
1309 dev->name, SWAP16(lp->dma->scb.status))); in i596_close()
1313 wait_cmd(dev, lp->dma, 100, "close1 timed out"); in i596_close()
1314 lp->dma->scb.command = SWAP16(CUC_ABORT | RX_ABORT); in i596_close()
1315 DMA_WBACK(dev, &lp->dma->scb, sizeof(struct i596_scb)); in i596_close()
1319 wait_cmd(dev, lp->dma, 100, "close2 timed out"); in i596_close()
1337 struct i596_dma *dma = lp->dma; in set_multicast_list() local
1348 !(dma->cf_cmd.i596_config[8] & 0x01)) { in set_multicast_list()
1349 dma->cf_cmd.i596_config[8] |= 0x01; in set_multicast_list()
1353 (dma->cf_cmd.i596_config[8] & 0x01)) { in set_multicast_list()
1354 dma->cf_cmd.i596_config[8] &= ~0x01; in set_multicast_list()
1358 (dma->cf_cmd.i596_config[11] & 0x20)) { in set_multicast_list()
1359 dma->cf_cmd.i596_config[11] &= ~0x20; in set_multicast_list()
1363 !(dma->cf_cmd.i596_config[11] & 0x20)) { in set_multicast_list()
1364 dma->cf_cmd.i596_config[11] |= 0x20; in set_multicast_list()
1368 if (dma->cf_cmd.cmd.command) in set_multicast_list()
1373 dma->cf_cmd.cmd.command = SWAP16(CmdConfigure); in set_multicast_list()
1374 DMA_WBACK_INV(dev, &dma->cf_cmd, sizeof(struct cf_cmd)); in set_multicast_list()
1375 i596_add_cmd(dev, &dma->cf_cmd.cmd); in set_multicast_list()
1391 cmd = &dma->mc_cmd; in set_multicast_list()
1406 DMA_WBACK_INV(dev, &dma->mc_cmd, sizeof(struct mc_cmd)); in set_multicast_list()