Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
4e1b83ad
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
4e1b83ad
编写于
1月 11, 2008
作者:
L
Len Brown
浏览文件
操作
浏览文件
下载
差异文件
Pull bugzilla-9494 into release branch
上级
02d5bccf
97749cd9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
67 addition
and
12 deletion
+67
-12
drivers/acpi/Kconfig
drivers/acpi/Kconfig
+6
-3
drivers/acpi/ac.c
drivers/acpi/ac.c
+14
-2
drivers/acpi/battery.c
drivers/acpi/battery.c
+25
-6
drivers/acpi/sbs.c
drivers/acpi/sbs.c
+22
-1
未找到文件。
drivers/acpi/Kconfig
浏览文件 @
4e1b83ad
...
@@ -82,6 +82,12 @@ config ACPI_PROCFS_POWER
...
@@ -82,6 +82,12 @@ config ACPI_PROCFS_POWER
and functions, which do not yet exist in /sys
and functions, which do not yet exist in /sys
Say N to delete power /proc/acpi/ folders that have moved to /sys/
Say N to delete power /proc/acpi/ folders that have moved to /sys/
config ACPI_SYSFS_POWER
bool "Future power /sys interface"
select POWER_SUPPLY
default y
---help---
Say N to disable power /sys interface
config ACPI_PROC_EVENT
config ACPI_PROC_EVENT
bool "Deprecated /proc/acpi/event support"
bool "Deprecated /proc/acpi/event support"
depends on PROC_FS
depends on PROC_FS
...
@@ -103,7 +109,6 @@ config ACPI_PROC_EVENT
...
@@ -103,7 +109,6 @@ config ACPI_PROC_EVENT
config ACPI_AC
config ACPI_AC
tristate "AC Adapter"
tristate "AC Adapter"
depends on X86
depends on X86
select POWER_SUPPLY
default y
default y
help
help
This driver adds support for the AC Adapter object, which indicates
This driver adds support for the AC Adapter object, which indicates
...
@@ -113,7 +118,6 @@ config ACPI_AC
...
@@ -113,7 +118,6 @@ config ACPI_AC
config ACPI_BATTERY
config ACPI_BATTERY
tristate "Battery"
tristate "Battery"
depends on X86
depends on X86
select POWER_SUPPLY
default y
default y
help
help
This driver adds support for battery information through
This driver adds support for battery information through
...
@@ -368,7 +372,6 @@ config ACPI_HOTPLUG_MEMORY
...
@@ -368,7 +372,6 @@ config ACPI_HOTPLUG_MEMORY
config ACPI_SBS
config ACPI_SBS
tristate "Smart Battery System"
tristate "Smart Battery System"
depends on X86
depends on X86
select POWER_SUPPLY
help
help
This driver adds support for the Smart Battery System, another
This driver adds support for the Smart Battery System, another
type of access to battery information, found on some laptops.
type of access to battery information, found on some laptops.
...
...
drivers/acpi/ac.c
浏览文件 @
4e1b83ad
...
@@ -31,7 +31,9 @@
...
@@ -31,7 +31,9 @@
#include <linux/proc_fs.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
#endif
#endif
#ifdef CONFIG_ACPI_SYSFS_POWER
#include <linux/power_supply.h>
#include <linux/power_supply.h>
#endif
#include <acpi/acpi_bus.h>
#include <acpi/acpi_bus.h>
#include <acpi/acpi_drivers.h>
#include <acpi/acpi_drivers.h>
...
@@ -79,7 +81,9 @@ static struct acpi_driver acpi_ac_driver = {
...
@@ -79,7 +81,9 @@ static struct acpi_driver acpi_ac_driver = {
};
};
struct
acpi_ac
{
struct
acpi_ac
{
#ifdef CONFIG_ACPI_SYSFS_POWER
struct
power_supply
charger
;
struct
power_supply
charger
;
#endif
struct
acpi_device
*
device
;
struct
acpi_device
*
device
;
unsigned
long
state
;
unsigned
long
state
;
};
};
...
@@ -94,7 +98,7 @@ static const struct file_operations acpi_ac_fops = {
...
@@ -94,7 +98,7 @@ static const struct file_operations acpi_ac_fops = {
.
release
=
single_release
,
.
release
=
single_release
,
};
};
#endif
#endif
#ifdef CONFIG_ACPI_SYSFS_POWER
static
int
get_ac_property
(
struct
power_supply
*
psy
,
static
int
get_ac_property
(
struct
power_supply
*
psy
,
enum
power_supply_property
psp
,
enum
power_supply_property
psp
,
union
power_supply_propval
*
val
)
union
power_supply_propval
*
val
)
...
@@ -113,7 +117,7 @@ static int get_ac_property(struct power_supply *psy,
...
@@ -113,7 +117,7 @@ static int get_ac_property(struct power_supply *psy,
static
enum
power_supply_property
ac_props
[]
=
{
static
enum
power_supply_property
ac_props
[]
=
{
POWER_SUPPLY_PROP_ONLINE
,
POWER_SUPPLY_PROP_ONLINE
,
};
};
#endif
/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
AC Adapter Management
AC Adapter Management
-------------------------------------------------------------------------- */
-------------------------------------------------------------------------- */
...
@@ -241,7 +245,9 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
...
@@ -241,7 +245,9 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
acpi_bus_generate_netlink_event
(
device
->
pnp
.
device_class
,
acpi_bus_generate_netlink_event
(
device
->
pnp
.
device_class
,
device
->
dev
.
bus_id
,
event
,
device
->
dev
.
bus_id
,
event
,
(
u32
)
ac
->
state
);
(
u32
)
ac
->
state
);
#ifdef CONFIG_ACPI_SYSFS_POWER
kobject_uevent
(
&
ac
->
charger
.
dev
->
kobj
,
KOBJ_CHANGE
);
kobject_uevent
(
&
ac
->
charger
.
dev
->
kobj
,
KOBJ_CHANGE
);
#endif
break
;
break
;
default:
default:
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
...
@@ -280,12 +286,14 @@ static int acpi_ac_add(struct acpi_device *device)
...
@@ -280,12 +286,14 @@ static int acpi_ac_add(struct acpi_device *device)
#endif
#endif
if
(
result
)
if
(
result
)
goto
end
;
goto
end
;
#ifdef CONFIG_ACPI_SYSFS_POWER
ac
->
charger
.
name
=
acpi_device_bid
(
device
);
ac
->
charger
.
name
=
acpi_device_bid
(
device
);
ac
->
charger
.
type
=
POWER_SUPPLY_TYPE_MAINS
;
ac
->
charger
.
type
=
POWER_SUPPLY_TYPE_MAINS
;
ac
->
charger
.
properties
=
ac_props
;
ac
->
charger
.
properties
=
ac_props
;
ac
->
charger
.
num_properties
=
ARRAY_SIZE
(
ac_props
);
ac
->
charger
.
num_properties
=
ARRAY_SIZE
(
ac_props
);
ac
->
charger
.
get_property
=
get_ac_property
;
ac
->
charger
.
get_property
=
get_ac_property
;
power_supply_register
(
&
ac
->
device
->
dev
,
&
ac
->
charger
);
power_supply_register
(
&
ac
->
device
->
dev
,
&
ac
->
charger
);
#endif
status
=
acpi_install_notify_handler
(
device
->
handle
,
status
=
acpi_install_notify_handler
(
device
->
handle
,
ACPI_ALL_NOTIFY
,
acpi_ac_notify
,
ACPI_ALL_NOTIFY
,
acpi_ac_notify
,
ac
);
ac
);
...
@@ -319,8 +327,10 @@ static int acpi_ac_resume(struct acpi_device *device)
...
@@ -319,8 +327,10 @@ static int acpi_ac_resume(struct acpi_device *device)
old_state
=
ac
->
state
;
old_state
=
ac
->
state
;
if
(
acpi_ac_get_state
(
ac
))
if
(
acpi_ac_get_state
(
ac
))
return
0
;
return
0
;
#ifdef CONFIG_ACPI_SYSFS_POWER
if
(
old_state
!=
ac
->
state
)
if
(
old_state
!=
ac
->
state
)
kobject_uevent
(
&
ac
->
charger
.
dev
->
kobj
,
KOBJ_CHANGE
);
kobject_uevent
(
&
ac
->
charger
.
dev
->
kobj
,
KOBJ_CHANGE
);
#endif
return
0
;
return
0
;
}
}
...
@@ -337,8 +347,10 @@ static int acpi_ac_remove(struct acpi_device *device, int type)
...
@@ -337,8 +347,10 @@ static int acpi_ac_remove(struct acpi_device *device, int type)
status
=
acpi_remove_notify_handler
(
device
->
handle
,
status
=
acpi_remove_notify_handler
(
device
->
handle
,
ACPI_ALL_NOTIFY
,
acpi_ac_notify
);
ACPI_ALL_NOTIFY
,
acpi_ac_notify
);
#ifdef CONFIG_ACPI_SYSFS_POWER
if
(
ac
->
charger
.
dev
)
if
(
ac
->
charger
.
dev
)
power_supply_unregister
(
&
ac
->
charger
);
power_supply_unregister
(
&
ac
->
charger
);
#endif
#ifdef CONFIG_ACPI_PROCFS_POWER
#ifdef CONFIG_ACPI_PROCFS_POWER
acpi_ac_remove_fs
(
device
);
acpi_ac_remove_fs
(
device
);
#endif
#endif
...
...
drivers/acpi/battery.c
浏览文件 @
4e1b83ad
...
@@ -40,7 +40,9 @@
...
@@ -40,7 +40,9 @@
#include <acpi/acpi_bus.h>
#include <acpi/acpi_bus.h>
#include <acpi/acpi_drivers.h>
#include <acpi/acpi_drivers.h>
#ifdef CONFIG_ACPI_SYSFS_POWER
#include <linux/power_supply.h>
#include <linux/power_supply.h>
#endif
#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
...
@@ -86,7 +88,9 @@ MODULE_DEVICE_TABLE(acpi, battery_device_ids);
...
@@ -86,7 +88,9 @@ MODULE_DEVICE_TABLE(acpi, battery_device_ids);
struct
acpi_battery
{
struct
acpi_battery
{
struct
mutex
lock
;
struct
mutex
lock
;
#ifdef CONFIG_ACPI_SYSFS_POWER
struct
power_supply
bat
;
struct
power_supply
bat
;
#endif
struct
acpi_device
*
device
;
struct
acpi_device
*
device
;
unsigned
long
update_time
;
unsigned
long
update_time
;
int
current_now
;
int
current_now
;
...
@@ -117,6 +121,7 @@ inline int acpi_battery_present(struct acpi_battery *battery)
...
@@ -117,6 +121,7 @@ inline int acpi_battery_present(struct acpi_battery *battery)
return
battery
->
device
->
status
.
battery_present
;
return
battery
->
device
->
status
.
battery_present
;
}
}
#ifdef CONFIG_ACPI_SYSFS_POWER
static
int
acpi_battery_technology
(
struct
acpi_battery
*
battery
)
static
int
acpi_battery_technology
(
struct
acpi_battery
*
battery
)
{
{
if
(
!
strcasecmp
(
"NiCd"
,
battery
->
type
))
if
(
!
strcasecmp
(
"NiCd"
,
battery
->
type
))
...
@@ -222,6 +227,7 @@ static enum power_supply_property energy_battery_props[] = {
...
@@ -222,6 +227,7 @@ static enum power_supply_property energy_battery_props[] = {
POWER_SUPPLY_PROP_MODEL_NAME
,
POWER_SUPPLY_PROP_MODEL_NAME
,
POWER_SUPPLY_PROP_MANUFACTURER
,
POWER_SUPPLY_PROP_MANUFACTURER
,
};
};
#endif
#ifdef CONFIG_ACPI_PROCFS_POWER
#ifdef CONFIG_ACPI_PROCFS_POWER
inline
char
*
acpi_battery_units
(
struct
acpi_battery
*
battery
)
inline
char
*
acpi_battery_units
(
struct
acpi_battery
*
battery
)
...
@@ -398,6 +404,7 @@ static int acpi_battery_init_alarm(struct acpi_battery *battery)
...
@@ -398,6 +404,7 @@ static int acpi_battery_init_alarm(struct acpi_battery *battery)
return
acpi_battery_set_alarm
(
battery
);
return
acpi_battery_set_alarm
(
battery
);
}
}
#ifdef CONFIG_ACPI_SYSFS_POWER
static
ssize_t
acpi_battery_alarm_show
(
struct
device
*
dev
,
static
ssize_t
acpi_battery_alarm_show
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
struct
device_attribute
*
attr
,
char
*
buf
)
char
*
buf
)
...
@@ -429,11 +436,6 @@ static int sysfs_add_battery(struct acpi_battery *battery)
...
@@ -429,11 +436,6 @@ static int sysfs_add_battery(struct acpi_battery *battery)
{
{
int
result
;
int
result
;
battery
->
update_time
=
0
;
result
=
acpi_battery_get_info
(
battery
);
acpi_battery_init_alarm
(
battery
);
if
(
result
)
return
result
;
if
(
battery
->
power_unit
)
{
if
(
battery
->
power_unit
)
{
battery
->
bat
.
properties
=
charge_battery_props
;
battery
->
bat
.
properties
=
charge_battery_props
;
battery
->
bat
.
num_properties
=
battery
->
bat
.
num_properties
=
...
@@ -462,18 +464,31 @@ static void sysfs_remove_battery(struct acpi_battery *battery)
...
@@ -462,18 +464,31 @@ static void sysfs_remove_battery(struct acpi_battery *battery)
power_supply_unregister
(
&
battery
->
bat
);
power_supply_unregister
(
&
battery
->
bat
);
battery
->
bat
.
dev
=
NULL
;
battery
->
bat
.
dev
=
NULL
;
}
}
#endif
static
int
acpi_battery_update
(
struct
acpi_battery
*
battery
)
static
int
acpi_battery_update
(
struct
acpi_battery
*
battery
)
{
{
int
result
=
acpi_battery_get_status
(
battery
);
int
result
;
result
=
acpi_battery_get_status
(
battery
);
if
(
result
)
if
(
result
)
return
result
;
return
result
;
#ifdef CONFIG_ACPI_SYSFS_POWER
if
(
!
acpi_battery_present
(
battery
))
{
if
(
!
acpi_battery_present
(
battery
))
{
sysfs_remove_battery
(
battery
);
sysfs_remove_battery
(
battery
);
battery
->
update_time
=
0
;
return
0
;
return
0
;
}
}
#endif
if
(
!
battery
->
update_time
)
{
result
=
acpi_battery_get_info
(
battery
);
if
(
result
)
return
result
;
acpi_battery_init_alarm
(
battery
);
}
#ifdef CONFIG_ACPI_SYSFS_POWER
if
(
!
battery
->
bat
.
dev
)
if
(
!
battery
->
bat
.
dev
)
sysfs_add_battery
(
battery
);
sysfs_add_battery
(
battery
);
#endif
return
acpi_battery_get_state
(
battery
);
return
acpi_battery_get_state
(
battery
);
}
}
...
@@ -767,9 +782,11 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data)
...
@@ -767,9 +782,11 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data)
acpi_bus_generate_netlink_event
(
device
->
pnp
.
device_class
,
acpi_bus_generate_netlink_event
(
device
->
pnp
.
device_class
,
device
->
dev
.
bus_id
,
event
,
device
->
dev
.
bus_id
,
event
,
acpi_battery_present
(
battery
));
acpi_battery_present
(
battery
));
#ifdef CONFIG_ACPI_SYSFS_POWER
/* acpi_batter_update could remove power_supply object */
/* acpi_batter_update could remove power_supply object */
if
(
battery
->
bat
.
dev
)
if
(
battery
->
bat
.
dev
)
kobject_uevent
(
&
battery
->
bat
.
dev
->
kobj
,
KOBJ_CHANGE
);
kobject_uevent
(
&
battery
->
bat
.
dev
->
kobj
,
KOBJ_CHANGE
);
#endif
}
}
static
int
acpi_battery_add
(
struct
acpi_device
*
device
)
static
int
acpi_battery_add
(
struct
acpi_device
*
device
)
...
@@ -828,7 +845,9 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
...
@@ -828,7 +845,9 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
#ifdef CONFIG_ACPI_PROCFS_POWER
#ifdef CONFIG_ACPI_PROCFS_POWER
acpi_battery_remove_fs
(
device
);
acpi_battery_remove_fs
(
device
);
#endif
#endif
#ifdef CONFIG_ACPI_SYSFS_POWER
sysfs_remove_battery
(
battery
);
sysfs_remove_battery
(
battery
);
#endif
mutex_destroy
(
&
battery
->
lock
);
mutex_destroy
(
&
battery
->
lock
);
kfree
(
battery
);
kfree
(
battery
);
return
0
;
return
0
;
...
...
drivers/acpi/sbs.c
浏览文件 @
4e1b83ad
...
@@ -40,7 +40,9 @@
...
@@ -40,7 +40,9 @@
#include <linux/jiffies.h>
#include <linux/jiffies.h>
#include <linux/delay.h>
#include <linux/delay.h>
#ifdef CONFIG_ACPI_SYSFS_POWER
#include <linux/power_supply.h>
#include <linux/power_supply.h>
#endif
#include "sbshc.h"
#include "sbshc.h"
...
@@ -80,7 +82,9 @@ static const struct acpi_device_id sbs_device_ids[] = {
...
@@ -80,7 +82,9 @@ static const struct acpi_device_id sbs_device_ids[] = {
MODULE_DEVICE_TABLE
(
acpi
,
sbs_device_ids
);
MODULE_DEVICE_TABLE
(
acpi
,
sbs_device_ids
);
struct
acpi_battery
{
struct
acpi_battery
{
#ifdef CONFIG_ACPI_SYSFS_POWER
struct
power_supply
bat
;
struct
power_supply
bat
;
#endif
struct
acpi_sbs
*
sbs
;
struct
acpi_sbs
*
sbs
;
#ifdef CONFIG_ACPI_PROCFS_POWER
#ifdef CONFIG_ACPI_PROCFS_POWER
struct
proc_dir_entry
*
proc_entry
;
struct
proc_dir_entry
*
proc_entry
;
...
@@ -113,7 +117,9 @@ struct acpi_battery {
...
@@ -113,7 +117,9 @@ struct acpi_battery {
#define to_acpi_battery(x) container_of(x, struct acpi_battery, bat);
#define to_acpi_battery(x) container_of(x, struct acpi_battery, bat);
struct
acpi_sbs
{
struct
acpi_sbs
{
#ifdef CONFIG_ACPI_SYSFS_POWER
struct
power_supply
charger
;
struct
power_supply
charger
;
#endif
struct
acpi_device
*
device
;
struct
acpi_device
*
device
;
struct
acpi_smb_hc
*
hc
;
struct
acpi_smb_hc
*
hc
;
struct
mutex
lock
;
struct
mutex
lock
;
...
@@ -157,6 +163,7 @@ static inline int acpi_battery_scale(struct acpi_battery *battery)
...
@@ -157,6 +163,7 @@ static inline int acpi_battery_scale(struct acpi_battery *battery)
acpi_battery_ipscale
(
battery
);
acpi_battery_ipscale
(
battery
);
}
}
#ifdef CONFIG_ACPI_SYSFS_POWER
static
int
sbs_get_ac_property
(
struct
power_supply
*
psy
,
static
int
sbs_get_ac_property
(
struct
power_supply
*
psy
,
enum
power_supply_property
psp
,
enum
power_supply_property
psp
,
union
power_supply_propval
*
val
)
union
power_supply_propval
*
val
)
...
@@ -294,6 +301,7 @@ static enum power_supply_property sbs_energy_battery_props[] = {
...
@@ -294,6 +301,7 @@ static enum power_supply_property sbs_energy_battery_props[] = {
POWER_SUPPLY_PROP_MODEL_NAME
,
POWER_SUPPLY_PROP_MODEL_NAME
,
POWER_SUPPLY_PROP_MANUFACTURER
,
POWER_SUPPLY_PROP_MANUFACTURER
,
};
};
#endif
/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
Smart Battery System Management
Smart Battery System Management
...
@@ -429,6 +437,7 @@ static int acpi_ac_get_present(struct acpi_sbs *sbs)
...
@@ -429,6 +437,7 @@ static int acpi_ac_get_present(struct acpi_sbs *sbs)
return
result
;
return
result
;
}
}
#ifdef CONFIG_ACPI_SYSFS_POWER
static
ssize_t
acpi_battery_alarm_show
(
struct
device
*
dev
,
static
ssize_t
acpi_battery_alarm_show
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
struct
device_attribute
*
attr
,
char
*
buf
)
char
*
buf
)
...
@@ -458,6 +467,7 @@ static struct device_attribute alarm_attr = {
...
@@ -458,6 +467,7 @@ static struct device_attribute alarm_attr = {
.
show
=
acpi_battery_alarm_show
,
.
show
=
acpi_battery_alarm_show
,
.
store
=
acpi_battery_alarm_store
,
.
store
=
acpi_battery_alarm_store
,
};
};
#endif
/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
FS Interface (/proc/acpi)
FS Interface (/proc/acpi)
...
@@ -793,6 +803,7 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
...
@@ -793,6 +803,7 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
&
acpi_battery_state_fops
,
&
acpi_battery_alarm_fops
,
&
acpi_battery_state_fops
,
&
acpi_battery_alarm_fops
,
battery
);
battery
);
#endif
#endif
#ifdef CONFIG_ACPI_SYSFS_POWER
battery
->
bat
.
name
=
battery
->
name
;
battery
->
bat
.
name
=
battery
->
name
;
battery
->
bat
.
type
=
POWER_SUPPLY_TYPE_BATTERY
;
battery
->
bat
.
type
=
POWER_SUPPLY_TYPE_BATTERY
;
if
(
!
acpi_battery_mode
(
battery
))
{
if
(
!
acpi_battery_mode
(
battery
))
{
...
@@ -813,6 +824,7 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
...
@@ -813,6 +824,7 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
goto
end
;
goto
end
;
battery
->
have_sysfs_alarm
=
1
;
battery
->
have_sysfs_alarm
=
1
;
end:
end:
#endif
printk
(
KERN_INFO
PREFIX
"%s [%s]: Battery Slot [%s] (battery %s)
\n
"
,
printk
(
KERN_INFO
PREFIX
"%s [%s]: Battery Slot [%s] (battery %s)
\n
"
,
ACPI_SBS_DEVICE_NAME
,
acpi_device_bid
(
sbs
->
device
),
ACPI_SBS_DEVICE_NAME
,
acpi_device_bid
(
sbs
->
device
),
battery
->
name
,
sbs
->
battery
->
present
?
"present"
:
"absent"
);
battery
->
name
,
sbs
->
battery
->
present
?
"present"
:
"absent"
);
...
@@ -822,12 +834,13 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
...
@@ -822,12 +834,13 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
static
void
acpi_battery_remove
(
struct
acpi_sbs
*
sbs
,
int
id
)
static
void
acpi_battery_remove
(
struct
acpi_sbs
*
sbs
,
int
id
)
{
{
struct
acpi_battery
*
battery
=
&
sbs
->
battery
[
id
];
struct
acpi_battery
*
battery
=
&
sbs
->
battery
[
id
];
#ifdef CONFIG_ACPI_SYSFS_POWER
if
(
battery
->
bat
.
dev
)
{
if
(
battery
->
bat
.
dev
)
{
if
(
battery
->
have_sysfs_alarm
)
if
(
battery
->
have_sysfs_alarm
)
device_remove_file
(
battery
->
bat
.
dev
,
&
alarm_attr
);
device_remove_file
(
battery
->
bat
.
dev
,
&
alarm_attr
);
power_supply_unregister
(
&
battery
->
bat
);
power_supply_unregister
(
&
battery
->
bat
);
}
}
#endif
#ifdef CONFIG_ACPI_PROCFS_POWER
#ifdef CONFIG_ACPI_PROCFS_POWER
if
(
battery
->
proc_entry
)
if
(
battery
->
proc_entry
)
acpi_sbs_remove_fs
(
&
battery
->
proc_entry
,
acpi_battery_dir
);
acpi_sbs_remove_fs
(
&
battery
->
proc_entry
,
acpi_battery_dir
);
...
@@ -848,12 +861,14 @@ static int acpi_charger_add(struct acpi_sbs *sbs)
...
@@ -848,12 +861,14 @@ static int acpi_charger_add(struct acpi_sbs *sbs)
if
(
result
)
if
(
result
)
goto
end
;
goto
end
;
#endif
#endif
#ifdef CONFIG_ACPI_SYSFS_POWER
sbs
->
charger
.
name
=
"sbs-charger"
;
sbs
->
charger
.
name
=
"sbs-charger"
;
sbs
->
charger
.
type
=
POWER_SUPPLY_TYPE_MAINS
;
sbs
->
charger
.
type
=
POWER_SUPPLY_TYPE_MAINS
;
sbs
->
charger
.
properties
=
sbs_ac_props
;
sbs
->
charger
.
properties
=
sbs_ac_props
;
sbs
->
charger
.
num_properties
=
ARRAY_SIZE
(
sbs_ac_props
);
sbs
->
charger
.
num_properties
=
ARRAY_SIZE
(
sbs_ac_props
);
sbs
->
charger
.
get_property
=
sbs_get_ac_property
;
sbs
->
charger
.
get_property
=
sbs_get_ac_property
;
power_supply_register
(
&
sbs
->
device
->
dev
,
&
sbs
->
charger
);
power_supply_register
(
&
sbs
->
device
->
dev
,
&
sbs
->
charger
);
#endif
printk
(
KERN_INFO
PREFIX
"%s [%s]: AC Adapter [%s] (%s)
\n
"
,
printk
(
KERN_INFO
PREFIX
"%s [%s]: AC Adapter [%s] (%s)
\n
"
,
ACPI_SBS_DEVICE_NAME
,
acpi_device_bid
(
sbs
->
device
),
ACPI_SBS_DEVICE_NAME
,
acpi_device_bid
(
sbs
->
device
),
ACPI_AC_DIR_NAME
,
sbs
->
charger_present
?
"on-line"
:
"off-line"
);
ACPI_AC_DIR_NAME
,
sbs
->
charger_present
?
"on-line"
:
"off-line"
);
...
@@ -863,8 +878,10 @@ static int acpi_charger_add(struct acpi_sbs *sbs)
...
@@ -863,8 +878,10 @@ static int acpi_charger_add(struct acpi_sbs *sbs)
static
void
acpi_charger_remove
(
struct
acpi_sbs
*
sbs
)
static
void
acpi_charger_remove
(
struct
acpi_sbs
*
sbs
)
{
{
#ifdef CONFIG_ACPI_SYSFS_POWER
if
(
sbs
->
charger
.
dev
)
if
(
sbs
->
charger
.
dev
)
power_supply_unregister
(
&
sbs
->
charger
);
power_supply_unregister
(
&
sbs
->
charger
);
#endif
#ifdef CONFIG_ACPI_PROCFS_POWER
#ifdef CONFIG_ACPI_PROCFS_POWER
if
(
sbs
->
charger_entry
)
if
(
sbs
->
charger_entry
)
acpi_sbs_remove_fs
(
&
sbs
->
charger_entry
,
acpi_ac_dir
);
acpi_sbs_remove_fs
(
&
sbs
->
charger_entry
,
acpi_ac_dir
);
...
@@ -885,7 +902,9 @@ void acpi_sbs_callback(void *context)
...
@@ -885,7 +902,9 @@ void acpi_sbs_callback(void *context)
ACPI_SBS_NOTIFY_STATUS
,
ACPI_SBS_NOTIFY_STATUS
,
sbs
->
charger_present
);
sbs
->
charger_present
);
#endif
#endif
#ifdef CONFIG_ACPI_SYSFS_POWER
kobject_uevent
(
&
sbs
->
charger
.
dev
->
kobj
,
KOBJ_CHANGE
);
kobject_uevent
(
&
sbs
->
charger
.
dev
->
kobj
,
KOBJ_CHANGE
);
#endif
}
}
if
(
sbs
->
manager_present
)
{
if
(
sbs
->
manager_present
)
{
for
(
id
=
0
;
id
<
MAX_SBS_BAT
;
++
id
)
{
for
(
id
=
0
;
id
<
MAX_SBS_BAT
;
++
id
)
{
...
@@ -902,7 +921,9 @@ void acpi_sbs_callback(void *context)
...
@@ -902,7 +921,9 @@ void acpi_sbs_callback(void *context)
ACPI_SBS_NOTIFY_STATUS
,
ACPI_SBS_NOTIFY_STATUS
,
bat
->
present
);
bat
->
present
);
#endif
#endif
#ifdef CONFIG_ACPI_SYSFS_POWER
kobject_uevent
(
&
bat
->
bat
.
dev
->
kobj
,
KOBJ_CHANGE
);
kobject_uevent
(
&
bat
->
bat
.
dev
->
kobj
,
KOBJ_CHANGE
);
#endif
}
}
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录