Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a9972ba authored by Stefan Richter's avatar Stefan Richter
Browse files

firewire: fix async reception on big endian machines



descriptor.data_address is little endian

Tested-by: default avatarOlaf Hering <olh@suse.de>
Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: default avatarKristian Høgsberg <krh@redhat.com>
parent 0471448f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -373,7 +373,7 @@ 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,
			le32_to_cpu(ab->descriptor.data_address) - offset,
			PAGE_SIZE, DMA_BIDIRECTIONAL);

		buffer = ab;
@@ -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);