summaryrefslogtreecommitdiff
path: root/meta/packages/linux
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/linux
parente2fe0bd7eeac230b30bcd18e2a25526a50c89045 (diff)
downloadopenembedded-core-6bd2d7a02c62f8e462b694a01ea43384449b851b.tar.gz
openembedded-core-6bd2d7a02c62f8e462b694a01ea43384449b851b.tar.bz2
openembedded-core-6bd2d7a02c62f8e462b694a01ea43384449b851b.tar.xz
openembedded-core-6bd2d7a02c62f8e462b694a01ea43384449b851b.zip
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/linux')
-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 eab2dea21..a6cbb3328 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 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.18-omap1
-# Wed May 23 16:39:36 2007
+# Mon Aug 13 17:32:01 2007
#
CONFIG_ARM=y
CONFIG_MMU=y
@@ -308,9 +308,17 @@ CONFIG_TCP_CONG_BIC=y
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
-# CONFIG_IPV6 is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
+CONFIG_INET6_XFRM_MODE_TRANSPORT=y
+CONFIG_INET6_XFRM_MODE_TUNNEL=y
+# CONFIG_IPV6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
@@ -331,6 +339,11 @@ CONFIG_NETFILTER_NETLINK=y
# CONFIG_IP_NF_QUEUE is not set
#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP6_NF_QUEUE is not set
+
+#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
@@ -697,13 +710,16 @@ CONFIG_HW_CONSOLE=y
#
# Serial drivers
#
-# CONFIG_SERIAL_8250 is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
#
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
+# CONFIG_SERIAL_OMAP is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
@@ -906,7 +922,7 @@ CONFIG_FB_OMAP_LCDC_EXTERNAL=y
CONFIG_FB_OMAP_LCDC_HWA742=y
# CONFIG_FB_OMAP_LCDC_BLIZZARD is not set
CONFIG_FB_OMAP_MANUAL_UPDATE=y
-# CONFIG_FB_OMAP_LCD_MIPID is not set
+CONFIG_FB_OMAP_LCD_MIPID=y
# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
# CONFIG_FB_OMAP_DMA_TUNE is not set
@@ -988,16 +1004,12 @@ CONFIG_USB_BANDWIDTH=y
# CONFIG_USB_DYNAMIC_MINORS is not set
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_GADGET_MUSB_HDRC is not set
@@ -1188,7 +1200,6 @@ CONFIG_CBUS=y
CONFIG_CBUS_TAHVO=y
CONFIG_CBUS_TAHVO_USER=y
CONFIG_CBUS_TAHVO_USB=y
-# CONFIG_CBUS_TAHVO_USB_HOST_BY_DEFAULT is not set
CONFIG_CBUS_RETU=y
CONFIG_CBUS_RETU_USER=y
CONFIG_CBUS_RETU_POWERBUTTON=y
@@ -1216,7 +1227,8 @@ CONFIG_FS_MBCACHE=y
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
-# CONFIG_INOTIFY is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# 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 aa801fbb5..79d53545e 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 @@
---
- arch/arm/mach-omap1/mmu.c | 1 +
- drivers/cbus/tahvo-usb.c | 4 ++--
- drivers/i2c/chips/isp1301_omap.c | 1 +
- drivers/mtd/nand/omap-hw.c | 37 +++++++++++++++----------------------
- drivers/video/omap/omapfb_main.c | 4 ++--
- 5 files changed, 21 insertions(+), 26 deletions(-)
+ arch/arm/mach-omap1/board-nokia770.c | 60 +++++++++++++++++++++++++++++++----
+ arch/arm/mach-omap1/mmu.c | 1
+ drivers/cbus/tahvo-usb.c | 4 +-
+ drivers/i2c/chips/isp1301_omap.c | 1
+ drivers/mtd/mtdchar.c | 6 +++
+ drivers/mtd/mtdpart.c | 5 ++
+ drivers/mtd/nand/omap-hw.c | 55 +++++++++++++++-----------------
+ drivers/serial/8250.c | 2 +
+ drivers/video/omap/omapfb_main.c | 4 +-
+ include/asm-arm/arch-omap/keypad.h | 3 +
+ include/asm-arm/arch-omap/serial.h | 16 +++++++++
+ 11 files changed, 118 insertions(+), 39 deletions(-)
+Index: linux-g/arch/arm/mach-omap1/board-nokia770.c
+===================================================================
+--- linux-g.orig/arch/arm/mach-omap1/board-nokia770.c 2006-11-08 13:18:39.000000000 +0100
++++ linux-g/arch/arm/mach-omap1/board-nokia770.c 2007-08-13 16:23:15.000000000 +0200
+@@ -16,6 +16,8 @@
+
+ #include <linux/spi/spi.h>
+ #include <linux/spi/ads7846.h>
++#include <linux/workqueue.h>
++#include <linux/delay.h>
+
+ #include <asm/hardware.h>
+ #include <asm/mach-types.h>
+@@ -33,9 +35,12 @@
+ #include <asm/arch/gpio.h>
+ #include <asm/arch/omapfb.h>
+ #include <asm/arch/hwa742.h>
++#include <asm/arch/lcd_mipid.h>
+
+ #include "../plat-omap/dsp/dsp_common.h"
+
++#define ADS7846_PENDOWN_GPIO 15
++
+ static void __init omap_nokia770_init_irq(void)
+ {
+ /* On Nokia 770, the SleepX signal is masked with an
+@@ -75,9 +80,11 @@
+ };
+
+ static struct omap_kp_platform_data nokia770_kp_data = {
+- .rows = 8,
+- .cols = 8,
+- .keymap = nokia770_keymap
++ .rows = 8,
++ .cols = 8,
++ .keymap = nokia770_keymap,
++ .keymapsize = ARRAY_SIZE(nokia770_keymap),
++ .delay = 4,
+ };
+
+ static struct platform_device nokia770_kp_device = {
+@@ -94,6 +101,41 @@
+ &nokia770_kp_device,
+ };
+
++static void mipid_shutdown(struct mipid_platform_data *pdata)
++{
++ if (pdata->nreset_gpio != -1) {
++ printk(KERN_INFO "shutdown LCD\n");
++ omap_set_gpio_dataout(pdata->nreset_gpio, 0);
++ msleep(120);
++ }
++}
++
++static struct mipid_platform_data nokia770_mipid_platform_data = {
++ .shutdown = mipid_shutdown,
++};
++
++static void mipid_dev_init(void)
++{
++ const struct omap_lcd_config *conf;
++
++ conf = omap_get_config(OMAP_TAG_LCD, struct omap_lcd_config);
++ if (conf != NULL) {
++ nokia770_mipid_platform_data.nreset_gpio = conf->nreset_gpio;
++ nokia770_mipid_platform_data.data_lines = conf->data_lines;
++ }
++}
++
++static void ads7846_dev_init(void)
++{
++ if (omap_request_gpio(ADS7846_PENDOWN_GPIO) < 0)
++ printk(KERN_ERR "can't get ads7846 pen down GPIO\n");
++}
++
++static int ads7846_get_pendown_state(void)
++{
++ return !omap_get_gpio_datain(ADS7846_PENDOWN_GPIO);
++}
++
+ static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata = {
+ .x_max = 0x0fff,
+ .y_max = 0x0fff,
+@@ -101,14 +143,17 @@
+ .pressure_max = 255,
+ .debounce_max = 10,
+ .debounce_tol = 3,
++ .debounce_rep = 1,
++ .get_pendown_state = ads7846_get_pendown_state,
+ };
+
+ static struct spi_board_info nokia770_spi_board_info[] __initdata = {
+ [0] = {
+- .modalias = "lcd_lph8923",
++ .modalias = "lcd_mipid",
+ .bus_num = 2,
+ .chip_select = 3,
+ .max_speed_hz = 12000000,
++ .platform_data = &nokia770_mipid_platform_data,
+ },
+ [1] = {
+ .modalias = "ads7846",
+@@ -189,7 +234,7 @@
+ },
+ };
+
+-static struct omap_board_config_kernel nokia770_config[] = {
++static struct omap_board_config_kernel nokia770_config[] __initdata = {
+ { OMAP_TAG_USB, NULL },
+ { OMAP_TAG_MMC, &nokia770_mmc_config },
+ };
+@@ -235,7 +280,7 @@
+ printk("HP connected\n");
+ }
+
+-static void codec_delayed_power_down(void *arg)
++static void codec_delayed_power_down(struct work_struct *work)
+ {
+ down(&audio_pwr_sem);
+ if (audio_pwr_state == -1)
+@@ -326,9 +371,12 @@
+ ARRAY_SIZE(nokia770_spi_board_info));
+ omap_board_config = nokia770_config;
+ omap_board_config_size = ARRAY_SIZE(nokia770_config);
++ omap_gpio_init();
+ omap_serial_init();
+ omap_dsp_init();
+ hwa742_dev_init();
++ ads7846_dev_init();
++ mipid_dev_init();
+ }
+
+ static void __init omap_nokia770_map_io(void)
Index: linux-g/arch/arm/mach-omap1/mmu.c
===================================================================
---- linux-g.orig/arch/arm/mach-omap1/mmu.c 2007-05-23 18:05:21.000000000 +0100
-+++ linux-g/arch/arm/mach-omap1/mmu.c 2007-05-23 18:05:23.000000000 +0100
+--- linux-g.orig/arch/arm/mach-omap1/mmu.c 2007-08-13 13:54:01.000000000 +0200
++++ linux-g/arch/arm/mach-omap1/mmu.c 2007-08-13 16:23:15.000000000 +0200
@@ -29,6 +29,7 @@
#include <linux/kernel.h>
#include <linux/mm.h>
@@ -20,9 +159,9 @@ Index: linux-g/arch/arm/mach-omap1/mmu.c
Index: linux-g/drivers/cbus/tahvo-usb.c
===================================================================
---- linux-g.orig/drivers/cbus/tahvo-usb.c 2006-11-08 12:18:51.000000000 +0000
-+++ linux-g/drivers/cbus/tahvo-usb.c 2007-05-23 18:05:23.000000000 +0100
-@@ -135,8 +135,8 @@ static irqreturn_t omap_otg_irq(int irq,
+--- linux-g.orig/drivers/cbus/tahvo-usb.c 2006-11-08 13:18:51.000000000 +0100
++++ linux-g/drivers/cbus/tahvo-usb.c 2007-08-13 16:23:15.000000000 +0200
+@@ -135,8 +135,8 @@
if ((!(OTG_CTRL_REG & OTG_DRIVER_SEL)) &&
tu->otg.host && tu->otg.state == OTG_STATE_A_HOST) {
/* role is host */
@@ -35,8 +174,8 @@ Index: linux-g/drivers/cbus/tahvo-usb.c
} else
Index: linux-g/drivers/i2c/chips/isp1301_omap.c
===================================================================
---- linux-g.orig/drivers/i2c/chips/isp1301_omap.c 2006-11-08 12:18:51.000000000 +0000
-+++ linux-g/drivers/i2c/chips/isp1301_omap.c 2007-05-23 18:05:23.000000000 +0100
+--- linux-g.orig/drivers/i2c/chips/isp1301_omap.c 2006-11-08 13:18:51.000000000 +0100
++++ linux-g/drivers/i2c/chips/isp1301_omap.c 2007-08-13 16:23:15.000000000 +0200
@@ -32,6 +32,7 @@
#include <linux/usb_gadget.h>
#include <linux/usb.h>
@@ -45,11 +184,44 @@ Index: linux-g/drivers/i2c/chips/isp1301_omap.c
#include <linux/i2c.h>
#include <linux/workqueue.h>
+Index: linux-g/drivers/mtd/mtdchar.c
+===================================================================
+--- linux-g.orig/drivers/mtd/mtdchar.c 2006-11-08 13:18:55.000000000 +0100
++++ linux-g/drivers/mtd/mtdchar.c 2007-08-13 16:23:15.000000000 +0200
+@@ -622,6 +622,12 @@
+ break;
+ }
+
++ case MEMSETOOBSEL:
++ {
++ break;
++ }
++
++
+ case MEMGETBADBLOCK:
+ {
+ loff_t offs;
+Index: linux-g/drivers/mtd/mtdpart.c
+===================================================================
+--- linux-g.orig/drivers/mtd/mtdpart.c 2006-11-08 13:18:55.000000000 +0100
++++ linux-g/drivers/mtd/mtdpart.c 2007-08-13 16:23:15.000000000 +0200
+@@ -200,6 +200,11 @@
+ return -EINVAL;
+ instr->addr += part->offset;
+ ret = part->master->erase(part->master, instr);
++ if (ret) {
++ if (instr->fail_addr != 0xffffffff)
++ instr->fail_addr -= part->offset;
++ instr->addr -= part->offset;
++ }
+ return ret;
+ }
+
Index: linux-g/drivers/mtd/nand/omap-hw.c
===================================================================
---- linux-g.orig/drivers/mtd/nand/omap-hw.c 2006-11-08 12:18:55.000000000 +0000
-+++ linux-g/drivers/mtd/nand/omap-hw.c 2007-05-23 18:05:23.000000000 +0100
-@@ -386,11 +386,6 @@ static u_char omap_nand_read_byte(struct
+--- linux-g.orig/drivers/mtd/nand/omap-hw.c 2006-11-08 13:18:55.000000000 +0100
++++ linux-g/drivers/mtd/nand/omap-hw.c 2007-08-13 16:23:15.000000000 +0200
+@@ -386,11 +386,6 @@
return nand_read_reg8(NND_ACCESS);
}
@@ -61,7 +233,7 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
static int omap_nand_dev_ready(struct mtd_info *mtd)
{
u32 l;
-@@ -425,9 +420,9 @@ static void omap_nand_command(struct mtd
+@@ -425,9 +420,9 @@
if (command == NAND_CMD_SEQIN) {
int readcmd;
@@ -73,7 +245,7 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
readcmd = NAND_CMD_READOOB;
} else if (column < 256) {
/* First 256 bytes --> READ0 */
-@@ -458,7 +453,7 @@ static void omap_nand_command_lp(struct
+@@ -458,7 +453,7 @@
struct nand_chip *this = mtd->priv;
if (command == NAND_CMD_READOOB) {
@@ -82,30 +254,32 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
command = NAND_CMD_READ0;
}
switch (command) {
-@@ -495,7 +490,7 @@ static int omap_nand_calculate_ecc(struc
+@@ -495,7 +490,8 @@
int n;
struct nand_chip *this = mtd->priv;
- if (this->eccmode == NAND_ECC_HW12_2048)
-+ if (this->ecc.size == 2048)
++ /* Ex NAND_ECC_HW12_2048 */
++ if ((this->ecc.mode == NAND_ECC_HW) && (this->ecc.size == 2048))
n = 4;
else
n = 1;
-@@ -642,7 +637,7 @@ static int omap_nand_correct_data(struct
+@@ -642,7 +638,8 @@
int block_count = 0, i, r;
this = mtd->priv;
- if (this->eccmode == NAND_ECC_HW12_2048)
-+ if (this->ecc.size == 2048)
++ /* Ex NAND_ECC_HW12_2048 */
++ if ((this->ecc.mode == NAND_ECC_HW) && (this->ecc.size == 2048))
block_count = 4;
else
block_count = 1;
-@@ -672,17 +667,17 @@ static int __init add_dynamic_parts(stru
+@@ -672,12 +669,12 @@
{
static const char *part_parsers[] = { "cmdlinepart", NULL };
struct mtd_partition *parts;
- const struct omap_flash_part_config *cfg;
-+ void *cfg;
++ const struct omap_flash_part_str_config *cfg;
char *part_str = NULL;
size_t part_str_len;
int c;
@@ -115,38 +289,40 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
if (cfg != NULL) {
part_str = kmalloc(part_str_len + 1, GFP_KERNEL);
if (part_str == NULL)
- return -ENOMEM;
-- memcpy(part_str, cfg->part_table, part_str_len);
-+ memcpy(part_str, cfg, part_str_len);
- part_str[part_str_len] = '\0';
- mtdpart_setup(part_str);
- }
-@@ -794,19 +789,19 @@ static int __init omap_nand_init(void)
+@@ -794,19 +791,20 @@
/* Used from chip select and nand_command() */
this->read_byte = omap_nand_read_byte;
- this->write_byte = omap_nand_write_byte;
- this->select_chip = omap_nand_select_chip;
- this->dev_ready = omap_nand_dev_ready;
- this->chip_delay = 0;
+- this->select_chip = omap_nand_select_chip;
+- this->dev_ready = omap_nand_dev_ready;
+- this->chip_delay = 0;
- this->eccmode = NAND_ECC_HW3_512;
-+ this->ecc.size = 512;
-+ this->ecc.bytes = 3;
- this->cmdfunc = omap_nand_command;
- this->write_buf = omap_nand_write_buf;
- this->read_buf = omap_nand_read_buf;
- this->verify_buf = omap_nand_verify_buf;
+- this->cmdfunc = omap_nand_command;
+- this->write_buf = omap_nand_write_buf;
+- this->read_buf = omap_nand_read_buf;
+- this->verify_buf = omap_nand_verify_buf;
- this->calculate_ecc = omap_nand_calculate_ecc;
- this->correct_data = omap_nand_correct_data;
- this->enable_hwecc = omap_nand_enable_hwecc;
++ this->select_chip = omap_nand_select_chip;
++ this->dev_ready = omap_nand_dev_ready;
++ this->chip_delay = 0;
++ this->ecc.mode = NAND_ECC_HW;
++ this->ecc.bytes = 3;
++ this->ecc.size = 512;
++ this->cmdfunc = omap_nand_command;
++ this->write_buf = omap_nand_write_buf;
++ this->read_buf = omap_nand_read_buf;
++ this->verify_buf = omap_nand_verify_buf;
+ this->ecc.calculate = omap_nand_calculate_ecc;
-+ this->ecc.correct = omap_nand_correct_data;
-+ this->ecc.hwctl = omap_nand_enable_hwecc;
++ this->ecc.correct = omap_nand_correct_data;
++ this->ecc.hwctl = omap_nand_enable_hwecc;
nand_write_reg(NND_SYSCFG, 0x1); /* Enable auto idle */
nand_write_reg(NND_PSC_CLK, 10);
-@@ -822,10 +817,8 @@ static int __init omap_nand_init(void)
+@@ -822,11 +820,10 @@
l = nand_read_reg(NND_CTRL);
l |= 1 << 4; /* Set the A8 bit in CTRL reg */
nand_write_reg(NND_CTRL, l);
@@ -154,16 +330,32 @@ Index: linux-g/drivers/mtd/nand/omap-hw.c
- this->eccsteps = 1;
- this->eccsize = 2048;
- this->eccbytes = 12;
+- omap_mtd->eccsize = 2048;
++ this->ecc.mode = NAND_ECC_HW;
++ this->ecc.steps = 1;
+ this->ecc.size = 2048;
+ this->ecc.bytes = 12;
- omap_mtd->eccsize = 2048;
nand_write_reg(NND_ECC_SELECT, 6);
}
+
+Index: linux-g/drivers/serial/8250.c
+===================================================================
+--- linux-g.orig/drivers/serial/8250.c 2006-11-08 13:18:59.000000000 +0100
++++ linux-g/drivers/serial/8250.c 2007-08-13 16:23:15.000000000 +0200
+@@ -44,6 +44,8 @@
+ #include <asm/io.h>
+ #include <asm/irq.h>
+
++#include <asm/arch/serial.h>
++
+ #include "8250.h"
+
+ /*
Index: linux-g/drivers/video/omap/omapfb_main.c
===================================================================
---- linux-g.orig/drivers/video/omap/omapfb_main.c 2007-05-23 18:05:21.000000000 +0100
-+++ linux-g/drivers/video/omap/omapfb_main.c 2007-05-23 22:27:39.000000000 +0100
-@@ -110,7 +110,7 @@ static struct lcd_ctrl *ctrls[] = {
+--- linux-g.orig/drivers/video/omap/omapfb_main.c 2007-08-13 13:54:01.000000000 +0200
++++ linux-g/drivers/video/omap/omapfb_main.c 2007-08-13 16:23:15.000000000 +0200
+@@ -110,7 +110,7 @@
#ifdef CONFIG_FB_OMAP_LCDC_EXTERNAL
#ifdef CONFIG_ARCH_OMAP1
@@ -172,7 +364,7 @@ Index: linux-g/drivers/video/omap/omapfb_main.c
#else
extern struct lcd_ctrl_extif omap2_ext_if;
#endif
-@@ -1658,7 +1658,7 @@ static int omapfb_do_probe(struct platfo
+@@ -1658,7 +1658,7 @@
#ifdef CONFIG_ARCH_OMAP1
fbdev->int_ctrl = &omap1_int_ctrl;
#ifdef CONFIG_FB_OMAP_LCDC_EXTERNAL
@@ -181,3 +373,43 @@ Index: linux-g/drivers/video/omap/omapfb_main.c
#endif
#else /* OMAP2 */
fbdev->int_ctrl = &omap2_int_ctrl;
+Index: linux-g/include/asm-arm/arch-omap/keypad.h
+===================================================================
+--- linux-g.orig/include/asm-arm/arch-omap/keypad.h 2006-11-08 13:19:11.000000000 +0100
++++ linux-g/include/asm-arm/arch-omap/keypad.h 2007-08-13 16:23:15.000000000 +0200
+@@ -14,7 +14,10 @@
+ int rows;
+ int cols;
+ int *keymap;
++ unsigned int keymapsize;
+ unsigned int rep:1;
++ unsigned long delay;
++ unsigned int dbounce:1;
+ /* specific to OMAP242x*/
+ unsigned int *row_gpios;
+ unsigned int *col_gpios;
+Index: linux-g/include/asm-arm/arch-omap/serial.h
+===================================================================
+--- linux-g.orig/include/asm-arm/arch-omap/serial.h 2007-08-13 13:54:01.000000000 +0200
++++ linux-g/include/asm-arm/arch-omap/serial.h 2007-08-13 16:23:15.000000000 +0200
+@@ -26,4 +26,20 @@
+ #define OMAP1510_BASE_BAUD (12000000/16)
+ #define OMAP16XX_BASE_BAUD (48000000/16)
+
++#define is_omap_port(p) ({int __ret = 0; \
++ if (p == IO_ADDRESS(OMAP_UART1_BASE) || \
++ p == IO_ADDRESS(OMAP_UART2_BASE) || \
++ p == IO_ADDRESS(OMAP_UART3_BASE)) \
++ __ret = 1; \
++ __ret; \
++ })
++
++#define is_omap_port(p) ({int __ret = 0; \
++ if (p == IO_ADDRESS(OMAP_UART1_BASE) || \
++ p == IO_ADDRESS(OMAP_UART2_BASE) || \
++ p == IO_ADDRESS(OMAP_UART3_BASE)) \
++ __ret = 1; \
++ __ret; \
++ })
++
+ #endif