Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
89eb147c
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
89eb147c
编写于
1月 03, 2013
作者:
G
Gerd Hoffmann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
uhci: stop using portio lists
Signed-off-by:
N
Gerd Hoffmann
<
kraxel@redhat.com
>
上级
b2d1fe67
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
30 addition
and
78 deletion
+30
-78
hw/usb/hcd-uhci.c
hw/usb/hcd-uhci.c
+30
-76
trace-events
trace-events
+0
-2
未找到文件。
hw/usb/hcd-uhci.c
浏览文件 @
89eb147c
...
...
@@ -461,40 +461,11 @@ static const VMStateDescription vmstate_uhci = {
}
};
static
void
uhci_ioport_writeb
(
void
*
opaque
,
uint32_t
addr
,
uint32_t
val
)
static
void
uhci_port_write
(
void
*
opaque
,
hwaddr
addr
,
uint64_t
val
,
unsigned
size
)
{
UHCIState
*
s
=
opaque
;
addr
&=
0x1f
;
switch
(
addr
)
{
case
0x0c
:
s
->
sof_timing
=
val
;
break
;
}
}
static
uint32_t
uhci_ioport_readb
(
void
*
opaque
,
uint32_t
addr
)
{
UHCIState
*
s
=
opaque
;
uint32_t
val
;
addr
&=
0x1f
;
switch
(
addr
)
{
case
0x0c
:
val
=
s
->
sof_timing
;
break
;
default:
val
=
0xff
;
break
;
}
return
val
;
}
static
void
uhci_ioport_writew
(
void
*
opaque
,
uint32_t
addr
,
uint32_t
val
)
{
UHCIState
*
s
=
opaque
;
addr
&=
0x1f
;
trace_usb_uhci_mmio_writew
(
addr
,
val
);
switch
(
addr
)
{
...
...
@@ -543,6 +514,17 @@ static void uhci_ioport_writew(void *opaque, uint32_t addr, uint32_t val)
if
(
s
->
status
&
UHCI_STS_HCHALTED
)
s
->
frnum
=
val
&
0x7ff
;
break
;
case
0x08
:
s
->
fl_base_addr
&=
0xffff0000
;
s
->
fl_base_addr
|=
val
&
~
0xfff
;
break
;
case
0x0a
:
s
->
fl_base_addr
&=
0x0000ffff
;
s
->
fl_base_addr
|=
(
val
<<
16
);
break
;
case
0x0c
:
s
->
sof_timing
=
val
&
0xff
;
break
;
case
0x10
...
0x1f
:
{
UHCIPort
*
port
;
...
...
@@ -574,12 +556,11 @@ static void uhci_ioport_writew(void *opaque, uint32_t addr, uint32_t val)
}
}
static
uint
32_t
uhci_ioport_readw
(
void
*
opaque
,
uint32_t
addr
)
static
uint
64_t
uhci_port_read
(
void
*
opaque
,
hwaddr
addr
,
unsigned
size
)
{
UHCIState
*
s
=
opaque
;
uint32_t
val
;
addr
&=
0x1f
;
switch
(
addr
)
{
case
0x00
:
val
=
s
->
cmd
;
...
...
@@ -593,6 +574,15 @@ static uint32_t uhci_ioport_readw(void *opaque, uint32_t addr)
case
0x06
:
val
=
s
->
frnum
;
break
;
case
0x08
:
val
=
s
->
fl_base_addr
&
0xffff
;
break
;
case
0x0a
:
val
=
(
s
->
fl_base_addr
>>
16
)
&
0xffff
;
break
;
case
0x0c
:
val
=
s
->
sof_timing
;
break
;
case
0x10
...
0x1f
:
{
UHCIPort
*
port
;
...
...
@@ -615,38 +605,6 @@ static uint32_t uhci_ioport_readw(void *opaque, uint32_t addr)
return
val
;
}
static
void
uhci_ioport_writel
(
void
*
opaque
,
uint32_t
addr
,
uint32_t
val
)
{
UHCIState
*
s
=
opaque
;
addr
&=
0x1f
;
trace_usb_uhci_mmio_writel
(
addr
,
val
);
switch
(
addr
)
{
case
0x08
:
s
->
fl_base_addr
=
val
&
~
0xfff
;
break
;
}
}
static
uint32_t
uhci_ioport_readl
(
void
*
opaque
,
uint32_t
addr
)
{
UHCIState
*
s
=
opaque
;
uint32_t
val
;
addr
&=
0x1f
;
switch
(
addr
)
{
case
0x08
:
val
=
s
->
fl_base_addr
;
break
;
default:
val
=
0xffffffff
;
break
;
}
trace_usb_uhci_mmio_readl
(
addr
,
val
);
return
val
;
}
/* signal resume if controller suspended */
static
void
uhci_resume
(
void
*
opaque
)
{
...
...
@@ -1236,18 +1194,14 @@ static void uhci_frame_timer(void *opaque)
qemu_mod_timer
(
s
->
frame_timer
,
t_now
+
frame_t
);
}
static
const
MemoryRegionPortio
uhci_portio
[]
=
{
{
0
,
32
,
2
,
.
write
=
uhci_ioport_writew
,
},
{
0
,
32
,
2
,
.
read
=
uhci_ioport_readw
,
},
{
0
,
32
,
4
,
.
write
=
uhci_ioport_writel
,
},
{
0
,
32
,
4
,
.
read
=
uhci_ioport_readl
,
},
{
0
,
32
,
1
,
.
write
=
uhci_ioport_writeb
,
},
{
0
,
32
,
1
,
.
read
=
uhci_ioport_readb
,
},
PORTIO_END_OF_LIST
()
};
static
const
MemoryRegionOps
uhci_ioport_ops
=
{
.
old_portio
=
uhci_portio
,
.
read
=
uhci_port_read
,
.
write
=
uhci_port_write
,
.
valid
.
min_access_size
=
1
,
.
valid
.
max_access_size
=
4
,
.
impl
.
min_access_size
=
2
,
.
impl
.
max_access_size
=
2
,
.
endianness
=
DEVICE_LITTLE_ENDIAN
,
};
static
USBPortOps
uhci_port_ops
=
{
...
...
trace-events
浏览文件 @
89eb147c
...
...
@@ -307,8 +307,6 @@ usb_uhci_frame_loop_stop_idle(void) ""
usb_uhci_frame_loop_continue(void) ""
usb_uhci_mmio_readw(uint32_t addr, uint32_t val) "addr 0x%04x, ret 0x%04x"
usb_uhci_mmio_writew(uint32_t addr, uint32_t val) "addr 0x%04x, val 0x%04x"
usb_uhci_mmio_readl(uint32_t addr, uint32_t val) "addr 0x%04x, ret 0x%08x"
usb_uhci_mmio_writel(uint32_t addr, uint32_t val) "addr 0x%04x, val 0x%08x"
usb_uhci_queue_add(uint32_t token) "token 0x%x"
usb_uhci_queue_del(uint32_t token, const char *reason) "token 0x%x: %s"
usb_uhci_packet_add(uint32_t token, uint32_t addr) "token 0x%x, td 0x%x"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录