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    [W:0.040 / U:2.704 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site