]> code.ossystems Code Review - openembedded-core.git/commitdiff
linux-openmoko: added 2.6.22.5 from OE, dropped linux-gta01
authorMarcin Juszkiewicz <hrw@openedhand.com>
Wed, 7 Nov 2007 17:17:51 +0000 (17:17 +0000)
committerMarcin Juszkiewicz <hrw@openedhand.com>
Wed, 7 Nov 2007 17:17:51 +0000 (17:17 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3096 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/linux/linux-gta01.inc [deleted file]
meta/packages/linux/linux-gta01_2.6.21.6.bb [deleted file]
meta/packages/linux/linux-openmoko.inc [new file with mode: 0644]
meta/packages/linux/linux-openmoko/defconfig-2.6.22.5 [moved from meta/packages/linux/linux-gta01/defconfig-2.6.21.6-fic-gta01 with 93% similarity]
meta/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch [new file with mode: 0644]
meta/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics.patch [moved from meta/packages/linux/linux-gta01/fix-EVIOCGRAB-semantics.patch with 100% similarity]
meta/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch [new file with mode: 0644]
meta/packages/linux/linux-openmoko/logo_linux_clut224.ppm [moved from meta/packages/linux/linux-gta01/logo_linux_clut224.ppm with 100% similarity]
meta/packages/linux/linux-openmoko_2.6.22.5.bb [new file with mode: 0644]

diff --git a/meta/packages/linux/linux-gta01.inc b/meta/packages/linux/linux-gta01.inc
deleted file mode 100644 (file)
index b9d4d5c..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-DESCRIPTION = "2.6 Linux Development Kernel for FIC Neo1973 (GTA01)"
-SECTION = "kernel"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
-HOMEPAGE = "N/A"
-LICENSE = "GPL"
-DEPENDS += "u-boot-mkimage-openmoko-native"
-
-inherit kernel
-
-FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-gta01"
-
-##############################################################
-# source and patches
-#
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
-           file://defconfig-${VANILLA_VERSION}-${MACHINE} \
-           file://logo_linux_clut224.ppm"
-S = "${WORKDIR}/linux-${VANILLA_VERSION}"
-
-##############################################################
-# kernel image resides on a seperate flash partition (for now)
-#
-FILES_kernel-image = ""
-ALLOW_EMPTY = "1"
-
-COMPATIBLE_MACHINE = 'fic-gta01'
-
-CMDLINE_CON = ""
-#CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5"
-# uncomment if you want to boot over NFS
-#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3"
-# uncomment to enable dyntick
-#CMDLINE_OTHER = "dyntick=enable"
-CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}'
-CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off"
-CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}"
-
-###############################################################
-# module configs specific to this kernel
-#
-
-# usb
-module_autoload_ohci-hcd = "ohci-hcd"
-module_autoload_hci_usb = "hci_usb"
-module_autoload_g_ether = "g_ether"
-# audio
-module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753"
-# sd/mmc
-module_autoload_s3cmci = "s3cmci"
-
-do_prepatch() {
-       mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
-       mv patches patches.openmoko
-       mv .pc .pc.old
-}
-
-do_configure() {
-       install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
-
-       if [ ! -e ${WORKDIR}/defconfig-${VANILLA_VERSION}-${MACHINE} ]; then
-               die "No default configuration for ${MACHINE} available."
-       fi
-
-       echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
-
-       if [ "${TARGET_OS}" = "linux-gnueabi" ]; then
-               echo "CONFIG_AEABI=y"                   >> ${S}/.config
-               echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
-       else 
-               echo "# CONFIG_AEABI is not set"        >> ${S}/.config
-               echo "# CONFIG_OABI_COMPAT is not set"  >> ${S}/.config
-       fi
-
-       sed -e '/CONFIG_AEABI/d' \
-           -e '/CONFIG_OABI_COMPAT=/d' \
-           -e '/CONFIG_CMDLINE=/d' \
-           -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
-           -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
-           -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
-           -e '/CONFIG_MTDRAM_ABS_POS=/d' \
-           '${WORKDIR}/defconfig-${VANILLA_VERSION}-${MACHINE}' >>'${S}/.config'
-
-       yes '' | oe_runmake oldconfig
-}
-
-###############################################################
-# put into deploy directory and append u-boot header
-#
-do_deploy() {
-       install -d ${DEPLOY_DIR_IMAGE}
-       install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
-       tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz -C ${D} lib
-       ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin
-       rm -f linux.bin.gz
-       gzip -9 linux.bin
-       ${STAGING_BINDIR_NATIVE}/uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "OpenMoko Kernel Image Neo1973(GTA01)" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}.bin
-       cd ${DEPLOY_DIR_IMAGE}
-       ln -sf uImage-${PV}-${PR}-${MACHINE}.bin uImage-${MACHINE}-latest.bin
-       rm -f linux.bin.gz
-}
-
-do_deploy[dirs] = "${S}"
-
-addtask prepatch before do_patch after do_unpack
-addtask deploy before do_package after do_install
-
diff --git a/meta/packages/linux/linux-gta01_2.6.21.6.bb b/meta/packages/linux/linux-gta01_2.6.21.6.bb
deleted file mode 100644 (file)
index 89dc720..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-require linux-gta01.inc
-
-SRC_URI += "svn://svn.openmoko.org/branches/src/target/kernel/2.6.21.x;module=patches;proto=http;rev=2832"
-SRC_URI += "file://fix-EVIOCGRAB-semantics.patch;patch=1"
-
-MOKOR = "moko11"
-PR = "${MOKOR}-r2"
-
-VANILLA_VERSION = "2.6.21.6"
-
diff --git a/meta/packages/linux/linux-openmoko.inc b/meta/packages/linux/linux-openmoko.inc
new file mode 100644 (file)
index 0000000..fc4a547
--- /dev/null
@@ -0,0 +1,9 @@
+# extra stuff we need for openmoko that is not in linux.inc
+
+do_deploy_append() {
+       mv ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz ${DEPLOY_DIR_IMAGE}/modules-${PV}-${PR}-${MACHINE_CLASS}.tgz
+       mv ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE_CLASS}.bin
+       rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.bin
+       ln -sf ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE_CLASS}.bin ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE_CLASS}-latest.bin
+}
+
similarity index 93%
rename from meta/packages/linux/linux-gta01/defconfig-2.6.21.6-fic-gta01
rename to meta/packages/linux/linux-openmoko/defconfig-2.6.22.5
index 7851fbe19d51739b1613d8a77c5dd8230c666a94..7aa23df77c91357484bb910cd4d383b03b3b1f8f 100644 (file)
@@ -1,15 +1,18 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21.3
-# Mon Jun 11 18:32:32 2007
+# Linux kernel version: 2.6.22.5
+# Wed Oct  3 13:55:25 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_MMU=y
 CONFIG_NO_IOPORT=y
 CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_GENERIC_IRQ_PROBE=y
