1/*- 2 * Copyright (c) 2003 Hidetoshi Shimokawa 3 * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 17 unchanged lines hidden (view full) --- 26 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 30 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 * POSSIBILITY OF SUCH DAMAGE. 33 * |
34 * $FreeBSD: head/sys/dev/firewire/fwohci.c 178911 2008-05-10 09:22:06Z simokawa $ |
35 * 36 */ 37 38#define ATRQ_CH 0 39#define ATRS_CH 1 40#define ARRQ_CH 2 41#define ARRS_CH 3 42#define ITX_CH 4 --- 1697 unchanged lines hidden (view full) --- 1740 return err; 1741} 1742 1743int 1744fwohci_stop(struct fwohci_softc *sc, device_t dev) 1745{ 1746 u_int i; 1747 |
1748 fwohci_set_intr(&sc->fc, 0); 1749 |
1750/* Now stopping all DMA channel */ 1751 OWRITE(sc, OHCI_ARQCTLCLR, OHCI_CNTL_DMA_RUN); 1752 OWRITE(sc, OHCI_ARSCTLCLR, OHCI_CNTL_DMA_RUN); 1753 OWRITE(sc, OHCI_ATQCTLCLR, OHCI_CNTL_DMA_RUN); 1754 OWRITE(sc, OHCI_ATSCTLCLR, OHCI_CNTL_DMA_RUN); 1755 1756 for( i = 0 ; i < sc->fc.nisodma ; i ++ ){ 1757 OWRITE(sc, OHCI_IRCTLCLR(i), OHCI_CNTL_DMA_RUN); --- 840 unchanged lines hidden (view full) --- 2598 struct fwohcidb *db = db_tr->db; 2599 struct fw_xferq *ir; 2600 int i, ldesc; 2601 bus_addr_t dbuf[2]; 2602 int dsiz[2]; 2603 2604 ir = &dbch->xferq; 2605 if (ir->buf == NULL && (dbch->xferq.flag & FWXFERQ_EXTBUF) == 0) { |
2606 if (db_tr->buf == NULL) { 2607 db_tr->buf = fwdma_malloc_size(dbch->dmat, 2608 &db_tr->dma_map, ir->psize, &dbuf[0], 2609 BUS_DMA_NOWAIT); 2610 if (db_tr->buf == NULL) 2611 return(ENOMEM); 2612 } |
2613 db_tr->dbcnt = 1; 2614 dsiz[0] = ir->psize; 2615 bus_dmamap_sync(dbch->dmat, db_tr->dma_map, 2616 BUS_DMASYNC_PREREAD); 2617 } else { 2618 db_tr->dbcnt = 0; 2619 if (dummy_dma != NULL) { 2620 dsiz[db_tr->dbcnt] = sizeof(uint32_t); --- 365 unchanged lines hidden --- |