From 6cd2a38d9443178b42f390440413d91d5984a04c Mon Sep 17 00:00:00 2001
From: kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Fri, 18 Mar 2011 13:33:18 +0000
Subject: [PATCH] [sibyte]: upgrade to 2.6.37.4

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26228 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 target/linux/sibyte/Makefile                  |  4 ++--
 target/linux/sibyte/config-default            |  1 -
 .../sibyte/patches/101-rhone_physmap.patch    |  8 +++----
 .../sibyte/patches/103-m41t80_smbus.patch     | 24 +++++++++----------
 .../patches/104-sibyte_rtc_cleanup.patch      | 10 ++++----
 .../sibyte/patches/106-no_module_reloc.patch  |  8 ++++---
 6 files changed, 28 insertions(+), 27 deletions(-)

diff --git a/target/linux/sibyte/Makefile b/target/linux/sibyte/Makefile
index 6614b82fc..4a9c6d91b 100644
--- a/target/linux/sibyte/Makefile
+++ b/target/linux/sibyte/Makefile
@@ -9,11 +9,11 @@ include $(TOPDIR)/rules.mk
 ARCH:=mips
 BOARD:=sibyte
 BOARDNAME:=Broadcom/SiByte SB-1
-FEATURES:=fpu
+FEATURES:=fpu ramdisk
 CFLAGS:=-Os -pipe -march=sb1 -funit-at-a-time
 MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
 
-LINUX_VERSION:=2.6.32.33
+LINUX_VERSION:=2.6.37.4
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/sibyte/config-default b/target/linux/sibyte/config-default
index 375f2fe30..91d168219 100644
--- a/target/linux/sibyte/config-default
+++ b/target/linux/sibyte/config-default
@@ -114,7 +114,6 @@ CONFIG_LOG_BUF_SHIFT=15
 # CONFIG_MACH_TX49XX is not set
 # CONFIG_MACH_VR41XX is not set
 # CONFIG_MIKROTIK_RB532 is not set
-CONFIG_MINI_FO=m
 CONFIG_MIPS32_COMPAT=y
 # CONFIG_MIPS32_N32 is not set
 CONFIG_MIPS32_O32=y
diff --git a/target/linux/sibyte/patches/101-rhone_physmap.patch b/target/linux/sibyte/patches/101-rhone_physmap.patch
index e0d774e96..fb917379e 100644
--- a/target/linux/sibyte/patches/101-rhone_physmap.patch
+++ b/target/linux/sibyte/patches/101-rhone_physmap.patch
@@ -8,10 +8,10 @@
  #include <asm/sibyte/board.h>
  #include <asm/sibyte/sb1250_genbus.h>
  #include <asm/sibyte/sb1250_regs.h>
-@@ -83,3 +84,71 @@ static int __init swarm_pata_init(void)
- device_initcall(swarm_pata_init);
- 
- #endif /* defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_LITTLESUR) */
+@@ -137,3 +138,71 @@ static int __init sb1250_device_init(voi
+ 	return ret;
+ }
+ device_initcall(sb1250_device_init);
 +
 +#ifdef CONFIG_SIBYTE_RHONE
 +
diff --git a/target/linux/sibyte/patches/103-m41t80_smbus.patch b/target/linux/sibyte/patches/103-m41t80_smbus.patch
index c6a07c6d5..84c0eba35 100644
--- a/target/linux/sibyte/patches/103-m41t80_smbus.patch
+++ b/target/linux/sibyte/patches/103-m41t80_smbus.patch
@@ -24,9 +24,9 @@
 -#define DRV_VERSION "0.05"
 +#define DRV_VERSION "0.06"
  
