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
d9aaf6ca
Commit
d9aaf6ca
authored
Nov 10, 2004
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge intel.com:/home/lenb/src/26-stable-dev
into intel.com:/home/lenb/src/26-latest-dev
parents
091cced3
dc6d190e
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
237 additions
and
184 deletions
+237
-184
arch/i386/kernel/acpi/Makefile
arch/i386/kernel/acpi/Makefile
+1
-1
arch/i386/kernel/acpi/boot.c
arch/i386/kernel/acpi/boot.c
+4
-0
arch/i386/kernel/acpi/earlyquirk.c
arch/i386/kernel/acpi/earlyquirk.c
+51
-0
drivers/acpi/battery.c
drivers/acpi/battery.c
+99
-106
drivers/acpi/ec.c
drivers/acpi/ec.c
+35
-26
drivers/acpi/fan.c
drivers/acpi/fan.c
+24
-26
drivers/acpi/system.c
drivers/acpi/system.c
+20
-25
include/asm-i386/acpi.h
include/asm-i386/acpi.h
+2
-0
include/asm-i386/pci-direct.h
include/asm-i386/pci-direct.h
+1
-0
No files found.
arch/i386/kernel/acpi/Makefile
View file @
d9aaf6ca
obj-$(CONFIG_ACPI_BOOT)
:=
boot.o
obj-$(CONFIG_ACPI_BOOT)
:=
boot.o
earlyquirk.o
obj-$(CONFIG_ACPI_SLEEP)
+=
sleep.o wakeup.o
arch/i386/kernel/acpi/boot.c
View file @
d9aaf6ca
...
...
@@ -818,6 +818,10 @@ acpi_boot_init (void)
return
error
;
}
#ifdef __i386__
check_acpi_pci
();
#endif
acpi_table_parse
(
ACPI_BOOT
,
acpi_parse_sbf
);
/*
...
...
arch/i386/kernel/acpi/earlyquirk.c
0 → 100644
View file @
d9aaf6ca
/*
* Do early PCI probing for bug detection when the main PCI subsystem is
* not up yet.
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/pci.h>
#include <asm/pci-direct.h>
#include <asm/acpi.h>
static
int
__init
check_bridge
(
int
vendor
,
int
device
)
{
/* According to Nvidia all timer overrides are bogus. Just ignore
them all. */
if
(
vendor
==
PCI_VENDOR_ID_NVIDIA
)
{
acpi_skip_timer_override
=
1
;
}
return
0
;
}
void
__init
check_acpi_pci
(
void
)
{
int
num
,
slot
,
func
;
/* Assume the machine supports type 1. If not it will
always read ffffffff and should not have any side effect. */
/* Poor man's PCI discovery */
for
(
num
=
0
;
num
<
32
;
num
++
)
{
for
(
slot
=
0
;
slot
<
32
;
slot
++
)
{
for
(
func
=
0
;
func
<
8
;
func
++
)
{
u32
class
;
u32
vendor
;
class
=
read_pci_config
(
num
,
slot
,
func
,
PCI_CLASS_REVISION
);
if
(
class
==
0xffffffff
)
break
;
if
((
class
>>
16
)
!=
PCI_CLASS_BRIDGE_PCI
)
continue
;
vendor
=
read_pci_config
(
num
,
slot
,
func
,
PCI_VENDOR_ID
);
if
(
check_bridge
(
vendor
&
0xffff
,
vendor
>>
16
))
return
;
}
}
}
}
drivers/acpi/battery.c
View file @
d9aaf6ca
This diff is collapsed.
Click to expand it.
drivers/acpi/ec.c
View file @
d9aaf6ca
/*
* acpi_ec.c - ACPI Embedded Controller Driver ($Revision: 38 $)
*
* Copyright (C) 2004 Luming Yu <luming.yu@intel.com>
* Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
* Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
*
...
...
@@ -29,6 +30,7 @@
#include <linux/types.h>
#include <linux/delay.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <asm/io.h>
#include <acpi/acpi_bus.h>
#include <acpi/acpi_drivers.h>
...
...
@@ -441,9 +443,15 @@ acpi_ec_space_handler (
ACPI_FUNCTION_TRACE
(
"acpi_ec_space_handler"
);
if
((
address
>
0xFF
)
||
(
bit_width
!=
8
)
||
!
value
||
!
handler_context
)
if
((
address
>
0xFF
)
||
!
value
||
!
handler_context
)
return_VALUE
(
AE_BAD_PARAMETER
);
if
(
bit_width
!=
8
)
{
printk
(
KERN_WARNING
PREFIX
"acpi_ec_space_handler: bit_width should be 8
\n
"
);
if
(
acpi_strict
)
return_VALUE
(
AE_BAD_PARAMETER
);
}
ec
=
(
struct
acpi_ec
*
)
handler_context
;
switch
(
function
)
{
...
...
@@ -484,41 +492,38 @@ struct proc_dir_entry *acpi_ec_dir;
static
int
acpi_ec_read_info
(
char
*
page
,
char
**
start
,
off_t
off
,
int
count
,
int
*
eof
,
void
*
data
)
acpi_ec_read_info
(
struct
seq_file
*
seq
,
void
*
offset
)
{
struct
acpi_ec
*
ec
=
(
struct
acpi_ec
*
)
data
;
char
*
p
=
page
;
int
len
=
0
;
struct
acpi_ec
*
ec
=
(
struct
acpi_ec
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_read_info"
);
if
(
!
ec
||
(
off
!=
0
)
)
if
(
!
ec
)
goto
end
;
p
+=
sprintf
(
p
,
"gpe bit: 0x%02x
\n
"
,
seq_printf
(
seq
,
"gpe bit: 0x%02x
\n
"
,
(
u32
)
ec
->
gpe_bit
);
p
+=
sprintf
(
p
,
"ports: 0x%02x, 0x%02x
\n
"
,
seq_printf
(
seq
,
"ports: 0x%02x, 0x%02x
\n
"
,
(
u32
)
ec
->
status_addr
.
address
,
(
u32
)
ec
->
data_addr
.
address
);
p
+=
sprintf
(
p
,
"use global lock: %s
\n
"
,
seq_printf
(
seq
,
"use global lock: %s
\n
"
,
ec
->
global_lock
?
"yes"
:
"no"
);
end:
len
=
(
p
-
page
);
if
(
len
<=
off
+
count
)
*
eof
=
1
;
*
start
=
page
+
off
;
len
-=
off
;
if
(
len
>
count
)
len
=
count
;
if
(
len
<
0
)
len
=
0
;
return_VALUE
(
len
);
return_VALUE
(
0
);
}
static
int
acpi_ec_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
{
return
single_open
(
file
,
acpi_ec_read_info
,
PDE
(
inode
)
->
data
);
}
static
struct
file_operations
acpi_ec_info_ops
=
{
.
open
=
acpi_ec_info_open_fs
,
.
read
=
seq_read
,
.
llseek
=
seq_lseek
,
.
release
=
single_release
,
.
owner
=
THIS_MODULE
,
};
static
int
acpi_ec_add_fs
(
...
...
@@ -535,13 +540,17 @@ acpi_ec_add_fs (
return_VALUE
(
-
ENODEV
);
}
entry
=
create_proc_read_entry
(
ACPI_EC_FILE_INFO
,
S_IRUGO
,
acpi_device_dir
(
device
),
acpi_ec_read_info
,
acpi_driver_data
(
device
));
entry
=
create_proc_entry
(
ACPI_EC_FILE_INFO
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
ACPI_DEBUG_PRINT
((
ACPI_DB_WARN
,
"Unable to create '%s' fs entry
\n
"
,
ACPI_EC_FILE_INFO
));
else
{
entry
->
proc_fops
=
&
acpi_ec_info_ops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return_VALUE
(
0
);
}
...
...
drivers/acpi/fan.c
View file @
d9aaf6ca
...
...
@@ -28,6 +28,7 @@
#include <linux/init.h>
#include <linux/types.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <asm/uaccess.h>
#include <acpi/acpi_bus.h>
...
...
@@ -75,51 +76,41 @@ struct proc_dir_entry *acpi_fan_dir;
static
int
acpi_fan_read_state
(
char
*
page
,
char
**
start
,
off_t
off
,
int
count
,
int
*
eof
,
void
*
data
)
acpi_fan_read_state
(
struct
seq_file
*
seq
,
void
*
offset
)
{
struct
acpi_fan
*
fan
=
(
struct
acpi_fan
*
)
data
;
char
*
p
=
page
;
int
len
=
0
;
struct
acpi_fan
*
fan
=
(
struct
acpi_fan
*
)
seq
->
private
;
int
state
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_fan_read_state"
);
if
(
!
fan
||
(
off
!=
0
)
)
if
(
!
fan
)
goto
end
;
if
(
acpi_bus_get_power
(
fan
->
handle
,
&
state
))
goto
end
;
p
+=
sprintf
(
p
,
"status: %s
\n
"
,
seq_printf
(
seq
,
"status: %s
\n
"
,
!
state
?
"on"
:
"off"
);
end:
len
=
(
p
-
page
);
if
(
len
<=
off
+
count
)
*
eof
=
1
;
*
start
=
page
+
off
;
len
-=
off
;
if
(
len
>
count
)
len
=
count
;
if
(
len
<
0
)
len
=
0
;
return_VALUE
(
len
);
return_VALUE
(
0
);
}
static
int
acpi_fan_state_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
{
return
single_open
(
file
,
acpi_fan_read_state
,
PDE
(
inode
)
->
data
);
}
static
in
t
static
ssize_
t
acpi_fan_write_state
(
struct
file
*
file
,
const
char
__user
*
buffer
,
unsigned
long
count
,
void
*
data
)
size_t
count
,
loff_t
*
ppos
)
{
int
result
=
0
;
struct
acpi_fan
*
fan
=
(
struct
acpi_fan
*
)
data
;
struct
seq_file
*
m
=
(
struct
seq_file
*
)
file
->
private_data
;
struct
acpi_fan
*
fan
=
(
struct
acpi_fan
*
)
m
->
private
;
char
state_string
[
12
]
=
{
'\0'
};
ACPI_FUNCTION_TRACE
(
"acpi_fan_write_state"
);
...
...
@@ -140,6 +131,14 @@ acpi_fan_write_state (
return_VALUE
(
count
);
}
static
struct
file_operations
acpi_fan_state_ops
=
{
.
open
=
acpi_fan_state_open_fs
,
.
read
=
seq_read
,
.
write
=
acpi_fan_write_state
,
.
llseek
=
seq_lseek
,
.
release
=
single_release
,
.
owner
=
THIS_MODULE
,
};
static
int
acpi_fan_add_fs
(
...
...
@@ -168,8 +167,7 @@ acpi_fan_add_fs (
"Unable to create '%s' fs entry
\n
"
,
ACPI_FAN_FILE_STATE
));
else
{
entry
->
read_proc
=
acpi_fan_read_state
;
entry
->
write_proc
=
acpi_fan_write_state
;
entry
->
proc_fops
=
&
acpi_fan_state_ops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
...
...
drivers/acpi/system.c
View file @
d9aaf6ca
...
...
@@ -24,6 +24,7 @@
*/
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/init.h>
#include <asm/uaccess.h>
...
...
@@ -48,35 +49,26 @@ extern FADT_DESCRIPTOR acpi_fadt;
-------------------------------------------------------------------------- */
static
int
acpi_system_read_info
(
char
*
page
,
char
**
start
,
off_t
off
,
int
count
,
int
*
eof
,
void
*
data
)
acpi_system_read_info
(
struct
seq_file
*
seq
,
void
*
offset
)
{
char
*
p
=
page
;
int
size
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_system_read_info"
);
if
(
off
!=
0
)
goto
end
;
p
+=
sprintf
(
p
,
"version: %x
\n
"
,
ACPI_CA_VERSION
);
end:
size
=
(
p
-
page
);
if
(
size
<=
off
+
count
)
*
eof
=
1
;
*
start
=
page
+
off
;
size
-=
off
;
if
(
size
>
count
)
size
=
count
;
if
(
size
<
0
)
size
=
0
;
seq_printf
(
seq
,
"version: %x
\n
"
,
ACPI_CA_VERSION
);
return_VALUE
(
0
);
}
return_VALUE
(
size
);
static
int
acpi_system_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
{
return
single_open
(
file
,
acpi_system_read_info
,
PDE
(
inode
)
->
data
);
}
static
struct
file_operations
acpi_system_info_ops
=
{
.
open
=
acpi_system_info_open_fs
,
.
read
=
seq_read
,
.
llseek
=
seq_lseek
,
.
release
=
single_release
,
};
static
ssize_t
acpi_system_read_dsdt
(
struct
file
*
,
char
__user
*
,
size_t
,
loff_t
*
);
static
struct
file_operations
acpi_system_dsdt_ops
=
{
...
...
@@ -152,10 +144,13 @@ static int __init acpi_system_init (void)
/* 'info' [R] */
name
=
ACPI_SYSTEM_FILE_INFO
;
entry
=
create_proc_
read_
entry
(
name
,
S_IRUGO
,
acpi_root_dir
,
acpi_system_read_info
,
NULL
);
entry
=
create_proc_entry
(
name
,
S_IRUGO
,
acpi_root_dir
);
if
(
!
entry
)
goto
Error
;
else
{
entry
->
proc_fops
=
&
acpi_system_info_ops
;
}
/* 'dsdt' [R] */
name
=
ACPI_SYSTEM_FILE_DSDT
;
...
...
include/asm-i386/acpi.h
View file @
d9aaf6ca
...
...
@@ -138,6 +138,8 @@ extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq);
extern
int
skip_ioapic_setup
;
extern
int
acpi_skip_timer_override
;
extern
void
check_acpi_pci
(
void
);
static
inline
void
disable_ioapic_setup
(
void
)
{
skip_ioapic_setup
=
1
;
...
...
include/asm-i386/pci-direct.h
0 → 100644
View file @
d9aaf6ca
#include "asm-x86_64/pci-direct.h"
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