diff options
| -rw-r--r-- | meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770/defconfig | 36 | ||||
| -rw-r--r-- | meta/packages/linux/linux-nokia800-2.6.18-osso40/nokia770_nand_fix.patch | 328 |
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 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_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 | 311 | CONFIG_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 |
| 319 | CONFIG_INET6_XFRM_MODE_TRANSPORT=y | ||
| 320 | CONFIG_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 |
| 315 | CONFIG_NETFILTER=y | 323 | CONFIG_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 | 713 | CONFIG_SERIAL_8250=y |
| 714 | CONFIG_SERIAL_8250_CONSOLE=y | ||
| 715 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
| 716 | CONFIG_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 | # |
| 705 | CONFIG_SERIAL_OMAP=y | 722 | # CONFIG_SERIAL_OMAP is not set |
| 706 | CONFIG_SERIAL_OMAP_CONSOLE=y | ||
| 707 | CONFIG_SERIAL_CORE=y | 723 | CONFIG_SERIAL_CORE=y |
| 708 | CONFIG_SERIAL_CORE_CONSOLE=y | 724 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 709 | CONFIG_UNIX98_PTYS=y | 725 | CONFIG_UNIX98_PTYS=y |
| @@ -906,7 +922,7 @@ CONFIG_FB_OMAP_LCDC_EXTERNAL=y | |||
| 906 | CONFIG_FB_OMAP_LCDC_HWA742=y | 922 | CONFIG_FB_OMAP_LCDC_HWA742=y |
| 907 | # CONFIG_FB_OMAP_LCDC_BLIZZARD is not set | 923 | # CONFIG_FB_OMAP_LCDC_BLIZZARD is not set |
| 908 | CONFIG_FB_OMAP_MANUAL_UPDATE=y | 924 | CONFIG_FB_OMAP_MANUAL_UPDATE=y |
| 909 | # CONFIG_FB_OMAP_LCD_MIPID is not set | 925 | CONFIG_FB_OMAP_LCD_MIPID=y |
| 910 | # CONFIG_FB_OMAP_BOOTLOADER_INIT is not set | 926 | # CONFIG_FB_OMAP_BOOTLOADER_INIT is not set |
| 911 | CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2 | 927 | CONFIG_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 |
| 989 | CONFIG_USB_SUSPEND=y | 1005 | CONFIG_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 | ||
| 1000 | CONFIG_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 | |||
| 1188 | CONFIG_CBUS_TAHVO=y | 1200 | CONFIG_CBUS_TAHVO=y |
| 1189 | CONFIG_CBUS_TAHVO_USER=y | 1201 | CONFIG_CBUS_TAHVO_USER=y |
| 1190 | CONFIG_CBUS_TAHVO_USB=y | 1202 | CONFIG_CBUS_TAHVO_USB=y |
| 1191 | # CONFIG_CBUS_TAHVO_USB_HOST_BY_DEFAULT is not set | ||
| 1192 | CONFIG_CBUS_RETU=y | 1203 | CONFIG_CBUS_RETU=y |
| 1193 | CONFIG_CBUS_RETU_USER=y | 1204 | CONFIG_CBUS_RETU_USER=y |
| 1194 | CONFIG_CBUS_RETU_POWERBUTTON=y | 1205 | CONFIG_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 | 1230 | CONFIG_INOTIFY=y |
| 1231 | CONFIG_INOTIFY_USER=y | ||
| 1220 | # CONFIG_QUOTA is not set | 1232 | # CONFIG_QUOTA is not set |
| 1221 | CONFIG_DNOTIFY=y | 1233 | CONFIG_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 | ||
| 15 | Index: 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) | ||
| 9 | Index: linux-g/arch/arm/mach-omap1/mmu.c | 148 | Index: 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 | ||
| 21 | Index: linux-g/drivers/cbus/tahvo-usb.c | 160 | Index: 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 |
| 36 | Index: linux-g/drivers/i2c/chips/isp1301_omap.c | 175 | Index: 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 | ||
| 187 | Index: 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; | ||
| 204 | Index: 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 | |||
| 48 | Index: linux-g/drivers/mtd/nand/omap-hw.c | 220 | Index: 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 | |||
| 341 | Index: 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 | /* | ||
| 162 | Index: linux-g/drivers/video/omap/omapfb_main.c | 354 | Index: 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; |
| 376 | Index: 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; | ||
| 391 | Index: 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 | ||