+ static DEFINE_MUTEX(m41t80_rtc_mutex);
  static const struct i2c_device_id m41t80_id[] = {
- 	{ "m41t62", M41T80_FEATURE_SQ | M41T80_FEATURE_SQ_ALT },
-@@ -88,31 +91,88 @@ struct m41t80_data {
+@@ -89,31 +92,88 @@ struct m41t80_data {
  	struct rtc_device *rtc;
  };
  
@@ -136,7 +136,7 @@
  	tm->tm_min = bcd2bin(buf[M41T80_REG_MIN] & 0x7f);
  	tm->tm_hour = bcd2bin(buf[M41T80_REG_HOUR] & 0x3f);
  	tm->tm_mday = bcd2bin(buf[M41T80_REG_DAY] & 0x3f);
-@@ -127,39 +187,16 @@ static int m41t80_get_datetime(struct i2
+@@ -128,39 +188,16 @@ static int m41t80_get_datetime(struct i2
  /* Sets the given date and time to the real time clock. */
  static int m41t80_set_datetime(struct i2c_client *client, struct rtc_time *tm)
  {
@@ -180,7 +180,7 @@
  	/* Merge time-data and register flags into buf[0..7] */
  	buf[M41T80_REG_SSEC] = 0;
  	buf[M41T80_REG_SEC] =
-@@ -177,7 +214,8 @@ static int m41t80_set_datetime(struct i2
+@@ -178,7 +215,8 @@ static int m41t80_set_datetime(struct i2
  	/* assume 20YY not 19YY */
  	buf[M41T80_REG_YEAR] = bin2bcd(tm->tm_year % 100);
  
@@ -190,7 +190,7 @@
  		dev_err(&client->dev, "write error\n");
  		return -EIO;
  	}
-@@ -251,34 +289,11 @@ err:
+@@ -252,34 +290,11 @@ err:
  static int m41t80_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *t)
  {
  	struct i2c_client *client = to_i2c_client(dev);
@@ -228,7 +228,7 @@
  		dev_err(&client->dev, "read error\n");
  		return -EIO;
  	}
-@@ -288,7 +303,6 @@ static int m41t80_rtc_set_alarm(struct d
+@@ -289,7 +304,6 @@ static int m41t80_rtc_set_alarm(struct d
  	reg[M41T80_REG_ALARM_MIN] = 0;
  	reg[M41T80_REG_ALARM_SEC] = 0;
  
@@ -236,7 +236,7 @@
  	reg[M41T80_REG_ALARM_SEC] |= t->time.tm_sec >= 0 ?
  		bin2bcd(t->time.tm_sec) : 0x80;
  	reg[M41T80_REG_ALARM_MIN] |= t->time.tm_min >= 0 ?
-@@ -302,7 +316,8 @@ static int m41t80_rtc_set_alarm(struct d
+@@ -303,7 +317,8 @@ static int m41t80_rtc_set_alarm(struct d
  	else
  		reg[M41T80_REG_ALARM_DAY] |= 0x40;
  
@@ -246,7 +246,7 @@
  		dev_err(&client->dev, "write error\n");
  		return -EIO;
  	}
-@@ -322,24 +337,10 @@ static int m41t80_rtc_read_alarm(struct 
+@@ -323,24 +338,10 @@ static int m41t80_rtc_read_alarm(struct
  {
  	struct i2c_client *client = to_i2c_client(dev);
  	u8 buf[M41T80_ALARM_REG_SIZE + 1]; /* all alarm regs and flags */
@@ -273,7 +273,7 @@
  		dev_err(&client->dev, "read error\n");
  		return -EIO;
  	}
-@@ -512,26 +513,16 @@ static int boot_flag;
+@@ -513,26 +514,16 @@ static int boot_flag;
   */
  static void wdt_ping(void)
  {
@@ -306,7 +306,7 @@
  
  	/*
  	 * M41T65 has three bits for watchdog resolution.  Don't set bit 7, as
-@@ -540,7 +531,7 @@ static void wdt_ping(void)
+@@ -541,7 +532,7 @@ static void wdt_ping(void)
  	if (clientdata->features & M41T80_FEATURE_WD)
  		i2c_data[1] &= ~M41T80_WATCHDOG_RB2;
  
@@ -315,7 +315,7 @@
  }
  
  /**
-@@ -550,36 +541,8 @@ static void wdt_ping(void)
+@@ -551,36 +542,8 @@ static void wdt_ping(void)
   */
  static void wdt_disable(void)
  {
@@ -354,7 +354,7 @@
  }
  
  /**
-@@ -772,8 +735,8 @@ static int m41t80_probe(struct i2c_clien
+@@ -782,8 +745,8 @@ static int m41t80_probe(struct i2c_clien
  	struct rtc_time tm;
  	struct m41t80_data *clientdata = NULL;
  
diff --git a/target/linux/sibyte/patches/104-sibyte_rtc_cleanup.patch b/target/linux/sibyte/patches/104-sibyte_rtc_cleanup.patch
index f789dada9..0483142b1 100644
--- a/target/linux/sibyte/patches/104-sibyte_rtc_cleanup.patch
+++ b/target/linux/sibyte/patches/104-sibyte_rtc_cleanup.patch
@@ -22,7 +22,7 @@
 -enum swarm_rtc_type {
 -	RTC_NONE,
 -	RTC_XICOR,
--	RTC_M4LT81
+-	RTC_M41T81,
 -};
 -
 -enum swarm_rtc_type swarm_rtc_type;
@@ -36,7 +36,7 @@
 -		sec = xicor_get_time();
 -		break;
 -
--	case RTC_M4LT81:
+-	case RTC_M41T81:
 -		sec = m41t81_get_time();
 -		break;
 -
@@ -56,7 +56,7 @@
 -	case RTC_XICOR:
 -		return xicor_set_time(sec);
 -
--	case RTC_M4LT81:
+-	case RTC_M41T81:
 -		return m41t81_set_time(sec);
 -
 -	case RTC_NONE:
@@ -73,8 +73,8 @@
 -	if (xicor_probe())
 -		swarm_rtc_type = RTC_XICOR;
 -	if (m41t81_probe())
--		swarm_rtc_type = RTC_M4LT81;
+-		swarm_rtc_type = RTC_M41T81;
 -
  #ifdef CONFIG_VT
  	screen_info = (struct screen_info) {
- 		0, 0,           /* orig-x, orig-y */
+ 		.orig_video_page	= 52,
diff --git a/target/linux/sibyte/patches/106-no_module_reloc.patch b/target/linux/sibyte/patches/106-no_module_reloc.patch
index 3b1f12427..108b49808 100644
--- a/target/linux/sibyte/patches/106-no_module_reloc.patch
+++ b/target/linux/sibyte/patches/106-no_module_reloc.patch
@@ -1,11 +1,13 @@
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -85,7 +85,7 @@ all-$(CONFIG_BOOT_ELF64)	:= $(vmlinux-64
+@@ -93,8 +93,8 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
  cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe
  cflags-y			+= -msoft-float
  LDFLAGS_vmlinux			+= -G 0 -static -n -nostdlib
--MODFLAGS			+= -mno-long-calls
-+MODFLAGS			+= -mlong-calls
+-KBUILD_AFLAGS_MODULE		+= -mno-long-calls
+-KBUILD_CFLAGS_MODULE		+= -mno-long-calls
++KBUILD_AFLAGS_MODULE		+= -mlong-calls
++KBUILD_CFLAGS_MODULE		+= -mlong-calls
  
  cflags-y += -ffreestanding
  
-- 
2.20.1