aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2008-07-29 15:47:38 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-31 12:45:41 -0400
commit64a76f667d987a559ad0726b4692c987800b22bc (patch)
tree863fe7378dceb010d84dc723f734192b0c5b0e1f /include/linux
parent85e9ca333d03fbd56b9e123c8456f0d98e20faad (diff)
hpet: /dev/hpet - fixes and cleanup
Minor /dev/hpet updates and bugfixes: * Remove dead code, mostly remnants of an incomplete/unusable kernel interface ... noted when addressing "sparse" warnings: + hpet_unregister() and a routine it calls + hpet_task and all references, including hpet_task_lock + hpet_data.hd_flags (and HPET_DATA_PLATFORM) * Correct and improve boot message: + displays *counter* (shared between comparators) bit width, not *timer* bit widths (which are often mixed) + relabel "timers" as "comparators"; this is less confusing, they are not independent like normal timers are (sigh) + display MHz not Hz; it's never less than 10 MHz. * Tighten and correct the userspace interface code + don't accidentally program comparators in 64-bit mode using 32-bit values ... always force comparators into 32-bit mode + provide the correct bit definition flagging comparators with periodic capability ... the ABI is unchanged * Update Documentation/hpet.txt + be more correct and current + expand description a bit + don't mention that now-gone kernel interface Plus, add a FIXME comment for something that could cause big trouble on systems with more capable HPETs than at least Intel seems to ship. It seems that few folk use this userspace interface; it's not very usable given the general lack of HPET IRQ routing. I'm told that the only real point of it any more is to mmap for fast timestamps; IMO that's handled better through the gettimeofday() vsyscall. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/hpet.h11
1 files changed, 1 insertions, 10 deletions
diff --git a/include/linux/hpet.h b/include/linux/hpet.h
index 6d2626b63a9a..79f63a27bcef 100644
--- a/include/linux/hpet.h
+++ b/include/linux/hpet.h
@@ -92,23 +92,14 @@ struct hpet {
92 * exported interfaces 92 * exported interfaces
93 */ 93 */
94 94
95struct hpet_task {
96 void (*ht_func) (void *);
97 void *ht_data;
98 void *ht_opaque;
99};
100
101struct hpet_data { 95struct hpet_data {
102 unsigned long hd_phys_address; 96 unsigned long hd_phys_address;
103 void __iomem *hd_address; 97 void __iomem *hd_address;
104 unsigned short hd_nirqs; 98 unsigned short hd_nirqs;
105 unsigned short hd_flags;
106 unsigned int hd_state; /* timer allocated */ 99 unsigned int hd_state; /* timer allocated */
107 unsigned int hd_irq[HPET_MAX_TIMERS]; 100 unsigned int hd_irq[HPET_MAX_TIMERS];
108}; 101};
109 102
110#define HPET_DATA_PLATFORM 0x0001 /* platform call to hpet_alloc */
111
112static inline void hpet_reserve_timer(struct hpet_data *hd, int timer) 103static inline void hpet_reserve_timer(struct hpet_data *hd, int timer)
113{ 104{
114 hd->hd_state |= (1 << timer); 105 hd->hd_state |= (1 << timer);
@@ -126,7 +117,7 @@ struct hpet_info {
126 unsigned short hi_timer; 117 unsigned short hi_timer;
127}; 118};
128 119
129#define HPET_INFO_PERIODIC 0x0001 /* timer is periodic */ 120#define HPET_INFO_PERIODIC 0x0010 /* periodic-capable comparator */
130 121
131#define HPET_IE_ON _IO('h', 0x01) /* interrupt on */ 122#define HPET_IE_ON _IO('h', 0x01) /* interrupt on */
132#define HPET_IE_OFF _IO('h', 0x02) /* interrupt off */ 123#define HPET_IE_OFF _IO('h', 0x02) /* interrupt off */