@@ -45,6 +48,7 @@ CONFIG_SYSVIPC_SYSCTL=y
 # CONFIG_UTS_NS is not set
 # CONFIG_AUDIT is not set
 # CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_SYSFS_DEPRECATED is not set
 # CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
@@ -63,14 +67,19 @@ 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_SLAB=y
 CONFIG_VM_EVENT_COUNTERS=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
-# CONFIG_SLOB is not set
 
 #
 # Loadable module support
@@ -120,13 +129,14 @@ CONFIG_DEFAULT_IOSCHED="deadline"
 # 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_PNX4008 is not set
 # CONFIG_ARCH_PXA is not set
@@ -135,6 +145,7 @@ CONFIG_DEFAULT_IOSCHED="deadline"
 CONFIG_ARCH_S3C2410=y
 # CONFIG_ARCH_SHARK is not set
 # CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
 # CONFIG_ARCH_OMAP is not set
 CONFIG_PLAT_S3C24XX=y
 CONFIG_CPU_S3C244X=y
@@ -173,6 +184,7 @@ CONFIG_MACH_NEO1973_GTA01=y
 # S3C2412 Machines
 #
 # CONFIG_MACH_SMDK2413 is not set
+# CONFIG_MACH_SMDK2412 is not set
 # CONFIG_MACH_VSTMS is not set
 CONFIG_CPU_S3C2440=y
 CONFIG_S3C2440_DMA=y
@@ -188,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
@@ -225,6 +238,7 @@ CONFIG_ARM_THUMB=y
 #
 # Bus support
 #
+# CONFIG_ARCH_SUPPORTS_MSI is not set
 
 #
 # PCCARD (PCMCIA/CardBus) support
@@ -234,11 +248,11 @@ CONFIG_ARM_THUMB=y
 #
 # Kernel Features
 #
+# CONFIG_TICK_ONESHOT is not set
 CONFIG_PREEMPT=y
 CONFIG_NO_IDLE_HZ=y
 CONFIG_HZ=200
-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
@@ -257,7 +271,7 @@ CONFIG_ALIGNMENT_TRAP=y
 #
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=ttySAC0,115200n8  ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off   debug"
+CONFIG_CMDLINE="ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off"
 # CONFIG_XIP_KERNEL is not set
 CONFIG_KEXEC=y
 
@@ -269,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
 
 #
@@ -297,8 +312,7 @@ CONFIG_NET=y
 #
 # Networking options
 #
-# CONFIG_NETDEBUG is not set
-CONFIG_PACKET=y
+CONFIG_PACKET=m
 CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
@@ -340,14 +354,11 @@ CONFIG_INET_TCP_DIAG=y
 CONFIG_TCP_CONG_CUBIC=y
 CONFIG_DEFAULT_TCP_CONG="cubic"
 CONFIG_TCP_MD5SIG=y
-
-#
-# IP: Virtual Server Configuration
-#
 # CONFIG_IP_VS is not set
 CONFIG_IPV6=m
 # CONFIG_IPV6_PRIVACY is not set
 # CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
 CONFIG_INET6_AH=m
 CONFIG_INET6_ESP=m
 CONFIG_INET6_IPCOMP=m
