lkml.org 
[lkml]   [2012]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/2] RFC: Prepare PAD for native and xen platform
    Date
    From 9a12d7c610bffb900015e8947a57e4e428058abf Mon Sep 17 00:00:00 2001
    From: Liu, Jinsong <jinsong.liu@intel.com>
    Date: Fri, 24 Feb 2012 01:51:18 +0800
    Subject: [PATCH 1/2] Prepare PAD for native and xen platform

    This patch is to prepare PAD (Processor Aggregator Device) for native and xen platform.
    When working under baremetal it initializes native acpi_pad, while working under
    xen platform it would hook to xen acpi_pad (would implement at later patch).

    Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
    ---
    drivers/acpi/Kconfig | 3 ++-
    drivers/acpi/acpi_pad.c | 21 +++++++++------------
    include/acpi/acpi_drivers.h | 15 +++++++++++++++
    3 files changed, 26 insertions(+), 13 deletions(-)

    diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
    index 7556913..2653a98 100644
    --- a/drivers/acpi/Kconfig
    +++ b/drivers/acpi/Kconfig
    @@ -213,10 +213,11 @@ config ACPI_HOTPLUG_CPU
    default y

    config ACPI_PROCESSOR_AGGREGATOR
    - tristate "Processor Aggregator"
    + bool "Processor Aggregator"
    depends on ACPI_PROCESSOR
    depends on EXPERIMENTAL
    depends on X86
    + default n
    help
    ACPI 4.0 defines processor Aggregator, which enables OS to perform
    specific processor configuration and control that applies to all
    diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
    index a43fa1a..8aebbe5 100644
    --- a/drivers/acpi/acpi_pad.c
    +++ b/drivers/acpi/acpi_pad.c
    @@ -2,6 +2,7 @@
    * acpi_pad.c ACPI Processor Aggregator Driver
    *
    * Copyright (c) 2009, Intel Corporation.
    + * Author: Li, Shaohua <shaohua.li@intel.com>
    *
    * This program is free software; you can redistribute it and/or modify it
    * under the terms and conditions of the GNU General Public License,
    @@ -32,9 +33,6 @@
    #include <acpi/acpi_drivers.h>
    #include <asm/mwait.h>

    -#define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad"
    -#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
    -#define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80
    static DEFINE_MUTEX(isolated_cpus_lock);

    static unsigned long power_saving_mwait_eax;
    @@ -510,7 +508,7 @@ static struct acpi_driver acpi_pad_driver = {
    },
    };

    -static int __init acpi_pad_init(void)
    +static int __init native_acpi_pad_init(void)
    {
    power_saving_mwait_init();
    if (power_saving_mwait_eax == 0)
    @@ -519,13 +517,12 @@ static int __init acpi_pad_init(void)
    return acpi_bus_register_driver(&acpi_pad_driver);
    }

    -static void __exit acpi_pad_exit(void)
    +struct acpi_pad_ops acpi_pad_ops = {
    + .init = native_acpi_pad_init,
    +};
    +
    +static int __init acpi_pad_init(void)
    {
    - acpi_bus_unregister_driver(&acpi_pad_driver);
    + return acpi_pad_ops.init();
    }
    -
    -module_init(acpi_pad_init);
    -module_exit(acpi_pad_exit);
    -MODULE_AUTHOR("Shaohua Li<shaohua.li@intel.com>");
    -MODULE_DESCRIPTION("ACPI Processor Aggregator Driver");
    -MODULE_LICENSE("GPL");
    +device_initcall(acpi_pad_init);
    diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
    index bb145e4..d40abbc 100644
    --- a/include/acpi/acpi_drivers.h
    +++ b/include/acpi/acpi_drivers.h
    @@ -115,6 +115,21 @@ void pci_acpi_crs_quirks(void);
    #define ACPI_PROCESSOR_LIMIT_INCREMENT 0x01
    #define ACPI_PROCESSOR_LIMIT_DECREMENT 0x02

    +/* --------------------------------------------------------------------------
    + PAD (Processor Aggregator Device)
    + -------------------------------------------------------------------------- */
    +
    +#define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad"
    +#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
    +#define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80
    +
    +struct acpi_pad_ops {
    + int (*init)(void);
    +};
    +#ifdef CONFIG_ACPI_PROCESSOR_AGGREGATOR
    +extern struct acpi_pad_ops acpi_pad_ops;
    +#endif
    +
    /*--------------------------------------------------------------------------
    Dock Station
    -------------------------------------------------------------------------- */
    --
    1.7.1[unhandled content-type:application/octet-stream]
    \
     
     \ /
      Last update: 2012-02-23 14:31    [W:0.037 / U:61.112 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site