Skip to contentSkip to conversation

driver/char/hpet.c: remove clocksource warning on !IA64

PATCH In review Daniel Walker 3 participants 4 messages Sep 1, 2007 – Sep 3, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 driver/char/hpet.c: remove clocksource warning on !IA64

The warnings,

drivers/char/hpet.c:72: warning: 'clocksource_hpet' defined but not used drivers/char/hpet.c:81: warning: 'hpet_clocksource' defined but not used

from,

commit 3b2b64fd311c92f2137eb7cee7025794cd854057

Author: Linus Torvalds <[email protected]>
Date:   Fri Aug 31 20:13:57 2007 -0700

This patch eliminates the warnings when the clocksoure isn't used. It also removes some other unused stuff that goes along with the clocksource ..

I don't have access to an ia64 machine, or even a compiler .. So this one is untested for that. I'm hoping one of the ia64 guys can help test this?

---
 drivers/char/hpet.c |   32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)
drivers/char/hpet.c +20 -12
Index: linux-2.6.22/drivers/char/hpet.c
===================================================================
@@ -62,6 +62,7 @@
 
 static u32 hpet_nhpet, hpet_max_freq = HPET_USER_FREQ;
 
+#ifdef CONFIG_IA64
 static void __iomem *hpet_mctr;
 
 static cycle_t read_hpet(void)
@@ -80,6 +81,23 @@ static struct clocksource clocksource_hp
 };
 static struct clocksource *hpet_clocksource;
 
+/* This clocksource driver currently only works on ia64 */
+static inline void ia64_clocksource_register(void)
+{
+	if (!hpet_clocksource) {
+		hpet_mctr = (void __iomem *)&hpetp->hp_hpet->hpet_mc;
+		CLKSRC_FSYS_MMIO_SET(clocksource_hpet.fsys_mmio, hpet_mctr);
+		clocksource_hpet.mult = clocksource_hz2mult(hpetp->hp_tick_freq,
+						clocksource_hpet.shift);
+		clocksource_register(&clocksource_hpet);
+		hpetp->hp_clocksource = &clocksource_hpet;
+		hpet_clocksource = &clocksource_hpet;
+	}
+}
+#else
+static inline void ia64_clocksource_register(void) { }
+#endif
+
 /* A lock for concurrent access by app and isr hpet activity. */
 static DEFINE_SPINLOCK(hpet_lock);
 /* A lock for concurrent intermodule access to hpet and isr hpet activity. */
@@ -909,18 +927,8 @@ int hpet_alloc(struct hpet_data *hdp)
 
 	hpetp->hp_delta = hpet_calibrate(hpetp);
 
-/* This clocksource driver currently only works on ia64 */
-#ifdef CONFIG_IA64
-	if (!hpet_clocksource) {
-		hpet_mctr = (void __iomem *)&hpetp->hp_hpet->hpet_mc;
-		CLKSRC_FSYS_MMIO_SET(clocksource_hpet.fsys_mmio, hpet_mctr);
-		clocksource_hpet.mult = clocksource_hz2mult(hpetp->hp_tick_freq,
-						clocksource_hpet.shift);
-		clocksource_register(&clocksource_hpet);
-		hpetp->hp_clocksource = &clocksource_hpet;
-		hpet_clocksource = &clocksource_hpet;
-	}
-#endif
+	ia64_clocksource_register();
+
 
 	return 0;
 }
Signature · 1 line
-- 
#1 lore raw
Quoted 10 lines · Daniel Walker

The warnings,

drivers/char/hpet.c:72: warning: 'clocksource_hpet' defined but not used drivers/char/hpet.c:81: warning: 'hpet_clocksource' defined but not used

from,

commit 3b2b64fd311c92f2137eb7cee7025794cd854057

Author: Linus Torvalds <[email protected]>
Date:   Fri Aug 31 20:13:57 2007 -0700

Arg, forgot the most important variable. The new function I created needed the hpetp variable. So I added that in the patch below.. I tested both of the ifdef blocks on i386 by just removing the ifdefs .. So it compiles both ways ..

----

Subject: driver/char/hpet.c: remove clocksource warning on !IA64

The warnings,

drivers/char/hpet.c:72: warning: 'clocksource_hpet' defined but not used drivers/char/hpet.c:81: warning: 'hpet_clocksource' defined but not used

from,

commit 3b2b64fd311c92f2137eb7cee7025794cd854057

Author: Linus Torvalds <[email protected]>
Date:   Fri Aug 31 20:13:57 2007 -0700

This patch eliminates the warnings when the clocksoure isn't used. It also removes some other unused stuff that goes along with the clocksource ..

I don't have access to an ia64 machine, or even a compiler .. So this one is untested for that. I'm hoping one of the ia64 guys can help test this

---
 drivers/char/hpet.c |   68 +++++++++++++++++++++++++++++-----------------------
 1 file changed, 38 insertions(+), 30 deletions(-)
drivers/char/hpet.c +38 -30
Index: linux-2.6.22/drivers/char/hpet.c
===================================================================
@@ -62,24 +62,6 @@
 
 static u32 hpet_nhpet, hpet_max_freq = HPET_USER_FREQ;
 
