summaryrefslogtreecommitdiffstats
path: root/meta/packages
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@openedhand.com>2007-08-13 15:42:15 +0000
committerSamuel Ortiz <sameo@openedhand.com>2007-08-13 15:42:15 +0000
commit6bd2d7a02c62f8e462b694a01ea43384449b851b (patch)
tree5902edc61476388352a55799e0000a2de542ece3 /meta/packages
parente2fe0bd7eeac230b30bcd18e2a25526a50c89045 (diff)
downloadpoky-6bd2d7a02c62f8e462b694a01ea43384449b851b.tar.gz
linux-nokia800: Nokia 770 boots the 2.6.18 osso kernel.
Sato images are now running properly with this kernel, on a 770. git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2486 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages')
-rw-r--r--meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770/defconfig36
-rw-r--r--meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770_nand_fix.patch328
2 files changed, 304 insertions, 60 deletions
diff --git a/meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770/defconfig b/meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770/defconfig
index eab2dea215..a6cbb33280 100644
--- a/meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770/defconfig
+++ b/meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-omap1 3# Linux kernel version: 2.6.18-omap1
4# Wed May 23 16:39:36 2007 4# Mon Aug 13 17:32:01 2007
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -308,9 +308,17 @@ CONFIG_TCP_CONG_BIC=y
308# IP: Virtual Server Configuration 308# IP: Virtual Server Configuration
309# 309#
310# CONFIG_IP_VS is not set 310# CONFIG_IP_VS is not set
311# CONFIG_IPV6 is not set 311CONFIG_IPV6=y
312# CONFIG_IPV6_PRIVACY is not set
313# CONFIG_IPV6_ROUTER_PREF is not set
314# CONFIG_INET6_AH is not set
315# CONFIG_INET6_ESP is not set
316# CONFIG_INET6_IPCOMP is not set
312# CONFIG_INET6_XFRM_TUNNEL is not set 317# CONFIG_INET6_XFRM_TUNNEL is not set
313# CONFIG_INET6_TUNNEL is not set 318# CONFIG_INET6_TUNNEL is not set
319CONFIG_INET6_XFRM_MODE_TRANSPORT=y
320CONFIG_INET6_XFRM_MODE_TUNNEL=y
321# CONFIG_IPV6_TUNNEL is not set
314# CONFIG_NETWORK_SECMARK is not set 322# CONFIG_NETWORK_SECMARK is not set
315CONFIG_NETFILTER=y 323CONFIG_NETFILTER=y
316# CONFIG_NETFILTER_DEBUG is not set 324# CONFIG_NETFILTER_DEBUG is not set
@@ -331,6 +339,11 @@ CONFIG_NETFILTER_NETLINK=y
331# CONFIG_IP_NF_QUEUE is not set 339# CONFIG_IP_NF_QUEUE is not set
332 340
333# 341#
342# IPv6: Netfilter Configuration (EXPERIMENTAL)
343#
344# CONFIG_IP6_NF_QUEUE is not set
345
346#
334# DCCP Configuration (EXPERIMENTAL) 347# DCCP Configuration (EXPERIMENTAL)
335# 348#
336# CONFIG_IP_DCCP is not set 349# CONFIG_IP_DCCP is not set
@@ -697,13 +710,16 @@ CONFIG_HW_CONSOLE=y
697# 710#
698# Serial drivers 711# Serial drivers
699# 712#
700# CONFIG_SERIAL_8250 is not set 713CONFIG_SERIAL_8250=y
714CONFIG_SERIAL_8250_CONSOLE=y
715CONFIG_SERIAL_8250_NR_UARTS=4
716CONFIG_SERIAL_8250_RUNTIME_UARTS=4
717# CONFIG_SERIAL_8250_EXTENDED is not set
701 718
702# 719#
703# Non-8250 serial port support 720# Non-8250 serial port support
704# 721#
705CONFIG_SERIAL_OMAP=y 722# CONFIG_SERIAL_OMAP is not set
706CONFIG_SERIAL_OMAP_CONSOLE=y
707CONFIG_SERIAL_CORE=y 723CONFIG_SERIAL_CORE=y
708CONFIG_SERIAL_CORE_CONSOLE=y 724CONFIG_SERIAL_CORE_CONSOLE=y
709CONFIG_UNIX98_PTYS=y 725CONFIG_UNIX98_PTYS=y
@@ -906,7 +922,7 @@ CONFIG_FB_OMAP_LCDC_EXTERNAL=y
906CONFIG_FB_OMAP_LCDC_HWA742=y 922CONFIG_FB_OMAP_LCDC_HWA742=y
907# CONFIG_FB_OMAP_LCDC_BLIZZARD is not set 923# CONFIG_FB_OMAP_LCDC_BLIZZARD is not set
908CONFIG_FB_OMAP_MANUAL_UPDATE=y 924CONFIG_FB_OMAP_MANUAL_UPDATE=y
909# CONFIG_FB_OMAP_LCD_MIPID is not set 925CONFIG_FB_OMAP_LCD_MIPID=y
910# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set 926# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
911CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2 927CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
912# CONFIG_FB_OMAP_DMA_TUNE is not set 928# CONFIG_FB_OMAP_DMA_TUNE is not set
@@ -988,16 +1004,12 @@ CONFIG_USB_BANDWIDTH=y
988# CONFIG_USB_DYNAMIC_MINORS is not set 1004# CONFIG_USB_DYNAMIC_MINORS is not set
989CONFIG_USB_SUSPEND=y 1005CONFIG_USB_SUSPEND=y
990# CONFIG_USB_OTG is not set 1006# CONFIG_USB_OTG is not set
991# CONFIG_USB_OTG_WHITELIST is not set
992# CONFIG_USB_OTG_BLACKLIST_HUB is not set
993 1007
994# 1008#
995# USB Host Controller Drivers 1009# USB Host Controller Drivers
996# 1010#
997# CONFIG_USB_ISP116X_HCD is not set 1011# CONFIG_USB_ISP116X_HCD is not set
998# CONFIG_USB_OHCI_HCD is not set 1012# CONFIG_USB_OHCI_HCD is not set
999# CONFIG_USB_OHCI_BIG_ENDIAN is not set
1000CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1001# CONFIG_USB_SL811_HCD is not set 1013# CONFIG_USB_SL811_HCD is not set
1002# CONFIG_USB_MUSB_HDRC is not set 1014# CONFIG_USB_MUSB_HDRC is not set
1003# CONFIG_USB_GADGET_MUSB_HDRC is not set 1015# CONFIG_USB_GADGET_MUSB_HDRC is not set
@@ -1188,7 +1200,6 @@ CONFIG_CBUS=y
1188CONFIG_CBUS_TAHVO=y 1200CONFIG_CBUS_TAHVO=y
1189CONFIG_CBUS_TAHVO_USER=y 1201CONFIG_CBUS_TAHVO_USER=y
1190CONFIG_CBUS_TAHVO_USB=y 1202CONFIG_CBUS_TAHVO_USB=y
1191# CONFIG_CBUS_TAHVO_USB_HOST_BY_DEFAULT is not set
1192CONFIG_CBUS_RETU=y 1203CONFIG_CBUS_RETU=y
1193CONFIG_CBUS_RETU_USER=y 1204CONFIG_CBUS_RETU_USER=y
1194CONFIG_CBUS_RETU_POWERBUTTON=y 1205CONFIG_CBUS_RETU_POWERBUTTON=y
@@ -1216,7 +1227,8 @@ CONFIG_FS_MBCACHE=y
1216# CONFIG_OCFS2_FS is not set 1227# CONFIG_OCFS2_FS is not set
1217# CONFIG_MINIX_FS is not set 1228# CONFIG_MINIX_FS is not set
1218# CONFIG_ROMFS_FS is not set 1229# CONFIG_ROMFS_FS is not set
1219# CONFIG_INOTIFY is not set 1230CONFIG_INOTIFY=y
1231CONFIG_INOTIFY_USER=y
1220# CONFIG_QUOTA is not set 1232# CONFIG_QUOTA is not set
1221CONFIG_DNOTIFY=y 1233CONFIG_DNOTIFY=y
1222# CONFIG_AUTOFS_FS is not set 1234# CONFIG_AUTOFS_FS is not set
diff --git a/meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770_nand_fix.patch b/meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770_nand_fix.patch
index aa801fbb5e..79d53545e3 100644
--- a/meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770_nand_fix.patch
+++ b/meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770_nand_fix.patch
@@ -1,15 +1,154 @@
1--- 1---
2 arch/arm/mach-omap1/mmu.c | 1 + 2 arch/arm/mach-omap1/board-nokia770.c | 60 +++++++++++++++++++++++++++++++----
3 drivers/cbus/tahvo-usb.c | 4 ++-- 3 arch/arm/mach-omap1/mmu.c | 1
4 drivers/i2c/chips/isp1301_omap.c | 1 + 4 drivers/cbus/tahvo-usb.c | 4 +-
5 drivers/mtd/nand/omap-hw.c | 37 +++++++++++++++---------------------- 5 drivers/i2c/chips/isp1301_omap.c | 1
6 drivers/video/omap/omapfb_main.c | 4 ++-- 6 drivers/mtd/mtdchar.c | 6 +++
7 5 files changed, 21 insertions(+), 26 deletions(-) 7 drivers/mtd/mtdpart.c | 5 ++
8 drivers/mtd/nand/omap-hw.c | 55 +++++++++++++++-----------------
9 drivers/serial/8250.c | 2 +
10 drivers/video/omap/omapfb_main.c | 4 +-
11 include/asm-arm/arch-omap/keypad.h | 3 +
12 include/asm-arm/arch-omap/serial.h | 16 +++++++++
13 11 files changed, 118 insertions(+), 39 deletions(-)
8 14
15Index: linux-g/arch/arm/mach-omap1/board-nokia770.c
16===================================================================
17--- linux-g.orig/arch/arm/mach-omap1/board-nokia770.c 2006-11-08 13:18:39.000000000 +0100
18+++ linux-g/arch/arm/mach-omap1/board-nokia770.c 2007-08-13 16:23:15.000000000 +0200
19@@ -16,6 +16,8 @@
20
21 #include <linux/spi/spi.h>
22 #include <linux/spi/ads7846.h>
23+#include <linux/workqueue.h>
24+#include <linux/delay.h>
25
26 #include <asm/hardware.h>
27 #include <asm/mach-types.h>
28@@ -33,9 +35,12 @@
29 #include <asm/arch/gpio.h>
30 #include <asm/arch/omapfb.h>
31 #include <asm/arch/hwa742.h>
32+#include <asm/arch/lcd_mipid.h>
33
34 #include "../plat-omap/dsp/dsp_common.h"
35
36+#define ADS7846_PENDOWN_GPIO 15
37+
38 static void __init omap_nokia770_init_irq(void)
39 {
40 /* On Nokia 770, the SleepX signal is masked with an
41@@ -75,9 +80,11 @@
42 };
43
44 static struct omap_kp_platform_data nokia770_kp_data = {
45- .rows = 8,
46- .cols = 8,
47- .keymap = nokia770_keymap
48+ .rows = 8,
49+ .cols = 8,
50+ .keymap = nokia770_keymap,
51+ .keymapsize = ARRAY_SIZE(nokia770_keymap),
52+ .delay = 4,
53 };
54
55 static struct platform_device nokia770_kp_device = {
56@@ -94,6 +101,41 @@
57 &nokia770_kp_device,
58 };
59
60+static void mipid_shutdown(struct mipid_platform_data *pdata)
61+{
62+ if (pdata->nreset_gpio != -1) {
63+ printk(KERN_INFO "shutdown LCD\n");
64+ omap_set_gpio_dataout(pdata->nreset_gpio, 0);
65+ msleep(120);
66+ }
67+}
68+
69+static struct mipid_platform_data nokia770_mipid_platform_data = {
70+ .shutdown = mipid_shutdown,
71+};
72+
73+static void mipid_dev_init(void)
74+{
75+ const struct omap_lcd_config *conf;
76+
77+ conf = omap_get_config(OMAP_TAG_LCD, struct omap_lcd_config);
78+ if (conf != NULL) {
79+ nokia770_mipid_platform_data.nreset_gpio = conf->nreset_gpio;
80+ nokia770_mipid_platform_data.data_lines = conf->data_lines;
81+ }
82+}
83+
84+static void ads7846_dev_init(void)
85+{
86+ if (omap_request_gpio(ADS7846_PENDOWN_GPIO) < 0)
87+ printk(KERN_ERR "can't get ads7846 pen down GPIO\n");
88+}
89+
90+static int ads7846_get_pendown_state(void)
91+{
92+ return !omap_get_gpio_datain(ADS7846_PENDOWN_GPIO);
93+}
94+
95 static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata = {
96 .x_max = 0x0fff,
97 .y_max = 0x0fff,
98@@ -101,14 +143,17 @@
99 .pressure_max = 255,
100 .debounce_max = 10,
101 .debounce_tol = 3,
102+ .debounce_rep = 1,
103+ .get_pendown_state = ads7846_get_pendown_state,
104 };
105
106 static struct spi_board_info nokia770_spi_board_info[] __initdata = {
107 [0] = {
108- .modalias = "lcd_lph8923",
109+ .modalias = "lcd_mipid",
110 .bus_num = 2,
111 .chip_select = 3,
112 .max_speed_hz = 12000000,
113+ .platform_data = &nokia770_mipid_platform_data,
114 },
115 [1] = {
116 .modalias = "ads7846",
117@@ -189,7 +234,7 @@
118 },
119 };
120
121-static struct omap_board_config_kernel nokia770_config[] = {
122+static struct omap_board_config_kernel nokia770_config[] __initdata = {
123 { OMAP_TAG_USB, NULL },
124 { OMAP_TAG_MMC, &nokia770_mmc_config },
125 };
126@@ -235,7 +280,7 @@
127 printk("HP connected\n");
128 }
129
130-static void codec_delayed_power_down(void *arg)
131+static void codec_delayed_power_down(struct work_struct *work)
132 {
133 down(&audio_pwr_sem);
134 if (audio_pwr_state == -1)
135@@ -326,9 +371,12 @@
136 ARRAY_SIZE(nokia770_spi_board_info));
137 omap_board_config = nokia770_config;
138 omap_board_config_size = ARRAY_SIZE(nokia770_config);
139+ omap_gpio_init();
140 omap_serial_init();
141 omap_dsp_init();
142 hwa742_dev_init();
143+ ads7846_dev_init();
144+ mipid_dev_init();
145 }
146
147 static void __init omap_nokia770_map_io(void)
9Index: linux-g/arch/arm/mach-omap1/mmu.c 148Index: linux-g/arch/arm/mach-omap1/mmu.c
10=================================================================== 149===================================================================
11--- linux-g.orig/arch/arm/mach-omap1/mmu.c 2007-05-23 18:05:21.000000000 +0100 150--- linux-g.orig/arch/arm/mach-omap1/mmu.c 2007-08-13 13:54:01.000000000 +0200
12+++ linux-g/arch/arm/mach-omap1/mmu.c 2007-05-23 18:05:23.000000000 +0100 151+++ linux-g/arch/arm/mach-omap1/mmu.c 2007-08-13 16:23:15.000000000 +0200
13@@ -29,6 +29,7 @@ 152@@ -29,6 +29,7 @@
14 #include <linux/kernel.h> 153 #include <linux/kernel.h>
15 #include <linux/mm.h> 154 #include <linux/mm.h>
@@ -20,9 +159,9 @@ Index: linux-g/arch/arm/mach-omap1/mmu.c
20 159
21Index: linux-g/drivers/cbus/tahvo-usb.c 160Index: linux-g/drivers/cbus/tahvo-usb.c
22=================================================================== 161===================================================================
23--- linux-g.orig/drivers/cbus/tahvo-usb.c 2006-11-08 12:18:51.000000000 +0000 162--- linux-g.orig/drivers/cbus/tahvo-usb.c 2006-11-08 13:18:51.000000000 +0100
24+++ linux-g/drivers/cbus/tahvo-usb.c 2007-05-23 18:05:23.000000000 +0100 163+++ linux-g/drivers/cbus/tahvo-usb.c 2007-08-13 16:23:15.000000000 +0200
25@@ -135,8 +135,8 @@ static irqreturn_t omap_otg_irq(int irq, 164@@ -135,8 +135,8 @@
26 if ((!(OTG_CTRL_REG & OTG_DRIVER_SEL)) && 165 if ((!(OTG_CTRL_REG & OTG_DRIVER_SEL)) &&
27 tu->otg.host && tu->otg.state == OTG_STATE_A_HOST) { 166 tu->otg.host && tu->otg.state == OTG_STATE_A_HOST) {
28 /* role is host */ 167 /* role is host */
@@ -35,8 +174,8 @@ Index: linux-g/drivers/cbus/tahvo-usb.c
35 } else 174 } else
36Index: linux-g/drivers/i2c/chips/isp1301_omap.c 175Index: linux-g/drivers/i2c/chips/isp1301_omap.c
37=================================================================== 176===================================================================
38--- linux-g.orig/drivers/i2c/chips/isp1301_omap.c 2006-11-08 12:18:51.000000000 +0000 177--- linux-g.orig/drivers/i2c/chips/isp1301_omap.c 2006-11-08 13:18:51.000000000 +0100
39+++ linux-g/drivers/i2c/chips/isp1301_omap.c 2007-05-23 18:05:23.000000000 +0100 178+++ linux-g/drivers/i2c/chips/isp1301_omap.c 2007-08-13 16:23:15.000000000 +0200
40@@ -32,6 +32,7 @@ 179@@ -32,6 +32,7 @@
41 #include <linux/usb_gadget.h> 180 #include <linux/usb_gadget.h>
42 #include <linux/usb.h> 181 #include <linux/usb.h>
@@ -45,11 +184,44 @@ Index: linux-g/drivers/i2c/chips/isp1301_omap.c
45 #include <linux/i2c.h> 184 #include <linux/i2c.h>
46 #include <linux/workqueue.h> 185 #include <linux/workqueue.h>
47 186
187Index: linux-g/drivers/mtd/mtdchar.c
188===================================================================
189--- linux-g.orig/drivers/mtd/mtdchar.c 2006-11-08 13:18:55.000000000 +0100
190+++ linux-g/drivers/mtd/mtdchar.c 2007-08-13 16:23:15.000000000 +0200
191@@ -622,6 +622,12 @@
192 break;
193 }
194
195+ case MEMSETOOBSEL:
196+ {
197+ break;
198+ }
199+
200+
201 case MEMGETBADBLOCK:
202 {
203 loff_t offs;
204Index: linux-g/drivers/mtd/mtdpart.c
205===================================================================
206--- linux-g.orig/drivers/mtd/mtdpart.c 2006-11-08 13:18:55.000000000 +0100
207+++ linux-g/drivers/mtd/mtdpart.c 2007-08-13 16:23:15.000000000 +0200
208@@ -200,6 +200,11 @@
209 return -EINVAL;
210 instr->addr += part->offset;
211 ret = part->master->erase(part->master, instr);
212+ if (ret) {
213+ if (instr->fail_addr != 0xffffffff)
214+ instr->fail_addr -= part->offset;
215+ instr->addr -= part->offset;
216+ }
217 return ret;
218 }
219
48Index: linux-g/drivers/mtd/nand/omap-hw.c 220Index: linux-g/drivers/mtd/nand/omap-hw.c
49=================================================================== 221===================================================================
50--- linux-g.orig/drivers/mtd/nand/omap-hw.c 2006-11-08 12:18:55.000000000 +0000 222--- linux-g.orig/drivers/mtd/nand/omap-hw.c 2006-11-08 13:18:55.000000000 +0100
51+++ linux-g/drivers/mtd/nand/omap-hw.c 2007-05-23 18:05:23.000000000 +0100 223+++ linux-g/drivers/mtd/nand/omap-hw.c 2007-08-13 16:23:15.000000000 +0200
52@@ -386,11 +386,6 @@ static u_char omap_nand_read_byte(struct 224@@ -386,11 +386,6 @@
53 return nand_read_reg8(NND_ACCESS); 225 return nand_read_reg8(NND_ACCESS);
54 } 226 }
55 227
@@ -61,7 +233,7 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
61 static int omap_nand_dev_ready(struct mtd_info *mtd) 233 static int omap_nand_dev_ready(struct mtd_info *mtd)
62 { 234 {
63 u32 l; 235 u32 l;
64@@ -425,9 +420,9 @@ static void omap_nand_command(struct mtd 236@@ -425,9 +420,9 @@
65 if (command == NAND_CMD_SEQIN) { 237 if (command == NAND_CMD_SEQIN) {
66 int readcmd; 238 int readcmd;
67 239
@@ -73,7 +245,7 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
73 readcmd = NAND_CMD_READOOB; 245 readcmd = NAND_CMD_READOOB;
74 } else if (column < 256) { 246 } else if (column < 256) {
75 /* First 256 bytes --> READ0 */ 247 /* First 256 bytes --> READ0 */
76@@ -458,7 +453,7 @@ static void omap_nand_command_lp(struct 248@@ -458,7 +453,7 @@
77 struct nand_chip *this = mtd->priv; 249 struct nand_chip *this = mtd->priv;
78 250
79 if (command == NAND_CMD_READOOB) { 251 if (command == NAND_CMD_READOOB) {
@@ -82,30 +254,32 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
82 command = NAND_CMD_READ0; 254 command = NAND_CMD_READ0;
83 } 255 }
84 switch (command) { 256 switch (command) {
85@@ -495,7 +490,7 @@ static int omap_nand_calculate_ecc(struc 257@@ -495,7 +490,8 @@
86 int n; 258 int n;
87 struct nand_chip *this = mtd->priv; 259 struct nand_chip *this = mtd->priv;
88 260
89- if (this->eccmode == NAND_ECC_HW12_2048) 261- if (this->eccmode == NAND_ECC_HW12_2048)
90+ if (this->ecc.size == 2048) 262+ /* Ex NAND_ECC_HW12_2048 */
263+ if ((this->ecc.mode == NAND_ECC_HW) && (this->ecc.size == 2048))
91 n = 4; 264 n = 4;
92 else 265 else
93 n = 1; 266 n = 1;
94@@ -642,7 +637,7 @@ static int omap_nand_correct_data(struct 267@@ -642,7 +638,8 @@
95 int block_count = 0, i, r; 268 int block_count = 0, i, r;
96 269
97 this = mtd->priv; 270 this = mtd->priv;
98- if (this->eccmode == NAND_ECC_HW12_2048) 271- if (this->eccmode == NAND_ECC_HW12_2048)
99+ if (this->ecc.size == 2048) 272+ /* Ex NAND_ECC_HW12_2048 */
273+ if ((this->ecc.mode == NAND_ECC_HW) && (this->ecc.size == 2048))
100 block_count = 4; 274 block_count = 4;
101 else 275 else
102 block_count = 1; 276 block_count = 1;
103@@ -672,17 +667,17 @@ static int __init add_dynamic_parts(stru 277@@ -672,12 +669,12 @@
104 { 278 {
105 static const char *part_parsers[] = { "cmdlinepart", NULL }; 279 static const char *part_parsers[] = { "cmdlinepart", NULL };
106 struct mtd_partition *parts; 280 struct mtd_partition *parts;
107- const struct omap_flash_part_config *cfg; 281- const struct omap_flash_part_config *cfg;
108+ void *cfg; 282+ const struct omap_flash_part_str_config *cfg;
109 char *part_str = NULL; 283 char *part_str = NULL;
110 size_t part_str_len; 284 size_t part_str_len;
111 int c; 285 int c;
@@ -115,38 +289,40 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
115 if (cfg != NULL) { 289 if (cfg != NULL) {
116 part_str = kmalloc(part_str_len + 1, GFP_KERNEL); 290 part_str = kmalloc(part_str_len + 1, GFP_KERNEL);
117 if (part_str == NULL) 291 if (part_str == NULL)
118 return -ENOMEM; 292@@ -794,19 +791,20 @@
119- memcpy(part_str, cfg->part_table, part_str_len);
120+ memcpy(part_str, cfg, part_str_len);
121 part_str[part_str_len] = '\0';
122 mtdpart_setup(part_str);
123 }
124@@ -794,19 +789,19 @@ static int __init omap_nand_init(void)
125 293
126 /* Used from chip select and nand_command() */ 294 /* Used from chip select and nand_command() */
127 this->read_byte = omap_nand_read_byte; 295 this->read_byte = omap_nand_read_byte;
128- this->write_byte = omap_nand_write_byte; 296- this->write_byte = omap_nand_write_byte;
129 297
130 this->select_chip = omap_nand_select_chip; 298- this->select_chip = omap_nand_select_chip;
131 this->dev_ready = omap_nand_dev_ready; 299- this->dev_ready = omap_nand_dev_ready;
132 this->chip_delay = 0; 300- this->chip_delay = 0;
133- this->eccmode = NAND_ECC_HW3_512; 301- this->eccmode = NAND_ECC_HW3_512;
134+ this->ecc.size = 512; 302- this->cmdfunc = omap_nand_command;
135+ this->ecc.bytes = 3; 303- this->write_buf = omap_nand_write_buf;
136 this->cmdfunc = omap_nand_command; 304- this->read_buf = omap_nand_read_buf;
137 this->write_buf = omap_nand_write_buf; 305- this->verify_buf = omap_nand_verify_buf;
138 this->read_buf = omap_nand_read_buf;
139 this->verify_buf = omap_nand_verify_buf;
140- this->calculate_ecc = omap_nand_calculate_ecc; 306- this->calculate_ecc = omap_nand_calculate_ecc;
141- this->correct_data = omap_nand_correct_data; 307- this->correct_data = omap_nand_correct_data;
142- this->enable_hwecc = omap_nand_enable_hwecc; 308- this->enable_hwecc = omap_nand_enable_hwecc;
309+ this->select_chip = omap_nand_select_chip;
310+ this->dev_ready = omap_nand_dev_ready;
311+ this->chip_delay = 0;
312+ this->ecc.mode = NAND_ECC_HW;
313+ this->ecc.bytes = 3;
314+ this->ecc.size = 512;
315+ this->cmdfunc = omap_nand_command;
316+ this->write_buf = omap_nand_write_buf;
317+ this->read_buf = omap_nand_read_buf;
318+ this->verify_buf = omap_nand_verify_buf;
143+ this->ecc.calculate = omap_nand_calculate_ecc; 319+ this->ecc.calculate = omap_nand_calculate_ecc;
144+ this->ecc.correct = omap_nand_correct_data; 320+ this->ecc.correct = omap_nand_correct_data;
145+ this->ecc.hwctl = omap_nand_enable_hwecc; 321+ this->ecc.hwctl = omap_nand_enable_hwecc;
146 322
147 nand_write_reg(NND_SYSCFG, 0x1); /* Enable auto idle */ 323 nand_write_reg(NND_SYSCFG, 0x1); /* Enable auto idle */
148 nand_write_reg(NND_PSC_CLK, 10); 324 nand_write_reg(NND_PSC_CLK, 10);
149@@ -822,10 +817,8 @@ static int __init omap_nand_init(void) 325@@ -822,11 +820,10 @@
150 l = nand_read_reg(NND_CTRL); 326 l = nand_read_reg(NND_CTRL);
151 l |= 1 << 4; /* Set the A8 bit in CTRL reg */ 327 l |= 1 << 4; /* Set the A8 bit in CTRL reg */
152 nand_write_reg(NND_CTRL, l); 328 nand_write_reg(NND_CTRL, l);
@@ -154,16 +330,32 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
154- this->eccsteps = 1; 330- this->eccsteps = 1;
155- this->eccsize = 2048; 331- this->eccsize = 2048;
156- this->eccbytes = 12; 332- this->eccbytes = 12;
333- omap_mtd->eccsize = 2048;
334+ this->ecc.mode = NAND_ECC_HW;
335+ this->ecc.steps = 1;
157+ this->ecc.size = 2048; 336+ this->ecc.size = 2048;
158+ this->ecc.bytes = 12; 337+ this->ecc.bytes = 12;
159 omap_mtd->eccsize = 2048;
160 nand_write_reg(NND_ECC_SELECT, 6); 338 nand_write_reg(NND_ECC_SELECT, 6);
161 } 339 }
340
341Index: linux-g/drivers/serial/8250.c
342===================================================================
343--- linux-g.orig/drivers/serial/8250.c 2006-11-08 13:18:59.000000000 +0100
344+++ linux-g/drivers/serial/8250.c 2007-08-13 16:23:15.000000000 +0200
345@@ -44,6 +44,8 @@
346 #include <asm/io.h>
347 #include <asm/irq.h>
348
349+#include <asm/arch/serial.h>
350+
351 #include "8250.h"
352
353 /*
162Index: linux-g/drivers/video/omap/omapfb_main.c 354Index: linux-g/drivers/video/omap/omapfb_main.c
163=================================================================== 355===================================================================
164--- linux-g.orig/drivers/video/omap/omapfb_main.c 2007-05-23 18:05:21.000000000 +0100 356--- linux-g.orig/drivers/video/omap/omapfb_main.c 2007-08-13 13:54:01.000000000 +0200
165+++ linux-g/drivers/video/omap/omapfb_main.c 2007-05-23 22:27:39.000000000 +0100 357+++ linux-g/drivers/video/omap/omapfb_main.c 2007-08-13 16:23:15.000000000 +0200
166@@ -110,7 +110,7 @@ static struct lcd_ctrl *ctrls[] = { 358@@ -110,7 +110,7 @@
167 359
168 #ifdef CONFIG_FB_OMAP_LCDC_EXTERNAL 360 #ifdef CONFIG_FB_OMAP_LCDC_EXTERNAL
169 #ifdef CONFIG_ARCH_OMAP1 361 #ifdef CONFIG_ARCH_OMAP1
@@ -172,7 +364,7 @@ Index: linux-g/drivers/video/omap/omapfb_main.c
172 #else 364 #else
173 extern struct lcd_ctrl_extif omap2_ext_if; 365 extern struct lcd_ctrl_extif omap2_ext_if;
174 #endif 366 #endif
175@@ -1658,7 +1658,7 @@ static int omapfb_do_probe(struct platfo 367@@ -1658,7 +1658,7 @@
176 #ifdef CONFIG_ARCH_OMAP1 368 #ifdef CONFIG_ARCH_OMAP1
177 fbdev->int_ctrl = &omap1_int_ctrl; 369 fbdev->int_ctrl = &omap1_int_ctrl;
178 #ifdef CONFIG_FB_OMAP_LCDC_EXTERNAL 370 #ifdef CONFIG_FB_OMAP_LCDC_EXTERNAL
@@ -181,3 +373,43 @@ Index: linux-g/drivers/video/omap/omapfb_main.c
181 #endif 373 #endif
182 #else /* OMAP2 */ 374 #else /* OMAP2 */
183 fbdev->int_ctrl = &omap2_int_ctrl; 375 fbdev->int_ctrl = &omap2_int_ctrl;
376Index: linux-g/include/asm-arm/arch-omap/keypad.h
377===================================================================
378--- linux-g.orig/include/asm-arm/arch-omap/keypad.h 2006-11-08 13:19:11.000000000 +0100
379+++ linux-g/include/asm-arm/arch-omap/keypad.h 2007-08-13 16:23:15.000000000 +0200
380@@ -14,7 +14,10 @@
381 int rows;
382 int cols;
383 int *keymap;
384+ unsigned int keymapsize;
385 unsigned int rep:1;
386+ unsigned long delay;
387+ unsigned int dbounce:1;
388 /* specific to OMAP242x*/
389 unsigned int *row_gpios;
390 unsigned int *col_gpios;
391Index: linux-g/include/asm-arm/arch-omap/serial.h
392===================================================================
393--- linux-g.orig/include/asm-arm/arch-omap/serial.h 2007-08-13 13:54:01.000000000 +0200
394+++ linux-g/include/asm-arm/arch-omap/serial.h 2007-08-13 16:23:15.000000000 +0200
395@@ -26,4 +26,20 @@
396 #define OMAP1510_BASE_BAUD (12000000/16)
397 #define OMAP16XX_BASE_BAUD (48000000/16)
398
399+#define is_omap_port(p) ({int __ret = 0; \
400+ if (p == IO_ADDRESS(OMAP_UART1_BASE) || \
401+ p == IO_ADDRESS(OMAP_UART2_BASE) || \
402+ p == IO_ADDRESS(OMAP_UART3_BASE)) \
403+ __ret = 1; \
404+ __ret; \
405+ })
406+
407+#define is_omap_port(p) ({int __ret = 0; \
408+ if (p == IO_ADDRESS(OMAP_UART1_BASE) || \
409+ p == IO_ADDRESS(OMAP_UART2_BASE) || \
410+ p == IO_ADDRESS(OMAP_UART3_BASE)) \
411+ __ret = 1; \
412+ __ret; \
413+ })
414+
415 #endif