Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
3022f4de
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
3022f4de
编写于
5月 25, 2014
作者:
R
Rafael J. Wysocki
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'acpi-platform' into acpi-lpss
上级
ed3a872e
8ce62f85
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
30 addition
and
19 deletion
+30
-19
drivers/acpi/acpi_lpss.c
drivers/acpi/acpi_lpss.c
+11
-6
drivers/acpi/acpi_platform.c
drivers/acpi/acpi_platform.c
+18
-11
drivers/acpi/internal.h
drivers/acpi/internal.h
+1
-2
未找到文件。
drivers/acpi/acpi_lpss.c
浏览文件 @
3022f4de
...
...
@@ -305,12 +305,14 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
struct
lpss_private_data
*
pdata
;
struct
resource_list_entry
*
rentry
;
struct
list_head
resource_list
;
struct
platform_device
*
pdev
;
int
ret
;
dev_desc
=
(
struct
lpss_device_desc
*
)
id
->
driver_data
;
if
(
!
dev_desc
)
return
acpi_create_platform_device
(
adev
,
id
);
if
(
!
dev_desc
)
{
pdev
=
acpi_create_platform_device
(
adev
);
return
IS_ERR_OR_NULL
(
pdev
)
?
PTR_ERR
(
pdev
)
:
1
;
}
pdata
=
kzalloc
(
sizeof
(
*
pdata
),
GFP_KERNEL
);
if
(
!
pdata
)
return
-
ENOMEM
;
...
...
@@ -360,10 +362,13 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
dev_desc
->
setup
(
pdata
);
adev
->
driver_data
=
pdata
;
ret
=
acpi_create_platform_device
(
adev
,
id
);
if
(
ret
>
0
)
return
ret
;
pdev
=
acpi_create_platform_device
(
adev
);
if
(
!
IS_ERR_OR_NULL
(
pdev
))
{
device_enable_async_suspend
(
&
pdev
->
dev
);
return
1
;
}
ret
=
PTR_ERR
(
pdev
);
adev
->
driver_data
=
NULL
;
err_out:
...
...
drivers/acpi/acpi_platform.c
浏览文件 @
3022f4de
...
...
@@ -32,6 +32,10 @@ static const struct acpi_device_id acpi_platform_device_ids[] = {
{
"ACPI0003"
},
{
"VPC2004"
},
{
"BCM4752"
},
{
"LNV4752"
},
{
"BCM2E1A"
},
{
"BCM2E39"
},
{
"BCM2E3D"
},
/* Intel Smart Sound Technology */
{
"INT33C8"
},
...
...
@@ -43,7 +47,6 @@ static const struct acpi_device_id acpi_platform_device_ids[] = {
/**
* acpi_create_platform_device - Create platform device for ACPI device node
* @adev: ACPI device node to create a platform device for.
* @id: ACPI device ID used to match @adev.
*
* Check if the given @adev can be represented as a platform device and, if
* that's the case, create and register a platform device, populate its common
...
...
@@ -51,8 +54,7 @@ static const struct acpi_device_id acpi_platform_device_ids[] = {
*
* Name of the platform device will be the same as @adev's.
*/
int
acpi_create_platform_device
(
struct
acpi_device
*
adev
,
const
struct
acpi_device_id
*
id
)
struct
platform_device
*
acpi_create_platform_device
(
struct
acpi_device
*
adev
)
{
struct
platform_device
*
pdev
=
NULL
;
struct
acpi_device
*
acpi_parent
;
...
...
@@ -64,19 +66,19 @@ int acpi_create_platform_device(struct acpi_device *adev,
/* If the ACPI node already has a physical device attached, skip it. */
if
(
adev
->
physical_node_count
)
return
0
;
return
NULL
;
INIT_LIST_HEAD
(
&
resource_list
);
count
=
acpi_dev_get_resources
(
adev
,
&
resource_list
,
NULL
,
NULL
);
if
(
count
<
0
)
{
return
0
;
return
NULL
;
}
else
if
(
count
>
0
)
{
resources
=
kmalloc
(
count
*
sizeof
(
struct
resource
),
GFP_KERNEL
);
if
(
!
resources
)
{
dev_err
(
&
adev
->
dev
,
"No memory for resources
\n
"
);
acpi_dev_free_resource_list
(
&
resource_list
);
return
-
ENOMEM
;
return
ERR_PTR
(
-
ENOMEM
)
;
}
count
=
0
;
list_for_each_entry
(
rentry
,
&
resource_list
,
node
)
...
...
@@ -113,22 +115,27 @@ int acpi_create_platform_device(struct acpi_device *adev,
pdevinfo
.
num_res
=
count
;
pdevinfo
.
acpi_node
.
companion
=
adev
;
pdev
=
platform_device_register_full
(
&
pdevinfo
);
if
(
IS_ERR
(
pdev
))
{
if
(
IS_ERR
(
pdev
))
dev_err
(
&
adev
->
dev
,
"platform device creation failed: %ld
\n
"
,
PTR_ERR
(
pdev
));
pdev
=
NULL
;
}
else
{
else
dev_dbg
(
&
adev
->
dev
,
"created platform device %s
\n
"
,
dev_name
(
&
pdev
->
dev
));
}
kfree
(
resources
);
return
pdev
;
}
static
int
acpi_platform_attach
(
struct
acpi_device
*
adev
,
const
struct
acpi_device_id
*
id
)
{
acpi_create_platform_device
(
adev
);
return
1
;
}
static
struct
acpi_scan_handler
platform_handler
=
{
.
ids
=
acpi_platform_device_ids
,
.
attach
=
acpi_
create_platform_device
,
.
attach
=
acpi_
platform_attach
,
};
void
__init
acpi_platform_init
(
void
)
...
...
drivers/acpi/internal.h
浏览文件 @
3022f4de
...
...
@@ -180,8 +180,7 @@ static inline void suspend_nvs_restore(void) {}
-------------------------------------------------------------------------- */
struct
platform_device
;
int
acpi_create_platform_device
(
struct
acpi_device
*
adev
,
const
struct
acpi_device_id
*
id
);
struct
platform_device
*
acpi_create_platform_device
(
struct
acpi_device
*
adev
);
/*--------------------------------------------------------------------------
Video
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录