aboutsummaryrefslogtreecommitdiffstats
path: root/packages/linux/logicpd-pxa270-2.6.17-rc5
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /packages/linux/logicpd-pxa270-2.6.17-rc5
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
downloadopenembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.gz
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'packages/linux/logicpd-pxa270-2.6.17-rc5')
-rw-r--r--packages/linux/logicpd-pxa270-2.6.17-rc5/defconfig971
-rw-r--r--packages/linux/logicpd-pxa270-2.6.17-rc5/linux-2.6.17-rc5.patch2183
-rw-r--r--packages/linux/logicpd-pxa270-2.6.17-rc5/ucb1400-ac97-audio.patch86
-rw-r--r--packages/linux/logicpd-pxa270-2.6.17-rc5/ucb1400-touchscreen.patch739
4 files changed, 0 insertions, 3979 deletions
diff --git a/packages/linux/logicpd-pxa270-2.6.17-rc5/defconfig b/packages/linux/logicpd-pxa270-2.6.17-rc5/defconfig
deleted file mode 100644
index 38b5bf8ec8..0000000000
--- a/packages/linux/logicpd-pxa270-2.6.17-rc5/defconfig
+++ /dev/null
@@ -1,971 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.17-rc5
-# Tue Oct 31 10:23:39 2006
-#
-CONFIG_ARM=y
-CONFIG_MMU=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ARCH_MTD_XIP=y
-CONFIG_VECTORS_BASE=0xffff0000
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
-# CONFIG_RELAY is not set
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_UID16=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_EMBEDDED is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SHMEM=y
-CONFIG_SLAB=y
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-# CONFIG_SLOB is not set
-CONFIG_OBSOLETE_INTERMODULE=y
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_KMOD is not set
-
-#
-# Block layer
-#
-# CONFIG_BLK_DEV_IO_TRACE is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_DEFAULT_AS=y
-# CONFIG_DEFAULT_DEADLINE is not set
-# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="anticipatory"
-
-#
-# System Type
-#
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_IOP3XX is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_L7200 is not set
-CONFIG_ARCH_PXA=y
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# 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_VERSATILE is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_AAEC2000 is not set
-# CONFIG_ARCH_AT91RM9200 is not set
-
-#
-# Intel PXA2xx Implementations
-#
-# CONFIG_ARCH_LUBBOCK is not set
-CONFIG_MACH_LOGICPD_PXA270=y
-# CONFIG_MACH_MAINSTONE is not set
-# CONFIG_ARCH_PXA_IDP is not set
-# CONFIG_PXA_SHARPSL is not set
-CONFIG_PXA27x=y
-CONFIG_IWMMXT=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_XSCALE=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_TLB_V4WBI=y
-
-#
-# Processor Features
-#
-# CONFIG_ARM_THUMB is not set
-CONFIG_XSCALE_PMU=y
-
-#
-# Bus support
-#
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-# CONFIG_PREEMPT is not set
-# CONFIG_NO_IDLE_HZ is not set
-CONFIG_HZ=100
-# CONFIG_AEABI is not set
-# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-# CONFIG_SPARSEMEM_STATIC is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4096
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=jffs2 ip=dhcp console=ttyS0,115200 mem=64M"
-# CONFIG_XIP_KERNEL is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_NWFPE_XP is not set
-# CONFIG_FPE_FASTFPE is not set
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_ARTHUR is not set
-
-#
-# Power management options
-#
-# CONFIG_PM is not set
-# CONFIG_APM is not set
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-# CONFIG_NETDEBUG is not set
-# CONFIG_PACKET is not set
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_IP_PNP_BOOTP is not set
-# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_BIC=y
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-# CONFIG_NETFILTER 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
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_IEEE80211 is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-
-#
-# Connector - unified userspace <-> kernelspace linker
-#
-# CONFIG_CONNECTOR is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-CONFIG_MTD_CFI_NOSWAP=y
-# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_GEOMETRY=y
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-# CONFIG_MTD_CFI_I1 is not set
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_OTP is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=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
-# CONFIG_MTD_XIP is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PHYSMAP is not set
-CONFIG_MTD_LOGICPD_PXA270=y
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-# CONFIG_MTD_SHARP_SL is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# 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 is not set
-
-#
-# OneNAND Flash Device Drivers
-#
-# CONFIG_MTD_ONENAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-CONFIG_BLK_DEV_LOGICPD_CF=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-CONFIG_IDE=y
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_BLK_DEV_IDEDISK=y
-# CONFIG_IDEDISK_MULTI_MODE is not set
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-
-#
-# IDE chipset support/bugfixes
-#
-# CONFIG_IDE_GENERIC is not set
-# CONFIG_IDE_ARM is not set
-# CONFIG_BLK_DEV_IDEDMA is not set
-# CONFIG_IDEDMA_AUTO is not set
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-# CONFIG_SCSI 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_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-
-#
-# PHY device support
-#
-# CONFIG_PHYLIB is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-CONFIG_SMC91X=y
-# CONFIG_DM9000 is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-
-#
-# Ethernet (10000 Mbit)
-#
-
-#
-# Token Ring devices
-#
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_UCB1400=y
-CONFIG_TOUCHSCREEN_UCB1400=m
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_SERPORT is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_PXA=y
-CONFIG_SERIAL_PXA_CONSOLE=y
-CONFIG_SERIAL_CORE=y
-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_NVRAM is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-
-#
-# I2C support
-#
-# CONFIG_I2C is not set
-
-#
-# SPI support
-#
-# CONFIG_SPI is not set
-# CONFIG_SPI_MASTER is not set
-
-#
-# Dallas's 1-wire bus
-#
-# CONFIG_W1 is not set
-
-#
-# Hardware Monitoring support
-#
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Misc devices
-#
-
-#
-# LED devices
-#
-# CONFIG_NEW_LEDS is not set
-
-#
-# LED drivers
-#
-
-#
-# LED Triggers
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-CONFIG_VIDEO_V4L2=y
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-
-#
-# Graphics support
-#
-CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_MACMODES is not set
-CONFIG_FB_FIRMWARE_EDID=y
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_PXA=y
-# CONFIG_FB_PXA_PARAMETERS is not set
-# CONFIG_FB_PXA_LPD_LQ64D343 is not set
-# CONFIG_FB_PXA_LPD_LQ035Q7DB02 is not set
-# CONFIG_FB_PXA_LPD_LQ057Q3DC02 is not set
-CONFIG_FB_PXA_LPD_LQ10D368=y
-# CONFIG_FB_VIRTUAL is not set
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-
-#
-# Logo configuration
-#
-CONFIG_LOGO=y
-CONFIG_LOGO_LINUX_MONO=y
-CONFIG_LOGO_LINUX_VGA16=y
-CONFIG_LOGO_LINUX_CLUT224=y
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Sound
-#
-CONFIG_SOUND=m
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-# CONFIG_SND_DYNAMIC_MINORS is not set
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_AC97_BUS=m
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# ALSA ARM devices
-#
-CONFIG_SND_PXA2XX_PCM=m
-CONFIG_SND_PXA2XX_AC97=m
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-# CONFIG_USB_ARCH_HAS_EHCI is not set
-# CONFIG_USB is not set
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# Real Time Clock
-#
-CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_CONFIGFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_SUMMARY is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-# CONFIG_NFS_V4 is not set
-# CONFIG_NFS_DIRECTIO is not set
-# CONFIG_NFSD is not set
-CONFIG_ROOT_NFS=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-# CONFIG_SMB_FS is not set
-# CONFIG_CIFS is not set
-# 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
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_UTF8 is not set
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_FS is not set
-# CONFIG_DEBUG_VM is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_UNWIND_INFO is not set
-CONFIG_FORCED_INLINING=y
-# CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_DEBUG_USER=y
-# CONFIG_DEBUG_WAITQ is not set
-CONFIG_DEBUG_ERRORS=y
-CONFIG_DEBUG_LL=y
-# CONFIG_DEBUG_ICEDCC is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-# CONFIG_CRYPTO is not set
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-CONFIG_CRC32=y
-# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/linux/logicpd-pxa270-2.6.17-rc5/linux-2.6.17-rc5.patch b/packages/linux/logicpd-pxa270-2.6.17-rc5/linux-2.6.17-rc5.patch
deleted file mode 100644
index 074f6e123d..0000000000
--- a/packages/linux/logicpd-pxa270-2.6.17-rc5/linux-2.6.17-rc5.patch
+++ /dev/null
@@ -1,2183 +0,0 @@
-Index: arch/arm/configs/lpd270_defconfig
-===================================================================
-RCS file: arch/arm/configs/lpd270_defconfig
-diff -N arch/arm/configs/lpd270_defconfig
-*** /dev/null 1 Jan 1970 00:00:00 -0000
---- arch/arm/configs/lpd270_defconfig 1 Jun 2006 17:31:13 -0000 1.3
-***************
-*** 0 ****
---- 1,926 ----
-+ #
-+ # Automatically generated make config: don't edit
-+ # Linux kernel version: 2.6.17-rc5
-+ # Tue May 30 12:40:27 2006
-+ #
-+ CONFIG_ARM=y
-+ CONFIG_MMU=y
-+ CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+ CONFIG_GENERIC_HWEIGHT=y
-+ CONFIG_GENERIC_CALIBRATE_DELAY=y
-+ CONFIG_ARCH_MTD_XIP=y
-+ CONFIG_VECTORS_BASE=0xffff0000
-+
-+ #
-+ # Code maturity level options
-+ #
-+ CONFIG_EXPERIMENTAL=y
-+ CONFIG_BROKEN_ON_SMP=y
-+ CONFIG_INIT_ENV_ARG_LIMIT=32
-+
-+ #
-+ # General setup
-+ #
-+ CONFIG_LOCALVERSION=""
-+ CONFIG_LOCALVERSION_AUTO=y
-+ CONFIG_SWAP=y
-+ CONFIG_SYSVIPC=y
-+ # CONFIG_POSIX_MQUEUE is not set
-+ # CONFIG_BSD_PROCESS_ACCT is not set
-+ CONFIG_SYSCTL=y
-+ # CONFIG_AUDIT is not set
-+ # CONFIG_IKCONFIG is not set
-+ # CONFIG_RELAY is not set
-+ CONFIG_INITRAMFS_SOURCE=""
-+ CONFIG_UID16=y
-+ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-+ # CONFIG_EMBEDDED is not set
-+ CONFIG_KALLSYMS=y
-+ # CONFIG_KALLSYMS_ALL is not set
-+ # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+ CONFIG_HOTPLUG=y
-+ CONFIG_PRINTK=y
-+ CONFIG_BUG=y
-+ CONFIG_ELF_CORE=y
-+ CONFIG_BASE_FULL=y
-+ CONFIG_FUTEX=y
-+ CONFIG_EPOLL=y
-+ CONFIG_SHMEM=y
-+ CONFIG_SLAB=y
-+ # CONFIG_TINY_SHMEM is not set
-+ CONFIG_BASE_SMALL=0
-+ # CONFIG_SLOB is not set
-+ CONFIG_OBSOLETE_INTERMODULE=y
-+
-+ #
-+ # Loadable module support
-+ #
-+ CONFIG_MODULES=y
-+ # CONFIG_MODULE_UNLOAD is not set
-+ # CONFIG_MODVERSIONS is not set
-+ # CONFIG_MODULE_SRCVERSION_ALL is not set
-+ # CONFIG_KMOD is not set
-+
-+ #
-+ # Block layer
-+ #
-+ # CONFIG_BLK_DEV_IO_TRACE is not set
-+
-+ #
-+ # IO Schedulers
-+ #
-+ CONFIG_IOSCHED_NOOP=y
-+ CONFIG_IOSCHED_AS=y
-+ CONFIG_IOSCHED_DEADLINE=y
-+ CONFIG_IOSCHED_CFQ=y
-+ CONFIG_DEFAULT_AS=y
-+ # CONFIG_DEFAULT_DEADLINE is not set
-+ # CONFIG_DEFAULT_CFQ is not set
-+ # CONFIG_DEFAULT_NOOP is not set
-+ CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+ #
-+ # System Type
-+ #
-+ # CONFIG_ARCH_CLPS7500 is not set
-+ # CONFIG_ARCH_CLPS711X is not set
-+ # CONFIG_ARCH_CO285 is not set
-+ # CONFIG_ARCH_EBSA110 is not set
-+ # CONFIG_ARCH_EP93XX is not set
-+ # CONFIG_ARCH_FOOTBRIDGE is not set
-+ # CONFIG_ARCH_INTEGRATOR is not set
-+ # CONFIG_ARCH_IOP3XX is not set
-+ # CONFIG_ARCH_IXP4XX is not set
-+ # CONFIG_ARCH_IXP2000 is not set
-+ # CONFIG_ARCH_IXP23XX is not set
-+ # CONFIG_ARCH_L7200 is not set
-+ CONFIG_ARCH_PXA=y
-+ # CONFIG_ARCH_RPC is not set
-+ # CONFIG_ARCH_SA1100 is not set
-+ # 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_VERSATILE is not set
-+ # CONFIG_ARCH_REALVIEW is not set
-+ # CONFIG_ARCH_IMX is not set
-+ # CONFIG_ARCH_H720X is not set
-+ # CONFIG_ARCH_AAEC2000 is not set
-+ # CONFIG_ARCH_AT91RM9200 is not set
-+
-+ #
-+ # Intel PXA2xx Implementations
-+ #
-+ # CONFIG_ARCH_LUBBOCK is not set
-+ CONFIG_MACH_LOGICPD_PXA270=y
-+ # CONFIG_MACH_MAINSTONE is not set
-+ # CONFIG_ARCH_PXA_IDP is not set
-+ # CONFIG_PXA_SHARPSL is not set
-+ CONFIG_PXA27x=y
-+ CONFIG_IWMMXT=y
-+
-+ #
-+ # Processor Type
-+ #
-+ CONFIG_CPU_32=y
-+ CONFIG_CPU_XSCALE=y
-+ CONFIG_CPU_32v5=y
-+ CONFIG_CPU_ABRT_EV5T=y
-+ CONFIG_CPU_CACHE_VIVT=y
-+ CONFIG_CPU_TLB_V4WBI=y
-+
-+ #
-+ # Processor Features
-+ #
-+ # CONFIG_ARM_THUMB is not set
-+ CONFIG_XSCALE_PMU=y
-+
-+ #
-+ # Bus support
-+ #
-+
-+ #
-+ # PCCARD (PCMCIA/CardBus) support
-+ #
-+ # CONFIG_PCCARD is not set
-+
-+ #
-+ # Kernel Features
-+ #
-+ # CONFIG_PREEMPT is not set
-+ # CONFIG_NO_IDLE_HZ is not set
-+ CONFIG_HZ=100
-+ # CONFIG_AEABI is not set
-+ # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-+ CONFIG_SELECT_MEMORY_MODEL=y
-+ CONFIG_FLATMEM_MANUAL=y
-+ # CONFIG_DISCONTIGMEM_MANUAL is not set
-+ # CONFIG_SPARSEMEM_MANUAL is not set
-+ CONFIG_FLATMEM=y
-+ CONFIG_FLAT_NODE_MEM_MAP=y
-+ # CONFIG_SPARSEMEM_STATIC is not set
-+ CONFIG_SPLIT_PTLOCK_CPUS=4096
-+ CONFIG_ALIGNMENT_TRAP=y
-+
-+ #
-+ # Boot options
-+ #
-+ CONFIG_ZBOOT_ROM_TEXT=0x0
-+ CONFIG_ZBOOT_ROM_BSS=0x0
-+ CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=jffs2 ip=dhcp console=ttyS0,115200 mem=64M"
-+ #CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.3.5:/opt/nfs-exports/pxa-nfs-root ip=dhcp console=ttyS0,115200 mem=64M"
-+ # CONFIG_XIP_KERNEL is not set
-+
-+ #
-+ # Floating point emulation
-+ #
-+
-+ #
-+ # At least one emulation must be selected
-+ #
-+ CONFIG_FPE_NWFPE=y
-+ # CONFIG_FPE_NWFPE_XP is not set
-+ # CONFIG_FPE_FASTFPE is not set
-+
-+ #
-+ # Userspace binary formats
-+ #
-+ CONFIG_BINFMT_ELF=y
-+ # CONFIG_BINFMT_AOUT is not set
-+ # CONFIG_BINFMT_MISC is not set
-+ # CONFIG_ARTHUR is not set
-+
-+ #
-+ # Power management options
-+ #
-+ # CONFIG_PM is not set
-+ # CONFIG_APM is not set
-+
-+ #
-+ # Networking
-+ #
-+ CONFIG_NET=y
-+
-+ #
-+ # Networking options
-+ #
-+ # CONFIG_NETDEBUG is not set
-+ # CONFIG_PACKET is not set
-+ CONFIG_UNIX=y
-+ # CONFIG_NET_KEY is not set
-+ CONFIG_INET=y
-+ # CONFIG_IP_MULTICAST is not set
-+ # CONFIG_IP_ADVANCED_ROUTER is not set
-+ CONFIG_IP_FIB_HASH=y
-+ CONFIG_IP_PNP=y
-+ CONFIG_IP_PNP_DHCP=y
-+ # CONFIG_IP_PNP_BOOTP is not set
-+ # CONFIG_IP_PNP_RARP is not set
-+ # CONFIG_NET_IPIP is not set
-+ # CONFIG_NET_IPGRE is not set
-+ # CONFIG_ARPD is not set
-+ # CONFIG_SYN_COOKIES is not set
-+ # CONFIG_INET_AH is not set
-+ # CONFIG_INET_ESP is not set
-+ # CONFIG_INET_IPCOMP is not set
-+ # CONFIG_INET_XFRM_TUNNEL is not set
-+ # CONFIG_INET_TUNNEL is not set
-+ CONFIG_INET_DIAG=y
-+ CONFIG_INET_TCP_DIAG=y
-+ # CONFIG_TCP_CONG_ADVANCED is not set
-+ CONFIG_TCP_CONG_BIC=y
-+ # CONFIG_IPV6 is not set
-+ # CONFIG_INET6_XFRM_TUNNEL is not set
-+ # CONFIG_INET6_TUNNEL is not set
-+ # CONFIG_NETFILTER 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
-+ # CONFIG_VLAN_8021Q is not set
-+ # CONFIG_DECNET is not set
-+ # CONFIG_LLC2 is not set
-+ # CONFIG_IPX is not set
-+ # CONFIG_ATALK is not set
-+ # CONFIG_X25 is not set
-+ # CONFIG_LAPB is not set
-+ # CONFIG_NET_DIVERT is not set
-+ # CONFIG_ECONET is not set
-+ # CONFIG_WAN_ROUTER is not set
-+
-+ #
-+ # QoS and/or fair queueing
-+ #
-+ # CONFIG_NET_SCHED is not set
-+
-+ #
-+ # Network testing
-+ #
-+ # CONFIG_NET_PKTGEN is not set
-+ # CONFIG_HAMRADIO is not set
-+ # CONFIG_IRDA is not set
-+ # CONFIG_BT is not set
-+ # CONFIG_IEEE80211 is not set
-+
-+ #
-+ # Device Drivers
-+ #
-+
-+ #
-+ # Generic Driver Options
-+ #
-+ CONFIG_STANDALONE=y
-+ CONFIG_PREVENT_FIRMWARE_BUILD=y
-+ # CONFIG_FW_LOADER is not set
-+ # CONFIG_DEBUG_DRIVER is not set
-+
-+ #
-+ # Connector - unified userspace <-> kernelspace linker
-+ #
-+ # CONFIG_CONNECTOR is not set
-+
-+ #
-+ # Memory Technology Devices (MTD)
-+ #
-+ CONFIG_MTD=y
-+ # CONFIG_MTD_DEBUG is not set
-+ # CONFIG_MTD_CONCAT is not set
-+ CONFIG_MTD_PARTITIONS=y
-+ CONFIG_MTD_REDBOOT_PARTS=y
-+ CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-+ # CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-+ # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-+ # CONFIG_MTD_CMDLINE_PARTS is not set
-+ # CONFIG_MTD_AFS_PARTS is not set
-+
-+ #
-+ # User Modules And Translation Layers
-+ #
-+ CONFIG_MTD_CHAR=y
-+ CONFIG_MTD_BLOCK=y
-+ # CONFIG_FTL is not set
-+ # CONFIG_NFTL is not set
-+ # CONFIG_INFTL is not set
-+ # CONFIG_RFD_FTL is not set
-+
-+ #
-+ # RAM/ROM/Flash chip drivers
-+ #
-+ CONFIG_MTD_CFI=y
-+ # CONFIG_MTD_JEDECPROBE is not set
-+ CONFIG_MTD_GEN_PROBE=y
-+ CONFIG_MTD_CFI_ADV_OPTIONS=y
-+ CONFIG_MTD_CFI_NOSWAP=y
-+ # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-+ # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-+ CONFIG_MTD_CFI_GEOMETRY=y
-+ CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+ CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+ CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+ # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+ # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+ # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+ # CONFIG_MTD_CFI_I1 is not set
-+ CONFIG_MTD_CFI_I2=y
-+ # CONFIG_MTD_CFI_I4 is not set
-+ # CONFIG_MTD_CFI_I8 is not set
-+ # CONFIG_MTD_OTP is not set
-+ CONFIG_MTD_CFI_INTELEXT=y
-+ # CONFIG_MTD_CFI_AMDSTD is not set
-+ # CONFIG_MTD_CFI_STAA is not set
-+ CONFIG_MTD_CFI_UTIL=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
-+ # CONFIG_MTD_XIP is not set
-+
-+ #
-+ # Mapping drivers for chip access
-+ #
-+ # CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+ # CONFIG_MTD_PHYSMAP is not set
-+ CONFIG_MTD_LOGICPD_PXA270=y
-+ # CONFIG_MTD_ARM_INTEGRATOR is not set
-+ # CONFIG_MTD_SHARP_SL is not set
-+ # CONFIG_MTD_PLATRAM is not set
-+
-+ #
-+ # Self-contained MTD device drivers
-+ #
-+ # CONFIG_MTD_SLRAM is not set
-+ # CONFIG_MTD_PHRAM is not set
-+ # CONFIG_MTD_MTDRAM is not set
-+ # CONFIG_MTD_BLOCK2MTD is not set
-+
-+ #
-+ # Disk-On-Chip Device Drivers
-+ #
-+ # 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 is not set
-+
-+ #
-+ # OneNAND Flash Device Drivers
-+ #
-+ # CONFIG_MTD_ONENAND is not set
-+
-+ #
-+ # Parallel port support
-+ #
-+ # CONFIG_PARPORT is not set
-+
-+ #
-+ # Plug and Play support
-+ #
-+
-+ #
-+ # Block devices
-+ #
-+ CONFIG_BLK_DEV_LOGICPD_CF=y
-+ # CONFIG_BLK_DEV_COW_COMMON is not set
-+ # CONFIG_BLK_DEV_LOOP is not set
-+ # CONFIG_BLK_DEV_NBD is not set
-+ # CONFIG_BLK_DEV_RAM is not set
-+ # CONFIG_BLK_DEV_INITRD is not set
-+ # CONFIG_CDROM_PKTCDVD is not set
-+ # CONFIG_ATA_OVER_ETH is not set
-+
-+ #
-+ # ATA/ATAPI/MFM/RLL support
-+ #
-+ CONFIG_IDE=y
-+ CONFIG_BLK_DEV_IDE=y
-+
-+ #
-+ # Please see Documentation/ide.txt for help/info on IDE drives
-+ #
-+ # CONFIG_BLK_DEV_IDE_SATA is not set
-+ CONFIG_BLK_DEV_IDEDISK=y
-+ # CONFIG_IDEDISK_MULTI_MODE is not set
-+ # CONFIG_BLK_DEV_IDECD is not set
-+ # CONFIG_BLK_DEV_IDETAPE is not set
-+ # CONFIG_BLK_DEV_IDEFLOPPY is not set
-+ # CONFIG_IDE_TASK_IOCTL is not set
-+
-+ #
-+ # IDE chipset support/bugfixes
-+ #
-+ # CONFIG_IDE_GENERIC is not set
-+ # CONFIG_IDE_ARM is not set
-+ # CONFIG_BLK_DEV_IDEDMA is not set
-+ # CONFIG_IDEDMA_AUTO is not set
-+ # CONFIG_BLK_DEV_HD is not set
-+
-+ #
-+ # SCSI device support
-+ #
-+ # CONFIG_RAID_ATTRS is not set
-+ # CONFIG_SCSI 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_DUMMY is not set
-+ # CONFIG_BONDING is not set
-+ # CONFIG_EQUALIZER is not set
-+ # CONFIG_TUN is not set
-+
-+ #
-+ # PHY device support
-+ #
-+ # CONFIG_PHYLIB is not set
-+
-+ #
-+ # Ethernet (10 or 100Mbit)
-+ #
-+ CONFIG_NET_ETHERNET=y
-+ CONFIG_MII=y
-+ CONFIG_SMC91X=y
-+ # CONFIG_DM9000 is not set
-+
-+ #
-+ # Ethernet (1000 Mbit)
-+ #
-+
-+ #
-+ # Ethernet (10000 Mbit)
-+ #
-+
-+ #
-+ # Token Ring devices
-+ #
-+
-+ #
-+ # Wireless LAN (non-hamradio)
-+ #
-+ # CONFIG_NET_RADIO is not set
-+
-+ #
-+ # Wan interfaces
-+ #
-+ # CONFIG_WAN is not set
-+ # CONFIG_PPP is not set
-+ # CONFIG_SLIP is not set
-+ # CONFIG_SHAPER is not set
-+ # CONFIG_NETCONSOLE is not set
-+ # CONFIG_NETPOLL is not set
-+ # CONFIG_NET_POLL_CONTROLLER is not set
-+
-+ #
-+ # ISDN subsystem
-+ #
-+ # CONFIG_ISDN is not set
-+
-+ #
-+ # Input device support
-+ #
-+ CONFIG_INPUT=y
-+
-+ #
-+ # Userland interfaces
-+ #
-+ CONFIG_INPUT_MOUSEDEV=y
-+ CONFIG_INPUT_MOUSEDEV_PSAUX=y
-+ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-+ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+ # CONFIG_INPUT_JOYDEV is not set
-+ # CONFIG_INPUT_TSDEV is not set
-+ CONFIG_INPUT_EVDEV=y
-+ # CONFIG_INPUT_EVBUG is not set
-+
-+ #
-+ # Input Device Drivers
-+ #
-+ CONFIG_INPUT_KEYBOARD=y
-+ CONFIG_KEYBOARD_ATKBD=y
-+ # CONFIG_KEYBOARD_SUNKBD is not set
-+ # CONFIG_KEYBOARD_LKKBD is not set
-+ # CONFIG_KEYBOARD_XTKBD is not set
-+ # CONFIG_KEYBOARD_NEWTON is not set
-+ # CONFIG_INPUT_MOUSE is not set
-+ # CONFIG_INPUT_JOYSTICK is not set
-+ # CONFIG_INPUT_TOUCHSCREEN is not set
-+ # CONFIG_INPUT_MISC is not set
-+
-+ #
-+ # Hardware I/O ports
-+ #
-+ CONFIG_SERIO=y
-+ # CONFIG_SERIO_SERPORT is not set
-+ CONFIG_SERIO_LIBPS2=y
-+ # CONFIG_SERIO_RAW is not set
-+ # CONFIG_GAMEPORT is not set
-+
-+ #
-+ # Character devices
-+ #
-+ CONFIG_VT=y
-+ CONFIG_VT_CONSOLE=y
-+ CONFIG_HW_CONSOLE=y
-+ # CONFIG_SERIAL_NONSTANDARD is not set
-+
-+ #
-+ # Serial drivers
-+ #
-+ # CONFIG_SERIAL_8250 is not set
-+
-+ #
-+ # Non-8250 serial port support
-+ #
-+ CONFIG_SERIAL_PXA=y
-+ CONFIG_SERIAL_PXA_CONSOLE=y
-+ CONFIG_SERIAL_CORE=y
-+ 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_NVRAM is not set
-+ # CONFIG_DTLK is not set
-+ # CONFIG_R3964 is not set
-+
-+ #
-+ # Ftape, the floppy tape device driver
-+ #
-+ # CONFIG_RAW_DRIVER is not set
-+
-+ #
-+ # TPM devices
-+ #
-+ # CONFIG_TCG_TPM is not set
-+ # CONFIG_TELCLOCK is not set
-+
-+ #
-+ # I2C support
-+ #
-+ # CONFIG_I2C is not set
-+
-+ #
-+ # SPI support
-+ #
-+ # CONFIG_SPI is not set
-+ # CONFIG_SPI_MASTER is not set
-+
-+ #
-+ # Dallas's 1-wire bus
-+ #
-+ # CONFIG_W1 is not set
-+
-+ #
-+ # Hardware Monitoring support
-+ #
-+ CONFIG_HWMON=y
-+ # CONFIG_HWMON_VID is not set
-+ # CONFIG_SENSORS_F71805F is not set
-+ # CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+ #
-+ # Misc devices
-+ #
-+
-+ #
-+ # LED devices
-+ #
-+ # CONFIG_NEW_LEDS is not set
-+
-+ #
-+ # LED drivers
-+ #
-+
-+ #
-+ # LED Triggers
-+ #
-+
-+ #
-+ # Multimedia devices
-+ #
-+ # CONFIG_VIDEO_DEV is not set
-+ CONFIG_VIDEO_V4L2=y
-+
-+ #
-+ # Digital Video Broadcasting Devices
-+ #
-+ # CONFIG_DVB is not set
-+
-+ #
-+ # Graphics support
-+ #
-+ CONFIG_FB=y
-+ CONFIG_FB_CFB_FILLRECT=y
-+ CONFIG_FB_CFB_COPYAREA=y
-+ CONFIG_FB_CFB_IMAGEBLIT=y
-+ # CONFIG_FB_MACMODES is not set
-+ CONFIG_FB_FIRMWARE_EDID=y
-+ # CONFIG_FB_MODE_HELPERS is not set
-+ # CONFIG_FB_TILEBLITTING is not set
-+ # CONFIG_FB_S1D13XXX is not set
-+ CONFIG_FB_PXA=y
-+ # CONFIG_FB_PXA_PARAMETERS is not set
-+ # CONFIG_FB_PXA_LPD_LQ64D343 is not set
-+ # CONFIG_FB_PXA_LPD_LQ035Q7DB02 is not set
-+ # CONFIG_FB_PXA_LPD_LQ057Q3DC02 is not set
-+ CONFIG_FB_PXA_LPD_LQ10D368=y
-+ # CONFIG_FB_VIRTUAL is not set
-+
-+ #
-+ # Console display driver support
-+ #
-+ # CONFIG_VGA_CONSOLE is not set
-+ CONFIG_DUMMY_CONSOLE=y
-+ CONFIG_FRAMEBUFFER_CONSOLE=y
-+ # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-+ # CONFIG_FONTS is not set
-+ CONFIG_FONT_8x8=y
-+ CONFIG_FONT_8x16=y
-+
-+ #
-+ # Logo configuration
-+ #
-+ CONFIG_LOGO=y
-+ CONFIG_LOGO_LINUX_MONO=y
-+ CONFIG_LOGO_LINUX_VGA16=y
-+ CONFIG_LOGO_LINUX_CLUT224=y
-+ # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+
-+ #
-+ # Sound
-+ #
-+ # CONFIG_SOUND is not set
-+
-+ #
-+ # USB support
-+ #
-+ CONFIG_USB_ARCH_HAS_HCD=y
-+ CONFIG_USB_ARCH_HAS_OHCI=y
-+ # CONFIG_USB_ARCH_HAS_EHCI is not set
-+ # CONFIG_USB is not set
-+
-+ #
-+ # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+ #
-+
-+ #
-+ # USB Gadget Support
-+ #
-+ # CONFIG_USB_GADGET is not set
-+
-+ #
-+ # MMC/SD Card support
-+ #
-+ # CONFIG_MMC is not set
-+
-+ #
-+ # Real Time Clock
-+ #
-+ CONFIG_RTC_LIB=y
-+ # CONFIG_RTC_CLASS is not set
-+
-+ #
-+ # File systems
-+ #
-+ CONFIG_EXT2_FS=y
-+ # CONFIG_EXT2_FS_XATTR is not set
-+ # CONFIG_EXT2_FS_XIP is not set
-+ # CONFIG_EXT3_FS is not set
-+ # CONFIG_REISERFS_FS is not set
-+ # CONFIG_JFS_FS is not set
-+ # CONFIG_FS_POSIX_ACL is not set
-+ # CONFIG_XFS_FS is not set
-+ # CONFIG_OCFS2_FS is not set
-+ # CONFIG_MINIX_FS is not set
-+ # CONFIG_ROMFS_FS is not set
-+ CONFIG_INOTIFY=y
-+ # CONFIG_QUOTA is not set
-+ CONFIG_DNOTIFY=y
-+ # CONFIG_AUTOFS_FS is not set
-+ # CONFIG_AUTOFS4_FS is not set
-+ # CONFIG_FUSE_FS is not set
-+
-+ #
-+ # CD-ROM/DVD Filesystems
-+ #
-+ # CONFIG_ISO9660_FS is not set
-+ # CONFIG_UDF_FS is not set
-+
-+ #
-+ # DOS/FAT/NT Filesystems
-+ #
-+ CONFIG_FAT_FS=y
-+ CONFIG_MSDOS_FS=y
-+ CONFIG_VFAT_FS=y
-+ CONFIG_FAT_DEFAULT_CODEPAGE=437
-+ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+ # CONFIG_NTFS_FS is not set
-+
-+ #
-+ # Pseudo filesystems
-+ #
-+ CONFIG_PROC_FS=y
-+ CONFIG_SYSFS=y
-+ # CONFIG_TMPFS is not set
-+ # CONFIG_HUGETLB_PAGE is not set
-+ CONFIG_RAMFS=y
-+ # CONFIG_CONFIGFS_FS is not set
-+
-+ #
-+ # Miscellaneous filesystems
-+ #
-+ # CONFIG_ADFS_FS is not set
-+ # CONFIG_AFFS_FS is not set
-+ # CONFIG_HFS_FS is not set
-+ # CONFIG_HFSPLUS_FS is not set
-+ # CONFIG_BEFS_FS is not set
-+ # CONFIG_BFS_FS is not set
-+ # CONFIG_EFS_FS is not set
-+ # CONFIG_JFFS_FS is not set
-+ CONFIG_JFFS2_FS=y
-+ CONFIG_JFFS2_FS_DEBUG=0
-+ CONFIG_JFFS2_FS_WRITEBUFFER=y
-+ # CONFIG_JFFS2_SUMMARY is not set
-+ # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-+ CONFIG_JFFS2_ZLIB=y
-+ CONFIG_JFFS2_RTIME=y
-+ # CONFIG_JFFS2_RUBIN is not set
-+ # CONFIG_CRAMFS is not set
-+ # CONFIG_VXFS_FS is not set
-+ # CONFIG_HPFS_FS is not set
-+ # CONFIG_QNX4FS_FS is not set
-+ # CONFIG_SYSV_FS is not set
-+ # CONFIG_UFS_FS is not set
-+
-+ #
-+ # Network File Systems
-+ #
-+ CONFIG_NFS_FS=y
-+ CONFIG_NFS_V3=y
-+ # CONFIG_NFS_V3_ACL is not set
-+ # CONFIG_NFS_V4 is not set
-+ # CONFIG_NFS_DIRECTIO is not set
-+ # CONFIG_NFSD is not set
-+ CONFIG_ROOT_NFS=y
-+ CONFIG_LOCKD=y
-+ CONFIG_LOCKD_V4=y
-+ CONFIG_NFS_COMMON=y
-+ CONFIG_SUNRPC=y
-+ # CONFIG_RPCSEC_GSS_KRB5 is not set
-+ # CONFIG_RPCSEC_GSS_SPKM3 is not set
-+ # CONFIG_SMB_FS is not set
-+ # CONFIG_CIFS is not set
-+ # 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
-+ #
-+ # CONFIG_PARTITION_ADVANCED is not set
-+ CONFIG_MSDOS_PARTITION=y
-+
-+ #
-+ # Native Language Support
-+ #
-+ CONFIG_NLS=y
-+ CONFIG_NLS_DEFAULT="iso8859-1"
-+ CONFIG_NLS_CODEPAGE_437=y
-+ # CONFIG_NLS_CODEPAGE_737 is not set
-+ # CONFIG_NLS_CODEPAGE_775 is not set
-+ # CONFIG_NLS_CODEPAGE_850 is not set
-+ # CONFIG_NLS_CODEPAGE_852 is not set
-+ # CONFIG_NLS_CODEPAGE_855 is not set
-+ # CONFIG_NLS_CODEPAGE_857 is not set
-+ # CONFIG_NLS_CODEPAGE_860 is not set
-+ # CONFIG_NLS_CODEPAGE_861 is not set
-+ # CONFIG_NLS_CODEPAGE_862 is not set
-+ # CONFIG_NLS_CODEPAGE_863 is not set
-+ # CONFIG_NLS_CODEPAGE_864 is not set
-+ # CONFIG_NLS_CODEPAGE_865 is not set
-+ # CONFIG_NLS_CODEPAGE_866 is not set
-+ # CONFIG_NLS_CODEPAGE_869 is not set
-+ # CONFIG_NLS_CODEPAGE_936 is not set
-+ # CONFIG_NLS_CODEPAGE_950 is not set
-+ # CONFIG_NLS_CODEPAGE_932 is not set
-+ # CONFIG_NLS_CODEPAGE_949 is not set
-+ # CONFIG_NLS_CODEPAGE_874 is not set
-+ # CONFIG_NLS_ISO8859_8 is not set
-+ # CONFIG_NLS_CODEPAGE_1250 is not set
-+ # CONFIG_NLS_CODEPAGE_1251 is not set
-+ # CONFIG_NLS_ASCII is not set
-+ CONFIG_NLS_ISO8859_1=y
-+ # CONFIG_NLS_ISO8859_2 is not set
-+ # CONFIG_NLS_ISO8859_3 is not set
-+ # CONFIG_NLS_ISO8859_4 is not set
-+ # CONFIG_NLS_ISO8859_5 is not set
-+ # CONFIG_NLS_ISO8859_6 is not set
-+ # CONFIG_NLS_ISO8859_7 is not set
-+ # CONFIG_NLS_ISO8859_9 is not set
-+ # CONFIG_NLS_ISO8859_13 is not set
-+ # CONFIG_NLS_ISO8859_14 is not set
-+ # CONFIG_NLS_ISO8859_15 is not set
-+ # CONFIG_NLS_KOI8_R is not set
-+ # CONFIG_NLS_KOI8_U is not set
-+ # CONFIG_NLS_UTF8 is not set
-+
-+ #
-+ # Profiling support
-+ #
-+ # CONFIG_PROFILING is not set
-+
-+ #
-+ # Kernel hacking
-+ #
-+ # CONFIG_PRINTK_TIME is not set
-+ CONFIG_MAGIC_SYSRQ=y
-+ CONFIG_DEBUG_KERNEL=y
-+ CONFIG_LOG_BUF_SHIFT=14
-+ CONFIG_DETECT_SOFTLOCKUP=y
-+ # CONFIG_SCHEDSTATS is not set
-+ # CONFIG_DEBUG_SLAB is not set
-+ # CONFIG_DEBUG_MUTEXES is not set
-+ # CONFIG_DEBUG_SPINLOCK is not set
-+ # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-+ # CONFIG_DEBUG_KOBJECT is not set
-+ CONFIG_DEBUG_BUGVERBOSE=y
-+ CONFIG_DEBUG_INFO=y
-+ # CONFIG_DEBUG_FS is not set
-+ # CONFIG_DEBUG_VM is not set
-+ CONFIG_FRAME_POINTER=y
-+ # CONFIG_UNWIND_INFO is not set
-+ CONFIG_FORCED_INLINING=y
-+ # CONFIG_RCU_TORTURE_TEST is not set
-+ CONFIG_DEBUG_USER=y
-+ # CONFIG_DEBUG_WAITQ is not set
-+ CONFIG_DEBUG_ERRORS=y
-+ CONFIG_DEBUG_LL=y
-+ # CONFIG_DEBUG_ICEDCC is not set
-+
-+ #
-+ # Security options
-+ #
-+ # CONFIG_KEYS is not set
-+ # CONFIG_SECURITY is not set
-+
-+ #
-+ # Cryptographic options
-+ #
-+ # CONFIG_CRYPTO is not set
-+
-+ #
-+ # Hardware crypto devices
-+ #
-+
-+ #
-+ # Library routines
-+ #
-+ # CONFIG_CRC_CCITT is not set
-+ # CONFIG_CRC16 is not set
-+ CONFIG_CRC32=y
-+ # CONFIG_LIBCRC32C is not set
-+ CONFIG_ZLIB_INFLATE=y
-+ CONFIG_ZLIB_DEFLATE=y
-Index: arch/arm/kernel/head.S
-===================================================================
-RCS file: /cvs/eps/dev_eng/sw/products/Linux/PXAEngine/pxa/linux-2.6.17-rc5/arch/arm/kernel/head.S,v
-retrieving revision 1.1.1.1
-diff -c -3 -p -r1.1.1.1 head.S
-*** arch/arm/kernel/head.S 29 May 2006 00:53:47 -0000 1.1.1.1
---- arch/arm/kernel/head.S 1 Jun 2006 17:37:16 -0000
-*************** ENTRY(stext)
-*** 74,79 ****
---- 74,93 ----
- msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | MODE_SVC @ ensure svc mode
- @ and irqs disabled
- mrc p15, 0, r9, c0, c0 @ get processor id
-+
-+ /* LPD--
-+ * This fakes out the Linux kernel into believing that it is
-+ * running on a Mainstone hardware platform. The LogicLoader (LoLo)
-+ * doesn't currently pass kernel parameters correctly for 2.6 ARM
-+ * kernels. Therefore, we just hardcode it here.
-+ *
-+ * --LPD
-+ */
-+ mov r0, #0
-+ mov r1, #0x300
-+ orr r1, r1, #0x0a0
-+ orr r1, r1, #0x002
-+
- bl __lookup_processor_type @ r5=procinfo r9=cpuid
- movs r10, r5 @ invalid processor (r5=0)?
- beq __error_p @ yes, error 'p'
-Index: arch/arm/mach-pxa/lpd270.c
-===================================================================
-RCS file: /cvs/eps/dev_eng/sw/products/Linux/PXAEngine/pxa/linux-2.6.17-rc5/arch/arm/mach-pxa/lpd270.c,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -c -3 -p -r1.1.1.1 -r1.2
-*** arch/arm/mach-pxa/lpd270.c 29 May 2006 00:53:55 -0000 1.1.1.1
---- arch/arm/mach-pxa/lpd270.c 1 Jun 2006 17:04:24 -0000 1.2
-*************** static void lpd270_backlight_power(int o
-*** 246,288 ****
- }
- }
-
-! /* 5.7" TFT QVGA (LoLo display number 1) */
-! static struct pxafb_mach_info sharp_lq057q3dc02 __initdata = {
-! .pixclock = 100000,
-! .xres = 240,
-! .yres = 320,
-! .bpp = 16,
-! .hsync_len = 64,
-! .left_margin = 0x27,
-! .right_margin = 0x09,
-! .vsync_len = 0x04,
-! .upper_margin = 0x08,
-! .lower_margin = 0x14,
-! .sync = 0,
-! .lccr0 = 0x07800080,
-! .lccr3 = 0x04400007,
-! .pxafb_backlight_power = lpd270_backlight_power,
-! };
-!
- /* 6.4" TFT VGA (LoLo display number 5) */
- static struct pxafb_mach_info sharp_lq64d343 __initdata = {
- .pixclock = 20000,
- .xres = 640,
- .yres = 480,
- .bpp = 16,
-! .hsync_len = 49,
-! .left_margin = 0x89,
-! .right_margin = 0x19,
-! .vsync_len = 18,
- .upper_margin = 0x22,
- .lower_margin = 0,
-! .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-! .lccr0 = 0x07800080,
- .lccr3 = 0x04400001,
- .pxafb_backlight_power = lpd270_backlight_power,
- };
-
-! /* 3.5" TFT QVGA (LoLo display number 8) */
- static struct pxafb_mach_info sharp_lq035q7db02_20 __initdata = {
- .pixclock = 100000,
- .xres = 240,
---- 246,273 ----
- }
- }
-
-! #ifdef CONFIG_FB_PXA_LPD_LQ64D343
- /* 6.4" TFT VGA (LoLo display number 5) */
- static struct pxafb_mach_info sharp_lq64d343 __initdata = {
- .pixclock = 20000,
- .xres = 640,
- .yres = 480,
- .bpp = 16,
-! .hsync_len = 64,
-! .left_margin = 0x88,
-! .right_margin = 0x18,
-! .vsync_len = 64,
- .upper_margin = 0x22,
- .lower_margin = 0,
-! .sync = 0,
-! .lccr0 = 0x078000f9,
- .lccr3 = 0x04400001,
- .pxafb_backlight_power = lpd270_backlight_power,
- };
-+ #endif
-
-! #ifdef CONFIG_FB_PXA_LPD_LQ035Q7DB02
-! /* 3.5" TFT QVGA (LoLo display number 8) */
- static struct pxafb_mach_info sharp_lq035q7db02_20 __initdata = {
- .pixclock = 100000,
- .xres = 240,
-*************** static struct pxafb_mach_info sharp_lq03
-*** 299,304 ****
---- 284,330 ----
- .lccr3 = 0x04400007,
- .pxafb_backlight_power = lpd270_backlight_power,
- };
-+ #endif
-+
-+ #ifdef CONFIG_FB_PXA_LPD_LQ057Q3DC02
-+ /* 5.7" TFT QVGA (LoLo display number 1) */
-+ static struct pxafb_mach_info sharp_lq057q3dc02 __initdata = {
-+ .pixclock = 100000,
-+ .xres = 240,
-+ .yres = 320,
-+ .bpp = 16,
-+ .hsync_len = 64,
-+ .left_margin = 0x27,
-+ .right_margin = 0x09,
-+ .vsync_len = 0x04,
-+ .upper_margin = 0x08,
-+ .lower_margin = 0x14,
-+ .sync = 0,
-+ .lccr0 = 0x07800080,
-+ .lccr3 = 0x04400007,
-+ .pxafb_backlight_power = lpd270_backlight_power,
-+ };
-+ #endif
-+
-+ #ifdef CONFIG_FB_PXA_LPD_LQ10D368
-+ /* 10.4" TFT QVGA (LoLo display number 7) */
-+ static struct pxafb_mach_info sharp_lq10d368 __initdata = {
-+ .pixclock = 25000,
-+ .xres = 640,
-+ .yres = 480,
-+ .bpp = 16,
-+ .hsync_len = 0x31,
-+ .left_margin = 0x89,
-+ .right_margin = 0x19,
-+ .vsync_len = 0x12,
-+ .upper_margin = 0x22,
-+ .lower_margin = 0x00,
-+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-+ .lccr0 = 0x078000f8,
-+ .lccr3 = 0x04400001,
-+ .pxafb_backlight_power = lpd270_backlight_power,
-+ };
-+ #endif
-
- static struct platform_device *platform_devices[] __initdata = {
- &smc91x_device,
-*************** static void __init lpd270_init(void)
-*** 345,353 ****
-
- platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
-
-! // set_pxa_fb_info(&sharp_lq057q3dc02);
- set_pxa_fb_info(&sharp_lq64d343);
-! // set_pxa_fb_info(&sharp_lq035q7db02_20);
-
- pxa_set_ohci_info(&lpd270_ohci_platform_data);
- }
---- 371,387 ----
-
- platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
-
-! #ifdef CONFIG_FB_PXA_LPD_LQ64D343
- set_pxa_fb_info(&sharp_lq64d343);
-! #elif defined(CONFIG_FB_PXA_LPD_LQ045Q7DB02)
-! set_pxa_fb_info(&sharp_lq035q7db02_20);
-! #elif defined(CONFIG_FB_PXA_LPD_LQ057Q3DC02)
-! set_pxa_fb_info(&sharp_lq057q3dc02);
-! #elif defined(CONFIG_FB_PXA_LPD_LQ10D368)
-! set_pxa_fb_info(&sharp_lq10d368);
-! #elif defined(CONFIG_FB_PXA)
-! printk("No Logic LCD panel selected!");
-! #endif
-
- pxa_set_ohci_info(&lpd270_ohci_platform_data);
- }
-Index: drivers/block/Kconfig
-===================================================================
-RCS file: /cvs/eps/dev_eng/sw/products/Linux/PXAEngine/pxa/linux-2.6.17-rc5/drivers/block/Kconfig,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -c -3 -p -r1.1.1.1 -r1.2
-*** drivers/block/Kconfig 29 May 2006 00:55:20 -0000 1.1.1.1
---- drivers/block/Kconfig 1 Jun 2006 17:05:41 -0000 1.2
-***************
-*** 4,9 ****
---- 4,16 ----
-
- menu "Block devices"
-
-+ config BLK_DEV_LOGICPD_CF
-+ bool "LogicPD memory-mapped CompactFlash card support"
-+ depends on MACH_LOGICPD_PXA270
-+ ---help---
-+ If you want to use the memory-mapped comapct flash card on
-+ the LogicPD SDK, say Y.
-+
- config BLK_DEV_FD
- tristate "Normal floppy disk support"
- depends on ARCH_MAY_HAVE_PC_FDC
-Index: drivers/block/Makefile
-===================================================================
-RCS file: /cvs/eps/dev_eng/sw/products/Linux/PXAEngine/pxa/linux-2.6.17-rc5/drivers/block/Makefile,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -c -3 -p -r1.1.1.1 -r1.2
-*** drivers/block/Makefile 29 May 2006 00:55:20 -0000 1.1.1.1
---- drivers/block/Makefile 1 Jun 2006 17:05:59 -0000 1.2
-***************
-*** 5,10 ****
---- 5,12 ----
- # Rewritten to use lists instead of if-statements.
- #
-
-+ obj-$(CONFIG_BLK_DEV_LOGICPD_CF)+= lpd270-cf.o
-+
- obj-$(CONFIG_MAC_FLOPPY) += swim3.o
- obj-$(CONFIG_BLK_DEV_FD) += floppy.o
- obj-$(CONFIG_AMIGA_FLOPPY) += amiflop.o
-Index: drivers/block/lpd270-cf.c
-===================================================================
-RCS file: drivers/block/lpd270-cf.c
-diff -N drivers/block/lpd270-cf.c
-*** /dev/null 1 Jan 1970 00:00:00 -0000
---- drivers/block/lpd270-cf.c 1 Jun 2006 16:23:35 -0000 1.1
-***************
-*** 0 ****
---- 1,675 ----
-+ /*
-+ * Support for LogicPD SDK Memory-mapped CompactFlash interface
-+ *
-+ * Copyright 2006 Logic Product Development <peterb@logicpd.com>
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive
-+ * for more details.
-+ */
-+
-+
-+ /* Uncomment the following if you want verbose error reports. */
-+ /* #define VERBOSE_ERRORS */
-+
-+ #include <linux/blkdev.h>
-+ #include <linux/errno.h>
-+ #include <linux/signal.h>
-+ #include <linux/interrupt.h>
-+ #include <linux/timer.h>
-+ #include <linux/fs.h>
-+ #include <linux/kernel.h>
-+ #include <linux/genhd.h>
-+ #include <linux/slab.h>
-+ #include <linux/string.h>
-+ #include <linux/ioport.h>
-+ #include <linux/mc146818rtc.h> /* CMOS defines */
-+ #include <linux/init.h>
-+ #include <linux/blkpg.h>
-+ #include <linux/hdreg.h>
-+
-+ #define REALLY_SLOW_IO
-+ #include <asm/system.h>
-+ #include <asm/io.h>
-+ #include <asm/uaccess.h>
-+ #include <asm/delay.h>
-+
-+ #ifdef __arm__
-+ #undef HD_IRQ
-+ #endif
-+ #include <asm/irq.h>
-+ #ifdef __arm__
-+ #define HD_IRQ IRQ_HARDDISK
-+ #endif
-+
-+ #define DEBUG
-+
-+ /* Hd controller regster ports */
-+
-+ #define HD_DATA 0x1f0 /* _CTL when writing */
-+ #define HD_ERROR 0x1f1 /* see err-bits */
-+ #define HD_NSECTOR 0x1f2 /* nr of sectors to read/write */
-+ #define HD_SECTOR 0x1f3 /* starting sector */
-+ #define HD_LCYL 0x1f4 /* starting cylinder */
-+ #define HD_HCYL 0x1f5 /* high byte of starting cyl */
-+ #define HD_CURENT 0x1f6 /* 101dhhhh , d=drive, hhhh=head */
-+ #define HD_STATUS 0x1f7 /* see status-bits */
-+ #define HD_FEATURE HD_ERROR /* same io address, read=error, write=feature */
-+ #define HD_PRECOMP HD_FEATURE /* obsolete use of this port - predates IDE */
-+ #define HD_COMMAND HD_STATUS /* same io address, read=status, write=cmd */
-+
-+ #define HD_CMD 0x3f6 /* used for resets */
-+ #define HD_ALTSTATUS 0x3f6 /* same as HD_STATUS but doesn't clear irq */
-+
-+ /* Bits of HD_STATUS */
-+ #define ERR_STAT 0x01
-+ #define INDEX_STAT 0x02
-+ #define ECC_STAT 0x04 /* Corrected error */
-+ #define DRQ_STAT 0x08
-+ #define SEEK_STAT 0x10
-+ #define SERVICE_STAT SEEK_STAT
-+ #define WRERR_STAT 0x20
-+ #define READY_STAT 0x40
-+ #define BUSY_STAT 0x80
-+
-+ /* Bits for HD_ERROR */
-+ #define MARK_ERR 0x01 /* Bad address mark */
-+ #define TRK0_ERR 0x02 /* couldn't find track 0 */
-+ #define ABRT_ERR 0x04 /* Command aborted */
-+ #define MCR_ERR 0x08 /* media change request */
-+ #define ID_ERR 0x10 /* ID field not found */
-+ #define MC_ERR 0x20 /* media changed */
-+ #define ECC_ERR 0x40 /* Uncorrectable ECC error */
-+ #define BBD_ERR 0x80 /* pre-EIDE meaning: block marked bad */
-+ #define ICRC_ERR 0x80 /* new meaning: CRC error during transfer */
-+
-+ static DEFINE_SPINLOCK(hd_lock);
-+ static struct request_queue *hd_queue;
-+
-+ #define MAJOR_NR HD_MAJOR
-+ #define QUEUE (hd_queue)
-+ #define CURRENT elv_next_request(hd_queue)
-+
-+ #define TIMEOUT_VALUE (6*HZ)
-+ #define HD_DELAY 0
-+
-+ #define MAX_ERRORS 16 /* Max read/write errors/sector */
-+ #define RESET_FREQ 8 /* Reset controller every 8th retry */
-+ #define RECAL_FREQ 4 /* Recalibrate every 4th retry */
-+ #define MAX_HD 2
-+
-+ #define STAT_OK (READY_STAT|SEEK_STAT)
-+ #define OK_STATUS(s) (((s)&(STAT_OK|(BUSY_STAT|WRERR_STAT|ERR_STAT)))==STAT_OK)
-+
-+ static int driveno = 0;
-+ static int debug = 0;
-+
-+ // Start of CF registers
-+ #define CPLD_ATA_REG_BASE 0x14001800
-+ static unsigned char *reg_base;
-+
-+ static inline unsigned int read_reg(unsigned char *base, unsigned int reg)
-+ {
-+ volatile unsigned short val;
-+
-+ if (reg & 1)
-+ val = *((volatile unsigned short *)(base + reg - 1)) >> 8;
-+ else
-+ val = *((volatile unsigned short *)(base + reg));
-+
-+ if (debug)
-+ printk("%s: %02x %04x \n", __FUNCTION__, reg, val);
-+
-+ return val;
-+ }
-+
-+ static inline void write_reg(unsigned char *base, unsigned int reg, unsigned int val)
-+ {
-+ if (debug)
-+ printk("%s: %02x %04x\n", __FUNCTION__, reg, val);
-+ if (reg & 1)
-+ *((volatile unsigned short *)(base + reg - 1)) = (val << 8);
-+ else
-+ *((volatile unsigned short *)(base + reg)) = val;
-+ }
-+
-+ #define CB_DATA 0x08
-+ #define CB_ERR 0x0d
-+ #define CB_SC_SN 0x02
-+ #define CB_CYL 0x04
-+ #define CB_STAT 0x07
-+ #define CB_DH_CMD 0x06
-+ #define CB_ASTAT 0x0e
-+ #define CB_DC 0x0e
-+ #define CB_DA 0x0f
-+
-+ #define CB_STAT_BSY 0x80
-+ #define CB_STAT_DRQ 0x08
-+ #define CB_STAT_SEEK 0x10
-+ #define CB_STAT_DF 0x20
-+ #define CB_STAT_READY 0x40
-+ #define CB_STAT_ERR 0x01
-+ #define CB_DC_HD15 0x08
-+ #define CB_DC_NIEN 0x02
-+
-+ #define CMD_IDENTIFY_DEVICE 0xec
-+ #define CMD_READ_SECTORS 0x20
-+ #define CMD_WRITE_SECTORS 0x30
-+
-+ #define TIMEOUT 0x800000
-+
-+ int cfide_card_present(void)
-+ {
-+ unsigned char data, data1, data2;
-+
-+ /* Flip Sector Count */
-+ data = read_reg(reg_base, CB_SC_SN);
-+ data1 = (~data) & 0xff;
-+ write_reg(reg_base, CB_SC_SN, data1);
-+
-+ /* write to the data register to waggle the bus */
-+ write_reg(reg_base, CB_DATA, data);
-+
-+ /* Read back the sector count and if it matches what we put there
-+ then the CF is present */
-+ data2 = read_reg(reg_base, CB_SC_SN);
-+ if (data2 == data1)
-+ return 1;
-+ else {
-+ printk("data %02x data1 %02x data2 %02x\n", data, data1, data2);
-+ return 0;
-+ }
-+ }
-+
-+ /*
-+ * This struct defines the HD's and their types.
-+ */
-+ struct hd_i_struct {
-+ unsigned int head,sect,cyl,wpcom,lzone,ctl;
-+ int unit;
-+ int recalibrate;
-+ int special_op;
-+ };
-+
-+ #ifdef HD_TYPE
-+ static struct hd_i_struct hd_info[] = { HD_TYPE };
-+ static int NR_HD = ((sizeof (hd_info))/(sizeof (struct hd_i_struct)));
-+ #else
-+ static struct hd_i_struct hd_info[MAX_HD];
-+ static int NR_HD;
-+ #endif
-+
-+ static struct gendisk *hd_gendisk[MAX_HD];
-+
-+
-+
-+ #if (HD_DELAY > 0)
-+
-+ #include <asm/i8253.h>
-+
-+ unsigned long last_req;
-+
-+ unsigned long read_timer(void)
-+ {
-+ unsigned long t, flags;
-+ int i;
-+
-+ spin_lock_irqsave(&i8253_lock, flags);
-+ t = jiffies * 11932;
-+ outb_p(0, 0x43);
-+ i = inb_p(0x40);
-+ i |= inb(0x40) << 8;
-+ spin_unlock_irqrestore(&i8253_lock, flags);
-+ return(t - i);
-+ }
-+ #endif
-+
-+ static void __init hd_setup(char *str, int *ints)
-+ {
-+ int hdind = 0;
-+
-+ if (ints[0] != 3)
-+ return;
-+ if (hd_info[0].head != 0)
-+ hdind=1;
-+ hd_info[hdind].head = ints[2];
-+ hd_info[hdind].sect = ints[3];
-+ hd_info[hdind].cyl = ints[1];
-+ hd_info[hdind].wpcom = 0;
-+ hd_info[hdind].lzone = ints[1];
-+ hd_info[hdind].ctl = (ints[2] > 8 ? 8 : 0);
-+ NR_HD = hdind+1;
-+ }
-+
-+
-+
-+ void cfide_wait_fin(void)
-+ {
-+ unsigned long timer;
-+
-+ // printk("%s:%d\n", __FUNCTION__, __LINE__);
-+
-+ udelay(500); // wait 500us
-+
-+ for (timer = 0;
-+ timer < TIMEOUT && (read_reg(reg_base, CB_STAT) & CB_STAT_BSY); ++timer)
-+ yield();
-+
-+ if (timer == TIMEOUT)
-+ printk("%s:%d\n", __FUNCTION__, __LINE__);
-+ }
-+
-+ void cfide_wait_drq(void)
-+ {
-+ unsigned long timer;
-+
-+ for (timer = 0;
-+ timer < TIMEOUT && !(read_reg(reg_base, CB_STAT) & CB_STAT_DRQ); ++timer)
-+ yield();
-+
-+ if (timer == TIMEOUT)
-+ printk("%s:%d\n", __FUNCTION__, __LINE__);
-+ }
-+
-+ static union {
-+ struct hd_driveid id;
-+ short sh[512/2];
-+ } info_buf;
-+
-+
-+ /* Read cnt sectors from the flash, starting at lba, storing the data
-+ at dest */
-+ static int cfide_read_sectors(uint8_t *dest, uint32_t lba, uint32_t cnt)
-+ {
-+ uint8_t sect, head, devHead, status, devCtrl;
-+ uint16_t cyl;
-+ uint32_t orig_lba = lba;
-+ uint32_t i,j;
-+ uint16_t data;
-+
-+ // printk("%s: dest %p lba %u cnt %u\n", __FUNCTION__, dest, lba, cnt);
-+
-+ if (lba + cnt > info_buf.id.lba_capacity) {
-+ printk("%s: %u+%u is larger than %u\n", __FUNCTION__, lba, cnt, info_buf.id.lba_capacity);
-+ return -EINVAL;
-+ }
-+
-+ if (cnt > 255) {
-+ printk("%s: cnt %u is too large\n", __FUNCTION__, cnt);
-+ return -EINVAL;
-+ }
-+
-+
-+ /* translate from LBA */
-+ sect = lba & 0xff;
-+ lba >>= 8;
-+ cyl = lba & 0xffff;
-+ lba >>= 16;
-+ head = (lba & 0x0f) | 0x40;
-+
-+ devCtrl = CB_DC_HD15 | CB_DC_NIEN;
-+ devHead = driveno | head;
-+
-+ write_reg(reg_base, CB_DC, devCtrl);
-+ write_reg(reg_base, CB_SC_SN, ((uint16_t)cnt & 0xff) | ((uint16_t)sect << 8));
-+ write_reg(reg_base, CB_CYL, cyl);
-+
-+ write_reg(reg_base, CB_DH_CMD, devHead | (CMD_READ_SECTORS << 8));
-+
-+ for (j=0; j<cnt; ++j) {
-+ udelay(1); // spin for a moment to let the controller raise BSY
-+
-+ cfide_wait_fin();
-+ cfide_wait_drq();
-+ for (i=0; i<256; ++i) {
-+ data = read_reg(reg_base, CB_DATA);
-+ #if 0
-+ *dest++ = data>>8;
-+ *dest++ = data;
-+ #else
-+ *dest++ = data;
-+ *dest++ = data>>8;
-+ #endif
-+ }
-+
-+
-+ cfide_wait_fin();
-+
-+ status = read_reg(reg_base, CB_STAT);
-+ if (status & (CB_STAT_DF|CB_STAT_ERR)) {
-+ printk("%s: error at block %d status %#x\n", __FUNCTION__, orig_lba+j, status);
-+ break;
-+ }
-+
-+ }
-+
-+ return 0;
-+ }
-+
-+ /* Write cnt sectors to the flash, starting at lba, reading the data
-+ from src */
-+ static int cfide_write_sectors(uint8_t *src, uint32_t lba, uint32_t cnt)
-+ {
-+ uint8_t sect, head, devHead, status, devCtrl;
-+ uint16_t cyl;
-+ uint32_t orig_lba = lba;
-+ uint32_t i,j;
-+ uint16_t data;
-+
-+ if (lba + cnt > info_buf.id.lba_capacity) {
-+ printk("%s: %u+%u is larger than %u\n", __FUNCTION__, lba, cnt, info_buf.id.lba_capacity);
-+ return -EINVAL;
-+ }
-+
-+ if (cnt > 255) {
-+ printk("%s: cnt %u is too large\n", __FUNCTION__, cnt);
-+ return -EINVAL;
-+ }
-+
-+ /* translate from LBA */
-+ sect = lba & 0xff;
-+ lba >>= 8;
-+ cyl = lba & 0xffff;
-+ lba >>= 16;
-+ head = (lba & 0x0f) | 0x40;
-+
-+ devCtrl = CB_DC_HD15 | CB_DC_NIEN;
-+ devHead = driveno | head;
-+
-+ write_reg(reg_base, CB_DC, devCtrl);
-+ write_reg(reg_base, CB_SC_SN, ((uint16_t)cnt & 0xff) | ((uint16_t)sect << 8));
-+ write_reg(reg_base, CB_CYL, cyl);
-+
-+ write_reg(reg_base, CB_DH_CMD, devHead | (CMD_WRITE_SECTORS << 8));
-+
-+ for (j=0; j<cnt; ++j) {
-+ udelay(1); // spin for a moment to let the controller raise BSY
-+
-+ cfide_wait_fin();
-+
-+ cfide_wait_drq();
-+
-+ for (i=0; i<256; ++i) {
-+ #if 0
-+ data = (*src++ << 8);
-+ data |= *src++;
-+ #else
-+ data = *src++;
-+ data |= (*src++ << 8);
-+ #endif
-+ write_reg(reg_base, CB_DATA, data);
-+ }
-+
-+ cfide_wait_fin();
-+
-+ status = read_reg(reg_base, CB_STAT);
-+ if (status & (CB_STAT_DF|CB_STAT_ERR)) {
-+ printk("%s: error at block %d status %#x\n", __FUNCTION__, orig_lba+j, status);
-+ break;
-+ }
-+
-+ }
-+ return 0;
-+ }
-+
-+
-+ static void cfide_transfer(unsigned long sector,
-+ unsigned long nsect, char *buffer, int write)
-+ {
-+ int ret;
-+ if (write)
-+ ret = cfide_write_sectors(buffer, sector, nsect);
-+ else
-+ ret = cfide_read_sectors(buffer, sector, nsect);
-+ if (ret)
-+ printk("%s:%d\n", __FUNCTION__, __LINE__);
-+
-+ }
-+
-+
-+ static void do_hd_request (request_queue_t * q)
-+ {
-+ struct request *req;
-+
-+ // printk("%s:%d q %p\n", __FUNCTION__, __LINE__, q);
-+
-+ while ((req = elv_next_request(q)) != NULL) {
-+ if (blk_fs_request(req)) {
-+ cfide_transfer(req->sector, req->current_nr_sectors,
-+ req->buffer, rq_data_dir(req));
-+ end_request(req, 1);
-+ } else {
-+ printk (KERN_NOTICE "Skip non-fs request\n");
-+ end_request(req, 0);
-+ continue;
-+ }
-+ }
-+ }
-+
-+ static int hd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
-+ {
-+ struct hd_i_struct *disk = bdev->bd_disk->private_data;
-+
-+ geo->heads = disk->head;
-+ geo->sectors = disk->sect;
-+ geo->cylinders = disk->cyl;
-+ return 0;
-+ }
-+
-+
-+ static struct block_device_operations hd_fops = {
-+ .getgeo = hd_getgeo,
-+ };
-+
-+ void cfide_fetch_info(void)
-+ {
-+ int i;
-+
-+ // printk("%s:%d\n", __FUNCTION__, __LINE__);
-+
-+ /* Select the drive and wait for it to finish */
-+ driveno &= 1;
-+ write_reg(reg_base, CB_DH_CMD, driveno);
-+ cfide_wait_fin();
-+
-+ // printk("%s:%d\n", __FUNCTION__, __LINE__);
-+
-+ write_reg(reg_base, CB_DH_CMD, driveno | (CMD_IDENTIFY_DEVICE << 8));
-+ cfide_wait_fin();
-+
-+ // printk("%s:%d\n", __FUNCTION__, __LINE__);
-+
-+
-+ cfide_wait_drq();
-+
-+ // printk("%s:%d\n", __FUNCTION__, __LINE__);
-+
-+ for (i=0; i<512; i+=2)
-+ info_buf.sh[i/2] = read_reg(reg_base, CB_DATA);
-+
-+ /* Fix lba_capcity */
-+ info_buf.id.lba_capacity = (info_buf.id.lba_capacity>>16) | (info_buf.id.lba_capacity<<16);
-+ // printk("%s:%d lba_capacity %#x\n", __FUNCTION__, __LINE__, info_buf.id.lba_capacity);
-+ }
-+
-+ /*
-+ * This is the hard disk IRQ description. The SA_INTERRUPT in sa_flags
-+ * means we run the IRQ-handler with interrupts disabled: this is bad for
-+ * interrupt latency, but anything else has led to problems on some
-+ * machines.
-+ *
-+ * We enable interrupts in some of the routines after making sure it's
-+ * safe.
-+ */
-+
-+ static int __init hd_init(void)
-+ {
-+ int drive;
-+
-+ printk("%s:%d MAJOR_NR %d\n", __FUNCTION__, __LINE__, MAJOR_NR);
-+
-+ if (register_blkdev(MAJOR_NR,"hd"))
-+ return -1;
-+
-+ reg_base = (unsigned char *) ioremap_nocache(CPLD_ATA_REG_BASE, 0x1000);
-+ if (!reg_base) {
-+ printk("%s:%d\n", __FUNCTION__, __LINE__);
-+ return -ENOMEM;
-+ }
-+
-+ /* If no card present, return */
-+ if (!cfide_card_present()) {
-+ printk("No CompactFlash card detected\n");
-+ iounmap(reg_base);
-+ return 0;
-+ }
-+
-+ /* Fetchthe device info */
-+ cfide_fetch_info();
-+
-+ hd_queue = blk_init_queue(do_hd_request, &hd_lock);
-+ printk("%s:%d hd_queue %p\n", __FUNCTION__, __LINE__, hd_queue);
-+ if (!hd_queue) {
-+ unregister_blkdev(MAJOR_NR,"hd");
-+ return -ENOMEM;
-+ }
-+
-+
-+ blk_queue_max_sectors(hd_queue, 255);
-+ blk_queue_hardsect_size(hd_queue, 512);
-+
-+ #if 1
-+ hd_info[0].cyl = info_buf.id.cyls;
-+ hd_info[0].head = info_buf.id.heads;
-+ hd_info[0].wpcom = 0;
-+ hd_info[0].ctl = 0;
-+ hd_info[0].lzone = 0;
-+ hd_info[0].sect = info_buf.id.sectors;
-+ NR_HD++;
-+
-+ printk("%s:%d NR_HD %d\n", __FUNCTION__, __LINE__, NR_HD);
-+
-+ #else
-+ #ifdef __i386__
-+ if (!NR_HD) {
-+ extern struct drive_info drive_info;
-+ unsigned char *BIOS = (unsigned char *) &drive_info;
-+ unsigned long flags;
-+ int cmos_disks;
-+
-+ for (drive=0 ; drive<2 ; drive++) {
-+ hd_info[drive].cyl = *(unsigned short *) BIOS;
-+ hd_info[drive].head = *(2+BIOS);
-+ hd_info[drive].wpcom = *(unsigned short *) (5+BIOS);
-+ hd_info[drive].ctl = *(8+BIOS);
-+ hd_info[drive].lzone = *(unsigned short *) (12+BIOS);
-+ hd_info[drive].sect = *(14+BIOS);
-+ #ifdef does_not_work_for_everybody_with_scsi_but_helps_ibm_vp
-+ if (hd_info[drive].cyl && NR_HD == drive)
-+ NR_HD++;
-+ #endif
-+ BIOS += 16;
-+ }
-+
-+ /*
-+ We query CMOS about hard disks : it could be that
-+ we have a SCSI/ESDI/etc controller that is BIOS
-+ compatible with ST-506, and thus showing up in our
-+ BIOS table, but not register compatible, and therefore
-+ not present in CMOS.
-+
-+ Furthermore, we will assume that our ST-506 drives
-+ <if any> are the primary drives in the system, and
-+ the ones reflected as drive 1 or 2.
-+
-+ The first drive is stored in the high nibble of CMOS
-+ byte 0x12, the second in the low nibble. This will be
-+ either a 4 bit drive type or 0xf indicating use byte 0x19
-+ for an 8 bit type, drive 1, 0x1a for drive 2 in CMOS.
-+
-+ Needless to say, a non-zero value means we have
-+ an AT controller hard disk for that drive.
-+
-+ Currently the rtc_lock is a bit academic since this
-+ driver is non-modular, but someday... ? Paul G.
-+ */
-+
-+ spin_lock_irqsave(&rtc_lock, flags);
-+ cmos_disks = CMOS_READ(0x12);
-+ spin_unlock_irqrestore(&rtc_lock, flags);
-+
-+ if (cmos_disks & 0xf0) {
-+ if (cmos_disks & 0x0f)
-+ NR_HD = 2;
-+ else
-+ NR_HD = 1;
-+ }
-+ }
-+ #endif /* __i386__ */
-+ #ifdef __arm__
-+ if (!NR_HD) {
-+ /* We don't know anything about the drive. This means
-+ * that you *MUST* specify the drive parameters to the
-+ * kernel yourself.
-+ */
-+ printk("hd: no drives specified - use hd=cyl,head,sectors"
-+ " on kernel command line\n");
-+ }
-+ #endif
-+ #endif
-+ if (!NR_HD)
-+ goto out;
-+
-+ for (drive=0 ; drive < NR_HD ; drive++) {
-+ struct gendisk *disk = alloc_disk(64);
-+ struct hd_i_struct *p = &hd_info[drive];
-+ if (!disk)
-+ goto Enomem;
-+ disk->major = MAJOR_NR;
-+ disk->first_minor = drive << 6;
-+ disk->fops = &hd_fops;
-+ sprintf(disk->disk_name, "hd%c", 'a'+drive);
-+ disk->private_data = p;
-+ set_capacity(disk, p->head * p->sect * p->cyl);
-+ disk->queue = hd_queue;
-+ p->unit = drive;
-+ hd_gendisk[drive] = disk;
-+ printk ("%s: %luMB, CHS=%d/%d/%d\n",
-+ disk->disk_name, (unsigned long)get_capacity(disk)/2048,
-+ p->cyl, p->head, p->sect);
-+ }
-+
-+ /* Let them fly */
-+ for(drive=0; drive < NR_HD; drive++)
-+ add_disk(hd_gendisk[drive]);
-+
-+ return 0;
-+
-+ out:
-+ unregister_blkdev(MAJOR_NR,"hd");
-+ blk_cleanup_queue(hd_queue);
-+ return -1;
-+ Enomem:
-+ while (drive--)
-+ put_disk(hd_gendisk[drive]);
-+ goto out;
-+ }
-+
-+ static int __init parse_hd_setup (char *line) {
-+ int ints[6];
-+
-+ (void) get_options(line, ARRAY_SIZE(ints), ints);
-+ hd_setup(NULL, ints);
-+
-+ return 1;
-+ }
-+ __setup("hd=", parse_hd_setup);
-+
-+ module_init(hd_init);
-+
-+ /*
-+ * Local variables:
-+ * c-indent-level: 4
-+ * tab-width: 4
-+ * End:
-+ */
-Index: drivers/mtd/maps/Kconfig
-===================================================================
-RCS file: /cvs/eps/dev_eng/sw/products/Linux/PXAEngine/pxa/linux-2.6.17-rc5/drivers/mtd/maps/Kconfig,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -c -3 -p -r1.1.1.1 -r1.2
-*** drivers/mtd/maps/Kconfig 29 May 2006 00:58:44 -0000 1.1.1.1
---- drivers/mtd/maps/Kconfig 30 May 2006 13:04:33 -0000 1.2
-*************** config MTD_MAINSTONE
-*** 137,142 ****
---- 137,149 ----
- This provides a driver for the on-board flash of the Intel
- 'Mainstone PXA27x evaluation board.
-
-+ config MTD_LOGICPD_PXA270
-+ tristate "CFI Flash device mapped on LogicPD PXA270 Card Engine"
-+ depends on MACH_LOGICPD_PXA270 && MTD_CFI_INTELEXT && MTD_PARTITIONS
-+ help
-+ This provides a driver for the on-board flash of the LogicPD
-+ PXA270 Card Engine.
-+
- config MTD_OCTAGON
- tristate "JEDEC Flash device mapped on Octagon 5066 SBC"
- depends on X86 && MTD_JEDEC && MTD_COMPLEX_MAPPINGS
-Index: drivers/mtd/maps/Makefile
-===================================================================
-RCS file: /cvs/eps/dev_eng/sw/products/Linux/PXAEngine/pxa/linux-2.6.17-rc5/drivers/mtd/maps/Makefile,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -c -3 -p -r1.1.1.1 -r1.2
-*** drivers/mtd/maps/Makefile 29 May 2006 00:58:44 -0000 1.1.1.1
---- drivers/mtd/maps/Makefile 30 May 2006 13:04:33 -0000 1.2
-*************** obj-$(CONFIG_MTD_ICHXROM) += ichxrom.o
-*** 22,27 ****
---- 22,28 ----
- obj-$(CONFIG_MTD_TSUNAMI) += tsunami_flash.o
- obj-$(CONFIG_MTD_LUBBOCK) += lubbock-flash.o
- obj-$(CONFIG_MTD_MAINSTONE) += mainstone-flash.o
-+ obj-$(CONFIG_MTD_LOGICPD_PXA270)+= lpd270-flash.o
- obj-$(CONFIG_MTD_MBX860) += mbx860.o
- obj-$(CONFIG_MTD_CEIVA) += ceiva.o
- obj-$(CONFIG_MTD_OCTAGON) += octagon-5066.o
-Index: drivers/mtd/maps/lpd270-flash.c
-===================================================================
-RCS file: drivers/mtd/maps/lpd270-flash.c
-diff -N drivers/mtd/maps/lpd270-flash.c
-*** /dev/null 1 Jan 1970 00:00:00 -0000
---- drivers/mtd/maps/lpd270-flash.c 30 May 2006 13:03:55 -0000 1.1
-***************
-*** 0 ****
---- 1,197 ----
-+ /*
-+ * $Id: lpd270-flash.c,v 1.1 2006/05/30 13:03:55 LOGIC+peterb Exp $
-+ *
-+ * Map driver for the Lpd270 developer platform.
-+ *
-+ * Author: Nicolas Pitre
-+ * Copyright: (C) 2001 MontaVista Software Inc.
-+ *
-+ * 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.
-+ */
-+
-+ #include <linux/module.h>
-+ #include <linux/types.h>
-+ #include <linux/kernel.h>
-+ #include <linux/init.h>
-+ #include <linux/dma-mapping.h>
-+ #include <linux/slab.h>
-+
-+ #include <linux/mtd/mtd.h>
-+ #include <linux/mtd/map.h>
-+ #include <linux/mtd/partitions.h>
-+
-+ #include <asm/io.h>
-+ #include <asm/hardware.h>
-+ #include <asm/arch/pxa-regs.h>
-+ // #include <asm/arch/lpd270.h>
-+
-+
-+ #define ROM_ADDR 0x00000000
-+ #define FLASH_ADDR 0x04000000
-+
-+ #define WINDOW_SIZE 0x04000000
-+
-+ static void lpd270_map_inval_cache(struct map_info *map, unsigned long from,
-+ ssize_t len)
-+ {
-+ consistent_sync((char *)map->cached + from, len, DMA_FROM_DEVICE);
-+ }
-+
-+ static struct map_info lpd270_maps[2] = { {
-+ .size = WINDOW_SIZE,
-+ .phys = PXA_CS0_PHYS,
-+ .inval_cache = lpd270_map_inval_cache,
-+ }, {
-+ .size = WINDOW_SIZE,
-+ .phys = PXA_CS1_PHYS,
-+ .inval_cache = lpd270_map_inval_cache,
-+ } };
-+
-+ static struct mtd_partition lpd270_partitions[] = {
-+ {
-+ .name = "Bootloader",
-+ .size = 0x000C0000,
-+ .offset = 0,
-+ .mask_flags = MTD_WRITEABLE /* force read-only */
-+ },{
-+ .name = "YAFFS",
-+ .size = 0x00F40000,
-+ .offset = 0x000C0000,
-+ },{
-+ .name = "Filesystem",
-+ .size = MTDPART_SIZ_FULL,
-+ .offset = 0x01000000
-+ }
-+ };
-+
-+ static struct mtd_info *mymtds[2];
-+ static struct mtd_partition *parsed_parts[2];
-+ static int nr_parsed_parts[2];
-+
-+ static const char *probes[] = { "RedBoot", "cmdlinepart", NULL };
-+
-+ static int __init init_lpd270(void)
-+ {
-+ int SW7 = 0; /* FIXME: get from SCR (Mst doc section 3.2.1.1) */
-+ int ret = 0, i;
-+
-+ lpd270_maps[0].bankwidth = (BOOT_DEF & 1) ? 2 : 4;
-+ lpd270_maps[1].bankwidth = 4;
-+
-+ /* Compensate for SW7 which swaps the flash banks */
-+ lpd270_maps[SW7].name = "processor flash";
-+ lpd270_maps[SW7 ^ 1].name = "main board flash";
-+
-+ printk(KERN_NOTICE "Lpd270 configured to boot from %s\n",
-+ lpd270_maps[0].name);
-+
-+ // Set VPP in CPLD to allow writes to the flash
-+ {
-+ unsigned short *p;
-+
-+ p = ioremap(0x08000000, PAGE_SIZE);
-+ if (!p) {
-+ printk("%s:%d ioremap failed\n", __FUNCTION__, __LINE__);
-+ } else {
-+ printk("%s:%d CTRL REG %04x\n", __FUNCTION__, __LINE__, *p);
-+ *p |= (1<<3); // FL_VPEN
-+ iounmap(p);
-+ }
-+ }
-+
-+ for (i = 0; i < 2; i++) {
-+ lpd270_maps[i].virt = ioremap_nocache(lpd270_maps[i].phys,
-+ WINDOW_SIZE);
-+ if (!lpd270_maps[i].virt) {
-+ printk(KERN_WARNING "Failed to ioremap %s\n",
-+ lpd270_maps[i].name);
-+ if (!ret)
-+ ret = -ENOMEM;
-+ continue;
-+ }
-+ #if 0
-+ lpd270_maps[i].cached =
-+ ioremap_cached(lpd270_maps[i].phys, WINDOW_SIZE);
-+ if (!lpd270_maps[i].cached)
-+ printk(KERN_WARNING "Failed to ioremap cached %s\n",
-+ lpd270_maps[i].name);
-+ #endif
-+ simple_map_init(&lpd270_maps[i]);
-+
-+ printk(KERN_NOTICE
-+ "Probing %s at physical address 0x%08lx"
-+ " (%d-bit bankwidth)\n",
-+ lpd270_maps[i].name, lpd270_maps[i].phys,
-+ lpd270_maps[i].bankwidth * 8);
-+
-+ mymtds[i] = do_map_probe("cfi_probe", &lpd270_maps[i]);
-+
-+ if (!mymtds[i]) {
-+ iounmap((void *)lpd270_maps[i].virt);
-+ if (lpd270_maps[i].cached)
-+ iounmap(lpd270_maps[i].cached);
-+ if (!ret)
-+ ret = -EIO;
-+ continue;
-+ }
-+ mymtds[i]->owner = THIS_MODULE;
-+
-+ ret = parse_mtd_partitions(mymtds[i], probes,
-+ &parsed_parts[i], 0);
-+
-+ if (ret > 0)
-+ nr_parsed_parts[i] = ret;
-+ }
-+
-+ if (!mymtds[0] && !mymtds[1])
-+ return ret;
-+
-+ for (i = 0; i < 2; i++) {
-+ if (!mymtds[i]) {
-+ printk(KERN_WARNING "%s is absent. Skipping\n",
-+ lpd270_maps[i].name);
-+ } else if (nr_parsed_parts[i]) {
-+ add_mtd_partitions(mymtds[i], parsed_parts[i],
-+ nr_parsed_parts[i]);
-+ } else if (!i) {
-+ printk("Using static partitions on %s\n",
-+ lpd270_maps[i].name);
-+ add_mtd_partitions(mymtds[i], lpd270_partitions,
-+ ARRAY_SIZE(lpd270_partitions));
-+ } else {
-+ printk("Registering %s as whole device\n",
-+ lpd270_maps[i].name);
-+ add_mtd_device(mymtds[i]);
-+ }
-+ }
-+ return 0;
-+ }
-+
-+ static void __exit cleanup_lpd270(void)
-+ {
-+ int i;
-+ for (i = 0; i < 2; i++) {
-+ if (!mymtds[i])
-+ continue;
-+
-+ if (nr_parsed_parts[i] || !i)
-+ del_mtd_partitions(mymtds[i]);
-+ else
-+ del_mtd_device(mymtds[i]);
-+
-+ map_destroy(mymtds[i]);
-+ iounmap((void *)lpd270_maps[i].virt);
-+ if (lpd270_maps[i].cached)
-+ iounmap(lpd270_maps[i].cached);
-+ kfree(parsed_parts[i]);
-+ }
-+ }
-+
-+ module_init(init_lpd270);
-+ module_exit(cleanup_lpd270);
-+
-+ MODULE_LICENSE("GPL");
-+ MODULE_AUTHOR("Nicolas Pitre <nico@cam.org>");
-+ MODULE_DESCRIPTION("MTD map driver for Logic PXA270");
-Index: drivers/net/smc91x.h
-===================================================================
-RCS file: /cvs/eps/dev_eng/sw/products/Linux/PXAEngine/pxa/linux-2.6.17-rc5/drivers/net/smc91x.h,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -c -3 -p -r1.1.1.1 -r1.2
-*** drivers/net/smc91x.h 29 May 2006 00:59:41 -0000 1.1.1.1
---- drivers/net/smc91x.h 29 May 2006 17:42:44 -0000 1.2
-***************
-*** 129,134 ****
---- 129,152 ----
- #define SMC_insb(a, r, p, l) readsb((a) + (r), p, (l))
- #define SMC_outsb(a, r, p, l) writesb((a) + (r), p, (l))
-
-+ #elif defined(CONFIG_MACH_LOGICPD_PXA270)
-+
-+ #define SMC_CAN_USE_8BIT 0
-+ #define SMC_CAN_USE_16BIT 1
-+ #define SMC_CAN_USE_32BIT 0
-+ #define SMC_IO_SHIFT 0
-+ #define SMC_NOWAIT 1
-+ #define SMC_USE_PXA_DMA 1
-+
-+ // #define SMC_inb(a, r) readb((a) + (r))
-+ #define SMC_inw(a, r) readw((a) + (r))
-+ // #define SMC_inl(a, r) readl((a) + (r))
-+ // #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) writel(v, (a) + (r))
-+ #define SMC_insw(a, r, p, l) readsw((a) + (r), p, l)
-+ #define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l)
-+
- #elif defined(CONFIG_ARCH_INNOKOM) || \
- defined(CONFIG_MACH_MAINSTONE) || \
- defined(CONFIG_ARCH_PXA_IDP) || \
-Index: drivers/video/Kconfig
-===================================================================
-RCS file: /cvs/eps/dev_eng/sw/products/Linux/PXAEngine/pxa/linux-2.6.17-rc5/drivers/video/Kconfig,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -c -3 -p -r1.1.1.1 -r1.2
-*** drivers/video/Kconfig 29 May 2006 01:04:29 -0000 1.1.1.1
---- drivers/video/Kconfig 1 Jun 2006 17:06:34 -0000 1.2
-*************** config FB_PXA_PARAMETERS
-*** 1402,1407 ****
---- 1402,1436 ----
-
- <file:Documentation/fb/pxafb.txt> describes the available parameters.
-
-+ choice
-+ prompt "Select LogicPD LCD panel type"
-+
-+ config FB_PXA_LPD_LQ64D343
-+ bool "6.4\" TFT VGA 640x480"
-+ depends on FB_PXA
-+ ---help---
-+ Sharp LQ64D343 LCD panel
-+
-+ config FB_PXA_LPD_LQ035Q7DB02
-+ bool "3.5\" TFT QVGA 240x320"
-+ depends on FB_PXA
-+ ---help---
-+ Sharp LQ035Q7DB02 LCD panel
-+
-+ config FB_PXA_LPD_LQ057Q3DC02
-+ bool "5.7\" TFT QVGA 240x320"
-+ depends on FB_PXA
-+ ---help---
-+ Sharp LQ057Q3DC02 LCD panel
-+
-+ config FB_PXA_LPD_LQ10D368
-+ bool "10.4\" TFT VGA 640x480"
-+ depends on FB_PXA
-+ ---help---
-+ Sharp LQ10D368 LCD panel
-+
-+ endchoice
-+
- config FB_W100
- tristate "W100 frame buffer support"
- depends on FB && PXA_SHARPSL
diff --git a/packages/linux/logicpd-pxa270-2.6.17-rc5/ucb1400-ac97-audio.patch b/packages/linux/logicpd-pxa270-2.6.17-rc5/ucb1400-ac97-audio.patch
deleted file mode 100644
index 692dd1d6c1..0000000000
--- a/packages/linux/logicpd-pxa270-2.6.17-rc5/ucb1400-ac97-audio.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-Index: linux-2.6.17-rc5/sound/pci/ac97/ac97_codec.c
-===================================================================
---- linux-2.6.17-rc5.orig/sound/pci/ac97/ac97_codec.c
-+++ linux-2.6.17-rc5/sound/pci/ac97/ac97_codec.c
-@@ -151,7 +151,7 @@ static const struct ac97_codec_id snd_ac
- { 0x4e534300, 0xffffffff, "LM4540,43,45,46,48", NULL, NULL }, // only guess --jk
- { 0x4e534331, 0xffffffff, "LM4549", NULL, NULL },
- { 0x4e534350, 0xffffffff, "LM4550", patch_lm4550, NULL }, // volume wrap fix
--{ 0x50534304, 0xffffffff, "UCB1400", NULL, NULL },
-+{ 0x50534304, 0xffffffff, "UCB1400", patch_ucb1400, NULL, AC97_HAS_NO_STD_PCM },
- { 0x53494c20, 0xffffffe0, "Si3036,8", mpatch_si3036, mpatch_si3036, AC97_MODEM_PATCH },
- { 0x54524102, 0xffffffff, "TR28022", NULL, NULL },
- { 0x54524106, 0xffffffff, "TR28026", NULL, NULL },
-Index: linux-2.6.17-rc5/sound/pci/ac97/ac97_patch.c
-===================================================================
---- linux-2.6.17-rc5.orig/sound/pci/ac97/ac97_patch.c
-+++ linux-2.6.17-rc5/sound/pci/ac97/ac97_patch.c
-@@ -375,7 +375,57 @@ int patch_yamaha_ymf753(struct snd_ac97
- ac97->caps |= 0x04 << 10; /* Yamaha 3D enhancement */
- return 0;
- }
-+/*
-+ * UCB1400 codec
-+ */
-+
-+#define AC97_UCB1400_FCSR1 0x6a
-+#define AC97_UCB1400_FCSR2 0x6c
-+
-+static const snd_kcontrol_new_t ucb1400_snd_ac97_controls[] = {
-+ AC97_SINGLE("Tone Control - Bass", AC97_UCB1400_FCSR1, 11, 4, 0),
-+ AC97_SINGLE("Tone Control - Treble", AC97_UCB1400_FCSR1, 9, 2, 0),
-+ AC97_SINGLE("Headphone Playback Switch", AC97_UCB1400_FCSR1, 6, 1, 0),
-+ AC97_SINGLE("De-emphasis", AC97_UCB1400_FCSR1, 5, 1, 0),
-+ AC97_SINGLE("DC Filter", AC97_UCB1400_FCSR1, 4, 1, 0),
-+ AC97_SINGLE("Hi-pass Filter", AC97_UCB1400_FCSR1, 3, 1, 0),
-+ AC97_SINGLE("ADC Filter", AC97_UCB1400_FCSR2, 12, 1, 0),
-+};
-+
-+int patch_ucb1400(ac97_t * ac97)
-+{
-+ int err, i;
-
-+ for(i = 0; i < ARRAY_SIZE(ucb1400_snd_ac97_controls); i++) {
-+ if((err = snd_ctl_add(ac97->bus->card, snd_ac97_cnew(&ucb1400_snd_ac97_controls[i], ac97))) < 0)
-+ return err;
-+ }
-+
-+ snd_ac97_write_cache(ac97, AC97_UCB1400_FCSR1,
-+ (0 << 11) | // 0 base boost
-+ (0 << 9) | // 0 treble boost
-+ (0 << 7) | // Mode = flat
-+ (1 << 6) | // Headphones enable
-+ (0 << 5) | // De-emphasis disabled
-+ (1 << 4) | // DC filter enabled
-+ (1 << 3) | // Hi-pass filter enabled
-+ (0 << 2) | // disable interrupt signalling via GPIO_INT
-+ (1 << 0) // clear ADC overflow status if set
-+ );
-+
-+ snd_ac97_write_cache(ac97, AC97_UCB1400_FCSR2,
-+ (0 << 15) | // must be 0
-+ (0 << 13) | // must be 0
-+ (1 << 12) | // ADC filter enabled
-+ (0 << 10) | // must be 0
-+ (0 << 4) | // Smart low power mode on neither Codec nor PLL
-+ (0 << 0) // must be 0
-+ );
-+
-+ return 0;
-+}
-+
-+/*
- /*
- * May 2, 2003 Liam Girdwood <liam.girdwood@wolfsonmicro.com>
- * removed broken wolfson00 patch.
-Index: linux-2.6.17-rc5/sound/pci/ac97/ac97_patch.h
-===================================================================
---- linux-2.6.17-rc5.orig/sound/pci/ac97/ac97_patch.h
-+++ linux-2.6.17-rc5/sound/pci/ac97/ac97_patch.h
-@@ -58,5 +58,6 @@ int patch_cm9780(struct snd_ac97 * ac97)
- int patch_vt1616(struct snd_ac97 * ac97);
- int patch_vt1617a(struct snd_ac97 * ac97);
- int patch_it2646(struct snd_ac97 * ac97);
-+int patch_ucb1400(ac97_t * ac97);
- int mpatch_si3036(struct snd_ac97 * ac97);
- int patch_lm4550(struct snd_ac97 * ac97);
diff --git a/packages/linux/logicpd-pxa270-2.6.17-rc5/ucb1400-touchscreen.patch b/packages/linux/logicpd-pxa270-2.6.17-rc5/ucb1400-touchscreen.patch
deleted file mode 100644
index ba04d46176..0000000000
--- a/packages/linux/logicpd-pxa270-2.6.17-rc5/ucb1400-touchscreen.patch
+++ /dev/null
@@ -1,739 +0,0 @@
-This patch is slightly adjusted from
-
-http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=3073/1
-http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=3074/2
-http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=3075/2
-
-in order to get it to apply cleanly to the released 2.6.15 codebase
-and to put the Kconfig stuff in a more reasonable place in the tree.
-Actually, I think Kconfig should probably separate the notion of the
-touchscreen driver and the AC97-MCP layer thing; but that problem is
-basically in the underlying mcp-based ucb1x00 driver layout in the
-first place.
-Index: linux-2.6.17-rc5/drivers/mfd/Makefile
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/mfd/Makefile
-+++ linux-2.6.17-rc5/drivers/mfd/Makefile
-@@ -10,3 +10,6 @@ obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-
- ifeq ($(CONFIG_SA1100_ASSABET),y)
- obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o
- endif
-+
-+obj-$(CONFIG_TOUCHSCREEN_UCB1400) += mcp-ac97.o ucb1x00-core.o ucb1x00-ts.o
-+
-Index: linux-2.6.17-rc5/drivers/mfd/mcp-core.c
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/mfd/mcp-core.c
-+++ linux-2.6.17-rc5/drivers/mfd/mcp-core.c
-@@ -18,7 +18,6 @@
- #include <linux/slab.h>
- #include <linux/string.h>
-
--#include <asm/dma.h>
- #include <asm/system.h>
-
- #include "mcp.h"
-@@ -208,6 +207,7 @@ struct mcp *mcp_host_alloc(struct device
- mcp->attached_device.bus = &mcp_bus_type;
- mcp->attached_device.dma_mask = parent->dma_mask;
- mcp->attached_device.release = mcp_release;
-+ mcp->dev = &mcp->attached_device;
- }
- return mcp;
- }
-Index: linux-2.6.17-rc5/drivers/mfd/mcp-sa11x0.c
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/mfd/mcp-sa11x0.c
-+++ linux-2.6.17-rc5/drivers/mfd/mcp-sa11x0.c
-@@ -31,8 +31,12 @@
- #include "mcp.h"
-
- struct mcp_sa11x0 {
-- u32 mccr0;
-- u32 mccr1;
-+ u32 mccr0;
-+ u32 mccr1;
-+ dma_device_t dma_audio_rd;
-+ dma_device_t dma_audio_wr;
-+ dma_device_t dma_telco_rd;
-+ dma_device_t dma_telco_wr;
- };
-
- #define priv(mcp) ((struct mcp_sa11x0 *)mcp_priv(mcp))
-@@ -159,10 +163,10 @@ static int mcp_sa11x0_probe(struct platf
- mcp->owner = THIS_MODULE;
- mcp->ops = &mcp_sa11x0;
- mcp->sclk_rate = data->sclk_rate;
-- mcp->dma_audio_rd = DMA_Ser4MCP0Rd;
-- mcp->dma_audio_wr = DMA_Ser4MCP0Wr;
-- mcp->dma_telco_rd = DMA_Ser4MCP1Rd;
-- mcp->dma_telco_wr = DMA_Ser4MCP1Wr;
-+ priv(mcp)->dma_audio_rd = DMA_Ser4MCP0Rd;
-+ priv(mcp)->dma_audio_wr = DMA_Ser4MCP0Wr;
-+ priv(mcp)->dma_telco_rd = DMA_Ser4MCP1Rd;
-+ priv(mcp)->dma_telco_wr = DMA_Ser4MCP1Wr;
-
- platform_set_drvdata(pdev, mcp);
-
-Index: linux-2.6.17-rc5/drivers/mfd/mcp.h
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/mfd/mcp.h
-+++ linux-2.6.17-rc5/drivers/mfd/mcp.h
-@@ -19,11 +19,8 @@ struct mcp {
- int use_count;
- unsigned int sclk_rate;
- unsigned int rw_timeout;
-- dma_device_t dma_audio_rd;
-- dma_device_t dma_audio_wr;
-- dma_device_t dma_telco_rd;
-- dma_device_t dma_telco_wr;
- struct device attached_device;
-+ struct device *dev;
- };
-
- struct mcp_ops {
-Index: linux-2.6.17-rc5/drivers/mfd/ucb1x00-assabet.c
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/mfd/ucb1x00-assabet.c
-+++ linux-2.6.17-rc5/drivers/mfd/ucb1x00-assabet.c
-@@ -15,8 +15,6 @@
- #include <linux/proc_fs.h>
- #include <linux/device.h>
-
--#include <asm/dma.h>
--
- #include "ucb1x00.h"
-
- #define UCB1X00_ATTR(name,input)\
-Index: linux-2.6.17-rc5/drivers/mfd/ucb1x00-core.c
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/mfd/ucb1x00-core.c
-+++ linux-2.6.17-rc5/drivers/mfd/ucb1x00-core.c
-@@ -23,6 +23,7 @@
- #include <linux/init.h>
- #include <linux/errno.h>
- #include <linux/interrupt.h>
-+#include <linux/kthread.h>
- #include <linux/device.h>
- #include <linux/mutex.h>
-
-@@ -31,6 +32,14 @@
-
- #include "ucb1x00.h"
-
-+#if (defined CONFIG_UCB1400) || (defined CONFIG_UCB1400_MODULE)
-+#define UCB_IS_1400(id) ((id) == UCB_ID_1400)
-+#define UCB_X_CSR1 0xe /* this fake entry will be translated by mcp */
-+#define UCB_X_CSR2 0xf /* this fake entry will be translated by mcp */
-+#else
-+#define UCB_IS_1400(id) (0)
-+#endif
-+
- static DEFINE_MUTEX(ucb1x00_mutex);
- static LIST_HEAD(ucb1x00_drivers);
- static LIST_HEAD(ucb1x00_devices);
-@@ -58,9 +67,9 @@ void ucb1x00_io_set_dir(struct ucb1x00 *
- spin_lock_irqsave(&ucb->io_lock, flags);
- ucb->io_dir |= out;
- ucb->io_dir &= ~in;
-+ spin_unlock_irqrestore(&ucb->io_lock, flags);
-
- ucb1x00_reg_write(ucb, UCB_IO_DIR, ucb->io_dir);
-- spin_unlock_irqrestore(&ucb->io_lock, flags);
- }
-
- /**
-@@ -86,9 +95,9 @@ void ucb1x00_io_write(struct ucb1x00 *uc
- spin_lock_irqsave(&ucb->io_lock, flags);
- ucb->io_out |= set;
- ucb->io_out &= ~clear;
-+ spin_unlock_irqrestore(&ucb->io_lock, flags);
-
- ucb1x00_reg_write(ucb, UCB_IO_DATA, ucb->io_out);
-- spin_unlock_irqrestore(&ucb->io_lock, flags);
- }
-
- /**
-@@ -178,7 +187,7 @@ unsigned int ucb1x00_adc_read(struct ucb
- schedule_timeout(1);
- }
-
-- return UCB_ADC_DAT(val);
-+ return UCB_IS_1400(ucb->id) ? (val & 0x3ff) : ((val & 0x7fe0) >> 5);
- }
-
- /**
-@@ -223,6 +232,47 @@ static irqreturn_t ucb1x00_irq(int irqnr
- return IRQ_HANDLED;
- }
-
-+/*
-+ * A restriction with interrupts exists when using the ucb1400, as
-+ * the codec read/write routines may sleep while waiting for codec
-+ * access completion and uses semaphores for access control to the
-+ * AC97 bus. A complete codec read cycle could take anywhere from
-+ * 60 to 100uSec so we *definitely* don't want to spin inside the
-+ * interrupt handler waiting for codec access. So, we handle the
-+ * interrupt by scheduling a RT kernel thread to run in process
-+ * context instead of interrupt context.
-+ */
-+static int ucb1x00_thread(void *_ucb)
-+{
-+ struct task_struct *tsk = current;
-+ struct ucb1x00 *ucb = _ucb;
-+
-+ tsk->policy = SCHED_FIFO;
-+ tsk->rt_priority = 1;
-+
-+ while (!kthread_should_stop()) {
-+ wait_for_completion_interruptible(&ucb->irq_wait);
-+ if (try_to_freeze())
-+ continue;
-+ ucb1x00_irq(ucb->irq, ucb, NULL);
-+ enable_irq(ucb->irq);
-+ }
-+
-+ ucb->irq_task = NULL;
-+ return 0;
-+}
-+
-+static irqreturn_t ucb1x00_threaded_irq(int irqnr, void *devid, struct pt_regs *regs)
-+{
-+ struct ucb1x00 *ucb = devid;
-+ if (irqnr == ucb->irq) {
-+ disable_irq(ucb->irq);
-+ complete(&ucb->irq_wait);
-+ return IRQ_HANDLED;
-+ }
-+ return IRQ_NONE;
-+}
-+
- /**
- * ucb1x00_hook_irq - hook a UCB1x00 interrupt
- * @ucb: UCB1x00 structure describing chip
-@@ -276,18 +326,22 @@ void ucb1x00_enable_irq(struct ucb1x00 *
-
- if (idx < 16) {
- spin_lock_irqsave(&ucb->lock, flags);
--
-- ucb1x00_enable(ucb);
-- if (edges & UCB_RISING) {
-+ if (edges & UCB_RISING)
- ucb->irq_ris_enbl |= 1 << idx;
-- ucb1x00_reg_write(ucb, UCB_IE_RIS, ucb->irq_ris_enbl);
-- }
-- if (edges & UCB_FALLING) {
-+ if (edges & UCB_FALLING)
- ucb->irq_fal_enbl |= 1 << idx;
-- ucb1x00_reg_write(ucb, UCB_IE_FAL, ucb->irq_fal_enbl);
-- }
-- ucb1x00_disable(ucb);
- spin_unlock_irqrestore(&ucb->lock, flags);
-+
-+ ucb1x00_enable(ucb);
-+
-+ /* This prevents spurious interrupts on the UCB1400 */
-+ ucb1x00_reg_write(ucb, UCB_IE_CLEAR, 1 << idx);
-+ ucb1x00_reg_write(ucb, UCB_IE_CLEAR, 0);
-+
-+ ucb1x00_reg_write(ucb, UCB_IE_RIS, ucb->irq_ris_enbl);
-+ ucb1x00_reg_write(ucb, UCB_IE_FAL, ucb->irq_fal_enbl);
-+
-+ ucb1x00_disable(ucb);
- }
- }
-
-@@ -305,18 +359,16 @@ void ucb1x00_disable_irq(struct ucb1x00
-
- if (idx < 16) {
- spin_lock_irqsave(&ucb->lock, flags);
--
-- ucb1x00_enable(ucb);
-- if (edges & UCB_RISING) {
-+ if (edges & UCB_RISING)
- ucb->irq_ris_enbl &= ~(1 << idx);
-- ucb1x00_reg_write(ucb, UCB_IE_RIS, ucb->irq_ris_enbl);
-- }
-- if (edges & UCB_FALLING) {
-+ if (edges & UCB_FALLING)
- ucb->irq_fal_enbl &= ~(1 << idx);
-- ucb1x00_reg_write(ucb, UCB_IE_FAL, ucb->irq_fal_enbl);
-- }
-- ucb1x00_disable(ucb);
- spin_unlock_irqrestore(&ucb->lock, flags);
-+
-+ ucb1x00_enable(ucb);
-+ ucb1x00_reg_write(ucb, UCB_IE_RIS, ucb->irq_ris_enbl);
-+ ucb1x00_reg_write(ucb, UCB_IE_FAL, ucb->irq_fal_enbl);
-+ ucb1x00_disable(ucb);
- }
- }
-
-@@ -349,16 +401,17 @@ int ucb1x00_free_irq(struct ucb1x00 *ucb
- ucb->irq_ris_enbl &= ~(1 << idx);
- ucb->irq_fal_enbl &= ~(1 << idx);
-
-- ucb1x00_enable(ucb);
-- ucb1x00_reg_write(ucb, UCB_IE_RIS, ucb->irq_ris_enbl);
-- ucb1x00_reg_write(ucb, UCB_IE_FAL, ucb->irq_fal_enbl);
-- ucb1x00_disable(ucb);
--
- irq->fn = NULL;
- irq->devid = NULL;
- ret = 0;
- }
- spin_unlock_irq(&ucb->lock);
-+
-+ ucb1x00_enable(ucb);
-+ ucb1x00_reg_write(ucb, UCB_IE_RIS, ucb->irq_ris_enbl);
-+ ucb1x00_reg_write(ucb, UCB_IE_FAL, ucb->irq_fal_enbl);
-+ ucb1x00_disable(ucb);
-+
- return ret;
-
- bad:
-@@ -478,7 +531,7 @@ static int ucb1x00_probe(struct mcp *mcp
- mcp_enable(mcp);
- id = mcp_reg_read(mcp, UCB_ID);
-
-- if (id != UCB_ID_1200 && id != UCB_ID_1300) {
-+ if (id != UCB_ID_1200 && id != UCB_ID_1300 && !UCB_IS_1400(id)) {
- printk(KERN_WARNING "UCB1x00 ID not found: %04x\n", id);
- goto err_disable;
- }
-@@ -491,12 +544,13 @@ static int ucb1x00_probe(struct mcp *mcp
- memset(ucb, 0, sizeof(struct ucb1x00));
-
- ucb->cdev.class = &ucb1x00_class;
-- ucb->cdev.dev = &mcp->attached_device;
-+ ucb->cdev.dev = mcp->dev;
- strlcpy(ucb->cdev.class_id, "ucb1x00", sizeof(ucb->cdev.class_id));
-
- spin_lock_init(&ucb->lock);
- spin_lock_init(&ucb->io_lock);
- sema_init(&ucb->adc_sem, 1);
-+ init_completion(&ucb->irq_wait);
-
- ucb->id = id;
- ucb->mcp = mcp;
-@@ -507,13 +561,22 @@ static int ucb1x00_probe(struct mcp *mcp
- goto err_free;
- }
-
-- ret = request_irq(ucb->irq, ucb1x00_irq, SA_TRIGGER_RISING,
-- "UCB1x00", ucb);
-+ ret = request_irq(ucb->irq,
-+ UCB_IS_1400(id) ? ucb1x00_threaded_irq : ucb1x00_irq,
-+ 0, "UCB1x00", ucb);
- if (ret) {
- printk(KERN_ERR "ucb1x00: unable to grab irq%d: %d\n",
- ucb->irq, ret);
- goto err_free;
- }
-+ if (UCB_IS_1400(id)) {
-+ ucb->irq_task = kthread_run(ucb1x00_thread, ucb, "kUCB1x00d");
-+ if (IS_ERR(ucb->irq_task)) {
-+ ret = PTR_ERR(ucb->irq_task);
-+ ucb->irq_task = NULL;
-+ goto err_irq;
-+ }
-+ }
-
- mcp_set_drvdata(mcp, ucb);
-
-@@ -531,6 +594,8 @@ static int ucb1x00_probe(struct mcp *mcp
- goto out;
-
- err_irq:
-+ if (UCB_IS_1400(id) && ucb->irq_task)
-+ kthread_stop(ucb->irq_task);
- free_irq(ucb->irq, ucb);
- err_free:
- kfree(ucb);
-@@ -553,6 +618,8 @@ static void ucb1x00_remove(struct mcp *m
- }
- mutex_unlock(&ucb1x00_mutex);
-
-+ if (UCB_IS_1400(ucb->id) && ucb->irq_task)
-+ kthread_stop(ucb->irq_task);
- free_irq(ucb->irq, ucb);
- class_device_unregister(&ucb->cdev);
- }
-Index: linux-2.6.17-rc5/drivers/mfd/ucb1x00-ts.c
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/mfd/ucb1x00-ts.c
-+++ linux-2.6.17-rc5/drivers/mfd/ucb1x00-ts.c
-@@ -33,10 +33,8 @@
- #include <linux/slab.h>
- #include <linux/kthread.h>
-
--#include <asm/dma.h>
--#include <asm/semaphore.h>
--#include <asm/arch/collie.h>
- #include <asm/mach-types.h>
-+#include <asm/arch-sa1100/collie.h>
-
- #include "ucb1x00.h"
-
-@@ -45,13 +43,14 @@ struct ucb1x00_ts {
- struct input_dev *idev;
- struct ucb1x00 *ucb;
-
-- wait_queue_head_t irq_wait;
-+ struct completion irq_wait;
- struct task_struct *rtask;
- u16 x_res;
- u16 y_res;
-
- unsigned int restart:1;
- unsigned int adcsync:1;
-+ unsigned int go_thread;
- };
-
- static int adcsync;
-@@ -205,7 +204,6 @@ static int ucb1x00_thread(void *_ts)
- {
- struct ucb1x00_ts *ts = _ts;
- struct task_struct *tsk = current;
-- DECLARE_WAITQUEUE(wait, tsk);
- int valid;
-
- /*
-@@ -217,10 +215,8 @@ static int ucb1x00_thread(void *_ts)
-
- valid = 0;
-
-- add_wait_queue(&ts->irq_wait, &wait);
-- while (!kthread_should_stop()) {
-+ while (!kthread_should_stop() && ts->go_thread) {
- unsigned int x, y, p;
-- signed long timeout;
-
- ts->restart = 0;
-
-@@ -242,8 +238,6 @@ static int ucb1x00_thread(void *_ts)
-
-
- if (ucb1x00_ts_pen_down(ts)) {
-- set_task_state(tsk, TASK_INTERRUPTIBLE);
--
- ucb1x00_enable_irq(ts->ucb, UCB_IRQ_TSPX, machine_is_collie() ? UCB_RISING : UCB_FALLING);
- ucb1x00_disable(ts->ucb);
-
-@@ -256,7 +250,16 @@ static int ucb1x00_thread(void *_ts)
- valid = 0;
- }
-
-- timeout = MAX_SCHEDULE_TIMEOUT;
-+ /*
-+ * Since ucb1x00_enable_irq() might sleep due
-+ * to the way the UCB1400 regs are accessed, we
-+ * can't use set_task_state() before that call,
-+ * and not changing state before enabling the
-+ * interrupt is racy. A completion handler avoids
-+ * the issue.
-+ */
-+ wait_for_completion_interruptible(&ts->irq_wait);
-+
- } else {
- ucb1x00_disable(ts->ucb);
-
-@@ -271,16 +274,12 @@ static int ucb1x00_thread(void *_ts)
- }
-
- set_task_state(tsk, TASK_INTERRUPTIBLE);
-- timeout = HZ / 100;
-+ schedule_timeout(HZ/100);
- }
-
- try_to_freeze();
--
-- schedule_timeout(timeout);
- }
-
-- remove_wait_queue(&ts->irq_wait, &wait);
--
- ts->rtask = NULL;
- return 0;
- }
-@@ -293,7 +292,7 @@ static void ucb1x00_ts_irq(int idx, void
- {
- struct ucb1x00_ts *ts = id;
- ucb1x00_disable_irq(ts->ucb, UCB_IRQ_TSPX, UCB_FALLING);
-- wake_up(&ts->irq_wait);
-+ complete(&ts->irq_wait);
- }
-
- static int ucb1x00_ts_open(struct input_dev *idev)
-@@ -303,7 +302,7 @@ static int ucb1x00_ts_open(struct input_
-
- BUG_ON(ts->rtask);
-
-- init_waitqueue_head(&ts->irq_wait);
-+ init_completion(&ts->irq_wait);
- ret = ucb1x00_hook_irq(ts->ucb, UCB_IRQ_TSPX, ucb1x00_ts_irq, ts);
- if (ret < 0)
- goto out;
-@@ -318,6 +317,8 @@ static int ucb1x00_ts_open(struct input_
- ucb1x00_adc_disable(ts->ucb);
-
- ts->rtask = kthread_run(ucb1x00_thread, ts, "ktsd");
-+ ts->go_thread = 1; //start thread!
-+
- if (!IS_ERR(ts->rtask)) {
- ret = 0;
- } else {
-@@ -337,9 +338,14 @@ static void ucb1x00_ts_close(struct inpu
- {
- struct ucb1x00_ts *ts = idev->private;
-
-+
-+ ts->go_thread = 0; //Stop thread!
-+ complete(&ts->irq_wait);
-+
- if (ts->rtask)
- kthread_stop(ts->rtask);
-
-+
- ucb1x00_enable(ts->ucb);
- ucb1x00_free_irq(ts->ucb, UCB_IRQ_TSPX, ts);
- ucb1x00_reg_write(ts->ucb, UCB_TS_CR, 0);
-@@ -358,7 +364,7 @@ static int ucb1x00_ts_resume(struct ucb1
- * after sleep.
- */
- ts->restart = 1;
-- wake_up(&ts->irq_wait);
-+ complete(&ts->irq_wait);
- }
- return 0;
- }
-Index: linux-2.6.17-rc5/drivers/mfd/ucb1x00.h
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/mfd/ucb1x00.h
-+++ linux-2.6.17-rc5/drivers/mfd/ucb1x00.h
-@@ -94,6 +94,7 @@
- #define UCB_ID 0x0c
- #define UCB_ID_1200 0x1004
- #define UCB_ID_1300 0x1005
-+#define UCB_ID_1400 0x4304
-
- #define UCB_MODE 0x0d
- #define UCB_MODE_DYN_VFLAG_ENA (1 << 12)
-@@ -110,6 +111,8 @@ struct ucb1x00 {
- spinlock_t lock;
- struct mcp *mcp;
- unsigned int irq;
-+ struct task_struct *irq_task;
-+ struct completion irq_wait;
- struct semaphore adc_sem;
- spinlock_t io_lock;
- u16 id;
-@@ -122,6 +125,7 @@ struct ucb1x00 {
- struct class_device cdev;
- struct list_head node;
- struct list_head devs;
-+
- };
-
- struct ucb1x00_driver;
-Index: linux-2.6.17-rc5/drivers/mfd/mcp-ac97.c
-===================================================================
---- /dev/null
-+++ linux-2.6.17-rc5/drivers/mfd/mcp-ac97.c
-@@ -0,0 +1,153 @@
-+/*
-+ * linux/drivers/misc/mcp-ac97.c
-+ *
-+ * Author: Nicolas Pitre
-+ * Created: Jan 14, 2005
-+ * Copyright: (C) MontaVista Software Inc.
-+ *
-+ * 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.
-+ *
-+ * This module provides the minimum replacement for mcp-core.c allowing for
-+ * the UCB1400 chip to be driven by the ucb1x00 driver over an AC97 link.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/errno.h>
-+#include <linux/device.h>
-+
-+#include <sound/driver.h>
-+#include <sound/core.h>
-+#include <sound/ac97_codec.h>
-+
-+#include "mcp.h"
-+
-+/* ucb1x00 SIB register to ucb1400 AC-link register mapping */
-+
-+static const unsigned char regmap[] = {
-+ 0x5a, /* UCB_IO_DATA */
-+ 0X5C, /* UCB_IO_DIR */
-+ 0X5E, /* UCB_IE_RIS */
-+ 0x60, /* UCB_IE_FAL */
-+ 0x62, /* UCB_IE_STATUS */
-+ 0, /* UCB_TC_A */
-+ 0, /* UCB_TC_B */
-+ 0, /* UCB_AC_A */
-+ 0, /* UCB_AC_B */
-+ 0x64, /* UCB_TS_CR */
-+ 0x66, /* UCB_ADC_CR */
-+ 0x68, /* UCB_ADC_DATA */
-+ 0x7e, /* UCB_ID */
-+ 0, /* UCB_MODE */
-+};
-+
-+unsigned int mcp_reg_read(struct mcp *mcp, unsigned int reg)
-+{
-+ ac97_t *ac97 = to_ac97_t(mcp->dev);
-+ if (reg < ARRAY_SIZE(regmap)) {
-+ reg = regmap[reg];
-+ if (reg)
-+ return ac97->bus->ops->read(ac97, reg);
-+ }
-+ return -1;
-+}
-+EXPORT_SYMBOL(mcp_reg_read);
-+
-+void mcp_reg_write(struct mcp *mcp, unsigned int reg, unsigned int val)
-+{
-+ ac97_t *ac97 = to_ac97_t(mcp->dev);
-+ if (reg < ARRAY_SIZE(regmap)) {
-+ reg = regmap[reg];
-+ if (reg)
-+ ac97->bus->ops->write(ac97, reg, val);
-+ }
-+}
-+EXPORT_SYMBOL(mcp_reg_write);
-+
-+void mcp_enable(struct mcp *mcp)
-+{
-+}
-+EXPORT_SYMBOL(mcp_enable);
-+
-+void mcp_disable(struct mcp *mcp)
-+{
-+}
-+EXPORT_SYMBOL(mcp_disable);
-+
-+#define to_mcp_driver(d) container_of(d, struct mcp_driver, drv)
-+
-+static int mcp_probe(struct device *dev)
-+{
-+ struct mcp_driver *drv = to_mcp_driver(dev->driver);
-+ struct mcp *mcp;
-+ int ret;
-+
-+ ret = -ENOMEM;
-+ mcp = kmalloc(sizeof(*mcp), GFP_KERNEL);
-+ if (mcp) {
-+ memset(mcp, 0, sizeof(*mcp));
-+ mcp->owner = THIS_MODULE;
-+ mcp->dev = dev;
-+ ret = drv->probe(mcp);
-+ if (ret)
-+ kfree(mcp);
-+ }
-+ if (!ret)
-+ dev_set_drvdata(dev, mcp);
-+ return ret;
-+}
-+
-+static int mcp_remove(struct device *dev)
-+{
-+ struct mcp_driver *drv = to_mcp_driver(dev->driver);
-+ struct mcp *mcp = dev_get_drvdata(dev);
-+
-+ drv->remove(mcp);
-+ dev_set_drvdata(dev, NULL);
-+ kfree(mcp);
-+ return 0;
-+}
-+
-+static int mcp_suspend(struct device *dev, pm_message_t state)
-+{
-+ struct mcp_driver *drv = to_mcp_driver(dev->driver);
-+ struct mcp *mcp = dev_get_drvdata(dev);
-+ int ret = 0;
-+
-+ if (drv->suspend)
-+ ret = drv->suspend(mcp, state);
-+ return ret;
-+}
-+
-+static int mcp_resume(struct device *dev)
-+{
-+ struct mcp_driver *drv = to_mcp_driver(dev->driver);
-+ struct mcp *mcp = dev_get_drvdata(dev);
-+ int ret = 0;
-+
-+ if (drv->resume)
-+ ret = drv->resume(mcp);
-+ return ret;
-+}
-+
-+int mcp_driver_register(struct mcp_driver *mcpdrv)
-+{
-+ mcpdrv->drv.owner = THIS_MODULE;
-+ mcpdrv->drv.bus = &ac97_bus_type;
-+ mcpdrv->drv.probe = mcp_probe;
-+ mcpdrv->drv.remove = mcp_remove;
-+ mcpdrv->drv.suspend = mcp_suspend;
-+ mcpdrv->drv.resume = mcp_resume;
-+ return driver_register(&mcpdrv->drv);
-+}
-+EXPORT_SYMBOL(mcp_driver_register);
-+
-+void mcp_driver_unregister(struct mcp_driver *mcpdrv)
-+{
-+ driver_unregister(&mcpdrv->drv);
-+}
-+EXPORT_SYMBOL(mcp_driver_unregister);
-+
-+MODULE_LICENSE("GPL");
-Index: linux-2.6.17-rc5/drivers/input/touchscreen/Kconfig
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/input/touchscreen/Kconfig
-+++ linux-2.6.17-rc5/drivers/input/touchscreen/Kconfig
-@@ -24,6 +24,25 @@ config TOUCHSCREEN_ADS7846
- To compile this driver as a module, choose M here: the
- module will be called ads7846.
-
-+config UCB1400
-+ bool
-+
-+config TOUCHSCREEN_UCB1400
-+ tristate "UCB1400 Touchscreen support"
-+ depends on ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA
-+ select SND_AC97_BUS
-+ select UCB1400
-+ help
-+ Say Y here if you have a touchscreen connected to a UCB1400 ADC chip
-+ on the AC97 bus of a PXA255/PXA270 host.
-+
-+ If unsure, say N.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called ucb1x00-ts. It will also build the modules
-+ ucb1x00-core and mcp-ac97 which provide the compatibility layers
-+ down to the AC97 bus.
-+
- config TOUCHSCREEN_BITSY
- tristate "Compaq iPAQ H3600 (Bitsy) touchscreen"
- depends on SA1100_BITSY
-Index: linux-2.6.17-rc5/drivers/input/Kconfig
-===================================================================
---- linux-2.6.17-rc5.orig/drivers/input/Kconfig
-+++ linux-2.6.17-rc5/drivers/input/Kconfig
-@@ -87,7 +87,7 @@ config INPUT_JOYDEV
- module will be called joydev.
-
- config INPUT_TSDEV
-- tristate "Touchscreen interface"
-+ tristate "Compaq touchscreen interface"
- ---help---
- Say Y here if you have an application that only can understand the
- Compaq touchscreen protocol for absolute pointer data. This is