From 6bd2d7a02c62f8e462b694a01ea43384449b851b Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Mon, 13 Aug 2007 15:42:15 +0000 Subject: 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 --- .../nokia770/defconfig | 36 ++- .../nokia770_nand_fix.patch | 328 ++++++++++++++++++--- 2 files changed, 304 insertions(+), 60 deletions(-) (limited to 'meta/packages') 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 @@ -330,6 +338,11 @@ CONFIG_NETFILTER_NETLINK=y # CONFIG_IP_NF_CONNTRACK is not set # CONFIG_IP_NF_QUEUE is not set +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +# CONFIG_IP6_NF_QUEUE is not set + # # DCCP Configuration (EXPERIMENTAL) # @@ -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 + #include ++#include ++#include + + #include + #include +@@ -33,9 +35,12 @@ + #include + #include + #include ++#include + + #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 #include @@ -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 #include @@ -45,11 +184,44 @@ Index: linux-g/drivers/i2c/chips/isp1301_omap.c #include #include +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 + #include + ++#include ++ + #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 -- cgit v1.2.3