Lines Matching refs:ppc
92 ppc_isa_dmadone(struct ppc_data *ppc) in ppc_isa_dmadone() argument
94 isa_dmadone(ppc->ppc_dmaflags, ppc->ppc_dmaddr, ppc->ppc_dmacnt, in ppc_isa_dmadone()
95 ppc->ppc_dmachan); in ppc_isa_dmadone()
101 struct ppc_data *ppc = device_get_softc(dev); in ppc_isa_attach() local
103 if ((ppc->ppc_avm & PPB_ECP) && (ppc->ppc_dmachan > 0)) { in ppc_isa_attach()
105 isa_dma_acquire(ppc->ppc_dmachan); in ppc_isa_attach()
106 isa_dmainit(ppc->ppc_dmachan, 1024); /* nlpt.BUFSIZE */ in ppc_isa_attach()
107 ppc->ppc_dmadone = ppc_isa_dmadone; in ppc_isa_attach()
140 struct ppc_data *ppc = device_get_softc(dev); in ppc_isa_write() local
145 PPC_ASSERT_LOCKED(ppc); in ppc_isa_write()
146 if (!(ppc->ppc_avm & PPB_ECP)) in ppc_isa_write()
148 if (ppc->ppc_dmachan == 0) in ppc_isa_write()
155 ecr_sav = r_ecr(ppc); in ppc_isa_write()
156 ctr_sav = r_ctr(ppc); in ppc_isa_write()
164 w_ecr(ppc, ecr); in ppc_isa_write()
167 ctr = r_ctr(ppc); in ppc_isa_write()
169 w_ctr(ppc, ctr); in ppc_isa_write()
171 ppc->ppc_dmaflags = 0; in ppc_isa_write()
172 ppc->ppc_dmaddr = (caddr_t)buf; in ppc_isa_write()
173 ppc->ppc_dmacnt = (u_int)len; in ppc_isa_write()
175 switch (ppc->ppc_mode) { in ppc_isa_write()
188 w_ecr(ppc, ecr); in ppc_isa_write()
189 ecr = r_ecr(ppc); in ppc_isa_write()
191 ppc->ppc_dmastat = PPC_DMA_INIT; in ppc_isa_write()
195 ppc->ppc_irqstat = PPC_IRQ_DMA; in ppc_isa_write()
196 w_ecr(ppc, ecr); in ppc_isa_write()
198 isa_dmastart(ppc->ppc_dmaflags, ppc->ppc_dmaddr, ppc->ppc_dmacnt, in ppc_isa_write()
199 ppc->ppc_dmachan); in ppc_isa_write()
200 ppc->ppc_dmastat = PPC_DMA_STARTED; in ppc_isa_write()
203 printf("s%d", ppc->ppc_dmacnt); in ppc_isa_write()
212 error = mtx_sleep(ppc, &ppc->ppc_lock, PPBPRI | PCATCH, in ppc_isa_write()
221 isa_dmadone(ppc->ppc_dmaflags, ppc->ppc_dmaddr, in ppc_isa_write()
222 ppc->ppc_dmacnt, ppc->ppc_dmachan); in ppc_isa_write()
225 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
227 ppc->ppc_dmastat = PPC_DMA_INTERRUPTED; in ppc_isa_write()
232 while (!(r_ecr(ppc) & PPC_FIFO_EMPTY)) { in ppc_isa_write()
234 if (r_ecr(ppc) & PPC_FIFO_EMPTY) in ppc_isa_write()
239 error = mtx_sleep(ppc, &ppc->ppc_lock, PPBPRI | PCATCH, in ppc_isa_write()
246 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
248 ppc->ppc_dmastat = PPC_DMA_INTERRUPTED; in ppc_isa_write()
256 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
266 w_ecr(ppc, ecr_sav); in ppc_isa_write()
267 w_ctr(ppc, ctr_sav); in ppc_isa_write()
271 DRIVER_MODULE(ppc, isa, ppc_isa_driver, 0, 0);