[haiku-commits] BRANCH yongcong-github.master - src/add-ons/kernel/drivers/power/x86_cpuidle

  • From: yongcong-github.master <community@xxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 23 Aug 2012 14:49:28 +0200 (CEST)

added 2 changesets to branch 'refs/remotes/yongcong-github/master'
old head: 5450b1468e73b57afe7893003522fe243c08dcd2
new head: d0de779cd39ccce68ee91720d7e758fb36817229

----------------------------------------------------------------------------

f628591: x86_cpuidle: use module_dependencies rather than get_module()

d0de779: x86_cpuidle: coding style fix according to Jerome

                                     [ Yongcong Du <ycdu.vmcore@xxxxxxxxx> ]

----------------------------------------------------------------------------

3 files changed, 12 insertions(+), 20 deletions(-)
.../drivers/power/x86_cpuidle/acpi_cpuidle.cpp     |   17 +++++-----------
.../drivers/power/x86_cpuidle/intel_cpuidle.cpp    |   12 ++++-------
.../kernel/drivers/power/x86_cpuidle/x86_cpuidle.h |    3 +++

############################################################################

Commit:      f6285911e73bd26b37de1f15514ff0fbdbb82639

Author:      Yongcong Du <ycdu.vmcore@xxxxxxxxx>
Date:        Thu Aug 23 19:50:11 2012 UTC

x86_cpuidle: use module_dependencies rather than get_module()

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/power/x86_cpuidle/acpi_cpuidle.cpp 
b/src/add-ons/kernel/drivers/power/x86_cpuidle/acpi_cpuidle.cpp
index fb4095c..dbce64c 100644
--- a/src/add-ons/kernel/drivers/power/x86_cpuidle/acpi_cpuidle.cpp
+++ b/src/add-ons/kernel/drivers/power/x86_cpuidle/acpi_cpuidle.cpp
@@ -89,11 +89,11 @@ struct acpi_cstate_info {
        uint8 type;
 };
 
-static device_manager_info *sDeviceManager;
 static acpi_cpuidle_driver_info *acpi_processor[B_MAX_CPU_COUNT];
-static CpuidleModuleInfo *sIdle;
 static CpuidleDevice sAcpiDevice;
+static device_manager_info *sDeviceManager;
 static acpi_module_info *sAcpi;
+CpuidleModuleInfo *gIdle;
 
 
 static status_t
@@ -431,20 +431,14 @@ static status_t
 acpi_cpuidle_init(void)
 {
        dprintf("acpi_cpuidle_init\n");
-       if (get_module(B_CPUIDLE_MODULE_NAME, (module_info**)&sIdle) != B_OK)
-               return B_ERROR;
-       if (get_module(B_ACPI_MODULE_NAME, (module_info**)&sAcpi) != B_OK)
-               return B_ERROR;
 
        for (int32 i = 0; i < smp_get_num_cpus(); i++)
                if (acpi_cpuidle_setup(acpi_processor[i]) != B_OK)
                        return B_ERROR;
 
-       status_t status = sIdle->AddDevice(&sAcpiDevice);
+       status_t status = gIdle->AddDevice(&sAcpiDevice);
        if (status == B_OK)
                dprintf("using acpi idle\n");
-       else
-               put_module(B_CPUIDLE_MODULE_NAME);
        return status;
 }
 
@@ -553,9 +547,6 @@ static void
 acpi_cpuidle_uninit_driver(void *driverCookie)
 {
        dprintf("acpi_cpuidle_uninit_driver");
-       put_module(B_CPUIDLE_MODULE_NAME);
-       if (sAcpi)
-               put_module(B_ACPI_MODULE_NAME);
        acpi_cpuidle_driver_info *device = (acpi_cpuidle_driver_info 
*)driverCookie;
        free(device);
 }
