[U-Boot] [PATCH v2 08/10] split AU1X00 specific code from cmd_ide.c
Pavel Herrmann
morpheus.ibis at gmail.com
Tue Oct 9 19:10:08 CEST 2012
move special case of ide_swap_read() for AU1X00 SoC into SoC-specific directory.
Signed-off-by: Pavel Herrmann <morpheus.ibis at gmail.com>
---
Changes for v2:
rebase on top of next
include missing <common.h> to fix compilation
arch/mips/cpu/mips32/au1x00/Makefile | 2 +-
arch/mips/cpu/mips32/au1x00/au1x00_ide.c | 32 ++++++++++++++++++++++++++++++++
common/cmd_ide.c | 5 ++---
3 files changed, 35 insertions(+), 4 deletions(-)
create mode 100644 arch/mips/cpu/mips32/au1x00/au1x00_ide.c
diff --git a/arch/mips/cpu/mips32/au1x00/Makefile b/arch/mips/cpu/mips32/au1x00/Makefile
index dc58475..b9f895d 100644
--- a/arch/mips/cpu/mips32/au1x00/Makefile
+++ b/arch/mips/cpu/mips32/au1x00/Makefile
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(SOC).o
-COBJS = au1x00_eth.o au1x00_serial.o au1x00_usb_ohci.o
+COBJS = au1x00_eth.o au1x00_serial.o au1x00_usb_ohci.o au1x00_ide.o
SRCS := $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
diff --git a/arch/mips/cpu/mips32/au1x00/au1x00_ide.c b/arch/mips/cpu/mips32/au1x00/au1x00_ide.c
new file mode 100644
index 0000000..932cdfb
--- /dev/null
+++ b/arch/mips/cpu/mips32/au1x00/au1x00_ide.c
@@ -0,0 +1,32 @@
+/*
+ * (C) Copyright 2000-2011
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ */
+
+#include <common.h>
+#include <ide.h>
+
+/* AU1X00 swaps data in big-endian mode, enforce little-endian function */
+void ide_input_swap_data(int dev, ulong *sect_buf, int words)
+{
+ ide_input_data(dev, sect_buf, words);
+}
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index 7eb19cf..5b46e3c 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -503,8 +503,7 @@ void ide_output_data(int dev, const ulong *sect_buf, int words)
__attribute__ ((weak, alias("__ide_output_data")));
/* We only need to swap data if we are running on a big endian cpu. */
-/* But Au1x00 cpu:s already swaps data in big endian mode! */
-#if defined(__LITTLE_ENDIAN) || defined(CONFIG_SOC_AU1X00)
+#if defined(__LITTLE_ENDIAN)
void __ide_input_swap_data(int dev, ulong *sect_buf, int words)
{
ide_input_data(dev, sect_buf, words);
@@ -532,7 +531,7 @@ void __ide_input_swap_data(int dev, ulong *sect_buf, int words)
#endif /* !MIPS */
}
}
-#endif /* __LITTLE_ENDIAN || CONFIG_AU1X00 */
+#endif /* __LITTLE_ENDIAN */
#if defined(CONFIG_IDE_SWAP_IO)
--
1.7.12
More information about the U-Boot
mailing list