Lines Matching refs:devp

144 	struct hpet_dev *devp;  in hpet_interrupt()  local
147 devp = data; in hpet_interrupt()
148 isr = 1 << (devp - devp->hd_hpets->hp_dev); in hpet_interrupt()
150 if ((devp->hd_flags & HPET_SHARED_IRQ) && in hpet_interrupt()
151 !(isr & readl(&devp->hd_hpet->hpet_isr))) in hpet_interrupt()
155 devp->hd_irqdata++; in hpet_interrupt()
161 if ((devp->hd_flags & (HPET_IE | HPET_PERIODIC)) == HPET_IE) { in hpet_interrupt()
163 struct hpet __iomem *hpet = devp->hd_hpet; in hpet_interrupt()
164 struct hpets *hpetp = devp->hd_hpets; in hpet_interrupt()
166 t = devp->hd_ireqfreq; in hpet_interrupt()
167 m = read_counter(&devp->hd_timer->hpet_compare); in hpet_interrupt()
187 &devp->hd_timer->hpet_compare); in hpet_interrupt()
190 if (devp->hd_flags & HPET_SHARED_IRQ) in hpet_interrupt()
191 writel(isr, &devp->hd_hpet->hpet_isr); in hpet_interrupt()
194 wake_up_interruptible(&devp->hd_waitqueue); in hpet_interrupt()
196 kill_fasync(&devp->hd_async_queue, SIGIO, POLL_IN); in hpet_interrupt()
201 static void hpet_timer_set_irq(struct hpet_dev *devp) in hpet_timer_set_irq() argument
208 if (devp->hd_hdwirq) { in hpet_timer_set_irq()
213 timer = devp->hd_timer; in hpet_timer_set_irq()
254 devp->hd_hdwirq = gsi; in hpet_timer_set_irq()
262 struct hpet_dev *devp; in hpet_open() local
272 for (devp = NULL, hpetp = hpets; hpetp && !devp; hpetp = hpetp->hp_next) in hpet_open()
277 devp = &hpetp->hp_dev[i]; in hpet_open()
281 if (!devp) { in hpet_open()
287 file->private_data = devp; in hpet_open()
288 devp->hd_irqdata = 0; in hpet_open()
289 devp->hd_flags |= HPET_OPEN; in hpet_open()
293 hpet_timer_set_irq(devp); in hpet_open()
304 struct hpet_dev *devp; in hpet_read() local
306 devp = file->private_data; in hpet_read()
307 if (!devp->hd_ireqfreq) in hpet_read()
313 add_wait_queue(&devp->hd_waitqueue, &wait); in hpet_read()
319 data = devp->hd_irqdata; in hpet_read()
320 devp->hd_irqdata = 0; in hpet_read()
340 remove_wait_queue(&devp->hd_waitqueue, &wait); in hpet_read()
348 struct hpet_dev *devp; in hpet_poll() local
350 devp = file->private_data; in hpet_poll()
352 if (!devp->hd_ireqfreq) in hpet_poll()
355 poll_wait(file, &devp->hd_waitqueue, wait); in hpet_poll()
358 v = devp->hd_irqdata; in hpet_poll()
384 struct hpet_dev *devp; in hpet_mmap() local
390 devp = file->private_data; in hpet_mmap()
391 addr = devp->hd_hpets->hp_hpet_phys; in hpet_mmap()
408 struct hpet_dev *devp; in hpet_fasync() local
410 devp = file->private_data; in hpet_fasync()
412 if (fasync_helper(fd, file, on, &devp->hd_async_queue) >= 0) in hpet_fasync()
420 struct hpet_dev *devp; in hpet_release() local
424 devp = file->private_data; in hpet_release()
425 timer = devp->hd_timer; in hpet_release()
432 irq = devp->hd_irq; in hpet_release()
433 devp->hd_irq = 0; in hpet_release()
435 devp->hd_ireqfreq = 0; in hpet_release()
437 if (devp->hd_flags & HPET_PERIODIC in hpet_release()
446 devp->hd_flags &= ~(HPET_OPEN | HPET_IE | HPET_PERIODIC); in hpet_release()
450 free_irq(irq, devp); in hpet_release()
456 static int hpet_ioctl_ieon(struct hpet_dev *devp) in hpet_ioctl_ieon() argument
465 timer = devp->hd_timer; in hpet_ioctl_ieon()
466 hpet = devp->hd_hpet; in hpet_ioctl_ieon()
467 hpetp = devp->hd_hpets; in hpet_ioctl_ieon()
469 if (!devp->hd_ireqfreq) in hpet_ioctl_ieon()
474 if (devp->hd_flags & HPET_IE) { in hpet_ioctl_ieon()
479 devp->hd_flags |= HPET_IE; in hpet_ioctl_ieon()
482 devp->hd_flags |= HPET_SHARED_IRQ; in hpet_ioctl_ieon()
485 irq = devp->hd_hdwirq; in hpet_ioctl_ieon()
490 if (devp->hd_flags & HPET_SHARED_IRQ) { in hpet_ioctl_ieon()
501 isr = 1 << (devp - devp->hd_hpets->hp_dev); in hpet_ioctl_ieon()
505 sprintf(devp->hd_name, "hpet%d", (int)(devp - hpetp->hp_dev)); in hpet_ioctl_ieon()
506 irq_flags = devp->hd_flags & HPET_SHARED_IRQ ? IRQF_SHARED : 0; in hpet_ioctl_ieon()
508 devp->hd_name, (void *)devp)) { in hpet_ioctl_ieon()
516 devp->hd_flags ^= HPET_IE; in hpet_ioctl_ieon()
521 devp->hd_irq = irq; in hpet_ioctl_ieon()
522 t = devp->hd_ireqfreq; in hpet_ioctl_ieon()
530 if (devp->hd_flags & HPET_PERIODIC) { in hpet_ioctl_ieon()
556 if (devp->hd_flags & HPET_SHARED_IRQ) { in hpet_ioctl_ieon()
557 isr = 1 << (devp - devp->hd_hpets->hp_dev); in hpet_ioctl_ieon()
578 hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg, in hpet_ioctl_common() argument
593 timer = devp->hd_timer; in hpet_ioctl_common()
594 hpet = devp->hd_hpet; in hpet_ioctl_common()
595 hpetp = devp->hd_hpets; in hpet_ioctl_common()
598 return hpet_ioctl_ieon(devp); in hpet_ioctl_common()
607 if ((devp->hd_flags & HPET_IE) == 0) in hpet_ioctl_common()
612 if (devp->hd_irq) { in hpet_ioctl_common()
613 free_irq(devp->hd_irq, devp); in hpet_ioctl_common()
614 devp->hd_irq = 0; in hpet_ioctl_common()
616 devp->hd_flags ^= HPET_IE; in hpet_ioctl_common()
621 if (devp->hd_ireqfreq) in hpet_ioctl_common()
623 hpet_time_div(hpetp, devp->hd_ireqfreq); in hpet_ioctl_common()
627 info->hi_timer = devp - hpetp->hp_dev; in hpet_ioctl_common()
636 devp->hd_flags |= HPET_PERIODIC; in hpet_ioctl_common()
644 if (devp->hd_flags & HPET_PERIODIC && in hpet_ioctl_common()
650 devp->hd_flags &= ~HPET_PERIODIC; in hpet_ioctl_common()
664 devp->hd_ireqfreq = hpet_time_div(hpetp, arg); in hpet_ioctl_common()
788 struct hpet_dev *devp; in __hpet_calibrate() local
792 for (j = 0, devp = hpetp->hp_dev; j < hpetp->hp_ntimer; j++, devp++) in __hpet_calibrate()
793 if ((devp->hd_flags & HPET_OPEN) == 0) { in __hpet_calibrate()
794 timer = devp->hd_timer; in __hpet_calibrate()
844 struct hpet_dev *devp; in hpet_alloc() local
931 for (i = 0, devp = hpetp->hp_dev; i < hpetp->hp_ntimer; i++, devp++) { in hpet_alloc()
934 timer = &hpet->hpet_timers[devp - hpetp->hp_dev]; in hpet_alloc()
936 devp->hd_hpets = hpetp; in hpet_alloc()
937 devp->hd_hpet = hpet; in hpet_alloc()
938 devp->hd_timer = timer; in hpet_alloc()
945 devp->hd_flags = HPET_OPEN; in hpet_alloc()
949 init_waitqueue_head(&devp->hd_waitqueue); in hpet_alloc()