提交 3a130f4e 编写于 作者: A Avi Kivity 提交者: Anthony Liguori

memory: crack wide ioport accesses into smaller ones when needed

The memory API supports cracking wide accesses into narrower ones
when needed; but this was no implemented for the pio address space,
causing lsi53c895a's IO BAR to malfunction.

Fix by correctly cracking wide accesses when needed.
Signed-off-by: NAvi Kivity <avi@redhat.com>
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 164a4dcd
......@@ -400,7 +400,11 @@ static void memory_region_iorange_read(IORange *iorange,
}
return;
}
*data = mr->ops->read(mr->opaque, offset, width);
*data = 0;
access_with_adjusted_size(offset, data, width,
mr->ops->impl.min_access_size,
mr->ops->impl.max_access_size,
memory_region_read_accessor, mr);
}
static void memory_region_iorange_write(IORange *iorange,
......@@ -418,7 +422,10 @@ static void memory_region_iorange_write(IORange *iorange,
}
return;
}
mr->ops->write(mr->opaque, offset, data, width);
access_with_adjusted_size(offset, &data, width,
mr->ops->impl.min_access_size,
mr->ops->impl.max_access_size,
memory_region_write_accessor, mr);
}
static const IORangeOps memory_region_iorange_ops = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册