dwc_ahsata: return failure for MX6 if not IMX6Q/IMX6D
authorTim Harvey <tharvey@gateworks.com>
Thu, 8 May 2014 05:23:35 +0000 (22:23 -0700)
committerStefano Babic <sbabic@denx.de>
Fri, 6 Jun 2014 08:14:07 +0000 (10:14 +0200)
The IMX6QUAD/DUAL have SATA, but the IMX6SOLO/DL do not. Return failure
instead of attempting a memory access that results in a data abort and reset.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
drivers/block/dwc_ahsata.c

index 3569214297a1ab6aec580e744d042ed8146ed371..15d65d77f3a180262691b20b9bfa8d915b346866 100644 (file)
@@ -17,6 +17,7 @@
 #include <asm/io.h>
 #include <linux/bitops.h>
 #include <asm/arch/clock.h>
+#include <asm/arch/sys_proto.h>
 #include "dwc_ahsata.h"
 
 struct sata_port_regs {
@@ -558,6 +559,10 @@ int init_sata(int dev)
        u32 linkmap;
        struct ahci_probe_ent *probe_ent = NULL;
 
+#if defined(CONFIG_MX6)
+       if (!is_cpu_type(MXC_CPU_MX6Q) && !is_cpu_type(MXC_CPU_MX6D))
+               return 1;
+#endif
        if (dev < 0 || dev > (CONFIG_SYS_SATA_MAX_DEVICE - 1)) {
                printf("The sata index %d is out of ranges\n\r", dev);
                return -1;