patch-2.4.22 linux-2.4.22/arch/ppc/platforms/pmac_feature.c

Next file: linux-2.4.22/arch/ppc/platforms/pmac_nvram.c
Previous file: linux-2.4.22/arch/ppc/platforms/pmac_backlight.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.21/arch/ppc/platforms/pmac_feature.c linux-2.4.22/arch/ppc/platforms/pmac_feature.c
@@ -8,9 +8,9 @@
  *  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.
- *  
- *  TODO: 
- *  
+ *
+ *  TODO:
+ *
  *   - Replace mdelay with some schedule loop if possible
  *   - Shorten some obfuscated delays on some routines (like modem
  *     power)
@@ -66,7 +66,7 @@
 /*
  * Helper functions regarding the various flavors of mac-io
  */
- 
+
 #define MAX_MACIO_CHIPS		2
 
 enum {
@@ -82,7 +82,7 @@
 	macio_intrepid,
 };
 
-static const char* macio_names[] __pmacdata = 
+static const char* macio_names[] __pmacdata =
 {
 	"Unknown",
 	"Grand Central",
@@ -116,7 +116,7 @@
 {
 	while(child) {
 		int	i;
-	
+
 		for (i=0; i < MAX_MACIO_CHIPS && macio_chips[i].of_node; i++)
 			if (child == macio_chips[i].of_node &&
 			    (!type || macio_chips[i].type == type))
@@ -139,7 +139,7 @@
 /*
  * Uninorth reg. access. Note that Uni-N regs are big endian
  */
- 
+
 #define UN_REG(r)	(uninorth_base + ((r) >> 2))
 #define UN_IN(r)	(in_be32(UN_REG(r)))
 #define UN_OUT(r,v)	(out_be32(UN_REG(r), (v)))
@@ -159,7 +159,7 @@
 typedef int (*feature_call)(struct device_node* node, int param, int value);
 
 struct feature_table_entry {
-	unsigned int	selector;	
+	unsigned int	selector;
 	feature_call	function;
 };
 
@@ -182,7 +182,7 @@
 {
 	struct macio_chip*	macio;
 	unsigned long		flags;
-	
+
 	macio = macio_find(node, type);
 	if (!macio)
 		return -ENODEV;
@@ -206,7 +206,7 @@
 	unsigned long		flags;
 	int			htw, trans;
 	unsigned long		rmask;
-	
+
 	macio = macio_find(node, 0);
 	if (!macio)
 		return -ENODEV;
@@ -226,7 +226,7 @@
 #ifdef CONFIG_ADB_PMU
 		if ((param & 0xfff) == PMAC_SCC_IRDA)
 			pmu_enable_irled(1);
-#endif /* CONFIG_ADB_PMU */		
+#endif /* CONFIG_ADB_PMU */
 		LOCK(flags);
 		fcr = MACIO_IN32(OHARE_FCR);
 		/* Check if scc cell need enabling */
@@ -285,7 +285,7 @@
 #ifdef CONFIG_ADB_PMU
 		if ((param & 0xfff) == PMAC_SCC_IRDA)
 			pmu_enable_irled(0);
-#endif /* CONFIG_ADB_PMU */		
+#endif /* CONFIG_ADB_PMU */
 	}
 	return 0;
 }
@@ -352,7 +352,7 @@
 	} else if (value == 0) {
 		MACIO_BIS(OHARE_FCR, OH_IOBUS_ENABLE);
 	}
-	
+
 	return 0;
 }
 
@@ -362,7 +362,7 @@
 	struct macio_chip*	macio;
 	u8			gpio;
 	unsigned long		flags;
-	
+
 	macio = macio_find(node, macio_unknown);
 	if (!macio)
 		return -ENODEV;
