Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
4dff4e7f
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
4dff4e7f
编写于
10月 22, 2008
作者:
L
Len Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'pnp-debug' into test
上级
5f50ef45
ac88a8f3
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
121 addition
and
125 deletion
+121
-125
Documentation/kernel-parameters.txt
Documentation/kernel-parameters.txt
+4
-0
drivers/pnp/Kconfig
drivers/pnp/Kconfig
+14
-6
drivers/pnp/Makefile
drivers/pnp/Makefile
+0
-4
drivers/pnp/base.h
drivers/pnp/base.h
+10
-0
drivers/pnp/core.c
drivers/pnp/core.c
+19
-10
drivers/pnp/driver.c
drivers/pnp/driver.c
+0
-4
drivers/pnp/isapnp/Makefile
drivers/pnp/isapnp/Makefile
+0
-4
drivers/pnp/isapnp/core.c
drivers/pnp/isapnp/core.c
+6
-6
drivers/pnp/manager.c
drivers/pnp/manager.c
+17
-17
drivers/pnp/pnpacpi/Makefile
drivers/pnp/pnpacpi/Makefile
+0
-4
drivers/pnp/pnpacpi/core.c
drivers/pnp/pnpacpi/core.c
+5
-5
drivers/pnp/pnpacpi/rsparser.c
drivers/pnp/pnpacpi/rsparser.c
+22
-21
drivers/pnp/pnpbios/Makefile
drivers/pnp/pnpbios/Makefile
+0
-4
drivers/pnp/pnpbios/core.c
drivers/pnp/pnpbios/core.c
+2
-2
drivers/pnp/pnpbios/rsparser.c
drivers/pnp/pnpbios/rsparser.c
+9
-9
drivers/pnp/quirks.c
drivers/pnp/quirks.c
+2
-4
drivers/pnp/resource.c
drivers/pnp/resource.c
+6
-6
drivers/pnp/support.c
drivers/pnp/support.c
+5
-9
include/linux/pnp.h
include/linux/pnp.h
+0
-10
未找到文件。
Documentation/kernel-parameters.txt
浏览文件 @
4dff4e7f
...
...
@@ -1687,6 +1687,10 @@ and is between 256 and 4096 characters. It is defined in the file
Override pmtimer IOPort with a hex value.
e.g. pmtmr=0x508
pnp.debug [PNP]
Enable PNP debug messages. This depends on the
CONFIG_PNP_DEBUG_MESSAGES option.
pnpacpi= [ACPI]
{ off }
...
...
drivers/pnp/Kconfig
浏览文件 @
4dff4e7f
...
...
@@ -20,13 +20,21 @@ menuconfig PNP
If unsure, say Y.
if PNP
config PNP_DEBUG
bool "PnP Debug Messages"
config PNP_DEBUG_MESSAGES
default y
bool "PNP debugging messages"
depends on PNP
help
Say Y if you want the Plug and Play Layer to print debug messages.
This is useful if you are developing a PnP driver or troubleshooting.
Say Y here if you want the PNP layer to be able to produce debugging
messages if needed. The messages can be enabled at boot-time with
the pnp.debug kernel parameter.
This option allows you to save a bit of space if you do not want
the messages to even be built into the kernel.
If you have any doubts about this, say Y here.
if PNP
comment "Protocols"
...
...
drivers/pnp/Makefile
浏览文件 @
4dff4e7f
...
...
@@ -7,7 +7,3 @@ obj-y := core.o card.o driver.o resource.o manager.o support.o interface.o quir
obj-$(CONFIG_PNPACPI)
+=
pnpacpi/
obj-$(CONFIG_PNPBIOS)
+=
pnpbios/
obj-$(CONFIG_ISAPNP)
+=
isapnp/
ifeq
($(CONFIG_PNP_DEBUG),y)
EXTRA_CFLAGS
+=
-DDEBUG
endif
drivers/pnp/base.h
浏览文件 @
4dff4e7f
...
...
@@ -166,3 +166,13 @@ struct pnp_resource *pnp_add_io_resource(struct pnp_dev *dev,
struct
pnp_resource
*
pnp_add_mem_resource
(
struct
pnp_dev
*
dev
,
resource_size_t
start
,
resource_size_t
end
,
int
flags
);
extern
int
pnp_debug
;
#if defined(CONFIG_PNP_DEBUG_MESSAGES)
#define pnp_dbg(dev, format, arg...) \
({ if (pnp_debug) dev_printk(KERN_DEBUG, dev, format, ## arg); 0; })
#else
#define pnp_dbg(dev, format, arg...) \
({ if (0) dev_printk(KERN_DEBUG, dev, format, ## arg); 0; })
#endif
drivers/pnp/core.c
浏览文件 @
4dff4e7f
...
...
@@ -185,6 +185,9 @@ int __pnp_add_device(struct pnp_dev *dev)
int
pnp_add_device
(
struct
pnp_dev
*
dev
)
{
int
ret
;
char
buf
[
128
];
int
len
=
0
;
struct
pnp_id
*
id
;
if
(
dev
->
card
)
return
-
EINVAL
;
...
...
@@ -193,17 +196,12 @@ int pnp_add_device(struct pnp_dev *dev)
if
(
ret
)
return
ret
;
#ifdef CONFIG_PNP_DEBUG
{
struct
pnp_id
*
id
;
buf
[
0
]
=
'\0'
;
for
(
id
=
dev
->
id
;
id
;
id
=
id
->
next
)
len
+=
scnprintf
(
buf
+
len
,
sizeof
(
buf
)
-
len
,
" %s"
,
id
->
id
)
;
dev_printk
(
KERN_DEBUG
,
&
dev
->
dev
,
"%s device, IDs"
,
dev
->
protocol
->
name
);
for
(
id
=
dev
->
id
;
id
;
id
=
id
->
next
)
printk
(
" %s"
,
id
->
id
);
printk
(
" (%s)
\n
"
,
dev
->
active
?
"active"
:
"disabled"
);
}
#endif
pnp_dbg
(
&
dev
->
dev
,
"%s device, IDs%s (%s)
\n
"
,
dev
->
protocol
->
name
,
buf
,
dev
->
active
?
"active"
:
"disabled"
);
return
0
;
}
...
...
@@ -223,3 +221,14 @@ static int __init pnp_init(void)
}
subsys_initcall
(
pnp_init
);
int
pnp_debug
;
#if defined(CONFIG_PNP_DEBUG_MESSAGES)
static
int
__init
pnp_debug_setup
(
char
*
__unused
)
{
pnp_debug
=
1
;
return
1
;
}
__setup
(
"pnp.debug"
,
pnp_debug_setup
);
#endif
drivers/pnp/driver.c
浏览文件 @
4dff4e7f
...
...
@@ -114,7 +114,6 @@ static int pnp_device_probe(struct device *dev)
}
else
goto
fail
;
dev_dbg
(
dev
,
"driver attached
\n
"
);
return
error
;
fail:
...
...
@@ -210,8 +209,6 @@ struct bus_type pnp_bus_type = {
int
pnp_register_driver
(
struct
pnp_driver
*
drv
)
{
pnp_dbg
(
"the driver '%s' has been registered"
,
drv
->
name
);
drv
->
driver
.
name
=
drv
->
name
;
drv
->
driver
.
bus
=
&
pnp_bus_type
;
...
...
@@ -221,7 +218,6 @@ int pnp_register_driver(struct pnp_driver *drv)
void
pnp_unregister_driver
(
struct
pnp_driver
*
drv
)
{
driver_unregister
(
&
drv
->
driver
);
pnp_dbg
(
"the driver '%s' has been unregistered"
,
drv
->
name
);
}
/**
...
...
drivers/pnp/isapnp/Makefile
浏览文件 @
4dff4e7f
...
...
@@ -5,7 +5,3 @@
isapnp-proc-$(CONFIG_PROC_FS)
=
proc.o
obj-y
:=
core.o compat.o
$
(
isapnp-proc-y
)
ifeq
($(CONFIG_PNP_DEBUG),y)
EXTRA_CFLAGS
+=
-DDEBUG
endif
drivers/pnp/isapnp/core.c
浏览文件 @
4dff4e7f
...
...
@@ -901,7 +901,7 @@ static int isapnp_get_resources(struct pnp_dev *dev)
{
int
i
,
ret
;
dev
_dbg
(
&
dev
->
dev
,
"get resources
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"get resources
\n
"
);
pnp_init_resources
(
dev
);
isapnp_cfg_begin
(
dev
->
card
->
number
,
dev
->
number
);
dev
->
active
=
isapnp_read_byte
(
ISAPNP_CFG_ACTIVATE
);
...
...
@@ -939,13 +939,13 @@ static int isapnp_set_resources(struct pnp_dev *dev)
struct
resource
*
res
;
int
tmp
;
dev
_dbg
(
&
dev
->
dev
,
"set resources
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"set resources
\n
"
);
isapnp_cfg_begin
(
dev
->
card
->
number
,
dev
->
number
);
dev
->
active
=
1
;
for
(
tmp
=
0
;
tmp
<
ISAPNP_MAX_PORT
;
tmp
++
)
{
res
=
pnp_get_resource
(
dev
,
IORESOURCE_IO
,
tmp
);
if
(
pnp_resource_enabled
(
res
))
{
dev
_dbg
(
&
dev
->
dev
,
" set io %d to %#llx
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" set io %d to %#llx
\n
"
,
tmp
,
(
unsigned
long
long
)
res
->
start
);
isapnp_write_word
(
ISAPNP_CFG_PORT
+
(
tmp
<<
1
),
res
->
start
);
...
...
@@ -957,14 +957,14 @@ static int isapnp_set_resources(struct pnp_dev *dev)
int
irq
=
res
->
start
;
if
(
irq
==
2
)
irq
=
9
;
dev
_dbg
(
&
dev
->
dev
,
" set irq %d to %d
\n
"
,
tmp
,
irq
);
pnp
_dbg
(
&
dev
->
dev
,
" set irq %d to %d
\n
"
,
tmp
,
irq
);
isapnp_write_byte
(
ISAPNP_CFG_IRQ
+
(
tmp
<<
1
),
irq
);
}
}
for
(
tmp
=
0
;
tmp
<
ISAPNP_MAX_DMA
;
tmp
++
)
{
res
=
pnp_get_resource
(
dev
,
IORESOURCE_DMA
,
tmp
);
if
(
pnp_resource_enabled
(
res
))
{
dev
_dbg
(
&
dev
->
dev
,
" set dma %d to %lld
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" set dma %d to %lld
\n
"
,
tmp
,
(
unsigned
long
long
)
res
->
start
);
isapnp_write_byte
(
ISAPNP_CFG_DMA
+
tmp
,
res
->
start
);
}
...
...
@@ -972,7 +972,7 @@ static int isapnp_set_resources(struct pnp_dev *dev)
for
(
tmp
=
0
;
tmp
<
ISAPNP_MAX_MEM
;
tmp
++
)
{
res
=
pnp_get_resource
(
dev
,
IORESOURCE_MEM
,
tmp
);
if
(
pnp_resource_enabled
(
res
))
{
dev
_dbg
(
&
dev
->
dev
,
" set mem %d to %#llx
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" set mem %d to %#llx
\n
"
,
tmp
,
(
unsigned
long
long
)
res
->
start
);
isapnp_write_word
(
ISAPNP_CFG_MEM
+
(
tmp
<<
3
),
(
res
->
start
>>
8
)
&
0xffff
);
...
...
drivers/pnp/manager.c
浏览文件 @
4dff4e7f
...
...
@@ -25,7 +25,7 @@ static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx)
res
=
pnp_get_resource
(
dev
,
IORESOURCE_IO
,
idx
);
if
(
res
)
{
dev
_dbg
(
&
dev
->
dev
,
" io %d already set to %#llx-%#llx "
pnp
_dbg
(
&
dev
->
dev
,
" io %d already set to %#llx-%#llx "
"flags %#lx
\n
"
,
idx
,
(
unsigned
long
long
)
res
->
start
,
(
unsigned
long
long
)
res
->
end
,
res
->
flags
);
return
0
;
...
...
@@ -38,7 +38,7 @@ static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx)
if
(
!
rule
->
size
)
{
res
->
flags
|=
IORESOURCE_DISABLED
;
dev
_dbg
(
&
dev
->
dev
,
" io %d disabled
\n
"
,
idx
);
pnp
_dbg
(
&
dev
->
dev
,
" io %d disabled
\n
"
,
idx
);
goto
__add
;
}
...
...
@@ -49,7 +49,7 @@ static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx)
res
->
start
+=
rule
->
align
;
res
->
end
=
res
->
start
+
rule
->
size
-
1
;
if
(
res
->
start
>
rule
->
max
||
!
rule
->
align
)
{
dev
_dbg
(
&
dev
->
dev
,
" couldn't assign io %d "
pnp
_dbg
(
&
dev
->
dev
,
" couldn't assign io %d "
"(min %#llx max %#llx)
\n
"
,
idx
,
(
unsigned
long
long
)
rule
->
min
,
(
unsigned
long
long
)
rule
->
max
);
...
...
@@ -68,7 +68,7 @@ static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx)
res
=
pnp_get_resource
(
dev
,
IORESOURCE_MEM
,
idx
);
if
(
res
)
{
dev
_dbg
(
&
dev
->
dev
,
" mem %d already set to %#llx-%#llx "
pnp
_dbg
(
&
dev
->
dev
,
" mem %d already set to %#llx-%#llx "
"flags %#lx
\n
"
,
idx
,
(
unsigned
long
long
)
res
->
start
,
(
unsigned
long
long
)
res
->
end
,
res
->
flags
);
return
0
;
...
...
@@ -90,7 +90,7 @@ static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx)
if
(
!
rule
->
size
)
{
res
->
flags
|=
IORESOURCE_DISABLED
;
dev
_dbg
(
&
dev
->
dev
,
" mem %d disabled
\n
"
,
idx
);
pnp
_dbg
(
&
dev
->
dev
,
" mem %d disabled
\n
"
,
idx
);
goto
__add
;
}
...
...
@@ -101,7 +101,7 @@ static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx)
res
->
start
+=
rule
->
align
;
res
->
end
=
res
->
start
+
rule
->
size
-
1
;
if
(
res
->
start
>
rule
->
max
||
!
rule
->
align
)
{
dev
_dbg
(
&
dev
->
dev
,
" couldn't assign mem %d "
pnp
_dbg
(
&
dev
->
dev
,
" couldn't assign mem %d "
"(min %#llx max %#llx)
\n
"
,
idx
,
(
unsigned
long
long
)
rule
->
min
,
(
unsigned
long
long
)
rule
->
max
);
...
...
@@ -126,7 +126,7 @@ static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx)
res
=
pnp_get_resource
(
dev
,
IORESOURCE_IRQ
,
idx
);
if
(
res
)
{
dev
_dbg
(
&
dev
->
dev
,
" irq %d already set to %d flags %#lx
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" irq %d already set to %d flags %#lx
\n
"
,
idx
,
(
int
)
res
->
start
,
res
->
flags
);
return
0
;
}
...
...
@@ -138,7 +138,7 @@ static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx)
if
(
bitmap_empty
(
rule
->
map
.
bits
,
PNP_IRQ_NR
))
{
res
->
flags
|=
IORESOURCE_DISABLED
;
dev
_dbg
(
&
dev
->
dev
,
" irq %d disabled
\n
"
,
idx
);
pnp
_dbg
(
&
dev
->
dev
,
" irq %d disabled
\n
"
,
idx
);
goto
__add
;
}
...
...
@@ -160,11 +160,11 @@ static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx)
res
->
start
=
-
1
;
res
->
end
=
-
1
;
res
->
flags
|=
IORESOURCE_DISABLED
;
dev
_dbg
(
&
dev
->
dev
,
" irq %d disabled (optional)
\n
"
,
idx
);
pnp
_dbg
(
&
dev
->
dev
,
" irq %d disabled (optional)
\n
"
,
idx
);
goto
__add
;
}
dev
_dbg
(
&
dev
->
dev
,
" couldn't assign irq %d
\n
"
,
idx
);
pnp
_dbg
(
&
dev
->
dev
,
" couldn't assign irq %d
\n
"
,
idx
);
return
-
EBUSY
;
__add:
...
...
@@ -184,7 +184,7 @@ static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx)
res
=
pnp_get_resource
(
dev
,
IORESOURCE_DMA
,
idx
);
if
(
res
)
{
dev
_dbg
(
&
dev
->
dev
,
" dma %d already set to %d flags %#lx
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" dma %d already set to %d flags %#lx
\n
"
,
idx
,
(
int
)
res
->
start
,
res
->
flags
);
return
0
;
}
...
...
@@ -205,7 +205,7 @@ static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx)
res
->
start
=
res
->
end
=
MAX_DMA_CHANNELS
;
#endif
res
->
flags
|=
IORESOURCE_DISABLED
;
dev
_dbg
(
&
dev
->
dev
,
" disable dma %d
\n
"
,
idx
);
pnp
_dbg
(
&
dev
->
dev
,
" disable dma %d
\n
"
,
idx
);
__add:
pnp_add_dma_resource
(
dev
,
res
->
start
,
res
->
flags
);
...
...
@@ -238,7 +238,7 @@ static int pnp_assign_resources(struct pnp_dev *dev, int set)
int
nport
=
0
,
nmem
=
0
,
nirq
=
0
,
ndma
=
0
;
int
ret
=
0
;
dev
_dbg
(
&
dev
->
dev
,
"pnp_assign_resources, try dependent set %d
\n
"
,
set
);
pnp
_dbg
(
&
dev
->
dev
,
"pnp_assign_resources, try dependent set %d
\n
"
,
set
);
mutex_lock
(
&
pnp_res_mutex
);
pnp_clean_resource_table
(
dev
);
...
...
@@ -270,7 +270,7 @@ static int pnp_assign_resources(struct pnp_dev *dev, int set)
mutex_unlock
(
&
pnp_res_mutex
);
if
(
ret
<
0
)
{
dev
_dbg
(
&
dev
->
dev
,
"pnp_assign_resources failed (%d)
\n
"
,
ret
);
pnp
_dbg
(
&
dev
->
dev
,
"pnp_assign_resources failed (%d)
\n
"
,
ret
);
pnp_clean_resource_table
(
dev
);
}
else
dbg_pnp_show_resources
(
dev
,
"pnp_assign_resources succeeded"
);
...
...
@@ -286,7 +286,7 @@ int pnp_auto_config_dev(struct pnp_dev *dev)
int
i
,
ret
;
if
(
!
pnp_can_configure
(
dev
))
{
dev
_dbg
(
&
dev
->
dev
,
"configuration not supported
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"configuration not supported
\n
"
);
return
-
ENODEV
;
}
...
...
@@ -313,7 +313,7 @@ int pnp_auto_config_dev(struct pnp_dev *dev)
int
pnp_start_dev
(
struct
pnp_dev
*
dev
)
{
if
(
!
pnp_can_write
(
dev
))
{
dev
_dbg
(
&
dev
->
dev
,
"activation not supported
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"activation not supported
\n
"
);
return
-
EINVAL
;
}
...
...
@@ -336,7 +336,7 @@ int pnp_start_dev(struct pnp_dev *dev)
int
pnp_stop_dev
(
struct
pnp_dev
*
dev
)
{
if
(
!
pnp_can_disable
(
dev
))
{
dev
_dbg
(
&
dev
->
dev
,
"disabling not supported
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"disabling not supported
\n
"
);
return
-
EINVAL
;
}
if
(
dev
->
protocol
->
disable
(
dev
)
<
0
)
{
...
...
drivers/pnp/pnpacpi/Makefile
浏览文件 @
4dff4e7f
...
...
@@ -3,7 +3,3 @@
#
obj-y
:=
core.o rsparser.o
ifeq
($(CONFIG_PNP_DEBUG),y)
EXTRA_CFLAGS
+=
-DDEBUG
endif
drivers/pnp/pnpacpi/core.c
浏览文件 @
4dff4e7f
...
...
@@ -75,7 +75,7 @@ static int __init ispnpidacpi(char *id)
static
int
pnpacpi_get_resources
(
struct
pnp_dev
*
dev
)
{
dev
_dbg
(
&
dev
->
dev
,
"get resources
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"get resources
\n
"
);
return
pnpacpi_parse_allocated_resource
(
dev
);
}
...
...
@@ -86,7 +86,7 @@ static int pnpacpi_set_resources(struct pnp_dev *dev)
int
ret
;
acpi_status
status
;
dev
_dbg
(
&
dev
->
dev
,
"set resources
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"set resources
\n
"
);
ret
=
pnpacpi_build_resource_template
(
dev
,
&
buffer
);
if
(
ret
)
return
ret
;
...
...
@@ -259,14 +259,14 @@ int pnpacpi_disabled __initdata;
static
int
__init
pnpacpi_init
(
void
)
{
if
(
acpi_disabled
||
pnpacpi_disabled
)
{
p
np_info
(
"PnP ACPI: disabled
"
);
p
rintk
(
KERN_INFO
"pnp: PnP ACPI: disabled
\n
"
);
return
0
;
}
p
np_info
(
"PnP ACPI init
"
);
p
rintk
(
KERN_INFO
"pnp: PnP ACPI init
\n
"
);
pnp_register_protocol
(
&
pnpacpi_protocol
);
register_acpi_bus_type
(
&
acpi_pnp_bus
);
acpi_get_devices
(
NULL
,
pnpacpi_add_device_handler
,
NULL
,
NULL
);
p
np_info
(
"PnP ACPI: found %d devices
"
,
num
);
p
rintk
(
KERN_INFO
"pnp: PnP ACPI: found %d devices
\n
"
,
num
);
unregister_acpi_bus_type
(
&
acpi_pnp_bus
);
pnp_platform_devices
=
1
;
return
0
;
...
...
drivers/pnp/pnpacpi/rsparser.c
浏览文件 @
4dff4e7f
...
...
@@ -132,7 +132,8 @@ static void pnpacpi_parse_allocated_irqresource(struct pnp_dev *dev,
pnp_add_irq_resource
(
dev
,
irq
,
flags
);
}
static
int
dma_flags
(
int
type
,
int
bus_master
,
int
transfer
)
static
int
dma_flags
(
struct
pnp_dev
*
dev
,
int
type
,
int
bus_master
,
int
transfer
)
{
int
flags
=
0
;
...
...
@@ -154,7 +155,7 @@ static int dma_flags(int type, int bus_master, int transfer)
default:
/* Set a default value ? */
flags
|=
IORESOURCE_DMA_COMPATIBLE
;
pnp_err
(
"Invalid DMA type"
);
dev_err
(
&
dev
->
dev
,
"invalid DMA type %d
\n
"
,
type
);
}
switch
(
transfer
)
{
case
ACPI_TRANSFER_8
:
...
...
@@ -169,7 +170,7 @@ static int dma_flags(int type, int bus_master, int transfer)
default:
/* Set a default value ? */
flags
|=
IORESOURCE_DMA_8AND16BIT
;
pnp_err
(
"Invalid DMA transfer type"
);
dev_err
(
&
dev
->
dev
,
"invalid DMA transfer type %d
\n
"
,
transfer
);
}
return
flags
;
...
...
@@ -336,7 +337,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
case
ACPI_RESOURCE_TYPE_DMA
:
dma
=
&
res
->
data
.
dma
;
if
(
dma
->
channel_count
>
0
&&
dma
->
channels
[
0
]
!=
(
u8
)
-
1
)
flags
=
dma_flags
(
dma
->
type
,
dma
->
bus_master
,
flags
=
dma_flags
(
d
ev
,
d
ma
->
type
,
dma
->
bus_master
,
dma
->
transfer
);
else
flags
=
IORESOURCE_DISABLED
;
...
...
@@ -449,7 +450,7 @@ int pnpacpi_parse_allocated_resource(struct pnp_dev *dev)
acpi_handle
handle
=
dev
->
data
;
acpi_status
status
;
dev
_dbg
(
&
dev
->
dev
,
"parse allocated resources
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"parse allocated resources
\n
"
);
pnp_init_resources
(
dev
);
...
...
@@ -477,7 +478,7 @@ static __init void pnpacpi_parse_dma_option(struct pnp_dev *dev,
for
(
i
=
0
;
i
<
p
->
channel_count
;
i
++
)
map
|=
1
<<
p
->
channels
[
i
];
flags
=
dma_flags
(
p
->
type
,
p
->
bus_master
,
p
->
transfer
);
flags
=
dma_flags
(
dev
,
p
->
type
,
p
->
bus_master
,
p
->
transfer
);
pnp_register_dma_resource
(
dev
,
option_flags
,
map
,
flags
);
}
...
...
@@ -608,8 +609,8 @@ static __init void pnpacpi_parse_address_option(struct pnp_dev *dev,
unsigned
char
flags
=
0
;
status
=
acpi_resource_to_address64
(
r
,
p
);
if
(
!
ACPI_SUCCESS
(
status
))
{
pnp_warn
(
"PnPACPI: failed to convert resource type %d
"
,
if
(
ACPI_FAILURE
(
status
))
{
dev_warn
(
&
dev
->
dev
,
"can't convert resource type %d
\n
"
,
r
->
type
);
return
;
}
...
...
@@ -735,7 +736,7 @@ int __init pnpacpi_parse_resource_option_data(struct pnp_dev *dev)
acpi_status
status
;
struct
acpipnp_parse_option_s
parse_data
;
dev
_dbg
(
&
dev
->
dev
,
"parse resource options
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"parse resource options
\n
"
);
parse_data
.
dev
=
dev
;
parse_data
.
option_flags
=
0
;
...
...
@@ -843,7 +844,7 @@ static void pnpacpi_encode_irq(struct pnp_dev *dev,
if
(
!
pnp_resource_enabled
(
p
))
{
irq
->
interrupt_count
=
0
;
dev
_dbg
(
&
dev
->
dev
,
" encode irq (%s)
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" encode irq (%s)
\n
"
,
p
?
"disabled"
:
"missing"
);
return
;
}
...
...
@@ -855,7 +856,7 @@ static void pnpacpi_encode_irq(struct pnp_dev *dev,
irq
->
interrupt_count
=
1
;
irq
->
interrupts
[
0
]
=
p
->
start
;
dev
_dbg
(
&
dev
->
dev
,
" encode irq %d %s %s %s (%d-byte descriptor)
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" encode irq %d %s %s %s (%d-byte descriptor)
\n
"
,
(
int
)
p
->
start
,
triggering
==
ACPI_LEVEL_SENSITIVE
?
"level"
:
"edge"
,
polarity
==
ACPI_ACTIVE_LOW
?
"low"
:
"high"
,
...
...
@@ -872,7 +873,7 @@ static void pnpacpi_encode_ext_irq(struct pnp_dev *dev,
if
(
!
pnp_resource_enabled
(
p
))
{
extended_irq
->
interrupt_count
=
0
;
dev
_dbg
(
&
dev
->
dev
,
" encode extended irq (%s)
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" encode extended irq (%s)
\n
"
,
p
?
"disabled"
:
"missing"
);
return
;
}
...
...
@@ -885,7 +886,7 @@ static void pnpacpi_encode_ext_irq(struct pnp_dev *dev,
extended_irq
->
interrupt_count
=
1
;
extended_irq
->
interrupts
[
0
]
=
p
->
start
;
dev
_dbg
(
&
dev
->
dev
,
" encode irq %d %s %s %s
\n
"
,
(
int
)
p
->
start
,
pnp
_dbg
(
&
dev
->
dev
,
" encode irq %d %s %s %s
\n
"
,
(
int
)
p
->
start
,
triggering
==
ACPI_LEVEL_SENSITIVE
?
"level"
:
"edge"
,
polarity
==
ACPI_ACTIVE_LOW
?
"low"
:
"high"
,
extended_irq
->
sharable
==
ACPI_SHARED
?
"shared"
:
"exclusive"
);
...
...
@@ -899,7 +900,7 @@ static void pnpacpi_encode_dma(struct pnp_dev *dev,
if
(
!
pnp_resource_enabled
(
p
))
{
dma
->
channel_count
=
0
;
dev
_dbg
(
&
dev
->
dev
,
" encode dma (%s)
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" encode dma (%s)
\n
"
,
p
?
"disabled"
:
"missing"
);
return
;
}
...
...
@@ -934,7 +935,7 @@ static void pnpacpi_encode_dma(struct pnp_dev *dev,
dma
->
channel_count
=
1
;
dma
->
channels
[
0
]
=
p
->
start
;
dev
_dbg
(
&
dev
->
dev
,
" encode dma %d "
pnp
_dbg
(
&
dev
->
dev
,
" encode dma %d "
"type %#x transfer %#x master %d
\n
"
,
(
int
)
p
->
start
,
dma
->
type
,
dma
->
transfer
,
dma
->
bus_master
);
}
...
...
@@ -958,7 +959,7 @@ static void pnpacpi_encode_io(struct pnp_dev *dev,
io
->
address_length
=
0
;
}
dev
_dbg
(
&
dev
->
dev
,
" encode io %#x-%#x decode %#x
\n
"
,
io
->
minimum
,
pnp
_dbg
(
&
dev
->
dev
,
" encode io %#x-%#x decode %#x
\n
"
,
io
->
minimum
,
io
->
minimum
+
io
->
address_length
-
1
,
io
->
io_decode
);
}
...
...
@@ -976,7 +977,7 @@ static void pnpacpi_encode_fixed_io(struct pnp_dev *dev,
fixed_io
->
address_length
=
0
;
}
dev
_dbg
(
&
dev
->
dev
,
" encode fixed_io %#x-%#x
\n
"
,
fixed_io
->
address
,
pnp
_dbg
(
&
dev
->
dev
,
" encode fixed_io %#x-%#x
\n
"
,
fixed_io
->
address
,
fixed_io
->
address
+
fixed_io
->
address_length
-
1
);
}
...
...
@@ -999,7 +1000,7 @@ static void pnpacpi_encode_mem24(struct pnp_dev *dev,
memory24
->
address_length
=
0
;
}
dev
_dbg
(
&
dev
->
dev
,
" encode mem24 %#x-%#x write_protect %#x
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" encode mem24 %#x-%#x write_protect %#x
\n
"
,
memory24
->
minimum
,
memory24
->
minimum
+
memory24
->
address_length
-
1
,
memory24
->
write_protect
);
...
...
@@ -1023,7 +1024,7 @@ static void pnpacpi_encode_mem32(struct pnp_dev *dev,
memory32
->
alignment
=
0
;
}
dev
_dbg
(
&
dev
->
dev
,
" encode mem32 %#x-%#x write_protect %#x
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" encode mem32 %#x-%#x write_protect %#x
\n
"
,
memory32
->
minimum
,
memory32
->
minimum
+
memory32
->
address_length
-
1
,
memory32
->
write_protect
);
...
...
@@ -1046,7 +1047,7 @@ static void pnpacpi_encode_fixed_mem32(struct pnp_dev *dev,
fixed_memory32
->
address_length
=
0
;
}
dev
_dbg
(
&
dev
->
dev
,
" encode fixed_mem32 %#x-%#x write_protect %#x
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" encode fixed_mem32 %#x-%#x write_protect %#x
\n
"
,
fixed_memory32
->
address
,
fixed_memory32
->
address
+
fixed_memory32
->
address_length
-
1
,
fixed_memory32
->
write_protect
);
...
...
@@ -1060,7 +1061,7 @@ int pnpacpi_encode_resources(struct pnp_dev *dev, struct acpi_buffer *buffer)
struct
acpi_resource
*
resource
=
buffer
->
pointer
;
int
port
=
0
,
irq
=
0
,
dma
=
0
,
mem
=
0
;
dev
_dbg
(
&
dev
->
dev
,
"encode %d resources
\n
"
,
res_cnt
);
pnp
_dbg
(
&
dev
->
dev
,
"encode %d resources
\n
"
,
res_cnt
);
while
(
i
<
res_cnt
)
{
switch
(
resource
->
type
)
{
case
ACPI_RESOURCE_TYPE_IRQ
:
...
...
drivers/pnp/pnpbios/Makefile
浏览文件 @
4dff4e7f
...
...
@@ -5,7 +5,3 @@
pnpbios-proc-$(CONFIG_PNPBIOS_PROC_FS)
=
proc.o
obj-y
:=
core.o bioscalls.o rsparser.o
$
(
pnpbios-proc-y
)
ifeq
($(CONFIG_PNP_DEBUG),y)
EXTRA_CFLAGS
+=
-DDEBUG
endif
drivers/pnp/pnpbios/core.c
浏览文件 @
4dff4e7f
...
...
@@ -211,7 +211,7 @@ static int pnpbios_get_resources(struct pnp_dev *dev)
if
(
!
pnpbios_is_dynamic
(
dev
))
return
-
EPERM
;
dev
_dbg
(
&
dev
->
dev
,
"get resources
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"get resources
\n
"
);
node
=
kzalloc
(
node_info
.
max_node_size
,
GFP_KERNEL
);
if
(
!
node
)
return
-
1
;
...
...
@@ -234,7 +234,7 @@ static int pnpbios_set_resources(struct pnp_dev *dev)
if
(
!
pnpbios_is_dynamic
(
dev
))
return
-
EPERM
;
dev
_dbg
(
&
dev
->
dev
,
"set resources
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"set resources
\n
"
);
node
=
kzalloc
(
node_info
.
max_node_size
,
GFP_KERNEL
);
if
(
!
node
)
return
-
1
;
...
...
drivers/pnp/pnpbios/rsparser.c
浏览文件 @
4dff4e7f
...
...
@@ -87,7 +87,7 @@ static unsigned char *pnpbios_parse_allocated_resource_data(struct pnp_dev *dev,
if
(
!
p
)
return
NULL
;
dev
_dbg
(
&
dev
->
dev
,
"parse allocated resources
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"parse allocated resources
\n
"
);
pnp_init_resources
(
dev
);
...
...
@@ -324,7 +324,7 @@ pnpbios_parse_resource_option_data(unsigned char *p, unsigned char *end,
if
(
!
p
)
return
NULL
;
dev
_dbg
(
&
dev
->
dev
,
"parse resource options
\n
"
);
pnp
_dbg
(
&
dev
->
dev
,
"parse resource options
\n
"
);
option_flags
=
0
;
while
((
char
*
)
p
<
(
char
*
)
end
)
{
...
...
@@ -519,7 +519,7 @@ static void pnpbios_encode_mem(struct pnp_dev *dev, unsigned char *p,
p
[
10
]
=
(
len
>>
8
)
&
0xff
;
p
[
11
]
=
((
len
>>
8
)
>>
8
)
&
0xff
;
dev
_dbg
(
&
dev
->
dev
,
" encode mem %#lx-%#lx
\n
"
,
base
,
base
+
len
-
1
);
pnp
_dbg
(
&
dev
->
dev
,
" encode mem %#lx-%#lx
\n
"
,
base
,
base
+
len
-
1
);
}
static
void
pnpbios_encode_mem32
(
struct
pnp_dev
*
dev
,
unsigned
char
*
p
,
...
...
@@ -549,7 +549,7 @@ static void pnpbios_encode_mem32(struct pnp_dev *dev, unsigned char *p,
p
[
18
]
=
(
len
>>
16
)
&
0xff
;
p
[
19
]
=
(
len
>>
24
)
&
0xff
;
dev
_dbg
(
&
dev
->
dev
,
" encode mem32 %#lx-%#lx
\n
"
,
base
,
base
+
len
-
1
);
pnp
_dbg
(
&
dev
->
dev
,
" encode mem32 %#lx-%#lx
\n
"
,
base
,
base
+
len
-
1
);
}
static
void
pnpbios_encode_fixed_mem32
(
struct
pnp_dev
*
dev
,
unsigned
char
*
p
,
...
...
@@ -575,7 +575,7 @@ static void pnpbios_encode_fixed_mem32(struct pnp_dev *dev, unsigned char *p,
p
[
10
]
=
(
len
>>
16
)
&
0xff
;
p
[
11
]
=
(
len
>>
24
)
&
0xff
;
dev
_dbg
(
&
dev
->
dev
,
" encode fixed_mem32 %#lx-%#lx
\n
"
,
base
,
pnp
_dbg
(
&
dev
->
dev
,
" encode fixed_mem32 %#lx-%#lx
\n
"
,
base
,
base
+
len
-
1
);
}
...
...
@@ -592,7 +592,7 @@ static void pnpbios_encode_irq(struct pnp_dev *dev, unsigned char *p,
p
[
1
]
=
map
&
0xff
;
p
[
2
]
=
(
map
>>
8
)
&
0xff
;
dev
_dbg
(
&
dev
->
dev
,
" encode irq mask %#lx
\n
"
,
map
);
pnp
_dbg
(
&
dev
->
dev
,
" encode irq mask %#lx
\n
"
,
map
);
}
static
void
pnpbios_encode_dma
(
struct
pnp_dev
*
dev
,
unsigned
char
*
p
,
...
...
@@ -607,7 +607,7 @@ static void pnpbios_encode_dma(struct pnp_dev *dev, unsigned char *p,
p
[
1
]
=
map
&
0xff
;
dev
_dbg
(
&
dev
->
dev
,
" encode dma mask %#lx
\n
"
,
map
);
pnp
_dbg
(
&
dev
->
dev
,
" encode dma mask %#lx
\n
"
,
map
);
}
static
void
pnpbios_encode_port
(
struct
pnp_dev
*
dev
,
unsigned
char
*
p
,
...
...
@@ -630,7 +630,7 @@ static void pnpbios_encode_port(struct pnp_dev *dev, unsigned char *p,
p
[
5
]
=
(
base
>>
8
)
&
0xff
;
p
[
7
]
=
len
&
0xff
;
dev
_dbg
(
&
dev
->
dev
,
" encode io %#lx-%#lx
\n
"
,
base
,
base
+
len
-
1
);
pnp
_dbg
(
&
dev
->
dev
,
" encode io %#lx-%#lx
\n
"
,
base
,
base
+
len
-
1
);
}
static
void
pnpbios_encode_fixed_port
(
struct
pnp_dev
*
dev
,
unsigned
char
*
p
,
...
...
@@ -651,7 +651,7 @@ static void pnpbios_encode_fixed_port(struct pnp_dev *dev, unsigned char *p,
p
[
2
]
=
(
base
>>
8
)
&
0xff
;
p
[
3
]
=
len
&
0xff
;
dev
_dbg
(
&
dev
->
dev
,
" encode fixed_io %#lx-%#lx
\n
"
,
base
,
pnp
_dbg
(
&
dev
->
dev
,
" encode fixed_io %#lx-%#lx
\n
"
,
base
,
base
+
len
-
1
);
}
...
...
drivers/pnp/quirks.c
浏览文件 @
4dff4e7f
...
...
@@ -337,10 +337,8 @@ void pnp_fixup_device(struct pnp_dev *dev)
for
(
f
=
pnp_fixups
;
*
f
->
id
;
f
++
)
{
if
(
!
compare_pnp_id
(
dev
->
id
,
f
->
id
))
continue
;
#ifdef DEBUG
dev_dbg
(
&
dev
->
dev
,
"%s: calling "
,
f
->
id
);
print_fn_descriptor_symbol
(
"%s
\n
"
,
f
->
quirk_function
);
#endif
pnp_dbg
(
&
dev
->
dev
,
"%s: calling %pF
\n
"
,
f
->
id
,
f
->
quirk_function
);
f
->
quirk_function
(
dev
);
}
}
drivers/pnp/resource.c
浏览文件 @
4dff4e7f
...
...
@@ -294,7 +294,7 @@ static int pci_dev_uses_irq(struct pnp_dev *pnp, struct pci_dev *pci,
u8
progif
;
if
(
pci
->
irq
==
irq
)
{
dev_dbg
(
&
pnp
->
dev
,
"
device %s using irq %d
\n
"
,
pnp_dbg
(
&
pnp
->
dev
,
"
device %s using irq %d
\n
"
,
pci_name
(
pci
),
irq
);
return
1
;
}
...
...
@@ -316,7 +316,7 @@ static int pci_dev_uses_irq(struct pnp_dev *pnp, struct pci_dev *pci,
if
((
progif
&
0x5
)
!=
0x5
)
if
(
pci_get_legacy_ide_irq
(
pci
,
0
)
==
irq
||
pci_get_legacy_ide_irq
(
pci
,
1
)
==
irq
)
{
dev_dbg
(
&
pnp
->
dev
,
"
legacy IDE device %s "
pnp_dbg
(
&
pnp
->
dev
,
"
legacy IDE device %s "
"using irq %d
\n
"
,
pci_name
(
pci
),
irq
);
return
1
;
}
...
...
@@ -517,7 +517,7 @@ struct pnp_resource *pnp_add_irq_resource(struct pnp_dev *dev, int irq,
res
->
start
=
irq
;
res
->
end
=
irq
;
dev
_dbg
(
&
dev
->
dev
,
" add irq %d flags %#x
\n
"
,
irq
,
flags
);
pnp
_dbg
(
&
dev
->
dev
,
" add irq %d flags %#x
\n
"
,
irq
,
flags
);
return
pnp_res
;
}
...
...
@@ -538,7 +538,7 @@ struct pnp_resource *pnp_add_dma_resource(struct pnp_dev *dev, int dma,
res
->
start
=
dma
;
res
->
end
=
dma
;
dev
_dbg
(
&
dev
->
dev
,
" add dma %d flags %#x
\n
"
,
dma
,
flags
);
pnp
_dbg
(
&
dev
->
dev
,
" add dma %d flags %#x
\n
"
,
dma
,
flags
);
return
pnp_res
;
}
...
...
@@ -562,7 +562,7 @@ struct pnp_resource *pnp_add_io_resource(struct pnp_dev *dev,
res
->
start
=
start
;
res
->
end
=
end
;
dev
_dbg
(
&
dev
->
dev
,
" add io %#llx-%#llx flags %#x
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" add io %#llx-%#llx flags %#x
\n
"
,
(
unsigned
long
long
)
start
,
(
unsigned
long
long
)
end
,
flags
);
return
pnp_res
;
}
...
...
@@ -587,7 +587,7 @@ struct pnp_resource *pnp_add_mem_resource(struct pnp_dev *dev,
res
->
start
=
start
;
res
->
end
=
end
;
dev
_dbg
(
&
dev
->
dev
,
" add mem %#llx-%#llx flags %#x
\n
"
,
pnp
_dbg
(
&
dev
->
dev
,
" add mem %#llx-%#llx flags %#x
\n
"
,
(
unsigned
long
long
)
start
,
(
unsigned
long
long
)
end
,
flags
);
return
pnp_res
;
}
...
...
drivers/pnp/support.c
浏览文件 @
4dff4e7f
...
...
@@ -75,18 +75,17 @@ char *pnp_resource_type_name(struct resource *res)
void
dbg_pnp_show_resources
(
struct
pnp_dev
*
dev
,
char
*
desc
)
{
#ifdef DEBUG
char
buf
[
128
];
int
len
;
struct
pnp_resource
*
pnp_res
;
struct
resource
*
res
;
if
(
list_empty
(
&
dev
->
resources
))
{
dev
_dbg
(
&
dev
->
dev
,
"%s: no current resources
\n
"
,
desc
);
pnp
_dbg
(
&
dev
->
dev
,
"%s: no current resources
\n
"
,
desc
);
return
;
}
dev
_dbg
(
&
dev
->
dev
,
"%s: current resources:
\n
"
,
desc
);
pnp
_dbg
(
&
dev
->
dev
,
"%s: current resources:
\n
"
,
desc
);
list_for_each_entry
(
pnp_res
,
&
dev
->
resources
,
list
)
{
res
=
&
pnp_res
->
res
;
len
=
0
;
...
...
@@ -95,7 +94,7 @@ void dbg_pnp_show_resources(struct pnp_dev *dev, char *desc)
pnp_resource_type_name
(
res
));
if
(
res
->
flags
&
IORESOURCE_DISABLED
)
{
dev
_dbg
(
&
dev
->
dev
,
"%sdisabled
\n
"
,
buf
);
pnp
_dbg
(
&
dev
->
dev
,
"%sdisabled
\n
"
,
buf
);
continue
;
}
...
...
@@ -116,9 +115,8 @@ void dbg_pnp_show_resources(struct pnp_dev *dev, char *desc)
res
->
flags
);
break
;
}
dev
_dbg
(
&
dev
->
dev
,
"%s
\n
"
,
buf
);
pnp
_dbg
(
&
dev
->
dev
,
"%s
\n
"
,
buf
);
}
#endif
}
char
*
pnp_option_priority_name
(
struct
pnp_option
*
option
)
...
...
@@ -136,7 +134,6 @@ char *pnp_option_priority_name(struct pnp_option *option)
void
dbg_pnp_show_option
(
struct
pnp_dev
*
dev
,
struct
pnp_option
*
option
)
{
#ifdef DEBUG
char
buf
[
128
];
int
len
=
0
,
i
;
struct
pnp_port
*
port
;
...
...
@@ -208,6 +205,5 @@ void dbg_pnp_show_option(struct pnp_dev *dev, struct pnp_option *option)
"flags %#x"
,
dma
->
map
,
dma
->
flags
);
break
;
}
dev_dbg
(
&
dev
->
dev
,
"%s
\n
"
,
buf
);
#endif
pnp_dbg
(
&
dev
->
dev
,
"%s
\n
"
,
buf
);
}
include/linux/pnp.h
浏览文件 @
4dff4e7f
...
...
@@ -483,14 +483,4 @@ static inline void pnp_unregister_driver(struct pnp_driver *drv) { }
#endif
/* CONFIG_PNP */
#define pnp_err(format, arg...) printk(KERN_ERR "pnp: " format "\n" , ## arg)
#define pnp_info(format, arg...) printk(KERN_INFO "pnp: " format "\n" , ## arg)
#define pnp_warn(format, arg...) printk(KERN_WARNING "pnp: " format "\n" , ## arg)
#ifdef CONFIG_PNP_DEBUG
#define pnp_dbg(format, arg...) printk(KERN_DEBUG "pnp: " format "\n" , ## arg)
#else
#define pnp_dbg(format, arg...) do {} while (0)
#endif
#endif
/* _LINUX_PNP_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录