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; }