Procházet zdrojové kódy

fix hardware byte swapping to work in little endian mode as well

SVN-Revision: 7712
Gabor Juhos před 18 roky
rodič
revize
0b1fdf1ad8

+ 2 - 2
target/linux/adm5120-2.6/files/arch/mips/adm5120/adm5120_info.c

@@ -904,12 +904,12 @@ void __init adm5120_swab_test(void)
 	u32	t1,t2;
 
 	t1 = 0x1234;
-	t2 = swab16(t1);
+	t2 = __arch__swab16(t1);
 	printk("hardware swab16 test %s, data:0x%04X, result:0x%04X\n",
 		(t2 == 0x3412) ? "passed" :"failed", t1, t2);
 
 	t1 = 0x12345678;
-	t2 = swab32(t1);
+	t2 = __arch__swab32(t1);
 	printk("hardware swab32 test %s, data:0x%08X, result:0x%08X\n",
 		(t2 == 0x78563412) ? "passed" :"failed", t1, t2);
 

+ 1 - 1
target/linux/adm5120-2.6/patches/008-adm5120_hardware_swab.patch

@@ -9,7 +9,7 @@
 +static __inline__ __attribute_const__ __u16 ___adm5120__swab16(__u16 x)
 +{
 +	__asm__ (
-+	"	sw	%2, 0xC8(%1)			\n"
++	"	sh	%2, 0xCA(%1)			\n"
 +	"	lhu	%0, 0xCC(%1)			\n"
 +	: "=r" (x)
 +	: "r" (0xB2000000), "r" (x));