Lines Matching refs:ppi
161 struct ppi_data *ppi = DEVTOSOFTC(dev); in ppi_attach() local
166 ppi->intr_resource = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, in ppi_attach()
168 if (ppi->intr_resource) { in ppi_attach()
170 error = bus_setup_intr(dev, ppi->intr_resource, in ppi_attach()
172 &ppi->intr_cookie); in ppi_attach()
175 ppi->intr_resource); in ppi_attach()
183 sx_init(&ppi->ppi_lock, "ppi"); in ppi_attach()
184 ppi->ppi_cdev = make_dev(&ppi_cdevsw, device_get_unit(dev), in ppi_attach()
187 if (ppi->ppi_cdev == NULL) { in ppi_attach()
191 ppi->ppi_cdev->si_drv1 = ppi; in ppi_attach()
192 ppi->ppi_device = dev; in ppi_attach()
200 struct ppi_data *ppi = DEVTOSOFTC(dev); in ppi_detach() local
202 destroy_dev(ppi->ppi_cdev); in ppi_detach()
204 if (ppi->intr_resource != NULL) { in ppi_detach()
205 bus_teardown_intr(dev, ppi->intr_resource, ppi->intr_cookie); in ppi_detach()
206 bus_release_resource(dev, SYS_RES_IRQ, 0, ppi->intr_resource); in ppi_detach()
209 sx_destroy(&ppi->ppi_lock); in ppi_detach()
231 struct ppi_data *ppi = DEVTOSOFTC(ppidev); in ppiintr() local
267 wakeup(ppi); in ppiintr()
287 struct ppi_data *ppi = dev->si_drv1; in ppiopen() local
288 device_t ppidev = ppi->ppi_device; in ppiopen()
292 sx_xlock(&ppi->ppi_lock); in ppiopen()
293 if (!(ppi->ppi_flags & HAVE_PPBUS)) { in ppiopen()
299 sx_xunlock(&ppi->ppi_lock); in ppiopen()
303 ppi->ppi_flags |= HAVE_PPBUS; in ppiopen()
305 sx_xunlock(&ppi->ppi_lock); in ppiopen()
313 struct ppi_data *ppi = dev->si_drv1; in ppiclose() local
314 device_t ppidev = ppi->ppi_device; in ppiclose()
317 sx_xlock(&ppi->ppi_lock); in ppiclose()
337 ppi->ppi_flags &= ~HAVE_PPBUS; in ppiclose()
338 sx_xunlock(&ppi->ppi_lock); in ppiclose()
355 struct ppi_data *ppi = dev->si_drv1; in ppiread() local
356 device_t ppidev = ppi->ppi_device; in ppiread()
374 ppi->ppi_mode = PPB_NIBBLE, 0))) { in ppiread()
378 ppb_sleep(ppbus, ppi, PPBPRI, "ppiread", 2 * hz); in ppiread()
381 ppi->ppi_mode = PPB_BYTE, 0))) { in ppiread()
402 error = ppb_1284_read(ppbus, ppi->ppi_mode, in ppiread()
446 struct ppi_data *ppi = dev->si_drv1; in ppiwrite() local
447 device_t ppidev = ppi->ppi_device; in ppiwrite()
500 error = ppb_sleep(ppbus, ppi, PCATCH | PPBPRI, "ppiwrite", 0); in ppiwrite()
543 struct ppi_data *ppi = dev->si_drv1; in ppiioctl() local
544 device_t ppidev = ppi->ppi_device; in ppiioctl()
617 DRIVER_MODULE(ppi, ppbus, ppi_driver, 0, 0);
618 MODULE_DEPEND(ppi, ppbus, 1, 1, 1);