Lines Matching refs:ppc
93 ppc_isa_dmadone(struct ppc_data *ppc) in ppc_isa_dmadone() argument
95 isa_dmadone(ppc->ppc_dmaflags, ppc->ppc_dmaddr, ppc->ppc_dmacnt, in ppc_isa_dmadone()
96 ppc->ppc_dmachan); in ppc_isa_dmadone()
102 struct ppc_data *ppc = device_get_softc(dev); in ppc_isa_attach() local
104 if ((ppc->ppc_avm & PPB_ECP) && (ppc->ppc_dmachan > 0)) { in ppc_isa_attach()
106 isa_dma_acquire(ppc->ppc_dmachan); in ppc_isa_attach()
107 isa_dmainit(ppc->ppc_dmachan, 1024); /* nlpt.BUFSIZE */ in ppc_isa_attach()
108 ppc->ppc_dmadone = ppc_isa_dmadone; in ppc_isa_attach()
141 struct ppc_data *ppc = device_get_softc(dev); in ppc_isa_write() local
146 PPC_ASSERT_LOCKED(ppc); in ppc_isa_write()
147 if (!(ppc->ppc_avm & PPB_ECP)) in ppc_isa_write()
149 if (ppc->ppc_dmachan == 0) in ppc_isa_write()
156 ecr_sav = r_ecr(ppc); in ppc_isa_write()
157 ctr_sav = r_ctr(ppc); in ppc_isa_write()
165 w_ecr(ppc, ecr); in ppc_isa_write()
168 ctr = r_ctr(ppc); in ppc_isa_write()
170 w_ctr(ppc, ctr); in ppc_isa_write()
172 ppc->ppc_dmaflags = 0; in ppc_isa_write()
173 ppc->ppc_dmaddr = (caddr_t)buf; in ppc_isa_write()
174 ppc->ppc_dmacnt = (u_int)len; in ppc_isa_write()
176 switch (ppc->ppc_mode) { in ppc_isa_write()
189 w_ecr(ppc, ecr); in ppc_isa_write()
190 ecr = r_ecr(ppc); in ppc_isa_write()
192 ppc->ppc_dmastat = PPC_DMA_INIT; in ppc_isa_write()
196 ppc->ppc_irqstat = PPC_IRQ_DMA; in ppc_isa_write()
197 w_ecr(ppc, ecr); in ppc_isa_write()
199 isa_dmastart(ppc->ppc_dmaflags, ppc->ppc_dmaddr, ppc->ppc_dmacnt, in ppc_isa_write()
200 ppc->ppc_dmachan); in ppc_isa_write()
201 ppc->ppc_dmastat = PPC_DMA_STARTED; in ppc_isa_write()
204 printf("s%d", ppc->ppc_dmacnt); in ppc_isa_write()
213 error = mtx_sleep(ppc, &ppc->ppc_lock, PPBPRI | PCATCH, in ppc_isa_write()
222 isa_dmadone(ppc->ppc_dmaflags, ppc->ppc_dmaddr, in ppc_isa_write()
223 ppc->ppc_dmacnt, ppc->ppc_dmachan); in ppc_isa_write()
226 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
228 ppc->ppc_dmastat = PPC_DMA_INTERRUPTED; in ppc_isa_write()
233 while (!(r_ecr(ppc) & PPC_FIFO_EMPTY)) { in ppc_isa_write()
235 if (r_ecr(ppc) & PPC_FIFO_EMPTY) in ppc_isa_write()
240 error = mtx_sleep(ppc, &ppc->ppc_lock, PPBPRI | PCATCH, in ppc_isa_write()
247 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
249 ppc->ppc_dmastat = PPC_DMA_INTERRUPTED; in ppc_isa_write()
257 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
267 w_ecr(ppc, ecr_sav); in ppc_isa_write()
268 w_ctr(ppc, ctr_sav); in ppc_isa_write()
272 DRIVER_MODULE(ppc, isa, ppc_isa_driver, 0, 0);