cpuidle: remove drivers/cpuidle

Since generic cpuidle module is loaded by lowlevel cpuidle drivers which
are loaded dynamically during boot, we don't need drivers/cpuidle any
more

Signed-off-by: Fredrik Holmqvist <[email protected]>
This commit is contained in:
Yongcong Du
2012-11-18 17:39:20 +01:00
committed by Fredrik Holmqvist
parent 0138a95eba
commit be9a02c0db
3 changed files with 0 additions and 158 deletions
-1
View File
@@ -4,7 +4,6 @@ SubInclude HAIKU_TOP src add-ons kernel drivers bluetooth ;
SubInclude HAIKU_TOP src add-ons kernel drivers bus ;
SubInclude HAIKU_TOP src add-ons kernel drivers audio ;
SubInclude HAIKU_TOP src add-ons kernel drivers common ;
SubInclude HAIKU_TOP src add-ons kernel drivers cpuidle ;
SubInclude HAIKU_TOP src add-ons kernel drivers disk ;
SubInclude HAIKU_TOP src add-ons kernel drivers dvb ;
SubInclude HAIKU_TOP src add-ons kernel drivers input ;
@@ -1,7 +0,0 @@
SubDir HAIKU_TOP src add-ons kernel drivers cpuidle ;
UsePrivateKernelHeaders ;
KernelAddon <driver>cpuidle :
cpuidle.cpp
;
@@ -1,150 +0,0 @@
/*
* Copyright 2012, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Yongcong Du <[email protected]>
*/
#include <stdio.h>
#include <string.h>
#include <smp.h>
#include <Drivers.h>
#include <KernelExport.h>
#include <cpuidle.h>
#define DEVICE_NAME "cpuidle"
int32 api_version = B_CUR_DRIVER_API_VERSION;
static GenCpuidle *sGenCpuidle;
static status_t
cpuidle_open(const char *name, uint32 flags, void **cookie)
{
*cookie = NULL;
return B_OK;
}
static status_t
cpuidle_close(void *cookie)
{
return B_OK;
}
static status_t
cpuidle_free(void *cookie)
{
return B_OK;
}
static status_t
cpuidle_ioctl(void *cookie, uint32 op, void *buffer, size_t length)
{
return B_OK;
}
static status_t
cpuidle_read(void *cookie, off_t pos, void *buffer, size_t *length)
{
if (pos != 0) {
*length = 0;
return B_OK;
}
char *str = (char *)buffer;
size_t max_len = *length;
int32 stateCount = sGenCpuidle->GetIdleStateCount();
int32 bytes = snprintf(str, max_len, "C-STATE COUNT: %"B_PRId32"\n", stateCount);
max_len-= bytes;
str += bytes;
int32 cpu = smp_get_num_cpus();
for (int32 i = 0; i < cpu; i++) {
bytes = snprintf(str, max_len, "CPU%"B_PRId32"\n", i);
max_len-= bytes;
str += bytes;
for (int32 j = 1; j < stateCount; j++) {
CpuidleStat stat;
bytes = snprintf(str, max_len, "%s\n", sGenCpuidle->GetIdleStateName(j));
max_len-= bytes;
str += bytes;
sGenCpuidle->GetIdleStateInfo(i, j, &stat);
bytes = snprintf(str, max_len, "%lld %lldus\n",
stat.usageCount, stat.usageTime);
max_len-= bytes;
str += bytes;
}
}
*length = strlen((char *)buffer);
return B_OK;
}
static status_t
cpuidle_write(void *cookie, off_t pos, const void *buffer, size_t *_length)
{
return B_OK;
}
status_t
init_hardware(void)
{
return B_OK;
}
const char **
publish_devices(void)
{
static const char *devices[] = {
DEVICE_NAME,
NULL
};
return devices;
}
device_hooks *
find_device(const char *name)
{
static device_hooks hooks = {
&cpuidle_open,
&cpuidle_close,
&cpuidle_free,
&cpuidle_ioctl,
&cpuidle_read,
&cpuidle_write,
};
return &hooks;
}
status_t
init_driver(void)
{
status_t err;
err = get_module(B_CPUIDLE_MODULE_NAME, (module_info **)&sGenCpuidle);
if (err != B_OK) {
dprintf("can't load "B_CPUIDLE_MODULE_NAME"\n");
}
return B_OK;
}
void
uninit_driver(void)
{
put_module(B_CPUIDLE_MODULE_NAME);
}