@@ -373,8 +384,6 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK_ENABLED=m
-CONFIG_NF_CONNTRACK_SUPPORT=y
-# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
 CONFIG_NF_CONNTRACK=m
 CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
@@ -511,20 +520,8 @@ CONFIG_BRIDGE_EBT_REDIRECT=m
 CONFIG_BRIDGE_EBT_SNAT=m
 CONFIG_BRIDGE_EBT_LOG=m
 CONFIG_BRIDGE_EBT_ULOG=m
-
-#
-# 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=y
@@ -544,9 +541,6 @@ CONFIG_LLC=y
 #
 CONFIG_NET_SCHED=y
 CONFIG_NET_SCH_FIFO=y
-# CONFIG_NET_SCH_CLK_JIFFIES is not set
-CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
-# CONFIG_NET_SCH_CLK_CPU is not set
 
 #
 # Queueing/Scheduling
@@ -610,9 +604,18 @@ CONFIG_BT_HCIUSB_SCO=y
 # CONFIG_BT_HCIBPA10X is not set
 # CONFIG_BT_HCIBFUSB is not set
 # CONFIG_BT_HCIVHCI is not set
-# CONFIG_IEEE80211 is not set
+# CONFIG_AF_RXRPC is not set
 CONFIG_FIB_RULES=y
 
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+
 #
 # Device Drivers
 #
@@ -631,10 +634,6 @@ CONFIG_FW_LOADER=m
 # Connector - unified userspace <-> kernelspace linker
 #
 CONFIG_CONNECTOR=m
-
-#
-# Memory Technology Devices (MTD)
-#
 CONFIG_MTD=y
 # CONFIG_MTD_DEBUG is not set
 # CONFIG_MTD_CONCAT is not set
@@ -673,7 +672,6 @@ CONFIG_MTD_CFI_I2=y
 # CONFIG_MTD_RAM is not set
 # CONFIG_MTD_ROM is not set
 # CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_OBSOLETE_CHIPS is not set
 
 #
 # Mapping drivers for chip access
@@ -697,13 +695,10 @@ CONFIG_MTD_CFI_I2=y
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
 CONFIG_MTD_NAND=y
 CONFIG_MTD_NAND_VERIFY_WRITE=y
 # CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
 CONFIG_MTD_NAND_IDS=y
 CONFIG_MTD_NAND_S3C2410=y
 CONFIG_MTD_NAND_S3C2410_BBT=y
@@ -712,11 +707,13 @@ CONFIG_MTD_NAND_S3C2410_HWECC=y
 CONFIG_MTD_NAND_S3C2410_CLKSTOP=y
 # CONFIG_MTD_NAND_DISKONCHIP is not set
 # CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ONENAND is not set
 
 #
-# OneNAND Flash Device Drivers
+# UBI - Unsorted block images
 #
-# CONFIG_MTD_ONENAND is not set
+# CONFIG_MTD_UBI is not set
 
 #
 # Parallel port support
@@ -742,10 +739,6 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
 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 is not set
 
 #
@@ -775,6 +768,7 @@ CONFIG_CHR_DEV_SG=m
 # CONFIG_SCSI_CONSTANTS is not set
 # CONFIG_SCSI_LOGGING is not set
 CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_WAIT_SCAN=m
 
 #
 # SCSI Transports
@@ -790,10 +784,6 @@ CONFIG_SCSI_SCAN_ASYNC=y
 #
 # CONFIG_ISCSI_TCP is not set
 # CONFIG_SCSI_DEBUG is not set
-
-#
-# Serial ATA (prod) and Parallel ATA (experimental) drivers
-#
 # CONFIG_ATA is not set
 
 #
@@ -808,19 +798,7 @@ CONFIG_DM_SNAPSHOT=m
 # CONFIG_DM_MIRROR is not set
 # CONFIG_DM_ZERO is not set
 # CONFIG_DM_MULTIPATH is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# I2O device support
-#
+# CONFIG_DM_DELAY is not set
 
 #
 # Network device support
@@ -830,10 +808,6 @@ CONFIG_NETDEVICES=y
 # CONFIG_BONDING is not set
 # CONFIG_EQUALIZER is not set
 CONFIG_TUN=m
-
-#
-# PHY device support
-#
 # CONFIG_PHYLIB is not set
 
 #
@@ -845,27 +819,40 @@ CONFIG_MII=m
 # CONFIG_DM9000 is not set
 CONFIG_NET_PCI=y
 CONFIG_CS89x0=m
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
 
 #
-# Ethernet (1000 Mbit)
-#
-
-#
-# Ethernet (10000 Mbit)
-#
-
-#
-# Token Ring devices
+# Wireless LAN
 #
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
 
 #
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
-
-#
-# Wan interfaces
+# USB Network Adapters
 #
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET_MII=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
 # CONFIG_WAN is not set
 CONFIG_PPP=m
 CONFIG_PPP_MULTILINK=y
