mirror of https://github.com/xqemu/xqemu.git
dbdma: Make little endian
The device is only used on big endian systems, but always byte swaps. That's a very good indicator that it's actually a little endian device ;-). Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
6bef043655
commit
0f4f039b98
|
@ -707,8 +707,6 @@ static void dbdma_writel (void *opaque,
|
||||||
DBDMA_DPRINTF("channel 0x%x reg 0x%x\n",
|
DBDMA_DPRINTF("channel 0x%x reg 0x%x\n",
|
||||||
(uint32_t)addr >> DBDMA_CHANNEL_SHIFT, reg);
|
(uint32_t)addr >> DBDMA_CHANNEL_SHIFT, reg);
|
||||||
|
|
||||||
value = bswap32(value);
|
|
||||||
|
|
||||||
/* cmdptr cannot be modified if channel is RUN or ACTIVE */
|
/* cmdptr cannot be modified if channel is RUN or ACTIVE */
|
||||||
|
|
||||||
if (reg == DBDMA_CMDPTR_LO &&
|
if (reg == DBDMA_CMDPTR_LO &&
|
||||||
|
@ -788,7 +786,6 @@ static uint32_t dbdma_readl (void *opaque, target_phys_addr_t addr)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
value = bswap32(value);
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -845,7 +842,7 @@ void* DBDMA_init (int *dbdma_mem_index)
|
||||||
s = qemu_mallocz(sizeof(DBDMA_channel) * DBDMA_CHANNELS);
|
s = qemu_mallocz(sizeof(DBDMA_channel) * DBDMA_CHANNELS);
|
||||||
|
|
||||||
*dbdma_mem_index = cpu_register_io_memory(dbdma_read, dbdma_write, s,
|
*dbdma_mem_index = cpu_register_io_memory(dbdma_read, dbdma_write, s,
|
||||||
DEVICE_NATIVE_ENDIAN);
|
DEVICE_LITTLE_ENDIAN);
|
||||||
register_savevm(NULL, "dbdma", -1, 1, dbdma_save, dbdma_load, s);
|
register_savevm(NULL, "dbdma", -1, 1, dbdma_save, dbdma_load, s);
|
||||||
qemu_register_reset(dbdma_reset, s);
|
qemu_register_reset(dbdma_reset, s);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue