diff --git a/drivers/sk98lin/h/lm80.h b/drivers/sk98lin/h/lm80.h
index 71cf191..981a4ca 100644
--- a/drivers/sk98lin/h/lm80.h
+++ b/drivers/sk98lin/h/lm80.h
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Name:	lm80.h	
+ * Name:	lm80.h
  * Project:	GEnesis, PCI Gigabit Ethernet Adapter
  * Version:	$Revision: 1.4 $
  * Date:	$Date: 2002/04/25 11:04:10 $
@@ -28,16 +28,16 @@
  *	$Log: lm80.h,v $
  *	Revision 1.4  2002/04/25 11:04:10  rschmidt
  *	Editorial changes
- *	
+ *
  *	Revision 1.3  1999/11/22 13:41:19  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.2  1999/03/12 13:26:51  malthoff
  *	remove __STDC__.
- *	
+ *
  *	Revision 1.1  1998/06/19 09:28:31  malthoff
  *	created.
- *	
+ *
  *
  ******************************************************************************/
 
diff --git a/drivers/sk98lin/h/skaddr.h b/drivers/sk98lin/h/skaddr.h
index 7f85ea7..711f873 100644
--- a/drivers/sk98lin/h/skaddr.h
+++ b/drivers/sk98lin/h/skaddr.h
@@ -28,90 +28,90 @@
  *	$Log: skaddr.h,v $
  *	Revision 1.26  2002/11/15 07:24:42  tschilli
  *	SK_ADDR_EQUAL macro fixed.
- *	
+ *
  *	Revision 1.25  2002/06/10 13:55:18  tschilli
  *	Changes for handling YUKON.
  *	All changes are internally and not visible to the programmer
  *	using this module.
- *	
+ *
  *	Revision 1.24  2001/01/22 13:41:34  rassmann
  *	Supporting two nets on dual-port adapters.
- *	
+ *
  *	Revision 1.23  2000/08/10 11:27:50  rassmann
  *	Editorial changes.
  *	Preserving 32-bit alignment in structs for the adapter context.
- *	
+ *
  *	Revision 1.22  2000/08/07 11:10:40  rassmann
  *	Editorial changes.
- *	
+ *
  *	Revision 1.21  2000/05/04 09:39:59  rassmann
  *	Editorial changes.
  *	Corrected multicast address hashing.
- *	
+ *
  *	Revision 1.20  1999/11/22 13:46:14  cgoos
  *	Changed license header to GPL.
  *	Allowing overwrite for SK_ADDR_EQUAL.
- *	
+ *
  *	Revision 1.19  1999/05/28 10:56:07  rassmann
  *	Editorial changes.
- *	
+ *
  *	Revision 1.18  1999/04/06 17:22:04  rassmann
  *	Added private "ActivePort".
- *	
+ *
  *	Revision 1.17  1999/01/14 16:18:19  rassmann
  *	Corrected multicast initialization.
- *	
+ *
  *	Revision 1.16  1999/01/04 10:30:36  rassmann
  *	SkAddrOverride only possible after SK_INIT_IO phase.
- *	
+ *
  *	Revision 1.15  1998/12/29 13:13:11  rassmann
  *	An address override is now preserved in the SK_INIT_IO phase.
  *	All functions return an int now.
  *	Extended parameter checking.
- *	
+ *
  *	Revision 1.14  1998/11/24 12:39:45  rassmann
  *	Reserved multicast entry for BPDU address.
  *	13 multicast entries left for protocol.
- *	
+ *
  *	Revision 1.13  1998/11/13 17:24:32  rassmann
  *	Changed return value of SkAddrOverride to int.
- *	
+ *
  *	Revision 1.12  1998/11/13 16:56:19  rassmann
  *	Added macro SK_ADDR_COMPARE.
  *	Changed return type of SkAddrOverride to SK_BOOL.
- *	
+ *
  *	Revision 1.11  1998/10/28 18:16:35  rassmann
  *	Avoiding I/Os before SK_INIT_RUN level.
  *	Aligning InexactFilter.
- *	
+ *
  *	Revision 1.10  1998/10/22 11:39:10  rassmann
  *	Corrected signed/unsigned mismatches.
- *	
+ *
  *	Revision 1.9  1998/10/15 15:15:49  rassmann
  *	Changed Flags Parameters from SK_U8 to int.
  *	Checked with lint.
- *	
+ *
  *	Revision 1.8  1998/09/24 19:15:12  rassmann
  *	Code cleanup.
- *	
+ *
  *	Revision 1.7  1998/09/18 20:22:13  rassmann
  *	Added HW access.
- *	
+ *
  *	Revision 1.6  1998/09/04 19:40:20  rassmann
  *	Interface enhancements.
- *	
+ *
  *	Revision 1.5  1998/09/04 12:40:57  rassmann
  *	Interface cleanup.
- *	
+ *
  *	Revision 1.4  1998/09/04 12:14:13  rassmann
  *	Interface cleanup.
- *	
+ *
  *	Revision 1.3  1998/09/02 16:56:40  rassmann
  *	Updated interface.
- *	
+ *
  *	Revision 1.2  1998/08/27 14:26:09  rassmann
  *	Updated interface.
- *	
+ *
  *	Revision 1.1  1998/08/21 08:31:08  rassmann
  *	First public version.
  *
@@ -401,7 +401,7 @@
 	SK_AC	*pAC,
 	SK_IOC	IoC,
 	SK_U32	PortNumber,
-	int	NewPromMode);	
+	int	NewPromMode);
 
 extern	int	SkAddrSwap(
 	SK_AC	*pAC,
diff --git a/drivers/sk98lin/h/skcsum.h b/drivers/sk98lin/h/skcsum.h
index b7226f1..2acae32 100644
--- a/drivers/sk98lin/h/skcsum.h
+++ b/drivers/sk98lin/h/skcsum.h
@@ -28,34 +28,34 @@
  *	$Log: skcsum.h,v $
  *	Revision 1.9  2001/02/06 11:21:39  rassmann
  *	Editorial changes.
- *	
+ *
  *	Revision 1.8  2001/02/06 11:15:36  rassmann
  *	Supporting two nets on dual-port adapters.
- *	
+ *
  *	Revision 1.7  2000/06/29 13:17:05  rassmann
  *	Corrected reception of a packet with UDP checksum == 0 (which means there
  *	is no UDP checksum).
- *	
+ *
  *	Revision 1.6  2000/02/28 12:33:44  cgoos
  *	Changed C++ style comments to C style.
- *	
+ *
  *	Revision 1.5  2000/02/21 12:10:05  cgoos
  *	Fixed license comment.
- *	
+ *
  *	Revision 1.4  2000/02/21 11:08:37  cgoos
  *	Merged changes back into common source.
- *	
+ *
  *	Revision 1.1  1999/07/26 14:47:49  mkarl
  *	changed from common source to windows specific source
  *	added return SKCS_STATUS_IP_CSUM_ERROR_UDP and
  *	SKCS_STATUS_IP_CSUM_ERROR_TCP to pass the NidsTester
  *	changes for Tx csum offload
- *	
+ *
  *	Revision 1.2  1998/09/04 12:16:34  mhaveman
  *	Checked in for Stephan to allow compilation.
  *	-Added definition SK_CSUM_EVENT_CLEAR_PROTO_STATS to clear statistic
  *	-Added prototype for SkCsEvent()
- *	
+ *
  *	Revision 1.1  1998/09/01 15:36:53  swolf
  *	initial revision
  *
@@ -130,7 +130,7 @@
  *	SKCS_STATUS_UDP_CSUM_ERROR - UDP checksum error (IP checksum ok).
  *	SKCS_STATUS_TCP_CSUM_OK - IP and TCP checksum ok.
  *	SKCS_STATUS_UDP_CSUM_OK - IP and UDP checksum ok.
- *	SKCS_STATUS_IP_CSUM_OK_NO_UDP - IP checksum OK and no UDP checksum. 
+ *	SKCS_STATUS_IP_CSUM_OK_NO_UDP - IP checksum OK and no UDP checksum.
  */
 #ifndef SKCS_OVERWRITE_STATUS	/* User overwrite? */
 #define SKCS_STATUS	int	/* Define status type. */
diff --git a/drivers/sk98lin/h/skdebug.h b/drivers/sk98lin/h/skdebug.h
index cc14e1c..cf5b5ad 100644
--- a/drivers/sk98lin/h/skdebug.h
+++ b/drivers/sk98lin/h/skdebug.h
@@ -28,42 +28,42 @@
  *	Revision 1.12  2002/07/15 15:37:13  rschmidt
  *	Power Management support
  *	Editorial changes
- *	
+ *
  *	Revision 1.11  2002/04/25 11:04:39  rschmidt
  *	Editorial changes
- *	
+ *
  *	Revision 1.10  1999/11/22 13:47:40  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.9  1999/09/14 14:02:43  rwahl
  *	Added SK_DBGMOD_PECP.
- *	
+ *
  *	Revision 1.8  1998/11/25 08:31:54  gklug
  *	fix: no C++ comments allowed in common sources
- *	
+ *
  *	Revision 1.7  1998/11/24 16:47:24  swolf
  *	Driver may now define its own SK_DBG_MSG() (eg. in "h/skdrv1st.h").
- *	
+ *
  *	Revision 1.6  1998/10/28 10:23:55  rassmann
  *	ADDED SK_DBGMOD_ADDR.
- *	
+ *
  *	Revision 1.5  1998/10/22 09:43:55  gklug
  *	add: CSUM module
- *	
+ *
  *	Revision 1.4  1998/10/01 07:54:44  gklug
  *	add: PNMI debug module
- *	
+ *
  *	Revision 1.3  1998/09/18 08:32:34  afischer
  *	Macros changed according ssr-spec.:
  *		SK_DBG_MODCHK -> SK_DBG_CHKMOD
  *		SK_DBG_CATCHK -> SK_DBG_CHKCAT
- *	
+ *
  *	Revision 1.2  1998/07/03 14:38:25  malthoff
  *	Add category SK_DBGCAT_FATAL.
- *	
+ *
  *	Revision 1.1  1998/06/19 13:39:01  malthoff
  *	created.
- *	
+ *
  *
  ******************************************************************************/
 
diff --git a/drivers/sk98lin/h/skdrv1st.h b/drivers/sk98lin/h/skdrv1st.h
index 2d49941..af34d7b 100644
--- a/drivers/sk98lin/h/skdrv1st.h
+++ b/drivers/sk98lin/h/skdrv1st.h
@@ -28,50 +28,50 @@
  *	$Log: skdrv1st.h,v $
  *	Revision 1.11  2003/02/25 14:16:40  mlindner
  *	Fix: Copyright statement
- *	
+ *
  *	Revision 1.10  2002/10/02 12:46:02  mlindner
  *	Add: Support for Yukon
- *	
+ *
  *	Revision 1.9.2.2  2001/12/07 12:06:42  mlindner
  *	Fix: malloc -> slab changes
- *	
+ *
  *	Revision 1.9.2.1  2001/03/12 16:50:59  mlindner
  *	chg: kernel 2.4 adaption
- *	
+ *
  *	Revision 1.9  2001/01/22 14:16:04  mlindner
  *	added ProcFs functionality
  *	Dual Net functionality integrated
  *	Rlmt networks added
- *	
+ *
  *	Revision 1.8  2000/02/21 12:19:18  cgoos
  *	Added default for SK_DEBUG_CHKMOD/_CHKCAT
- *	
+ *
  *	Revision 1.7  1999/11/22 13:50:00  cgoos
  *	Changed license header to GPL.
  *	Added overwrite for several functions.
  *	Removed linux 2.0.x definitions.
  *	Removed PCI vendor ID definition (now in kernel).
- *	
+ *
  *	Revision 1.6  1999/07/27 08:03:33  cgoos
  *	Changed SK_IN/OUT macros to readX/writeX instead of memory
  *	accesses (necessary for ALPHA).
- *	
+ *
  *	Revision 1.5  1999/07/23 12:10:21  cgoos
  *	Removed SK_RLMT_SLOW_LOOKAHEAD define.
- *	
+ *
  *	Revision 1.4  1999/07/14 12:31:13  cgoos
  *	Added SK_RLMT_SLOW_LOOKAHEAD define.
- *	
+ *
  *	Revision 1.3  1999/04/07 10:12:54  cgoos
  *	Added check for KERNEL and OPTIMIZATION defines.
- *	
+ *
  *	Revision 1.2  1999/03/01 08:51:47  cgoos
  *	Fixed pcibios_read/write definitions.
- *	
+ *
  *	Revision 1.1  1999/02/16 07:40:49  cgoos
  *	First version.
- *	
- *	
+ *
+ *
  *
  ******************************************************************************/
 
@@ -179,7 +179,7 @@
 
 #define	SK_MEM_MAPPED_IO
 
-// #define SK_RLMT_SLOW_LOOKAHEAD
+/* #define SK_RLMT_SLOW_LOOKAHEAD */
 
 #define SK_MAX_MACS		2
 #define SK_MAX_NETS		2
@@ -199,9 +199,9 @@
 #define SK_STRCMP(pStr1,pStr2)		strcmp((char*)(pStr1),(char*)(pStr2))
 
 /* macros to access the adapter */
-#define SK_OUT8(b,a,v)		writeb((v), ((b)+(a)))	
-#define SK_OUT16(b,a,v)		writew((v), ((b)+(a)))	
-#define SK_OUT32(b,a,v)		writel((v), ((b)+(a)))	
+#define SK_OUT8(b,a,v)		writeb((v), ((b)+(a)))
+#define SK_OUT16(b,a,v)		writew((v), ((b)+(a)))
+#define SK_OUT32(b,a,v)		writel((v), ((b)+(a)))
 #define SK_IN8(b,a,pv)		(*(pv) = readb((b)+(a)))
 #define SK_IN16(b,a,pv)		(*(pv) = readw((b)+(a)))
 #define SK_IN32(b,a,pv)		(*(pv) = readl((b)+(a)))
@@ -262,4 +262,3 @@
 extern void SkErrorLog(SK_AC*, int, int, char*);
 
 #endif
-
diff --git a/drivers/sk98lin/h/skdrv2nd.h b/drivers/sk98lin/h/skdrv2nd.h
index 6ac884b..a311827 100644
--- a/drivers/sk98lin/h/skdrv2nd.h
+++ b/drivers/sk98lin/h/skdrv2nd.h
@@ -28,19 +28,19 @@
  *	$Log: skdrv2nd.h,v $
  *	Revision 1.15  2003/02/25 14:16:40  mlindner
  *	Fix: Copyright statement
- *	
+ *
  *	Revision 1.14  2003/02/25 13:26:26  mlindner
  *	Add: Support for various vendors
- *	
+ *
  *	Revision 1.13  2002/10/02 12:46:02  mlindner
  *	Add: Support for Yukon
- *	
+ *
  *	Revision 1.12.2.2  2001/09/05 12:14:50  mlindner
  *	add: New hardware revision int
- *	
+ *
  *	Revision 1.12.2.1  2001/03/12 16:50:59  mlindner
  *	chg: kernel 2.4 adaption
- *	
+ *
  *	Revision 1.12  2001/03/01 12:52:15  mlindner
  *	Fixed ring size
  *
@@ -66,28 +66,28 @@
  *
  *	Revision 1.7  1999/09/28 12:38:21  cgoos
  *	Added CheckQueue to SK_AC.
- *	
+ *
  *	Revision 1.6  1999/07/27 08:04:05  cgoos
  *	Added checksumming variables to SK_AC.
- *	
+ *
  *	Revision 1.5  1999/03/29 12:33:26  cgoos
  *	Rreversed to fine lock granularity.
- *	
+ *
  *	Revision 1.4  1999/03/15 12:14:02  cgoos
  *	Added DriverLock to SK_AC.
  *	Removed other locks.
- *	
+ *
  *	Revision 1.3  1999/03/01 08:52:27  cgoos
  *	Changed pAC->PciDev declaration.
- *	
+ *
  *	Revision 1.2  1999/02/18 10:57:14  cgoos
  *	Removed SkDrvTimeStamp prototype.
  *	Fixed SkGeOsGetTime prototype.
- *	
+ *
  *	Revision 1.1  1999/02/16 07:41:01  cgoos
  *	First version.
- *	
- *	
+ *
+ *
  *
  ******************************************************************************/
 
@@ -126,40 +126,40 @@
     result = SK_FALSE; /* default */     \
     /* 3Com (0x10b7) */     \
     if (pdev->vendor == 0x10b7) {     \
-        /* Gigabit Ethernet Adapter (0x1700) */     \
-        if ((pdev->device == 0x1700)) { \
-            result = SK_TRUE;     \
-        }     \
+	/* Gigabit Ethernet Adapter (0x1700) */     \
+	if ((pdev->device == 0x1700)) { \
+	    result = SK_TRUE;     \
+	}     \
     /* SysKonnect (0x1148) */     \
     } else if (pdev->vendor == 0x1148) {     \
-        /* SK-98xx Gigabit Ethernet Server Adapter (0x4300) */     \
-        /* SK-98xx V2 Gigabit Ethernet Adapter (0x4320) */     \
-        if ((pdev->device == 0x4300) || \
-            (pdev->device == 0x4320)) { \
-            result = SK_TRUE;     \
-        }     \
+	/* SK-98xx Gigabit Ethernet Server Adapter (0x4300) */     \
+	/* SK-98xx V2 Gigabit Ethernet Adapter (0x4320) */     \
+	if ((pdev->device == 0x4300) || \
+	    (pdev->device == 0x4320)) { \
+	    result = SK_TRUE;     \
+	}     \
     /* D-Link (0x1186) */     \
     } else if (pdev->vendor == 0x1186) {     \
-        /* Gigabit Ethernet Adapter (0x4c00) */     \
-        if ((pdev->device == 0x4c00)) { \
-            result = SK_TRUE;     \
-        }     \
+	/* Gigabit Ethernet Adapter (0x4c00) */     \
+	if ((pdev->device == 0x4c00)) { \
+	    result = SK_TRUE;     \
+	}     \
     /* CNet (0x1371) */     \
     } else if (pdev->vendor == 0x1371) {     \
-        /* GigaCard Network Adapter (0x434e) */     \
-        if ((pdev->device == 0x434e)) { \
-            result = SK_TRUE;     \
-        }     \
+	/* GigaCard Network Adapter (0x434e) */     \
+	if ((pdev->device == 0x434e)) { \
+	    result = SK_TRUE;     \
+	}     \
     /* Linksys (0x1737) */     \
     } else if (pdev->vendor == 0x1737) {     \
-        /* Gigabit Network Adapter (0x1032) */     \
-        /* Gigabit Network Adapter (0x1064) */     \
-        if ((pdev->device == 0x1032) || \
-            (pdev->device == 0x1064)) { \
-            result = SK_TRUE;     \
-        }     \
+	/* Gigabit Network Adapter (0x1032) */     \
+	/* Gigabit Network Adapter (0x1064) */     \
+	if ((pdev->device == 0x1032) || \
+	    (pdev->device == 0x1064)) { \
+	    result = SK_TRUE;     \
+	}     \
     } else {     \
-        result = SK_FALSE;     \
+	result = SK_FALSE;     \
     }     \
 }
 
@@ -188,7 +188,6 @@
 };
 
 
-
 /*
  * ioctl definitions
  */
@@ -309,7 +308,6 @@
 #define	TX_CTRL_LEN_MASK	UINT32_C(0x0000FFFF)
 
 
-
 /* The offsets of registers in the TX and RX queue control io area ***********/
 
 #define RX_Q_BUF_CTRL_CNT	0x00
@@ -441,7 +439,7 @@
 	int             Mtu;
 	int             Up;
 	SK_AC   *pAC;
-};  
+};
 
 typedef struct s_TxPort		TX_PORT;
 
@@ -504,7 +502,7 @@
 	SK_PNMI_STRUCT_DATA PnmiStruct;	/* structure to get all Pnmi-Data */
 	int			RlmtMode;	/* link check mode to set */
 	int			RlmtNets;	/* Number of nets */
-	
+
 	SK_IOC		IoBase;		/* register set of adapter */
 	int		BoardLevel;	/* level of active hw init (0-2) */
 	char		DeviceStr[80];	/* adapter string from vpd */
@@ -520,7 +518,7 @@
 	struct SK_NET_DEVICE	*Next;		/* link all devices (for clearing) */
 	int		RxBufSize;	/* length of receive buffers */
 #if 0
-        struct net_device_stats stats;	/* linux 'netstat -i' statistics */
+	struct net_device_stats stats;	/* linux 'netstat -i' statistics */
 #endif
 	int		Index;		/* internal board index number */
 
@@ -560,6 +558,4 @@
 
 };
 
-
 #endif /* __INC_SKDRV2ND_H */
-
diff --git a/drivers/sk98lin/h/skerror.h b/drivers/sk98lin/h/skerror.h
index 573c84f..a454d9d 100644
--- a/drivers/sk98lin/h/skerror.h
+++ b/drivers/sk98lin/h/skerror.h
@@ -27,23 +27,23 @@
  *	$Log: skerror.h,v $
  *	Revision 1.5  2002/04/25 11:05:10  rschmidt
  *	Editorial changes
- *	
+ *
  *	Revision 1.4  1999/11/22 13:51:59  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.3  1999/09/14 14:04:42  rwahl
  *	Added error base SK_ERRBASE_PECP.
  *	Changed error base for driver.
- *	
+ *
  *	Revision 1.2  1998/08/11 11:15:41  gklug
  *	chg: comments
- *	
+ *
  *	Revision 1.1  1998/08/11 11:09:38  gklug
  *	add: error bases
  *	add: error Classes
  *	first version
- *	
- *	
+ *
+ *
  *
  ******************************************************************************/
 
diff --git a/drivers/sk98lin/h/skgedrv.h b/drivers/sk98lin/h/skgedrv.h
index a6bac08..72ba9ce 100644
--- a/drivers/sk98lin/h/skgedrv.h
+++ b/drivers/sk98lin/h/skgedrv.h
@@ -29,22 +29,22 @@
  *	Revision 1.6  2002/07/15 15:38:01  rschmidt
  *	Power Management support
  *	Editorial changes
- *	
+ *
  *	Revision 1.5  2002/04/25 11:05:47  rschmidt
  *	Editorial changes
- *	
+ *
  *	Revision 1.4  1999/11/22 13:52:46  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.3  1998/12/01 13:31:39  cgoos
  *	SWITCH INTERN Event added.
- *	
+ *
  *	Revision 1.2  1998/11/25 08:28:38  gklug
  *	rmv: PORT SWITCH Event
- *	
+ *
  *	Revision 1.1  1998/09/29 06:14:07  gklug
  *	add: driver events (initial version)
- *	
+ *
  *
  ******************************************************************************/
 
diff --git a/drivers/sk98lin/h/skgehw.h b/drivers/sk98lin/h/skgehw.h
index 4d2499f..2c98427 100644
--- a/drivers/sk98lin/h/skgehw.h
+++ b/drivers/sk98lin/h/skgehw.h
@@ -1781,7 +1781,7 @@
 	WOL_CTL_DIS_LINK_CHG_UNIT |		\
 	WOL_CTL_DIS_PATTERN_UNIT |		\
 	WOL_CTL_DIS_MAGIC_PKT_UNIT)
-	
+
 /*	WOL_MATCH_CTL		 8 bit	WOL Match Control Reg */
 #define WOL_CTL_PATT_ENA(x)				(BIT_0 << (x))
 
@@ -1825,7 +1825,7 @@
 	SK_U32	RxAdrHi;		/* Physical Rx Buffer Address upper dword */
 	SK_U32	RxStat;			/* Receive Frame Status Word */
 	SK_U32	RxTiSt;			/* Receive Time Stamp (from XMAC on GENESIS) */
-#ifndef	SK_USE_REV_DESC	
+#ifndef	SK_USE_REV_DESC
 	SK_U16	RxTcpSum1;		/* TCP Checksum 1 */
 	SK_U16	RxTcpSum2;		/* TCP Checksum 2 */
 	SK_U16	RxTcpSp1;		/* TCP Checksum Calculation Start Position 1 */
@@ -1906,7 +1906,7 @@
  *
  *	Use this macro to access the Receive and Transmit Queue Registers.
  *
- * para:	
+ * para:
  *	Queue	Queue to access.
  *				Values: Q_R1, Q_R2, Q_XS1, Q_XA1, Q_XS2, and Q_XA2
  *	Offs	Queue register offset.
@@ -1921,7 +1921,7 @@
  *
  *	Use this macro to access the RAM Buffer Registers.
  *
- * para:	
+ * para:
  *	Queue	Queue to access.
  *				Values: Q_R1, Q_R2, Q_XS1, Q_XA1, Q_XS2, and Q_XA2
  *	Offs	Queue register offset.
@@ -1943,7 +1943,7 @@
  *
  *	Use this macro to access a MAC Related Registers inside the ASIC.
  *
- * para:	
+ * para:
  *	Mac		MAC to access.
  *				Values: MAC_1, MAC_2
  *	Offs	MAC register offset.
@@ -2200,7 +2200,7 @@
 #define PHY_ADDR_BCOM	(1<<8)
 #define PHY_ADDR_LONE	(3<<8)
 #define PHY_ADDR_NAT	(0<<8)
-		
+
 /* GPHY address (bits 15..11 of SMI control reg) */
 #define PHY_ADDR_MARV	0
 
@@ -2210,7 +2210,7 @@
  * PHY_READ()		read a 16 bit value from the PHY
  * PHY_WRITE()		write a 16 bit value to the PHY
  *
- * para:	
+ * para:
  * 	IoC		I/O context needed for SK I/O macros
  * 	pPort	Pointer to port struct for PhyAddr
  * 	Mac		XMAC to access		values: MAC_1 or MAC_2
diff --git a/drivers/sk98lin/h/skgehwt.h b/drivers/sk98lin/h/skgehwt.h
index bc20ac4..8aa9edd 100644
--- a/drivers/sk98lin/h/skgehwt.h
+++ b/drivers/sk98lin/h/skgehwt.h
@@ -29,22 +29,22 @@
  *	$Log: skgehwt.h,v $
  *	Revision 1.5  1999/11/22 13:54:24  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.4  1998/08/19 09:50:58  gklug
  *	fix: remove struct keyword from c-code (see CCC) add typedefs
- *	
+ *
  *	Revision 1.3  1998/08/14 07:09:29  gklug
  *	fix: chg pAc -> pAC
- *	
+ *
  *	Revision 1.2  1998/08/07 12:54:21  gklug
  *	fix: first compiled version
- *	
+ *
  *	Revision 1.1  1998/08/07 09:32:58  gklug
  *	first version
- *	
- *	
- *	
- *	
+ *
+ *
+ *
+ *
  *
  ******************************************************************************/
 
diff --git a/drivers/sk98lin/h/skgei2c.h b/drivers/sk98lin/h/skgei2c.h
index 4e843a1..e639f73 100644
--- a/drivers/sk98lin/h/skgei2c.h
+++ b/drivers/sk98lin/h/skgei2c.h
@@ -29,69 +29,69 @@
  *	Revision 1.23  2002/12/19 14:34:27  rschmidt
  *	Added cast in macros SK_I2C_SET_BIT() and SK_I2C_CLR_BIT()
  *	Editorial changes (TWSI)
- *	
+ *
  *	Revision 1.22  2002/10/14 16:45:56  rschmidt
  *	Editorial changes (TWSI)
- *	
+ *
  *	Revision 1.21  2002/08/13 08:42:24  rschmidt
  *	Changed define for SK_MIN_SENSORS back to 5
  *	Merged defines for PHY PLL 3V3 voltage (A and B)
  *	Editorial changes
- *	
+ *
  *	Revision 1.20  2002/08/06 09:43:56  jschmalz
  *	Extensions and changes for Yukon
- *	
+ *
  *	Revision 1.19  2002/08/02 12:00:08  rschmidt
  *	Added defines for YUKON sensors
  *	Editorial changes
- *	
+ *
  *	Revision 1.18  2001/08/16 12:44:33  afischer
  *	LM80 sensor init values corrected
- *	
+ *
  *	Revision 1.17  1999/11/22 13:55:25  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.16  1999/11/12 08:24:10  malthoff
  *	Change voltage warning and error limits
  *	(warning +-5%, error +-10%).
- *	
+ *
  *	Revision 1.15  1999/09/14 14:14:43  malthoff
  *	The 1000BT Dual Link adapter has got only one Fan.
  *	The second Fan has been removed.
- *	
+ *
  *	Revision 1.14  1999/05/27 13:40:50  malthoff
  *	Fan Divisor = 1. Assuming fan with 6500 rpm.
- *	
+ *
  *	Revision 1.13  1999/05/20 14:56:55  malthoff
  *	Bug Fix: Missing brace in SK_LM80_FAN_FAKTOR.
- *	
+ *
  *	Revision 1.12  1999/05/20 09:22:00  cgoos
  *	Changes for 1000Base-T (Fan sensors).
- *	
+ *
  *	Revision 1.11  1998/10/14 05:57:22  cgoos
  *	Fixed compilation warnings.
- *	
+ *
  *	Revision 1.10  1998/09/04 08:37:00  malthoff
  *	bugfix: correct the SK_I2C_GET_CTL() macro.
- *	
+ *
  *	Revision 1.9  1998/08/25 06:10:03  gklug
  *	add: thresholds for all sensors
  *
  *	Revision 1.8  1998/08/20 11:37:42  gklug
  *	chg: change Ioc to IoC
- *	
+ *
  *	Revision 1.7  1998/08/20 08:53:11  gklug
  *	fix: compiler errors
  *	add: Threshold values
- *	
+ *
  *	Revision 1.6  1998/08/17 11:37:09  malthoff
  *	Bugfix in SK_I2C_CTL macro. The parameter 'dev'
  *	has to be shifted 9 bits.
- *	
+ *
  *	Revision 1.5  1998/08/17 06:52:21  malthoff
  *	Remove unrequired macros.
  *	Add macros for accessing TWSI SW register.
- *	
+ *
  *	Revision 1.4  1998/08/13 08:30:18  gklug
  *	add: conversion factors for read values
  *	add: new state SEN_VALEXT to read extension value of temperature sensor
diff --git a/drivers/sk98lin/h/skgeinit.h b/drivers/sk98lin/h/skgeinit.h
index f9148d1..cdddef9 100644
--- a/drivers/sk98lin/h/skgeinit.h
+++ b/drivers/sk98lin/h/skgeinit.h
@@ -29,71 +29,71 @@
  *	Revision 1.75  2003/02/05 13:36:39  rschmidt
  *	Added define SK_FACT_78	for YUKON's Host Clock of 78.12 MHz
  *	Editorial changes
- *	
+ *
  *	Revision 1.74  2003/01/28 09:39:16  rschmidt
  *	Added entry GIYukonLite in s_GeInit structure
  *	Editorial changes
- *	
+ *
  *	Revision 1.73  2002/11/15 12:47:25  rschmidt
  *	Replaced error message SKERR_HWI_E024 for Cable Diagnostic with
  *	Rx queue error in SkGeStopPort().
- *	
+ *
  *	Revision 1.72  2002/11/12 17:08:35  rschmidt
  *	Added entries for Cable Diagnostic to Port structure
  *	Added entries GIPciSlot64 and GIPciClock66 in s_GeInit structure
  *	Added error message for Cable Diagnostic
  *	Added prototypes for SkGmCableDiagStatus()
  *	Editorial changes
- *	
+ *
  *	Revision 1.71  2002/10/21 11:26:10  mkarl
  *	Changed interface of SkGeInitAssignRamToQueues().
- *	
+ *
  *	Revision 1.70  2002/10/14 08:21:32  rschmidt
  *	Changed type of GICopperType, GIVauxAvail to SK_BOOL
  *	Added entry PRxOverCnt to Port structure
  *	Added entry GIYukon32Bit in s_GeInit structure
  *	Editorial changes
- *	
+ *
  *	Revision 1.69  2002/10/09 16:57:15  mkarl
  *	Added some constants and macros for SkGeInitAssignRamToQueues().
- *	
+ *
  *	Revision 1.68  2002/09/12 08:58:51  rwahl
  *	Retrieve counters needed for XMAC errata workarounds directly because
  *	PNMI returns corrected counter values (e.g. #10620).
- *	
+ *
  *	Revision 1.67  2002/08/16 14:40:30  rschmidt
  *	Added entries GIGenesis and GICopperType in s_GeInit structure
  *	Added prototypes for SkMacHashing()
  *	Editorial changes
- *	
+ *
  *	Revision 1.66  2002/08/12 13:27:21  rschmidt
  *	Added defines for Link speed capabilities
  *	Added entry PLinkSpeedCap to Port structure
  *	Added entry GIVauxAvail in s_GeInit structure
  *	Added prototypes for SkMacPromiscMode()
  *	Editorial changes
- *	
+ *
  *	Revision 1.65  2002/08/08 15:46:18  rschmidt
  *	Added define SK_PHY_ACC_TO for PHY access timeout
  *	Added define SK_XM_RX_HI_WM for XMAC Rx High Watermark
  *	Added define SK_MIN_TXQ_SIZE for Min RAM Buffer Tx Queue Size
  *	Added entry PhyId1 to Port structure
- *	
+ *
  *	Revision 1.64  2002/07/23 16:02:56  rschmidt
  *	Added entry GIWolOffs in s_GeInit struct (HW-Bug in YUKON 1st rev.)
  *	Added prototypes for: SkGePhyRead(), SkGePhyWrite()
- *	
+ *
  *	Revision 1.63  2002/07/18 08:17:38  rwahl
  *	Corrected definitions for SK_LSPEED_xxx & SK_LSPEED_STAT_xxx.
- *	
+ *
  *	Revision 1.62  2002/07/17 18:21:55  rwahl
  *	Added SK_LSPEED_INDETERMINATED define.
- *	
+ *
  *	Revision 1.61  2002/07/17 17:16:03  rwahl
  *	- MacType now member of GIni struct.
  *	- Struct alignment to 32bit.
  *	- Editorial change.
- *	
+ *
  *	Revision 1.60  2002/07/15 18:23:39  rwahl
  *	Added GeMacFunc to GE Init structure.
  *	Added prototypes for SkXmUpdateStats(), SkGmUpdateStats(),
@@ -101,19 +101,19 @@
  *	  SkGmResetCounter(), SkXmOverflowStatus(), SkGmOverflowStatus().
  *	Added defines for current link speed state.
  *	Added ERRMSG defintions for MacUpdateStat() & MacStatistics().
- *	
+ *
  *	Revision 1.59  2002/07/15 15:40:22  rschmidt
  *	Added entry PLinkSpeedUsed to Port structure
  *	Editorial changes
- *	
+ *
  *	Revision 1.58  2002/06/10 09:36:30  rschmidt
  *	Editorial changes.
- *	
+ *
  *	Revision 1.57  2002/06/05 08:18:00  rschmidt
  *	Corrected alignment in Port Structure
  *	Added new prototypes for GMAC
  *	Editorial changes
- *	
+ *
  *	Revision 1.56  2002/04/25 11:38:12  rschmidt
  *	Added defines for Link speed values
  *	Added defines for Loopback parameters for MAC and PHY
@@ -128,150 +128,150 @@
  *	SkXmPhyRead(), SkXmPhyRead(), SkGmPhyWrite(), SkGmPhyWrite();
  *	Removed prototypes for static functions in SkXmac2.c
  *	Editorial changes
- *	
+ *
  *	Revision 1.55  2002/02/26 15:24:53  rwahl
  *	Fix: no link with manual configuration (#10673). The previous fix for
  *	#10639 was removed. So for RLMT mode = CLS the RLMT may switch to
  *	misconfigured port. It should not occur for the other RLMT modes.
- *	
+ *
  *	Revision 1.54  2002/01/18 16:52:52  rwahl
  *	Editorial corrections.
- *	
+ *
  *	Revision 1.53  2001/11/20 09:19:58  rwahl
  *	Reworked bugfix #10639 (no dependency to RLMT mode).
- *	
+ *
  *	Revision 1.52  2001/10/26 07:52:23  afischer
  *	Port switching bug in `check local link` mode
- *	
+ *
  *	Revision 1.51  2001/02/09 12:26:38  cgoos
  *	Inserted #ifdef DIAG for half duplex workaround timer.
- *	
+ *
  *	Revision 1.50  2001/02/07 07:56:40  rassmann
  *	Corrected copyright.
- *	
+ *
  *	Revision 1.49  2001/01/31 15:32:18  gklug
  *	fix: problem with autosensing an SR8800 switch
  *	add: counter for autoneg timeouts
- *	
+ *
  *	Revision 1.48  2000/11/09 11:30:10  rassmann
  *	WA: Waiting after releasing reset until BCom chip is accessible.
- *	
+ *
  *	Revision 1.47  2000/10/18 12:22:40  cgoos
  *	Added workaround for half duplex hangup.
- *	
+ *
  *	Revision 1.46  2000/08/10 11:28:00  rassmann
  *	Editorial changes.
  *	Preserving 32-bit alignment in structs for the adapter context.
- *	
+ *
  *	Revision 1.45  1999/11/22 13:56:19  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.44  1999/10/26 07:34:15  malthoff
  *	The define SK_LNK_ON has been lost in v1.41.
- *	
+ *
  *	Revision 1.43  1999/10/06 09:30:16  cgoos
  *	Changed SK_XM_THR_JUMBO.
- *	
+ *
  *	Revision 1.42  1999/09/16 12:58:26  cgoos
  *	Changed SK_LED_STANDY macro to be independent of HW link sync.
- *	
+ *
  *	Revision 1.41  1999/07/30 06:56:14  malthoff
  *	Correct comment for SK_MS_STAT_UNSET.
- *	
+ *
  *	Revision 1.40  1999/05/27 13:38:46  cgoos
  *	Added SK_BMU_TX_WM.
  *	Made SK_BMU_TX_WM and SK_BMU_RX_WM user-definable.
  *	Changed XMAC Tx treshold to max. values.
- *	
+ *
  *	Revision 1.39  1999/05/20 14:35:26  malthoff
  *	Remove prototypes for SkGeLinkLED().
- *	
+ *
  *	Revision 1.38  1999/05/19 11:59:12  cgoos
  *	Added SK_MS_CAP_INDETERMINATED define.
- *	
+ *
  *	Revision 1.37  1999/05/19 07:32:33  cgoos
  *	Changes for 1000Base-T.
  *	LED-defines for HWAC_LINK_LED macro.
- *	
+ *
  *	Revision 1.36  1999/04/08 14:00:24  gklug
  *	add:Port struct field PLinkResCt
- *	
+ *
  *	Revision 1.35  1999/03/25 07:43:07  malthoff
  *	Add error string for SKERR_HWI_E018MSG.
- *	
+ *
  *	Revision 1.34  1999/03/12 16:25:57  malthoff
  *	Remove PPollRxD and PPollTxD.
  *	Add SKERR_HWI_E017MSG. and SK_DPOLL_MAX.
- *	
+ *
  *	Revision 1.33  1999/03/12 13:34:41  malthoff
  *	Add Autonegotiation error codes.
  *	Change defines for parameter Mode in SkXmSetRxCmd().
  *	Replace __STDC__ by SK_KR_PROTO.
- *	
+ *
  *	Revision 1.32  1999/01/25 14:40:20  mhaveman
  *	Added new return states for the virtual management port if multiple
  *	ports are active but differently configured.
- *	
+ *
  *	Revision 1.31  1998/12/11 15:17:02  gklug
  *	add: Link partnet autoneg states : Unknown Manual and Auto-negotiation
- *	
+ *
  *	Revision 1.30  1998/12/07 12:17:04  gklug
  *	add: Link Partner auto-negotiation flag
- *	
+ *
  *	Revision 1.29  1998/12/01 10:54:42  gklug
  *	add: variables for XMAC Errata
- *	
+ *
  *	Revision 1.28  1998/12/01 10:14:15  gklug
  *	add: PIsave saves the Interrupt status word
- *	
+ *
  *	Revision 1.27  1998/11/26 15:24:52  mhaveman
  *	Added link status states SK_LMODE_STAT_AUTOHALF and
  *	SK_LMODE_STAT_AUTOFULL which are used by PNMI.
- *	
+ *
  *	Revision 1.26  1998/11/26 14:53:01  gklug
  *	add:autoNeg Timeout variable
- *	
+ *
  *	Revision 1.25  1998/11/26 08:58:50  gklug
  *	add: Link Mode configuration (AUTO Sense mode)
- *	
+ *
  *	Revision 1.24  1998/11/24 13:30:27  gklug
  *	add: PCheckPar to port struct
- *	
+ *
  *	Revision 1.23  1998/11/18 13:23:26  malthoff
  *	Add SK_PKT_TO_MAX.
- *	
+ *
  *	Revision 1.22  1998/11/18 13:19:54  gklug
  *	add: PPrevShorts and PLinkBroken to port struct for WA XMAC Errata #C1
  *
  *	Revision 1.21  1998/10/26 08:02:57  malthoff
  *	Add GIRamOffs.
- *	
+ *
  *	Revision 1.20  1998/10/19 07:28:37  malthoff
  *	Add prototype for SkGeInitRamIface().
- *	
+ *
  *	Revision 1.19  1998/10/14 14:47:48  malthoff
  *	SK_TIMER should not be defined for Diagnostics.
  *	Add SKERR_HWI_E015MSG and SKERR_HWI_E016MSG.
- *	
+ *
  *	Revision 1.18  1998/10/14 14:00:03  gklug
  *	add: timer to port struct for workaround of Errata #2
- *	
+ *
  *	Revision 1.17  1998/10/14 11:23:09  malthoff
  *	Add prototype for SkXmAutoNegDone().
  *	Fix SkXmSetRxCmd() prototype statement.
  *
  *	Revision 1.16  1998/10/14 05:42:29  gklug
  *	add: HWLinkUp flag to Port struct
- *	
+ *
  *	Revision 1.15  1998/10/09 08:26:33  malthoff
  *	Rename SK_RB_ULPP_B to SK_RB_LLPP_B.
- *	
+ *
  *	Revision 1.14  1998/10/09 07:11:13  malthoff
  *	bug fix: SK_FACT_53 is 85 not 117.
  *	Rework time out init values.
  *	Add GIPortUsage and corresponding defines.
  *	Add some error log messages.
- *	
+ *
  *	Revision 1.13  1998/10/06 14:13:14  malthoff
  *	Add prototype for SkGeLoadLnkSyncCnt().
  *
@@ -338,7 +338,7 @@
 
 /* modifying Link LED behaviour (used with SkGeLinkLED()) */
 #define SK_LNK_OFF		LED_OFF
-#define SK_LNK_ON		(LED_ON | LED_BLK_OFF | LED_SYNC_OFF)	
+#define SK_LNK_ON		(LED_ON | LED_BLK_OFF | LED_SYNC_OFF)
 #define SK_LNK_BLINK	(LED_ON | LED_BLK_ON  | LED_SYNC_ON)
 #define SK_LNK_PERM		(LED_ON | LED_BLK_OFF | LED_SYNC_ON)
 #define SK_LNK_TST		(LED_ON | LED_BLK_ON  | LED_SYNC_OFF)
@@ -549,7 +549,7 @@
 #define SK_LENERR_OK_ON		(1<<4)	/* Don't chk fr for in range len error */
 #define SK_LENERR_OK_OFF	(1<<5)	/* Check frames for in range len error */
 #define SK_BIG_PK_OK_ON		(1<<6)	/* Don't set Rx Error bit for big frames */
-#define SK_BIG_PK_OK_OFF	(1<<7)	/* Set Rx Error bit for big frames */	
+#define SK_BIG_PK_OK_OFF	(1<<7)	/* Set Rx Error bit for big frames */
 #define SK_SELF_RX_ON		(1<<8)	/* Enable  Rx of own packets */
 #define SK_SELF_RX_OFF		(1<<9)	/* Disable Rx of own packets */
 
diff --git a/drivers/sk98lin/h/skgepnm2.h b/drivers/sk98lin/h/skgepnm2.h
index 2a00354..5c44f47 100644
--- a/drivers/sk98lin/h/skgepnm2.h
+++ b/drivers/sk98lin/h/skgepnm2.h
@@ -28,81 +28,81 @@
  *	$Log: skgepnm2.h,v $
  *	Revision 1.34  2002/12/16 09:05:18  tschilli
  *	Code for VCT handling added.
- *	
+ *
  *	Revision 1.33  2002/09/10 09:00:03  rwahl
  *	Adapted boolean definitions according sktypes.
- *	
+ *
  *	Revision 1.32  2002/08/09 09:47:01  rwahl
  *	Added write-only flag to oid access defines.
  *	Editorial changes.
- *	
+ *
  *	Revision 1.31  2002/07/17 19:23:18  rwahl
  *	- Replaced MAC counter definitions by enumeration.
  *	- Added definition SK_PNMI_MAC_TYPES.
  *	- Added chipset defnition for Yukon.
- *	
+ *
  *	Revision 1.30  2001/02/06 10:03:41  mkunz
  *	- Pnmi V4 dual net support added. Interface functions and macros extended
  *	- Vpd bug fixed
  *	- OID_SKGE_MTU added
- *	
+ *
  *	Revision 1.29  2001/01/22 13:41:37  rassmann
  *	Supporting two nets on dual-port adapters.
- *	
+ *
  *	Revision 1.28  2000/08/03 15:12:48  rwahl
  *	- Additional comment for MAC statistic data structure.
- *	
+ *
  *	Revision 1.27  2000/08/01 16:10:18  rwahl
  *	- Added mac statistic data structure for StatRxLongFrame counter.
- *	
+ *
  *	Revision 1.26  2000/03/31 13:51:34  rwahl
  *	Added SK_UPTR cast to offset calculation for PNMI struct fields;
  *	missing cast caused compiler warnings by Win64 compiler.
- *	
+ *
  *	Revision 1.25  1999/11/22 13:57:41  cgoos
  *	Changed license header to GPL.
  *	Allowing overwrite for SK_PNMI_STORE/_READ defines.
- *	
+ *
  *	Revision 1.24  1999/04/13 15:11:11  mhaveman
  *	Changed copyright.
- *	
+ *
  *	Revision 1.23  1999/01/28 15:07:12  mhaveman
  *	Changed default threshold for port switches per hour from 10
  *	to 240 which means 4 switches per minute. This fits better
  *	the granularity of 32 for the port switch estimate
  *	counter.
- *	
+ *
  *	Revision 1.22  1999/01/05 12:52:30  mhaveman
  *	Removed macro SK_PNMI_MICRO_SEC.
- *	
+ *
  *	Revision 1.21  1999/01/05 12:50:34  mhaveman
  *	Enlarged macro definition SK_PNMI_HUNDREDS_SEC() so that no 64-bit
  *	arithmetic is necessary if SK_TICKS_PER_SEC is 100.
- *	
+ *
  *	Revision 1.20  1998/12/09 14:02:53  mhaveman
  *	Defined macro SK_PNMI_DEF_RLMT_CHG_THRES for default port switch
  *	threshold.
- *	
+ *
  *	Revision 1.19  1998/12/03 11:28:41  mhaveman
  *	Removed SK_PNMI_CHECKPTR macro.
- *	
+ *
  *	Revision 1.18  1998/12/03 11:21:00  mhaveman
  *	-Added pointer check macro SK_PNMI_CHECKPTR
  *	-Added macros SK_PNMI_VPD_ARR_SIZE and SK_PNMI_VPD_STR_SIZE for
  *	 VPD key evaluation.
- *	
+ *
  *	Revision 1.17  1998/11/20 13:20:33  mhaveman
  *	Fixed bug in SK_PNMI_SET_STAT macro. ErrorStatus was not correctly set.
- *	
+ *
  *	Revision 1.16  1998/11/20 08:08:49  mhaveman
  *	Macro SK_PNMI_CHECKFLAGS has got a if clause.
- *	
+ *
  *	Revision 1.15  1998/11/03 13:53:40  mhaveman
  *	Fixed alignment problem in macor SK_PNMI_SET_STAT macro.
- *	
+ *
  *	Revision 1.14  1998/10/30 15:50:13  mhaveman
  *	Added macro SK_PNMI_MICRO_SEC()
- *	
+ *
  *	Revision 1.13  1998/10/30 12:32:20  mhaveman
  *	Added forgotten cast in SK_PNMI_READ_U32 macro.
  *
@@ -110,46 +110,46 @@
  *	-Changed SK_PNMI_TRAP_SENSOR_LEN because SensorDescr has now
  *	 variable string length.
  *	-Defined SK_PNMI_CHECKFLAGS macro
- *	
+ *
  *	Revision 1.11  1998/10/29 08:53:34  mhaveman
  *	Removed SK_PNMI_RLM_XXX table indexed because these counters need
  *	not been saved over XMAC resets.
- *	
+ *
  *	Revision 1.10  1998/10/28 08:48:20  mhaveman
  *	-Added macros for storage according to alignment
  *	-Changed type of Instance to SK_U32 because of VPD
  *	-Removed trap structures. Not needed because of alignment problem
  *	-Changed type of Action form SK_U8 to int
- *	
+ *
  *	Revision 1.9  1998/10/21 13:34:45  mhaveman
  *	Shit, mismatched calculation of SK_PNMI_HUNDREDS_SEC. Corrected.
- *	
+ *
  *	Revision 1.8  1998/10/21 13:24:58  mhaveman
  *	Changed calculation of hundreds of seconds.
- *	
+ *
  *	Revision 1.7  1998/10/20 07:31:41  mhaveman
  *	Made type changes to unsigned int where possible.
- *	
+ *
  *	Revision 1.6  1998/09/04 17:04:05  mhaveman
  *	Added Sync counters to offset storage to provided settled values on
  *	port switch.
- *	
+ *
  *	Revision 1.5  1998/09/04 12:45:35  mhaveman
  *	Removed dummies for SK_DRIVER_ macros. They should be added by driver
  *	writer in skdrv2nd.h.
- *	
+ *
  *	Revision 1.4  1998/09/04 11:59:50  mhaveman
  *	Everything compiles now. Driver Macros for counting still missing.
- *	
+ *
  *	Revision 1.3  1998/08/24 12:01:35  mhaveman
  *	Intermediate state.
- *	
+ *
  *	Revision 1.2  1998/08/17 07:51:40  mhaveman
  *	Intermediate state.
- *	
+ *
  *	Revision 1.1  1998/08/11 09:08:40  mhaveman
  *	Intermediate state.
- *	
+ *
  ****************************************************************************/
 
 #ifndef _SKGEPNM2_H_
@@ -277,7 +277,7 @@
 	SK_PNMI_HTX_SYNC,
 	SK_PNMI_HTX_SYNC_OCTET,
 	SK_PNMI_HTX_RESERVED,
-	
+
 	SK_PNMI_HRX,
 	SK_PNMI_HRX_OCTET,
 	SK_PNMI_HRX_OCTETHIGH	= SK_PNMI_HRX_OCTET,
@@ -315,9 +315,9 @@
 	SK_PNMI_HRX_1023,
 	SK_PNMI_HRX_MAX,
 	SK_PNMI_HRX_LONGFRAMES,
-	
+
 	SK_PNMI_HRX_RESERVED,
-	
+
 	SK_PNMI_MAX_IDX		/* NOTE: Ensure SK_PNMI_CNT_NO is set to this value */
 };
 
diff --git a/drivers/sk98lin/h/skgepnmi.h b/drivers/sk98lin/h/skgepnmi.h
index c1f847e..7532313 100644
--- a/drivers/sk98lin/h/skgepnmi.h
+++ b/drivers/sk98lin/h/skgepnmi.h
@@ -28,44 +28,44 @@
  *	$Log: skgepnmi.h,v $
  *	Revision 1.59  2002/12/16 14:03:50  tschilli
  *	New defines for VCT added.
- *	
+ *
  *	Revision 1.58  2002/12/16 09:04:59  tschilli
  *	Code for VCT handling added.
- *	
+ *
  *	Revision 1.57  2002/09/26 12:41:05  tschilli
  *	SK_PNMI_PORT BufPort entry in struct SK_PNMI added.
- *	
+ *
  *	Revision 1.56  2002/08/16 11:10:41  rwahl
  *	- Replaced c++ comment.
- *	
+ *
  *	Revision 1.55  2002/08/09 15:40:21  rwahl
  *	Editorial change (renamed ConfSpeedCap).
- *	
+ *
  *	Revision 1.54  2002/08/09 11:06:07  rwahl
  *	Added OID_SKGE_SPEED_CAP.
- *	
+ *
  *	Revision 1.53  2002/08/09 09:45:28  rwahl
  *	Added support for NDIS OID_PNP_xxx.
  *	Editorial changes.
- *	
+ *
  *	Revision 1.52  2002/08/06 17:54:07  rwahl
  *	- Added speed cap to PNMI config struct.
- *	
+ *
  *	Revision 1.51  2002/07/17 19:19:26  rwahl
  *	- Added OID_SKGE_SPEED_MODE and OID_SKGE_SPEED_STATUS.
  *	- Added SK_PNMI_CNT_RX_PMACC_ERR() & SK_PNMI_CNT_RX_LONGFRAMES().
  *	- Added speed mode & status to PNMI config struct.
  *	- Editorial changes.
- *	
+ *
  *	Revision 1.50  2002/05/22 08:59:37  rwahl
  *	Added string definitions for error msgs.
- *	
+ *
  *	Revision 1.49  2001/11/20 09:23:50  rwahl
  *	- pnmi struct: reordered and aligned to 32bit.
- *	
+ *
  *	Revision 1.48  2001/02/23 14:34:24  mkunz
  *	Changed macro PHYS2INST. Added pAC to Interface
- *	
+ *
  *	Revision 1.47  2001/02/07 08:28:23  mkunz
  *	- Added Oids: 	OID_SKGE_DIAG_ACTION
  *					OID_SKGE_DIAG_RESULT
@@ -73,161 +73,161 @@
  *					OID_SKGE_CURRENT_PACKET_FILTER
  *					OID_SKGE_INTERMEDIATE_SUPPORT
  *	- Changed value of OID_SKGE_MTU
- *	
+ *
  *	Revision 1.46  2001/02/06 10:01:41  mkunz
  *	- Pnmi V4 dual net support added. Interface functions and macros extended
  *	- Vpd bug fixed
  *	- OID_SKGE_MTU added
- *	
+ *
  *	Revision 1.45  2001/01/22 13:41:37  rassmann
  *	Supporting two nets on dual-port adapters.
- *	
+ *
  *	Revision 1.44  2000/09/07 07:35:27  rwahl
  *	- removed NDIS counter specific data type.
  *	- fixed spelling for OID_SKGE_RLMT_PORT_PREFERRED.
- *	
+ *
  *	Revision 1.43  2000/08/04 11:41:08  rwahl
  *	- Fixed compiler warning (port is always >= 0) for macros
  *	  SK_PNMI_CNT_RX_LONGFRAMES & SK_PNMI_CNT_SYNC_OCTETS
- *	
+ *
  *	Revision 1.42  2000/08/03 15:14:07  rwahl
  *	- Corrected error in driver macros addressing a physical port.
- *	
+ *
  *	Revision 1.41  2000/08/01 16:22:29  rwahl
  *	- Changed MDB version to 3.1.
  *	- Added definitions for StatRxLongFrames counter.
  *	- Added macro to be used by driver to count long frames received.
  *	- Added directive to control width (default = 32bit) of NDIS statistic
  *	  counters (SK_NDIS_64BIT_CTR).
- *	
+ *
  *	Revision 1.40  2000/03/31 13:51:34  rwahl
  *	Added SK_UPTR cast to offset calculation for PNMI struct fields;
  *	missing cast caused compiler warnings by Win64 compiler.
  *
  *	Revision 1.39  1999/12/06 10:09:47  rwahl
  *	Added new error log message.
- *	
+ *
  *	Revision 1.38  1999/11/22 13:57:55  cgoos
  *	Changed license header to GPL.
  *
  *	Revision 1.37  1999/09/14 14:25:32  rwahl
  *	Set MDB version for 1000Base-T (sensors, Master/Slave) changes.
- *	
+ *
  *	Revision 1.36  1999/05/20 09:24:56  cgoos
  *	Changes for 1000Base-T (sensors, Master/Slave).
- *	
+ *
  *	Revision 1.35  1999/04/13 15:10:51  mhaveman
  *	Replaced RLMT macros SK_RLMT_CHECK_xxx again by those of PNMI to
  *	grant unified interface. But PNMI macros will store the same
  *	value as RLMT macros.
- *	
+ *
  *	Revision 1.34  1999/04/13 15:03:49  mhaveman
  *	-Changed copyright
  *	-Removed SK_PNMI_RLMT_MODE_CHK_xxx macros. Those of RLMT should be
  *	 used.
- *	
+ *
  *	Revision 1.33  1999/03/23 10:41:02  mhaveman
  *	Changed comments.
- *	
+ *
  *	Revision 1.32  1999/01/25 15:01:33  mhaveman
  *	Added support for multiple simultaniously active ports.
- *	
+ *
  *	Revision 1.31  1999/01/19 10:06:26  mhaveman
  *	Added new error log message.
- *	
+ *
  *	Revision 1.30  1999/01/05 10:34:49  mhaveman
  *	Fixed little error in RlmtChangeEstimate calculation.
- *	
+ *
  *	Revision 1.29  1999/01/05 09:59:41  mhaveman
  *	Redesigned port switch average calculation to avoid 64bit
  *	arithmetic.
- *	
+ *
  *	Revision 1.28  1998/12/08 10:05:48  mhaveman
  *	Defined macro SK_PNMI_MIN_STRUCT_SIZE.
- *	
+ *
  *	Revision 1.27  1998/12/03 14:39:35  mhaveman
  *	Fixed problem that LSTAT was enumerated wrong.
- *	
+ *
  *	Revision 1.26  1998/12/03 11:19:51  mhaveman
  *	Changed contents of errlog message SK_PNMI_ERR016MSG
- *	
+ *
  *	Revision 1.25  1998/12/01 10:40:04  mhaveman
  *	Changed size of SensorNumber, ChecksumNumber and RlmtPortNumber in
  *	SK_PNMI_STRUCT_DATA to be conform with OID definition.
- *	
+ *
  *	Revision 1.24  1998/11/20 08:09:27  mhaveman
  *	Added macros to convert between logical, physical port indexes and
  *	instances.
- *	
+ *
  *	Revision 1.23  1998/11/10 13:41:13  mhaveman
  *	Needed to change interface, because NT driver needs a return value
  *	of needed buffer space on TOO_SHORT errors. Therefore all
  *	SkPnmiGet/Preset/Set functions now have a pointer to the length
  *	parameter, where the needed space on error is returned.
- *	
+ *
  *	Revision 1.22  1998/11/03 12:05:51  mhaveman
  *	Added pAC parameter to counter macors.
  *
  *	Revision 1.21  1998/11/02 10:47:36  mhaveman
  *	Added syslog messages for internal errors.
- *	
+ *
  *	Revision 1.20  1998/10/30 15:49:36  mhaveman
  *	-Removed unused SK_PNMI_UTILIZATION_BASE and EstOldCnt.
  *	-Redefined SK_PNMI_CHG_EST_BASE to hundreds of seconds.
- *	
+ *
  *	Revision 1.19  1998/10/29 15:38:44  mhaveman
  *	Changed string lengths of PNMI_STRUCT_DATA structure because
  *	string OIDs are now encoded with leading length ocetet.
- *	
+ *
  *	Revision 1.18  1998/10/29 08:52:27  mhaveman
  *	-Added byte to strings in PNMI_STRUCT_DATA structure.
  *	-Shortened SK_PNMI_RLMT structure to SK_MAX_MACS elements.
- *	
+ *
  *	Revision 1.17  1998/10/28 08:49:50  mhaveman
  *	-Changed type of Instance back to SK_U32 because of VPD
  *	-Changed type from SK_U8 to char of PciBusSpeed, PciBusWidth, PMD,
  *	 and Connector.
- *	
+ *
  *	Revision 1.16  1998/10/22 10:42:31  mhaveman
  *	-Removed (SK_U32) casts for OIDs
  *	-excluded NDIS OIDs when they are already defined with ifndef _NDIS_
- *	
+ *
  *	Revision 1.15  1998/10/20 13:56:28  mhaveman
  *	Headerfile includes now directly other header files to comile correctly.
- *	
+ *
  *	Revision 1.14  1998/10/20 07:31:09  mhaveman
  *	Made type changes to unsigned int where possible.
- *	
+ *
  *	Revision 1.13  1998/10/19 10:53:13  mhaveman
  *	-Casted OID definitions to SK_U32
  *	-Renamed RlmtMAC... to RlmtPort...
  *	-Changed wrong type of VpdEntriesList from SK_U32 to char *
- *	
+ *
  *	Revision 1.12  1998/10/13 07:42:27  mhaveman
  *	-Added OIDs OID_SKGE_TRAP_NUMBER and OID_SKGE_ALL_DATA
  *	-Removed old cvs history entries
  *	-Renamed MacNumber to PortNumber
- *	
+ *
  *	Revision 1.11  1998/10/07 10:55:24  mhaveman
  *	-Added OID_MDB_VERSION. Therefore was a renumbering of the VPD OIDs
  *	 necessary.
  *	-Added OID_GEN_ Ids to support the windows driver.
- *	
+ *
  *	Revision 1.10  1998/09/30 13:41:10  mhaveman
  *	Renamed some OIDs to reduce usage of 'MAC' which is replaced by 'PORT'.
- *	
+ *
  *	Revision 1.9  1998/09/04 17:06:17  mhaveman
  *	-Added SyncCounter as macro.
  *	-Renamed OID_SKGE_.._NO_DESCR_CTS to OID_SKGE_.._NO_BUF_CTS.
  *	-Added macros for driver description and version strings.
- *	
+ *
  *	Revision 1.8  1998/09/04 14:36:52  mhaveman
  *	Added OIDs and Structure to access value of macro counters which are
  *	counted by the driver.
- *	
+ *
  *	Revision 1.7  1998/09/04 11:59:36  mhaveman
  *	Everything compiles now. Driver Macros for counting still missing.
- *	
+ *
  ****************************************************************************/
 
 #ifndef _SKGEPNMI_H_
@@ -355,7 +355,7 @@
 /* #define OID_802_3_MULTICAST_LIST		0x01010103 */
 /* #define OID_802_3_MAXIMUM_LIST_SIZE	0x01010104 */
 /* #define OID_802_3_MAC_OPTIONS		0x01010105 */
-			
+
 #define OID_802_3_RCV_ERROR_ALIGNMENT	0x01020101
 #define OID_802_3_XMIT_ONE_COLLISION	0x01020102
 #define OID_802_3_XMIT_MORE_COLLISIONS	0x01020103
@@ -389,7 +389,7 @@
 #define OID_SKGE_VPD_VALUE				0xFF010106
 #define OID_SKGE_VPD_ACCESS				0xFF010107
 #define OID_SKGE_VPD_ACTION				0xFF010108
-			
+
 #define OID_SKGE_PORT_NUMBER			0xFF010110
 #define OID_SKGE_DEVICE_TYPE			0xFF010111
 #define OID_SKGE_DRIVER_DESCR			0xFF010112
@@ -436,7 +436,7 @@
 #define OID_SKGE_SPEED_MODE				0xFF010171
 #define OID_SKGE_SPEED_STATUS			0xFF010172
 
-#define OID_SKGE_SENSOR_NUMBER			0xFF020100			
+#define OID_SKGE_SENSOR_NUMBER			0xFF020100
 #define OID_SKGE_SENSOR_INDEX			0xFF020101
 #define OID_SKGE_SENSOR_DESCR			0xFF020102
 #define OID_SKGE_SENSOR_TYPE			0xFF020103
diff --git a/drivers/sk98lin/h/skgesirq.h b/drivers/sk98lin/h/skgesirq.h
index 574ca22..fc001b23 100644
--- a/drivers/sk98lin/h/skgesirq.h
+++ b/drivers/sk98lin/h/skgesirq.h
@@ -28,87 +28,87 @@
  *	Revision 1.26  2002/10/14 09:52:36  rschmidt
  *	Added SKERR_SIRQ_E023 and SKERR_SIRQ_E023 for GPHY (Yukon)
  *	Editorial changes
- *	
+ *
  *	Revision 1.25  2002/07/15 18:15:52  rwahl
  *	Editorial changes.
- *	
+ *
  *	Revision 1.24  2002/07/15 15:39:21  rschmidt
  *	Corrected define for SKERR_SIRQ_E022
  *	Editorial changes
- *	
+ *
  *	Revision 1.23  2002/04/25 11:09:45  rschmidt
  *	Removed declarations for SkXmInitPhy(), SkXmRxTxEnable()
  *	Editorial changes
- *	
+ *
  *	Revision 1.22  2000/11/09 11:30:10  rassmann
  *	WA: Waiting after releasing reset until BCom chip is accessible.
- *	
+ *
  *	Revision 1.21  2000/10/18 12:22:40  cgoos
  *	Added workaround for half duplex hangup.
- *	
+ *
  *	Revision 1.20  1999/12/06 10:00:44  cgoos
  *	Added SET event for role.
- *	
+ *
  *	Revision 1.19  1999/11/22 13:58:26  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.18  1999/05/19 07:32:59  cgoos
  *	Changes for 1000Base-T.
- *	
+ *
  *	Revision 1.17  1999/03/12 13:29:31  malthoff
  *	Move Autonegotiation Error Codes to skgeinit.h.
- *	
+ *
  *	Revision 1.16  1999/03/08 10:11:28  gklug
  *	add: AutoNegDone return codes
- *	
+ *
  *	Revision 1.15  1998/11/18 13:20:53  gklug
  *	add: different timeouts for active and non-active links
- *	
+ *
  *	Revision 1.14  1998/11/04 07:18:14  cgoos
  *	Added prototype for SkXmRxTxEnable.
- *	
+ *
  *	Revision 1.13  1998/10/21 05:52:23  gklug
  *	add: parameter DoLoop to InitPhy function
- *	
+ *
  *	Revision 1.12  1998/10/19 06:45:03  cgoos
  *	Added prototype for SkXmInitPhy.
- *	
+ *
  *	Revision 1.11  1998/10/15 14:34:10  gklug
  *	add: WA_TIME is 500 msec
- *	
+ *
  *	Revision 1.10  1998/10/14 14:49:41  malthoff
  *	Remove err log defines E021 and E022. They are
  *	defined in skgeinit.h now.
  *
  *	Revision 1.9  1998/10/14 14:00:39  gklug
  *	add: error logs for init phys
- *	
+ *
  *	Revision 1.8  1998/10/14 05:44:05  gklug
  *	add: E020
- *	
+ *
  *	Revision 1.7  1998/10/02 06:24:58  gklug
  *	add: error messages
- *	
+ *
  *	Revision 1.6  1998/10/01 07:54:45  gklug
  *	add: PNMI debug module
- *	
+ *
  *	Revision 1.5  1998/09/28 13:36:31  malthoff
  *	Move the bit definitions for Autonegotiation
  *	and Flow Control to skgeinit.h.
- *	
+ *
  *	Revision 1.4  1998/09/15 12:29:34  gklug
  *	add: error logs
- *	
+ *
  *	Revision 1.3  1998/09/03 13:54:02  gklug
  *	add: function prototypes
- *	
+ *
  *	Revision 1.2  1998/09/03 10:24:36  gklug
  *	add: Events send by PNMI
  *	add: parameter definition for Flow Control etc.
- *	
+ *
  *	Revision 1.1  1998/08/27 11:50:27  gklug
  *	initial revision
- *	
+ *
  *
  ******************************************************************************/
 
diff --git a/drivers/sk98lin/h/ski2c.h b/drivers/sk98lin/h/ski2c.h
index 5316bba..5ffaf6e 100644
--- a/drivers/sk98lin/h/ski2c.h
+++ b/drivers/sk98lin/h/ski2c.h
@@ -28,88 +28,88 @@
  *	$Log: ski2c.h,v $
  *	Revision 1.34  2003/01/28 09:11:21  rschmidt
  *	Editorial changes
- *	
+ *
  *	Revision 1.33  2002/10/14 16:40:50  rschmidt
  *	Editorial changes (TWSI)
- *	
+ *
  *	Revision 1.32  2002/08/13 08:55:07  rschmidt
  *	Editorial changes
- *	
+ *
  *	Revision 1.31  2002/08/06 09:44:22  jschmalz
  *	Extensions and changes for Yukon
- *	
+ *
  *	Revision 1.30  2001/04/05 11:38:09  rassmann
  *	Set SenState to idle in SkI2cWaitIrq().
  *	Changed error message in SkI2cWaitIrq().
- *	
+ *
  *	Revision 1.29  2000/08/03 14:28:17  rassmann
  *	- Added function to wait for I2C being ready before resetting the board.
  *	- Replaced one duplicate "out of range" message with correct one.
- *	
+ *
  *	Revision 1.28  1999/11/22 13:55:46  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.27  1999/05/20 09:23:10  cgoos
  *	Changes for 1000Base-T (Fan sensors).
- *	
+ *
  *	Revision 1.26  1998/12/01 13:45:47  gklug
  *	add: InitLevel to I2c struct
- *	
+ *
  *	Revision 1.25  1998/11/03 06:55:16  gklug
  *	add: Dummy Reads to I2c struct
- *	
+ *
  *	Revision 1.24  1998/10/02 14:28:59  cgoos
  *	Added prototype for SkI2cIsr.
- *	
+ *
  *	Revision 1.23  1998/09/08 12:20:11  gklug
  *	add: prototypes for init and read functions
- *	
+ *
  *	Revision 1.22  1998/09/08 07:37:56  gklug
  *	add: log error if PCI_IO voltage sensor could not be initialized
- *	
+ *
  *	Revision 1.21  1998/09/04 08:38:05  malthoff
  *	Change the values for I2C_READ and I2C_WRITE
- *	
+ *
  *	Revision 1.20  1998/08/25 07:52:22  gklug
  *	chg: Timestamps (last) added for logging
  *
  *	Revision 1.19  1998/08/25 06:09:00  gklug
  *	rmv: warning and error levels of the individual sensors.
  *	add: timing definitions for sending traps and logging errors
- *	
+ *
  *	Revision 1.18  1998/08/20 11:41:15  gklug
  *	chg: omit STRCPY macro by using char * as Sensor Description
- *	
+ *
  *	Revision 1.17  1998/08/20 11:37:43  gklug
  *	chg: change Ioc to IoC
- *	
+ *
  *	Revision 1.16  1998/08/20 11:30:38  gklug
  *	fix: SenRead declaration
- *	
+ *
  *	Revision 1.15  1998/08/20 11:27:53  gklug
  *	fix: Compile bugs with new awrning constants
- *	
+ *
  *	Revision 1.14  1998/08/20 08:53:12  gklug
  *	fix: compiler errors
  *	add: Threshold values
- *	
+ *
  *	Revision 1.13  1998/08/19 12:21:16  gklug
  *	fix: remove struct from C files (see CCC)
  *	add: typedefs for all structs
- *	
+ *
  *	Revision 1.12  1998/08/19 10:57:41  gklug
  *	add: Warning levels
- *	
+ *
  *	Revision 1.11  1998/08/18 08:37:02  malthoff
  *	Prototypes not required for SK_DIAG.
- *	
+ *
  *	Revision 1.10  1998/08/17 13:54:00  gklug
  *	fix: declaration of event function
- *	
+ *
  *	Revision 1.9  1998/08/17 06:48:39  malthoff
  *	Remove some unrequired macros.
  *	Fix the compiler errors.
- *	
+ *
  *	Revision 1.8  1998/08/14 06:47:19  gklug
  *	fix: Values are intergers
  *
@@ -290,4 +290,3 @@
 
 #endif
 #endif /* n_SKI2C_H */
-
diff --git a/drivers/sk98lin/h/skqueue.h b/drivers/sk98lin/h/skqueue.h
index 2bafd6e..bce20a7 100644
--- a/drivers/sk98lin/h/skqueue.h
+++ b/drivers/sk98lin/h/skqueue.h
@@ -29,50 +29,50 @@
  *	$Log: skqueue.h,v $
  *	Revision 1.14  2002/03/15 10:52:13  mkunz
  *	Added event classes for link aggregation
- *	
+ *
  *	Revision 1.13  1999/11/22 13:59:05  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.12  1998/09/08 08:48:01  gklug
  *	add: init level handling
- *	
+ *
  *	Revision 1.11  1998/09/03 14:15:11  gklug
  *	add: CSUM and HWAC Eventclass and function.
  *	fix: pParaPtr according to CCC
- *	
+ *
  *	Revision 1.10  1998/08/20 12:43:03  gklug
  *	add: typedef SK_QUEUE
- *	
+ *
  *	Revision 1.9  1998/08/19 09:50:59  gklug
  *	fix: remove struct keyword from c-code (see CCC) add typedefs
- *	
+ *
  *	Revision 1.8  1998/08/18 07:00:01  gklug
  *	fix: SK_PTR not defined use void * instead.
- *	
+ *
  *	Revision 1.7  1998/08/17 13:43:19  gklug
  *	chg: Parameter will be union of 64bit para, 2 times SK_U32 or SK_PTR
- *	
+ *
  *	Revision 1.6  1998/08/14 07:09:30  gklug
  *	fix: chg pAc -> pAC
- *	
+ *
  *	Revision 1.5  1998/08/11 14:26:44  gklug
  *	chg: Event Dispatcher returns now int.
- *	
+ *
  *	Revision 1.4  1998/08/11 12:15:21  gklug
  *	add: Error numbers of skqueue module
- *	
+ *
  *	Revision 1.3  1998/08/07 12:54:23  gklug
  *	fix: first compiled version
- *	
+ *
  *	Revision 1.2  1998/08/07 09:34:00  gklug
  *	adapt structure defs to CCC
  *	add: prototypes for functions
- *	
+ *
  *	Revision 1.1  1998/07/30 14:52:12  gklug
  *	Initial version.
  *	Defines Event Classes, Event structs and queue management variables.
- *	
- *	
+ *
+ *
  *
  ******************************************************************************/
 
@@ -145,4 +145,3 @@
 #define	SKERR_Q_E002	(SKERR_Q_E001+1)
 #define	SKERR_Q_E002MSG	"Undefined event class"
 #endif	/* _SKQUEUE_H_ */
-
diff --git a/drivers/sk98lin/h/skrlmt.h b/drivers/sk98lin/h/skrlmt.h
index 651bb3f..04d025b 100644
--- a/drivers/sk98lin/h/skrlmt.h
+++ b/drivers/sk98lin/h/skrlmt.h
@@ -28,122 +28,122 @@
  *	$Log: skrlmt.h,v $
  *	Revision 1.35  2003/01/31 14:12:41  mkunz
  *	single port adapter runs now with two identical MAC addresses
- *	
+ *
  *	Revision 1.34  2002/09/23 15:13:41  rwahl
  *	Editorial changes.
- *	
+ *
  *	Revision 1.33  2001/07/03 12:16:48  mkunz
  *	New Flag ChgBcPrio (Change priority of last broadcast received)
- *	
+ *
  *	Revision 1.32  2001/02/14 14:06:31  rassmann
  *	Editorial changes.
- *	
+ *
  *	Revision 1.31  2001/02/05 14:25:26  rassmann
  *	Prepared RLMT for transparent operation.
- *	
+ *
  *	Revision 1.30  2001/01/22 13:41:39  rassmann
  *	Supporting two nets on dual-port adapters.
- *	
+ *
  *	Revision 1.29  2000/11/17 08:58:00  rassmann
  *	Moved CheckSwitch from SK_RLMT_PACKET_RECEIVED to SK_RLMT_TIM event.
- *	
+ *
  *	Revision 1.28  2000/11/09 12:24:34  rassmann
  *	Editorial changes.
- *	
+ *
  *	Revision 1.27  1999/11/22 13:59:56  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.26  1999/10/04 14:01:19  rassmann
  *	Corrected reaction to reception of BPDU frames (#10441).
- *	
+ *
  *	Revision 1.25  1999/07/20 12:53:39  rassmann
  *	Fixed documentation errors for lookahead macros.
- *	
+ *
  *	Revision 1.24  1999/05/28 11:15:56  rassmann
  *	Changed behaviour to reflect Design Spec v1.2.
  *	Controlling Link LED(s).
  *	Introduced RLMT Packet Version field in RLMT Packet.
  *	Newstyle lookahead macros (checking meta-information before looking at
  *	  the packet).
- *	
+ *
  *	Revision 1.23  1999/01/28 12:50:42  rassmann
  *	Not using broadcast time stamps in CheckLinkState mode.
- *	
+ *
  *	Revision 1.22  1999/01/27 14:13:04  rassmann
  *	Monitoring broadcast traffic.
  *	Switching more reliably and not too early if switch is
  *	 configured for spanning tree.
- *	
+ *
  *	Revision 1.21  1998/12/08 13:11:25  rassmann
  *	Stopping SegTimer at RlmtStop.
- *	
+ *
  *	Revision 1.20  1998/11/24 12:37:33  rassmann
  *	Implemented segmentation check.
- *	
+ *
  *	Revision 1.19  1998/11/17 13:43:06  rassmann
  *	Handling (logical) tx failure.
  *	Sending packet on logical address after PORT_SWITCH.
- *	
+ *
  *	Revision 1.18  1998/11/13 16:56:56  rassmann
  *	Added macro version of SkRlmtLookaheadPacket.
- *	
+ *
  *	Revision 1.17  1998/11/06 18:06:05  rassmann
  *	Corrected timing when RLMT checks fail.
  *	Clearing tx counter earlier in periodical checks.
- *	
+ *
  *	Revision 1.16  1998/11/03 13:53:50  rassmann
  *	RLMT should switch now (at least in mode 3).
- *	
+ *
  *	Revision 1.15  1998/10/22 11:39:52  rassmann
  *	Corrected signed/unsigned mismatches.
  *	Corrected receive list handling and address recognition.
- *	
+ *
  *	Revision 1.14  1998/10/15 15:16:36  rassmann
  *	Finished Spanning Tree checking.
  *	Checked with lint.
- *	
+ *
  *	Revision 1.13  1998/09/24 19:16:08  rassmann
  *	Code cleanup.
  *	Introduced Timer for PORT_DOWN due to no RX.
- *	
+ *
  *	Revision 1.12  1998/09/16 11:09:52  rassmann
  *	Syntax corrections.
- *	
+ *
  *	Revision 1.11  1998/09/15 11:28:50  rassmann
  *	Syntax corrections.
- *	
+ *
  *	Revision 1.10  1998/09/14 17:07:38  rassmann
  *	Added code for port checking via LAN.
  *	Changed Mbuf definition.
- *	
+ *
  *	Revision 1.9  1998/09/07 11:14:15  rassmann
  *	Syntax corrections.
- *	
+ *
  *	Revision 1.8  1998/09/07 09:06:08  rassmann
  *	Syntax corrections.
- *	
+ *
  *	Revision 1.7  1998/09/04 19:41:34  rassmann
  *	Syntax corrections.
  *	Started entering code for checking local links.
- *	
+ *
  *	Revision 1.6  1998/09/04 12:14:28  rassmann
  *	Interface cleanup.
- *	
+ *
  *	Revision 1.5  1998/09/02 16:55:29  rassmann
  *	Updated to reflect new DRV/HWAC/RLMT interface.
- *	
+ *
  *	Revision 1.4  1998/09/02 07:26:02  afischer
  *	typedef for SK_RLMT_PORT
  *
  *	Revision 1.3  1998/08/27 14:29:03  rassmann
  *	Code cleanup.
- *	
+ *
  *	Revision 1.2  1998/08/27 14:26:25  rassmann
  *	Updated interface.
- *	
+ *
  *	Revision 1.1  1998/08/21 08:29:10  rassmann
  *	First public version.
- *	
+ *
  ******************************************************************************/
 
 /******************************************************************************
@@ -296,28 +296,28 @@
 		*(pNumBytes) = 0; \
     } \
     else {\
-        if ((_pAC->Rlmt.Port[_PortNum].Net->RlmtMode & SK_RLMT_TRANSPARENT) != 0) { \
-    		*(pNumBytes) = 0; \
-    	} \
-    	else if (IsBc) { \
-    		if (_pAC->Rlmt.Port[_PortNum].Net->RlmtMode != SK_RLMT_MODE_CLS) { \
-    			*(pNumBytes) = 6; \
-    			*(pOffset) = 6; \
-    		} \
-    		else { \
-    			*(pNumBytes) = 0; \
-    		} \
-    	} \
-    	else { \
-    		if ((PktLen) > SK_RLMT_MAX_TX_BUF_SIZE) { \
-    			/* _pAC->Rlmt.Port[_PortNum].DataPacketsPerTimeSlot++; */ \
-    			*(pNumBytes) = 0; \
-    		} \
-    		else { \
-    			*(pNumBytes) = 6; \
-    			*(pOffset) = 0; \
-    		} \
-    	} \
+	if ((_pAC->Rlmt.Port[_PortNum].Net->RlmtMode & SK_RLMT_TRANSPARENT) != 0) { \
+		*(pNumBytes) = 0; \
+	} \
+	else if (IsBc) { \
+		if (_pAC->Rlmt.Port[_PortNum].Net->RlmtMode != SK_RLMT_MODE_CLS) { \
+			*(pNumBytes) = 6; \
+			*(pOffset) = 6; \
+		} \
+		else { \
+			*(pNumBytes) = 0; \
+		} \
+	} \
+	else { \
+		if ((PktLen) > SK_RLMT_MAX_TX_BUF_SIZE) { \
+			/* _pAC->Rlmt.Port[_PortNum].DataPacketsPerTimeSlot++; */ \
+			*(pNumBytes) = 0; \
+		} \
+		else { \
+			*(pNumBytes) = 6; \
+			*(pOffset) = 0; \
+		} \
+	} \
     } \
 }
 
@@ -516,9 +516,9 @@
 
 /* ----- Private part ----- */
 	SK_BOOL			CheckSwitch;
-	SK_BOOL			RlmtOff;            /* set to zero if the Mac addresses 
-                                           are equal or the second one 
-                                           is zero */
+	SK_BOOL			RlmtOff;            /* set to zero if the Mac addresses
+					   are equal or the second one
+					   is zero */
 	SK_U16			Align01;
 
 } SK_RLMT;
diff --git a/drivers/sk98lin/h/sktimer.h b/drivers/sk98lin/h/sktimer.h
index 3f5cb1b..36f8ccb 100644
--- a/drivers/sk98lin/h/sktimer.h
+++ b/drivers/sk98lin/h/sktimer.h
@@ -29,32 +29,32 @@
  *	$Log: sktimer.h,v $
  *	Revision 1.9  1999/11/22 14:00:29  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.8  1998/09/08 08:48:02  gklug
  *	add: init level handling
- *	
+ *
  *	Revision 1.7  1998/08/20 12:31:29  gklug
  *	fix: SK_TIMCTRL needs to be defined
- *	
+ *
  *	Revision 1.6  1998/08/19 09:51:00  gklug
  *	fix: remove struct keyword from c-code (see CCC) add typedefs
- *	
+ *
  *	Revision 1.5  1998/08/17 13:43:21  gklug
  *	chg: Parameter will be union of 64bit para, 2 times SK_U32 or SK_PTR
- *	
+ *
  *	Revision 1.4  1998/08/14 07:09:31  gklug
  *	fix: chg pAc -> pAC
- *	
+ *
  *	Revision 1.3  1998/08/07 12:54:24  gklug
  *	fix: first compiled version
- *	
+ *
  *	Revision 1.2  1998/08/07 09:35:29  gklug
  *	add: Timer control struct for Adapters context
  *	add: function prototypes
- *	
+ *
  *	Revision 1.1  1998/08/05 11:27:01  gklug
  *	First version: adapted from SMT
- *	
+ *
  *
  ******************************************************************************/
 
diff --git a/drivers/sk98lin/h/sktypes.h b/drivers/sk98lin/h/sktypes.h
index 929eca8..e657016 100644
--- a/drivers/sk98lin/h/sktypes.h
+++ b/drivers/sk98lin/h/sktypes.h
@@ -20,7 +20,7 @@
  *	The information in this file is provided "AS IS" without warranty.
  *
  ******************************************************************************/
- 
+
  /*****************************************************************************
  *
  * History:
@@ -28,15 +28,15 @@
  *	$Log: sktypes.h,v $
  *	Revision 1.3  2003/02/25 14:16:40  mlindner
  *	Fix: Copyright statement
- *	
+ *
  *	Revision 1.2  1999/11/22 14:01:58  cgoos
  *	Changed license header to GPL.
  *	Now using Linux' fixed size types instead of standard types.
- *	
+ *
  *	Revision 1.1  1999/02/16 07:41:40  cgoos
  *	First version.
- *	
- *	
+ *
+ *
  *
  *****************************************************************************/
 
@@ -46,7 +46,7 @@
  *
  * In this file, all data types that are needed by the common modules
  * are mapped to Linux data types.
- * 
+ *
  *
  * Include File Hierarchy:
  *
diff --git a/drivers/sk98lin/h/skversion.h b/drivers/sk98lin/h/skversion.h
index 74c8608..ef46685 100644
--- a/drivers/sk98lin/h/skversion.h
+++ b/drivers/sk98lin/h/skversion.h
@@ -27,28 +27,26 @@
  *	$Log: skversion.h,v $
  *	Revision 1.4  2003/02/25 14:16:40  mlindner
  *	Fix: Copyright statement
- *	
+ *
  *	Revision 1.3  2003/02/25 13:30:18  mlindner
  *	Add: Support for various vendors
- *	
+ *
  *	Revision 1.1.2.1  2001/09/05 13:38:30  mlindner
  *	Removed FILE description
- *	
+ *
  *	Revision 1.1  2001/03/06 09:25:00  mlindner
  *	first version
- *	
- *	
+ *
+ *
  *
  ******************************************************************************/
- 
- 
+
+
 static const char SysKonnectFileId[] = "@(#) (C) SysKonnect GmbH.";
 static const char SysKonnectBuildNumber[] =
-	"@(#)SK-BUILD: 6.05 PL: 01"; 
+	"@(#)SK-BUILD: 6.05 PL: 01";
 
 #define BOOT_STRING	"sk98lin: Network Device Driver v6.05\n" \
 			"(C)Copyright 1999-2003 Marvell(R)."
 
 #define VER_STRING	"6.05"
-
-
diff --git a/drivers/sk98lin/h/skvpd.h b/drivers/sk98lin/h/skvpd.h
index 2433735..1be34c5 100644
--- a/drivers/sk98lin/h/skvpd.h
+++ b/drivers/sk98lin/h/skvpd.h
@@ -29,59 +29,59 @@
  *	Revision 1.15  2003/01/13 10:39:38  rschmidt
  *	Replaced define for PCI device Id for YUKON with GENESIS
  *	Editorial changes
- *	
+ *
  *	Revision 1.14  2002/11/14 15:18:10  gheinig
  *	Added const specifier to key and buf parameters for VpdPara,VpdRead
  *	and VpdWrite. This is necessary for the Diag 7 GUI API
- *	
+ *
  *	Revision 1.13  2002/10/14 15:58:18  rschmidt
  *	Added entry in rom_size struct s_vpd
  *	Editorial changes
- *	
+ *
  *	Revision 1.12  2002/09/09 14:43:51  mkarl
  *	added PCI Id of Yukon for reading VPD in diag before the adapter has
  *	been initialized
  *	editorial changes
- *	
+ *
  *	Revision 1.11  2002/07/26 13:19:16  mkarl
  *	added support for Yukon
  *	added vpd_size to VPD struct