@@ -563,6 +554,8 @@ acpi_cpuidle_uninit_driver(void *driverCookie)
 
 module_dependency module_dependencies[] = {
        { B_DEVICE_MANAGER_MODULE_NAME, (module_info **)&sDeviceManager },
+       { B_ACPI_MODULE_NAME, (module_info **)&sAcpi},
+       { B_CPUIDLE_MODULE_NAME, (module_info **)&gIdle },
        {}
 };
 
diff --git a/src/add-ons/kernel/drivers/power/x86_cpuidle/intel_cpuidle.cpp 
b/src/add-ons/kernel/drivers/power/x86_cpuidle/intel_cpuidle.cpp
index 1032a5d..069fbc1 100644
--- a/src/add-ons/kernel/drivers/power/x86_cpuidle/intel_cpuidle.cpp
+++ b/src/add-ons/kernel/drivers/power/x86_cpuidle/intel_cpuidle.cpp
@@ -16,7 +16,6 @@
 
 #include "x86_cpuidle.h"
 
-static CpuidleModuleInfo *sIdle;
 static CpuidleDevice sIntelDevice;
 
 static void *kMwaitEax[] = {
@@ -82,8 +81,6 @@ status_t
 intel_cpuidle_init(void)
 {
        dprintf("intel idle init\n");
-       if (get_module(B_CPUIDLE_MODULE_NAME, (module_info**)&sIdle) != B_OK)
-               return B_ERROR;
        cpu_ent *cpu = get_cpu_struct();
        if (cpu->arch.vendor != VENDOR_INTEL || cpu->arch.family != 6)
                return B_ERROR;
@@ -116,10 +113,8 @@ intel_cpuidle_init(void)
                        kMwaitEax[i];
                sIntelDevice.cStateCount++;
        }
-       status_t status = sIdle->AddDevice(&sIntelDevice);
+       status_t status = gIdle->AddDevice(&sIntelDevice);
        if (status == B_OK)
                dprintf("using intel idle\n");
-       else
-               put_module(B_CPUIDLE_MODULE_NAME);
        return status;
 }
diff --git a/src/add-ons/kernel/drivers/power/x86_cpuidle/x86_cpuidle.h 
b/src/add-ons/kernel/drivers/power/x86_cpuidle/x86_cpuidle.h
index b524ef1..4b6285c 100644
--- a/src/add-ons/kernel/drivers/power/x86_cpuidle/x86_cpuidle.h
+++ b/src/add-ons/kernel/drivers/power/x86_cpuidle/x86_cpuidle.h
@@ -6,6 +6,9 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+
+extern CpuidleModuleInfo *gIdle;
+
 static inline void
 x86_monitor(const void *addr, unsigned long ecx, unsigned long edx)
 {

############################################################################

Commit:      d0de779cd39ccce68ee91720d7e758fb36817229

Author:      Yongcong Du <ycdu.vmcore@xxxxxxxxx>
Date:        Thu Aug 23 20:01:58 2012 UTC

x86_cpuidle: coding style fix according to Jerome

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/power/x86_cpuidle/intel_cpuidle.cpp 
b/src/add-ons/kernel/drivers/power/x86_cpuidle/intel_cpuidle.cpp
index 069fbc1..7f6fbd6 100644
--- a/src/add-ons/kernel/drivers/power/x86_cpuidle/intel_cpuidle.cpp
+++ b/src/add-ons/kernel/drivers/power/x86_cpuidle/intel_cpuidle.cpp
@@ -96,8 +96,9 @@ intel_cpuidle_init(void)
         * ecx[1] support for treating interrupts as break-events for mwait
         * edx number of sub-states
         */
-       if (!((cpuid.regs.ecx & 0x1) && (cpuid.regs.ecx & 0x2) &&
-               cpuid.regs.edx)) {
+       if ((cpuid.regs.ecx & 0x1) == 0 ||
+               (cpuid.regs.ecx & 0x2) == 0 ||
+               cpuid.regs.edx == 0) {
                return B_ERROR;
        }
 


Other related posts: