Browse Source

refresh kernel patches

SVN-Revision: 11211
Gabor Juhos 18 years ago
parent
commit
19d9cdedd4

File diff suppressed because it is too large
+ 199 - 199
target/linux/storm/patches/1001-arch.patch


+ 39 - 39
target/linux/storm/patches/1002-gmac.patch

@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/net/sl2312_emac.c
+Index: linux-2.6.23.17/drivers/net/sl2312_emac.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl2312_emac.c	2008-03-15 16:59:16.361058585 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl2312_emac.c
 @@ -0,0 +1,4604 @@
 @@ -0,0 +1,4604 @@
 +#include <linux/module.h>
 +#include <linux/module.h>
 +#include <linux/kernel.h>
 +#include <linux/kernel.h>
@@ -4607,10 +4607,10 @@ Index: linux-2.6.23.16/drivers/net/sl2312_emac.c
 +	}
 +	}
 +}
 +}
 +
 +
-Index: linux-2.6.23.16/drivers/net/sl351x_crc16.c
+Index: linux-2.6.23.17/drivers/net/sl351x_crc16.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_crc16.c	2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_crc16.c
 @@ -0,0 +1,93 @@
 @@ -0,0 +1,93 @@
 +/****************************************************************************
 +/****************************************************************************
 +* Name			: sl351x_crc16.c
 +* Name			: sl351x_crc16.c
@@ -4705,10 +4705,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_crc16.c
 +
 +
 +    return(SWAP_WORD(crc));
 +    return(SWAP_WORD(crc));
 +}
 +}
-Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+Index: linux-2.6.23.17/drivers/net/sl351x_gmac.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_gmac.c	2008-03-15 16:59:23.361457295 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_gmac.c
 @@ -0,0 +1,5622 @@
 @@ -0,0 +1,5622 @@
 +/**************************************************************************
 +/**************************************************************************
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
@@ -10332,10 +10332,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
 +late_initcall(sl351x_mac_address_init);
 +late_initcall(sl351x_mac_address_init);
 +
 +
 +
 +
-Index: linux-2.6.23.16/drivers/net/sl351x_hash.c
+Index: linux-2.6.23.17/drivers/net/sl351x_hash.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_hash.c	2008-03-15 16:59:32.361970401 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_hash.c
 @@ -0,0 +1,713 @@
 @@ -0,0 +1,713 @@
 +/**************************************************************************
 +/**************************************************************************
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
@@ -11050,10 +11050,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_hash.c
 +}
 +}
 +
 +
 +
 +
-Index: linux-2.6.23.16/drivers/net/sl351x_nat.c
+Index: linux-2.6.23.17/drivers/net/sl351x_nat.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_nat.c	2008-03-15 16:59:39.862397640 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_nat.c
 @@ -0,0 +1,1736 @@
 @@ -0,0 +1,1736 @@
 +/****************************************************************************
 +/****************************************************************************
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
@@ -12791,10 +12791,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_nat.c
 +
 +
 +#endif // CONFIG_SL351x_NAT
 +#endif // CONFIG_SL351x_NAT
 +
 +
-Index: linux-2.6.23.16/drivers/net/sl351x_proc.c
+Index: linux-2.6.23.17/drivers/net/sl351x_proc.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_proc.c	2008-03-15 16:59:48.862910740 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_proc.c
 @@ -0,0 +1,578 @@
 @@ -0,0 +1,578 @@
 +/****************************************************************************
 +/****************************************************************************
 +* Copyright 2006 Storlink Corp.  All rights reserved.
 +* Copyright 2006 Storlink Corp.  All rights reserved.
@@ -13374,10 +13374,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_proc.c
 +module_exit(fini);
 +module_exit(fini);
 +
 +
 +#endif	// CONFIG_PROC_FS
 +#endif	// CONFIG_PROC_FS
-Index: linux-2.6.23.16/drivers/net/sl351x_toe.c
+Index: linux-2.6.23.17/drivers/net/sl351x_toe.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl351x_toe.c	2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl351x_toe.c
 @@ -0,0 +1,1083 @@
 @@ -0,0 +1,1083 @@
 +/**************************************************************************
 +/**************************************************************************
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
@@ -14462,10 +14462,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_toe.c
 +}
 +}
 +
 +
 +
 +
-Index: linux-2.6.23.16/drivers/net/sl_lepus_hash.c
+Index: linux-2.6.23.17/drivers/net/sl_lepus_hash.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl_lepus_hash.c	2008-03-15 16:59:57.863423587 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl_lepus_hash.c
 @@ -0,0 +1,553 @@
 @@ -0,0 +1,553 @@
 +/**************************************************************************
 +/**************************************************************************
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
@@ -15020,10 +15020,10 @@ Index: linux-2.6.23.16/drivers/net/sl_lepus_hash.c
 +}
 +}
 +
 +
 +
 +
-Index: linux-2.6.23.16/drivers/net/sl_switch.c
+Index: linux-2.6.23.17/drivers/net/sl_switch.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/net/sl_switch.c	2008-03-15 17:00:08.364022040 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/net/sl_switch.c
 @@ -0,0 +1,650 @@
 @@ -0,0 +1,650 @@
 +#include <linux/module.h>
 +#include <linux/module.h>
 +#include <linux/kernel.h>
 +#include <linux/kernel.h>
@@ -15675,10 +15675,10 @@ Index: linux-2.6.23.16/drivers/net/sl_switch.c
 +}
 +}
 +EXPORT_SYMBOL(SPI_get_identifier);
 +EXPORT_SYMBOL(SPI_get_identifier);
 +
 +
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h	2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
 @@ -0,0 +1,2223 @@
 @@ -0,0 +1,2223 @@
 +/****************************************************************************
 +/****************************************************************************
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
@@ -17903,10 +17903,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h
 +/* transmit timeout value */
 +/* transmit timeout value */
 +
 +
 +#endif //_GMAC_SL351x_H
 +#endif //_GMAC_SL351x_H
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h	2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h
 @@ -0,0 +1,365 @@
 @@ -0,0 +1,365 @@
 +/*-----------------------------------------------------------------------------------
 +/*-----------------------------------------------------------------------------------
 +*	sl351x_hash_cfg.h
 +*	sl351x_hash_cfg.h
@@ -18273,10 +18273,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_hash_cfg.h
 +
 +
 +
 +
 +
 +
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h	2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h
 @@ -0,0 +1,211 @@
 @@ -0,0 +1,211 @@
 +/**************************************************************************
 +/**************************************************************************
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.                
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.                
@@ -18489,10 +18489,10 @@ Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_nat_cfg.h
 +
 +
 +
 +
 +
 +
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_toe.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_toe.h
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_toe.h	2008-03-15 16:57:25.854761029 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_toe.h
 @@ -0,0 +1,88 @@
 @@ -0,0 +1,88 @@
 +/**************************************************************************
 +/**************************************************************************
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.
 +* Copyright 2006 StorLink Semiconductors, Inc.  All rights reserved.

+ 3 - 3
target/linux/storm/patches/1003-gmac_one_phy.patch

@@ -1,7 +1,7 @@
-Index: linux-2.6.x/include/asm-arm/arch-sl2312/sl351x_gmac.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
 ===================================================================
 ===================================================================
---- linux-2.6.x.orig/include/asm-arm/arch-sl2312/sl351x_gmac.h	2007-09-04 14:18:28.540865746 +0300
-+++ linux-2.6.x/include/asm-arm/arch-sl2312/sl351x_gmac.h	2007-09-04 14:15:55.584200244 +0300
+--- linux-2.6.23.17.orig/include/asm-arm/arch-sl2312/sl351x_gmac.h
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
 @@ -21,7 +21,7 @@
 @@ -21,7 +21,7 @@
  #undef BIG_ENDIAN
  #undef BIG_ENDIAN
  #define BIG_ENDIAN  				0
  #define BIG_ENDIAN  				0

+ 9 - 9
target/linux/storm/patches/1004-gmac-enable-napi.patch

@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+Index: linux-2.6.23.17/drivers/net/sl351x_gmac.c
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/net/sl351x_gmac.c	2008-03-15 16:59:23.361457295 +0200
-+++ linux-2.6.23.16/drivers/net/sl351x_gmac.c	2008-03-15 17:00:32.365389612 +0200
+--- linux-2.6.23.17.orig/drivers/net/sl351x_gmac.c
++++ linux-2.6.23.17/drivers/net/sl351x_gmac.c
 @@ -68,9 +68,11 @@
 @@ -68,9 +68,11 @@
  #include <linux/ip.h>
  #include <linux/ip.h>
  #endif
  #endif
@@ -15,7 +15,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  #endif
  #endif
  #define GMAX_TX_INTR_DISABLED			1
  #define GMAX_TX_INTR_DISABLED			1
  #define DO_HW_CHKSUM					1
  #define DO_HW_CHKSUM					1
-@@ -124,12 +126,17 @@
+@@ -124,12 +126,17 @@ static	char _debug_prefetch_buf[_DEBUG_P
   *************************************************************/
   *************************************************************/
  static int	gmac_initialized = 0;
  static int	gmac_initialized = 0;
  TOE_INFO_T toe_private_data;
  TOE_INFO_T toe_private_data;
@@ -35,7 +35,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
  #undef CONFIG_SL351x_RXTOE
  #undef CONFIG_SL351x_RXTOE
  extern NAT_CFG_T nat_cfg;
  extern NAT_CFG_T nat_cfg;
-@@ -2443,7 +2450,8 @@
+@@ -2443,7 +2450,8 @@ static irqreturn_t toe_gmac_interrupt (i
  	toe = (TOE_INFO_T *)&toe_private_data;
  	toe = (TOE_INFO_T *)&toe_private_data;
  //	handle NAPI
  //	handle NAPI
  #ifdef CONFIG_SL_NAPI
  #ifdef CONFIG_SL_NAPI
@@ -45,7 +45,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  {
  {
  /* disable GMAC interrupt */
  /* disable GMAC interrupt */
      //toe_gmac_disable_interrupt(tp->irq);
      //toe_gmac_disable_interrupt(tp->irq);
-@@ -2530,7 +2538,7 @@
+@@ -2530,7 +2538,7 @@ if (storlink_ctl.pauseoff == 1)
  				{
  				{
  					if (likely(netif_rx_schedule_prep(dev)))
  					if (likely(netif_rx_schedule_prep(dev)))
          			{
          			{
@@ -54,7 +54,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
          				// disable GMAC-0 rx interrupt
          				// disable GMAC-0 rx interrupt
          				// class-Q & TOE-Q are implemented in future
          				// class-Q & TOE-Q are implemented in future
          				//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
          				//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
-@@ -2563,7 +2571,7 @@
+@@ -2563,7 +2571,7 @@ if (storlink_ctl.pauseoff == 1)
  			{
  			{
  				if (likely(netif_rx_schedule_prep(dev)))
  				if (likely(netif_rx_schedule_prep(dev)))
          		{
          		{
@@ -63,7 +63,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
           			// disable GMAC-0 rx interrupt
           			// disable GMAC-0 rx interrupt
          			// class-Q & TOE-Q are implemented in future
          			// class-Q & TOE-Q are implemented in future
          			//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
          			//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
-@@ -4217,7 +4225,7 @@
+@@ -4217,7 +4225,7 @@ static int gmac_rx_poll(struct net_devic
  	GMAC_INFO_T			*tp = (GMAC_INFO_T *)dev->priv;
  	GMAC_INFO_T			*tp = (GMAC_INFO_T *)dev->priv;
  	unsigned int		status4;
  	unsigned int		status4;
  	volatile DMA_RWPTR_T	fq_rwptr;
  	volatile DMA_RWPTR_T	fq_rwptr;
@@ -72,7 +72,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	//unsigned long		rx_old_bytes;
  	//unsigned long		rx_old_bytes;
  	struct net_device_stats *isPtr = (struct net_device_stats *)&tp->ifStatics;
  	struct net_device_stats *isPtr = (struct net_device_stats *)&tp->ifStatics;
  	//unsigned long long	rx_time;
  	//unsigned long long	rx_time;
-@@ -4479,7 +4487,7 @@
+@@ -4479,7 +4487,7 @@ static int gmac_rx_poll(struct net_devic
  
  
  	if (rwptr.bits.rptr == rwptr.bits.wptr)
  	if (rwptr.bits.rptr == rwptr.bits.wptr)
  	{
  	{

+ 17 - 17
target/linux/storm/patches/1005-gmac-napi-mask-intrs.patch

@@ -1,8 +1,8 @@
-Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+Index: linux-2.6.23.17/drivers/net/sl351x_gmac.c
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/net/sl351x_gmac.c	2008-03-15 17:00:32.365389612 +0200
-+++ linux-2.6.23.16/drivers/net/sl351x_gmac.c	2008-03-15 17:00:55.366700383 +0200
-@@ -127,6 +127,7 @@
+--- linux-2.6.23.17.orig/drivers/net/sl351x_gmac.c
++++ linux-2.6.23.17/drivers/net/sl351x_gmac.c
+@@ -127,6 +127,7 @@ static	char _debug_prefetch_buf[_DEBUG_P
  static int	gmac_initialized = 0;
  static int	gmac_initialized = 0;
  TOE_INFO_T toe_private_data;
  TOE_INFO_T toe_private_data;
  static int		do_again = 0;
  static int		do_again = 0;
@@ -10,7 +10,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  spinlock_t gmac_fq_lock;
  spinlock_t gmac_fq_lock;
  unsigned int FLAG_SWITCH;
  unsigned int FLAG_SWITCH;
  
  
-@@ -1065,7 +1066,8 @@
+@@ -1065,7 +1066,8 @@ static void toe_init_gmac(struct net_dev
  	    tp->intr3_enabled = 	0xffffffff;
  	    tp->intr3_enabled = 	0xffffffff;
  	    tp->intr4_selected = 	GMAC0_INT_BITS | CLASS_RX_FULL_INT_BITS |
  	    tp->intr4_selected = 	GMAC0_INT_BITS | CLASS_RX_FULL_INT_BITS |
  	    						HWFQ_EMPTY_INT_BIT | SWFQ_EMPTY_INT_BIT;
  	    						HWFQ_EMPTY_INT_BIT | SWFQ_EMPTY_INT_BIT;
@@ -20,7 +20,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
  	    data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) & ~tp->intr0_selected;
  	    data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) & ~tp->intr0_selected;
  	    writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
  	    writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
-@@ -1115,7 +1117,7 @@
+@@ -1115,7 +1117,7 @@ static void toe_init_gmac(struct net_dev
  	    	tp->intr3_enabled	|= 	0xffffffff;
  	    	tp->intr3_enabled	|= 	0xffffffff;
  	    	tp->intr4_selected 	|= 	CLASS_RX_FULL_INT_BITS |
  	    	tp->intr4_selected 	|= 	CLASS_RX_FULL_INT_BITS |
  	    							HWFQ_EMPTY_INT_BIT | SWFQ_EMPTY_INT_BIT;
  	    							HWFQ_EMPTY_INT_BIT | SWFQ_EMPTY_INT_BIT;
@@ -29,7 +29,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		}
  		}
  	    data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) | tp->intr0_selected;
  	    data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) | tp->intr0_selected;
  	    writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
  	    writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
-@@ -2408,7 +2410,7 @@
+@@ -2408,7 +2410,7 @@ static inline void toe_gmac_fill_free_q(
  	// unsigned short max_cnt=TOE_SW_FREEQ_DESC_NUM>>1;
  	// unsigned short max_cnt=TOE_SW_FREEQ_DESC_NUM>>1;
  
  
  	fq_rwptr.bits32 = readl(TOE_GLOBAL_BASE + GLOBAL_SWFQ_RWPTR_REG);
  	fq_rwptr.bits32 = readl(TOE_GLOBAL_BASE + GLOBAL_SWFQ_RWPTR_REG);
@@ -38,7 +38,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	//while ((max_cnt--) && (unsigned short)RWPTR_ADVANCE_ONE(fq_rwptr.bits.wptr,
  	//while ((max_cnt--) && (unsigned short)RWPTR_ADVANCE_ONE(fq_rwptr.bits.wptr,
  	//				TOE_SW_FREEQ_DESC_NUM) != fq_rwptr.bits.rptr) {
  	//				TOE_SW_FREEQ_DESC_NUM) != fq_rwptr.bits.rptr) {
  	while ((unsigned short)RWPTR_ADVANCE_ONE(fq_rwptr.bits.wptr,
  	while ((unsigned short)RWPTR_ADVANCE_ONE(fq_rwptr.bits.wptr,
-@@ -2428,10 +2430,47 @@
+@@ -2428,10 +2430,47 @@ static inline void toe_gmac_fill_free_q(
  		SET_WPTR(TOE_GLOBAL_BASE+GLOBAL_SWFQ_RWPTR_REG, fq_rwptr.bits.wptr);
  		SET_WPTR(TOE_GLOBAL_BASE+GLOBAL_SWFQ_RWPTR_REG, fq_rwptr.bits.wptr);
  		toe_private_data.fq_rx_rwptr.bits32 = fq_rwptr.bits32;
  		toe_private_data.fq_rx_rwptr.bits32 = fq_rwptr.bits32;
  	}
  	}
@@ -87,7 +87,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  /*----------------------------------------------------------------------
  /*----------------------------------------------------------------------
  * toe_gmac_interrupt
  * toe_gmac_interrupt
  *----------------------------------------------------------------------*/
  *----------------------------------------------------------------------*/
-@@ -2492,6 +2531,7 @@
+@@ -2492,6 +2531,7 @@ if (1)
  		writel(status3 & tp->intr3_enabled, TOE_GLOBAL_BASE+GLOBAL_INTERRUPT_STATUS_3_REG);
  		writel(status3 & tp->intr3_enabled, TOE_GLOBAL_BASE+GLOBAL_INTERRUPT_STATUS_3_REG);
  	if (status4)
  	if (status4)
  		writel(status4 & tp->intr4_enabled, TOE_GLOBAL_BASE+GLOBAL_INTERRUPT_STATUS_4_REG);
  		writel(status4 & tp->intr4_enabled, TOE_GLOBAL_BASE+GLOBAL_INTERRUPT_STATUS_4_REG);
@@ -95,7 +95,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  #if 0
  #if 0
  	/* handle freeq interrupt first */
  	/* handle freeq interrupt first */
  	if (status4 & tp->intr4_enabled) {
  	if (status4 & tp->intr4_enabled) {
-@@ -2536,10 +2576,31 @@
+@@ -2536,10 +2576,31 @@ if (1)
  			}
  			}
  				if (netif_running(dev) && (status1 & DEFAULT_Q0_INT_BIT) && (tp->intr1_enabled & DEFAULT_Q0_INT_BIT))
  				if (netif_running(dev) && (status1 & DEFAULT_Q0_INT_BIT) && (tp->intr1_enabled & DEFAULT_Q0_INT_BIT))
  				{
  				{
@@ -130,7 +130,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
          				// class-Q & TOE-Q are implemented in future
          				// class-Q & TOE-Q are implemented in future
          				//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
          				//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
          				//data32 &= ~DEFAULT_Q0_INT_BIT;
          				//data32 &= ~DEFAULT_Q0_INT_BIT;
-@@ -2549,7 +2610,8 @@
+@@ -2549,7 +2610,8 @@ if (1)
  						//tp->total_q_cnt_napi=0;
  						//tp->total_q_cnt_napi=0;
  						//rx_time = jiffies;
  						//rx_time = jiffies;
  						//rx_old_bytes = isPtr->rx_bytes;
  						//rx_old_bytes = isPtr->rx_bytes;
@@ -140,7 +140,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
          			}
          			}
  			}
  			}
  		}
  		}
-@@ -2569,9 +2631,31 @@
+@@ -2569,9 +2631,31 @@ if (1)
  
  
  			if (netif_running(dev) && (status1 & DEFAULT_Q1_INT_BIT) && (tp->intr1_enabled & DEFAULT_Q1_INT_BIT))
  			if (netif_running(dev) && (status1 & DEFAULT_Q1_INT_BIT) && (tp->intr1_enabled & DEFAULT_Q1_INT_BIT))
  			{
  			{
@@ -174,7 +174,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
           			// disable GMAC-0 rx interrupt
           			// disable GMAC-0 rx interrupt
          			// class-Q & TOE-Q are implemented in future
          			// class-Q & TOE-Q are implemented in future
          			//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
          			//data32 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
-@@ -2583,9 +2667,13 @@
+@@ -2583,9 +2667,13 @@ if (1)
  					//rx_time = jiffies;
  					//rx_time = jiffies;
  					//rx_old_bytes = isPtr->rx_bytes;
  					//rx_old_bytes = isPtr->rx_bytes;
             			__netif_rx_schedule(dev);
             			__netif_rx_schedule(dev);
@@ -188,7 +188,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	}
  	}
  
  
  	// Interrupt Status 0
  	// Interrupt Status 0
-@@ -3306,8 +3394,10 @@
+@@ -3306,8 +3394,10 @@ next_rx:
  		SET_RPTR(&tp->default_qhdr->word1, rwptr.bits.rptr);
  		SET_RPTR(&tp->default_qhdr->word1, rwptr.bits.rptr);
       	tp->rx_rwptr.bits32 = rwptr.bits32;
       	tp->rx_rwptr.bits32 = rwptr.bits32;
  
  
@@ -200,7 +200,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  }
  }
  
  
  /*----------------------------------------------------------------------
  /*----------------------------------------------------------------------
-@@ -4217,6 +4307,7 @@
+@@ -4217,6 +4307,7 @@ static int gmac_rx_poll(struct net_devic
      GMAC_RXDESC_T   	*curr_desc;
      GMAC_RXDESC_T   	*curr_desc;
  	struct sk_buff 		*skb;
  	struct sk_buff 		*skb;
      DMA_RWPTR_T			rwptr;
      DMA_RWPTR_T			rwptr;
@@ -208,7 +208,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	unsigned int 		pkt_size;
  	unsigned int 		pkt_size;
  	unsigned int        desc_count;
  	unsigned int        desc_count;
  	unsigned int        good_frame, chksum_status, rx_status;
  	unsigned int        good_frame, chksum_status, rx_status;
-@@ -4231,7 +4322,7 @@
+@@ -4231,7 +4322,7 @@ static int gmac_rx_poll(struct net_devic
  	//unsigned long long	rx_time;
  	//unsigned long long	rx_time;
  
  
  
  
@@ -217,7 +217,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  #if 1
  #if 1
  	if (do_again)
  	if (do_again)
  	{
  	{
-@@ -4516,6 +4607,30 @@
+@@ -4516,6 +4607,30 @@ static int gmac_rx_poll(struct net_devic
  #endif
  #endif
          //toe_gmac_fill_free_q();
          //toe_gmac_fill_free_q();
          netif_rx_complete(dev);
          netif_rx_complete(dev);

+ 55 - 55
target/linux/storm/patches/1006-gmac-napi-tx.patch

@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
+Index: linux-2.6.23.17/drivers/net/sl351x_gmac.c
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/net/sl351x_gmac.c	2008-03-15 17:00:55.366700383 +0200
-+++ linux-2.6.23.16/drivers/net/sl351x_gmac.c	2008-03-15 17:01:08.367441241 +0200
+--- linux-2.6.23.17.orig/drivers/net/sl351x_gmac.c
++++ linux-2.6.23.17/drivers/net/sl351x_gmac.c
 @@ -43,9 +43,13 @@
 @@ -43,9 +43,13 @@
  
  
  #include <linux/mtd/kvctl.h>
  #include <linux/mtd/kvctl.h>
@@ -17,7 +17,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
  #ifndef CONFIG_SL351x_RXTOE
  #ifndef CONFIG_SL351x_RXTOE
  //#define CONFIG_SL351x_RXTOE	1
  //#define CONFIG_SL351x_RXTOE	1
-@@ -126,7 +130,6 @@
+@@ -126,7 +130,6 @@ static	char _debug_prefetch_buf[_DEBUG_P
   *************************************************************/
   *************************************************************/
  static int	gmac_initialized = 0;
  static int	gmac_initialized = 0;
  TOE_INFO_T toe_private_data;
  TOE_INFO_T toe_private_data;
@@ -25,7 +25,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  static int rx_poll_enabled;
  static int rx_poll_enabled;
  spinlock_t gmac_fq_lock;
  spinlock_t gmac_fq_lock;
  unsigned int FLAG_SWITCH;
  unsigned int FLAG_SWITCH;
-@@ -190,7 +193,7 @@
+@@ -190,7 +193,7 @@ void mac_get_sw_tx_weight(struct net_dev
  void mac_set_sw_tx_weight(struct net_device *dev, char *weight);
  void mac_set_sw_tx_weight(struct net_device *dev, char *weight);
  void mac_get_hw_tx_weight(struct net_device *dev, char *weight);
  void mac_get_hw_tx_weight(struct net_device *dev, char *weight);
  void mac_set_hw_tx_weight(struct net_device *dev, char *weight);
  void mac_set_hw_tx_weight(struct net_device *dev, char *weight);
@@ -34,7 +34,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
  #ifdef VITESSE_G5SWITCH
  #ifdef VITESSE_G5SWITCH
  extern int Get_Set_port_status(void);
  extern int Get_Set_port_status(void);
-@@ -295,12 +298,14 @@
+@@ -295,12 +298,14 @@ static int __init gmac_init_module(void)
  	for(j = 0; i<CONFIG_MAC_NUM; j++)
  	for(j = 0; i<CONFIG_MAC_NUM; j++)
  	{
  	{
  		i=j;
  		i=j;
@@ -49,7 +49,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
  		tp = (GMAC_INFO_T *)&toe_private_data.gmac[i];
  		tp = (GMAC_INFO_T *)&toe_private_data.gmac[i];
  		tp->dev = NULL;
  		tp->dev = NULL;
-@@ -459,7 +464,7 @@
+@@ -459,7 +464,7 @@ void mac_init_drv(void)
  		toe->gmac[1].dma_base_addr = TOE_GMAC1_DMA_BASE;
  		toe->gmac[1].dma_base_addr = TOE_GMAC1_DMA_BASE;
          toe->gmac[0].auto_nego_cfg = 1;
          toe->gmac[0].auto_nego_cfg = 1;
          toe->gmac[1].auto_nego_cfg = 1;
          toe->gmac[1].auto_nego_cfg = 1;
@@ -58,7 +58,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
          toe->gmac[0].speed_cfg = GMAC_SPEED_1000;
          toe->gmac[0].speed_cfg = GMAC_SPEED_1000;
          toe->gmac[1].speed_cfg = GMAC_SPEED_1000;
          toe->gmac[1].speed_cfg = GMAC_SPEED_1000;
  #else
  #else
-@@ -508,7 +513,7 @@
+@@ -508,7 +513,7 @@ void mac_init_drv(void)
  		// Write GLOBAL_QUEUE_THRESHOLD_REG
  		// Write GLOBAL_QUEUE_THRESHOLD_REG
  		threshold.bits32 = 0;
  		threshold.bits32 = 0;
  		threshold.bits.swfq_empty = (TOE_SW_FREEQ_DESC_NUM > 256) ? 255 :
  		threshold.bits.swfq_empty = (TOE_SW_FREEQ_DESC_NUM > 256) ? 255 :
@@ -67,7 +67,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		threshold.bits.hwfq_empty = (TOE_HW_FREEQ_DESC_NUM > 256) ? 256/4 :
  		threshold.bits.hwfq_empty = (TOE_HW_FREEQ_DESC_NUM > 256) ? 256/4 :
  		                                        TOE_HW_FREEQ_DESC_NUM/4;
  		                                        TOE_HW_FREEQ_DESC_NUM/4;
  		threshold.bits.toe_class = (TOE_TOE_DESC_NUM > 256) ? 256/4 :
  		threshold.bits.toe_class = (TOE_TOE_DESC_NUM > 256) ? 256/4 :
-@@ -613,18 +618,25 @@
+@@ -613,18 +618,25 @@ static void toe_init_free_queue(void)
  	rwptr_reg.bits.rptr = 0;
  	rwptr_reg.bits.rptr = 0;
  	toe->fq_rx_rwptr.bits32 = rwptr_reg.bits32;
  	toe->fq_rx_rwptr.bits32 = rwptr_reg.bits32;
  	writel(rwptr_reg.bits32, TOE_GLOBAL_BASE + GLOBAL_SWFQ_RWPTR_REG);
  	writel(rwptr_reg.bits32, TOE_GLOBAL_BASE + GLOBAL_SWFQ_RWPTR_REG);
@@ -95,7 +95,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		// toe->rx_skb[i] = skb;
  		// toe->rx_skb[i] = skb;
  		sw_desc_ptr->word2.buf_adr = (unsigned int)__pa(skb->data);
  		sw_desc_ptr->word2.buf_adr = (unsigned int)__pa(skb->data);
  //   		consistent_sync((unsigned int)desc_ptr, sizeof(GMAC_RXDESC_T), PCI_DMA_TODEVICE);
  //   		consistent_sync((unsigned int)desc_ptr, sizeof(GMAC_RXDESC_T), PCI_DMA_TODEVICE);
-@@ -851,14 +863,14 @@
+@@ -851,14 +863,14 @@ static void toe_init_hwtx_queue(void)
  *----------------------------------------------------------------------*/
  *----------------------------------------------------------------------*/
  static void toe_init_default_queue(void)
  static void toe_init_default_queue(void)
  {
  {
@@ -114,7 +114,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	if (!desc_ptr)
  	if (!desc_ptr)
  	{
  	{
  		printk("%s::DMA_MALLOC fail !\n",__func__);
  		printk("%s::DMA_MALLOC fail !\n",__func__);
-@@ -866,14 +878,17 @@
+@@ -866,14 +878,17 @@ static void toe_init_default_queue(void)
  	}
  	}
  	memset((void *)desc_ptr, 0, TOE_DEFAULT_Q0_DESC_NUM * sizeof(GMAC_RXDESC_T));
  	memset((void *)desc_ptr, 0, TOE_DEFAULT_Q0_DESC_NUM * sizeof(GMAC_RXDESC_T));
  	toe->gmac[0].default_desc_base = (unsigned int)desc_ptr;
  	toe->gmac[0].default_desc_base = (unsigned int)desc_ptr;
@@ -133,7 +133,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	if (!desc_ptr)
  	if (!desc_ptr)
  	{
  	{
  		printk("%s::DMA_MALLOC fail !\n",__func__);
  		printk("%s::DMA_MALLOC fail !\n",__func__);
-@@ -1071,12 +1086,16 @@
+@@ -1071,12 +1086,16 @@ static void toe_init_gmac(struct net_dev
  
  
  	    data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) & ~tp->intr0_selected;
  	    data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG) & ~tp->intr0_selected;
  	    writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
  	    writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_0_REG);
@@ -150,7 +150,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	    data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG) & ~tp->intr4_selected;
  	    data = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG) & ~tp->intr4_selected;
  	    writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
  	    writel(data, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
  	}
  	}
-@@ -1176,11 +1195,11 @@
+@@ -1176,11 +1195,11 @@ static int toe_gmac_init_chip(struct net
  	GMAC_CONFIG2_T	config2_val;
  	GMAC_CONFIG2_T	config2_val;
  	GMAC_CONFIG0_T	config0,config0_mask;
  	GMAC_CONFIG0_T	config0,config0_mask;
  	GMAC_CONFIG1_T	config1;
  	GMAC_CONFIG1_T	config1;
@@ -164,7 +164,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  //	GMAC_HASH_ENABLE_REG0_T hash_ctrl;
  //	GMAC_HASH_ENABLE_REG0_T hash_ctrl;
  //
  //
  #if 0 /* mac address will be set in late_initcall */
  #if 0 /* mac address will be set in late_initcall */
-@@ -1202,24 +1221,23 @@
+@@ -1202,24 +1221,23 @@ static int toe_gmac_init_chip(struct net
  	//	config1.bits32 = 0x002004;	//next version
  	//	config1.bits32 = 0x002004;	//next version
  	/* set flow control threshold */
  	/* set flow control threshold */
  	config1.bits32 = 0;
  	config1.bits32 = 0;
@@ -197,7 +197,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	//	gmac_write_reg(tp->base_addr,GMAC_MCAST_FIL0,0x0,0xffffffff);
  	//	gmac_write_reg(tp->base_addr,GMAC_MCAST_FIL0,0x0,0xffffffff);
  	//  gmac_write_reg(tp->base_addr,GMAC_MCAST_FIL1,0x0,0xffffffff);
  	//  gmac_write_reg(tp->base_addr,GMAC_MCAST_FIL1,0x0,0xffffffff);
  
  
-@@ -1249,7 +1267,7 @@
+@@ -1249,7 +1267,7 @@ static int toe_gmac_init_chip(struct net
  	config0.bits.dis_rx = 1;  /* disable rx */
  	config0.bits.dis_rx = 1;  /* disable rx */
  	config0.bits.dis_tx = 1;  /* disable tx */
  	config0.bits.dis_tx = 1;  /* disable tx */
  	config0.bits.loop_back = 0; /* enable/disable GMAC loopback */
  	config0.bits.loop_back = 0; /* enable/disable GMAC loopback */
@@ -206,7 +206,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	config0.bits.rgmii_en = 0;
  	config0.bits.rgmii_en = 0;
  	config0.bits.rgmm_edge = 1;
  	config0.bits.rgmm_edge = 1;
  	config0.bits.rxc_inv = 0;
  	config0.bits.rxc_inv = 0;
-@@ -1342,6 +1360,9 @@
+@@ -1342,6 +1360,9 @@ static int toe_gmac_init_chip(struct net
  	gmac_write_reg(tp->dma_base_addr, GMAC_AHB_WEIGHT_REG, ahb_weight.bits32, ahb_weight_mask.bits32);
  	gmac_write_reg(tp->dma_base_addr, GMAC_AHB_WEIGHT_REG, ahb_weight.bits32, ahb_weight_mask.bits32);
  	#endif
  	#endif
  
  
@@ -216,7 +216,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	#if defined(CONFIG_SL351x_NAT) || defined(CONFIG_SL351x_RXTOE)
  	#if defined(CONFIG_SL351x_NAT) || defined(CONFIG_SL351x_RXTOE)
  	gmac_write_reg(tp->dma_base_addr, GMAC_SPR0, IPPROTO_TCP, 0xffffffff);
  	gmac_write_reg(tp->dma_base_addr, GMAC_SPR0, IPPROTO_TCP, 0xffffffff);
  	#endif
  	#endif
-@@ -1552,7 +1573,7 @@
+@@ -1552,7 +1573,7 @@ static  void toe_gmac_tx_complete(GMAC_I
  		rwptr.bits32 = readl(swtxq->rwptr_reg);
  		rwptr.bits32 = readl(swtxq->rwptr_reg);
  		if (rwptr.bits.rptr == swtxq->finished_idx)
  		if (rwptr.bits.rptr == swtxq->finished_idx)
  			break;
  			break;
@@ -225,7 +225,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  //   		consistent_sync((void *)curr_desc, sizeof(GMAC_TXDESC_T), PCI_DMA_FROMDEVICE);
  //   		consistent_sync((void *)curr_desc, sizeof(GMAC_TXDESC_T), PCI_DMA_FROMDEVICE);
  		word0.bits32 = curr_desc->word0.bits32;
  		word0.bits32 = curr_desc->word0.bits32;
  		word1.bits32 = curr_desc->word1.bits32;
  		word1.bits32 = curr_desc->word1.bits32;
-@@ -1573,6 +1594,7 @@
+@@ -1573,6 +1594,7 @@ static  void toe_gmac_tx_complete(GMAC_I
  				swtxq->finished_idx = RWPTR_ADVANCE_ONE(swtxq->finished_idx, swtxq->total_desc_num);
  				swtxq->finished_idx = RWPTR_ADVANCE_ONE(swtxq->finished_idx, swtxq->total_desc_num);
  				curr_desc = (GMAC_TXDESC_T *)swtxq->desc_base + swtxq->finished_idx;
  				curr_desc = (GMAC_TXDESC_T *)swtxq->desc_base + swtxq->finished_idx;
  				word0.bits32 = curr_desc->word0.bits32;
  				word0.bits32 = curr_desc->word0.bits32;
@@ -233,7 +233,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  #ifdef _DUMP_TX_TCP_CONTENT
  #ifdef _DUMP_TX_TCP_CONTENT
  				if (curr_desc->word0.bits.buffer_size < 16)
  				if (curr_desc->word0.bits.buffer_size < 16)
  				{
  				{
-@@ -1592,12 +1614,12 @@
+@@ -1592,12 +1614,12 @@ static  void toe_gmac_tx_complete(GMAC_I
  			word0.bits.status_tx_ok = 0;
  			word0.bits.status_tx_ok = 0;
  			if (swtxq->tx_skb[swtxq->finished_idx])
  			if (swtxq->tx_skb[swtxq->finished_idx])
  			{
  			{
@@ -250,7 +250,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  			curr_desc->word0.bits32 = word0.bits32;
  			curr_desc->word0.bits32 = word0.bits32;
    			swtxq->curr_finished_desc = (GMAC_TXDESC_T *)curr_desc;
    			swtxq->curr_finished_desc = (GMAC_TXDESC_T *)curr_desc;
   			swtxq->total_finished++;
   			swtxq->total_finished++;
-@@ -1624,31 +1646,29 @@
+@@ -1624,31 +1646,29 @@ static  void toe_gmac_tx_complete(GMAC_I
  *----------------------------------------------------------------------*/
  *----------------------------------------------------------------------*/
  static int gmac_start_xmit(struct sk_buff *skb, struct net_device *dev)
  static int gmac_start_xmit(struct sk_buff *skb, struct net_device *dev)
  {
  {
@@ -296,7 +296,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	total_pages = snd_pages;
  	total_pages = snd_pages;
  #endif
  #endif
  
  
-@@ -1664,13 +1684,6 @@
+@@ -1664,13 +1684,6 @@ static int gmac_start_xmit(struct sk_buf
      }
      }
  #endif
  #endif
  
  
@@ -310,7 +310,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  #ifdef GMAC_USE_TXQ0
  #ifdef GMAC_USE_TXQ0
  	#define tx_qid 	0
  	#define tx_qid 	0
  #endif
  #endif
-@@ -1703,9 +1716,9 @@
+@@ -1703,9 +1716,9 @@ static int gmac_start_xmit(struct sk_buf
  	toe_gmac_tx_complete(tp, tx_qid, dev, 0);
  	toe_gmac_tx_complete(tp, tx_qid, dev, 0);
  
  
  	if (wptr >= swtxq->finished_idx)
  	if (wptr >= swtxq->finished_idx)
@@ -322,7 +322,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	if (free_desc < snd_pages)
  	if (free_desc < snd_pages)
  	{
  	{
  //		spin_unlock(&tp->tx_mutex);
  //		spin_unlock(&tp->tx_mutex);
-@@ -2063,9 +2076,10 @@
+@@ -2063,9 +2076,10 @@ void mac_start_txdma(struct net_device *
  struct net_device_stats * gmac_get_stats(struct net_device *dev)
  struct net_device_stats * gmac_get_stats(struct net_device *dev)
  {
  {
      GMAC_INFO_T *tp = (GMAC_INFO_T *)dev->priv;
      GMAC_INFO_T *tp = (GMAC_INFO_T *)dev->priv;
@@ -335,7 +335,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
      if (netif_running(dev))
      if (netif_running(dev))
      {
      {
-@@ -2073,10 +2087,14 @@
+@@ -2073,10 +2087,14 @@ struct net_device_stats * gmac_get_stats
          // spin_lock_irqsave(&tp->lock,flags);
          // spin_lock_irqsave(&tp->lock,flags);
          pkt_drop = gmac_read_reg(tp->base_addr,GMAC_IN_DISCARDS);
          pkt_drop = gmac_read_reg(tp->base_addr,GMAC_IN_DISCARDS);
          pkt_error = gmac_read_reg(tp->base_addr,GMAC_IN_ERRORS);
          pkt_error = gmac_read_reg(tp->base_addr,GMAC_IN_ERRORS);
@@ -350,7 +350,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
      return &tp->ifStatics;
      return &tp->ifStatics;
  }
  }
  
  
-@@ -2401,36 +2419,63 @@
+@@ -2401,36 +2419,63 @@ static int gmac_close(struct net_device 
  * toe_gmac_fill_free_q
  * toe_gmac_fill_free_q
  * allocate buffers for free queue.
  * allocate buffers for free queue.
  *----------------------------------------------------------------------*/
  *----------------------------------------------------------------------*/
@@ -427,7 +427,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  }
  }
  // EXPORT_SYMBOL(toe_gmac_fill_free_q);
  // EXPORT_SYMBOL(toe_gmac_fill_free_q);
  
  
-@@ -2442,14 +2487,14 @@
+@@ -2442,14 +2487,14 @@ static void gmac_registers(const char *m
  	unsigned int		status3;
  	unsigned int		status3;
  	unsigned int		status4;
  	unsigned int		status4;
  
  
@@ -444,7 +444,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	printk("status: s0:%08X, s1:%08X, s2:%08X, s3:%08X, s4:%08X\n",
  	printk("status: s0:%08X, s1:%08X, s2:%08X, s3:%08X, s4:%08X\n",
  		   status0, status1, status2, status3, status4);
  		   status0, status1, status2, status3, status4);
  
  
-@@ -2468,8 +2513,9 @@
+@@ -2468,8 +2513,9 @@ static void gmac_registers(const char *m
  	status3 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_3_REG);
  	status3 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_3_REG);
  	status4 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
  	status4 = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
  
  
@@ -456,7 +456,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  }
  }
  /*----------------------------------------------------------------------
  /*----------------------------------------------------------------------
  * toe_gmac_interrupt
  * toe_gmac_interrupt
-@@ -2485,75 +2531,44 @@
+@@ -2485,75 +2531,44 @@ static irqreturn_t toe_gmac_interrupt (i
  	unsigned int		status3;
  	unsigned int		status3;
  	unsigned int		status4;
  	unsigned int		status4;
  
  
@@ -551,7 +551,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	{
  	{
  		#define G1_INTR0_BITS	(GMAC1_HWTQ13_EOF_INT_BIT | GMAC1_HWTQ12_EOF_INT_BIT | GMAC1_HWTQ11_EOF_INT_BIT | GMAC1_HWTQ10_EOF_INT_BIT)
  		#define G1_INTR0_BITS	(GMAC1_HWTQ13_EOF_INT_BIT | GMAC1_HWTQ12_EOF_INT_BIT | GMAC1_HWTQ11_EOF_INT_BIT | GMAC1_HWTQ10_EOF_INT_BIT)
  		#define G0_INTR0_BITS	(GMAC0_HWTQ03_EOF_INT_BIT | GMAC0_HWTQ02_EOF_INT_BIT | GMAC0_HWTQ01_EOF_INT_BIT | GMAC0_HWTQ00_EOF_INT_BIT)
  		#define G0_INTR0_BITS	(GMAC0_HWTQ03_EOF_INT_BIT | GMAC0_HWTQ02_EOF_INT_BIT | GMAC0_HWTQ01_EOF_INT_BIT | GMAC0_HWTQ00_EOF_INT_BIT)
-@@ -2563,7 +2578,7 @@
+@@ -2563,7 +2578,7 @@ if (1)
  		// because they should pass packets to upper layer
  		// because they should pass packets to upper layer
  		if (tp->port_id == 0)
  		if (tp->port_id == 0)
  		{
  		{
@@ -560,7 +560,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  			{
  			{
  				if (status1 & GMAC0_HWTQ03_EOF_INT_BIT)
  				if (status1 & GMAC0_HWTQ03_EOF_INT_BIT)
  					tp->hwtxq[3].eof_cnt++;
  					tp->hwtxq[3].eof_cnt++;
-@@ -2574,50 +2589,51 @@
+@@ -2574,50 +2589,51 @@ if (1)
  				if (status1 & GMAC0_HWTQ00_EOF_INT_BIT)
  				if (status1 & GMAC0_HWTQ00_EOF_INT_BIT)
  					tp->hwtxq[0].eof_cnt++;
  					tp->hwtxq[0].eof_cnt++;
  			}
  			}
@@ -648,7 +648,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  			{
  			{
  				if (status1 & GMAC1_HWTQ13_EOF_INT_BIT)
  				if (status1 & GMAC1_HWTQ13_EOF_INT_BIT)
  					tp->hwtxq[3].eof_cnt++;
  					tp->hwtxq[3].eof_cnt++;
-@@ -2629,14 +2645,14 @@
+@@ -2629,14 +2645,14 @@ if (1)
  					tp->hwtxq[0].eof_cnt++;
  					tp->hwtxq[0].eof_cnt++;
  			}
  			}
  
  
@@ -667,7 +667,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
  					BUG_ON(rx_poll_enabled == 1);
  					BUG_ON(rx_poll_enabled == 1);
  
  
-@@ -2646,7 +2662,7 @@
+@@ -2646,7 +2662,7 @@ if (1)
  					data32 &= ~(DEFAULT_Q1_INT_BIT);
  					data32 &= ~(DEFAULT_Q1_INT_BIT);
  					writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
  					writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_1_REG);
  
  
@@ -676,7 +676,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  					data32  = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_4_REG);
  					data32  = readl(TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_4_REG);
  					data32 &= ~DEFAULT_Q1_INT_BIT;
  					data32 &= ~DEFAULT_Q1_INT_BIT;
  					writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_4_REG);
  					writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_ENABLE_4_REG);
-@@ -2656,24 +2672,21 @@
+@@ -2656,24 +2672,21 @@ if (1)
  					writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
  					writel(data32, TOE_GLOBAL_BASE + GLOBAL_INTERRUPT_SELECT_4_REG);
  #endif
  #endif
  
  
@@ -708,7 +708,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	}
  	}
  
  
  	// Interrupt Status 0
  	// Interrupt Status 0
-@@ -2814,676 +2827,93 @@
+@@ -2814,676 +2827,93 @@ if (1)
  		}
  		}
  	}
  	}
  
  
@@ -1459,7 +1459,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	{
  	{
  		case GMAC_PHY_GMII:
  		case GMAC_PHY_GMII:
  		mii_write(tp->phy_addr,0x04,0x05e1); /* advertisement 100M full duplex, pause capable on */
  		mii_write(tp->phy_addr,0x04,0x05e1); /* advertisement 100M full duplex, pause capable on */
-@@ -3552,6 +2982,7 @@
+@@ -3552,6 +2982,7 @@ void gmac_set_phy_status(struct net_devi
  		status.bits.link = LINK_DOWN;
  		status.bits.link = LINK_DOWN;
  		//		clear_bit(__LINK_STATE_START, &dev->state);
  		//		clear_bit(__LINK_STATE_START, &dev->state);
  		printk("Link Down (0x%04x) ", reg_val);
  		printk("Link Down (0x%04x) ", reg_val);
@@ -1467,7 +1467,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		if(Giga_switch == 1)
  		if(Giga_switch == 1)
  		{
  		{
  				wan_port_id = 1;
  				wan_port_id = 1;
-@@ -3565,6 +2996,7 @@
+@@ -3565,6 +2996,7 @@ void gmac_set_phy_status(struct net_devi
  				storlink_ctl.link[ tp->port_id] = 0;
  				storlink_ctl.link[ tp->port_id] = 0;
  #endif
  #endif
  		}
  		}
@@ -1475,7 +1475,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	}
  	}
  	else
  	else
  	{
  	{
-@@ -3572,6 +3004,7 @@
+@@ -3572,6 +3004,7 @@ void gmac_set_phy_status(struct net_devi
  		status.bits.link = LINK_UP;
  		status.bits.link = LINK_UP;
  		//		set_bit(__LINK_STATE_START, &dev->state);
  		//		set_bit(__LINK_STATE_START, &dev->state);
  		printk("Link Up (0x%04x) ",reg_val);
  		printk("Link Up (0x%04x) ",reg_val);
@@ -1483,7 +1483,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		if(Giga_switch == 1)
  		if(Giga_switch == 1)
  		{
  		{
  				wan_port_id = 1;
  				wan_port_id = 1;
-@@ -3585,6 +3018,7 @@
+@@ -3585,6 +3018,7 @@ void gmac_set_phy_status(struct net_devi
  				storlink_ctl.link[ tp->port_id] = 1;
  				storlink_ctl.link[ tp->port_id] = 1;
  #endif
  #endif
  		}
  		}
@@ -1491,7 +1491,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	}
  	}
  	//    value = mii_read(PHY_ADDR,0x05);
  	//    value = mii_read(PHY_ADDR,0x05);
  
  
-@@ -3863,6 +3297,7 @@
+@@ -3863,6 +3297,7 @@ void gmac_get_phy_status(struct net_devi
  			}
  			}
  		}
  		}
  		status.bits.link = LINK_UP; /* link up */
  		status.bits.link = LINK_UP; /* link up */
@@ -1499,7 +1499,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		if(Giga_switch==1)
  		if(Giga_switch==1)
  		{
  		{
  				wan_port_id = 1;
  				wan_port_id = 1;
-@@ -3874,6 +3309,7 @@
+@@ -3874,6 +3309,7 @@ void gmac_get_phy_status(struct net_devi
  				storlink_ctl.link[ tp->port_id] = 1;
  				storlink_ctl.link[ tp->port_id] = 1;
  #endif
  #endif
  		}
  		}
@@ -1507,7 +1507,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		if ((ability & 0x20)==0x20)
  		if ((ability & 0x20)==0x20)
  		{
  		{
  			if (tp->flow_control_enable == 0)
  			if (tp->flow_control_enable == 0)
-@@ -3914,6 +3350,7 @@
+@@ -3914,6 +3350,7 @@ void gmac_get_phy_status(struct net_devi
  	else
  	else
  	{
  	{
  		status.bits.link = LINK_DOWN; /* link down */
  		status.bits.link = LINK_DOWN; /* link down */
@@ -1515,7 +1515,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		if(Giga_switch == 1)
  		if(Giga_switch == 1)
  		{
  		{
  				wan_port_id = 1;
  				wan_port_id = 1;
-@@ -3925,6 +3362,7 @@
+@@ -3925,6 +3362,7 @@ void gmac_get_phy_status(struct net_devi
  				storlink_ctl.link[ tp->port_id] = 0;
  				storlink_ctl.link[ tp->port_id] = 0;
  #endif
  #endif
  		}
  		}
@@ -1523,7 +1523,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		if (tp->pre_phy_status == LINK_UP)
  		if (tp->pre_phy_status == LINK_UP)
  		{
  		{
  			printk("GMAC-%d LINK_Down......\n",tp->port_id);
  			printk("GMAC-%d LINK_Down......\n",tp->port_id);
-@@ -4298,86 +3736,102 @@
+@@ -4298,86 +3736,102 @@ static void gmac_set_rx_mode(struct net_
  }
  }
  
  
  #ifdef CONFIG_SL_NAPI
  #ifdef CONFIG_SL_NAPI
@@ -1687,7 +1687,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  		{
  		{
  			good_frame = 0;
  			good_frame = 0;
  			if (curr_desc->word0.bits32 & GMAC_RXDESC_0_T_derr)
  			if (curr_desc->word0.bits32 & GMAC_RXDESC_0_T_derr)
-@@ -4388,7 +3842,6 @@
+@@ -4388,7 +3842,6 @@ static int gmac_rx_poll(struct net_devic
  			{
  			{
  				if (rx_status == 4 || rx_status == 7)
  				if (rx_status == 4 || rx_status == 7)
  					isPtr->rx_crc_errors++;
  					isPtr->rx_crc_errors++;
@@ -1695,7 +1695,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  			}
  			}
  #ifdef SL351x_GMAC_WORKAROUND
  #ifdef SL351x_GMAC_WORKAROUND
  			else if (pkt_size < 60)
  			else if (pkt_size < 60)
-@@ -4407,17 +3860,32 @@
+@@ -4407,17 +3860,32 @@ static int gmac_rx_poll(struct net_devic
  				}
  				}
  			}
  			}
  #endif
  #endif
@@ -1733,7 +1733,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
  #ifdef SL351x_GMAC_WORKAROUND
  #ifdef SL351x_GMAC_WORKAROUND
  			if (tp->short_frames_cnt >= GMAC_SHORT_FRAME_THRESHOLD)
  			if (tp->short_frames_cnt >= GMAC_SHORT_FRAME_THRESHOLD)
-@@ -4432,225 +3900,118 @@
+@@ -4432,225 +3900,118 @@ static int gmac_rx_poll(struct net_devic
  			}
  			}
  			tp->short_frames_cnt = 0;
  			tp->short_frames_cnt = 0;
  #endif
  #endif
@@ -2017,7 +2017,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  }
  }
  #endif
  #endif
  
  
-@@ -5114,6 +4475,7 @@
+@@ -5114,6 +4475,7 @@ void sl351x_poll_gmac_hanged_status(u32 
  			{
  			{
  				sl351x_nat_workaround_cnt++;
  				sl351x_nat_workaround_cnt++;
  				sl351x_nat_workaround_handler();
  				sl351x_nat_workaround_handler();
@@ -2025,7 +2025,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  			}
  			}
  #endif
  #endif
  #endif
  #endif
-@@ -5124,6 +4486,7 @@
+@@ -5124,6 +4486,7 @@ void sl351x_poll_gmac_hanged_status(u32 
  	}
  	}
  
  
  do_workaround:
  do_workaround:
@@ -2033,7 +2033,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  
  
  	gmac_initialized = 0;
  	gmac_initialized = 0;
  	if (hanged_state)
  	if (hanged_state)
-@@ -5290,6 +4653,7 @@
+@@ -5290,6 +4653,7 @@ static void sl351x_gmac_release_swtx_q(v
  	GMAC_SWTXQ_T	*swtxq;
  	GMAC_SWTXQ_T	*swtxq;
  	DMA_RWPTR_T		rwptr;
  	DMA_RWPTR_T		rwptr;
  
  
@@ -2041,7 +2041,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	toe = (TOE_INFO_T *)&toe_private_data;
  	toe = (TOE_INFO_T *)&toe_private_data;
  	tp = (GMAC_INFO_T *)&toe->gmac[0];
  	tp = (GMAC_INFO_T *)&toe->gmac[0];
  	for (i=0; i<GMAC_NUM; i++, tp++)
  	for (i=0; i<GMAC_NUM; i++, tp++)
-@@ -5341,6 +4705,7 @@
+@@ -5341,6 +4705,7 @@ static void sl351x_gmac_release_rx_q(voi
  	volatile GMAC_RXDESC_T	*curr_desc;
  	volatile GMAC_RXDESC_T	*curr_desc;
  	struct sk_buff			*skb;
  	struct sk_buff			*skb;
  
  
@@ -2049,7 +2049,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	toe = (TOE_INFO_T *)&toe_private_data;
  	toe = (TOE_INFO_T *)&toe_private_data;
  	tp = (GMAC_INFO_T *)&toe->gmac[0];
  	tp = (GMAC_INFO_T *)&toe->gmac[0];
  	for (i=0; i<GMAC_NUM; i++, tp++)
  	for (i=0; i<GMAC_NUM; i++, tp++)
-@@ -5374,6 +4739,7 @@
+@@ -5374,6 +4739,7 @@ static void sl351x_gmac_release_class_q(
  	volatile GMAC_RXDESC_T	*curr_desc;
  	volatile GMAC_RXDESC_T	*curr_desc;
  	struct sk_buff			*skb;
  	struct sk_buff			*skb;
  
  
@@ -2057,7 +2057,7 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	toe = (TOE_INFO_T *)&toe_private_data;
  	toe = (TOE_INFO_T *)&toe_private_data;
  	classq = (CLASSQ_INFO_T *)&toe->classq[0];
  	classq = (CLASSQ_INFO_T *)&toe->classq[0];
  	for (i=0; i<TOE_CLASS_QUEUE_NUM; i++, classq++)
  	for (i=0; i<TOE_CLASS_QUEUE_NUM; i++, classq++)
-@@ -5410,6 +4776,7 @@
+@@ -5410,6 +4776,7 @@ static void sl351x_gmac_release_toe_q(vo
  	GMAC_RXDESC_T	*toe_curr_desc;
  	GMAC_RXDESC_T	*toe_curr_desc;
  	struct sk_buff			*skb;
  	struct sk_buff			*skb;
  
  
@@ -2065,10 +2065,10 @@ Index: linux-2.6.23.16/drivers/net/sl351x_gmac.c
  	toe = (TOE_INFO_T *)&toe_private_data;
  	toe = (TOE_INFO_T *)&toe_private_data;
  	toe_qhdr = (TOE_QHDR_T *)TOE_TOE_QUE_HDR_BASE;
  	toe_qhdr = (TOE_QHDR_T *)TOE_TOE_QUE_HDR_BASE;
  	for (i=0; i<TOE_TOE_QUEUE_NUM; i++, toe_qhdr++)
  	for (i=0; i<TOE_TOE_QUEUE_NUM; i++, toe_qhdr++)
-Index: linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h
+Index: linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/include/asm-arm/arch-sl2312/sl351x_gmac.h	2008-03-15 17:00:21.364762892 +0200
-+++ linux-2.6.23.16/include/asm-arm/arch-sl2312/sl351x_gmac.h	2008-03-15 17:01:08.367441241 +0200
+--- linux-2.6.23.17.orig/include/asm-arm/arch-sl2312/sl351x_gmac.h
++++ linux-2.6.23.17/include/asm-arm/arch-sl2312/sl351x_gmac.h
 @@ -107,7 +107,7 @@
 @@ -107,7 +107,7 @@
   * The base address and descriptor number are configured at
   * The base address and descriptor number are configured at
   * DMA Queues Descriptor Ring Base Address/Size Register (offset 0x0004)
   * DMA Queues Descriptor Ring Base Address/Size Register (offset 0x0004)

+ 92 - 92
target/linux/storm/patches/1020-mtd.patch

@@ -1,8 +1,8 @@
-Index: linux-2.6.23.16/drivers/mtd/chips/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/chips/Kconfig
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/chips/Kconfig	2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/chips/Kconfig	2008-03-15 17:03:17.874821522 +0200
-@@ -220,6 +220,13 @@
+--- linux-2.6.23.17.orig/drivers/mtd/chips/Kconfig
++++ linux-2.6.23.17/drivers/mtd/chips/Kconfig
+@@ -220,6 +220,13 @@ config MTD_ROM
  	  This option enables basic support for ROM chips accessed through
  	  This option enables basic support for ROM chips accessed through
  	  a bus mapping driver.
  	  a bus mapping driver.
  
  
@@ -16,10 +16,10 @@ Index: linux-2.6.23.16/drivers/mtd/chips/Kconfig
  config MTD_ABSENT
  config MTD_ABSENT
  	tristate "Support for absent chips in bus mapping"
  	tristate "Support for absent chips in bus mapping"
  	help
  	help
-Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
+Index: linux-2.6.23.17/drivers/mtd/chips/cfi_cmdset_0002.c
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/chips/cfi_cmdset_0002.c	2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c	2008-03-15 17:03:17.874821522 +0200
+--- linux-2.6.23.17.orig/drivers/mtd/chips/cfi_cmdset_0002.c
++++ linux-2.6.23.17/drivers/mtd/chips/cfi_cmdset_0002.c
 @@ -39,10 +39,15 @@
 @@ -39,10 +39,15 @@
  #include <linux/mtd/cfi.h>
  #include <linux/mtd/cfi.h>
  #include <linux/mtd/xip.h>
  #include <linux/mtd/xip.h>
@@ -39,7 +39,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  
  
  #define MANUFACTURER_AMD	0x0001
  #define MANUFACTURER_AMD	0x0001
  #define MANUFACTURER_ATMEL	0x001F
  #define MANUFACTURER_ATMEL	0x001F
-@@ -322,6 +327,13 @@
+@@ -322,6 +327,13 @@ struct mtd_info *cfi_cmdset_0002(struct 
  #endif
  #endif
  
  
  		bootloc = extp->TopBottom;
  		bootloc = extp->TopBottom;
@@ -53,7 +53,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  		if ((bootloc != 2) && (bootloc != 3)) {
  		if ((bootloc != 2) && (bootloc != 3)) {
  			printk(KERN_WARNING "%s: CFI does not contain boot "
  			printk(KERN_WARNING "%s: CFI does not contain boot "
  			       "bank location. Assuming top.\n", map->name);
  			       "bank location. Assuming top.\n", map->name);
-@@ -340,6 +352,9 @@
+@@ -340,6 +352,9 @@ struct mtd_info *cfi_cmdset_0002(struct 
  				cfi->cfiq->EraseRegionInfo[j] = swap;
  				cfi->cfiq->EraseRegionInfo[j] = swap;
  			}
  			}
  		}
  		}
@@ -63,7 +63,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  		/* Set the default CFI lock/unlock addresses */
  		/* Set the default CFI lock/unlock addresses */
  		cfi->addr_unlock1 = 0x555;
  		cfi->addr_unlock1 = 0x555;
  		cfi->addr_unlock2 = 0x2aa;
  		cfi->addr_unlock2 = 0x2aa;
-@@ -461,6 +476,7 @@
+@@ -461,6 +476,7 @@ static int __xipram chip_ready(struct ma
  	map_word d, t;
  	map_word d, t;
  
  
  	d = map_read(map, addr);
  	d = map_read(map, addr);
@@ -71,7 +71,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	t = map_read(map, addr);
  	t = map_read(map, addr);
  
  
  	return map_word_equal(map, d, t);
  	return map_word_equal(map, d, t);
-@@ -626,7 +642,9 @@
+@@ -626,7 +642,9 @@ static void put_chip(struct map_info *ma
  	default:
  	default:
  		printk(KERN_ERR "MTD: put_chip() called with oldstate %d!!\n", chip->oldstate);
  		printk(KERN_ERR "MTD: put_chip() called with oldstate %d!!\n", chip->oldstate);
  	}
  	}
@@ -81,7 +81,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  }
  }
  
  
  #ifdef CONFIG_MTD_XIP
  #ifdef CONFIG_MTD_XIP
-@@ -940,7 +958,9 @@
+@@ -940,7 +958,9 @@ static inline int do_read_secsi_onechip(
  	cfi_send_gen_cmd(0x90, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
  	cfi_send_gen_cmd(0x90, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
  	cfi_send_gen_cmd(0x00, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
  	cfi_send_gen_cmd(0x00, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
  
  
@@ -91,7 +91,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	spin_unlock(chip->mutex);
  	spin_unlock(chip->mutex);
  
  
  	return 0;
  	return 0;
-@@ -1005,7 +1025,10 @@
+@@ -1005,7 +1025,10 @@ static int __xipram do_write_oneword(str
  	 */
  	 */
  	unsigned long uWriteTimeout = ( HZ / 1000 ) + 1;
  	unsigned long uWriteTimeout = ( HZ / 1000 ) + 1;
  	int ret = 0;
  	int ret = 0;
@@ -103,7 +103,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	int retry_cnt = 0;
  	int retry_cnt = 0;
  
  
  	adr += chip->start;
  	adr += chip->start;
-@@ -1037,9 +1060,15 @@
+@@ -1037,9 +1060,15 @@ static int __xipram do_write_oneword(str
  	ENABLE_VPP(map);
  	ENABLE_VPP(map);
  	xip_disable(map, chip, adr);
  	xip_disable(map, chip, adr);
   retry:
   retry:
@@ -119,7 +119,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	map_write(map, datum, adr);
  	map_write(map, datum, adr);
  	chip->state = FL_WRITING;
  	chip->state = FL_WRITING;
  
  
-@@ -1072,7 +1101,13 @@
+@@ -1072,7 +1101,13 @@ static int __xipram do_write_oneword(str
  		}
  		}
  
  
  		if (chip_ready(map, adr))
  		if (chip_ready(map, adr))
@@ -134,7 +134,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  
  
  		/* Latency issues. Drop the lock, wait a while and retry */
  		/* Latency issues. Drop the lock, wait a while and retry */
  		UDELAY(map, chip, adr, 1);
  		UDELAY(map, chip, adr, 1);
-@@ -1084,8 +1119,17 @@
+@@ -1084,8 +1119,17 @@ static int __xipram do_write_oneword(str
  		/* FIXME - should have reset delay before continuing */
  		/* FIXME - should have reset delay before continuing */
  
  
  		if (++retry_cnt <= MAX_WORD_RETRIES)
  		if (++retry_cnt <= MAX_WORD_RETRIES)
@@ -153,7 +153,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  		ret = -EIO;
  		ret = -EIO;
  	}
  	}
  	xip_enable(map, chip, adr);
  	xip_enable(map, chip, adr);
-@@ -1171,7 +1215,14 @@
+@@ -1171,7 +1215,14 @@ static int cfi_amdstd_write_words(struct
  				return 0;
  				return 0;
  		}
  		}
  	}
  	}
@@ -169,7 +169,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	/* We are now aligned, write as much as possible */
  	/* We are now aligned, write as much as possible */
  	while(len >= map_bankwidth(map)) {
  	while(len >= map_bankwidth(map)) {
  		map_word datum;
  		map_word datum;
-@@ -1181,7 +1232,15 @@
+@@ -1181,7 +1232,15 @@ static int cfi_amdstd_write_words(struct
  		ret = do_write_oneword(map, &cfi->chips[chipnum],
  		ret = do_write_oneword(map, &cfi->chips[chipnum],
  				       ofs, datum);
  				       ofs, datum);
  		if (ret)
  		if (ret)
@@ -185,7 +185,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  
  
  		ofs += map_bankwidth(map);
  		ofs += map_bankwidth(map);
  		buf += map_bankwidth(map);
  		buf += map_bankwidth(map);
-@@ -1189,19 +1248,38 @@
+@@ -1189,19 +1248,38 @@ static int cfi_amdstd_write_words(struct
  		len -= map_bankwidth(map);
  		len -= map_bankwidth(map);
  
  
  		if (ofs >> cfi->chipshift) {
  		if (ofs >> cfi->chipshift) {
@@ -224,7 +224,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  		spin_lock(cfi->chips[chipnum].mutex);
  		spin_lock(cfi->chips[chipnum].mutex);
  
  
  		if (cfi->chips[chipnum].state != FL_READY) {
  		if (cfi->chips[chipnum].state != FL_READY) {
-@@ -1221,7 +1299,11 @@
+@@ -1221,7 +1299,11 @@ static int cfi_amdstd_write_words(struct
  #endif
  #endif
  			goto retry1;
  			goto retry1;
  		}
  		}
@@ -237,7 +237,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  		tmp_buf = map_read(map, ofs + chipstart);
  		tmp_buf = map_read(map, ofs + chipstart);
  
  
  		spin_unlock(cfi->chips[chipnum].mutex);
  		spin_unlock(cfi->chips[chipnum].mutex);
-@@ -1231,11 +1313,23 @@
+@@ -1231,11 +1313,23 @@ static int cfi_amdstd_write_words(struct
  		ret = do_write_oneword(map, &cfi->chips[chipnum],
  		ret = do_write_oneword(map, &cfi->chips[chipnum],
  				ofs, tmp_buf);
  				ofs, tmp_buf);
  		if (ret)
  		if (ret)
@@ -262,7 +262,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	return 0;
  	return 0;
  }
  }
  
  
-@@ -1275,6 +1369,7 @@
+@@ -1275,6 +1369,7 @@ static int __xipram do_write_buffer(stru
  	ENABLE_VPP(map);
  	ENABLE_VPP(map);
  	xip_disable(map, chip, cmd_adr);
  	xip_disable(map, chip, cmd_adr);
  
  
@@ -270,7 +270,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
  	cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
  	cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, cfi->device_type, NULL);
  	cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, cfi->device_type, NULL);
  	//cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
  	//cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
-@@ -1535,6 +1630,9 @@
+@@ -1535,6 +1630,9 @@ static int __xipram do_erase_oneblock(st
  	DECLARE_WAITQUEUE(wait, current);
  	DECLARE_WAITQUEUE(wait, current);
  	int ret = 0;
  	int ret = 0;
  
  
@@ -280,7 +280,7 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	adr += chip->start;
  	adr += chip->start;
  
  
  	spin_lock(chip->mutex);
  	spin_lock(chip->mutex);
-@@ -1613,6 +1711,9 @@
+@@ -1613,6 +1711,9 @@ static int __xipram do_erase_oneblock(st
  	chip->state = FL_READY;
  	chip->state = FL_READY;
  	put_chip(map, chip, adr);
  	put_chip(map, chip, adr);
  	spin_unlock(chip->mutex);
  	spin_unlock(chip->mutex);
@@ -290,10 +290,10 @@ Index: linux-2.6.23.16/drivers/mtd/chips/cfi_cmdset_0002.c
  	return ret;
  	return ret;
  }
  }
  
  
-Index: linux-2.6.23.16/drivers/mtd/chips/map_serial.c
+Index: linux-2.6.23.17/drivers/mtd/chips/map_serial.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/chips/map_serial.c	2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/chips/map_serial.c
 @@ -0,0 +1,188 @@
 @@ -0,0 +1,188 @@
 +/*
 +/*
 + * Common code to handle map devices which are simple ROM
 + * Common code to handle map devices which are simple ROM
@@ -483,11 +483,11 @@ Index: linux-2.6.23.16/drivers/mtd/chips/map_serial.c
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
 +MODULE_AUTHOR("David Woodhouse <[email protected]>");
 +MODULE_AUTHOR("David Woodhouse <[email protected]>");
 +MODULE_DESCRIPTION("MTD chip driver for ROM chips");
 +MODULE_DESCRIPTION("MTD chip driver for ROM chips");
-Index: linux-2.6.23.16/drivers/mtd/maps/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/maps/Kconfig
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/maps/Kconfig	2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/maps/Kconfig	2008-03-15 17:03:17.874821522 +0200
-@@ -614,5 +614,30 @@
+--- linux-2.6.23.17.orig/drivers/mtd/maps/Kconfig
++++ linux-2.6.23.17/drivers/mtd/maps/Kconfig
+@@ -614,5 +614,30 @@ config MTD_PLATRAM
  
  
  	  This selection automatically selects the map_ram driver.
  	  This selection automatically selects the map_ram driver.
  
  
@@ -518,10 +518,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/Kconfig
 +
 +
  endmenu
  endmenu
  
  
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-atmel.c
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-atmel.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-atmel.c	2008-03-15 17:04:02.877385981 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-atmel.c
 @@ -0,0 +1,554 @@
 @@ -0,0 +1,554 @@
 +/*
 +/*
 + * $Id: sl2312-flash-atmel.c,v 1.2 2006/06/05 02:35:57 middle Exp $
 + * $Id: sl2312-flash-atmel.c,v 1.2 2006/06/05 02:35:57 middle Exp $
@@ -1077,10 +1077,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-atmel.c
 +MODULE_AUTHOR("Plus Chen <[email protected]>");
 +MODULE_AUTHOR("Plus Chen <[email protected]>");
 +MODULE_DESCRIPTION("MTD map driver for Storlink Sword boards");
 +MODULE_DESCRIPTION("MTD map driver for Storlink Sword boards");
 +
 +
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-cfi.c
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-cfi.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-cfi.c	2008-03-15 17:04:09.377756409 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-cfi.c
 @@ -0,0 +1,370 @@
 @@ -0,0 +1,370 @@
 +/*======================================================================
 +/*======================================================================
 +
 +
@@ -1452,10 +1452,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-cfi.c
 +MODULE_AUTHOR("Storlink Ltd");
 +MODULE_AUTHOR("Storlink Ltd");
 +MODULE_DESCRIPTION("CFI map driver");
 +MODULE_DESCRIPTION("CFI map driver");
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-m25p80.c
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-m25p80.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-m25p80.c	2008-03-15 17:04:15.378098557 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312-flash-m25p80.c
 @@ -0,0 +1,498 @@
 @@ -0,0 +1,498 @@
 +/*
 +/*
 + * $Id: sl2312-flash-m25p80.c,v 1.2 2006/06/02 08:46:02 middle Exp $
 + * $Id: sl2312-flash-m25p80.c,v 1.2 2006/06/02 08:46:02 middle Exp $
@@ -1955,10 +1955,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312-flash-m25p80.c
 +MODULE_AUTHOR("Plus Chen <[email protected]>");
 +MODULE_AUTHOR("Plus Chen <[email protected]>");
 +MODULE_DESCRIPTION("MTD map driver for Storlink Sword boards");
 +MODULE_DESCRIPTION("MTD map driver for Storlink Sword boards");
 +
 +
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h	2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h
 @@ -0,0 +1,21 @@
 @@ -0,0 +1,21 @@
 +/*
 +/*
 + * Please note that the name are used in mkflash script. Therefore
 + * Please note that the name are used in mkflash script. Therefore
@@ -1981,10 +1981,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h
 +	{ name: "cfg", 	 	 offset: 0x007D0000, size: 0x00020000, },
 +	{ name: "cfg", 	 	 offset: 0x007D0000, size: 0x00020000, },
 +	{ name: "FIS directory", offset: 0x007F0000, size: 0x00010000, }
 +	{ name: "FIS directory", offset: 0x007F0000, size: 0x00010000, }
 +};
 +};
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.16MB
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h.16MB
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.16MB	2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h.16MB
 @@ -0,0 +1,21 @@
 @@ -0,0 +1,21 @@
 +/*
 +/*
 + * Please note that the name are used in mkflash script. Therefore
 + * Please note that the name are used in mkflash script. Therefore
@@ -2007,10 +2007,10 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.16MB
 +	{ name: "CurConf", 	 offset: 0x00F40000, size: 0x000A0000, },
 +	{ name: "CurConf", 	 offset: 0x00F40000, size: 0x000A0000, },
 +	{ name: "FIS directory", offset: 0x00FE0000, size: 0x00020000, }
 +	{ name: "FIS directory", offset: 0x00FE0000, size: 0x00020000, }
 +};
 +};
-Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.8MB
+Index: linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h.8MB
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.8MB	2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/maps/sl2312_flashmap.h.8MB
 @@ -0,0 +1,21 @@
 @@ -0,0 +1,21 @@
 +/*
 +/*
 + * Please note that the name are used in mkflash script. Therefore
 + * Please note that the name are used in mkflash script. Therefore
@@ -2033,11 +2033,11 @@ Index: linux-2.6.23.16/drivers/mtd/maps/sl2312_flashmap.h.8MB
 +	{ name: "CurConf", 	 offset: 0x007C0000, size: 0x00020000, },
 +	{ name: "CurConf", 	 offset: 0x007C0000, size: 0x00020000, },
 +	{ name: "FIS directory", offset: 0x007E0000, size: 0x00020000, }
 +	{ name: "FIS directory", offset: 0x007E0000, size: 0x00020000, }
 +};
 +};
-Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
+Index: linux-2.6.23.17/drivers/mtd/mtdchar.c
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/mtdchar.c	2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/mtdchar.c	2008-03-15 17:03:17.874821522 +0200
-@@ -59,6 +59,77 @@
+--- linux-2.6.23.17.orig/drivers/mtd/mtdchar.c
++++ linux-2.6.23.17/drivers/mtd/mtdchar.c
+@@ -59,6 +59,77 @@ struct mtd_file_info {
  	enum mtd_file_modes mode;
  	enum mtd_file_modes mode;
  };
  };
  
  
@@ -2115,7 +2115,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  static loff_t mtd_lseek (struct file *file, loff_t offset, int orig)
  static loff_t mtd_lseek (struct file *file, loff_t offset, int orig)
  {
  {
  	struct mtd_file_info *mfi = file->private_data;
  	struct mtd_file_info *mfi = file->private_data;
-@@ -162,13 +233,21 @@
+@@ -162,13 +233,21 @@ static ssize_t mtd_read(struct file *fil
  	int len;
  	int len;
  	char *kbuf;
  	char *kbuf;
  
  
@@ -2138,7 +2138,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  	/* FIXME: Use kiovec in 2.5 to lock down the user's buffers
  	/* FIXME: Use kiovec in 2.5 to lock down the user's buffers
  	   and pass them directly to the MTD functions */
  	   and pass them directly to the MTD functions */
-@@ -178,8 +257,12 @@
+@@ -178,8 +257,12 @@ static ssize_t mtd_read(struct file *fil
  	else
  	else
  		kbuf=kmalloc(count, GFP_KERNEL);
  		kbuf=kmalloc(count, GFP_KERNEL);
  
  
@@ -2152,7 +2152,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  	while (count) {
  	while (count) {
  
  
-@@ -224,6 +307,9 @@
+@@ -224,6 +307,9 @@ static ssize_t mtd_read(struct file *fil
  			*ppos += retlen;
  			*ppos += retlen;
  			if (copy_to_user(buf, kbuf, retlen)) {
  			if (copy_to_user(buf, kbuf, retlen)) {
  				kfree(kbuf);
  				kfree(kbuf);
@@ -2162,7 +2162,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  				return -EFAULT;
  				return -EFAULT;
  			}
  			}
  			else
  			else
-@@ -235,13 +321,19 @@
+@@ -235,13 +321,19 @@ static ssize_t mtd_read(struct file *fil
  				count = 0;
  				count = 0;
  		}
  		}
  		else {
  		else {
@@ -2183,7 +2183,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  	return total_retlen;
  	return total_retlen;
  } /* mtd_read */
  } /* mtd_read */
  
  
-@@ -255,24 +347,40 @@
+@@ -255,24 +347,40 @@ static ssize_t mtd_write(struct file *fi
  	int ret=0;
  	int ret=0;
  	int len;
  	int len;
  
  
@@ -2227,7 +2227,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  	while (count) {
  	while (count) {
  
  
-@@ -283,6 +391,9 @@
+@@ -283,6 +391,9 @@ static ssize_t mtd_write(struct file *fi
  
  
  		if (copy_from_user(kbuf, buf, len)) {
  		if (copy_from_user(kbuf, buf, len)) {
  			kfree(kbuf);
  			kfree(kbuf);
@@ -2237,7 +2237,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  			return -EFAULT;
  			return -EFAULT;
  		}
  		}
  
  
-@@ -323,11 +434,17 @@
+@@ -323,11 +434,17 @@ static ssize_t mtd_write(struct file *fi
  		}
  		}
  		else {
  		else {
  			kfree(kbuf);
  			kfree(kbuf);
@@ -2255,7 +2255,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  	return total_retlen;
  	return total_retlen;
  } /* mtd_write */
  } /* mtd_write */
  
  
-@@ -381,36 +498,67 @@
+@@ -381,36 +498,67 @@ static int mtd_ioctl(struct inode *inode
  	u_long size;
  	u_long size;
  	struct mtd_info_user info;
  	struct mtd_info_user info;
  
  
@@ -2326,7 +2326,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  		break;
  		break;
  	}
  	}
  
  
-@@ -433,7 +581,12 @@
+@@ -433,7 +581,12 @@ static int mtd_ioctl(struct inode *inode
  		struct erase_info *erase;
  		struct erase_info *erase;
  
  
  		if(!(file->f_mode & 2))
  		if(!(file->f_mode & 2))
@@ -2339,7 +2339,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  		erase=kzalloc(sizeof(struct erase_info),GFP_KERNEL);
  		erase=kzalloc(sizeof(struct erase_info),GFP_KERNEL);
  		if (!erase)
  		if (!erase)
-@@ -447,6 +600,9 @@
+@@ -447,6 +600,9 @@ static int mtd_ioctl(struct inode *inode
  			if (copy_from_user(&erase->addr, argp,
  			if (copy_from_user(&erase->addr, argp,
  				    sizeof(struct erase_info_user))) {
  				    sizeof(struct erase_info_user))) {
  				kfree(erase);
  				kfree(erase);
@@ -2349,7 +2349,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  				return -EFAULT;
  				return -EFAULT;
  			}
  			}
  			erase->mtd = mtd;
  			erase->mtd = mtd;
-@@ -484,14 +640,26 @@
+@@ -484,14 +640,26 @@ static int mtd_ioctl(struct inode *inode
  		struct mtd_oob_buf buf;
  		struct mtd_oob_buf buf;
  		struct mtd_oob_ops ops;
  		struct mtd_oob_ops ops;
  
  
@@ -2379,7 +2379,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  		if (!mtd->write_oob)
  		if (!mtd->write_oob)
  			ret = -EOPNOTSUPP;
  			ret = -EOPNOTSUPP;
-@@ -499,8 +667,12 @@
+@@ -499,8 +667,12 @@ static int mtd_ioctl(struct inode *inode
  			ret = access_ok(VERIFY_READ, buf.ptr,
  			ret = access_ok(VERIFY_READ, buf.ptr,
  					buf.length) ? 0 : EFAULT;
  					buf.length) ? 0 : EFAULT;
  
  
@@ -2393,7 +2393,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  		ops.ooblen = buf.length;
  		ops.ooblen = buf.length;
  		ops.ooboffs = buf.start & (mtd->oobsize - 1);
  		ops.ooboffs = buf.start & (mtd->oobsize - 1);
-@@ -536,19 +708,35 @@
+@@ -536,19 +708,35 @@ static int mtd_ioctl(struct inode *inode
  		struct mtd_oob_buf buf;
  		struct mtd_oob_buf buf;
  		struct mtd_oob_ops ops;
  		struct mtd_oob_ops ops;
  
  
@@ -2433,7 +2433,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  		ops.ooblen = buf.length;
  		ops.ooblen = buf.length;
  		ops.ooboffs = buf.start & (mtd->oobsize - 1);
  		ops.ooboffs = buf.start & (mtd->oobsize - 1);
-@@ -580,7 +768,12 @@
+@@ -580,7 +768,12 @@ static int mtd_ioctl(struct inode *inode
  		struct erase_info_user info;
  		struct erase_info_user info;
  
  
  		if (copy_from_user(&info, argp, sizeof(info)))
  		if (copy_from_user(&info, argp, sizeof(info)))
@@ -2446,7 +2446,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  		if (!mtd->lock)
  		if (!mtd->lock)
  			ret = -EOPNOTSUPP;
  			ret = -EOPNOTSUPP;
-@@ -594,7 +787,12 @@
+@@ -594,7 +787,12 @@ static int mtd_ioctl(struct inode *inode
  		struct erase_info_user info;
  		struct erase_info_user info;
  
  
  		if (copy_from_user(&info, argp, sizeof(info)))
  		if (copy_from_user(&info, argp, sizeof(info)))
@@ -2459,7 +2459,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  		if (!mtd->unlock)
  		if (!mtd->unlock)
  			ret = -EOPNOTSUPP;
  			ret = -EOPNOTSUPP;
-@@ -629,11 +827,21 @@
+@@ -629,11 +827,21 @@ static int mtd_ioctl(struct inode *inode
  		loff_t offs;
  		loff_t offs;
  
  
  		if (copy_from_user(&offs, argp, sizeof(loff_t)))
  		if (copy_from_user(&offs, argp, sizeof(loff_t)))
@@ -2481,7 +2481,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  		break;
  		break;
  	}
  	}
  
  
-@@ -642,11 +850,21 @@
+@@ -642,11 +850,21 @@ static int mtd_ioctl(struct inode *inode
  		loff_t offs;
  		loff_t offs;
  
  
  		if (copy_from_user(&offs, argp, sizeof(loff_t)))
  		if (copy_from_user(&offs, argp, sizeof(loff_t)))
@@ -2503,7 +2503,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  		break;
  		break;
  	}
  	}
  
  
-@@ -654,8 +872,12 @@
+@@ -654,8 +872,12 @@ static int mtd_ioctl(struct inode *inode
  	case OTPSELECT:
  	case OTPSELECT:
  	{
  	{
  		int mode;
  		int mode;
@@ -2517,7 +2517,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  
  
  		mfi->mode = MTD_MODE_NORMAL;
  		mfi->mode = MTD_MODE_NORMAL;
  
  
-@@ -670,7 +892,12 @@
+@@ -670,7 +892,12 @@ static int mtd_ioctl(struct inode *inode
  	{
  	{
  		struct otp_info *buf = kmalloc(4096, GFP_KERNEL);
  		struct otp_info *buf = kmalloc(4096, GFP_KERNEL);
  		if (!buf)
  		if (!buf)
@@ -2530,7 +2530,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  		ret = -EOPNOTSUPP;
  		ret = -EOPNOTSUPP;
  		switch (mfi->mode) {
  		switch (mfi->mode) {
  		case MTD_MODE_OTP_FACTORY:
  		case MTD_MODE_OTP_FACTORY:
-@@ -701,12 +928,24 @@
+@@ -701,12 +928,24 @@ static int mtd_ioctl(struct inode *inode
  	{
  	{
  		struct otp_info info;
  		struct otp_info info;
  
  
@@ -2558,7 +2558,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  		ret = mtd->lock_user_prot_reg(mtd, info.start, info.length);
  		ret = mtd->lock_user_prot_reg(mtd, info.start, info.length);
  		break;
  		break;
  	}
  	}
-@@ -742,8 +981,12 @@
+@@ -742,8 +981,12 @@ static int mtd_ioctl(struct inode *inode
  			break;
  			break;
  
  
  		case MTD_MODE_RAW:
  		case MTD_MODE_RAW:
@@ -2572,7 +2572,7 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  			mfi->mode = arg;
  			mfi->mode = arg;
  
  
  		case MTD_MODE_NORMAL:
  		case MTD_MODE_NORMAL:
-@@ -766,6 +1009,10 @@
+@@ -766,6 +1009,10 @@ static int mtd_ioctl(struct inode *inode
  		ret = -ENOTTY;
  		ret = -ENOTTY;
  	}
  	}
  
  
@@ -2583,11 +2583,11 @@ Index: linux-2.6.23.16/drivers/mtd/mtdchar.c
  	return ret;
  	return ret;
  } /* memory_ioctl */
  } /* memory_ioctl */
  
  
-Index: linux-2.6.23.16/drivers/mtd/nand/Kconfig
+Index: linux-2.6.23.17/drivers/mtd/nand/Kconfig
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/nand/Kconfig	2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/nand/Kconfig	2008-03-15 17:03:17.874821522 +0200
-@@ -44,6 +44,13 @@
+--- linux-2.6.23.17.orig/drivers/mtd/nand/Kconfig
++++ linux-2.6.23.17/drivers/mtd/nand/Kconfig
+@@ -44,6 +44,13 @@ config MTD_NAND_AUTCPU12
  	  This enables the driver for the autronix autcpu12 board to
  	  This enables the driver for the autronix autcpu12 board to
  	  access the SmartMediaCard.
  	  access the SmartMediaCard.
  
  
@@ -2601,10 +2601,10 @@ Index: linux-2.6.23.16/drivers/mtd/nand/Kconfig
  config MTD_NAND_EDB7312
  config MTD_NAND_EDB7312
  	tristate "Support for Cirrus Logic EBD7312 evaluation board"
  	tristate "Support for Cirrus Logic EBD7312 evaluation board"
  	depends on ARCH_EDB7312
  	depends on ARCH_EDB7312
-Index: linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.c
+Index: linux-2.6.23.17/drivers/mtd/nand/sl2312-flash-nand.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.c	2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/nand/sl2312-flash-nand.c
 @@ -0,0 +1,2287 @@
 @@ -0,0 +1,2287 @@
 +/*
 +/*
 + *  drivers/mtd/sl2312.c
 + *  drivers/mtd/sl2312.c
@@ -4893,10 +4893,10 @@ Index: linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.c
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
 +MODULE_AUTHOR("Alice Hennessy <[email protected]>");
 +MODULE_AUTHOR("Alice Hennessy <[email protected]>");
 +MODULE_DESCRIPTION("Glue layer for SmartMediaCard on Toshiba RBsl2312");
 +MODULE_DESCRIPTION("Glue layer for SmartMediaCard on Toshiba RBsl2312");
-Index: linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.h
+Index: linux-2.6.23.17/drivers/mtd/nand/sl2312-flash-nand.h
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.h	2008-03-15 17:04:25.878696749 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/mtd/nand/sl2312-flash-nand.h
 @@ -0,0 +1,24 @@
 @@ -0,0 +1,24 @@
 +#ifndef SL2312_FLASH_NAND_H
 +#ifndef SL2312_FLASH_NAND_H
 +#define SL2312_FLASH_NAND_H
 +#define SL2312_FLASH_NAND_H
@@ -4922,10 +4922,10 @@ Index: linux-2.6.23.16/drivers/mtd/nand/sl2312-flash-nand.h
 +
 +
 +
 +
 +#endif /* SL2312_FLASH_NAND_H */
 +#endif /* SL2312_FLASH_NAND_H */
-Index: linux-2.6.23.16/include/linux/mtd/kvctl.h
+Index: linux-2.6.23.17/include/linux/mtd/kvctl.h
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/include/linux/mtd/kvctl.h	2008-03-15 17:03:17.874821522 +0200
+--- /dev/null
++++ linux-2.6.23.17/include/linux/mtd/kvctl.h
 @@ -0,0 +1,40 @@
 @@ -0,0 +1,40 @@
 +#ifndef KVCTL_H
 +#ifndef KVCTL_H
 +#define KVCTL_H
 +#define KVCTL_H
@@ -4967,11 +4967,11 @@ Index: linux-2.6.23.16/include/linux/mtd/kvctl.h
 +#define VCT_VLAN		8
 +#define VCT_VLAN		8
 +
 +
 +#endif
 +#endif
-Index: linux-2.6.23.16/drivers/mtd/maps/Makefile
+Index: linux-2.6.23.17/drivers/mtd/maps/Makefile
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/mtd/maps/Makefile	2008-03-15 17:03:14.374622039 +0200
-+++ linux-2.6.23.16/drivers/mtd/maps/Makefile	2008-03-15 17:03:17.874821522 +0200
-@@ -71,3 +71,7 @@
+--- linux-2.6.23.17.orig/drivers/mtd/maps/Makefile
++++ linux-2.6.23.17/drivers/mtd/maps/Makefile
+@@ -71,3 +71,7 @@ obj-$(CONFIG_MTD_PLATRAM)	+= plat-ram.o
  obj-$(CONFIG_MTD_OMAP_NOR)	+= omap_nor.o
  obj-$(CONFIG_MTD_OMAP_NOR)	+= omap_nor.o
  obj-$(CONFIG_MTD_MTX1)		+= mtx-1_flash.o
  obj-$(CONFIG_MTD_MTX1)		+= mtx-1_flash.o
  obj-$(CONFIG_MTD_TQM834x)	+= tqm834x.o
  obj-$(CONFIG_MTD_TQM834x)	+= tqm834x.o

+ 27 - 27
target/linux/storm/patches/1021-serial.patch

@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/serial/it8712.c
+Index: linux-2.6.23.17/drivers/serial/it8712.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/serial/it8712.c	2008-03-15 17:59:53.568330991 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/serial/it8712.c
 @@ -0,0 +1,858 @@
 @@ -0,0 +1,858 @@
 +/*
 +/*
 + *  linux/drivers/char/serial_uart00.c
 + *  linux/drivers/char/serial_uart00.c
@@ -861,10 +861,10 @@ Index: linux-2.6.23.16/drivers/serial/it8712.c
 +
 +
 +
 +
 +__initcall(it8712_init);
 +__initcall(it8712_init);
-Index: linux-2.6.23.16/drivers/serial/it8712.h
+Index: linux-2.6.23.17/drivers/serial/it8712.h
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/serial/it8712.h	2008-03-15 17:59:53.568330991 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/serial/it8712.h
 @@ -0,0 +1,135 @@
 @@ -0,0 +1,135 @@
 +#define UART_RX		0	/* In:  Receive buffer (DLAB=0) */
 +#define UART_RX		0	/* In:  Receive buffer (DLAB=0) */
 +#define UART_TX		0	/* Out: Transmit buffer (DLAB=0) */
 +#define UART_TX		0	/* Out: Transmit buffer (DLAB=0) */
@@ -1001,10 +1001,10 @@ Index: linux-2.6.23.16/drivers/serial/it8712.h
 +
 +
 +
 +
 +
 +
-Index: linux-2.6.23.16/drivers/serial/serial_it8712.c
+Index: linux-2.6.23.17/drivers/serial/serial_it8712.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/serial/serial_it8712.c	2008-03-15 17:59:53.568330991 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/serial/serial_it8712.c
 @@ -0,0 +1,876 @@
 @@ -0,0 +1,876 @@
 +/*
 +/*
 + *  linux/drivers/char/serial_uart00.c
 + *  linux/drivers/char/serial_uart00.c
@@ -1882,10 +1882,10 @@ Index: linux-2.6.23.16/drivers/serial/serial_it8712.c
 +
 +
 +
 +
 +__initcall(it8712_init);
 +__initcall(it8712_init);
-Index: linux-2.6.23.16/drivers/serial/serial_sl2312.c
+Index: linux-2.6.23.17/drivers/serial/serial_sl2312.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/serial/serial_sl2312.c	2008-03-17 12:30:50.290536619 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/serial/serial_sl2312.c
 @@ -0,0 +1,827 @@
 @@ -0,0 +1,827 @@
 +/*
 +/*
 + *  linux/drivers/char/serial_uart00.c
 + *  linux/drivers/char/serial_uart00.c
@@ -2714,10 +2714,10 @@ Index: linux-2.6.23.16/drivers/serial/serial_sl2312.c
 +
 +
 +
 +
 +__initcall(sl2312_init);
 +__initcall(sl2312_init);
-Index: linux-2.6.23.16/include/linux/serial_core.h
+Index: linux-2.6.23.17/include/linux/serial_core.h
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/include/linux/serial_core.h	2008-03-15 17:59:22.566564448 +0200
-+++ linux-2.6.23.16/include/linux/serial_core.h	2008-03-15 17:59:53.568330991 +0200
+--- linux-2.6.23.17.orig/include/linux/serial_core.h
++++ linux-2.6.23.17/include/linux/serial_core.h
 @@ -147,6 +147,10 @@
 @@ -147,6 +147,10 @@
  #define PORT_SB1250_DUART	77
  #define PORT_SB1250_DUART	77
  
  
@@ -2729,11 +2729,11 @@ Index: linux-2.6.23.16/include/linux/serial_core.h
  #ifdef __KERNEL__
  #ifdef __KERNEL__
  
  
  #include <linux/compiler.h>
  #include <linux/compiler.h>
-Index: linux-2.6.23.16/drivers/char/Makefile
+Index: linux-2.6.23.17/drivers/char/Makefile
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/char/Makefile	2008-03-15 17:59:22.566564448 +0200
-+++ linux-2.6.23.16/drivers/char/Makefile	2008-03-17 12:19:43.252524398 +0200
-@@ -70,6 +70,16 @@
+--- linux-2.6.23.17.orig/drivers/char/Makefile
++++ linux-2.6.23.17/drivers/char/Makefile
+@@ -70,6 +70,16 @@ obj-$(CONFIG_R3964)		+= n_r3964.o
  obj-$(CONFIG_APPLICOM)		+= applicom.o
  obj-$(CONFIG_APPLICOM)		+= applicom.o
  obj-$(CONFIG_SONYPI)		+= sonypi.o
  obj-$(CONFIG_SONYPI)		+= sonypi.o
  obj-$(CONFIG_RTC)		+= rtc.o
  obj-$(CONFIG_RTC)		+= rtc.o
@@ -2750,11 +2750,11 @@ Index: linux-2.6.23.16/drivers/char/Makefile
  obj-$(CONFIG_HPET)		+= hpet.o
  obj-$(CONFIG_HPET)		+= hpet.o
  obj-$(CONFIG_GEN_RTC)		+= genrtc.o
  obj-$(CONFIG_GEN_RTC)		+= genrtc.o
  obj-$(CONFIG_EFI_RTC)		+= efirtc.o
  obj-$(CONFIG_EFI_RTC)		+= efirtc.o
-Index: linux-2.6.23.16/drivers/serial/Kconfig
+Index: linux-2.6.23.17/drivers/serial/Kconfig
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/serial/Kconfig	2008-03-15 17:59:22.566564448 +0200
-+++ linux-2.6.23.16/drivers/serial/Kconfig	2008-03-15 17:59:53.568330991 +0200
-@@ -280,6 +280,56 @@
+--- linux-2.6.23.17.orig/drivers/serial/Kconfig
++++ linux-2.6.23.17/drivers/serial/Kconfig
+@@ -280,6 +280,56 @@ config SERIAL_8250_RM9K
  
  
  comment "Non-8250 serial port support"
  comment "Non-8250 serial port support"
  
  
@@ -2811,11 +2811,11 @@ Index: linux-2.6.23.16/drivers/serial/Kconfig
  config SERIAL_AMBA_PL010
  config SERIAL_AMBA_PL010
  	tristate "ARM AMBA PL010 serial port support"
  	tristate "ARM AMBA PL010 serial port support"
  	depends on ARM_AMBA && (BROKEN || !ARCH_VERSATILE)
  	depends on ARM_AMBA && (BROKEN || !ARCH_VERSATILE)
-Index: linux-2.6.23.16/drivers/serial/Makefile
+Index: linux-2.6.23.17/drivers/serial/Makefile
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/serial/Makefile	2008-03-15 17:59:22.566564448 +0200
-+++ linux-2.6.23.16/drivers/serial/Makefile	2008-03-15 17:59:53.568330991 +0200
-@@ -62,5 +62,7 @@
+--- linux-2.6.23.17.orig/drivers/serial/Makefile
++++ linux-2.6.23.17/drivers/serial/Makefile
+@@ -62,5 +62,7 @@ obj-$(CONFIG_SERIAL_SGI_IOC3) += ioc3_se
  obj-$(CONFIG_SERIAL_ATMEL) += atmel_serial.o
  obj-$(CONFIG_SERIAL_ATMEL) += atmel_serial.o
  obj-$(CONFIG_SERIAL_UARTLITE) += uartlite.o
  obj-$(CONFIG_SERIAL_UARTLITE) += uartlite.o
  obj-$(CONFIG_SERIAL_NETX) += netx-serial.o
  obj-$(CONFIG_SERIAL_NETX) += netx-serial.o

+ 11 - 11
target/linux/storm/patches/1100-gpio.patch

@@ -1,7 +1,7 @@
-Index: linux-2.6.23.16/drivers/char/gemini_gpio_dev.c
+Index: linux-2.6.23.17/drivers/char/gemini_gpio_dev.c
 ===================================================================
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.23.16/drivers/char/gemini_gpio_dev.c	2008-03-15 17:05:28.382258620 +0200
+--- /dev/null
++++ linux-2.6.23.17/drivers/char/gemini_gpio_dev.c
 @@ -0,0 +1,356 @@
 @@ -0,0 +1,356 @@
 +/*
 +/*
 + * 	GPIO driver for Gemini board
 + * 	GPIO driver for Gemini board
@@ -359,11 +359,11 @@ Index: linux-2.6.23.16/drivers/char/gemini_gpio_dev.c
 +MODULE_AUTHOR("Jonas Majauskas");
 +MODULE_AUTHOR("Jonas Majauskas");
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
 +
 +
-Index: linux-2.6.23.16/drivers/char/Kconfig
+Index: linux-2.6.23.17/drivers/char/Kconfig
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/char/Kconfig	2008-03-13 17:45:54.000221290 +0200
-+++ linux-2.6.23.16/drivers/char/Kconfig	2008-03-15 17:05:09.381175866 +0200
-@@ -1064,5 +1064,12 @@
+--- linux-2.6.23.17.orig/drivers/char/Kconfig
++++ linux-2.6.23.17/drivers/char/Kconfig
+@@ -1064,5 +1064,12 @@ config DEVPORT
  
  
  source "drivers/s390/char/Kconfig"
  source "drivers/s390/char/Kconfig"
  
  
@@ -376,11 +376,11 @@ Index: linux-2.6.23.16/drivers/char/Kconfig
 +
 +
  endmenu
  endmenu
  
  
-Index: linux-2.6.23.16/drivers/char/Makefile
+Index: linux-2.6.23.17/drivers/char/Makefile
 ===================================================================
 ===================================================================
---- linux-2.6.23.16.orig/drivers/char/Makefile	2008-03-15 17:04:35.879266660 +0200
-+++ linux-2.6.23.16/drivers/char/Makefile	2008-03-15 17:05:09.381175866 +0200
-@@ -115,6 +115,7 @@
+--- linux-2.6.23.17.orig/drivers/char/Makefile
++++ linux-2.6.23.17/drivers/char/Makefile
+@@ -115,6 +115,7 @@ obj-$(CONFIG_IPMI_HANDLER)	+= ipmi/
  
  
  obj-$(CONFIG_HANGCHECK_TIMER)	+= hangcheck-timer.o
  obj-$(CONFIG_HANGCHECK_TIMER)	+= hangcheck-timer.o
  obj-$(CONFIG_TCG_TPM)		+= tpm/
  obj-$(CONFIG_TCG_TPM)		+= tpm/

Some files were not shown because too many files changed in this diff