- *	
+ *
  *	Revision 1.10  2000/08/10 11:29:07  rassmann
  *	Editorial changes.
  *	Preserving 32-bit alignment in structs for the adapter context.
  *	Removed unused function VpdWriteDword() (#if 0).
  *	Made VpdReadKeyword() available for SKDIAG only.
- *	
+ *
  *	Revision 1.9  1999/11/22 14:02:27  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.8  1999/03/11 14:26:40  malthoff
  *	Replace __STDC__ with SK_KR_PROTO.
- *	
+ *
  *	Revision 1.7  1998/10/28 07:27:17  gklug
  *	rmv: SWAP macros
  *	add: VPD_IN/OUT8 macros
  *	chg: interface definition
- *	
+ *
  *	Revision 1.6  1998/10/22 10:03:44  gklug
  *	fix: use SK_OUT16 instead of SK_OUTW
- *	
+ *
  *	Revision 1.5  1998/10/14 07:05:31  cgoos
  *	Changed constants in SK_SWAP_32 to UL.
- *	
+ *
  *	Revision 1.4  1998/08/19 08:14:09  gklug
  *	fix: remove struct keyword as much as possible from the C-code (see CCC)
- *	
+ *
  *	Revision 1.3  1998/08/18 08:18:56  malthoff
  *	Modify VPD in and out macros for SK_DIAG
- *	
+ *
  *	Revision 1.2  1998/07/03 14:49:08  malthoff
  *	Add VPD_INxx() and VPD_OUTxx() macros for the Diagnostics tool.
- *	
+ *
  *	Revision 1.1  1998/06/19 14:08:03  malthoff
  *	Created.
- *	
+ *
  *
  ******************************************************************************/
 
diff --git a/drivers/sk98lin/h/xmac_ii.h b/drivers/sk98lin/h/xmac_ii.h
index ddddd2b..2ef903a 100644
--- a/drivers/sk98lin/h/xmac_ii.h
+++ b/drivers/sk98lin/h/xmac_ii.h
@@ -30,103 +30,103 @@
  *	Added defines for copper MDI/MDIX configuration
  *	Added defines for LED Control Register
  *	Editorial changes
- *	
+ *
  *	Revision 1.45  2002/12/10 14:35:13  rschmidt
  *	Corrected defines for Extended PHY Specific Control
  *	Added defines for Ext. PHY Specific Ctrl 2 Reg. (Fiber specific)
- *	
+ *
  *	Revision 1.44  2002/12/09 14:58:41  rschmidt
  *	Added defines for Ext. PHY Specific Ctrl Reg. (downshift feature)
  *	Added 'GMR_FS_UN_SIZE'-Bit to Rx GMAC FIFO Flush Mask
- *	
+ *
  *	Revision 1.43  2002/12/05 10:14:45  rschmidt
  *	Added define for GMAC's Half Duplex Burst Mode
  *	Added define for Rx GMAC FIFO Flush Mask (default)
- *	
+ *
  *	Revision 1.42  2002/11/12 16:48:19  rschmidt
  *	Added defines for Cable Diagnostic Register (GPHY)
  *	Editorial changes
- *	
+ *
  *	Revision 1.41  2002/10/21 11:20:22  rschmidt
  *	Added bit GMR_FS_GOOD_FC to GMR_FS_ANY_ERR
  *	Editorial changes
- *	
+ *
  *	Revision 1.40  2002/10/14 14:54:14  rschmidt
  *	Added defines for GPHY Specific Status and GPHY Interrupt Status
  *	Added bits PHY_M_IS_AN_ERROR and PHY_M_IS_FIFO_ERROR to PHY_M_DEF_MSK
  *	Editorial changes
- *	
+ *
  *	Revision 1.39  2002/10/10 15:53:44  mkarl
  *	added some bit definitions for link speed status and LED's
- *	
+ *
  *	Revision 1.38  2002/08/21 16:23:46  rschmidt
  *	Added defines for PHY Specific Ctrl Reg
  *	Editorial changes
- *	
+ *
  *	Revision 1.37  2002/08/16 14:50:33  rschmidt
  *	Added defines for Auto-Neg. Advertisement YUKON Fiber (88E1011S only)
  *	Changed define PHY_M_DEF_MSK for GPHY IRQ Mask
  *	Editorial changes
- *	
+ *
  *	Revision 1.36  2002/08/12 13:21:10  rschmidt
  *	Added defines for different Broadcom PHY Ids
- *	
+ *
  *	Revision 1.35  2002/08/08 15:58:01  rschmidt
  *	Added defines for Manual LED Override register (YUKON)
  *	Editorial changes
- *	
+ *
  *	Revision 1.34  2002/07/31 17:23:36  rwahl
  *	Added define GMR_FS_ANY_ERR (analogous to XMR_FS_ANY_ERR).
- *	
+ *
  *	Revision 1.33  2002/07/23 16:03:37  rschmidt
  *	Added defines for GPHY registers
  *	Editorial changes
- *	
+ *
  *	Revision 1.32  2002/07/15 18:14:37  rwahl
  *	Added GMAC MIB counters definitions.
  *	Editorial changes.
- *	
+ *
  *	Revision 1.31  2002/07/15 15:42:50  rschmidt
  *	Removed defines from PHY specific reg. which are
  *	common to all PHYs
  *	Added defines for GMAC MIB Counters
  *	Editorial changes
- *	
+ *
  *	Revision 1.30  2002/06/05 08:22:12  rschmidt
  *	Changed defines for GMAC Rx Control Register and Rx Status
  *	Editorial changes
- *	
+ *
  *	Revision 1.29  2002/04/25 11:43:56  rschmidt
  *	Added define PHY_B_AS_PAUSE_MSK for BCom Pause Res.
  *	Added new registers and defines for YUKON (GMAC, GPHY)
  *	Added Receive Frame Status Encoding for YUKON
  *	Editorial changes
- *	
+ *
  *	Revision 1.28  2000/11/09 12:32:49  rassmann
  *	Renamed variables.
- *	
+ *
  *	Revision 1.27  2000/05/17 11:00:46  malthoff
  *	Add bit for enable/disable power management in BCOM chip.
- *	
+ *
  *	Revision 1.26  1999/11/22 14:03:00  cgoos
  *	Changed license header to GPL.
- *	
+ *
  *	Revision 1.25  1999/08/12 19:19:38  malthoff
  *	Add PHY_B_AC_TX_TST bit according to BCOM A1 errata sheet.
- *	
+ *
  *	Revision 1.24  1999/07/30 11:27:21  cgoos
  *	Fixed a missing end-of-comment.
- *	
+ *
  *	Revision 1.23  1999/07/30 07:03:31  malthoff
  *	Cut some long comments.
  *	Correct the XMAC PHY ID definitions.
- *	
+ *
  *	Revision 1.22  1999/05/19 07:33:18  cgoos
  *	Changes for 1000Base-T.
- *	
+ *
  *	Revision 1.21  1999/03/25 07:46:11  malthoff
  *	Add XM_HW_CFG, XM_TS_READ, and XM_TS_LOAD registers.
- *	
+ *
  *	Revision 1.20  1999/03/12 13:36:09  malthoff
  *	Remove __STDC__.
  *
@@ -912,7 +912,7 @@
 /*	PHY_AN_LP_NP		(see XMAC) Bit  3:	Link Partner can Next Page */
 /*	PHY_AN_LOC_NP		(see XMAC) Bit  2:	Local PHY can Next Page */
 /*	PHY_AN_RX_PG		(see XMAC) Bit  1:	Page Received */
-#define PHY_B_AN_LP_CAP	(1<<0)	/* Bit  0:	Link Partner Auto-Neg. Cap. */ 	
+#define PHY_B_AN_LP_CAP	(1<<0)	/* Bit  0:	Link Partner Auto-Neg. Cap. */
 
 /*****  PHY_LONE_AUNE_EXP	16 bit r/o	Auto-Negotiation Expansion Reg *****/
 #define PHY_L_AN_BP		(1<<5)	/* Bit  5:	Base Page Indication */
@@ -920,7 +920,7 @@
 /*	PHY_AN_LP_NP		(see XMAC) Bit  3:	Link Partner can Next Page */
 /*	PHY_AN_LOC_NP		(see XMAC) Bit  2:	Local PHY can Next Page */
 /*	PHY_AN_RX_PG		(see XMAC) Bit  1:	Page Received */
-#define PHY_B_AN_LP_CAP	(1<<0)	/* Bit  0:	Link Partner Auto-Neg. Cap. */ 	
+#define PHY_B_AN_LP_CAP	(1<<0)	/* Bit  0:	Link Partner Auto-Neg. Cap. */
 
 
 /*****  PHY_XMAC_NEPG		16 bit r/w	Next Page Register *****/
@@ -1315,7 +1315,7 @@
 #define PHY_M_PC_POL_R_DIS	(1<<1)	/* Bit  1:	Polarity Reversal Disabled */
 #define PHY_M_PC_DIS_JABBER	(1<<0)	/* Bit  0:	Disable Jabber */
 
-#define PHY_M_PC_MDI_XMODE(x)	SHIFT5(x)	
+#define PHY_M_PC_MDI_XMODE(x)	SHIFT5(x)
 #define PHY_M_PC_MAN_MDI	0    	/* 00 = Manual MDI configuration */
 #define PHY_M_PC_MAN_MDIX	1		/* 01 = Manual MDIX configuration */
 #define PHY_M_PC_ENA_AUTO	3		/* 11 = Enable Automatic Crossover */
@@ -1614,7 +1614,7 @@
 #define GM_GPSR_FC_RX_DIS	(1<<2)	/* Bit  2:	Rx Flow Control Mode Disabled */
 #define GM_GPSR_PROM_EN		(1<<1)	/* Bit  1:	Promiscuous Mode Enabled */
 								/* Bit  0:	reserved */
-	
+
 /*	GM_GP_CTRL	16 bit r/w	General Purpose Control Register */
 								/* Bit 15:	reserved */
 #define GM_GPCR_PROM_ENA	(1<<14)	/* Bit 14:	Enable Promiscuous Mode */
@@ -1636,20 +1636,20 @@
 #define GM_GPCR_SPEED_1000	(GM_GPCR_GIGS_ENA | GM_GPCR_SPEED_100)
 #define GM_GPCR_AU_ALL_DIS	(GM_GPCR_AU_DUP_DIS | GM_GPCR_AU_FCT_DIS |\
 							 GM_GPCR_AU_SPD_DIS)
-	
+
 /*	GM_TX_CTRL				16 bit r/w	Transmit Control Register */
 
 #define GM_TXCR_FORCE_JAM	(1<<15)	/* Bit 15:	Force Jam / Flow-Control */
 #define GM_TXCR_CRC_DIS		(1<<14)	/* Bit 14:	Disable insertion of CRC */
 #define GM_TXCR_PAD_DIS		(1<<13)	/* Bit 13:	Disable padding of packets */
 #define GM_TXCR_COL_THR		(4<<10)	/* Bit 12..10:	Collision Threshold */
-	
+
 /*	GM_RX_CTRL				16 bit r/w	Receive Control Register */
 #define GM_RXCR_UCF_ENA		(1<<15)	/* Bit 15:	Enable Unicast filtering */
 #define GM_RXCR_MCF_ENA		(1<<14)	/* Bit 14:	Enable Multicast filtering */
 #define GM_RXCR_CRC_DIS		(1<<13)	/* Bit 13:	Remove 4-byte CRC */
 #define GM_RXCR_PASS_FC		(1<<12)	/* Bit 12:	Pass FC packets to FIFO */
-	
+
 /*	GM_TX_PARAM				16 bit r/w	Transmit Parameter Register */
 #define GM_TXPA_JAMLEN_MSK	(0x03<<14)	/* Bit 15..14:	Jam Length */
 #define GM_TXPA_JAMIPG_MSK	(0x1f<<9)	/* Bit 13..9:	Jam IPG */
@@ -1666,7 +1666,7 @@
 #define GM_SMOD_JUMBO_ENA	(1<<8)	/* Bit  8:	Enable Jumbo (Max. Frame Length) */
 								/* Bit  7..5:	reserved */
 #define GM_SMOD_IPG_MSK		0x1f	/* Bit 4..0:	Inter-Packet Gap (IPG) */
-	
+
 #define DATA_BLIND_VAL(x)	SHIFT11(x)
 #define DATA_BLIND_FAST_ETH	0x1c
 #define DATA_BLIND_GIGABIT	4
@@ -1682,13 +1682,13 @@
 #define GM_SMI_CT_RD_VAL	(1<<4)	/* Bit  4:	Read Valid (Read completed) */
 #define GM_SMI_CT_BUSY		(1<<3)	/* Bit  3:	Busy (Operation in progress) */
 								/* Bit   2..0:	reserved */
-	
+
 /*	GM_PHY_ADDR				16 bit r/w	GPHY Address Register */
 								/* Bit  15..6:	reserved */
 #define GM_PAR_MIB_CLR		(1<<5)	/* Bit  5:	Set MIB Clear Counter Mode */
 #define GM_PAR_MIB_TST		(1<<4)	/* Bit  4:	MIB Load Counter (Test Mode) */
 								/* Bit   3..0:	reserved */
-	
+
 /* Receive Frame Status Encoding */
 #define GMR_FS_LEN	(0xffffUL<<16)	/* Bit 31..16:	Rx Frame Length */
 								/* Bit  15..14:	reserved */
