ide: Correct IDE_BUS(dev) macro
authorLuka Perkov <uboot@lukaperkov.net>
Mon, 14 May 2012 09:29:10 +0000 (09:29 +0000)
committerTom Rini <trini@ti.com>
Mon, 8 Oct 2012 18:12:08 +0000 (11:12 -0700)
The IDE_BUS(dev) macro was previously doing dev >> 1.  This however is a
mis-match of the usage in common/cmd_ide.c and would cause boards with
multiple ports / devices to not correctly detect all devices.  For more
details please see:
http://lists.denx.de/pipermail/u-boot/2012-April/122525.html

[Tom Rini: Reword commit message only]

Tested-by: Luka Perkov <uboot@lukaperkov.net>
Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
Signed-off-by: Tom Rini <trini@ti.com>
include/ide.h

index 8ecc9dd..385e909 100644 (file)
@@ -24,7 +24,7 @@
 #ifndef        _IDE_H
 #define _IDE_H
 
-#define        IDE_BUS(dev)    (dev >> 1)
+#define IDE_BUS(dev)   (dev / (CONFIG_SYS_IDE_MAXDEVICE / CONFIG_SYS_IDE_MAXBUS))
 
 #define        ATA_CURR_BASE(dev)      (CONFIG_SYS_ATA_BASE_ADDR+ide_bus_offset[IDE_BUS(dev)])