lkml.org 
[lkml]   [2010]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/8] ACPI: allow a native cpuidle driver to displace ACPI
    Date
    From: Len Brown <len.brown@intel.com>

    The ACPI driver would fail probe when it found that
    another driver had previously registered with cpuidle.

    But this is a natural situation, as a native hardware
    cpuidle driver should be able to bind instead of ACPI,
    and the ACPI processor driver should be able to handle
    yielding control of C-states while still handling
    P-states and T-states.

    Add a KERN_DEBUG line showing when acpi_idle
    does successfully register.

    Signed-off-by: Len Brown <len.brown@intel.com>
    ---
    drivers/acpi/processor_driver.c | 11 ++++++-----
    1 files changed, 6 insertions(+), 5 deletions(-)

    diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
    index 5675d97..deefa85 100644
    --- a/drivers/acpi/processor_driver.c
    +++ b/drivers/acpi/processor_driver.c
    @@ -616,7 +616,8 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device)
    acpi_processor_get_limit_info(pr);


    - acpi_processor_power_init(pr, device);
    + if (cpuidle_get_driver() == &acpi_idle_driver)
    + acpi_processor_power_init(pr, device);

    pr->cdev = thermal_cooling_device_register("Processor", device,
    &processor_cooling_ops);
    @@ -920,9 +921,10 @@ static int __init acpi_processor_init(void)
    if (!acpi_processor_dir)
    return -ENOMEM;
    #endif
    - result = cpuidle_register_driver(&acpi_idle_driver);
    - if (result < 0)
    - goto out_proc;
    +
    + if (!cpuidle_register_driver(&acpi_idle_driver))
    + printk(KERN_DEBUG "ACPI: %s registered with cpuidle\n",
    + acpi_idle_driver.name);

    result = acpi_bus_register_driver(&acpi_processor_driver);
    if (result < 0)
    @@ -941,7 +943,6 @@ static int __init acpi_processor_init(void)
    out_cpuidle:
    cpuidle_unregister_driver(&acpi_idle_driver);

    -out_proc:
    #ifdef CONFIG_ACPI_PROCFS
    remove_proc_entry(ACPI_PROCESSOR_CLASS, acpi_root_dir);
    #endif
    --
    1.6.0.6


    \
     
     \ /
      Last update: 2010-05-28 08:09    [W:0.026 / U:0.312 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site