Lines Matching refs:devp

126 	struct hpet_dev *devp;
129 devp = data;
130 isr = 1 << (devp - devp->hd_hpets->hp_dev);
132 if ((devp->hd_flags & HPET_SHARED_IRQ) &&
133 !(isr & readl(&devp->hd_hpet->hpet_isr)))
137 devp->hd_irqdata++;
143 if ((devp->hd_flags & (HPET_IE | HPET_PERIODIC)) == HPET_IE) {
145 struct hpet __iomem *hpet = devp->hd_hpet;
146 struct hpets *hpetp = devp->hd_hpets;
148 t = devp->hd_ireqfreq;
149 read_counter(&devp->hd_timer->hpet_compare);
169 &devp->hd_timer->hpet_compare);
172 if (devp->hd_flags & HPET_SHARED_IRQ)
173 writel(isr, &devp->hd_hpet->hpet_isr);
176 wake_up_interruptible(&devp->hd_waitqueue);
178 kill_fasync(&devp->hd_async_queue, SIGIO, POLL_IN);
183 static void hpet_timer_set_irq(struct hpet_dev *devp)
190 if (devp->hd_hdwirq) {
195 timer = devp->hd_timer;
236 devp->hd_hdwirq = gsi;
244 struct hpet_dev *devp;
254 for (devp = NULL, hpetp = hpets; hpetp && !devp; hpetp = hpetp->hp_next)
259 devp = &hpetp->hp_dev[i];
263 if (!devp) {
269 file->private_data = devp;
270 devp->hd_irqdata = 0;
271 devp->hd_flags |= HPET_OPEN;
275 hpet_timer_set_irq(devp);
286 struct hpet_dev *devp;
288 devp = file->private_data;
289 if (!devp->hd_ireqfreq)
295 add_wait_queue(&devp->hd_waitqueue, &wait);
301 data = devp->hd_irqdata;
302 devp->hd_irqdata = 0;
322 remove_wait_queue(&devp->hd_waitqueue, &wait);
330 struct hpet_dev *devp;
332 devp = file->private_data;
334 if (!devp->hd_ireqfreq)
337 poll_wait(file, &devp->hd_waitqueue, wait);
340 v = devp->hd_irqdata;
366 struct hpet_dev *devp;
372 devp = file->private_data;
373 addr = devp->hd_hpets->hp_hpet_phys;
390 struct hpet_dev *devp;
392 devp = file->private_data;
394 if (fasync_helper(fd, file, on, &devp->hd_async_queue) >= 0)
402 struct hpet_dev *devp;
406 devp = file->private_data;
407 timer = devp->hd_timer;
414 irq = devp->hd_irq;
415 devp->hd_irq = 0;
417 devp->hd_ireqfreq = 0;
419 if (devp->hd_flags & HPET_PERIODIC
428 devp->hd_flags &= ~(HPET_OPEN | HPET_IE | HPET_PERIODIC);
432 free_irq(irq, devp);
438 static int hpet_ioctl_ieon(struct hpet_dev *devp)
447 timer = devp->hd_timer;
448 hpet = devp->hd_hpet;
449 hpetp = devp->hd_hpets;
451 if (!devp->hd_ireqfreq)
456 if (devp->hd_flags & HPET_IE) {
461 devp->hd_flags |= HPET_IE;
464 devp->hd_flags |= HPET_SHARED_IRQ;
467 irq = devp->hd_hdwirq;
472 if (devp->hd_flags & HPET_SHARED_IRQ) {
483 isr = 1 << (devp - devp->hd_hpets->hp_dev);
487 sprintf(devp->hd_name, "hpet%d", (int)(devp - hpetp->hp_dev));
488 irq_flags = devp->hd_flags & HPET_SHARED_IRQ ? IRQF_SHARED : 0;
490 devp->hd_name, (void *)devp)) {
498 devp->hd_flags ^= HPET_IE;
503 devp->hd_irq = irq;
504 t = devp->hd_ireqfreq;
512 if (devp->hd_flags & HPET_PERIODIC) {
538 if (devp->hd_flags & HPET_SHARED_IRQ) {
539 isr = 1 << (devp - devp->hd_hpets->hp_dev);
559 hpet_ioctl_common(struct hpet_dev *devp, unsigned int cmd, unsigned long arg,
573 timer = devp->hd_timer;
574 hpetp = devp->hd_hpets;
577 return hpet_ioctl_ieon(devp);
586 if ((devp->hd_flags & HPET_IE) == 0)
591 if (devp->hd_irq) {
592 free_irq(devp->hd_irq, devp);
593 devp->hd_irq = 0;
595 devp->hd_flags ^= HPET_IE;
600 if (devp->hd_ireqfreq)
602 hpet_time_div(hpetp, devp->hd_ireqfreq);
606 info->hi_timer = devp - hpetp->hp_dev;
615 devp->hd_flags |= HPET_PERIODIC;
623 if (devp->hd_flags & HPET_PERIODIC &&
629 devp->hd_flags &= ~HPET_PERIODIC;
643 devp->hd_ireqfreq = hpet_time_div(hpetp, arg);
747 struct hpet_dev *devp;
751 for (j = 0, devp = hpetp->hp_dev; j < hpetp->hp_ntimer; j++, devp++)
752 if ((devp->hd_flags & HPET_OPEN) == 0) {
753 timer = devp->hd_timer;
803 struct hpet_dev *devp;
887 for (i = 0, devp = hpetp->hp_dev; i < hpetp->hp_ntimer; i++, devp++) {
890 timer = &hpet->hpet_timers[devp - hpetp->hp_dev];
892 devp->hd_hpets = hpetp;
893 devp->hd_hpet = hpet;
894 devp->hd_timer = timer;
901 devp->hd_flags = HPET_OPEN;
905 init_waitqueue_head(&devp->hd_waitqueue);