Lines Matching refs:ppc
95 ppc_isa_dmadone(struct ppc_data *ppc) in ppc_isa_dmadone() argument
97 isa_dmadone(ppc->ppc_dmaflags, ppc->ppc_dmaddr, ppc->ppc_dmacnt, in ppc_isa_dmadone()
98 ppc->ppc_dmachan); in ppc_isa_dmadone()
104 struct ppc_data *ppc = device_get_softc(dev); in ppc_isa_attach() local
106 if ((ppc->ppc_avm & PPB_ECP) && (ppc->ppc_dmachan > 0)) { in ppc_isa_attach()
108 isa_dma_acquire(ppc->ppc_dmachan); in ppc_isa_attach()
109 isa_dmainit(ppc->ppc_dmachan, 1024); /* nlpt.BUFSIZE */ in ppc_isa_attach()
110 ppc->ppc_dmadone = ppc_isa_dmadone; in ppc_isa_attach()
143 struct ppc_data *ppc = device_get_softc(dev); in ppc_isa_write() local
148 PPC_ASSERT_LOCKED(ppc); in ppc_isa_write()
149 if (!(ppc->ppc_avm & PPB_ECP)) in ppc_isa_write()
151 if (ppc->ppc_dmachan == 0) in ppc_isa_write()
158 ecr_sav = r_ecr(ppc); in ppc_isa_write()
159 ctr_sav = r_ctr(ppc); in ppc_isa_write()
167 w_ecr(ppc, ecr); in ppc_isa_write()
170 ctr = r_ctr(ppc); in ppc_isa_write()
172 w_ctr(ppc, ctr); in ppc_isa_write()
174 ppc->ppc_dmaflags = 0; in ppc_isa_write()
175 ppc->ppc_dmaddr = (caddr_t)buf; in ppc_isa_write()
176 ppc->ppc_dmacnt = (u_int)len; in ppc_isa_write()
178 switch (ppc->ppc_mode) { in ppc_isa_write()
191 w_ecr(ppc, ecr); in ppc_isa_write()
192 ecr = r_ecr(ppc); in ppc_isa_write()
194 ppc->ppc_dmastat = PPC_DMA_INIT; in ppc_isa_write()
198 ppc->ppc_irqstat = PPC_IRQ_DMA; in ppc_isa_write()
199 w_ecr(ppc, ecr); in ppc_isa_write()
201 isa_dmastart(ppc->ppc_dmaflags, ppc->ppc_dmaddr, ppc->ppc_dmacnt, in ppc_isa_write()
202 ppc->ppc_dmachan); in ppc_isa_write()
203 ppc->ppc_dmastat = PPC_DMA_STARTED; in ppc_isa_write()
206 printf("s%d", ppc->ppc_dmacnt); in ppc_isa_write()
215 error = mtx_sleep(ppc, &ppc->ppc_lock, PPBPRI | PCATCH, in ppc_isa_write()
224 isa_dmadone(ppc->ppc_dmaflags, ppc->ppc_dmaddr, in ppc_isa_write()
225 ppc->ppc_dmacnt, ppc->ppc_dmachan); in ppc_isa_write()
228 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
230 ppc->ppc_dmastat = PPC_DMA_INTERRUPTED; in ppc_isa_write()
235 while (!(r_ecr(ppc) & PPC_FIFO_EMPTY)) { in ppc_isa_write()
237 if (r_ecr(ppc) & PPC_FIFO_EMPTY) in ppc_isa_write()
242 error = mtx_sleep(ppc, &ppc->ppc_lock, PPBPRI | PCATCH, in ppc_isa_write()
249 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
251 ppc->ppc_dmastat = PPC_DMA_INTERRUPTED; in ppc_isa_write()
259 w_ecr(ppc, PPC_ECR_RESET); in ppc_isa_write()
269 w_ecr(ppc, ecr_sav); in ppc_isa_write()
270 w_ctr(ppc, ctr_sav); in ppc_isa_write()
274 DRIVER_MODULE(ppc, isa, ppc_isa_driver, ppc_devclass, 0, 0);