lkml.org 
[lkml]   [2005]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] Allow arch to veto PC speaker beeper initialization
From: Michael Neuling <mikey@neuling.org>

This patch provides an arch hook in the PC speaker beeper driver which
gives the arch code an opportunity to determine whether the machine
has an i8253 timer or not. If it doesn't we don't want the driver to
go poking at the i8253's ports; there might be nothing there or there
might be something else there which would be upset by being poked at.

We want to be able to build ppc64 kernels which work both on machines
that have an i8253 equivalent (e.g. some pSeries) and on machines that
don't (e.g. G5 powermacs), which is why we don't just remove it from
the config.

Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
---
Could this go in please, preferably for 2.6.15? Some people are
finding that their G5 powermacs lock up when this driver pokes the PIT
registers.

drivers/input/misc/pcspkr.c | 5 +++++
include/asm-powerpc/8253pit.h | 13 +++++++++++++
2 files changed, 18 insertions(+)
Index: linux-2.6/drivers/input/misc/pcspkr.c
===================================================================
--- linux-2.6.orig/drivers/input/misc/pcspkr.c 2005-10-31 15:16:39.000000000 +1100
+++ linux-2.6/drivers/input/misc/pcspkr.c 2005-10-31 15:21:13.000000000 +1100
@@ -66,6 +66,11 @@

static int __init pcspkr_init(void)
{
+#ifdef HAS_PCSPKR_ARCH_INIT
+ int rc = pcspkr_arch_init();
+ if (rc)
+ return rc;
+#endif
pcspkr_dev = input_allocate_device();
if (!pcspkr_dev)
return -ENOMEM;
Index: linux-2.6/include/asm-powerpc/8253pit.h
===================================================================
--- linux-2.6.orig/include/asm-powerpc/8253pit.h 2005-10-31 15:02:18.000000000 +1100
+++ linux-2.6/include/asm-powerpc/8253pit.h 2005-10-31 15:20:30.000000000 +1100
@@ -5,6 +5,19 @@
* 8253/8254 Programmable Interval Timer
*/

+#include <asm/prom.h>
+
#define PIT_TICK_RATE 1193182UL

+#define HAS_PCSPKR_ARCH_INIT
+
+static inline int pcspkr_arch_init(void)
+{
+ struct device_node *np;
+
+ np = of_find_compatible_node(NULL, NULL, "pnpPNP,100");
+ of_node_put(np);
+ return np ? 0 : -ENODEV;
+}
+
#endif /* _ASM_POWERPC_8253PIT_H */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-11-15 03:04    [from the cache]
©2003-2011 Jasper Spaans