#include <linux/interrupt.h>
#include <linux/dma-mapping.h>
+#include <asm/unaligned.h>
#include <asm/hardware/pl330.h>
/* Register and Bit field Definitions */
buf[0] = CMD_DMAADDH;
buf[0] |= (da << 1);
- *((u16 *)&buf[1]) = val;
+ put_unaligned(val, (u16 *)&buf[1]); //*((u16 *)&buf[1]) = val;
PL330_DBGCMD_DUMP(SZ_DMAADDH, "\tDMAADDH %s %u\n",
da == 1 ? "DA" : "SA", val);
buf[0] = CMD_DMAMOV;
buf[1] = dst;
- *((u32 *)&buf[2]) = val;
+ put_unaligned(val, (u32 *)&buf[2]); //*((u32 *)&buf[2]) = val;
PL330_DBGCMD_DUMP(SZ_DMAMOV, "\tDMAMOV %s 0x%x\n",
dst == SAR ? "SAR" : (dst == DAR ? "DAR" : "CCR"), val);
buf[1] = chan & 0x7;
- *((u32 *)&buf[2]) = addr;
+ put_unaligned(addr, (u32 *)&buf[2]); //*((u32 *)&buf[2]) = addr;
return SZ_DMAGO;
}