@@ -414,7 +414,7 @@
 {
 	struct macio_chip*	macio;
 	unsigned long		flags;
-	
+
 	macio = macio_find(node, macio_unknown);
 	if (!macio)
 		return -ENODEV;
@@ -441,7 +441,7 @@
 		MACIO_BIC(HEATHROW_MBCR, 0x00040000);
 	else
 		MACIO_BIS(HEATHROW_MBCR, 0x00040000);
-#endif		
+#endif
 	(void)MACIO_IN32(HEATHROW_MBCR);
 	udelay(10);
 	UNLOCK(flags);
@@ -484,7 +484,7 @@
 {
 	struct macio_chip*	macio;
 	unsigned long		flags;
-	
+
 	macio = macio_find(node, 0);
 	if (!macio)
 		return -ENODEV;
@@ -520,7 +520,7 @@
 	if (pmac_mb.model_id == PMAC_TYPE_YOSEMITE ||
 	    pmac_mb.model_id == PMAC_TYPE_YIKES)
 		return 0;
-	
+
 	macio = macio_find(node, 0);
 	if (!macio)
 		return -ENODEV;
@@ -552,7 +552,7 @@
 dbdma_save(struct macio_chip* macio, struct dbdma_regs* save)
 {
 	int i;
-	
+
 	/* Save state & config of DBDMA channels */
 	for (i=0; i<13; i++) {
 		volatile struct dbdma_regs* chan = (volatile struct dbdma_regs*)
@@ -569,7 +569,7 @@
 dbdma_restore(struct macio_chip* macio, struct dbdma_regs* save)
 {
 	int i;
-	
+
 	/* Save state & config of DBDMA channels */
 	for (i=0; i<13; i++) {
 		volatile struct dbdma_regs* chan = (volatile struct dbdma_regs*)
@@ -668,7 +668,7 @@
 	unsigned long		flags;
 	unsigned long		chan_mask;
 	u32			fcr;
-	
+
 	macio = macio_find(node, 0);
 	if (!macio)
 		return -ENODEV;
@@ -682,7 +682,7 @@
 	if (value) {
 		int need_reset_scc = 0;
 		int need_reset_irda = 0;
-		
+
 		LOCK(flags);
 		fcr = MACIO_IN32(KEYLARGO_FCR0);
 		/* Check if scc cell need enabling */
@@ -770,7 +770,7 @@
 	unsigned long		flags;
 
 	/* Hack for internal USB modem */
-	if (node == NULL) {	
+	if (node == NULL) {
 		if (macio_chips[0].type != macio_keylargo)
 			return -ENODEV;
 		node = macio_chips[0].of_node;
@@ -781,7 +781,7 @@
 	gpio = MACIO_IN8(KL_GPIO_MODEM_RESET);
 	gpio |= KEYLARGO_GPIO_OUTPUT_ENABLE;
 	gpio &= ~KEYLARGO_GPIO_OUTOUT_DATA;
-	
+
 	if (!value) {
 		LOCK(flags);
 		MACIO_OUT8(KL_GPIO_MODEM_RESET, gpio);
@@ -820,9 +820,9 @@
 	struct macio_chip*	macio;
 	u8			gpio;
 	unsigned long		flags;
-	
+
 	/* Hack for internal USB modem */
-	if (node == NULL) {	
+	if (node == NULL) {
 		if (macio_chips[0].type != macio_pangea &&
 		    macio_chips[0].type != macio_intrepid)
 			return -ENODEV;
@@ -834,7 +834,7 @@
 	gpio = MACIO_IN8(KL_GPIO_MODEM_RESET);
 	gpio |= KEYLARGO_GPIO_OUTPUT_ENABLE;
 	gpio &= ~KEYLARGO_GPIO_OUTOUT_DATA;
-	
+
 	if (!value) {
 		LOCK(flags);
 		MACIO_OUT8(KL_GPIO_MODEM_RESET, gpio);
@@ -962,7 +962,7 @@
 {
 	unsigned long flags;
 	struct macio_chip* macio;
-	
+
 	macio = &macio_chips[0];
 	if (macio->type != macio_keylargo && macio->type != macio_pangea &&
 	    macio->type != macio_intrepid)
@@ -987,7 +987,7 @@
 {
 	struct macio_chip*	macio;
 	unsigned long		flags;
-	
+
 	macio = macio_find(node, 0);
 	if (!macio)
 		return -ENODEV;
@@ -1018,11 +1018,11 @@
 	struct macio_chip*	macio;
 	unsigned long		flags;
 	int			state;
-	
+
 	macio = macio_find(node, 0);
 	if (!macio)
 		return -ENODEV;
-	
+
 	/* Hint: we allow passing of macio itself for the sake of the
 	 * sleep code
 	 */
@@ -1110,11 +1110,11 @@
 						KL_GPIO_RESET_CPU1,
 						KL_GPIO_RESET_CPU2,
 						KL_GPIO_RESET_CPU3 };
-	
+
 	macio = &macio_chips[0];
 	if (macio->type != macio_keylargo)
 		return -ENODEV;
-		
+
 	np = find_path_device("/cpus");
 	if (np == NULL)
 		return -ENODEV;
@@ -1130,7 +1130,7 @@
 	}
 	if (np == NULL || reset_io == 0)
 		reset_io = dflt_reset_lines[param];
-	
+
 	LOCK(flags);
 	MACIO_OUT8(reset_io, KEYLARGO_GPIO_OUTPUT_ENABLE);
 	(void)MACIO_IN8(reset_io);
@@ -1151,15 +1151,12 @@
 	char* prop;
 	int number;
 	u32 reg;
-	
+
 	macio = &macio_chips[0];
 	if (macio->type != macio_keylargo && macio->type != macio_pangea &&
 	    macio->type != macio_intrepid)
 		return -ENODEV;
 
-	/* XXX Fix handling of 3rd USB controller in Intrepid, move the
-	 * port connect stuff (KL4_*) to the sleep code eventually
-	 */
 	prop = (char *)get_property(node, "AAPL,clock-id", NULL);
 	if (!prop)
 		return -ENODEV;
@@ -1167,6 +1164,8 @@
 		number = 0;
 	else if (strncmp(prop, "usb1u148", 8) == 0)
 		number = 2;
+	else if (strncmp(prop, "usb2u248", 8) == 0)
+		number = 4;
 	else
 		return -ENODEV;
 
@@ -1183,44 +1182,79 @@
 			mdelay(1);
 			LOCK(flags);
 			MACIO_BIS(KEYLARGO_FCR0, KL0_USB0_CELL_ENABLE);
-		} else {
+		} else if (number == 2) {
 			MACIO_BIC(KEYLARGO_FCR0, (KL0_USB1_PAD_SUSPEND0 | KL0_USB1_PAD_SUSPEND1));
 			UNLOCK(flags);
 			(void)MACIO_IN32(KEYLARGO_FCR0);
 			mdelay(1);
 			LOCK(flags);
 			MACIO_BIS(KEYLARGO_FCR0, KL0_USB1_CELL_ENABLE);
+		} else if (number == 4) {
+			MACIO_BIC(KEYLARGO_FCR1, (KL1_USB2_PAD_SUSPEND0 | KL1_USB2_PAD_SUSPEND1));
+			UNLOCK(flags);
+			(void)MACIO_IN32(KEYLARGO_FCR1);
+			mdelay(1);
+			LOCK(flags);
+			MACIO_BIS(KEYLARGO_FCR0, KL1_USB2_CELL_ENABLE);
+		}
+		if (number < 4) {
+			reg = MACIO_IN32(KEYLARGO_FCR4);
+			reg &=	~(KL4_PORT_WAKEUP_ENABLE(number) | KL4_PORT_RESUME_WAKE_EN(number) |
+				KL4_PORT_CONNECT_WAKE_EN(number) | KL4_PORT_DISCONNECT_WAKE_EN(number));
+			reg &=	~(KL4_PORT_WAKEUP_ENABLE(number+1) | KL4_PORT_RESUME_WAKE_EN(number+1) |
+				KL4_PORT_CONNECT_WAKE_EN(number+1) | KL4_PORT_DISCONNECT_WAKE_EN(number+1));
+			MACIO_OUT32(KEYLARGO_FCR4, reg);
+			(void)MACIO_IN32(KEYLARGO_FCR4);
+			udelay(10);
+		} else {
+			reg = MACIO_IN32(KEYLARGO_FCR3);
+			reg &=	~(KL3_IT_PORT_WAKEUP_ENABLE(0) | KL3_IT_PORT_RESUME_WAKE_EN(0) |
+				KL3_IT_PORT_CONNECT_WAKE_EN(0) | KL3_IT_PORT_DISCONNECT_WAKE_EN(0));
+			reg &=	~(KL3_IT_PORT_WAKEUP_ENABLE(1) | KL3_IT_PORT_RESUME_WAKE_EN(1) |
+				KL3_IT_PORT_CONNECT_WAKE_EN(1) | KL3_IT_PORT_DISCONNECT_WAKE_EN(1));
+			MACIO_OUT32(KEYLARGO_FCR3, reg);
+			(void)MACIO_IN32(KEYLARGO_FCR3);
+			udelay(10);
 		}
-		reg = MACIO_IN32(KEYLARGO_FCR4);
-		reg &=	~(KL4_PORT_WAKEUP_ENABLE(number) | KL4_PORT_RESUME_WAKE_EN(number) |
-			KL4_PORT_CONNECT_WAKE_EN(number) | KL4_PORT_DISCONNECT_WAKE_EN(number));
-		reg &=	~(KL4_PORT_WAKEUP_ENABLE(number+1) | KL4_PORT_RESUME_WAKE_EN(number+1) |
-			KL4_PORT_CONNECT_WAKE_EN(number+1) | KL4_PORT_DISCONNECT_WAKE_EN(number+1));
-		MACIO_OUT32(KEYLARGO_FCR4, reg);
-		(void)MACIO_IN32(KEYLARGO_FCR4);
-		udelay(10);
 	} else {
 		/* Turn OFF */
-		reg = MACIO_IN32(KEYLARGO_FCR4);
-		reg |=	KL4_PORT_WAKEUP_ENABLE(number) | KL4_PORT_RESUME_WAKE_EN(number) |
-			KL4_PORT_CONNECT_WAKE_EN(number) | KL4_PORT_DISCONNECT_WAKE_EN(number);
-		reg |=	KL4_PORT_WAKEUP_ENABLE(number+1) | KL4_PORT_RESUME_WAKE_EN(number+1) |
-			KL4_PORT_CONNECT_WAKE_EN(number+1) | KL4_PORT_DISCONNECT_WAKE_EN(number+1);
-		MACIO_OUT32(KEYLARGO_FCR4, reg);
-		(void)MACIO_IN32(KEYLARGO_FCR4);
-		udelay(1);
+		if (number < 4) {
+			reg = MACIO_IN32(KEYLARGO_FCR4);
+			reg |=	KL4_PORT_WAKEUP_ENABLE(number) | KL4_PORT_RESUME_WAKE_EN(number) |
+				KL4_PORT_CONNECT_WAKE_EN(number) | KL4_PORT_DISCONNECT_WAKE_EN(number);
+			reg |=	KL4_PORT_WAKEUP_ENABLE(number+1) | KL4_PORT_RESUME_WAKE_EN(number+1) |
+				KL4_PORT_CONNECT_WAKE_EN(number+1) | KL4_PORT_DISCONNECT_WAKE_EN(number+1);
+			MACIO_OUT32(KEYLARGO_FCR4, reg);
+			(void)MACIO_IN32(KEYLARGO_FCR4);
+			udelay(1);
+		} else {
+			reg = MACIO_IN32(KEYLARGO_FCR3);
+			reg |=	KL3_IT_PORT_WAKEUP_ENABLE(0) | KL3_IT_PORT_RESUME_WAKE_EN(0) |
+				KL3_IT_PORT_CONNECT_WAKE_EN(0) | KL3_IT_PORT_DISCONNECT_WAKE_EN(0);
+			reg |=	KL3_IT_PORT_WAKEUP_ENABLE(1) | KL3_IT_PORT_RESUME_WAKE_EN(1) |
+				KL3_IT_PORT_CONNECT_WAKE_EN(1) | KL3_IT_PORT_DISCONNECT_WAKE_EN(1);
+			MACIO_OUT32(KEYLARGO_FCR3, reg);
+			(void)MACIO_IN32(KEYLARGO_FCR3);
+			udelay(1);
+		}
 		if (number == 0) {
 			MACIO_BIC(KEYLARGO_FCR0, KL0_USB0_CELL_ENABLE);
 			(void)MACIO_IN32(KEYLARGO_FCR0);
 			udelay(1);
 			MACIO_BIS(KEYLARGO_FCR0, (KL0_USB0_PAD_SUSPEND0 | KL0_USB0_PAD_SUSPEND1));
 			(void)MACIO_IN32(KEYLARGO_FCR0);
-		} else {
+		} else if (number == 2) {
 			MACIO_BIC(KEYLARGO_FCR0, KL0_USB1_CELL_ENABLE);
 			(void)MACIO_IN32(KEYLARGO_FCR0);
 			udelay(1);
 			MACIO_BIS(KEYLARGO_FCR0, (KL0_USB1_PAD_SUSPEND0 | KL0_USB1_PAD_SUSPEND1));
 			(void)MACIO_IN32(KEYLARGO_FCR0);
+		} else if (number == 4) {
+			MACIO_BIC(KEYLARGO_FCR1, KL1_USB2_CELL_ENABLE);
+			(void)MACIO_IN32(KEYLARGO_FCR1);
+			udelay(1);
+			MACIO_BIS(KEYLARGO_FCR1, (KL1_USB2_PAD_SUSPEND0 | KL1_USB2_PAD_SUSPEND1));
+			(void)MACIO_IN32(KEYLARGO_FCR1);
 		}
 		udelay(1);
 	}
@@ -1241,7 +1275,7 @@
 		return -ENODEV;
 	if (!(macio->flags & MACIO_FLAG_FW_SUPPORTED))
 		return -ENODEV;
-	
+
 	LOCK(flags);
 	if (value) {
 		UN_BIS(UNI_N_CLOCK_CNTL, UNI_N_CLOCK_CNTL_FW);
@@ -1271,7 +1305,7 @@
 		return -ENODEV;
 	if (!(macio->flags & MACIO_FLAG_FW_SUPPORTED))
 		return -ENODEV;
-	
+
 	LOCK(flags);
 	if (value) {
 		MACIO_OUT8(KL_GPIO_FW_CABLE_POWER , 0);
@@ -1291,7 +1325,7 @@
 core99_read_gpio(struct device_node* node, int param, int value)
 {
 	struct macio_chip* macio = &macio_chips[0];
-	
+
 	return MACIO_IN8(param);
 }
 
@@ -1321,7 +1355,7 @@
 				KL0_SCC_CELL_ENABLE |
 		      		KL0_IRDA_ENABLE | KL0_IRDA_CLK32_ENABLE |
 		      		KL0_IRDA_CLK19_ENABLE);
-	
+
 	MACIO_BIC(KEYLARGO_MBCR, KL_MBCR_MB0_DEV_MASK);
 	MACIO_BIS(KEYLARGO_MBCR, KL_MBCR_MB0_IDE_ENABLE);
 
@@ -1344,7 +1378,7 @@
 		if (sleep_mode)
 			temp |= KL3_SHUTDOWN_PLL_TOTAL;
 	}
-	
+
 	temp |= KL3_SHUTDOWN_PLLKW6 | KL3_SHUTDOWN_PLLKW4 |
 		KL3_SHUTDOWN_PLLKW35;
 	if (sleep_mode)
@@ -1379,7 +1413,7 @@
 		MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N);
 
 	MACIO_BIS(KEYLARGO_FCR2, KL2_ALT_DATA_OUT);
- 	
+ 
 	temp = MACIO_IN32(KEYLARGO_FCR3);
 	temp |= KL3_SHUTDOWN_PLLKW6 | KL3_SHUTDOWN_PLLKW4 |
 		KL3_SHUTDOWN_PLLKW35;
@@ -1411,7 +1445,7 @@
 		MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N);
 
 	MACIO_BIS(KEYLARGO_FCR2, KL2_ALT_DATA_OUT);
- 	
+ 
 	temp = MACIO_IN32(KEYLARGO_FCR3);
 	temp |= KL3_IT_SHUTDOWN_PLL1 | KL3_IT_SHUTDOWN_PLL2 |
 		KL3_IT_SHUTDOWN_PLL3;
@@ -1435,7 +1469,7 @@
 	if (macio->type != macio_keylargo && macio->type != macio_pangea &&
 	    macio->type != macio_intrepid)
 		return -ENODEV;
-	
+
 	/* We power off the wireless slot in case it was not done
 	 * by the driver. We don't power it on automatically however
 	 */
@@ -1456,7 +1490,7 @@
 
 	/* We make sure the sound is off as well */
 	core99_sound_chip_enable(macio->of_node, 0, 0);
-	 
+
 	/*
 	 * Save various bits of KeyLargo
 	 */
@@ -1482,7 +1516,7 @@
 
 	/* Save state & config of DBDMA channels */
 	dbdma_save(macio, save_dbdma);
-	
+
 	/*
 	 * Turn off as much as we can
 	 */
@@ -1492,8 +1526,8 @@
 		intrepid_shutdown(macio, 1);
 	else if (macio->type == macio_keylargo)
 		keylargo_shutdown(macio, 1);
-	
-	/* 
+
+	/*
 	 * Put the host bridge to sleep
 	 */
 
@@ -1532,7 +1566,7 @@
 	udelay(10);
 	UN_OUT(UNI_N_HWINIT_STATE, UNI_N_HWINIT_STATE_RUNNING);
 	udelay(10);
-	
+
 	/*
 	 * Restore KeyLargo
 	 */
@@ -1612,7 +1646,7 @@
 			return pmac_mb.model_id;
 		case PMAC_MB_INFO_FLAGS:
 			return pmac_mb.board_flags;
-		case PMAC_MB_INFO_NAME:	
+		case PMAC_MB_INFO_NAME:
 			/* hack hack hack... but should work */
 			*((const char **)value) = pmac_mb.model_name;
 			break;
@@ -1620,10 +1654,10 @@
 	return 0;
 }
 
-/* 
+/*
  * Table definitions
  */
- 
+
 /* Used on any machine
  */
 static struct feature_table_entry any_features[]  __pmacdata = {
@@ -1775,7 +1809,7 @@
 	{ PMAC_FTR_WRITE_GPIO,		core99_write_gpio },
 	{ 0, NULL }
 };
-	
+
 static struct pmac_mb_def pmac_mb_defs[] __pmacdata = {
 	/* Warning: ordering is important as some models may claim
 	 * beeing compatible with several types
@@ -1928,10 +1962,22 @@
 		PMAC_TYPE_RACKMAC,		rackmac_features,
 		0,
 	},
+	{	"RackMac1,2",			"XServe rev. 2",
+		PMAC_TYPE_RACKMAC,		rackmac_features,
+		0,
+	},
 	{	"PowerMac3,6",			"PowerMac G4 Windtunnel",
 		PMAC_TYPE_WINDTUNNEL,		rackmac_features,
 		0,
 	},
+	{	"PowerBook5,1",			"PowerBook G4 17\"",
+		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,
+		PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
+	},
+	{	"PowerBook6,1",			"PowerBook G4 12\"",
+		PMAC_TYPE_UNKNOWN_INTREPID,	intrepid_features,
+		PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
+	},
 };
 
 /*
@@ -1944,7 +1990,7 @@
 	int param, value, i;
 	feature_call func = NULL;
 	va_list args;
-	
+
 	if (pmac_mb.features)
 		for (i=0; pmac_mb.features[i].function; i++)
 			if (pmac_mb.features[i].selector == selector) {
@@ -1976,7 +2022,7 @@
 	struct macio_chip* macio = &macio_chips[0];
 	const char* model = NULL;
 	struct device_node *dt;
-	
+
 	/* Lookup known motherboard type in device-tree. First try an
 	 * exact match on the "model" property, then try a "compatible"
 	 * match is none is found.
@@ -2028,8 +2074,8 @@
 	    	pmac_mb.features = pangea_features;
 		break;
 	    case macio_intrepid:
-		pmac_mb.model_id = PMAC_TYPE_UNKNOWN_PANGEA;
-		pmac_mb.model_name = "Unknown Pangea-based";
+		pmac_mb.model_id = PMAC_TYPE_UNKNOWN_INTREPID;
+		pmac_mb.model_name = "Unknown Intrepid-based";
 	    	pmac_mb.features = intrepid_features;
 	    	break;
 	    default:
@@ -2083,8 +2129,8 @@
 	if (model && (strncmp(model, "PowerBook", 9) == 0
 		   || strncmp(model, "iBook", 5) == 0))
 		pmac_mb.board_flags |= PMAC_MB_MOBILE;
-	
-	
+
+
 	printk(KERN_INFO "PowerMac motherboard: %s\n", pmac_mb.model_name);
 	return 0;
 }
@@ -2095,7 +2141,7 @@
 probe_uninorth(void)
 {
 	unsigned long actrl;
-	
+
 	/* Locate core99 Uni-N */
 	uninorth_node = find_devices("uni-n");
 	if (uninorth_node && uninorth_node->n_addrs > 0) {
@@ -2103,10 +2149,10 @@
 		uninorth_rev = in_be32(UN_REG(UNI_N_VERSION));
 	} else
 		uninorth_node = NULL;
-		
+
 	if (!uninorth_node)
 		return;
-	
+
 	printk(KERN_INFO "Found Uninorth memory controller & host bridge, revision: %d\n",
 			uninorth_rev);
 	printk(KERN_INFO "Mapped at 0x%08lx\n", (unsigned long)uninorth_base);
@@ -2126,7 +2172,7 @@
 	 */
 	if ((uninorth_rev >= 0x11 && uninorth_rev <= 0x24) || uninorth_rev == 0xc0)
 		UN_OUT(0x2160, UN_IN(0x2160) & 0x00ffffff);
-}	
+}
 
 static void __init
 probe_one_macio(const char* name, const char* compat, int type)
@@ -2135,7 +2181,7 @@
 	int			i;
 	volatile u32*		base;
 	u32*			revp;
-	
+
 	node = find_devices(name);
 	if (!node || !node->n_addrs)
 		return;
@@ -2221,7 +2267,7 @@
 	char *conn;
 	int port_type = PMAC_SCC_ASYNC;
 	int modem = 0;
-	
+
 	slots = (struct slot_names_prop *)get_property(np, "slot-names", &len);
 	conn = get_property(np, "AAPL,connector", &len);
 	if (conn && (strcmp(conn, "infrared") == 0))
@@ -2243,7 +2289,7 @@
 set_initial_features(void)
 {
 	struct device_node* np;
-	
+
 	/* That hack appears to be necessary for some StarMax motherboards
 	 * but I'm not too sure it was audited for side-effects on other
 	 * ohare based machines...
@@ -2286,7 +2332,7 @@
 		while(np) {
 			if (np->parent
 			    && device_is_compatible(np->parent, "uni-north")
-			    && (device_is_compatible(np, "pci106b,18") || 
+			    && (device_is_compatible(np, "pci106b,18") ||
 	     		        device_is_compatible(np, "pci106b,30") ||
 	     		        device_is_compatible(np, "pci11c1,5811"))) {
 				macio_chips[0].flags |= MACIO_FLAG_FW_SUPPORTED;
@@ -2294,7 +2340,7 @@
 			}
 			np = np->next;
 		}
-		
+
 		/* Enable ATA-100 before PCI probe. */
 		np = find_devices("ata-6");
 		while(np) {
@@ -2305,7 +2351,7 @@
 			}
 			np = np->next;
 		}
-		
+
 		/* Switch airport off */
 		np = find_devices("radio");
 		while(np) {
@@ -2371,7 +2417,7 @@
 pmac_feature_late_init(void)
 {
 	struct device_node* np;
-	
+
 	/* Request some resources late */
 	if (uninorth_node)
 		request_OF_resource(uninorth_node, 0, NULL);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)