提交 0a9972ba 编写于 作者: S Stefan Richter

firewire: fix async reception on big endian machines

descriptor.data_address is little endian
Tested-by: NOlaf Hering <olh@suse.de>
Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: NKristian Høgsberg <krh@redhat.com>
上级 0471448f
......@@ -373,8 +373,8 @@ static void ar_context_tasklet(unsigned long data)
offset = offsetof(struct ar_buffer, data);
dma_unmap_single(ohci->card.device,
ab->descriptor.data_address - offset,
PAGE_SIZE, DMA_BIDIRECTIONAL);
le32_to_cpu(ab->descriptor.data_address) - offset,
PAGE_SIZE, DMA_BIDIRECTIONAL);
buffer = ab;
ab = ab->next;
......@@ -427,7 +427,7 @@ static void ar_context_run(struct ar_context *ctx)
size_t offset;
offset = offsetof(struct ar_buffer, data);
ab_bus = ab->descriptor.data_address - offset;
ab_bus = le32_to_cpu(ab->descriptor.data_address) - offset;
reg_write(ctx->ohci, COMMAND_PTR(ctx->regs), ab_bus | 1);
reg_write(ctx->ohci, CONTROL_SET(ctx->regs), CONTEXT_RUN);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册