Lines Matching refs:devp

106 	struct hpet_dev *devp;
109 devp = data;
110 isr = 1 << (devp - devp->hd_hpets->hp_dev);
112 if ((devp->hd_flags & HPET_SHARED_IRQ) &&
113 !(isr & readl(&devp->hd_hpet->hpet_isr)))
117 devp->hd_irqdata++;
123 if ((devp->hd_flags & (HPET_IE | HPET_PERIODIC)) == HPET_IE) {
125 struct hpet __iomem *hpet = devp->hd_hpet;
126 struct hpets *hpetp = devp->hd_hpets;
128 t = devp->hd_ireqfreq;
129 read_counter(&devp->hd_timer->hpet_compare);
149 &devp->hd_timer->hpet_compare);
152 if (devp->hd_flags & HPET_SHARED_IRQ)
153 writel(isr, &devp->hd_hpet->hpet_isr);
156 wake_up_interruptible(&devp->hd_waitqueue);
158 kill_fasync(&devp->hd_async_queue, SIGIO, POLL_IN);
163 static void hpet_timer_set_irq(struct hpet_dev *devp)
170 if (devp->hd_hdwirq) {
175 timer = devp->hd_timer;
216 devp->hd_hdwirq = gsi;
224 struct hpet_dev *devp;
234 for (devp = NULL, hpetp = hpets; hpetp && !devp; hpetp = hpetp->hp_next)
239 devp = &hpetp->hp_dev[i];
243 if (!devp) {
249 file->private_data = devp;
250 devp->hd_irqdata = 0;
251 devp->hd_flags |= HPET_OPEN;
255 hpet_timer_set_irq(devp);
266 struct hpet_dev *devp;
268 devp = file->private_data;
269 if (!devp->hd_ireqfreq)
275 add_wait_queue(&devp->hd_waitqueue, &wait);
281 data = devp->hd_irqdata;
282 devp->hd_irqdata = 0;
302 remove_wait_queue(&devp->hd_waitqueue, &wait);
310 struct hpet_dev *devp;
312 devp = file->private_data;
314 if (!devp->hd_ireqfreq)
317 poll_wait(file, &devp->hd_waitqueue, wait);
320 v = devp->hd_irqdata;
346 struct hpet_dev *devp;
352 devp = file->private_data;
353 addr = devp->hd_hpets->hp_hpet_phys;
370 struct hpet_dev *devp;
372 devp = file->private_data;
374 if (fasync_helper(fd, file, on, &devp->hd_async_queue) >= 0)
382 struct hpet_dev *devp;
386 devp = file->private_data;
387 timer = devp->hd_timer;
394 irq = devp->hd_irq;
395 devp->hd_irq = 0;
397 devp->hd_ireqfreq = 0;
399 if (devp->hd_flags & HPET_PERIODIC
408 devp->hd_flags &= ~(HPET_OPEN | HPET_IE | HPET_PERIODIC);
412 free_irq(irq, devp);
418 static int hpet_ioctl_ieon(struct hpet_dev *devp)
427 timer = devp->hd_timer;
428 hpet = devp->hd_hpet;
429 hpetp = devp->hd_hpets;
431 if (!devp->hd_ireqfreq)
436 if (devp->hd_flags & HPET_IE) {
441 devp->hd_flags |= HPET_IE;
444 devp->hd_flags |= HPET_SHARED_IRQ;
447 irq = devp->hd_hdwirq;
452 if (devp->hd_flags & HPET_SHARED_IRQ) {
463 isr = 1 << (devp - devp->hd_hpets->hp_dev);
467 sprintf(devp->hd_name, "hpet%d", (int)(devp - hpetp->hp_dev));
468 irq_flags = devp->hd_flags & HPET_SHARED_IRQ ? IRQF_SHARED : 0;
470 devp->hd_name, (void *)devp)) {
478 devp->hd_flags ^= HPET_IE;
483 devp->hd_irq = irq;
484 t = devp->hd_ireqfreq;
492 if (devp->hd_flags & HPET_PERIODIC) {
518 if (devp->hd_flags & HPET_SHARED_IRQ) {
519 isr = 1 << (devp - devp->hd_hpets->hp_dev);
539 hpet_ioctl_common(struct hpet_dev *devp, unsigned int cmd, unsigned long arg,
553 timer = devp->hd_timer;
554 hpetp = devp->hd_hpets;
557 return hpet_ioctl_ieon(devp);
566 if ((devp->hd_flags & HPET_IE) == 0)
571 if (devp->hd_irq) {
572 free_irq(devp->hd_irq, devp);
573 devp->hd_irq = 0;
575 devp->hd_flags ^= HPET_IE;
580 if (devp->hd_ireqfreq)
582 hpet_time_div(hpetp, devp->hd_ireqfreq);
586 info->hi_timer = devp - hpetp->hp_dev;
595 devp->hd_flags |= HPET_PERIODIC;
603 if (devp->hd_flags & HPET_PERIODIC &&
609 devp->hd_flags &= ~HPET_PERIODIC;
623 devp->hd_ireqfreq = hpet_time_div(hpetp, arg);
726 struct hpet_dev *devp;
730 for (j = 0, devp = hpetp->hp_dev; j < hpetp->hp_ntimer; j++, devp++)
731 if ((devp->hd_flags & HPET_OPEN) == 0) {
732 timer = devp->hd_timer;
782 struct hpet_dev *devp;
866 for (i = 0, devp = hpetp->hp_dev; i < hpetp->hp_ntimer; i++, devp++) {
869 timer = &hpet->hpet_timers[devp - hpetp->hp_dev];
871 devp->hd_hpets = hpetp;
872 devp->hd_hpet = hpet;
873 devp->hd_timer = timer;
880 devp->hd_flags = HPET_OPEN;
884 init_waitqueue_head(&devp->hd_waitqueue);