Patchwork [2/2] ata: pata_octeon_cf: Use correct byte order for DMA in when built little-endian.

login
register
mail settings
Submitter ddaney.cavm@gmail.com
Date Aug. 17, 2012, 11:54 p.m.
Message ID <1345247673-25086-3-git-send-email-ddaney.cavm@gmail.com>
Download mbox | patch
Permalink /patch/178422/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

ddaney.cavm@gmail.com - Aug. 17, 2012, 11:54 p.m.
From: David Daney <david.daney@cavium.com>

We need to set the 'endian' bit in this case.

Signed-off-by: David Daney <david.daney@cavium.com>
---
 drivers/ata/pata_octeon_cf.c | 4 ++++
 1 file changed, 4 insertions(+)

Patch

diff --git a/drivers/ata/pata_octeon_cf.c b/drivers/ata/pata_octeon_cf.c
index 652d035..4e1194b 100644
--- a/drivers/ata/pata_octeon_cf.c
+++ b/drivers/ata/pata_octeon_cf.c
@@ -20,6 +20,7 @@ 
 #include <linux/platform_device.h>
 #include <scsi/scsi_host.h>
 
+#include <asm/byteorder.h>
 #include <asm/octeon/octeon.h>
 
 /*
@@ -589,6 +590,9 @@  static void octeon_cf_dma_start(struct ata_queued_cmd *qc)
 
 	/* Set the direction of the DMA */
 	mio_boot_dma_cfg.u64 = 0;
+#ifdef __LITTLE_ENDIAN
+	mio_boot_dma_cfg.s.endian = 1;
+#endif
 	mio_boot_dma_cfg.s.en = 1;
 	mio_boot_dma_cfg.s.rw = ((qc->tf.flags & ATA_TFLAG_WRITE) != 0);