aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/bugfix/m68k/141-ide.diff
blob: b4537dc693a341234b406555948e09aac09e60e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
To: linus, alan
Cc: lkml
Subject: [PATCH] M68k IDE updates

From: Linux/m68k legacy

M68k IDE updates: Add m68k-isms to the generic ide_fix_driveid()

---
 drivers/ide/ide-iops.c |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

--- linux-m68k-2.6.21.orig/drivers/ide/ide-iops.c
+++ linux-m68k-2.6.21/drivers/ide/ide-iops.c
@@ -313,6 +313,23 @@ void ide_fix_driveid (struct hd_driveid 
 	int i;
 	u16 *stringcast;
 
+#ifdef __mc68000__
+	if (!MACH_IS_AMIGA && !MACH_IS_MAC && !MACH_IS_Q40 && !MACH_IS_ATARI)
+		return;
+
+#ifdef M68K_IDE_SWAPW
+	if (M68K_IDE_SWAPW) {	/* fix bus byteorder first */
+		u_char *p = (u_char *)id;
+		u_char t;
+		for (i = 0; i < 512; i += 2) {
+			t = p[i];
+			p[i] = p[i+1];
+			p[i+1] = t;
+		}
+	}
+#endif
+#endif /* __mc68000__ */
+
 	id->config         = __le16_to_cpu(id->config);
 	id->cyls           = __le16_to_cpu(id->cyls);
 	id->reserved2      = __le16_to_cpu(id->reserved2);