@@ -893,6 +880,7 @@ CONFIG_SLHC=m
 #
 CONFIG_INPUT=y
 # CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
 
 #
 # Userland interfaces
@@ -922,8 +910,10 @@ CONFIG_KEYBOARD_QT2410=y
 CONFIG_INPUT_MOUSE=y
 # CONFIG_MOUSE_PS2 is not set
 # CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
 # CONFIG_MOUSE_VSXXXAA is not set
 # CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
 CONFIG_INPUT_TOUCHSCREEN=y
 # CONFIG_TOUCHSCREEN_ADS7846 is not set
 CONFIG_TOUCHSCREEN_S3C2410=y
@@ -936,6 +926,7 @@ CONFIG_TOUCHSCREEN_S3C2410=y
 # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
 # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
 # CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
 # CONFIG_INPUT_MISC is not set
 
 #
@@ -975,10 +966,6 @@ CONFIG_UNIX98_PTYS=y
 # IPMI
 #
 # CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
 CONFIG_WATCHDOG=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
@@ -994,7 +981,6 @@ CONFIG_S3C2410_WATCHDOG=m
 # CONFIG_USBPCWATCHDOG is not set
 # CONFIG_HW_RANDOM is not set
 # CONFIG_NVRAM is not set
-# CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
 # CONFIG_RAW_DRIVER is not set
 
@@ -1003,11 +989,8 @@ CONFIG_S3C2410_WATCHDOG=m
 #
 # CONFIG_TCG_TPM is not set
 # CONFIG_TS0710_MUX is not set
-
-#
-# I2C support
-#
 CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_CHARDEV=y
 
 #
@@ -1020,11 +1003,13 @@ CONFIG_I2C_CHARDEV=y
 #
 # I2C Hardware Bus support
 #
+# CONFIG_I2C_GPIO is not set
 # CONFIG_I2C_OCORES is not set
 # CONFIG_I2C_PARPORT_LIGHT is not set
 CONFIG_I2C_S3C2410=y
+# CONFIG_I2C_SIMTEC is not set
 # CONFIG_I2C_STUB is not set
-# CONFIG_I2C_PCA_ISA is not set
+# CONFIG_I2C_TINY_USB is not set
 
 #
 # Miscellaneous I2C Chip support
@@ -1062,19 +1047,17 @@ CONFIG_SPI_S3C24XX_GPIO=y
 # SPI Protocol Masters
 #
 # CONFIG_SPI_AT25 is not set
+# CONFIG_SPI_SPIDEV is not set
 CONFIG_SPI_SLAVE_JBT6K74=y
 
 #
 # Dallas's 1-wire bus
 #
 # CONFIG_W1 is not set
-
-#
-# Hardware Monitoring support
-#
 CONFIG_HWMON=y
 # CONFIG_HWMON_VID is not set
 # CONFIG_SENSORS_ABITUGURU is not set
+# CONFIG_SENSORS_AD7418 is not set
 # CONFIG_SENSORS_ADM1021 is not set
 # CONFIG_SENSORS_ADM1025 is not set
 # CONFIG_SENSORS_ADM1026 is not set
@@ -1102,6 +1085,7 @@ CONFIG_HWMON=y
 # CONFIG_SENSORS_LM90 is not set
 # CONFIG_SENSORS_LM92 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_SMSC47M1 is not set
@@ -1149,11 +1133,8 @@ CONFIG_LEDS_TRIGGER_TIMER=y
 # Multimedia devices
 #
 # CONFIG_VIDEO_DEV 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
 
 #
@@ -1163,12 +1144,23 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_GTA01=y
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_VGASTATE is not set
 CONFIG_FB=y
 # CONFIG_FIRMWARE_EDID is not set
 # CONFIG_FB_DDC is not set
 CONFIG_FB_CFB_FILLRECT=y
 CONFIG_FB_CFB_COPYAREA=y
 CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=y
 # CONFIG_FB_SVGALIB is not set
 # CONFIG_FB_MACMODES is not set
 # CONFIG_FB_BACKLIGHT is not set
@@ -1180,7 +1172,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
 #
 # CONFIG_FB_S1D13XXX is not set
 CONFIG_FB_S3C2410=y
-CONFIG_FB_S3C2410_DEBUG=y
+# CONFIG_FB_S3C2410_DEBUG is not set
 CONFIG_GLAMO=y
 CONFIG_FB_GLAMO=y
 CONFIG_GLAMO_SPI_GPIO=y
@@ -1205,14 +1197,7 @@ CONFIG_FONT_6x11=y
 # CONFIG_FONT_SUN8x16 is not set
 # CONFIG_FONT_SUN12x22 is not set
 # CONFIG_FONT_10x18 is not set
-
-#
-# Logo configuration
-#
 # 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
@@ -1254,37 +1239,20 @@ CONFIG_SND_VERBOSE_PROCFS=y
 # USB devices
 #
 CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB_CAIAQ is not set
 
 #
-# SoC audio support
+# System on Chip audio support
 #
 CONFIG_SND_SOC=y
-
-#
-# SoC Platforms
-#
-
-#
-# SoC Audio for the Atmel AT91
-#
-
-#
-# SoC Audio for the Freescale i.MX
-#
-
-#
-# SoC Audio for the Intel PXA2xx
-#
-
-#
-# SoC Audio for the Samsung S3C24XX
-#
 CONFIG_SND_S3C24XX_SOC=m
 CONFIG_SND_S3C24XX_SOC_I2S=m
-CONFIG_SND_S3C24XX_SOC_SMDK2440=m
 CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=m
+
+#
+# SoC Audio support for SuperH
+#
 CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_UDA1380=m
 
 #
 # Open Sound System
@@ -1297,6 +1265,20 @@ CONFIG_SND_SOC_UDA1380=m
 CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+# CONFIG_USB_HIDINPUT_POWERBOOK is not set
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+
 #
 # USB support
 #
@@ -1310,6 +1292,7 @@ CONFIG_USB=y
 # Miscellaneous USB options
 #
 CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
 # CONFIG_USB_DYNAMIC_MINORS is not set
 # CONFIG_USB_SUSPEND is not set
 # CONFIG_USB_OTG is not set
@@ -1350,64 +1333,11 @@ CONFIG_USB_STORAGE_ALAUDA=y
 CONFIG_USB_STORAGE_KARMA=y
 CONFIG_USB_LIBUSUAL=y
 
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-# CONFIG_USB_HIDINPUT_POWERBOOK is not set
-# CONFIG_HID_FF is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-# CONFIG_USB_AIPTEK is not set
-# CONFIG_USB_WACOM is not set
-# CONFIG_USB_ACECAD is not set
-# CONFIG_USB_KBTAB is not set
-# CONFIG_USB_POWERMATE is not set
-# CONFIG_USB_TOUCHSCREEN is not set
-# CONFIG_USB_YEALINK is not set
-# CONFIG_USB_XPAD is not set
-# CONFIG_USB_ATI_REMOTE is not set
-# CONFIG_USB_ATI_REMOTE2 is not set
-# CONFIG_USB_KEYSPAN_REMOTE is not set
-# CONFIG_USB_APPLETOUCH is not set
-CONFIG_USB_GTCO=m
-
 #
 # USB Imaging devices
 #
 # CONFIG_USB_MDC800 is not set
 # CONFIG_USB_MICROTEK is not set
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET_MII=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
 CONFIG_USB_MON=y
 
 #
@@ -1503,6 +1433,7 @@ CONFIG_USB_IOWARRIOR=m
 CONFIG_USB_GADGET=y
 # CONFIG_USB_GADGET_DEBUG_FILES is not set
 CONFIG_USB_GADGET_SELECTED=y
+# 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_GOKU is not set
@@ -1521,14 +1452,19 @@ CONFIG_USB_ETH_RNDIS=y
 # CONFIG_USB_FILE_STORAGE is not set
 # CONFIG_USB_G_SERIAL is not set
 # CONFIG_USB_MIDI_GADGET is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
 
 #
-# MMC/SD Card support
+# MMC/SD Card Drivers
 #
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
 CONFIG_MMC_BLOCK=y
-CONFIG_MMC_S3C=m
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_S3C=y
 
 #
 # Real Time Clock
@@ -1536,7 +1472,7 @@ CONFIG_MMC_S3C=m
 CONFIG_RTC_LIB=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE=rtc0
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
 CONFIG_RTC_DEBUG=y
 
 #
@@ -1546,26 +1482,40 @@ CONFIG_RTC_INTF_SYSFS=y
 CONFIG_RTC_INTF_PROC=y
 CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
 
 #
-# RTC drivers
+# I2C RTC drivers
 #
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_X1205 is not set
 # CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
 # CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
 # CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+
+#
+# SPI RTC drivers
+#
 # CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-CONFIG_RTC_DRV_S3C=m
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_TEST is not set
 # CONFIG_RTC_DRV_MAX6902 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
 # CONFIG_RTC_DRV_V3020 is not set
 
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_S3C=m
+
 #
 # File systems
 #
@@ -1635,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
@@ -1679,6 +1629,7 @@ CONFIG_EXPORTFS=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=y
 CONFIG_SUNRPC_GSS=y
+# CONFIG_SUNRPC_BIND34 is not set
 CONFIG_RPCSEC_GSS_KRB5=y
 # CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
@@ -1764,16 +1715,17 @@ CONFIG_MAGIC_SYSRQ=y
 # CONFIG_HEADERS_CHECK is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_LOG_BUF_SHIFT=14
 CONFIG_DETECT_SOFTLOCKUP=y
 # CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
+# CONFIG_TIMER_STATS is not set
 # CONFIG_DEBUG_SLAB is not set
 CONFIG_DEBUG_PREEMPT=y
 # CONFIG_DEBUG_RT_MUTEXES is not set
 # CONFIG_RT_MUTEX_TESTER is not set
 # CONFIG_DEBUG_SPINLOCK is not set
 # CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
 # CONFIG_DEBUG_KOBJECT is not set
