summaryrefslogtreecommitdiff
path: root/packages/linux
diff options
context:
space:
mode:
authorLeon Woestenberg <leon.woestenberg@gmail.com>2007-10-05 12:43:03 +0000
committerLeon Woestenberg <leon.woestenberg@gmail.com>2007-10-05 12:43:03 +0000
commitfb5a8ff3d88fca827e22ad48f136c7fe1c6cea10 (patch)
treef28b9b4a860576cf9909d567efc7baeb20dd2740 /packages/linux
parentf0f72d8aa5de6a41796117c6e781e150bbacbe47 (diff)
parentbab0c48ac5132ad63b4f3da27a1c39c20b5db86c (diff)
merge of 'aac60b186b977130a688c4d00bfde913fb6221eb'
and 'f42403739ba7106ebfe92b3af59bf9c81b54f06d'
Diffstat (limited to 'packages/linux')
-rw-r--r--packages/linux/compulab-pxa270-2.6.22/defconfig2
-rw-r--r--packages/linux/compulab-pxa270_2.6.22.bb4
-rw-r--r--packages/linux/ixp4xx-kernel.inc1
-rw-r--r--packages/linux/linux-2.6.21/gumstix-pxa270-mmc.patch33
-rw-r--r--packages/linux/linux-2.6.21/gumstix-verdex/defconfig5
-rw-r--r--packages/linux/linux-2.6.21/mmc-card-detect.patch6
-rw-r--r--packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch17
-rw-r--r--packages/linux/linux-2.6.21/pxafb-definition.patch42
-rw-r--r--packages/linux/linux-2.6.21/smc911x-fixup.patch392
-rw-r--r--packages/linux/linux-davinci/binutils-buildid-arm.patch12
-rw-r--r--packages/linux/linux-davinci/davinci-dvevm/defconfig295
-rw-r--r--packages/linux/linux-davinci_2.6.x+git-davinci.bb1
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/a1200/defconfig8
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/a780/defconfig6
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/e680/defconfig6
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch64
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch47
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch98
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch8
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch64
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch8
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/ezx-core.patch70
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch265
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/index.html8
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch9
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/series7
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/rokre2/defconfig6
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/rokre6/defconfig8
-rw-r--r--packages/linux/linux-ezx_2.6.21.bb12
-rw-r--r--packages/linux/linux-handhelds-2.6.inc34
-rw-r--r--packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta0113
-rw-r--r--packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta0213
-rw-r--r--packages/linux/linux-openmoko_2.6.22.5.bb2
-rw-r--r--packages/linux/linux-rp_2.6.22.bb3
-rw-r--r--packages/linux/linux.inc2
-rw-r--r--packages/linux/linux_2.6.21.bb2
36 files changed, 966 insertions, 607 deletions
diff --git a/packages/linux/compulab-pxa270-2.6.22/defconfig b/packages/linux/compulab-pxa270-2.6.22/defconfig
index a6966d2dad..63bc69533f 100644
--- a/packages/linux/compulab-pxa270-2.6.22/defconfig
+++ b/packages/linux/compulab-pxa270-2.6.22/defconfig
@@ -220,7 +220,7 @@ CONFIG_ALIGNMENT_TRAP=y
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=ttyS1,38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data)"
+CONFIG_CMDLINE="console=ttyS1,38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2"
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set
diff --git a/packages/linux/compulab-pxa270_2.6.22.bb b/packages/linux/compulab-pxa270_2.6.22.bb
index 963a8cf39f..86a7626d8a 100644
--- a/packages/linux/compulab-pxa270_2.6.22.bb
+++ b/packages/linux/compulab-pxa270_2.6.22.bb
@@ -3,7 +3,7 @@ require linux.inc
SECTION = "kernel"
DESCRIPTION = "Linux kernel for the Compulab PXA270 system"
LICENSE = "GPL"
-PR = "r0"
+PR = "r1"
SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://0001-cm-x270-base2.patch;patch=1 \
@@ -30,6 +30,8 @@ S = "${WORKDIR}/linux-${PV}"
COMPATIBLE_HOST = 'arm.*-linux'
COMPATIBLE_MACHINE = "compulab-pxa270"
+CMDLINE = "console=${CMX270_CONSOLE_SERIAL_PORT},38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2"
+
inherit kernel
inherit package
diff --git a/packages/linux/ixp4xx-kernel.inc b/packages/linux/ixp4xx-kernel.inc
index 92bc34c987..af5f78b918 100644
--- a/packages/linux/ixp4xx-kernel.inc
+++ b/packages/linux/ixp4xx-kernel.inc
@@ -213,6 +213,7 @@ do_configure_prepend() {
# Kernel module dependencies
+DEPENDS += "zd1211-firmware"
RDEPENDS_kernel-module-zd1211rw += "zd1211-firmware"
diff --git a/packages/linux/linux-2.6.21/gumstix-pxa270-mmc.patch b/packages/linux/linux-2.6.21/gumstix-pxa270-mmc.patch
new file mode 100644
index 0000000000..59d97809d1
--- /dev/null
+++ b/packages/linux/linux-2.6.21/gumstix-pxa270-mmc.patch
@@ -0,0 +1,33 @@
+Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
+===================================================================
+--- linux-2.6.21gum.orig/arch/arm/mach-pxa/gumstix.c
++++ linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
+@@ -33,8 +33,9 @@
+
+ static struct pxamci_platform_data gumstix_mci_platform_data;
+
+-static int gumstix_mci_init(struct device *dev, irqreturn_t (*gumstix_detect_int)(int, void *, struct pt_regs *), void *data)
++static int gumstix_mci_init(struct device *dev, irq_handler_t gumstix_detect_int, void *data)
+ {
++#ifndef CONFIG_ARCH_GUMSTIX_VERDEX
+ int err;
+
+ pxa_gpio_mode(GPIO6_MMCCLK_MD);
+@@ -55,6 +56,17 @@ static int gumstix_mci_init(struct devic
+ }
+
+ err = set_irq_type(GUMSTIX_IRQ_GPIO_nSD_DETECT, IRQT_BOTHEDGE);
++#else
++ // Setup GPIOs for MMC on the 120-pin connector
++ // There is no card detect on a uSD connector so no interrupt to register
++ // There is no WP detect GPIO line either
++ pxa_gpio_mode(GPIO92_MMCDAT0_MD);
++ pxa_gpio_mode(GPIO112_MMCCMD_MD);
++ pxa_gpio_mode(GPIO110_MMCDAT2_MD);
++ pxa_gpio_mode(GPIO111_MMCDAT3_MD);
++ pxa_gpio_mode(GPIO109_MMCDAT1_MD);
++ pxa_gpio_mode(GPIO32_MMCCLK_MD);
++#endif
+
+ return 0;
+ }
diff --git a/packages/linux/linux-2.6.21/gumstix-verdex/defconfig b/packages/linux/linux-2.6.21/gumstix-verdex/defconfig
index 9107cd0d7c..c6d5480089 100644
--- a/packages/linux/linux-2.6.21/gumstix-verdex/defconfig
+++ b/packages/linux/linux-2.6.21/gumstix-verdex/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.21
-# Thu Sep 13 14:49:02 2007
+# Wed Oct 3 16:35:16 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -828,7 +828,8 @@ CONFIG_MII=m
CONFIG_SMC91X=m
CONFIG_SMC91X_GUMSTIX=m
# CONFIG_DM9000 is not set
-# CONFIG_SMC911X is not set
+CONFIG_SMC911X=m
+CONFIG_SMC911X_GUMSTIX=m
#
# Ethernet (1000 Mbit)
diff --git a/packages/linux/linux-2.6.21/mmc-card-detect.patch b/packages/linux/linux-2.6.21/mmc-card-detect.patch
index 9a853b4df8..26dd970e3b 100644
--- a/packages/linux/linux-2.6.21/mmc-card-detect.patch
+++ b/packages/linux/linux-2.6.21/mmc-card-detect.patch
@@ -2,7 +2,7 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
===================================================================
--- linux-2.6.21gum.orig/arch/arm/mach-pxa/gumstix.c
+++ linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
-@@ -29,19 +29,51 @@
+@@ -29,19 +29,55 @@
#include "generic.h"
@@ -38,9 +38,13 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
+static int gumstix_mci_get_ro(struct device *dev)
+{
++#ifdef CONFIG_ARCH_GUMSTIX_VERDEX
++ return 0; // microSD is always writable on verdex
++#else
+ int ro;
+ ro = GPLR(GUMSTIX_GPIO_nSD_WP) & GPIO_bit(GUMSTIX_GPIO_nSD_WP);
+ return ro;
++#endif
+}
+
+static void gumstix_mci_exit(struct device *dev, void *data)
diff --git a/packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch b/packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch
index 3643b402e5..c9849d22f4 100644
--- a/packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch
+++ b/packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch
@@ -154,7 +154,7 @@ Index: linux-2.6.21gum/drivers/video/pxafb.c
case '-':
namelen = i;
if (!bpp_specified && !yres_specified) {
-@@ -1227,6 +1268,18 @@ static int __init pxafb_parse_options(st
+@@ -1227,12 +1268,29 @@ static int __init pxafb_parse_options(st
}
if (bpp_specified)
switch (bpp) {
@@ -173,6 +173,17 @@ Index: linux-2.6.21gum/drivers/video/pxafb.c
case 1:
case 2:
case 4:
+ case 8:
+ case 16:
+ inf->modes[0].bpp = bpp;
++ if(nonstd_specified) {
++ dev_err(dev, "Depth %d requires nonstd to *not* be specified\n",bpp);
++ } else {
++ inf->modes[0].nonstd = 0;
++ }
+ dev_info(dev, "overriding bit depth: %d\n", bpp);
+ break;
+ default:
Index: linux-2.6.21gum/include/asm-arm/arch-pxa/pxa-regs.h
===================================================================
--- linux-2.6.21gum.orig/include/asm-arm/arch-pxa/pxa-regs.h
@@ -217,7 +228,7 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
===================================================================
--- linux-2.6.21gum.orig/arch/arm/mach-pxa/gumstix.c
+++ linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
-@@ -100,7 +100,8 @@ static struct pxafb_mode_info gumstix_fb
+@@ -116,7 +116,8 @@ static struct pxafb_mode_info gumstix_fb
.pixclock = 110000,
.xres = 480,
.yres = 272,
@@ -227,7 +238,7 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
.hsync_len = 41,
.left_margin = 2,
.right_margin = 2,
-@@ -139,7 +140,8 @@ static struct pxafb_mode_info gumstix_fb
+@@ -144,7 +145,8 @@ static struct pxafb_mode_info gumstix_fb
.vsync_len = 10, // VLW from datasheet: 10 typ
.upper_margin = 2, // VBP - VLW from datasheet: 12 - 10 = 2
.lower_margin = 4, // VFP from datasheet: 4 typ
diff --git a/packages/linux/linux-2.6.21/pxafb-definition.patch b/packages/linux/linux-2.6.21/pxafb-definition.patch
index 2a782c6143..56369fd788 100644
--- a/packages/linux/linux-2.6.21/pxafb-definition.patch
+++ b/packages/linux/linux-2.6.21/pxafb-definition.patch
@@ -10,10 +10,26 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
#include <asm/arch/gumstix.h>
#include "generic.h"
-@@ -86,6 +87,95 @@ static struct platform_device gum_audio_
+@@ -86,6 +87,89 @@ static struct platform_device gum_audio_
.id = -1,
};
++
++#if defined(CONFIG_FB_PXA_SHARP_LQ043_PSP) || defined(CONFIG_FB_PXA_SAMSUNG_LTE430WQ_F0C)
++static void gumstix_lcd_backlight(int on_or_off)
++{
++ if(on_or_off)
++ {
++ pxa_gpio_mode(17 | GPIO_IN);
++ } else {
++ GPCR(17) = GPIO_bit(17);
++ pxa_gpio_mode(17 | GPIO_OUT);
++ GPCR(17) = GPIO_bit(17);
++ }
++}
++#endif
++
++
+#ifdef CONFIG_FB_PXA_ALPS_CDOLLAR
+static struct pxafb_mode_info gumstix_fb_mode = {
+ .pixclock = 300000,
@@ -50,17 +66,6 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
+ .sync = 0, // Hsync and Vsync both active low
+};
+
-+static void gumstix_lcd_backlight(int on_or_off)
-+{
-+ pxa_gpio_mode(17 | GPIO_OUT);
-+ if(on_or_off)
-+ {
-+ GPSR(17) = GPIO_bit(17);
-+ } else {
-+ GPCR(17) = GPIO_bit(17);
-+ }
-+}
-+
+static struct pxafb_mach_info gumstix_fb_info = {
+ .modes = &gumstix_fb_mode,
+ .num_modes = 1,
@@ -83,17 +88,6 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
+ .sync = 0, // Hsync and Vsync both active low
+};
+
-+static void gumstix_lcd_backlight(int on_or_off)
-+{
-+ pxa_gpio_mode(17 | GPIO_OUT);
-+ if(on_or_off)
-+ {
-+ GPSR(17) = GPIO_bit(17);
-+ } else {
-+ GPCR(17) = GPIO_bit(17);
-+ }
-+}
-+
+static struct pxafb_mach_info gumstix_fb_info = {
+ .modes = &gumstix_fb_mode,
+ .num_modes = 1,
@@ -106,7 +100,7 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c
static struct platform_device *devices[] __initdata = {
&gum_audio_device,
};
-@@ -94,6 +184,9 @@ static void __init gumstix_init(void)
+@@ -94,6 +178,9 @@ static void __init gumstix_init(void)
{
pxa_set_mci_info(&gumstix_mci_platform_data);
pxa_set_udc_info(&gumstix_udc_info);
diff --git a/packages/linux/linux-2.6.21/smc911x-fixup.patch b/packages/linux/linux-2.6.21/smc911x-fixup.patch
new file mode 100644
index 0000000000..c0b7574d3a
--- /dev/null
+++ b/packages/linux/linux-2.6.21/smc911x-fixup.patch
@@ -0,0 +1,392 @@
+Index: linux-2.6.21gum/drivers/net/smc911x.c
+===================================================================
+--- linux-2.6.21gum.orig/drivers/net/smc911x.c
++++ linux-2.6.21gum/drivers/net/smc911x.c
+@@ -76,6 +76,7 @@ static const char version[] =
+ #include <linux/etherdevice.h>
+ #include <linux/skbuff.h>
+
++#include <linux/irq.h>
+ #include <asm/io.h>
+ #include <asm/irq.h>
+
+@@ -303,14 +304,14 @@ static void smc911x_reset(struct net_dev
+ SMC_SET_AFC_CFG(lp->afc_cfg);
+
+
+- /* Set to LED outputs */
+- SMC_SET_GPIO_CFG(0x70070000);
++ /* Set to LED outputs and configure EEPROM pins as GP outputs */
++ SMC_SET_GPIO_CFG(GPIO_CFG_LED1_EN_ | GPIO_CFG_LED2_EN_ | 1 << 20);
+
+ /*
+- * Deassert IRQ for 1*10us for edge type interrupts
++ * Deassert IRQ for 22*10us for edge type interrupts
+ * and drive IRQ pin push-pull
+ */
+- SMC_SET_IRQ_CFG( (1 << 24) | INT_CFG_IRQ_EN_ | INT_CFG_IRQ_TYPE_ );
++ SMC_SET_IRQ_CFG( (22 << 24) | INT_CFG_IRQ_EN_ | INT_CFG_IRQ_TYPE_ );
+
+ /* clear anything saved */
+ if (lp->pending_tx_skb != NULL) {
+@@ -413,7 +414,7 @@ static inline void smc911x_drop_pkt(stru
+ if (fifo_count <= 4) {
+ /* Manually dump the packet data */
+ while (fifo_count--)
+- SMC_GET_RX_FIFO();
++ (void)SMC_GET_RX_FIFO();
+ } else {
+ /* Fast forward through the bad packet */
+ SMC_SET_RX_DP_CTRL(RX_DP_CTRL_FFWD_BUSY_);
+@@ -499,7 +500,7 @@ static inline void smc911x_rcv(struct n
+ SMC_SET_RX_CFG(RX_CFG_RX_END_ALGN4_ | ((2<<8) & RX_CFG_RXDOFF_));
+ SMC_PULL_DATA(data, pkt_len+2+3);
+
+- DBG(SMC_DEBUG_PKTS, "%s: Received packet\n", dev->name,);
++ DBG(SMC_DEBUG_PKTS, "%s: Received packet\n", dev->name);
+ PRINT_PKT(data, ((pkt_len - 4) <= 64) ? pkt_len - 4 : 64);
+ dev->last_rx = jiffies;
+ skb->dev = dev;
+@@ -900,6 +901,7 @@ static void smc911x_phy_powerdown(struct
+ unsigned long ioaddr = dev->base_addr;
+ unsigned int bmcr;
+
++ DBG(SMC_DEBUG_FUNC, "%s: --> %s\n", dev->name, __FUNCTION__);
+ /* Enter Link Disable state */
+ SMC_GET_PHY_BMCR(phy, bmcr);
+ bmcr |= BMCR_PDOWN;
+@@ -925,6 +927,7 @@ static void smc911x_phy_check_media(stru
+
+ if (mii_check_media(&lp->mii, netif_msg_link(lp), init)) {
+ /* duplex state has changed */
++ DBG(SMC_DEBUG_MISC, "%s: duplex state has changed\n", dev->name);
+ SMC_GET_PHY_BMCR(phyaddr, bmcr);
+ SMC_GET_MAC_CR(cr);
+ if (lp->mii.full_duplex) {
+@@ -960,6 +963,7 @@ static void smc911x_phy_configure(struct
+ int my_phy_caps; /* My PHY capabilities */
+ int my_ad_caps; /* My Advertised capabilities */
+ int status;
++ int bmcr;
+ unsigned long flags;
+
+ DBG(SMC_DEBUG_FUNC, "%s: --> %s()\n", dev->name, __FUNCTION__);
+@@ -1033,9 +1037,12 @@ static void smc911x_phy_configure(struct
+
+ DBG(SMC_DEBUG_MISC, "%s: phy caps=0x%04x\n", dev->name, my_phy_caps);
+ DBG(SMC_DEBUG_MISC, "%s: phy advertised caps=0x%04x\n", dev->name, my_ad_caps);
++ DBG(SMC_DEBUG_MISC, "%s: phy advertised readback caps=0x%04x\n", dev->name, status);
+
+ /* Restart auto-negotiation process in order to advertise my caps */
+- SMC_SET_PHY_BMCR(phyaddr, BMCR_ANENABLE | BMCR_ANRESTART);
++ SMC_GET_PHY_BMCR(phyaddr, bmcr);
++ bmcr |= BMCR_ANENABLE | BMCR_ANRESTART;
++ SMC_SET_PHY_BMCR(phyaddr, bmcr);
+
+ smc911x_phy_check_media(dev, 1);
+
+@@ -1888,6 +1895,39 @@ static int __init smc911x_findirq(unsign
+ return probe_irq_off(cookie);
+ }
+
++static inline unsigned int is_gumstix_oui(u8 *addr)
++{
++ return (addr[0] == 0x00 && addr[1] == 0x15 && addr[2] == 0xC9);
++}
++
++/**
++ * gen_serial_ether_addr - Generate software assigned Ethernet address
++ * based on the system_serial number
++ * @addr: Pointer to a six-byte array containing the Ethernet address
++ *
++ * Generate an Ethernet address (MAC) that is not multicast
++ * and has the local assigned bit set, keyed on the system_serial
++ */
++static inline void gen_serial_ether_addr(u8 *addr)
++{
++ static u8 ether_serial_digit = 0;
++ addr [0] = system_serial_high >> 8;
++ addr [1] = system_serial_high;
++ addr [2] = system_serial_low >> 24;
++ addr [3] = system_serial_low >> 16;
++ addr [4] = system_serial_low >> 8;
++ addr [5] = (system_serial_low & 0xc0) | /* top bits are from system serial */
++ (1 << 4) | /* 2 bits identify interface type 1=ether, 2=usb, 3&4 undef */
++ ((ether_serial_digit++) & 0x0f); /* 15 possible interfaces of each type */
++
++ if(!is_gumstix_oui(addr))
++ {
++ addr [0] &= 0xfe; /* clear multicast bit */
++ addr [0] |= 0x02; /* set local assignment bit (IEEE802) */
++ }
++}
++
++
+ /*
+ * Function: smc911x_probe(unsigned long ioaddr)
+ *
+@@ -2116,15 +2156,13 @@ static int __init smc911x_probe(struct n
+ #endif
+ printk("\n");
+ if (!is_valid_ether_addr(dev->dev_addr)) {
+- printk("%s: Invalid ethernet MAC address. Please "
+- "set using ifconfig\n", dev->name);
+- } else {
+- /* Print the Ethernet address */
+- printk("%s: Ethernet addr: ", dev->name);
+- for (i = 0; i < 5; i++)
+- printk("%2.2x:", dev->dev_addr[i]);
+- printk("%2.2x\n", dev->dev_addr[5]);
++ gen_serial_ether_addr(dev->dev_addr);
+ }
++ /* Print the Ethernet address */
++ printk("%s: Ethernet addr: ", dev->name);
++ for (i = 0; i < 5; i++)
++ printk("%2.2x:", dev->dev_addr[i]);
++ printk("%2.2x\n", dev->dev_addr[5]);
+
+ if (lp->phy_type == 0) {
+ PRINTK("%s: No PHY found\n", dev->name);
+@@ -2300,8 +2338,15 @@ static struct platform_driver smc911x_dr
+ },
+ };
+
++#ifdef CONFIG_ARCH_GUMSTIX
++extern void gumstix_smc911x_load(void);
++#endif
++
+ static int __init smc911x_init(void)
+ {
++#ifdef CONFIG_ARCH_GUMSTIX
++ gumstix_smc911x_load();
++#endif
+ return platform_driver_register(&smc911x_driver);
+ }
+
+Index: linux-2.6.21gum/drivers/net/gumstix-smc911x.c
+===================================================================
+--- /dev/null
++++ linux-2.6.21gum/drivers/net/gumstix-smc911x.c
+@@ -0,0 +1,148 @@
++/*
++ * Gumstix SMC911x chip intialization driver
++ *
++ * Author: Craig Hughes
++ * Created: December 9, 2004
++ * Copyright: (C) 2004 Craig Hughes
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/ioport.h>
++#include <linux/device.h>
++#include <linux/platform_device.h>
++#include <linux/delay.h>
++
++#include <asm/hardware.h>
++#include <asm/arch/pxa-regs.h>
++#include <asm/delay.h>
++
++#include <asm/arch/gumstix.h>
++
++#define SMC_DEBUG 9
++#include <asm/io.h>
++#include "smc911x.h"
++
++static struct resource gumstix_smc911x0_resources[] = {
++ [0] = {
++ .name = "smc911x-regs",
++ .start = PXA_CS1_PHYS,
++ .end = PXA_CS1_PHYS + 0x000fffff,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = GUMSTIX_ETH0_IRQ,
++ .end = GUMSTIX_ETH0_IRQ,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static struct resource gumstix_smc911x1_resources[] = {
++ [0] = {
++ .name = "smc911x-regs",
++ .start = PXA_CS2_PHYS,
++ .end = PXA_CS2_PHYS + 0x000fffff,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = GUMSTIX_ETH1_IRQ,
++ .end = GUMSTIX_ETH1_IRQ,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static struct platform_device gumstix_smc911x0_device = {
++ .name = "smc911x",
++ .id = 0,
++ .num_resources = ARRAY_SIZE(gumstix_smc911x0_resources),
++ .resource = gumstix_smc911x0_resources,
++};
++
++static struct platform_device gumstix_smc911x1_device = {
++ .name = "smc911x",
++ .id = 1,
++ .num_resources = ARRAY_SIZE(gumstix_smc911x1_resources),
++ .resource = gumstix_smc911x1_resources,
++};
++
++static struct platform_device *smc911x_devices[] = {
++ &gumstix_smc911x0_device,
++ &gumstix_smc911x1_device,
++};
++
++/* First we're going to test if there's a 2nd SMC911x, and if not, then we'll free up those resources and the GPIO lines
++ * that it would otherwise use. We have no choice but to probe by doing:
++ * Set nCS2 to CS2 mode
++ * Set the reset line to GPIO out mode, and pull it high, then drop it low (to trigger reset)
++ * Read from the memory space to check for the sentinel sequence identifying a likely SMC911x device
++ */
++int __init gumstix_smc911x_init(void)
++{
++ unsigned int val, num_devices=ARRAY_SIZE(smc911x_devices);
++ void *ioaddr;
++
++ /* Set up nPWE */
++ pxa_gpio_mode(GPIO49_nPWE_MD);
++
++ pxa_gpio_mode(GPIO78_nCS_2_MD);
++ // If either if statement fails, then we'll drop out and turn_off_eth1,
++ // if both succeed, then we'll skip that and just proceed with 2 cards
++ if(request_mem_region(gumstix_smc911x1_resources[1].start, SMC911X_IO_EXTENT, "smc911x probe"))
++ {
++ ioaddr = ioremap(gumstix_smc911x1_resources[1].start, SMC911X_IO_EXTENT);
++ val = SMC_GET_PN();
++ iounmap(ioaddr);
++ release_mem_region(gumstix_smc911x1_resources[1].start, SMC911X_IO_EXTENT);
++ if (CHIP_9115 == val ||
++ CHIP_9116 == val ||
++ CHIP_9117 == val ||
++ CHIP_9118 == val ) {
++ goto proceed;
++ }
++ }
++
++turn_off_eth1:
++ // This is apparently not an SMC911x
++ // So, let's decrement the number of devices to request, and reset the GPIO lines to GPIO IN mode
++ num_devices--;
++ smc911x_devices[1] = NULL;
++ pxa_gpio_mode(78 | GPIO_IN);
++
++proceed:
++ pxa_gpio_mode(GPIO15_nCS_1_MD);
++
++ if(smc911x_devices[1]) pxa_gpio_mode(GPIO_GUMSTIX_ETH1_RST_MD);
++ pxa_gpio_mode(GPIO_GUMSTIX_ETH0_RST_MD);
++
++ if(smc911x_devices[1]) GPCR(GPIO_GUMSTIX_ETH1_RST) = GPIO_bit(GPIO_GUMSTIX_ETH1_RST);
++ GPCR(GPIO_GUMSTIX_ETH0_RST) = GPIO_bit(GPIO_GUMSTIX_ETH0_RST);
++ msleep(500); // Hold RESET for at least 200µ
++
++ if(smc911x_devices[1]) GPSR(GPIO_GUMSTIX_ETH1_RST) = GPIO_bit(GPIO_GUMSTIX_ETH1_RST);
++ GPSR(GPIO_GUMSTIX_ETH0_RST) = GPIO_bit(GPIO_GUMSTIX_ETH0_RST);
++ msleep(50);
++
++ return platform_add_devices(smc911x_devices, num_devices);
++}
++
++void __exit gumstix_smc911x_exit(void)
++{
++ if(smc911x_devices[1] != NULL) platform_device_unregister(&gumstix_smc911x1_device);
++ platform_device_unregister(&gumstix_smc911x0_device);
++}
++
++void gumstix_smc911x_load(void) {}
++EXPORT_SYMBOL(gumstix_smc911x_load);
++
++module_init(gumstix_smc911x_init);
++module_exit(gumstix_smc911x_exit);
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Craig Hughes <craig@gumstix.com>");
++MODULE_DESCRIPTION("Gumstix board SMC911x chip initialization driver");
++MODULE_VERSION("1:0.1");
+Index: linux-2.6.21gum/drivers/net/Kconfig
+===================================================================
+--- linux-2.6.21gum.orig/drivers/net/Kconfig
++++ linux-2.6.21gum/drivers/net/Kconfig
+@@ -897,6 +897,13 @@ config SMC911X
+ called smc911x. If you want to compile it as a module, say M
+ here and read <file:Documentation/modules.txt>
+
++config SMC911X_GUMSTIX
++ tristate
++ default m if SMC911X=m
++ default y if SMC911X=y
++ depends on SMC911X && ARCH_GUMSTIX
++
++
+ config NET_VENDOR_RACAL
+ bool "Racal-Interlan (Micom) NI cards"
+ depends on NET_ETHERNET && ISA
+Index: linux-2.6.21gum/drivers/net/Makefile
+===================================================================
+--- linux-2.6.21gum.orig/drivers/net/Makefile
++++ linux-2.6.21gum/drivers/net/Makefile
+@@ -201,6 +201,7 @@ obj-$(CONFIG_PASEMI_MAC) += pasemi_mac.o
+ obj-$(CONFIG_MACB) += macb.o
+
+ obj-$(CONFIG_SMC91X_GUMSTIX) += gumstix-smc91x.o
++obj-$(CONFIG_SMC911X_GUMSTIX) += gumstix-smc911x.o
+ obj-$(CONFIG_ARM) += arm/
+ obj-$(CONFIG_DEV_APPLETALK) += appletalk/
+ obj-$(CONFIG_TR) += tokenring/
+Index: linux-2.6.21gum/include/asm-arm/arch-pxa/gumstix.h
+===================================================================
+--- linux-2.6.21gum.orig/include/asm-arm/arch-pxa/gumstix.h
++++ linux-2.6.21gum/include/asm-arm/arch-pxa/gumstix.h
+@@ -52,7 +52,7 @@
+ #define GPIO_GUMSTIX_ETH0_RST 80
+ #define GPIO_GUMSTIX_ETH0 36
+ #else
+-#define GPIO_GUMSTIX_ETH0_RST 32
++#define GPIO_GUMSTIX_ETH0_RST 107
+ #define GPIO_GUMSTIX_ETH0 99
+ #endif
+ #define GPIO_GUMSTIX_ETH1_RST 52
+Index: linux-2.6.21gum/drivers/net/smc911x.h
+===================================================================
+--- linux-2.6.21gum.orig/drivers/net/smc911x.h
++++ linux-2.6.21gum/drivers/net/smc911x.h
+@@ -33,7 +33,9 @@
+ * Use the DMA feature on PXA chips
+ */
+ #ifdef CONFIG_ARCH_PXA
++#ifndef CONFIG_SMC911X_GUMSTIX
+ #define SMC_USE_PXA_DMA 1
++#endif
+ #define SMC_USE_16BIT 0
+ #define SMC_USE_32BIT 1
+ #endif
+@@ -46,13 +48,13 @@
+ #if SMC_USE_16BIT
+ #define SMC_inb(a, r) readb((a) + (r))
+ #define SMC_inw(a, r) readw((a) + (r))
+-#define SMC_inl(a, r) ((SMC_inw(a, r) & 0xFFFF)+(SMC_inw(a+2, r)<<16))
++#define SMC_inl(a, r) ((SMC_inw(a, r) & 0xFFFF)+(SMC_inw((a)+2, r)<<16))
+ #define SMC_outb(v, a, r) writeb(v, (a) + (r))
+ #define SMC_outw(v, a, r) writew(v, (a) + (r))
+ #define SMC_outl(v, a, r) \
+ do{ \
+- writel(v & 0xFFFF, (a) + (r)); \
+- writel(v >> 16, (a) + (r) + 2); \
++ writel((v) & 0xFFFF, (a) + (r)); \
++ writel((v) >> 16, (a) + (r) + 2); \
+ } while (0)
+ #define SMC_insl(a, r, p, l) readsw((short*)((a) + (r)), p, l*2)
+ #define SMC_outsl(a, r, p, l) writesw((short*)((a) + (r)), p, l*2)
diff --git a/packages/linux/linux-davinci/binutils-buildid-arm.patch b/packages/linux/linux-davinci/binutils-buildid-arm.patch
new file mode 100644
index 0000000000..edd224f4dd
--- /dev/null
+++ b/packages/linux/linux-davinci/binutils-buildid-arm.patch
@@ -0,0 +1,12 @@
+diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
+index 5ff5406..538fcb5 100644
+--- a/arch/arm/kernel/vmlinux.lds.S
++++ b/arch/arm/kernel/vmlinux.lds.S
+@@ -94,6 +94,7 @@ SECTIONS
+ TEXT_TEXT
+ SCHED_TEXT
+ LOCK_TEXT
++ *(.note.*)
+ #ifdef CONFIG_MMU
+ *(.fixup)
+ #endif
diff --git a/packages/linux/linux-davinci/davinci-dvevm/defconfig b/packages/linux/linux-davinci/davinci-dvevm/defconfig
index 02df8e79d9..e64431a1b6 100644
--- a/packages/linux/linux-davinci/davinci-dvevm/defconfig
+++ b/packages/linux/linux-davinci/davinci-dvevm/defconfig
@@ -1,13 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-omap1
-# Sun Aug 12 17:15:12 2007
+# Linux kernel version: 2.6.23-rc2-davinci1
+# Fri Aug 17 20:43:45 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
-# CONFIG_GENERIC_TIME is not set
-# CONFIG_GENERIC_CLOCKEVENTS is not set
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
@@ -26,26 +26,20 @@ CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
-# Code maturity level options
+# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
-CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
-# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
-# CONFIG_UTS_NS is not set
+# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
@@ -67,34 +61,30 @@ CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
-
-#
-# Loadable module support
-#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
-
-#
-# Block layer
-#
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
#
# IO Schedulers
@@ -126,14 +116,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
@@ -141,8 +133,17 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_OMAP is not set
CONFIG_ARCH_DAVINCI=y
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
#
# TI DaVinci Implementations
@@ -172,6 +173,7 @@ CONFIG_CPU_32=y
CONFIG_CPU_ARM926T=y
CONFIG_CPU_32v5=y
CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_PABRT_NOIFAR=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
@@ -191,6 +193,7 @@ CONFIG_ARM_THUMB=y
#
# Bus support
#
+# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
#
@@ -202,11 +205,11 @@ CONFIG_ARM_THUMB=y
# Kernel Features
#
# CONFIG_TICK_ONESHOT is not set
-CONFIG_PREEMPT=y
-# CONFIG_NO_IDLE_HZ is not set
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+# CONFIG_PREEMPT is not set
CONFIG_HZ=100
-CONFIG_AEABI=y
-CONFIG_OABI_COMPAT=y
+# CONFIG_AEABI is not set
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
@@ -218,8 +221,9 @@ CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
CONFIG_LEDS=y
-# CONFIG_LEDS_TIMER is not set
# CONFIG_LEDS_CPU is not set
CONFIG_ALIGNMENT_TRAP=y
@@ -239,8 +243,7 @@ CONFIG_CMDLINE=""
#
# At least one emulation must be selected
#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_NWFPE is not set
# CONFIG_FPE_FASTFPE is not set
# CONFIG_VFP is not set
@@ -250,6 +253,7 @@ CONFIG_FPE_NWFPE=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
#
# Power management options
@@ -298,10 +302,6 @@ CONFIG_INET_TCP_DIAG=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-
-#
-# IP: Virtual Server Configuration
-#
# CONFIG_IP_VS is not set
CONFIG_IPV6=m
# CONFIG_IPV6_PRIVACY is not set
@@ -344,20 +344,8 @@ CONFIG_NETFILTER=y
#
# CONFIG_IP6_NF_QUEUE is not set
# CONFIG_IP6_NF_IPTABLES is not set
-
-#
-# DCCP Configuration (EXPERIMENTAL)
-#
# CONFIG_IP_DCCP is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
# CONFIG_IP_SCTP is not set
-
-#
-# TIPC Configuration (EXPERIMENTAL)
-#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -393,6 +381,7 @@ CONFIG_NETFILTER=y
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
#
# Device Drivers
@@ -405,10 +394,6 @@ CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set
-
-#
-# Connector - unified userspace <-> kernelspace linker
-#
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
@@ -494,20 +479,8 @@ CONFIG_MTD_NAND_IDS=y
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
-
-#
-# Parallel port support
-#
# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-# CONFIG_PNPACPI is not set
-
-#
-# Block devices
-#
+CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
@@ -519,10 +492,6 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=4
CONFIG_BLK_DEV_IDE=y
@@ -584,6 +553,7 @@ CONFIG_BLK_DEV_IDEDMA=y
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y
@@ -613,74 +583,28 @@ CONFIG_SCSI_WAIT_SCAN=m
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
-
-#
-# SCSI low-level drivers
-#
+CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_ESP_CORE is not set
-
-#
-# Serial ATA (prod) and Parallel ATA (experimental) drivers
-#
# CONFIG_ATA is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# I2O device support
-#
-
-#
-# Network device support
-#
CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
-
-#
-# PHY device support
-#
# CONFIG_PHYLIB is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
CONFIG_NET_ETHERNET=y
# CONFIG_MII is not set
-CONFIG_TI_DAVINCI_EMAC=y
+# CONFIG_AX88796 is not set
# CONFIG_SMC91X is not set
+CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_DM9000 is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-
-#
-# Ethernet (10000 Mbit)
-#
-CONFIG_MLX4_DEBUG=y
-
-#
-# Token Ring devices
-#
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_10000=y
#
# Wireless LAN
@@ -697,10 +621,6 @@ CONFIG_MLX4_DEBUG=y
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET_MII is not set
# CONFIG_USB_USBNET is not set
-
-#
-# Wan interfaces
-#
# CONFIG_WAN is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
@@ -711,6 +631,7 @@ CONFIG_PPP_DEFLATE=m
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_SHAPER is not set
@@ -718,10 +639,6 @@ CONFIG_NETCONSOLE=y
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
-
-#
-# ISDN subsystem
-#
# CONFIG_ISDN is not set
#
@@ -729,6 +646,7 @@ CONFIG_NET_POLL_CONTROLLER=y
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
#
# Userland interfaces
@@ -794,26 +712,13 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
-
-#
-# IPMI
-#
# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
# CONFIG_WATCHDOG is not set
CONFIG_HW_RANDOM=y
# CONFIG_NVRAM is not set
CONFIG_DAVINCI_RTC=y
-# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
# CONFIG_TCG_TPM is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
@@ -833,6 +738,7 @@ CONFIG_I2C_CHARDEV=y
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_TINY_USB is not set
CONFIG_I2C_DAVINCI=y
@@ -842,13 +748,16 @@ CONFIG_I2C_DAVINCI=y
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_DS1682 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
CONFIG_SENSORS_TLV320AIC23=y
-# CONFIG_SENSORS_MAX6875 is not set
CONFIG_SENSORS_TLV320AIC33=y
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_GPIOEXPANDER_DAVINCI=y
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
@@ -859,14 +768,11 @@ CONFIG_SENSORS_TLV320AIC33=y
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
-
-#
-# Dallas's 1-wire bus
-#
# CONFIG_W1 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ABITUGURU is not set
+# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
@@ -893,13 +799,16 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -909,57 +818,33 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Misc devices
-#
-# CONFIG_BLINK is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
-
-#
-# LED devices
-#
# CONFIG_NEW_LEDS is not set
#
-# LED drivers
-#
-
-#
-# LED Triggers
-#
-
-#
# Multimedia devices
#
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y
-
-#
-# Video Capture Adapters
-#
-
-#
-# Video Capture Adapters
-#
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+# CONFIG_VIDEO_TVP5146 is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_CPIA2 is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
-# CONFIG_VIDEO_IVTV is not set
-
-#
-# V4L USB devices
-#
+# CONFIG_TUNER_TEA5761 is not set
+CONFIG_V4L_USB_DRIVERS=y
# CONFIG_VIDEO_PVRUSB2 is not set
# CONFIG_VIDEO_EM28XX is not set
# CONFIG_VIDEO_USBVISION is not set
@@ -977,17 +862,11 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
# CONFIG_USB_ZC0301 is not set
# CONFIG_USB_PWC is not set
# CONFIG_USB_ZR364XX is not set
-
-#
-# Radio Adapters
-#
+CONFIG_RADIO_ADAPTERS=y
# CONFIG_RADIO_TEA5761 is not set
# CONFIG_USB_DSBR is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
# CONFIG_USB_DABUSB is not set
#
@@ -1000,6 +879,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB_DDC is not set
@@ -1030,6 +910,7 @@ CONFIG_FB_DAVINCI=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
@@ -1053,7 +934,6 @@ CONFIG_SOUND=y
# Open Sound System
#
CONFIG_SOUND_PRIME=y
-# CONFIG_OSS_OBSOLETE is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
CONFIG_SOUND_DAVINCI=y
@@ -1064,10 +944,7 @@ CONFIG_SOUND_DAVINCI_AIC33=y
#
# CONFIG_MONOSTEREO_DIFFJACK is not set
CONFIG_MONOSTEREO_SAMEJACK=y
-
-#
-# HID Devices
-#
+CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
@@ -1084,10 +961,7 @@ CONFIG_USB_HID=m
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
-
-#
-# USB support
-#
+CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
@@ -1098,7 +972,7 @@ CONFIG_USB=m
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
@@ -1107,6 +981,7 @@ CONFIG_USB_DEVICEFS=y
#
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_MUSB_HDRC=m
CONFIG_USB_MUSB_SOC=y
@@ -1197,12 +1072,15 @@ CONFIG_USB_MON=y
CONFIG_USB_GADGET=m
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AMD5536UDC is not set
# CONFIG_USB_GADGET_FSL_USB2 is not set
# CONFIG_USB_GADGET_NET2280 is not set
# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_M66592 is not set
# CONFIG_USB_GADGET_GOKU is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
CONFIG_USB_GADGET_DUALSPEED=y
@@ -1222,17 +1100,27 @@ CONFIG_MMC=y
# MMC/SD Card Drivers
#
CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
#
# MMC/SD Host Controller Drivers
#
# CONFIG_MMC_DAVINCI is not set
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
#
-# Real Time Clock
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
#
-CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
#
# File systems
@@ -1350,7 +1238,6 @@ CONFIG_SMB_FS=m
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
-# CONFIG_9P_FS is not set
#
# Partition Types
@@ -1447,10 +1334,6 @@ CONFIG_FRAME_POINTER=y
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
# CONFIG_CRYPTO is not set
#
@@ -1459,7 +1342,9 @@ CONFIG_FRAME_POINTER=y
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/linux/linux-davinci_2.6.x+git-davinci.bb b/packages/linux/linux-davinci_2.6.x+git-davinci.bb
index b4dcabedd7..0381716253 100644
--- a/packages/linux/linux-davinci_2.6.x+git-davinci.bb
+++ b/packages/linux/linux-davinci_2.6.x+git-davinci.bb
@@ -6,6 +6,7 @@ PR = "r1"
COMPATIBLE_MACHINE = "davinci-dvevm"
SRC_URI = "git://source.mvista.com/git/linux-davinci-2.6.git;protocol=git \
+ file://binutils-buildid-arm.patch;patch=1 \
file://defconfig"
S = "${WORKDIR}/git"
diff --git a/packages/linux/linux-ezx-2.6.21/a1200/defconfig b/packages/linux/linux-ezx-2.6.21/a1200/defconfig
index b40f2f6eba..074d70244b 100755
--- a/packages/linux/linux-ezx-2.6.21/a1200/defconfig
+++ b/packages/linux/linux-ezx-2.6.21/a1200/defconfig
@@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
+CONFIG_IKCONFIG=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
@@ -1003,7 +1003,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_BACKLIGHT_EZX=y
+CONFIG_BACKLIGHT_EZX=N
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
@@ -1313,12 +1313,12 @@ CONFIG_RTC_DRV_SA1100=m
#
# File systems
#
-CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
diff --git a/packages/linux/linux-ezx-2.6.21/a780/defconfig b/packages/linux/linux-ezx-2.6.21/a780/defconfig
index f79aaa7e7d..30f9f72174 100755
--- a/packages/linux/linux-ezx-2.6.21/a780/defconfig
+++ b/packages/linux/linux-ezx-2.6.21/a780/defconfig
@@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
+CONFIG_IKCONFIG=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
@@ -1317,12 +1317,12 @@ CONFIG_RTC_DRV_SA1100=m
#
# File systems
#
-CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
diff --git a/packages/linux/linux-ezx-2.6.21/e680/defconfig b/packages/linux/linux-ezx-2.6.21/e680/defconfig
index 94947cceb3..9a30ce673f 100755
--- a/packages/linux/linux-ezx-2.6.21/e680/defconfig
+++ b/packages/linux/linux-ezx-2.6.21/e680/defconfig
@@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
+CONFIG_IKCONFIG=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
@@ -1311,12 +1311,12 @@ CONFIG_RTC_DRV_SA1100=m
#
# File systems
#
-CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS=n
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch
index e6146058a0..77aec1c629 100644
--- a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch
@@ -1,73 +1,15 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:38:52.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:48:23.000000000 -0300
-@@ -25,6 +25,7 @@
- #include <asm/arch/mmc.h>
-
- #include "generic.h"
-+#include "ezx-eoc.h"
-
- extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
- extern void ezx_backlight_power(int);
-@@ -203,8 +204,65 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-24 20:14:54.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-24 20:15:18.000000000 -0300
+@@ -203,8 +203,15 @@
},
};
+
-+/* EOC */
-+static const unsigned int tab_init_eoc_reg[][2] =
-+{
-+ {POWER_IC_REG_EOC_INT_MASK, 0x00000FEF},
-+ {POWER_IC_REG_EOC_POWER_CONTROL_0, 0x00000C00},
-+ {POWER_IC_REG_EOC_POWER_CONTROL_1, 0x0000000C},
-+ {POWER_IC_REG_EOC_CONN_CONTROL, 0x00021044},
-+};
-+
-+static void dump_eoc_registers(void)
-+{
-+ int i, val = 0;
-+
-+ printk("========DUMP EOC=========\n");
-+ for (i = 0; i < POWER_IC_REG_EOC_NUM; i++) {
-+ eoc_reg_read(i, &val);
-+ printk("eoc_registers[%d] = 0x%08X\n", i, val);
-+ }
-+ printk("========END DUMP=========\n");
-+}
-+
-+/*
-+ * FIXME: The same about the PCAP driver applies here.
-+ * This is the initial state only.
-+ * Which bits does the change to USB/UART/AUDIO mode?
-+ * I think that this is causing the crash on pxa27x-udc
-+ * you are setting the 'port connected' bit, and thats why
-+ * you are getting interrupts early.
-+ * --WM
-+ */
-+
-+static int __init a1200_eoc_init(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < sizeof(tab_init_eoc_reg)/sizeof(unsigned int)/2; i++)
-+ {
-+ eoc_reg_write(tab_init_eoc_reg[i][0], tab_init_eoc_reg[i][1]);
-+ }
-+ dump_eoc_registers();
-+ return 0;
-+}
-+
-+static struct ezx_eoc_platform_data a1200_eoc_platform_data = {
-+ .init = a1200_eoc_init,
-+};
-+
+struct platform_device a1200_eoc_device = {
+ .name = "ezx-eoc",
+ .id = -1,
-+ .dev = {
-+ .platform_data = &a1200_eoc_platform_data,
-+ },
+};
+
static struct platform_device *devices[] __initdata = {
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch
new file mode 100644
index 0000000000..fc51773205
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch
@@ -0,0 +1,47 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:00:53.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:01:06.000000000 -0300
+@@ -16,6 +16,7 @@
+ #include <linux/mmc/host.h>
+ #include <linux/irq.h>
+ #include <linux/input.h>
++#include <linux/gpio_keys.h>
+
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
+@@ -292,11 +293,34 @@
+ .num_resources = ARRAY_SIZE(pcap_ts_resources),
+ .resource = pcap_ts_resources,
+ };
++/* Flip */
++#undef GPIO_FLIP_PIN
++#define GPIO_FLIP_PIN 15 /* FIXME */
++static struct gpio_keys_button a1200flip_buttons[] = {
++ [0] = {
++ .keycode = KEY_SLEEP,
++ .gpio = GPIO_FLIP_PIN,
++ .desc = "A1200 flip",
++ },
++};
++
++static struct gpio_keys_platform_data a1200flip_platform_data = {
++ .buttons = a1200flip_buttons,
++ .nbuttons = 1,
++};
++static struct platform_device a1200flip_device = {
++ .name = "gpio-keys",
++ .id = -1,
++ .dev = {
++ .platform_data = &a1200flip_platform_data,
++ },
++};
+
+ static struct platform_device *devices[] __initdata = {
+ &a1200_pcap_device,
+ &a1200_eoc_device,
+ &pcap_ts_device,
++ &a1200flip_device,
+ };
+
+ static void __init a1200_init(void)
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch
new file mode 100644
index 0000000000..5771f6d359
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch
@@ -0,0 +1,98 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 00:03:01.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:00:40.000000000 -0300
+@@ -15,6 +15,7 @@
+ #include <linux/fb.h>
+ #include <linux/mmc/host.h>
+ #include <linux/irq.h>
++#include <linux/input.h>
+
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
+@@ -23,11 +24,13 @@
+ #include <asm/arch/ezx.h>
+ #include <asm/arch/ezx-pcap.h>
+ #include <asm/arch/mmc.h>
++#include <asm/arch/kbd.h>
+
+ #include "generic.h"
+
+ extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+ extern void ezx_backlight_power(int);
++extern void __init pxa_set_kbd_info(struct pxakbd_platform_data *);
+
+ #ifdef CONFIG_EZX_PCAP
+ extern int ezx_pcap_mmcsd_power(int);
+@@ -209,6 +212,63 @@
+ .id = -1,
+ };
+
++/* Keypad */
++static unsigned char a1200_keycode[] = {
++ /* row 0 */
++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
++ /* row 1 */
++ KEY_RIGHT, KEY_DOWN, KEY_KPENTER, KEY_UP, KEY_LEFT,
++ /* row 2 */
++ KEY_PAGEDOWN, KEY_CAMERA, KEY_RECORD, KEY_HOME, KEY_PAGEUP,
++ /* row 3 */
++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
++ /* row 4 */
++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
++ /* row 5 */
++ KEY_RESERVED, KEY_RESERVED, KEY_MENU, KEY_RESERVED, KEY_RESERVED,
++};
++/*
++static unsigned char a1200_direct_keycode[] = {
++ KEY_CAMERA,
++};
++*/
++
++static int a1200_kbd_init(void)
++{
++ pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN); /* KP_MKIN<0> */
++ pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN); /* KP_MKIN<1> */
++ pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN); /* KP_MKIN<2> */
++ pxa_gpio_mode(97 | GPIO_ALT_FN_3_IN); /* KP_MKIN<3> */
++ pxa_gpio_mode(98 | GPIO_ALT_FN_3_IN); /* KP_MKIN<4> */
++ pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */
++ pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */
++ pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */
++ pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */
++ pxa_gpio_mode(107 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<4> */
++ pxa_gpio_mode(108 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<5> */
++
++ PKWR = 0xEC000;
++ PGSR3 |= 0x1F80;
++ return 0;
++}
++
++static struct pxakbd_platform_data a1200_kbd_platform_data = {
++ .init = &a1200_kbd_init,
++ .scan_interval = HZ/40,
++ .matrix = {
++ .keycode = a1200_keycode,
++ .cols = 6,
++ .rows = 5,
++ },
++/*
++ .direct = {
++ .keycode = a1200_direct_keycode,
++ .num = 1,
++ },
++*/
++};
++
++
+ static struct platform_device *devices[] __initdata = {
+ &a1200_pcap_device,
+ &a1200_eoc_device,
+@@ -218,6 +278,7 @@
+ {
+ set_pxa_fb_info(&a1200_fb_info);
+ pxa_set_mci_info(&a1200_mci_platform_data);
++ pxa_set_kbd_info(&a1200_kbd_platform_data);
+
+ platform_add_devices(devices, ARRAY_SIZE(devices));
+ }
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch
index 2327257507..bf328cd931 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch
@@ -1,11 +1,11 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:50:31.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:51:06.000000000 -0300
-@@ -260,9 +260,34 @@
- },
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:00:40.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:00:53.000000000 -0300
+@@ -269,9 +269,34 @@
};
+
+/* PCAP_TS */
+struct resource pcap_ts_resources[] = {
+ [0] = {
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch
index f6e152c735..3824079c15 100644
--- a/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch
@@ -1,73 +1,15 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:38:52.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:49:42.000000000 -0300
-@@ -25,6 +25,7 @@
- #include <asm/arch/mmc.h>
-
- #include "generic.h"
-+#include "ezx-eoc.h"
-
- extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
- extern void ezx_backlight_power(int);
-@@ -203,8 +204,65 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-24 20:14:54.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-24 20:15:18.000000000 -0300
+@@ -203,8 +203,15 @@
},
};
+
-+/* EOC */
-+static const unsigned int tab_init_eoc_reg[][2] =
-+{
-+ {POWER_IC_REG_EOC_INT_MASK, 0x00000FEF},
-+ {POWER_IC_REG_EOC_POWER_CONTROL_0, 0x00000C00},
-+ {POWER_IC_REG_EOC_POWER_CONTROL_1, 0x0000000C},
-+ {POWER_IC_REG_EOC_CONN_CONTROL, 0x00021044},
-+};
-+
-+static void dump_eoc_registers(void)
-+{
-+ int i, val = 0;
-+
-+ printk("========DUMP EOC=========\n");
-+ for (i = 0; i < POWER_IC_REG_EOC_NUM; i++) {
-+ eoc_reg_read(i, &val);
-+ printk("eoc_registers[%d] = 0x%08X\n", i, val);
-+ }
-+ printk("========END DUMP=========\n");
-+}
-+
-+/*
-+ * FIXME: The same about the PCAP driver applies here.
-+ * This is the initial state only.
-+ * Which bits does the change to USB/UART/AUDIO mode?
-+ * I think that this is causing the crash on pxa27x-udc
-+ * you are setting the 'port connected' bit, and thats why
-+ * you are getting interrupts early.
-+ * --WM
-+ */
-+
-+static int __init e6_eoc_init(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < sizeof(tab_init_eoc_reg)/sizeof(unsigned int)/2; i++)
-+ {
-+ eoc_reg_write(tab_init_eoc_reg[i][0], tab_init_eoc_reg[i][1]);
-+ }
-+ dump_eoc_registers();
-+ return 0;
-+}
-+
-+static struct ezx_eoc_platform_data e6_eoc_platform_data = {
-+ .init = e6_eoc_init,
-+};
-+
+struct platform_device e6_eoc_device = {
+ .name = "ezx-eoc",
+ .id = -1,
-+ .dev = {
-+ .platform_data = &e6_eoc_platform_data,
-+ },
+};
+
static struct platform_device *devices[] __initdata = {
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch
index a39b782300..ad4a52eeec 100644
--- a/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch
@@ -1,9 +1,9 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:50:31.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:51:40.000000000 -0300
-@@ -260,9 +260,34 @@
- },
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-25 00:03:01.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-25 02:00:58.000000000 -0300
+@@ -209,9 +209,34 @@
+ .id = -1,
};
+/* PCAP_TS */
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch
index 653e814fb4..711a8a467b 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S
===================================================================
---- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-06-28 16:51:44.000000000 -0300
-+++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-06-28 16:51:50.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-09-23 13:27:06.000000000 -0300
++++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-09-23 13:27:19.000000000 -0300
@@ -53,3 +53,6 @@
str r1, [r0, #0x18]
#endif
@@ -11,8 +11,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S
+#endif
Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-28 16:51:44.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-28 20:54:54.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-23 13:27:06.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-23 13:27:19.000000000 -0300
@@ -37,6 +37,10 @@
bool "Keith und Koep Trizeps4 DIMM-Module"
select PXA27x
@@ -68,8 +68,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
endif
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-28 16:51:44.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-28 20:54:54.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-23 13:27:06.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-23 13:27:19.000000000 -0300
@@ -18,6 +18,12 @@
obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o
obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
@@ -86,7 +86,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-28 20:54:54.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-09-23 13:27:19.000000000 -0300
@@ -0,0 +1,118 @@
+/*
+ * ezx.c - Common code for EZX platform.
@@ -209,7 +209,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-06-28 16:51:50.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-09-23 13:27:19.000000000 -0300
@@ -0,0 +1,225 @@
+/*
+ * linux/include/asm-arm/arch-pxa/ezx.h
@@ -438,9 +438,9 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h
+
Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
===================================================================
---- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-28 16:51:44.000000000 -0300
-+++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-28 18:18:49.000000000 -0300
-@@ -849,6 +849,8 @@
+--- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-09-23 13:27:13.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-09-23 13:27:19.000000000 -0300
+@@ -856,6 +856,8 @@
#define UP2OCR_HXOE (1 << 17) /* Host Port 2 Transceiver Output Enable */
#define UP2OCR_SEOS (1 << 24) /* Single-Ended Output Select */
@@ -449,7 +449,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define UDCCSN(x) __REG2(0x40600100, (x) << 2)
#define UDCCSR0 __REG(0x40600100) /* UDC Control/Status register - Endpoint 0 */
#define UDCCSR0_SA (1 << 7) /* Setup Active */
-@@ -1252,6 +1254,7 @@
+@@ -1259,6 +1261,7 @@
#define GPIO33_nCS_5 33 /* chip select 5 */
#define GPIO34_FFRXD 34 /* FFUART receive */
#define GPIO34_MMCCS0 34 /* MMC Chip Select 0 */
@@ -457,7 +457,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define GPIO35_FFCTS 35 /* FFUART Clear to send */
#define GPIO36_FFDCD 36 /* FFUART Data carrier detect */
#define GPIO37_FFDSR 37 /* FFUART data set ready */
-@@ -1365,6 +1368,7 @@
+@@ -1372,6 +1375,7 @@
#define GPIO18_RDY_MD (18 | GPIO_ALT_FN_1_IN)
#define GPIO19_DREQ1_MD (19 | GPIO_ALT_FN_1_IN)
#define GPIO20_DREQ0_MD (20 | GPIO_ALT_FN_1_IN)
@@ -465,7 +465,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define GPIO23_SCLK_MD (23 | GPIO_ALT_FN_2_OUT)
#define GPIO24_SFRM_MD (24 | GPIO_ALT_FN_2_OUT)
#define GPIO25_STXD_MD (25 | GPIO_ALT_FN_2_OUT)
-@@ -1375,23 +1379,33 @@
+@@ -1382,23 +1386,33 @@
#define GPIO28_BITCLK_OUT_I2S_MD (28 | GPIO_ALT_FN_1_OUT)
#define GPIO29_SDATA_IN_AC97_MD (29 | GPIO_ALT_FN_1_IN)
#define GPIO29_SDATA_IN_I2S_MD (29 | GPIO_ALT_FN_2_IN)
@@ -499,7 +499,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define GPIO41_FFRTS_MD (41 | GPIO_ALT_FN_2_OUT)
#define GPIO42_BTRXD_MD (42 | GPIO_ALT_FN_1_IN)
#define GPIO42_HWRXD_MD (42 | GPIO_ALT_FN_3_IN)
-@@ -1416,13 +1430,17 @@
+@@ -1423,13 +1437,17 @@
#define GPIO51_HWRTS_MD (51 | GPIO_ALT_FN_1_OUT)
#define GPIO51_nPIOW_MD (51 | GPIO_ALT_FN_2_OUT)
#define GPIO52_nPCE_1_MD (52 | GPIO_ALT_FN_2_OUT)
@@ -517,7 +517,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define GPIO57_nIOIS16_MD (57 | GPIO_ALT_FN_1_IN)
#define GPIO58_LDD_0_MD (58 | GPIO_ALT_FN_2_OUT)
#define GPIO59_LDD_1_MD (59 | GPIO_ALT_FN_2_OUT)
-@@ -1458,13 +1476,19 @@
+@@ -1465,13 +1483,19 @@
#define GPIO80_nCS_4_MD (80 | GPIO_ALT_FN_2_OUT)
#define GPIO81_NSSP_CLK_OUT (81 | GPIO_ALT_FN_1_OUT)
#define GPIO81_NSSP_CLK_IN (81 | GPIO_ALT_FN_1_IN)
@@ -537,7 +537,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define GPIO92_MMCDAT0_MD (92 | GPIO_ALT_FN_1_OUT)
#define GPIO102_nPCE_1_MD (102 | GPIO_ALT_FN_1_OUT)
#define GPIO104_pSKTSEL_MD (104 | GPIO_ALT_FN_1_OUT)
-@@ -1476,6 +1500,7 @@
+@@ -1483,6 +1507,7 @@
#define GPIO112_MMCCMD_MD (112 | GPIO_ALT_FN_1_OUT)
#define GPIO113_I2S_SYSCLK_MD (113 | GPIO_ALT_FN_1_OUT)
#define GPIO113_AC97_RESET_N_MD (113 | GPIO_ALT_FN_2_OUT)
@@ -545,7 +545,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define GPIO117_I2CSCL_MD (117 | GPIO_ALT_FN_1_IN)
#define GPIO118_I2CSDA_MD (118 | GPIO_ALT_FN_1_IN)
-@@ -1491,6 +1516,7 @@
+@@ -1498,6 +1523,7 @@
#define PFER __REG(0x40F00014) /* Power Manager GPIO Falling-Edge Detect Enable Register */
#define PEDR __REG(0x40F00018) /* Power Manager GPIO Edge Detect Status Register */
#define PCFR __REG(0x40F0001C) /* Power Manager General Configuration Register */
@@ -555,8 +555,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define PGSR2 __REG(0x40F00028) /* Power Manager GPIO Sleep State Register for GP[84-64] */
Index: linux-2.6.21/arch/arm/boot/compressed/head.S
===================================================================
---- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-06-28 16:51:44.000000000 -0300
-+++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-06-28 16:51:50.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-09-23 13:27:06.000000000 -0300
++++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-09-23 13:27:19.000000000 -0300
@@ -117,6 +117,9 @@
mov r0, r0
.endr
@@ -569,8 +569,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head.S
.word start @ absolute load/run zImage address
Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h
===================================================================
---- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-06-28 16:51:44.000000000 -0300
-+++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-06-28 16:51:50.000000000 -0300
+--- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-09-23 13:27:06.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-09-23 13:27:19.000000000 -0300
@@ -14,14 +14,14 @@
#define STUART ((volatile unsigned long *)0x40700000)
#define HWUART ((volatile unsigned long *)0x41600000)
@@ -591,8 +591,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h
/*
Index: linux-2.6.21/arch/arm/mm/init.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mm/init.c 2007-06-28 16:51:44.000000000 -0300
-+++ linux-2.6.21/arch/arm/mm/init.c 2007-06-28 16:51:50.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mm/init.c 2007-09-23 13:27:07.000000000 -0300
++++ linux-2.6.21/arch/arm/mm/init.c 2007-09-23 13:27:19.000000000 -0300
@@ -241,6 +241,10 @@
*/
reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT,
@@ -607,7 +607,7 @@ Index: linux-2.6.21/arch/arm/mm/init.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-28 20:53:01.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-09-23 13:27:19.000000000 -0300
@@ -0,0 +1,88 @@
+/*
+ * ezx-a780.c - Code specific to A780 GSM Phone.
@@ -700,7 +700,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-06-28 20:54:24.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-09-23 13:27:19.000000000 -0300
@@ -0,0 +1,70 @@
+/*
+ * ezx-e2.c - Code specific to E2 GSM Phone.
@@ -748,7 +748,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c
+ .num_modes = 1,
+ .lccr0 = 0x022008B8,
+ .lccr3 = 0xC130FF13,
-+ .pxafb_backlight_power = ezx_backlight_power,
++ .pxafb_backlight_power = &ezx_backlight_power,
+ .pxafb_lcd_power = &ezx_lcd_power,
+};
+
@@ -766,7 +766,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c
+ /* Maintainer: OpenEZX Team (www.openezx.org) */
+ .phys_io = 0x40000000,
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
-+ .boot_params = 0xa0000100,
++ .boot_params = 0xa0000200,
+ .map_io = pxa_map_io,
+ .init_irq = pxa_init_irq,
+ .timer = &pxa_timer,
@@ -775,7 +775,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-28 20:53:29.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-23 13:27:19.000000000 -0300
@@ -0,0 +1,87 @@
+/*
+ * ezx-e680.c - Code specific to E680 GSM Phone.
@@ -867,7 +867,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-28 20:53:48.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-23 13:27:19.000000000 -0300
@@ -0,0 +1,70 @@
+/*
+ * ezx-a1200.c - Code specific to A1200 GSM Phone.
@@ -915,7 +915,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
+ .num_modes = 1,
+ .lccr0 = 0x022008B8,
+ .lccr3 = 0xC130FF13,
-+ .pxafb_backlight_power = ezx_backlight_power,
++ .pxafb_backlight_power = &ezx_backlight_power,
+ .pxafb_lcd_power = &ezx_lcd_power,
+};
+
@@ -933,7 +933,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
+ /* Maintainer: OpenEZX Team (www.openezx.org) */
+ .phys_io = 0x40000000,
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
-+ .boot_params = 0xa0000100,
++ .boot_params = 0xa0000200,
+ .map_io = pxa_map_io,
+ .init_irq = pxa_init_irq,
+ .timer = &pxa_timer,
@@ -942,7 +942,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-06-28 20:54:07.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-23 13:27:19.000000000 -0300
@@ -0,0 +1,70 @@
+/*
+ * ezx-e6.c - Code specific to E6 GSM Phone.
@@ -990,7 +990,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c
+ .num_modes = 1,
+ .lccr0 = 0x022008B8,
+ .lccr3 = 0xC130FF13,
-+ .pxafb_backlight_power = ezx_backlight_power,
++ .pxafb_backlight_power = &ezx_backlight_power,
+ .pxafb_lcd_power = &ezx_lcd_power,
+};
+
@@ -1008,7 +1008,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c
+ /* Maintainer: OpenEZX Team (www.openezx.org) */
+ .phys_io = 0x40000000,
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
-+ .boot_params = 0xa0000100,
++ .boot_params = 0xa0000200,
+ .map_io = pxa_map_io,
+ .init_irq = pxa_init_irq,
+ .timer = &pxa_timer,
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch
index 77c79fd107..bf93ebc854 100644
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c 2007-09-11 20:14:33.000000000 -0300
-@@ -0,0 +1,267 @@
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c 2007-09-24 23:40:45.000000000 -0300
+@@ -0,0 +1,260 @@
+/*
+ * EZX EOC Driver for Motorola EZX phones
+ *
@@ -21,8 +21,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
+#include <asm/arch/hardware.h>
+#include <asm/arch/pxa-regs.h>
+#include <asm/arch/ezx.h>
-+
-+#include "ezx-eoc.h"
++#include <asm/arch/udc.h>
+
+#if 1
+#define EOC_DBG printk
@@ -30,25 +29,23 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
+#define EOC_DBG(x, args...)
+#endif
+
++#define REG_INT_STATUS 32
++#define REG_INT_MASK 33
++#define REG_INT_SENSE 34
++#define REG_POWER_CONTROL_0 35
++#define REG_POWER_CONTROL_1 36
++#define REG_CONN_CONTROL 37
++
+#define EOC_REG_ADDR_SIZE 1
+#define EOC_REG_DATA_SIZE 3
++#define EOC_FUNC_NOTHING 0
++#define EOC_FUNC_USB_NET 1
+
-+struct ezx_eoc_platform_data *pdata;
-+static int eoc_func = EOC_FUNC_USB_NET;
+static const char eoc_i2c_driver_name[] = "ezx-eoc";
-+
-+/* Addresses to scan */
-+static unsigned short normal_i2c[] = {
-+ 0x17, /* Address for version 2.0 and above */
-+ // 0x7C, /* Address for versions prior too 2.0 */
-+ I2C_CLIENT_END
-+};
-+
-+/* I2C Magic */
-+I2C_CLIENT_INSMOD;
++static int eoc_func = EOC_FUNC_USB_NET;
++static struct pxa2xx_udc_mach_info ezx_udc_info;
+
+static int ezx_eoc_attach_adapter(struct i2c_adapter *adapter);
-+static int ezx_eoc_detect(struct i2c_adapter *adapter, int address, int kind);
+static int ezx_eoc_detach_client(struct i2c_client *client);
+
+static struct i2c_client *eoc_i2c_client = NULL;
@@ -57,82 +54,68 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
+ .driver = {
+ .name = (char *)eoc_i2c_driver_name,
+ },
-+ .id = I2C_DRIVERID_EEPROM,
+ .attach_adapter = ezx_eoc_attach_adapter,
+ .detach_client = ezx_eoc_detach_client,
+};
+
+int eoc_reg_read(int reg, unsigned int *reg_value)
+{
-+ unsigned char reg_num = reg;
-+ unsigned char value[EOC_REG_DATA_SIZE];
-+ int retval;
-+
-+ struct i2c_msg msgs[2] =
-+ {
-+ { 0, 0, EOC_REG_ADDR_SIZE, &reg_num },
-+ { 0, I2C_M_RD, EOC_REG_DATA_SIZE, value }
-+ };
-+
-+ /* check if we have initialized */ /*not necessary --WM
-+ if (eoc_i2c_client == NULL)
-+ {
-+ EOC_DBG("eoc_reg_read: not initialized\n");
-+ return -EINVAL;
-+ }
-+*/
-+ msgs[0].addr = msgs[1].addr = eoc_i2c_client->addr;
-+
-+ /* transfer message to client */
-+ retval = i2c_transfer(eoc_i2c_client->adapter, msgs, 2);
-+ if (retval >= 0)
-+ {
-+ *reg_value = (value[2] << 0);
-+ *reg_value |= (value[1] << 8);
-+ *reg_value |= (value[0] << 16);
-+ }
-+ return retval;
++ unsigned char reg_num = reg;
++ unsigned char value[EOC_REG_DATA_SIZE];
++ int retval;
++
++ struct i2c_msg msgs[2] =
++ {
++ { eoc_i2c_client->addr, 0, EOC_REG_ADDR_SIZE, &reg_num },
++ { eoc_i2c_client->addr, I2C_M_RD, EOC_REG_DATA_SIZE, value }
++ };
++
++ /* transfer message to client */
++ retval = i2c_transfer(eoc_i2c_client->adapter, msgs, 2);
++ if (retval < 0)
++ return retval;
++
++ *reg_value = (value[2] << 0);
++ *reg_value |= (value[1] << 8);
++ *reg_value |= (value[0] << 16);
++ return 0;
+}
-+EXPORT_SYMBOL_GPL(eoc_reg_read);
+
+int eoc_reg_write(int reg, unsigned int reg_value)
+{
-+ unsigned char value[EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE];
-+ int retval;
-+
-+ /* check if we have initialized */ /*not necessary --WM
-+ if (eoc_i2c_client == NULL)
-+ {
-+ EOC_DBG("eoc_reg_write: not initialized\n");
-+ return -EINVAL;
-+ }
-+*/
-+ /* Copy the data into a buffer into the correct format */
-+ value[0] = reg;
-+ value[1] = (reg_value >> 16) & 0xFF;
-+ value[2] = (reg_value >> 8) & 0xFF;
-+ value[3] = (reg_value >> 0) & 0xFF;
-+
-+ /* Write the data to the EOC */
-+ retval = i2c_master_send (eoc_i2c_client, value, EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE);
-+
-+ return retval;
++ unsigned char value[EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE];
++ int retval;
++
++ /* Copy the data into a buffer into the correct format */
++ value[0] = reg;
++ value[1] = (reg_value >> 16) & 0xFF;
++ value[2] = (reg_value >> 8) & 0xFF;
++ value[3] = (reg_value >> 0) & 0xFF;
++
++ /* Write the data to the EOC */
++ retval = i2c_master_send (eoc_i2c_client, value, EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE);
++ if (retval < 0)
++ return retval;
++ return 0;
+}
-+EXPORT_SYMBOL_GPL(eoc_reg_write);
+
+static void eoc_switch_to_usb(void)
+{
++ EOC_DBG("EOC: Switching to USB\n");
+ pxa_gpio_mode(GPIO34_USB_P2_2_MD);
+ pxa_gpio_mode(GPIO35_USB_P2_1_MD);
+ pxa_gpio_mode(GPIO36_USB_P2_4_MD);
+ pxa_gpio_mode(GPIO39_USB_P2_6_MD);
+ pxa_gpio_mode(GPIO40_USB_P2_5_MD);
+ pxa_gpio_mode(GPIO53_USB_P2_3_MD);
-+ EOC_DBG("ALEX;*********************************************emu_switch_to_usb;\n");
++ UP2OCR = 0x02000000;
++ /* FIXME change eoc bits to USB */
++
+}
+
+static void eoc_switch_to_nothing(void)
+{
++ EOC_DBG("EOC: Switching do disconnected\n");
+ pxa_gpio_mode(GPIO34_TXENB | GPIO_OUT);
+ set_GPIO(GPIO34_TXENB);
+ pxa_gpio_mode(GPIO35_XRXD | GPIO_IN);
@@ -140,6 +123,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
+ pxa_gpio_mode(GPIO39_VPOUT | GPIO_IN);
+ pxa_gpio_mode(GPIO40_VPIN | GPIO_IN);
+ pxa_gpio_mode(GPIO53_VMIN | GPIO_IN);
++ /* FIXME disconnect mini usb port */
+}
+
+static void eoc_switch_to_default(void)
@@ -154,73 +138,56 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
+ }
+}
+
-+
+static int ezx_eoc_attach_adapter(struct i2c_adapter *adapter)
+{
-+ return i2c_probe(adapter, &addr_data, ezx_eoc_detect);
-+}
-+
-+/* This function is called by i2c_probe */
-+static int ezx_eoc_detect(struct i2c_adapter *adapter, int address, int kind)
-+{
-+ struct i2c_client *new_client;
+ int err = 0;
++ EOC_DBG(">>>>attach adapter enter\n");
++
++ if (eoc_i2c_client != NULL) {
++ EOC_DBG(">>>>already loaded!!!\n");
++ return 0;
++ }
+
-+ if (!(new_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL)))
++ if (!(eoc_i2c_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL)))
+ return -ENOMEM;
+
-+ new_client->addr = address;
-+ new_client->adapter = adapter;
-+ new_client->driver = &eoc_i2c_driver;
-+ new_client->flags = 0;
-+ strlcpy(new_client->name, eoc_i2c_driver_name, I2C_NAME_SIZE);
++ eoc_i2c_client->addr = 0x17;
++ eoc_i2c_client->adapter = adapter;
++ eoc_i2c_client->driver = &eoc_i2c_driver;
++ eoc_i2c_client->flags = 0;
++ strlcpy(eoc_i2c_client->name, eoc_i2c_driver_name, I2C_NAME_SIZE);
+
-+ if ((err = i2c_attach_client(new_client))) {
-+ kfree(new_client);
++ if ((err = i2c_attach_client(eoc_i2c_client))) {
++ kfree(eoc_i2c_client);
++ eoc_i2c_client = NULL;
+ return err;
+ }
-+
-+ eoc_i2c_client = new_client;
-+
-+ if (pdata && pdata->init)
-+ pdata->init();
++ eoc_reg_write(REG_INT_MASK, 0x0000FEF);
++ eoc_reg_write(REG_POWER_CONTROL_0, 0x0000C00);
++ eoc_reg_write(REG_POWER_CONTROL_1, 0x000000C);
++ eoc_reg_write(REG_CONN_CONTROL,0x0021044);
+
+ eoc_switch_to_default();
-+
++ EOC_DBG(">>>>attach adapter exit\n");
+ return 0;
++
+}
+
+static int ezx_eoc_detach_client(struct i2c_client *client)
+{
-+ int err;
-+
-+ err = i2c_detach_client(client);
-+ if (err)
-+ return err;
-+
-+ return 0;
++ return i2c_detach_client(client);
+}
+
+static int __init ezx_eoc_probe(struct platform_device *dev)
+{
+ int ret;
+
-+ pdata = dev->dev.platform_data;
-+
+ ret = i2c_add_driver(&eoc_i2c_driver);
+ if (ret != 0)
+ return -EINVAL;
-+
-+ /*
-+ * I think we should save platform_data and call init and eoc_switch
-+ * from ezx_eoc_detect, after client is setup.
-+ * And there is no need for all the "check if initialised" checks if
-+ * you assure that you only call read/write after the client is set.
-+ * Probably, this was causing the crash on i2c-core too.
-+ * --WM
-+ */
-+
-+ /* FIXME: should set udc_info here -WM */
++
++ pxa_set_udc_info(&ezx_udc_info);
++
+ return 0;
+}
+
@@ -241,6 +208,34 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
+ return 0;
+}
+
++/* USB Device Controller */
++static int udc_connected_status;
++static void ezx_udc_command(int cmd)
++{
++ switch (cmd) {
++ case PXA2XX_UDC_CMD_DISCONNECT:
++ printk(KERN_NOTICE "USB cmd disconnect\n");
++// ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_USB_PU,0);
++ udc_connected_status = 0;
++ break;
++ case PXA2XX_UDC_CMD_CONNECT:
++ printk(KERN_NOTICE "USB cmd connect\n");
++// ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_USB_PU,1);
++ udc_connected_status = 1;
++ break;
++ }
++}
++
++static int ezx_udc_is_connected(void)
++{
++ return udc_connected_status;
++}
++
++static struct pxa2xx_udc_mach_info ezx_udc_info __initdata = {
++ .udc_is_connected = ezx_udc_is_connected,
++ .udc_command = ezx_udc_command,
++};
++
+static struct platform_driver ezx_eoc_driver = {
+ .probe = ezx_eoc_probe,
+ .remove = ezx_eoc_remove,
@@ -266,52 +261,12 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
+MODULE_DESCRIPTION("EZX EOC I2C driver");
+MODULE_LICENSE("GPL");
+
-+/* doesnt module_init work?? -WM */
-+/*late_initcall(ezx_eoc_init);*/
+module_init(ezx_eoc_init);
+module_exit(ezx_eoc_exit);
-Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h 2007-09-09 21:46:27.000000000 -0300
-@@ -0,0 +1,33 @@
-+/*
-+ * linux/arch/arm/mach-pxa/ezx-eoc.h
-+ *
-+ * Copyright (C) Alex Zhang <celeber2@gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#ifndef __EZX_EOC_H__
-+#define __EZX_EOC_H__
-+
-+enum {
-+ POWER_IC_REG_EOC_INT_STATUS,
-+ POWER_IC_REG_EOC_INT_MASK,
-+ POWER_IC_REG_EOC_INT_SENSE,
-+ POWER_IC_REG_EOC_POWER_CONTROL_0,
-+ POWER_IC_REG_EOC_POWER_CONTROL_1,
-+ POWER_IC_REG_EOC_CONN_CONTROL,
-+ POWER_IC_REG_EOC_NUM
-+};
-+
-+enum {
-+ EOC_FUNC_NOTHING,
-+ EOC_FUNC_USB_NET,
-+};
-+
-+struct ezx_eoc_platform_data {
-+ int (*init)(void);
-+};
-+
-+#endif /* __EZX_EOC_H__ */
Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-09 21:46:27.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-09 21:46:27.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-24 20:15:00.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-24 20:15:16.000000000 -0300
@@ -108,6 +108,12 @@
config EZX_PCAP
bool "PCAP Support"
@@ -327,8 +282,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
depends on EZX_PCAP
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-09 21:46:27.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-09 21:46:27.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-24 20:15:00.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-24 20:15:16.000000000 -0300
@@ -27,6 +27,7 @@
obj-$(CONFIG_EZX_BP) += ezx-bp.o
obj-$(CONFIG_EZX_PCAP) += ezx-pcap.o
diff --git a/packages/linux/linux-ezx-2.6.21/patches/index.html b/packages/linux/linux-ezx-2.6.21/patches/index.html
index bbbb40d590..6cd7a62548 100644
--- a/packages/linux/linux-ezx-2.6.21/patches/index.html
+++ b/packages/linux/linux-ezx-2.6.21/patches/index.html
@@ -1,10 +1,12 @@
-<html><head><title>Revision 2059: /trunk/src/kernel-2.6/patches</title></head>
+<html><head><title>Revision 2064: /trunk/src/kernel-2.6/patches</title></head>
<body>
- <h2>Revision 2059: /trunk/src/kernel-2.6/patches</h2>
+ <h2>Revision 2064: /trunk/src/kernel-2.6/patches</h2>
<ul>
<li><a href="../">..</a></li>
<li><a href="Makefile.OpenEZX">Makefile.OpenEZX</a></li>
<li><a href="a1200-eoc.patch">a1200-eoc.patch</a></li>
+ <li><a href="a1200-flip.patch">a1200-flip.patch</a></li>
+ <li><a href="a1200-kbd.patch">a1200-kbd.patch</a></li>
<li><a href="a1200-mci.patch">a1200-mci.patch</a></li>
<li><a href="a1200-pcap.patch">a1200-pcap.patch</a></li>
<li><a href="a1200-ts.patch">a1200-ts.patch</a></li>
@@ -46,7 +48,6 @@
<li><a href="ezx-pcap.patch">ezx-pcap.patch</a></li>
<li><a href="ezx-pm.patch">ezx-pm.patch</a></li>
<li><a href="ezx-serial-bug-workaround.patch">ezx-serial-bug-workaround.patch</a></li>
- <li><a href="i2c-core-fix-a1200.patch">i2c-core-fix-a1200.patch</a></li>
<li><a href="mtdfix.patch">mtdfix.patch</a></li>
<li><a href="mux-fix-init-errorpath.patch">mux-fix-init-errorpath.patch</a></li>
<li><a href="mux-fix-makefile.patch">mux-fix-makefile.patch</a></li>
@@ -64,6 +65,7 @@
<li><a href="pxa-kbd.patch">pxa-kbd.patch</a></li>
<li><a href="pxa27x-udc-fix-a1200.patch">pxa27x-udc-fix-a1200.patch</a></li>
<li><a href="pxa27x-udc-support.2.patch">pxa27x-udc-support.2.patch</a></li>
+ <li><a href="pxa27x_overlay-r5.patch">pxa27x_overlay-r5.patch</a></li>
<li><a href="series">series</a></li>
</ul>
<hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a> version 1.1.4 (r13838).</em>
diff --git a/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch
index 9ee87ff903..1dd6edd7c3 100644
--- a/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch
@@ -1,7 +1,8 @@
+This hack hardcodes pxa27x-udc to ether_gadget. This is just a temp workaround.
Index: linux-2.6.21/drivers/usb/gadget/ether.c
===================================================================
---- linux-2.6.21.orig/drivers/usb/gadget/ether.c 2007-08-20 22:05:12.000000000 +0800
-+++ linux-2.6.21/drivers/usb/gadget/ether.c 2007-08-20 22:06:25.000000000 +0800
+--- linux-2.6.21.orig/drivers/usb/gadget/ether.c 2007-09-23 09:32:51.000000000 -0300
++++ linux-2.6.21/drivers/usb/gadget/ether.c 2007-09-23 09:32:52.000000000 -0300
@@ -2697,10 +2697,16 @@
MODULE_LICENSE ("GPL");
@@ -22,8 +23,8 @@ Index: linux-2.6.21/drivers/usb/gadget/ether.c
static void __exit cleanup (void)
Index: linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c
===================================================================
---- linux-2.6.21.orig/drivers/usb/gadget/pxa27x_udc.c 2007-08-20 22:07:31.000000000 +0800
-+++ linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c 2007-08-20 22:07:47.000000000 +0800
+--- linux-2.6.21.orig/drivers/usb/gadget/pxa27x_udc.c 2007-09-23 09:32:51.000000000 -0300
++++ linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c 2007-09-23 09:32:52.000000000 -0300
@@ -2227,6 +2227,8 @@
udc_init_ep(udc);
udc_reinit(udc);
diff --git a/packages/linux/linux-ezx-2.6.21/patches/series b/packages/linux/linux-ezx-2.6.21/patches/series
index aa95fcbc78..99f95a6c07 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/series
+++ b/packages/linux/linux-ezx-2.6.21/patches/series
@@ -1,5 +1,6 @@
patch-2.6.21.4
mtdfix.patch
+pxa27x_overlay-r5.patch
ezx-core.patch
# ezx-core TODO: should be ezx-common
@@ -42,6 +43,7 @@ ezx-emu.patch
a780-emu.patch
e680-emu.patch
+pxa27x-udc-fix-a1200.patch #(see ezx-a1200.c)
ezx-eoc.patch
a1200-eoc.patch
e6-eoc.patch
@@ -53,6 +55,7 @@ ezx-serial-bug-workaround.patch
pxa-kbd.patch
a780-kbd.patch
e680-kbd.patch
+a1200-kbd.patch
pcap-ts.patch
a780-ts.patch
@@ -64,6 +67,7 @@ ezx-backlight.patch
a780-flip.patch
e680-locksw.patch
+a1200-flip.patch
a780-leds.patch
e680-leds.patch
@@ -97,7 +101,6 @@ ezx-asoc.patch
# pxa-ohci, ts0710_mux, ts0710_mux_usb, ezx-bp
# the folowing break too much stuff on other phones.
-# i2c-core-fix-a1200.patch (see ezx-eoc.c)
-# pxa27x-udc-fix-a1200.patch (see ezx-a1200.c)
# incomplete
+
diff --git a/packages/linux/linux-ezx-2.6.21/rokre2/defconfig b/packages/linux/linux-ezx-2.6.21/rokre2/defconfig
index 8d0f391c08..7e22a3c371 100755
--- a/packages/linux/linux-ezx-2.6.21/rokre2/defconfig
+++ b/packages/linux/linux-ezx-2.6.21/rokre2/defconfig
@@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
+CONFIG_IKCONFIG=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
@@ -1310,12 +1310,12 @@ CONFIG_RTC_DRV_SA1100=m
#
# File systems
#
-CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
diff --git a/packages/linux/linux-ezx-2.6.21/rokre6/defconfig b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig
index 6351d3a45b..8201825d75 100755
--- a/packages/linux/linux-ezx-2.6.21/rokre6/defconfig
+++ b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig
@@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
+CONFIG_IKCONFIG=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
@@ -1003,7 +1003,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_BACKLIGHT_EZX=y
+CONFIG_BACKLIGHT_EZX=N
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
@@ -1313,12 +1313,12 @@ CONFIG_RTC_DRV_SA1100=m
#
# File systems
#
-CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS=n
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
diff --git a/packages/linux/linux-ezx_2.6.21.bb b/packages/linux/linux-ezx_2.6.21.bb
index 5d0096f2b7..db561a7f0d 100644
--- a/packages/linux/linux-ezx_2.6.21.bb
+++ b/packages/linux/linux-ezx_2.6.21.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "2.6 Linux Development Kernel for the Motorola GSM phones A780 and
AUTHOR = "The OpenEZX Team <openezx-devel@lists.openezx.org>"
HOMEPAGE = "http://www.openezx.org"
EZX = "ezxdev"
-PR = "${EZX}-r20"
+PR = "${EZX}-r23"
require linux.inc
@@ -47,6 +47,7 @@ SRC_URI = " \
file://patches/pxa-kbd.patch;patch=1 \
file://patches/a780-kbd.patch;patch=1 \
file://patches/e680-kbd.patch;patch=1 \
+ file://patches/a1200-kbd.patch;patch=1 \
file://patches/pcap-ts.patch;patch=1 \
file://patches/a780-ts.patch;patch=1 \
file://patches/e680-ts.patch;patch=1 \
@@ -54,6 +55,7 @@ SRC_URI = " \
file://patches/e6-ts.patch;patch=1 \
file://patches/a780-flip.patch;patch=1 \
file://patches/e680-locksw.patch;patch=1 \
+ file://patches/a1200-flip.patch;patch=1 \
file://patches/a780-leds.patch;patch=1 \
file://patches/e680-leds.patch;patch=1 \
file://patches/a780-vibrator.patch;patch=1 \
@@ -70,15 +72,11 @@ SRC_URI = " \
file://patches/asoc-fix-loopback.patch;patch=1 \
file://patches/ezx-asoc.patch;patch=1 \
file://patches/mtdfix.patch;patch=1 \
+ file://patches/ezx-backlight.patch;patch=1 \
file://defconfig \
\
"
-BACKLIGHTPATCH = " file://patches/ezx-backlight.patch;patch=1 "
-BACKLIGHTPATCH_rokre6 = ""
-
-SRC_URI += "${BACKLIGHTPATCH}"
-
S = "${WORKDIR}/linux-${PV}"
@@ -94,7 +92,7 @@ COMPATIBLE_MACHINE = '(a780|e680|a1200|rorkre2|rokre6)'
#CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 "
CMDLINE_CON = "console=tty1 "
-CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5"
+CMDLINE_ROOT = "root=/dev/mmcblk0p2 rootfstype=ext2 rootdelay=5"
CMDLINE_NFSROOT = "root=/dev/nfs rootfstype=nfs nfsroot=192.168.0.200:/export/ezx-image rootdelay=5 "
# Uncomment to enable dyntick
#CMDLINE_OTHER = "dyntick=enable"
diff --git a/packages/linux/linux-handhelds-2.6.inc b/packages/linux/linux-handhelds-2.6.inc
index b2a71a84be..47c32a4a24 100644
--- a/packages/linux/linux-handhelds-2.6.inc
+++ b/packages/linux/linux-handhelds-2.6.inc
@@ -60,8 +60,42 @@ do_deploy() {
# format:
# name file md5sumfile destination
echo "${MACHINE}-kernel-${DATETIME} ${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME} - kernel" >> ${DEPLOY_DIR_IMAGE}/reflash.ctl
+ gen_haret_startup
}
do_deploy[dirs] = "${S}"
addtask deploy before do_package after do_install
+
+
+gen_haret_startup() {
+ cat >${DEPLOY_DIR_IMAGE}/startup.txt <<EOF
+# This is startup file for HaRET, Linux bootloader for WinCE
+# http://handhelds.org/wiki/HaRET
+
+set kernel "${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}"
+
+# Boot choices. Uncomment 'set' statements in exactly one section
+
+## Choice 1 - Boot from SD/MMC card
+# Have 2 partition on a card:
+# 1st - FAT with HaRET executable, this file and zImage above
+# 2nd - EXT2 with rootfs tarball extracted
+set cmdline "root=/dev/mmcblk0p2 rootdelay=10 console=ttyS0,115200n8 console=tty0"
+
+## Choice 2 - Boot from CD card, setup like above
+#set cmdline "root=/dev/hda2 rootdelay=10 console=ttyS0,115200n8 console=tty0"
+
+## Choice 3 - Boot rootfs image as initramfs (works only for smaller images)
+# have a cpio.gz file below together with zImage, no EXT2 partition required
+#set initrd "<image>.rootfs.cpio.gz"
+#set cmdline "rdinit=/sbin/init console=ttyS0,115200n8 console=tty0"
+
+## Choice 4 - Boot via NFS over USB networking (must be kernel-builtin)
+# 192.168.x.x - Server address (the other side)
+# 192.168.x.x - Handheld's address
+#set cmdline "root=/dev/nfs nfsroot=192.168.x.x:<nfs_path> ip=192.168.y.y:192.168.x.x:192.168.x.x:255.255.255.0:pda:usb0 console=ttyS0,115200n8 console=tty0"
+
+bootlinux
+EOF
+}
diff --git a/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01 b/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01
index 1d12b6ec36..7aa23df77c 100644
--- a/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01
+++ b/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.22.1
-# Thu Jul 26 22:01:38 2007
+# Linux kernel version: 2.6.22.5
+# Wed Oct 3 13:55:25 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -200,11 +200,12 @@ CONFIG_ARCH_S3C2440=y
CONFIG_SMDK2440_CPU2440=y
CONFIG_MACH_HXD8=y
CONFIG_MACH_NEO1973_GTA02=y
+CONFIG_CPU_S3C2442=y
#
# S3C2442 Machines
#
-# CONFIG_SMDK2440_CPU2442 is not set
+CONFIG_SMDK2440_CPU2442=y
#
# S3C2443 Machines
@@ -282,6 +283,7 @@ CONFIG_KEXEC=y
# At least one emulation must be selected
#
CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
#
@@ -1196,9 +1198,6 @@ CONFIG_FONT_6x11=y
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
# CONFIG_LOGO is not set
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
#
# Sound
@@ -1586,7 +1585,7 @@ CONFIG_CONFIGFS_FS=m
# CONFIG_EFS_FS is not set
CONFIG_YAFFS_FS=y
CONFIG_YAFFS_YAFFS1=y
-# CONFIG_YAFFS_DOES_ECC is not set
+CONFIG_YAFFS_9BYTE_TAGS=y
CONFIG_YAFFS_YAFFS2=y
CONFIG_YAFFS_AUTO_YAFFS2=y
# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
diff --git a/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta02 b/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta02
index 1d12b6ec36..7aa23df77c 100644
--- a/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta02
+++ b/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta02
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.22.1
-# Thu Jul 26 22:01:38 2007
+# Linux kernel version: 2.6.22.5
+# Wed Oct 3 13:55:25 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -200,11 +200,12 @@ CONFIG_ARCH_S3C2440=y
CONFIG_SMDK2440_CPU2440=y
CONFIG_MACH_HXD8=y
CONFIG_MACH_NEO1973_GTA02=y
+CONFIG_CPU_S3C2442=y
#
# S3C2442 Machines
#
-# CONFIG_SMDK2440_CPU2442 is not set
+CONFIG_SMDK2440_CPU2442=y
#
# S3C2443 Machines
@@ -282,6 +283,7 @@ CONFIG_KEXEC=y
# At least one emulation must be selected
#
CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
#
@@ -1196,9 +1198,6 @@ CONFIG_FONT_6x11=y
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
# CONFIG_LOGO is not set
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
#
# Sound
@@ -1586,7 +1585,7 @@ CONFIG_CONFIGFS_FS=m
# CONFIG_EFS_FS is not set
CONFIG_YAFFS_FS=y
CONFIG_YAFFS_YAFFS1=y
-# CONFIG_YAFFS_DOES_ECC is not set
+CONFIG_YAFFS_9BYTE_TAGS=y
CONFIG_YAFFS_YAFFS2=y
CONFIG_YAFFS_AUTO_YAFFS2=y
# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
diff --git a/packages/linux/linux-openmoko_2.6.22.5.bb b/packages/linux/linux-openmoko_2.6.22.5.bb
index e4608a7565..290f475130 100644
--- a/packages/linux/linux-openmoko_2.6.22.5.bb
+++ b/packages/linux/linux-openmoko_2.6.22.5.bb
@@ -8,4 +8,4 @@ SRC_URI += "file://fix-EVIOCGRAB-semantics-2.6.22.5.patch;patch=1"
VANILLA_VERSION = "2.6.22.5"
MOKOR = "moko11+svnr${SRCREV}"
PV = "${VANILLA_VERSION}-${MOKOR}"
-PR = "r2"
+PR = "r3"
diff --git a/packages/linux/linux-rp_2.6.22.bb b/packages/linux/linux-rp_2.6.22.bb
index b36189d9fb..50ee894ee9 100644
--- a/packages/linux/linux-rp_2.6.22.bb
+++ b/packages/linux/linux-rp_2.6.22.bb
@@ -1,6 +1,6 @@
require linux-rp.inc
-PR = "r9"
+PR = "r10"
# Handy URLs
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
@@ -37,6 +37,7 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2 \
${RPSRC}/poodle_pm-r4.patch;patch=1 \
${RPSRC}/pxa27x_overlay-r5.patch;patch=1 \
${RPSRC}/w100_extaccel-r1.patch;patch=1 \
+ ${RPSRC}/w100_extmem-r1.patch;patch=1 \
file://hostap-monitor-mode.patch;patch=1 \
file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \
${RPSRC}/logo_oh-r0.patch.bz2;patch=1;status=unmergable \
diff --git a/packages/linux/linux.inc b/packages/linux/linux.inc
index 7579481005..41b0c13179 100644
--- a/packages/linux/linux.inc
+++ b/packages/linux/linux.inc
@@ -40,7 +40,7 @@ do_configure_prepend() {
#
# oabi / eabi support
#
- if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+ if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
echo "CONFIG_AEABI=y" >> ${S}/.config
echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
else
diff --git a/packages/linux/linux_2.6.21.bb b/packages/linux/linux_2.6.21.bb
index 0848bcd71a..2ef35ef4c0 100644
--- a/packages/linux/linux_2.6.21.bb
+++ b/packages/linux/linux_2.6.21.bb
@@ -69,7 +69,9 @@ GUMSTIX_PATCHES = "\
file://uImage-in-own-partition.patch;patch=1 \
file://pxa-regs-fixup.patch;patch=1 \
file://gumstix-fb-logo.patch;patch=1 \
+ file://gumstix-pxa270-mmc.patch;patch=1 \
file://pxafb-18bpp-mode.patch;patch=1 \
+ file://smc911x-fixup.patch;patch=1 \
"
SRC_URI_append_gumstix-verdex = "${GUMSTIX_PATCHES}"