Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
c1f6b493
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c1f6b493
编写于
5月 11, 2012
作者:
G
Gerd Hoffmann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
xhci: trace: endpoints
Signed-off-by:
N
Gerd Hoffmann
<
kraxel@redhat.com
>
上级
0703a4a7
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
17 deletion
+10
-17
hw/usb/hcd-xhci.c
hw/usb/hcd-xhci.c
+5
-17
trace-events
trace-events
+5
-0
未找到文件。
hw/usb/hcd-xhci.c
浏览文件 @
c1f6b493
...
...
@@ -842,11 +842,10 @@ static TRBCCode xhci_enable_ep(XHCIState *xhci, unsigned int slotid,
dma_addr_t
dequeue
;
int
i
;
trace_usb_xhci_ep_enable
(
slotid
,
epid
);
assert
(
slotid
>=
1
&&
slotid
<=
MAXSLOTS
);
assert
(
epid
>=
1
&&
epid
<=
31
);
DPRINTF
(
"xhci_enable_ep(%d, %d)
\n
"
,
slotid
,
epid
);
slot
=
&
xhci
->
slots
[
slotid
-
1
];
if
(
slot
->
eps
[
epid
-
1
])
{
fprintf
(
stderr
,
"xhci: slot %d ep %d already enabled!
\n
"
,
slotid
,
epid
);
...
...
@@ -961,11 +960,10 @@ static TRBCCode xhci_disable_ep(XHCIState *xhci, unsigned int slotid,
XHCISlot
*
slot
;
XHCIEPContext
*
epctx
;
trace_usb_xhci_ep_disable
(
slotid
,
epid
);
assert
(
slotid
>=
1
&&
slotid
<=
MAXSLOTS
);
assert
(
epid
>=
1
&&
epid
<=
31
);
DPRINTF
(
"xhci_disable_ep(%d, %d)
\n
"
,
slotid
,
epid
);
slot
=
&
xhci
->
slots
[
slotid
-
1
];
if
(
!
slot
->
eps
[
epid
-
1
])
{
...
...
@@ -991,8 +989,7 @@ static TRBCCode xhci_stop_ep(XHCIState *xhci, unsigned int slotid,
XHCISlot
*
slot
;
XHCIEPContext
*
epctx
;
DPRINTF
(
"xhci_stop_ep(%d, %d)
\n
"
,
slotid
,
epid
);
trace_usb_xhci_ep_stop
(
slotid
,
epid
);
assert
(
slotid
>=
1
&&
slotid
<=
MAXSLOTS
);
if
(
epid
<
1
||
epid
>
31
)
{
...
...
@@ -1026,10 +1023,9 @@ static TRBCCode xhci_reset_ep(XHCIState *xhci, unsigned int slotid,
XHCIEPContext
*
epctx
;
USBDevice
*
dev
;
trace_usb_xhci_ep_reset
(
slotid
,
epid
);
assert
(
slotid
>=
1
&&
slotid
<=
MAXSLOTS
);
DPRINTF
(
"xhci_reset_ep(%d, %d)
\n
"
,
slotid
,
epid
);
if
(
epid
<
1
||
epid
>
31
)
{
fprintf
(
stderr
,
"xhci: bad ep %d
\n
"
,
epid
);
return
CC_TRB_ERROR
;
...
...
@@ -1654,9 +1650,9 @@ static void xhci_kick_ep(XHCIState *xhci, unsigned int slotid, unsigned int epid
int
length
;
int
i
;
trace_usb_xhci_ep_kick
(
slotid
,
epid
);
assert
(
slotid
>=
1
&&
slotid
<=
MAXSLOTS
);
assert
(
epid
>=
1
&&
epid
<=
31
);
DPRINTF
(
"xhci_kick_ep(%d, %d)
\n
"
,
slotid
,
epid
);
if
(
!
xhci
->
slots
[
slotid
-
1
].
enabled
)
{
fprintf
(
stderr
,
"xhci: xhci_kick_ep for disabled slot %d
\n
"
,
slotid
);
...
...
@@ -1698,21 +1694,14 @@ static void xhci_kick_ep(XHCIState *xhci, unsigned int slotid, unsigned int epid
while
(
1
)
{
XHCITransfer
*
xfer
=
&
epctx
->
transfers
[
epctx
->
next_xfer
];
if
(
xfer
->
running_async
||
xfer
->
running_retry
||
xfer
->
backgrounded
)
{
DPRINTF
(
"xhci: ep is busy (#%d,%d,%d,%d)
\n
"
,
epctx
->
next_xfer
,
xfer
->
running_async
,
xfer
->
running_retry
,
xfer
->
backgrounded
);
break
;
}
else
{
DPRINTF
(
"xhci: ep: using #%d
\n
"
,
epctx
->
next_xfer
);
}
length
=
xhci_ring_chain_length
(
xhci
,
&
epctx
->
ring
);
if
(
length
<
0
)
{
DPRINTF
(
"xhci: incomplete TD (%d TRBs)
\n
"
,
-
length
);
break
;
}
else
if
(
length
==
0
)
{
break
;
}
DPRINTF
(
"xhci: fetching %d-TRB TD
\n
"
,
length
);
if
(
xfer
->
trbs
&&
xfer
->
trb_alloced
<
length
)
{
xfer
->
trb_count
=
0
;
xfer
->
trb_alloced
=
0
;
...
...
@@ -1747,7 +1736,6 @@ static void xhci_kick_ep(XHCIState *xhci, unsigned int slotid, unsigned int epid
}
if
(
epctx
->
state
==
EP_HALTED
)
{
DPRINTF
(
"xhci: ep halted, stopping schedule
\n
"
);
break
;
}
if
(
xfer
->
running_retry
)
{
...
...
trace-events
浏览文件 @
c1f6b493
...
...
@@ -306,6 +306,11 @@ usb_xhci_irq_intx(uint32_t level) "level %d"
usb_xhci_irq_msi(uint32_t nr) "nr %d"
usb_xhci_queue_event(uint32_t idx, const char *name, uint64_t param, uint32_t status, uint32_t control) "idx %d, %s, p %016" PRIx64 ", s %08x, c 0x%08x"
usb_xhci_fetch_trb(uint64_t addr, const char *name, uint64_t param, uint32_t status, uint32_t control) "addr %016" PRIx64 ", %s, p %016" PRIx64 ", s %08x, c 0x%08x"
usb_xhci_ep_enable(uint32_t slotid, uint32_t epid) "slotid %d, epid %d"
usb_xhci_ep_disable(uint32_t slotid, uint32_t epid) "slotid %d, epid %d"
usb_xhci_ep_kick(uint32_t slotid, uint32_t epid) "slotid %d, epid %d"
usb_xhci_ep_stop(uint32_t slotid, uint32_t epid) "slotid %d, epid %d"
usb_xhci_ep_reset(uint32_t slotid, uint32_t epid) "slotid %d, epid %d"
# hw/usb/desc.c
usb_desc_device(int addr, int len, int ret) "dev %d query device, len %d, ret %d"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录