2.4.10 Lombard IDE fix (was: Re: ide disk no longer found (rsync-benh))

Michael Schmitz schmitz at opal.biophys.uni-duesseldorf.de
Sat Sep 29 05:23:57 EST 2001


On Fri, 28 Sep 2001, Michael Schmitz wrote:

> > I'd place my bet on some voodoo in the generic IDE mess that changed.
>
> Actually I take that back. hda and hdb are probed but found not present.
> Seems ide0 doesn't get enabled properly ...

Patch to apply a quick fix for this, use at your own risk etc., don't
yell at me if it doesn't work:

--- arch/ppc/kernel/pmac_feature.c.org	Fri Sep 28 23:02:14 2001
+++ arch/ppc/kernel/pmac_feature.c	Fri Sep 28 23:01:42 2001
@@ -179,9 +179,10 @@
 	struct macio_chip*	macio;
 	unsigned long		flags;

-	macio = macio_find(node, macio_ohare);
+	macio = macio_find(node, type);
 	if (!macio)
 		return -ENODEV;
+
 	LOCK(flags);
 	if (value)
 		MACIO_BIS(reg, mask);
@@ -423,10 +424,10 @@
 {
 	switch(param) {
 	    case 0:
-		return simple_feature_tweak(node, macio_ohare,
+		return simple_feature_tweak(node, macio_unknown,
 			HEATHROW_FCR, HRW_IDE0_ENABLE, value);
 	    case 1:
-		return simple_feature_tweak(node, macio_ohare,
+		return simple_feature_tweak(node, macio_unknown,
 			HEATHROW_FCR, HRW_BAY_IDE_ENABLE, value);
 	    default:
 	    	return -ENODEV;
@@ -438,10 +439,10 @@
 {
 	switch(param) {
 	    case 0:
-		return simple_feature_tweak(node, macio_ohare,
+		return simple_feature_tweak(node, macio_unknown,
 			HEATHROW_FCR, HRW_IDE0_RESET_N, !value);
 	    case 1:
-		return simple_feature_tweak(node, macio_ohare,
+		return simple_feature_tweak(node, macio_unknown,
 			HEATHROW_FCR, HRW_IDE1_RESET_N, !value);
 	    default:
 	    	return -ENODEV;

Comments: simple_feature_tweak shouldn't ignore the type argument it got
passed. And requesting macio_unknown in the heathrow IDE functions is just
a hack really, to make macio_find not care about the particular chip
type. The Lombard would need macio_paddington, true heathrow based
machines will need macio_heathrow here.

macio_find either needs to check for compatible types, or we need to add
another set of paddington specific functions that use macio_paddington
instead of macio_ohare above (though I guess macio_ohare won't work on
heathrow either?). Kind of defeats the whole abstraction purpose.

Leave it to BenH or Paulus to find a proper fix for this. I could test
this on Lombard only, no idea what macio type the Wallstreet uses.

	Michael


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list