Lines Matching refs:ppc

96 ppc_isa_dmadone(struct ppc_data *ppc)  in ppc_isa_dmadone()  argument
98 isa_dmadone(ppc->ppc_dmaflags, ppc->ppc_dmaddr, ppc->ppc_dmacnt, in ppc_isa_dmadone()
99 ppc->ppc_dmachan); in ppc_isa_dmadone()
105 struct ppc_data *ppc = device_get_softc(dev); in ppc_isa_attach() local
107 if ((ppc->ppc_avm & PPB_ECP) && (ppc->ppc_dmachan > 0)) { in ppc_isa_attach()
109 isa_dma_acquire(ppc->ppc_dmachan); in ppc_isa_attach()
110 isa_dmainit(ppc->ppc_dmachan, 1024); /* nlpt.BUFSIZE */ in ppc_isa_attach()
111 ppc->ppc_dmadone = ppc_isa_dmadone; in ppc_isa_attach()
144 struct ppc_data *ppc = device_get_softc(dev); in ppc_isa_write() local
149 PPC_ASSERT_LOCKED(ppc); in ppc_isa_write()
150 if (!(ppc->ppc_avm & PPB_ECP)) in ppc_isa_write()
152 if (ppc->ppc_dmachan == 0) in ppc_isa_write()
159 ecr_sav = r_ecr(ppc); in ppc_isa_write()
160 ctr_sav = r_ctr(ppc); in ppc_isa_write()
168 w_ecr(ppc, ecr); in ppc_isa_write()
171 ctr = r_ctr(ppc); in ppc_isa_write()
173 w_ctr(ppc, ctr); in ppc_isa_write()
175 ppc->ppc_dmaflags = 0; in ppc_isa_write()
176 ppc->ppc_dmaddr = (caddr_t)buf; in ppc_isa_write()
177 ppc->ppc_dmacnt = (u_int)len; in ppc_isa_write()
179 switch (ppc->ppc_mode) { in ppc_isa_write()
192 w_ecr(ppc, ecr); in ppc_isa_write()
193 ecr = r_ecr(ppc); in ppc_isa_write()
195 ppc->ppc_dmastat = PPC_DMA_INIT; in ppc_isa_write()
199 ppc->ppc_irqstat = PPC_IRQ_DMA; in ppc_isa_write()
200 w_ecr(ppc, ecr); in ppc_isa_write()
202 isa_dmastart(ppc->ppc_dmaflags, ppc->ppc_dmaddr, ppc->ppc_dmacnt, in ppc_isa_write()
203 ppc->ppc_dmachan); in ppc_isa_write()
204 ppc->ppc_dmastat = PPC_DMA_STARTED; in ppc_isa_write()
207 printf("s%d", ppc->ppc_dmacnt); in ppc_isa_write()
216 error = mtx_sleep(ppc, &ppc->ppc_lock, PPBPRI | PCATCH, in ppc_isa_write()
225 isa_dmadone(ppc->ppc_dmaflags, ppc->ppc_dmaddr, in ppc_isa_write()
226 ppc->ppc_dmacnt, ppc->ppc_dmachan); in ppc_isa_write()
229 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
231 ppc->ppc_dmastat = PPC_DMA_INTERRUPTED; in ppc_isa_write()
236 while (!(r_ecr(ppc) & PPC_FIFO_EMPTY)) { in ppc_isa_write()
239 if (r_ecr(ppc) & PPC_FIFO_EMPTY) in ppc_isa_write()
244 error = mtx_sleep(ppc, &ppc->ppc_lock, PPBPRI | PCATCH, in ppc_isa_write()
251 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
253 ppc->ppc_dmastat = PPC_DMA_INTERRUPTED; in ppc_isa_write()
261 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
271 w_ecr(ppc, ecr_sav); in ppc_isa_write()
272 w_ctr(ppc, ctr_sav); in ppc_isa_write()
276 DRIVER_MODULE(ppc, isa, ppc_isa_driver, ppc_devclass, 0, 0);