@@ -1821,6 +1773,7 @@ CONFIG_CRYPTO_ECB=m
 CONFIG_CRYPTO_CBC=y
 CONFIG_CRYPTO_PCBC=m
 CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_CRYPTD is not set
 CONFIG_CRYPTO_DES=y
 CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_BLOWFISH=m
@@ -1850,6 +1803,7 @@ CONFIG_CRYPTO_TEST=m
 CONFIG_BITREVERSE=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=m
+# CONFIG_CRC_ITU_T is not set
 CONFIG_CRC32=y
 CONFIG_LIBCRC32C=m
 CONFIG_ZLIB_INFLATE=y
@@ -1860,3 +1814,4 @@ CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
 CONFIG_PLIST=y
 CONFIG_HAS_IOMEM=y
+CONFIG_HAS_DMA=y
diff --git a/meta/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch b/meta/packages/linux/linux-openmoko/fix-EVIOCGRAB-semantics-2.6.22.5.patch
new file mode 100644 (file)
index 0000000..cc74c0e
--- /dev/null
@@ -0,0 +1,91 @@
+Index: linux-2.6.22.5/drivers/input/evdev.c
+===================================================================
+--- linux-2.6.22.5.orig/drivers/input/evdev.c
++++ linux-2.6.22.5/drivers/input/evdev.c
+@@ -28,7 +28,7 @@ struct evdev {
+       char name[16];
+       struct input_handle handle;
+       wait_queue_head_t wait;
+-      struct evdev_client *grab;
++  int grab;
+       struct list_head client_list;
+ };
+@@ -36,6 +36,7 @@ struct evdev_client {
+       struct input_event buffer[EVDEV_BUFFER_SIZE];
+       int head;
+       int tail;
++  int grab;
+       struct fasync_struct *fasync;
+       struct evdev *evdev;
+       struct list_head node;
+@@ -48,8 +49,7 @@ static void evdev_event(struct input_han
+       struct evdev *evdev = handle->private;
+       struct evdev_client *client;
+-      if (evdev->grab) {
+-              client = evdev->grab;
++  list_for_each_entry(client, &evdev->client_list, node) {
+               do_gettimeofday(&client->buffer[client->head].time);
+               client->buffer[client->head].type = type;
+@@ -58,17 +58,7 @@ static void evdev_event(struct input_han
+               client->head = (client->head + 1) & (EVDEV_BUFFER_SIZE - 1);
+               kill_fasync(&client->fasync, SIGIO, POLL_IN);
+-      } else
+-              list_for_each_entry(client, &evdev->client_list, node) {
+-
+-                      do_gettimeofday(&client->buffer[client->head].time);
+-                      client->buffer[client->head].type = type;
+-                      client->buffer[client->head].code = code;
+-                      client->buffer[client->head].value = value;
+-                      client->head = (client->head + 1) & (EVDEV_BUFFER_SIZE - 1);
+-
+-                      kill_fasync(&client->fasync, SIGIO, POLL_IN);
+-              }
++      }
+       wake_up_interruptible(&evdev->wait);
+ }
+@@ -105,9 +95,10 @@ static int evdev_release(struct inode *i
+       struct evdev_client *client = file->private_data;
+       struct evdev *evdev = client->evdev;
+-      if (evdev->grab == client) {
+-              input_release_device(&evdev->handle);
+-              evdev->grab = NULL;
++      if (client->grab) {
++              if(!--evdev->grab && evdev->exist)
++                      input_release_device(&evdev->handle);
++              client->grab = 0;
+       }
+       evdev_fasync(-1, file, 0);
+@@ -488,17 +479,19 @@ static long evdev_ioctl_handler(struct f
+               case EVIOCGRAB:
+                       if (p) {
+-                              if (evdev->grab)
+-                                      return -EBUSY;
+-                              if (input_grab_device(&evdev->handle))
++                              if (client->grab)
+                                       return -EBUSY;
+-                              evdev->grab = client;
++                              if (!evdev->grab++)
++                                      if (input_grab_device(&evdev->handle))
++                                              return -EBUSY;
++                              client->grab = 0;
+                               return 0;
+                       } else {
+-                              if (evdev->grab != client)
++                              if (!client->grab)
+                                       return -EINVAL;
+-                              input_release_device(&evdev->handle);
+-                              evdev->grab = NULL;
++                              if (!--evdev->grab)
++                                      input_release_device(&evdev->handle);
++                              client->grab = 0;
+                               return 0;
+                       }
diff --git a/meta/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch b/meta/packages/linux/linux-openmoko/fix-gta01-flowcontrol2-2.6.22.5.patch
new file mode 100644 (file)
index 0000000..ddb58f0
--- /dev/null
@@ -0,0 +1,193 @@
+--- linux-2.6.22.5/arch/arm/common/gta01_pm_gsm.c.orig 2007-09-27 11:23:20.000000000 -0500
++++ linux-2.6.22.5/arch/arm/common/gta01_pm_gsm.c      2007-09-27 21:09:00.000000000 -0500
+@@ -23,6 +23,9 @@
+ #include <asm/arch/gta01.h>
+ #include <asm/arch/gta02.h>
++#include <linux/serial_core.h>
++void s3c24xx_set_flow_control(struct uart_port *port, int fc_on);
++
+ struct gta01pm_priv {
+       int gpio_ngsm_en;
+       struct console *con;
+@@ -49,6 +52,23 @@
+ static ssize_t gsm_read(struct device *dev, struct device_attribute *attr,
+                       char *buf)
+ {
++      struct uart_driver *udrive = NULL;
++      struct uart_state *ustate = NULL;
++      struct uart_port *uport = NULL;
++
++      if (gta01_gsm.con) {
++              udrive = gta01_gsm.con->data;
++              if (udrive) {
++                      ustate = udrive->state;
++                      if (ustate) {
++                              uport = ustate->port;
++                      }
++              }
++      }
++      printk("gsm: gsm_read of \"%s\"\n", attr->attr.name);
++      printk("gsm: con=%p udrive=%p ustate=%p uport=%p\n",
++             gta01_gsm.con, udrive, ustate, uport);
++
+       if (!strcmp(attr->attr.name, "power_on")) {
+               if (s3c2410_gpio_getpin(GTA01_GPIO_MODEM_ON))
+                       goto out_1;
+@@ -58,6 +78,24 @@
+       } else if (!strcmp(attr->attr.name, "download")) {
+               if (s3c2410_gpio_getpin(GTA01_GPIO_MODEM_DNLOAD))
+                       goto out_1;
++      } else if (!strcmp(attr->attr.name, "flowcontrol")) {
++              if (uport) {
++                      if (uport->unused[2] & 0x2) {
++                              if (uport->unused[2] & 0x1) {
++                                      printk("gsm: flow control allowed and on\n");
++                                      goto out_1;
++                              } else {
++                                      printk("gsm: flow control allowed and not on\n");
++                              }
++                      } else {
++                              if (uport->unused[2] & 0x1)
++                                      printk("gsm: flow control not allowed, "
++                                             "but is pending\n");
++                              else
++                                      printk("gsm: flow control not allowed, "
++                                             "not pending\n");
++                      }
++              }
+       }
+       return strlcpy(buf, "0\n", 3);
+@@ -68,10 +106,26 @@
+ static ssize_t gsm_write(struct device *dev, struct device_attribute *attr,
+                        const char *buf, size_t count)
+ {
++      struct uart_driver *udrive = NULL;
++      struct uart_state *ustate = NULL;
++      struct uart_port *uport = NULL;
++      static int was_on = 0;
+       unsigned long on = simple_strtoul(buf, NULL, 10);
++      if (gta01_gsm.con) {
++              udrive = gta01_gsm.con->data;
++              if (udrive) {
++                      ustate = udrive->state;
++                      if (ustate) {
++                              uport = ustate->port;
++                      }
++              }
++      }
++      printk("gsm: con=%p udrive=%p ustate=%p uport=%p\n",
++             gta01_gsm.con, udrive, ustate, uport);
++
+       if (!strcmp(attr->attr.name, "power_on")) {
+-              if (on) {
++              if (on && !was_on) {
+                       if (gta01_gsm.con) {
+                               dev_info(dev, "powering up GSM, thus "
+                                        "disconnecting serial console\n");
+@@ -83,7 +137,24 @@
+                               s3c2410_gpio_setpin(gta01_gsm.gpio_ngsm_en, 0);
+                       s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 1);
+-              } else {
++
++                      if (uport) {
++                              /* set any pending flow-control mode */
++                              uport->unused[2] |= 0x2;
++                              s3c24xx_set_flow_control(uport,
++                                                       (uport->unused[2] & 0x1));
++                              dev_info(dev, "flow control allowed\n");
++                      }
++
++                      was_on = 1;
++
++              } else if (!on && was_on) {
++                      if (uport) {
++                              uport->unused[2] &= ~0x2;
++                              s3c24xx_set_flow_control(uport, 0);
++                              dev_info(dev, "flow control not allowed\n");
++                      }
++
+                       s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 0);
+                       if (gta01_gsm.gpio_ngsm_en)
+@@ -95,6 +166,8 @@
+                               dev_info(dev, "powered down GSM, thus enabling "
+                                        "serial console\n");
+                       }
++
++                      was_on = 0;
+               }
+       } else if (!strcmp(attr->attr.name, "reset")) {
+               s3c2410_gpio_setpin(GTA01_GPIO_MODEM_RST, on);
+@@ -105,6 +178,7 @@
+       return count;
+ }
++static DEVICE_ATTR(flowcontrol, 0644, gsm_read, gsm_write);
+ static DEVICE_ATTR(power_on, 0644, gsm_read, gsm_write);
+ static DEVICE_ATTR(reset, 0644, gsm_read, gsm_write);
+ static DEVICE_ATTR(download, 0644, gsm_read, gsm_write);
+@@ -136,6 +210,7 @@
+ #endif
+ static struct attribute *gta01_gsm_sysfs_entries[] = {
++      &dev_attr_flowcontrol.attr,
+       &dev_attr_power_on.attr,
+       &dev_attr_reset.attr,
+       NULL,
+--- linux-2.6.22.5/drivers/serial/s3c2410.c.orig       2007-09-27 11:23:27.000000000 -0500
++++ linux-2.6.22.5/drivers/serial/s3c2410.c    2007-09-27 21:07:21.000000000 -0500
+@@ -80,6 +80,8 @@
+ #include <asm/arch/regs-serial.h>
+ #include <asm/arch/regs-gpio.h>
++#include <asm/mach-types.h>
++#include <asm/arch/gta01.h>
+ /* structures */
+@@ -729,6 +731,17 @@
+       return best->quot;
+ }
++/* This routine is called whenever the gta01 modem/console switches */
++void s3c24xx_set_flow_control(struct uart_port *port, int fc_on)
++{
++      unsigned int umcon;
++      if (machine_is_neo1973_gta01() && port) {
++              umcon = (fc_on) ? S3C2410_UMCOM_AFC : 0;
++              wr_regl(port, S3C2410_UMCON, umcon);
++      }
++}
++EXPORT_SYMBOL(s3c24xx_set_flow_control);
++
+ static void s3c24xx_serial_set_termios(struct uart_port *port,
+                                      struct ktermios *termios,
+                                      struct ktermios *old)
+@@ -803,6 +816,23 @@
+       umcon = (termios->c_cflag & CRTSCTS) ? S3C2410_UMCOM_AFC : 0;
++        /*
++       * Custom handling of flow control on hwport 0 for the GTA01:
++       *  Save the desired state for flow control, but if the port
++       *  is being used as a console, then do not actually enable
++       *  flow control unless the flag permiting us to do so is set.
++       */
++      if (machine_is_neo1973_gta01() && (cfg->hwport == 0)) {
++              if (umcon)
++                      port->unused[2] |= 0x1;
++              else
++                      port->unused[2] &= ~0x1;
++              if (port->cons && (port->cons->index >= 0)) {
++                      if (!(port->unused[2] & 0x2))
++                              umcon = 0;
++              }
++      }
++
+       if (termios->c_cflag & PARENB) {
+               if (termios->c_cflag & PARODD)
+                       ulcon |= S3C2410_LCON_PODD;
diff --git a/meta/packages/linux/linux-openmoko_2.6.22.5.bb b/meta/packages/linux/linux-openmoko_2.6.22.5.bb
new file mode 100644 (file)
index 0000000..348537e
--- /dev/null
@@ -0,0 +1,63 @@
+require linux.inc
+require linux-openmoko.inc
+
+DESCRIPTION = "Linux 2.6.x kernel for FIC SmartPhones shipping w/ OpenMoko"
+VANILLA_VERSION = "2.6.22"
+KERNEL_RELEASE = "2.6.22.5"
+
+# If you use a rc, you will need to use this:
+#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}-moko11+svnr${SRCREV}"
+
+PV = "${KERNEL_RELEASE}-moko11+svnr${SRCREV}"
+PR = "r6"
+
+KERNEL_IMAGETYPE = "uImage"
+UBOOT_ENTRYPOINT = "30008000"
+
+##############################################################
+# source and patches
+#
+SRCREV_FORMAT = "patches"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
+           ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-${KERNEL_RELEASE}.bz2;patch=1 \
+              svn://svn.openmoko.org/trunk/src/target/kernel;module=patches;proto=http \
+           file://fix-EVIOCGRAB-semantics-2.6.22.5.patch;patch=1 \
+           file://fix-gta01-flowcontrol2-2.6.22.5.patch;patch=1 \
+           file://defconfig-${KERNEL_RELEASE}"
+
+S = "${WORKDIR}/linux-${VANILLA_VERSION}"
+
+##############################################################
+# kernel image resides on a seperate flash partition (for now)
+#
+FILES_kernel-image = ""
+ALLOW_EMPTY = "1"
+
+COMPATIBLE_HOST = "arm.*-linux"
+COMPATIBLE_MACHINE = 'fic-gta01|fic-gta02'
+
+CMDLINE = "unused -- bootloader passes ATAG list"
+
+###############################################################
+# module configs specific to this kernel
+#
+
+# usb
+module_autoload_ohci-hcd = "ohci-hcd"
+module_autoload_hci_usb = "hci_usb"
+module_autoload_g_ether = "g_ether"
+# audio
+module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753"
+# sd/mmc
+module_autoload_s3cmci = "s3cmci"
+
+do_prepatch() {
+        mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
+        mv patches patches.openmoko
+        mv .pc .pc.old
+        mv ${WORKDIR}/defconfig-${KERNEL_RELEASE} ${WORKDIR}/defconfig
+}
+
+addtask prepatch after do_unpack before do_patch
+