Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
dcb76f88
Commit
dcb76f88
authored
Jul 22, 2007
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Pull throttle into release branch
parents
08e31686
6c5cf8aa
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
445 additions
and
18 deletions
+445
-18
drivers/acpi/processor_core.c
drivers/acpi/processor_core.c
+6
-0
drivers/acpi/processor_throttling.c
drivers/acpi/processor_throttling.c
+395
-15
include/acpi/processor.h
include/acpi/processor.h
+44
-3
No files found.
drivers/acpi/processor_core.c
View file @
dcb76f88
...
...
@@ -66,6 +66,7 @@
#define ACPI_PROCESSOR_FILE_LIMIT "limit"
#define ACPI_PROCESSOR_NOTIFY_PERFORMANCE 0x80
#define ACPI_PROCESSOR_NOTIFY_POWER 0x81
#define ACPI_PROCESSOR_NOTIFY_THROTTLING 0x82
#define ACPI_PROCESSOR_LIMIT_USER 0
#define ACPI_PROCESSOR_LIMIT_THERMAL 1
...
...
@@ -84,6 +85,8 @@ static int acpi_processor_info_open_fs(struct inode *inode, struct file *file);
static
void
acpi_processor_notify
(
acpi_handle
handle
,
u32
event
,
void
*
data
);
static
acpi_status
acpi_processor_hotadd_init
(
acpi_handle
handle
,
int
*
p_cpu
);
static
int
acpi_processor_handle_eject
(
struct
acpi_processor
*
pr
);
extern
int
acpi_processor_tstate_has_changed
(
struct
acpi_processor
*
pr
);
static
struct
acpi_driver
acpi_processor_driver
=
{
.
name
=
"processor"
,
...
...
@@ -696,6 +699,9 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
acpi_processor_cst_has_changed
(
pr
);
acpi_bus_generate_event
(
device
,
event
,
0
);
break
;
case
ACPI_PROCESSOR_NOTIFY_THROTTLING
:
acpi_processor_tstate_has_changed
(
pr
);
acpi_bus_generate_event
(
device
,
event
,
0
);
default:
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Unsupported event [0x%x]
\n
"
,
event
));
...
...
drivers/acpi/processor_throttling.c
View file @
dcb76f88
This diff is collapsed.
Click to expand it.
include/acpi/processor.h
View file @
dcb76f88
...
...
@@ -21,6 +21,8 @@
#define ACPI_PSD_REV0_REVISION 0
/* Support for _PSD as in ACPI 3.0 */
#define ACPI_PSD_REV0_ENTRIES 5
#define ACPI_TSD_REV0_REVISION 0
/* Support for _PSD as in ACPI 3.0 */
#define ACPI_TSD_REV0_ENTRIES 5
/*
* Types of coordination defined in ACPI 3.0. Same macros can be used across
* P, C and T states
...
...
@@ -125,17 +127,53 @@ struct acpi_processor_performance {
/* Throttling Control */
struct
acpi_tsd_package
{
acpi_integer
num_entries
;
acpi_integer
revision
;
acpi_integer
domain
;
acpi_integer
coord_type
;
acpi_integer
num_processors
;
}
__attribute__
((
packed
));
struct
acpi_ptc_register
{
u8
descriptor
;
u16
length
;
u8
space_id
;
u8
bit_width
;
u8
bit_offset
;
u8
reserved
;
u64
address
;
}
__attribute__
((
packed
));
struct
acpi_processor_tx_tss
{
acpi_integer
freqpercentage
;
/* */
acpi_integer
power
;
/* milliWatts */
acpi_integer
transition_latency
;
/* microseconds */
acpi_integer
control
;
/* control value */
acpi_integer
status
;
/* success indicator */
};
struct
acpi_processor_tx
{
u16
power
;
u16
performance
;
};
struct
acpi_processor
;
struct
acpi_processor_throttling
{
int
state
;
unsigned
int
state
;
unsigned
int
platform_limit
;
struct
acpi_pct_register
control_register
;
struct
acpi_pct_register
status_register
;
unsigned
int
state_count
;
struct
acpi_processor_tx_tss
*
states_tss
;
struct
acpi_tsd_package
domain_info
;
cpumask_t
shared_cpu_map
;
int
(
*
acpi_processor_get_throttling
)
(
struct
acpi_processor
*
pr
);
int
(
*
acpi_processor_set_throttling
)
(
struct
acpi_processor
*
pr
,
int
state
);
u32
address
;
u8
duty_offset
;
u8
duty_width
;
int
state_count
;
struct
acpi_processor_tx
states
[
ACPI_PROCESSOR_MAX_THROTTLING
];
};
...
...
@@ -169,6 +207,9 @@ struct acpi_processor {
u32
id
;
u32
pblk
;
int
performance_platform_limit
;
int
throttling_platform_limit
;
/* 0 - states 0..n-th state available */
struct
acpi_processor_flags
flags
;
struct
acpi_processor_power
power
;
struct
acpi_processor_performance
*
performance
;
...
...
@@ -270,7 +311,7 @@ static inline int acpi_processor_ppc_has_changed(struct acpi_processor *pr)
/* in processor_throttling.c */
int
acpi_processor_get_throttling_info
(
struct
acpi_processor
*
pr
);
int
acpi_processor_set_throttling
(
struct
acpi_processor
*
pr
,
int
state
);
extern
int
acpi_processor_set_throttling
(
struct
acpi_processor
*
pr
,
int
state
);
extern
struct
file_operations
acpi_processor_throttling_fops
;
/* in processor_idle.c */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment