Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
615fc8cb
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 2 年 前同步成功
通知
173
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
615fc8cb
编写于
7月 06, 2013
作者:
G
Guenter Roeck
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
hwmon: (nct6775) Convert to use hwmon_device_register_with_groups
Signed-off-by:
N
Guenter Roeck
<
linux@roeck-us.net
>
上级
c3b7cddc
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
36 addition
and
86 deletion
+36
-86
drivers/hwmon/nct6775.c
drivers/hwmon/nct6775.c
+36
-86
未找到文件。
drivers/hwmon/nct6775.c
浏览文件 @
615fc8cb
...
...
@@ -725,10 +725,9 @@ struct nct6775_data {
const
char
*
name
;
struct
device
*
hwmon_dev
;
struct
attribute_group
*
group_in
;
struct
attribute_group
*
group_fan
;
struct
attribute_group
*
group_temp
;
struct
attribute_group
*
group_pwm
;
int
num_attr_groups
;
const
struct
attribute_group
*
groups
[
6
];
u16
reg_temp
[
5
][
NUM_TEMP
];
/* 0=temp, 1=temp_over, 2=temp_hyst,
* 3=temp_crit, 4=temp_lcrit
...
...
@@ -942,7 +941,7 @@ nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
struct
sensor_device_attribute_2
*
a2
;
struct
attribute
**
attrs
;
struct
sensor_device_template
**
t
;
int
err
,
i
,
j
,
count
;
int
i
,
j
,
count
;
if
(
repeat
<=
0
)
return
ERR_PTR
(
-
EINVAL
);
...
...
@@ -1002,10 +1001,6 @@ nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
}
}
err
=
sysfs_create_group
(
&
dev
->
kobj
,
group
);
if
(
err
)
return
ERR_PTR
(
-
ENOMEM
);
return
group
;
}
...
...
@@ -2726,16 +2721,6 @@ store_fan_time(struct device *dev, struct device_attribute *attr,
return
count
;
}
static
ssize_t
show_name
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
struct
nct6775_data
*
data
=
dev_get_drvdata
(
dev
);
return
sprintf
(
buf
,
"%s
\n
"
,
data
->
name
);
}
static
DEVICE_ATTR
(
name
,
S_IRUGO
,
show_name
,
NULL
);
static
ssize_t
show_auto_pwm
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
...
...
@@ -3062,16 +3047,16 @@ static umode_t nct6775_other_is_visible(struct kobject *kobj,
struct
device
*
dev
=
container_of
(
kobj
,
struct
device
,
kobj
);
struct
nct6775_data
*
data
=
dev_get_drvdata
(
dev
);
if
(
index
==
1
&&
!
data
->
have_vid
)
if
(
index
==
0
&&
!
data
->
have_vid
)
return
0
;
if
(
index
==
2
||
index
==
3
)
{
if
(
data
->
ALARM_BITS
[
INTRUSION_ALARM_BASE
+
index
-
2
]
<
0
)
if
(
index
==
1
||
index
==
2
)
{
if
(
data
->
ALARM_BITS
[
INTRUSION_ALARM_BASE
+
index
-
1
]
<
0
)
return
0
;
}
if
(
index
==
4
||
index
==
5
)
{
if
(
data
->
BEEP_BITS
[
INTRUSION_ALARM_BASE
+
index
-
4
]
<
0
)
if
(
index
==
3
||
index
==
4
)
{
if
(
data
->
BEEP_BITS
[
INTRUSION_ALARM_BASE
+
index
-
3
]
<
0
)
return
0
;
}
...
...
@@ -3084,13 +3069,12 @@ static umode_t nct6775_other_is_visible(struct kobject *kobj,
* Any change in order or content must be matched.
*/
static
struct
attribute
*
nct6775_attributes_other
[]
=
{
&
dev_attr_name
.
attr
,
&
dev_attr_cpu0_vid
.
attr
,
/* 1 */
&
sensor_dev_attr_intrusion0_alarm
.
dev_attr
.
attr
,
/* 2 */
&
sensor_dev_attr_intrusion1_alarm
.
dev_attr
.
attr
,
/* 3 */
&
sensor_dev_attr_intrusion0_beep
.
dev_attr
.
attr
,
/* 4 */
&
sensor_dev_attr_intrusion1_beep
.
dev_attr
.
attr
,
/* 5 */
&
sensor_dev_attr_beep_enable
.
dev_attr
.
attr
,
/* 6 */
&
dev_attr_cpu0_vid
.
attr
,
/* 0 */
&
sensor_dev_attr_intrusion0_alarm
.
dev_attr
.
attr
,
/* 1 */
&
sensor_dev_attr_intrusion1_alarm
.
dev_attr
.
attr
,
/* 2 */
&
sensor_dev_attr_intrusion0_beep
.
dev_attr
.
attr
,
/* 3 */
&
sensor_dev_attr_intrusion1_beep
.
dev_attr
.
attr
,
/* 4 */
&
sensor_dev_attr_beep_enable
.
dev_attr
.
attr
,
/* 5 */
NULL
};
...
...
@@ -3100,27 +3084,6 @@ static const struct attribute_group nct6775_group_other = {
.
is_visible
=
nct6775_other_is_visible
,
};
/*
* Driver and device management
*/
static
void
nct6775_device_remove_files
(
struct
device
*
dev
)
{
struct
nct6775_data
*
data
=
dev_get_drvdata
(
dev
);
if
(
data
->
group_pwm
)
sysfs_remove_group
(
&
dev
->
kobj
,
data
->
group_pwm
);
if
(
data
->
group_in
)
sysfs_remove_group
(
&
dev
->
kobj
,
data
->
group_in
);
if
(
data
->
group_fan
)
sysfs_remove_group
(
&
dev
->
kobj
,
data
->
group_fan
);
if
(
data
->
group_temp
)
sysfs_remove_group
(
&
dev
->
kobj
,
data
->
group_temp
);
sysfs_remove_group
(
&
dev
->
kobj
,
&
nct6775_group_other
);
}
/* Get the monitoring functions started */
static
inline
void
nct6775_init_device
(
struct
nct6775_data
*
data
)
{
int
i
;
...
...
@@ -3871,51 +3834,39 @@ static int nct6775_probe(struct platform_device *pdev)
/* Register sysfs hooks */
group
=
nct6775_create_attr_group
(
dev
,
&
nct6775_pwm_template_group
,
data
->
pwm_num
);
if
(
IS_ERR
(
group
))
{
err
=
PTR_ERR
(
group
);
goto
exit_remove
;
}
data
->
group_pwm
=
group
;
if
(
IS_ERR
(
group
))
return
PTR_ERR
(
group
);
data
->
groups
[
data
->
num_attr_groups
++
]
=
group
;
group
=
nct6775_create_attr_group
(
dev
,
&
nct6775_in_template_group
,
fls
(
data
->
have_in
));
if
(
IS_ERR
(
group
))
{
err
=
PTR_ERR
(
group
);
goto
exit_remove
;
}
data
->
group_in
=
group
;
if
(
IS_ERR
(
group
))
return
PTR_ERR
(
group
);
data
->
groups
[
data
->
num_attr_groups
++
]
=
group
;
group
=
nct6775_create_attr_group
(
dev
,
&
nct6775_fan_template_group
,
fls
(
data
->
has_fan
));
if
(
IS_ERR
(
group
))
{
err
=
PTR_ERR
(
group
);
goto
exit_remove
;
}
data
->
group_fan
=
group
;
if
(
IS_ERR
(
group
))
return
PTR_ERR
(
group
);
data
->
groups
[
data
->
num_attr_groups
++
]
=
group
;
group
=
nct6775_create_attr_group
(
dev
,
&
nct6775_temp_template_group
,
fls
(
data
->
have_temp
));
if
(
IS_ERR
(
group
))
{
err
=
PTR_ERR
(
group
);
goto
exit_remove
;
}
data
->
group_temp
=
group
;
if
(
IS_ERR
(
group
))
return
PTR_ERR
(
group
);
err
=
sysfs_create_group
(
&
dev
->
kobj
,
&
nct6775_group_other
);
if
(
err
)
goto
exit_remove
;
data
->
groups
[
data
->
num_attr_groups
++
]
=
group
;
data
->
groups
[
data
->
num_attr_groups
++
]
=
&
nct6775_group_other
;
data
->
hwmon_dev
=
hwmon_device_register
(
dev
);
if
(
IS_ERR
(
data
->
hwmon_dev
))
{
err
=
PTR_ERR
(
data
->
hwmon_dev
);
goto
exit_remove
;
}
data
->
hwmon_dev
=
hwmon_device_register_with_groups
(
dev
,
data
->
name
,
data
,
data
->
groups
);
if
(
IS_ERR
(
data
->
hwmon_dev
))
return
PTR_ERR
(
data
->
hwmon_dev
);
return
0
;
exit_remove:
nct6775_device_remove_files
(
dev
);
return
err
;
}
static
int
nct6775_remove
(
struct
platform_device
*
pdev
)
...
...
@@ -3923,7 +3874,6 @@ static int nct6775_remove(struct platform_device *pdev)
struct
nct6775_data
*
data
=
platform_get_drvdata
(
pdev
);
hwmon_device_unregister
(
data
->
hwmon_dev
);
nct6775_device_remove_files
(
&
pdev
->
dev
);
return
0
;
}
...
...
@@ -4102,7 +4052,7 @@ static int __init nct6775_find(int sioaddr, struct nct6775_sio_data *sio_data)
/*
* when Super-I/O functions move to a separate file, the Super-I/O
* bus will manage the lifetime of the device and this module will only keep
* track of the nct6775 driver. But since we platform_device_alloc(), we
* track of the nct6775 driver. But since we
use
platform_device_alloc(), we
* must keep track of the device
*/
static
struct
platform_device
*
pdev
[
2
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录