Lines Matching refs:devp
141 struct hpet_dev *devp;
144 devp = data;
145 isr = 1 << (devp - devp->hd_hpets->hp_dev);
147 if ((devp->hd_flags & HPET_SHARED_IRQ) &&
148 !(isr & readl(&devp->hd_hpet->hpet_isr)))
152 devp->hd_irqdata++;
158 if ((devp->hd_flags & (HPET_IE | HPET_PERIODIC)) == HPET_IE) {
160 struct hpet __iomem *hpet = devp->hd_hpet;
161 struct hpets *hpetp = devp->hd_hpets;
163 t = devp->hd_ireqfreq;
164 m = read_counter(&devp->hd_timer->hpet_compare);
184 &devp->hd_timer->hpet_compare);
187 if (devp->hd_flags & HPET_SHARED_IRQ)
188 writel(isr, &devp->hd_hpet->hpet_isr);
191 wake_up_interruptible(&devp->hd_waitqueue);
193 kill_fasync(&devp->hd_async_queue, SIGIO, POLL_IN);
198 static void hpet_timer_set_irq(struct hpet_dev *devp)
205 if (devp->hd_hdwirq) {
210 timer = devp->hd_timer;
251 devp->hd_hdwirq = gsi;
259 struct hpet_dev *devp;
269 for (devp = NULL, hpetp = hpets; hpetp && !devp; hpetp = hpetp->hp_next)
274 devp = &hpetp->hp_dev[i];
278 if (!devp) {
284 file->private_data = devp;
285 devp->hd_irqdata = 0;
286 devp->hd_flags |= HPET_OPEN;
290 hpet_timer_set_irq(devp);
301 struct hpet_dev *devp;
303 devp = file->private_data;
304 if (!devp->hd_ireqfreq)
310 add_wait_queue(&devp->hd_waitqueue, &wait);
316 data = devp->hd_irqdata;
317 devp->hd_irqdata = 0;
337 remove_wait_queue(&devp->hd_waitqueue, &wait);
345 struct hpet_dev *devp;
347 devp = file->private_data;
349 if (!devp->hd_ireqfreq)
352 poll_wait(file, &devp->hd_waitqueue, wait);
355 v = devp->hd_irqdata;
381 struct hpet_dev *devp;
387 devp = file->private_data;
388 addr = devp->hd_hpets->hp_hpet_phys;
405 struct hpet_dev *devp;
407 devp = file->private_data;
409 if (fasync_helper(fd, file, on, &devp->hd_async_queue) >= 0)
417 struct hpet_dev *devp;
421 devp = file->private_data;
422 timer = devp->hd_timer;
429 irq = devp->hd_irq;
430 devp->hd_irq = 0;
432 devp->hd_ireqfreq = 0;
434 if (devp->hd_flags & HPET_PERIODIC
443 devp->hd_flags &= ~(HPET_OPEN | HPET_IE | HPET_PERIODIC);
447 free_irq(irq, devp);
453 static int hpet_ioctl_ieon(struct hpet_dev *devp)
462 timer = devp->hd_timer;
463 hpet = devp->hd_hpet;
464 hpetp = devp->hd_hpets;
466 if (!devp->hd_ireqfreq)
471 if (devp->hd_flags & HPET_IE) {
476 devp->hd_flags |= HPET_IE;
479 devp->hd_flags |= HPET_SHARED_IRQ;
482 irq = devp->hd_hdwirq;
487 if (devp->hd_flags & HPET_SHARED_IRQ) {
498 isr = 1 << (devp - devp->hd_hpets->hp_dev);
502 sprintf(devp->hd_name, "hpet%d", (int)(devp - hpetp->hp_dev));
503 irq_flags = devp->hd_flags & HPET_SHARED_IRQ ? IRQF_SHARED : 0;
505 devp->hd_name, (void *)devp)) {
513 devp->hd_flags ^= HPET_IE;
518 devp->hd_irq = irq;
519 t = devp->hd_ireqfreq;
527 if (devp->hd_flags & HPET_PERIODIC) {
553 if (devp->hd_flags & HPET_SHARED_IRQ) {
554 isr = 1 << (devp - devp->hd_hpets->hp_dev);
574 hpet_ioctl_common(struct hpet_dev *devp, unsigned int cmd, unsigned long arg,
588 timer = devp->hd_timer;
589 hpetp = devp->hd_hpets;
592 return hpet_ioctl_ieon(devp);
601 if ((devp->hd_flags & HPET_IE) == 0)
606 if (devp->hd_irq) {
607 free_irq(devp->hd_irq, devp);
608 devp->hd_irq = 0;
610 devp->hd_flags ^= HPET_IE;
615 if (devp->hd_ireqfreq)
617 hpet_time_div(hpetp, devp->hd_ireqfreq);
621 info->hi_timer = devp - hpetp->hp_dev;
630 devp->hd_flags |= HPET_PERIODIC;
638 if (devp->hd_flags & HPET_PERIODIC &&
644 devp->hd_flags &= ~HPET_PERIODIC;
658 devp->hd_ireqfreq = hpet_time_div(hpetp, arg);
782 struct hpet_dev *devp;
786 for (j = 0, devp = hpetp->hp_dev; j < hpetp->hp_ntimer; j++, devp++)
787 if ((devp->hd_flags & HPET_OPEN) == 0) {
788 timer = devp->hd_timer;
838 struct hpet_dev *devp;
922 for (i = 0, devp = hpetp->hp_dev; i < hpetp->hp_ntimer; i++, devp++) {
925 timer = &hpet->hpet_timers[devp - hpetp->hp_dev];
927 devp->hd_hpets = hpetp;
928 devp->hd_hpet = hpet;
929 devp->hd_timer = timer;
936 devp->hd_flags = HPET_OPEN;
940 init_waitqueue_head(&devp->hd_waitqueue);