diff options
Diffstat (limited to 'drivers/char/hpet.c')
-rw-r--r-- | drivers/char/hpet.c | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c index 22f5fd02ea87..465ad35ed38f 100644 --- a/drivers/char/hpet.c +++ b/drivers/char/hpet.c | |||
@@ -600,63 +600,6 @@ static int hpet_is_known(struct hpet_data *hdp) | |||
600 | return 0; | 600 | return 0; |
601 | } | 601 | } |
602 | 602 | ||
603 | EXPORT_SYMBOL(hpet_alloc); | ||
604 | EXPORT_SYMBOL(hpet_register); | ||
605 | EXPORT_SYMBOL(hpet_unregister); | ||
606 | EXPORT_SYMBOL(hpet_control); | ||
607 | |||
608 | int hpet_register(struct hpet_task *tp, int periodic) | ||
609 | { | ||
610 | unsigned int i; | ||
611 | u64 mask; | ||
612 | struct hpet_timer __iomem *timer; | ||
613 | struct hpet_dev *devp; | ||
614 | struct hpets *hpetp; | ||
615 | |||
616 | switch (periodic) { | ||
617 | case 1: | ||
618 | mask = Tn_PER_INT_CAP_MASK; | ||
619 | break; | ||
620 | case 0: | ||
621 | mask = 0; | ||
622 | break; | ||
623 | default: | ||
624 | return -EINVAL; | ||
625 | } | ||
626 | |||
627 | tp->ht_opaque = NULL; | ||
628 | |||
629 | spin_lock_irq(&hpet_task_lock); | ||
630 | spin_lock(&hpet_lock); | ||
631 | |||
632 | for (devp = NULL, hpetp = hpets; hpetp && !devp; hpetp = hpetp->hp_next) | ||
633 | for (timer = hpetp->hp_hpet->hpet_timers, i = 0; | ||
634 | i < hpetp->hp_ntimer; i++, timer++) { | ||
635 | if ((readq(&timer->hpet_config) & Tn_PER_INT_CAP_MASK) | ||
636 | != mask) | ||
637 | continue; | ||
638 | |||
639 | devp = &hpetp->hp_dev[i]; | ||
640 | |||
641 | if (devp->hd_flags & HPET_OPEN || devp->hd_task) { | ||
642 | devp = NULL; | ||
643 | continue; | ||
644 | } | ||
645 | |||
646 | tp->ht_opaque = devp; | ||
647 | devp->hd_task = tp; | ||
648 | break; | ||
649 | } | ||
650 | |||
651 | spin_unlock(&hpet_lock); | ||
652 | spin_unlock_irq(&hpet_task_lock); | ||
653 | |||
654 | if (tp->ht_opaque) | ||
655 | return 0; | ||
656 | else | ||
657 | return -EBUSY; | ||
658 | } | ||
659 | |||
660 | static inline int hpet_tpcheck(struct hpet_task *tp) | 603 | static inline int hpet_tpcheck(struct hpet_task *tp) |
661 | { | 604 | { |
662 | struct hpet_dev *devp; | 605 | struct hpet_dev *devp; |
@@ -706,24 +649,6 @@ int hpet_unregister(struct hpet_task *tp) | |||
706 | return 0; | 649 | return 0; |
707 | } | 650 | } |
708 | 651 | ||
709 | int hpet_control(struct hpet_task *tp, unsigned int cmd, unsigned long arg) | ||
710 | { | ||
711 | struct hpet_dev *devp; | ||
712 | int err; | ||
713 | |||
714 | if ((err = hpet_tpcheck(tp))) | ||
715 | return err; | ||
716 | |||
717 | spin_lock_irq(&hpet_lock); | ||
718 | devp = tp->ht_opaque; | ||
719 | if (devp->hd_task != tp) { | ||
720 | spin_unlock_irq(&hpet_lock); | ||
721 | return -ENXIO; | ||
722 | } | ||
723 | spin_unlock_irq(&hpet_lock); | ||
724 | return hpet_ioctl_common(devp, cmd, arg, 1); | ||
725 | } | ||
726 | |||
727 | static ctl_table hpet_table[] = { | 652 | static ctl_table hpet_table[] = { |
728 | { | 653 | { |
729 | .ctl_name = CTL_UNNUMBERED, | 654 | .ctl_name = CTL_UNNUMBERED, |