-static void __iomem *hpet_mctr;
-
-static cycle_t read_hpet(void)
-{
-	return (cycle_t)read_counter((void __iomem *)hpet_mctr);
-}
-
-static struct clocksource clocksource_hpet = {
-        .name           = "hpet",
-        .rating         = 250,
-        .read           = read_hpet,
-        .mask           = CLOCKSOURCE_MASK(64),
-        .mult           = 0, /*to be caluclated*/
-        .shift          = 10,
-        .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
-};
-static struct clocksource *hpet_clocksource;
-
 /* A lock for concurrent access by app and isr hpet activity. */
 static DEFINE_SPINLOCK(hpet_lock);
 /* A lock for concurrent intermodule access to hpet and isr hpet activity. */
@@ -116,6 +98,42 @@ struct hpets {
 
 static struct hpets *hpets;
 
+#ifdef CONFIG_IA64
+static void __iomem *hpet_mctr;
+
+static cycle_t read_hpet(void)
+{
+	return (cycle_t)read_counter((void __iomem *)hpet_mctr);
+}
+
+static struct clocksource clocksource_hpet = {
+        .name           = "hpet",
+        .rating         = 250,
+        .read           = read_hpet,
+        .mask           = CLOCKSOURCE_MASK(64),
+        .mult           = 0, /*to be caluclated*/
+        .shift          = 10,
+        .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
+};
+static struct clocksource *hpet_clocksource;
+
+/* This clocksource driver currently only works on ia64 */
+static inline void ia64_clocksource_register(struct hpets *hpetp)
+{
+	if (!hpet_clocksource) {
+		hpet_mctr = (void __iomem *)&hpetp->hp_hpet->hpet_mc;
+		CLKSRC_FSYS_MMIO_SET(clocksource_hpet.fsys_mmio, hpet_mctr);
+		clocksource_hpet.mult = clocksource_hz2mult(hpetp->hp_tick_freq,
+						clocksource_hpet.shift);
+		clocksource_register(&clocksource_hpet);
+		hpetp->hp_clocksource = &clocksource_hpet;
+		hpet_clocksource = &clocksource_hpet;
+	}
+}
+#else
+static inline void ia64_clocksource_register(struct hpets *hpetp) { }
+#endif
+
 #define	HPET_OPEN		0x0001
 #define	HPET_IE			0x0002	/* interrupt enabled */
 #define	HPET_PERIODIC		0x0004
@@ -909,18 +927,8 @@ int hpet_alloc(struct hpet_data *hdp)
 
 	hpetp->hp_delta = hpet_calibrate(hpetp);
 
-/* This clocksource driver currently only works on ia64 */
-#ifdef CONFIG_IA64
-	if (!hpet_clocksource) {
-		hpet_mctr = (void __iomem *)&hpetp->hp_hpet->hpet_mc;
-		CLKSRC_FSYS_MMIO_SET(clocksource_hpet.fsys_mmio, hpet_mctr);
-		clocksource_hpet.mult = clocksource_hz2mult(hpetp->hp_tick_freq,
-						clocksource_hpet.shift);
-		clocksource_register(&clocksource_hpet);
-		hpetp->hp_clocksource = &clocksource_hpet;
-		hpet_clocksource = &clocksource_hpet;
-	}
-#endif
+	ia64_clocksource_register(hpetp);
+
 
 	return 0;
 }
#2 lore raw

RE: [PATCH 2.6.23-rc5] driver/char/hpet.c: remove clocksourcewarning on !IA64

Quoted 7 lines

This patch eliminates the warnings when the clocksoure isn't used. It also removes some other unused stuff that goes along with the clocksource ..

I don't have access to an ia64 machine, or even a compiler .. So this one is untested for that. I'm hoping one of the ia64 guys can help test this

Well, it does *compile* cleanly for ia64 [none of my test systems actually have a functional HPET ... the closest I get is one that fails the hd_nirqs part of the "if (!data.hd_address || !data.hd_nirqs) {" test in hpet_acpi_add].

Bob: Does this work for you?

-Tony

#3 lore raw

Re: [PATCH 2.6.23-rc5] driver/char/hpet.c: remove clocksourcewarning on !IA64

luck wrote: [Sun Sep 02 2007, 03:13:45AM EDT]

Quoted 8 lines
Quoted 7 lines

This patch eliminates the warnings when the clocksoure isn't used. It also removes some other unused stuff that goes along with the clocksource ..

I don't have access to an ia64 machine, or even a compiler .. So this one is untested for that. I'm hoping one of the ia64 guys can help test this

Quoted 5 lines

Well, it does *compile* cleanly for ia64 [none of my test systems actually have a functional HPET ... the closest I get is one that fails the hd_nirqs part of the "if (!data.hd_address || !data.hd_nirqs) {" test in hpet_acpi_add].

Bob: Does this work for you?

I boot tested on the HP internal platform simulator. Should it be necessary, I could have it boot tested later in the week on real hardware.

bob