From f79c41c26de0948fe5caef6dbc502093fc12d5ef Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Wed, 29 Aug 2007 15:19:43 +0000 Subject: linux-rp: Ported the HTC Universal patch to the latest -rp kernel. git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2594 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../defconfig-htcuniversal | 173 ++--- .../linux/linux-rp-2.6.22+2.6.23-rc4/htcuni.patch | 755 +++++---------------- 2 files changed, 222 insertions(+), 706 deletions(-) (limited to 'meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4') diff --git a/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/defconfig-htcuniversal b/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/defconfig-htcuniversal index 04e9070b8..fb112b768 100644 --- a/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/defconfig-htcuniversal +++ b/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/defconfig-htcuniversal @@ -1,13 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.22 -# Thu Aug 23 16:10:44 2007 +# Linux kernel version: 2.6.23-rc4 +# Wed Aug 29 17:19:57 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_GENERIC_GPIO=y CONFIG_GENERIC_TIME=y -# CONFIG_GENERIC_CLOCKEVENTS is not set +CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_MMU=y # CONFIG_NO_IOPORT is not set CONFIG_GENERIC_HARDIRQS=y @@ -27,26 +27,21 @@ CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # -# Code maturity level options +# General setup # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y -# CONFIG_IPC_NS is not set CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set -# CONFIG_UTS_NS is not set +# CONFIG_USER_NS is not set # CONFIG_AUDIT is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y @@ -81,24 +76,17 @@ CONFIG_SLAB=y CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y - -# -# Block layer -# CONFIG_BLOCK=y # CONFIG_LBD is not set # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set # # IO Schedulers @@ -139,6 +127,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_L7200 is not set # CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set # CONFIG_ARCH_PNX4008 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set @@ -158,6 +147,7 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_PXA_IDP is not set # CONFIG_PXA_SHARPSL is not set # CONFIG_MACH_TRIZEPS4 is not set +# CONFIG_MACH_EM_X270 is not set # CONFIG_MACH_HX2750 is not set CONFIG_MACH_HTCUNIVERSAL=y @@ -178,6 +168,14 @@ CONFIG_HTCUNIVERSAL_PHONE=m CONFIG_PXA27x=y # CONFIG_PXA_KEYS is not set +# +# Boot options +# + +# +# Power management +# + # # Processor Type # @@ -202,6 +200,7 @@ CONFIG_XSCALE_PMU=y # # Bus support # +# CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set # @@ -213,8 +212,9 @@ CONFIG_XSCALE_PMU=y # Kernel Features # # CONFIG_TICK_ONESHOT is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set CONFIG_PREEMPT=y -CONFIG_NO_IDLE_HZ=y CONFIG_HZ=100 CONFIG_AEABI=y CONFIG_OABI_COMPAT=y @@ -229,6 +229,8 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y CONFIG_ALIGNMENT_TRAP=y # @@ -280,7 +282,7 @@ CONFIG_BINFMT_ELF=y CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set -CONFIG_PM_SYSFS_DEPRECATED=y +# CONFIG_SUSPEND is not set CONFIG_APM_EMULATION=y # @@ -439,6 +441,7 @@ CONFIG_WIRELESS_EXT=y # CONFIG_MAC80211 is not set # CONFIG_IEEE80211 is not set # CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set # # Device Drivers @@ -453,10 +456,6 @@ CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set - -# -# Connector - unified userspace <-> kernelspace linker -# # CONFIG_CONNECTOR is not set CONFIG_MTD=y CONFIG_MTD_DEBUG=y @@ -529,20 +528,8 @@ CONFIG_MTDRAM_ERASE_SIZE=128 # UBI - Unsorted block images # # CONFIG_MTD_UBI is not set - -# -# Parallel port support -# # CONFIG_PARPORT is not set - -# -# Plug and Play support -# -# CONFIG_PNPACPI is not set - -# -# Block devices -# +CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_COW_COMMON is not set # CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_NBD is not set @@ -556,41 +543,26 @@ CONFIG_MTDRAM_ERASE_SIZE=128 # # CONFIG_RAID_ATTRS is not set # CONFIG_SCSI is not set +# CONFIG_SCSI_DMA is not set # CONFIG_SCSI_NETLINK is not set # CONFIG_ATA is not set - -# -# Multi-device support (RAID and LVM) -# # CONFIG_MD is not set - -# -# Network device support -# CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set - -# -# Ethernet (10 or 100Mbit) -# # CONFIG_NET_ETHERNET is not set -CONFIG_NETDEV_1000=y -CONFIG_NETDEV_10000=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set # # Wireless LAN # -CONFIG_NET_RADIO=y -# CONFIG_NET_WIRELESS_RTNETLINK is not set # CONFIG_WLAN_PRE80211 is not set # CONFIG_WLAN_80211 is not set -CONFIG_ACX=m -CONFIG_ACX_MEM=y -# CONFIG_ACX_CS is not set -CONFIG_ACX_HTCUNIVERSAL=m # CONFIG_WAN is not set CONFIG_PPP=m # CONFIG_PPP_MULTILINK is not set @@ -601,16 +573,13 @@ CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_MPPE=m # CONFIG_PPPOE is not set +# CONFIG_PPPOL2TP is not set # CONFIG_SLIP is not set CONFIG_SLHC=m # 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 # @@ -647,9 +616,11 @@ CONFIG_INPUT_MOUSE=y # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_APPLETOUCH is not set # CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_GPIO is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_FUJITSU is not set # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set @@ -697,20 +668,12 @@ CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=32 - -# -# IPMI -# # CONFIG_IPMI_HANDLER is not set # CONFIG_WATCHDOG is not set # CONFIG_HW_RANDOM is not set # CONFIG_NVRAM is not set # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set - -# -# TPM devices -# # CONFIG_TCG_TPM is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y @@ -732,6 +695,7 @@ CONFIG_I2C_PXA=m # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_STUB is not set # @@ -739,11 +703,13 @@ CONFIG_I2C_PXA=m # # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set +# CONFIG_DS1682 is not set # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_MAX6875 is not set +# CONFIG_SENSORS_TSL2550 is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -754,10 +720,6 @@ CONFIG_I2C_PXA=m # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set - -# -# Dallas's 1-wire bus -# CONFIG_W1=y # @@ -779,10 +741,8 @@ CONFIG_PDA_POWER=y CONFIG_APM_POWER=y CONFIG_BATTERY_DS2760=y # CONFIG_HWMON is not set - -# -# Misc devices -# +CONFIG_MISC_DEVICES=y +# CONFIG_EEPROM_93CX6 is not set # # Multifunction device drivers @@ -794,16 +754,13 @@ CONFIG_HTC_ASIC3_DS1WM=y # # Multi-Function Devices # - -# -# LED devices -# CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # # LED drivers # +# CONFIG_LEDS_GPIO is not set CONFIG_LEDS_ASIC3=y # @@ -824,8 +781,8 @@ CONFIG_DAB=y # Graphics support # CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_CORGI=y # @@ -833,6 +790,7 @@ CONFIG_BACKLIGHT_CORGI=y # # CONFIG_DISPLAY_SUPPORT is not set # CONFIG_VGASTATE is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set @@ -868,6 +826,7 @@ CONFIG_FB_PXA_LCD_QVGA=y # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FONTS=y CONFIG_FONT_8x8=y @@ -930,19 +889,17 @@ CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_SOC is not set # -# Open Sound System +# SoC Audio support for SuperH # -# CONFIG_SOUND_PRIME is not set # -# HID Devices +# Open Sound System # +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y CONFIG_HID=m # CONFIG_HID_DEBUG is not set - -# -# USB support -# +CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y # CONFIG_USB_ARCH_HAS_EHCI is not set @@ -956,16 +913,20 @@ CONFIG_USB_ARCH_HAS_OHCI=y # USB Gadget Support # CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set # CONFIG_USB_GADGET_FSL_USB2 is not set # CONFIG_USB_GADGET_NET2280 is not set # CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set CONFIG_USB_GADGET_PXA27X=y CONFIG_USB_PXA27X=y # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set # CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set # CONFIG_USB_GADGET_DUALSPEED is not set @@ -984,16 +945,13 @@ CONFIG_MMC_UNSAFE_RESUME=y # MMC/SD Card Drivers # CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_BOUNCE=y # # MMC/SD Host Controller Drivers # # CONFIG_MMC_PXA is not set CONFIG_MMC_ASIC3=y - -# -# Real Time Clock -# CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y @@ -1020,6 +978,7 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_X1205 is not set # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set # # SPI RTC drivers @@ -1030,8 +989,10 @@ CONFIG_RTC_INTF_DEV=y # # CONFIG_RTC_DRV_CMOS is not set # CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set # CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T59 is not set # CONFIG_RTC_DRV_V3020 is not set # @@ -1039,6 +1000,19 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_SA1100=y +# +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices +# + # # File systems # @@ -1135,7 +1109,6 @@ CONFIG_SUNRPC=y # 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 @@ -1209,6 +1182,7 @@ CONFIG_ENABLE_MUST_CHECK=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_SCHED_DEBUG=y # CONFIG_SCHEDSTATS is not set # CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_SLAB is not set @@ -1219,6 +1193,7 @@ CONFIG_DEBUG_PREEMPT=y CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set @@ -1240,10 +1215,6 @@ CONFIG_DEBUG_LL=y # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set - -# -# Cryptographic options -# CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_BLKCIPHER=m @@ -1283,10 +1254,7 @@ CONFIG_CRYPTO_DEFLATE=y # CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_TEST is not set - -# -# Hardware crypto devices -# +CONFIG_CRYPTO_HW=y # # Library routines @@ -1296,6 +1264,7 @@ CONFIG_CRC_CCITT=y # CONFIG_CRC16 is not set # CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y +# CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff --git a/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/htcuni.patch b/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/htcuni.patch index a83c7afa3..8f473467c 100644 --- a/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/htcuni.patch +++ b/meta/packages/linux/linux-rp-2.6.22+2.6.23-rc4/htcuni.patch @@ -1,8 +1,9 @@ --- + arch/arm/Kconfig | 2 arch/arm/mach-pxa/Kconfig | 89 + arch/arm/mach-pxa/Makefile | 1 arch/arm/mach-pxa/corgi.c | 3 - arch/arm/mach-pxa/generic.c | 12 + arch/arm/mach-pxa/generic.c | 13 arch/arm/mach-pxa/htcuniversal/Makefile | 19 arch/arm/mach-pxa/htcuniversal/htcuniversal.c | 468 +++++ arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c | 917 +++++++++++ @@ -21,11 +22,9 @@ arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c | 490 ++++++ arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c | 71 arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h | 20 - arch/arm/mach-pxa/pm.c | 36 arch/arm/mach-pxa/spitz.c | 2 drivers/input/keyboard/Makefile | 2 drivers/input/keyboard/asic3_keys.c | 131 + - drivers/input/keyboard/pxa27x_keyboard.c | 2 drivers/leds/Kconfig | 7 drivers/leds/Makefile | 1 drivers/leds/leds-asic3.c | 189 ++ @@ -41,11 +40,6 @@ drivers/serial/pxa.c | 22 drivers/video/backlight/Kconfig | 2 drivers/video/backlight/corgi_bl.c | 4 - drivers/w1/slaves/Kconfig | 11 - drivers/w1/slaves/Makefile | 2 - drivers/w1/slaves/w1_ds2760.c | 213 ++ - drivers/w1/slaves/w1_ds2760.h | 50 - drivers/w1/w1_family.h | 1 include/asm-arm/arch-pxa/clock.h | 27 include/asm-arm/arch-pxa/htcuniversal-asic.h | 213 ++ include/asm-arm/arch-pxa/htcuniversal-gpio.h | 220 ++ @@ -63,15 +57,14 @@ include/linux/gpiodev.h | 44 include/linux/input_pda.h | 47 include/linux/ioport.h | 1 - include/linux/pda_power.h | 31 include/linux/soc/asic3_base.h | 104 + include/linux/soc/tmio_mmc.h | 17 - 67 files changed, 7808 insertions(+), 17 deletions(-) + 60 files changed, 7468 insertions(+), 14 deletions(-) Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/Makefile =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/Makefile 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/Makefile 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,19 @@ +# +# Makefile for HTC Universal @@ -79,7 +72,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/Makefile + +snd-htcuniversal-ak4641-objs := htcuniversal_ak4641.o + -+obj-$(CONFIG_MACH_HTCUNIVERSAL) += htcuniversal.o htcuniversal_pm.o ++obj-$(CONFIG_MACH_HTCUNIVERSAL) += htcuniversal.o +obj-$(CONFIG_HTCUNIVERSAL_CORE) += htcuniversal_core.o +obj-$(CONFIG_HTCUNIVERSAL_POWER) += htcuniversal_power2.o +obj-$(CONFIG_HTCUNIVERSAL_LCD) += htcuniversal_lcd.o @@ -95,7 +88,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/Makefile Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,468 @@ +/* + * Hardware definitions for HTC Universal @@ -510,7 +503,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal.c + +static void __init htcuniversal_init_irq(void) +{ -+ pxa_init_irq(); ++ pxa27x_init_irq(); +} + +static struct platform_pxa_serial_funcs htcuniversal_pxa_bt_funcs = { @@ -568,7 +561,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,917 @@ +/* + * Audio support for codec Asahi Kasei AK4641 @@ -1490,7 +1483,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,65 @@ +/* + * Audio support for codec Asahi Kasei AK4641 @@ -1560,7 +1553,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,143 @@ +/* + * LEDs support for the HP iPaq hx4700 @@ -1708,7 +1701,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,61 @@ +/* + * Use consistent with the GNU GPL is permitted, @@ -1774,7 +1767,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,135 @@ +/* Bluetooth interface driver for TI BRF6150 on HX4700 + * @@ -1914,7 +1907,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,17 @@ +/* + * Bluetooth support file for calling bluetooth configuration functions @@ -1936,7 +1929,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,87 @@ +/* + * Buttons driver for HTC Universal @@ -2028,7 +2021,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,226 @@ +/* Core Hardware driver for Hx4700 (Serial, ASIC3, EGPIOs) + * @@ -2098,7 +2091,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c + +#ifdef CONFIG_PM + -+void htcuniversal_ll_pm_init(void); ++//void htcuniversal_ll_pm_init(void); + +static int htcuniversal_suspend(struct platform_device *dev, pm_message_t state) +{ @@ -2210,7 +2203,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c + printk("Using stock HTC first stage bootloader\n"); + htc_bootloader = 1; + -+ htcuniversal_ll_pm_init(); ++// htcuniversal_ll_pm_init(); + + return 0; +} @@ -2259,7 +2252,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,212 @@ +/* + * Use consistent with the GNU GPL is permitted, @@ -2404,7 +2397,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c + +static int htcuniversal_lcd_probe(struct platform_device * dev) +{ -+ htcuniversal_lcd_dev = lcd_device_register("pxa2xx-fb", NULL, ++ htcuniversal_lcd_dev = lcd_device_register("pxa2xx-fb", &dev->dev, NULL, + &htcuniversal_lcd_properties); + if (IS_ERR(htcuniversal_lcd_dev)) { + printk("htcuniversal_lcd_probe: error registering devices\n"); @@ -2476,7 +2469,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,167 @@ + +/* Phone interface driver for Qualcomm MSM6250 on HTC Universal @@ -2648,7 +2641,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,16 @@ +/* + * Bluetooth support file for calling bluetooth configuration functions @@ -2669,7 +2662,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,69 @@ +/* + * MyPal 716 power management support for the original HTC IPL in DoC G3 @@ -2743,7 +2736,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,97 @@ +/* + * pda_power driver for HTC Universal @@ -2845,7 +2838,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,490 @@ +/* Touch screen driver for the TI something-or-other + * @@ -3257,7 +3250,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c + ts->pen_down=pen_down; + } + -+ retval = request_irq(ts->irq, pen_isr, SA_INTERRUPT, "tsc2046_ts", ts); ++ retval = request_irq(ts->irq, pen_isr, IRQF_DISABLED, "tsc2046_ts", ts); + if(retval) { + printk("Unable to get interrupt\n"); + input_unregister_device (ts->input); @@ -3340,7 +3333,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,71 @@ + +/* @@ -3416,7 +3409,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,20 @@ +/* + * temporary TSC2046 touchscreen hack @@ -3440,9 +3433,9 @@ Index: linux-2.6.22/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h +#endif Index: linux-2.6.22/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.22.orig/arch/arm/mach-pxa/Kconfig 2007-08-23 13:09:21.000000000 +0200 -+++ linux-2.6.22/arch/arm/mach-pxa/Kconfig 2007-08-23 13:09:22.000000000 +0200 -@@ -46,6 +46,14 @@ +--- linux-2.6.22.orig/arch/arm/mach-pxa/Kconfig 2007-08-29 12:44:46.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/Kconfig 2007-08-29 12:44:49.000000000 +0200 +@@ -50,6 +50,14 @@ help This enables support for the HP iPAQ HX2750 handheld. @@ -3457,7 +3450,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/Kconfig endchoice if PXA_SHARPSL -@@ -80,6 +88,86 @@ +@@ -84,6 +92,86 @@ endif @@ -3544,146 +3537,30 @@ Index: linux-2.6.22/arch/arm/mach-pxa/Kconfig endmenu config MACH_POODLE -@@ -160,4 +248,3 @@ +@@ -164,4 +252,3 @@ depends on (PXA25x || PXA27x) && INPUT endif - Index: linux-2.6.22/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.22.orig/arch/arm/mach-pxa/Makefile 2007-08-23 13:09:21.000000000 +0200 -+++ linux-2.6.22/arch/arm/mach-pxa/Makefile 2007-08-23 13:09:22.000000000 +0200 -@@ -19,6 +19,7 @@ - obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o sharpsl_pm.o poodle_pm.o +--- linux-2.6.22.orig/arch/arm/mach-pxa/Makefile 2007-08-29 12:44:46.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/Makefile 2007-08-29 12:44:49.000000000 +0200 +@@ -20,6 +20,7 @@ obj-$(CONFIG_MACH_TOSA) += tosa.o + obj-$(CONFIG_MACH_EM_X270) += em-x270.o obj-$(CONFIG_MACH_HX2750) += hx2750.o hx2750_test.o +obj-$(CONFIG_MACH_HTCUNIVERSAL) += htcuniversal/ # Support for blinky lights led-y := leds.o -Index: linux-2.6.22/arch/arm/mach-pxa/pm.c -=================================================================== ---- linux-2.6.22.orig/arch/arm/mach-pxa/pm.c 2007-08-23 13:09:20.000000000 +0200 -+++ linux-2.6.22/arch/arm/mach-pxa/pm.c 2007-08-23 13:09:22.000000000 +0200 -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -75,12 +76,16 @@ - }; - - -+static struct pxa_ll_pm_ops *ll_ops; -+ - int pxa_pm_enter(suspend_state_t state) - { - unsigned long sleep_save[SLEEP_SAVE_SIZE]; - unsigned long checksum = 0; -+ struct timespec delta, rtc; - int i; - extern void pxa_cpu_pm_enter(suspend_state_t state); -+ extern void pxa_cpu_resume(void); - - #ifdef CONFIG_IWMMXT - /* force any iWMMXt context to ram **/ -@@ -88,6 +93,11 @@ - iwmmxt_task_disable(NULL); - #endif - -+ /* preserve current time */ -+ rtc.tv_sec = RCNR; -+ rtc.tv_nsec = 0; -+ save_time_delta(&delta, &rtc); -+ - SAVE(GPLR0); SAVE(GPLR1); SAVE(GPLR2); - SAVE(GPDR0); SAVE(GPDR1); SAVE(GPDR2); - SAVE(GRER0); SAVE(GRER1); SAVE(GRER2); -@@ -123,6 +133,15 @@ - /* Clear sleep reset status */ - RCSR = RCSR_SMR; - -+ /* Set resume return address */ -+ PSPR = virt_to_phys(pxa_cpu_resume); -+ -+ /* If we have special sus/res logic, use it */ -+ if(ll_ops && ll_ops->suspend) { -+ extern void pxa_cpu_resume(void); -+ ll_ops->suspend(virt_to_phys(pxa_cpu_resume)); -+ } -+ - /* before sleeping, calculate and save a checksum */ - for (i = 0; i < SLEEP_SAVE_SIZE - 1; i++) - checksum += sleep_save[i]; -@@ -138,6 +157,9 @@ - for (i = 0; i < SLEEP_SAVE_SIZE - 1; i++) - checksum += sleep_save[i]; - -+ if(ll_ops && ll_ops->resume) -+ ll_ops->resume(); -+ - /* if invalid, display message and wait for a hardware reset */ - if (checksum != sleep_save[SLEEP_SAVE_CKSUM]) { - #ifdef CONFIG_ARCH_LUBBOCK -@@ -179,6 +201,10 @@ - - RESTORE(PSTR); - -+ /* restore current time */ -+ rtc.tv_sec = RCNR; -+ restore_time_delta(&delta, &rtc); -+ - #ifdef DEBUG - printk(KERN_DEBUG "*** made it back from resume\n"); - #endif -@@ -188,6 +214,13 @@ - - EXPORT_SYMBOL_GPL(pxa_pm_enter); - -+struct pxa_ll_pm_ops *pxa_pm_set_ll_ops(struct pxa_ll_pm_ops *new_ops) { -+ struct pxa_ll_pm_ops *old_ops = ll_ops; -+ ll_ops = new_ops; -+ return old_ops; -+} -+EXPORT_SYMBOL(pxa_pm_set_ll_ops); -+ - unsigned long sleep_phys_sp(void *sp) - { - return virt_to_phys(sp); -@@ -219,8 +252,9 @@ - .prepare = pxa_pm_prepare, - .enter = pxa_pm_enter, - .finish = pxa_pm_finish, -- .valid = pm_valid_only_mem, -+ .valid = pm_valid_only_mem, - }; -+//EXPORT_SYMBOL(pxa_pm_ops); - - extern void pxa_cpu_resume(void); - -Index: linux-2.6.22/drivers/input/keyboard/pxa27x_keyboard.c -=================================================================== ---- linux-2.6.22.orig/drivers/input/keyboard/pxa27x_keyboard.c 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/input/keyboard/pxa27x_keyboard.c 2007-08-23 13:09:22.000000000 +0200 -@@ -140,7 +140,7 @@ - KPREC = pdata->reg_kprec; - - /* Enable unit clock */ -- pxa_set_cken(CKEN19_KEYPAD, 1); -+ pxa_set_cken(CKEN_KEYPAD, 1); - } - - mutex_unlock(&input_dev->mutex); Index: linux-2.6.22/drivers/leds/Kconfig =================================================================== ---- linux-2.6.22.orig/drivers/leds/Kconfig 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/leds/Kconfig 2007-08-23 13:09:22.000000000 +0200 -@@ -95,6 +95,13 @@ - help - This option enables support for the front LED on Cobalt Server +--- linux-2.6.22.orig/drivers/leds/Kconfig 2007-08-29 12:44:30.000000000 +0200 ++++ linux-2.6.22/drivers/leds/Kconfig 2007-08-29 12:44:49.000000000 +0200 +@@ -101,6 +101,13 @@ + outputs. To be useful the particular board must have LEDs + and they must be connected to the GPIO lines. +config LEDS_ASIC3 + tristate "LED Support for the HTC ASIC3 chip" @@ -3695,22 +3572,10 @@ Index: linux-2.6.22/drivers/leds/Kconfig comment "LED Triggers" config LEDS_TRIGGERS -Index: linux-2.6.22/drivers/leds/Makefile -=================================================================== ---- linux-2.6.22.orig/drivers/leds/Makefile 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/leds/Makefile 2007-08-23 13:09:22.000000000 +0200 -@@ -16,6 +16,7 @@ - obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o - obj-$(CONFIG_LEDS_H1940) += leds-h1940.o - obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o -+obj-$(CONFIG_LEDS_ASIC3) += leds-asic3.o - - # LED Triggers - obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o Index: linux-2.6.22/drivers/leds/leds-asic3.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/leds/leds-asic3.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/leds/leds-asic3.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,189 @@ +/* + * LEDs support for HTC ASIC3 devices. @@ -3903,8 +3768,8 @@ Index: linux-2.6.22/drivers/leds/leds-asic3.c +MODULE_LICENSE("GPL"); Index: linux-2.6.22/drivers/mfd/Kconfig =================================================================== ---- linux-2.6.22.orig/drivers/mfd/Kconfig 2007-08-23 13:09:19.000000000 +0200 -+++ linux-2.6.22/drivers/mfd/Kconfig 2007-08-23 13:09:22.000000000 +0200 +--- linux-2.6.22.orig/drivers/mfd/Kconfig 2007-08-29 12:44:44.000000000 +0200 ++++ linux-2.6.22/drivers/mfd/Kconfig 2007-08-29 12:44:49.000000000 +0200 @@ -15,6 +15,16 @@ interface. The device may be connected by PCI or local bus with varying functions enabled. @@ -3924,8 +3789,8 @@ Index: linux-2.6.22/drivers/mfd/Kconfig menu "Multimedia Capabilities Port drivers" Index: linux-2.6.22/drivers/mfd/Makefile =================================================================== ---- linux-2.6.22.orig/drivers/mfd/Makefile 2007-08-23 13:09:19.000000000 +0200 -+++ linux-2.6.22/drivers/mfd/Makefile 2007-08-23 13:09:22.000000000 +0200 +--- linux-2.6.22.orig/drivers/mfd/Makefile 2007-08-29 12:44:44.000000000 +0200 ++++ linux-2.6.22/drivers/mfd/Makefile 2007-08-29 12:44:49.000000000 +0200 @@ -2,6 +2,8 @@ # Makefile for multifunction miscellaneous devices # @@ -3938,7 +3803,7 @@ Index: linux-2.6.22/drivers/mfd/Makefile Index: linux-2.6.22/drivers/mfd/asic3_base.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/mfd/asic3_base.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/mfd/asic3_base.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,1208 @@ +/* + * Driver interface to HTC "ASIC3" @@ -5151,7 +5016,7 @@ Index: linux-2.6.22/drivers/mfd/asic3_base.c Index: linux-2.6.22/drivers/mfd/soc-core.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/mfd/soc-core.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/mfd/soc-core.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,106 @@ +/* + * drivers/soc/soc-core.c @@ -5262,7 +5127,7 @@ Index: linux-2.6.22/drivers/mfd/soc-core.c Index: linux-2.6.22/drivers/mfd/soc-core.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/mfd/soc-core.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/mfd/soc-core.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,30 @@ +/* + * drivers/soc/soc-core.h @@ -5297,7 +5162,7 @@ Index: linux-2.6.22/drivers/mfd/soc-core.h Index: linux-2.6.22/include/asm-arm/arch-pxa/clock.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/arch-pxa/clock.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/clock.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,27 @@ +/* + * linux/include/asm-arm/arch-pxa/clock.h @@ -5329,7 +5194,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/clock.h Index: linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-asic.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-asic.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-asic.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,213 @@ +/* + * include/asm/arm/arch-pxa/htcuniversal-asic.h @@ -5547,7 +5412,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-asic.h Index: linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-gpio.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-gpio.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-gpio.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,220 @@ +/* + * include/asm-arm/arch-pxa/htcuniversal-gpio.h @@ -5772,7 +5637,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-gpio.h Index: linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-init.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-init.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-init.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,14 @@ +/* + * include/asm/arm/arch-pxa/htcuniversal-init.h @@ -5791,7 +5656,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal-init.h Index: linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,3 @@ +#include + @@ -5799,7 +5664,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/htcuniversal.h Index: linux-2.6.22/include/asm-arm/arch-pxa/pxa-pm_ll.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/arch-pxa/pxa-pm_ll.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/pxa-pm_ll.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,6 @@ +struct pxa_ll_pm_ops { + void (*suspend)(unsigned long); @@ -5810,7 +5675,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/pxa-pm_ll.h Index: linux-2.6.22/include/asm-arm/arch-pxa/sharpsl.h =================================================================== --- linux-2.6.22.orig/include/asm-arm/arch-pxa/sharpsl.h 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/include/asm-arm/arch-pxa/sharpsl.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/sharpsl.h 2007-08-29 12:44:49.000000000 +0200 @@ -25,12 +25,6 @@ /* * SharpSL Backlight @@ -5827,7 +5692,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/sharpsl.h Index: linux-2.6.22/include/asm-arm/hardware/asic3_keys.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/hardware/asic3_keys.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/hardware/asic3_keys.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,18 @@ +#include + @@ -5850,7 +5715,7 @@ Index: linux-2.6.22/include/asm-arm/hardware/asic3_keys.h Index: linux-2.6.22/include/asm-arm/hardware/asic3_leds.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/hardware/asic3_leds.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/hardware/asic3_leds.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,34 @@ +/* + * LEDs support for HTC ASIC3 devices. @@ -5889,7 +5754,7 @@ Index: linux-2.6.22/include/asm-arm/hardware/asic3_leds.h Index: linux-2.6.22/include/asm-arm/hardware/ipaq-asic3.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/hardware/ipaq-asic3.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/hardware/ipaq-asic3.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,602 @@ +/* + * @@ -6495,11 +6360,11 @@ Index: linux-2.6.22/include/asm-arm/hardware/ipaq-asic3.h +#endif Index: linux-2.6.22/include/linux/backlight.h =================================================================== ---- linux-2.6.22.orig/include/linux/backlight.h 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/include/linux/backlight.h 2007-08-23 13:09:22.000000000 +0200 -@@ -87,4 +87,11 @@ - - #define to_backlight_device(obj) container_of(obj, struct backlight_device, class_dev) +--- linux-2.6.22.orig/include/linux/backlight.h 2007-08-29 12:44:39.000000000 +0200 ++++ linux-2.6.22/include/linux/backlight.h 2007-08-29 12:44:49.000000000 +0200 +@@ -92,4 +92,11 @@ + return dev_get_drvdata(&bl_dev->dev); + } +struct generic_bl_info { + int max_intensity; @@ -6512,7 +6377,7 @@ Index: linux-2.6.22/include/linux/backlight.h Index: linux-2.6.22/include/linux/gpiodev.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/linux/gpiodev.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/linux/gpiodev.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,44 @@ +#ifndef __GPIODEV_H +#define __GPIODEV_H @@ -6561,7 +6426,7 @@ Index: linux-2.6.22/include/linux/gpiodev.h Index: linux-2.6.22/include/linux/input_pda.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/linux/input_pda.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/linux/input_pda.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,47 @@ +#ifndef _INPUT_PDA_H +#define _INPUT_PDA_H @@ -6610,46 +6475,10 @@ Index: linux-2.6.22/include/linux/input_pda.h +#define _KEY_HOMEPAGE _KEY_APP4 + +#endif -Index: linux-2.6.22/include/linux/pda_power.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/linux/pda_power.h 2007-08-23 13:09:22.000000000 +0200 -@@ -0,0 +1,31 @@ -+/* -+ * Common power driver for PDAs and phones with one or two external -+ * power supplies (AC/USB) connected to main and backup batteries, -+ * and optional builtin charger. -+ * -+ * Copyright 2007 Anton Vorontsov -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+#ifndef __PDA_POWER_H__ -+#define __PDA_POWER_H__ -+ -+#define PDA_POWER_CHARGE_AC (1 << 0) -+#define PDA_POWER_CHARGE_USB (1 << 1) -+ -+struct pda_power_pdata { -+ int (*is_ac_online)(void); -+ int (*is_usb_online)(void); -+ void (*set_charge)(int flags); -+ -+ char **supplied_to; -+ size_t num_supplicants; -+ -+ unsigned int wait_for_status; /* msecs, default is 500 */ -+ unsigned int wait_for_charger; /* msecs, default is 500 */ -+}; -+ -+#endif /* __PDA_POWER_H__ */ Index: linux-2.6.22/include/linux/soc/asic3_base.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/linux/soc/asic3_base.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/linux/soc/asic3_base.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,104 @@ +#include +#include @@ -6758,7 +6587,7 @@ Index: linux-2.6.22/include/linux/soc/asic3_base.h Index: linux-2.6.22/include/linux/soc/tmio_mmc.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/linux/soc/tmio_mmc.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/linux/soc/tmio_mmc.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,17 @@ +#include + @@ -6779,9 +6608,9 @@ Index: linux-2.6.22/include/linux/soc/tmio_mmc.h +}; Index: linux-2.6.22/include/asm-arm/arch-pxa/pxa-regs.h =================================================================== ---- linux-2.6.22.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-08-23 13:09:21.000000000 +0200 -+++ linux-2.6.22/include/asm-arm/arch-pxa/pxa-regs.h 2007-08-23 13:09:22.000000000 +0200 -@@ -2063,6 +2063,8 @@ +--- linux-2.6.22.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-08-29 12:44:47.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/pxa-regs.h 2007-08-29 12:44:49.000000000 +0200 +@@ -2043,6 +2043,8 @@ #define LDCMD_SOFINT (1 << 22) #define LDCMD_EOFINT (1 << 21) @@ -6793,7 +6622,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/pxa-regs.h Index: linux-2.6.22/drivers/mmc/host/Kconfig =================================================================== --- linux-2.6.22.orig/drivers/mmc/host/Kconfig 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/mmc/host/Kconfig 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/mmc/host/Kconfig 2007-08-29 12:44:49.000000000 +0200 @@ -100,3 +100,9 @@ To compile this driver as a module, choose M here: the module will be called tifm_sd. @@ -6807,7 +6636,7 @@ Index: linux-2.6.22/drivers/mmc/host/Kconfig Index: linux-2.6.22/drivers/mmc/host/Makefile =================================================================== --- linux-2.6.22.orig/drivers/mmc/host/Makefile 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/mmc/host/Makefile 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/mmc/host/Makefile 2007-08-29 12:44:49.000000000 +0200 @@ -15,4 +15,4 @@ obj-$(CONFIG_MMC_OMAP) += omap.o obj-$(CONFIG_MMC_AT91) += at91_mci.o @@ -6817,7 +6646,7 @@ Index: linux-2.6.22/drivers/mmc/host/Makefile Index: linux-2.6.22/drivers/mmc/host/asic3_mmc.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/mmc/host/asic3_mmc.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/mmc/host/asic3_mmc.c 2007-08-29 14:36:15.000000000 +0200 @@ -0,0 +1,900 @@ +/* Note that this driver can likely be merged into the tmio driver, so + * consider this code temporary. It works, though. @@ -7054,7 +6883,7 @@ Index: linux-2.6.22/drivers/mmc/host/asic3_mmc.c + buf++; + count -= 2; + } -+ flush_dcache_page(host->sg_ptr->page); ++ //flush_dcache_page(host->sg_ptr->page); + } else { + while(count > 0) { + /* Write two bytes to SD/MMC controller. */ @@ -7722,7 +7551,7 @@ Index: linux-2.6.22/drivers/mmc/host/asic3_mmc.c Index: linux-2.6.22/drivers/mmc/host/asic3_mmc.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/mmc/host/asic3_mmc.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/mmc/host/asic3_mmc.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,25 @@ +#ifndef __ASIC3_MMC_H +#define __ASIC3_MMC_H @@ -7752,7 +7581,7 @@ Index: linux-2.6.22/drivers/mmc/host/asic3_mmc.h Index: linux-2.6.22/drivers/input/keyboard/Makefile =================================================================== --- linux-2.6.22.orig/drivers/input/keyboard/Makefile 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/input/keyboard/Makefile 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/input/keyboard/Makefile 2007-08-29 12:44:49.000000000 +0200 @@ -21,4 +21,4 @@ obj-$(CONFIG_KEYBOARD_PXA27x) += pxa27x_keyboard.o obj-$(CONFIG_KEYBOARD_AAED2000) += aaed2000_kbd.o @@ -7762,7 +7591,7 @@ Index: linux-2.6.22/drivers/input/keyboard/Makefile Index: linux-2.6.22/drivers/input/keyboard/asic3_keys.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/input/keyboard/asic3_keys.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/input/keyboard/asic3_keys.c 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,131 @@ +/* + * Generic buttons driver for ASIC3 SoC. @@ -7897,9 +7726,9 @@ Index: linux-2.6.22/drivers/input/keyboard/asic3_keys.c +MODULE_LICENSE("GPL"); Index: linux-2.6.22/include/asm-arm/arch-pxa/irqs.h =================================================================== ---- linux-2.6.22.orig/include/asm-arm/arch-pxa/irqs.h 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/include/asm-arm/arch-pxa/irqs.h 2007-08-23 13:09:22.000000000 +0200 -@@ -178,6 +178,8 @@ +--- linux-2.6.22.orig/include/asm-arm/arch-pxa/irqs.h 2007-08-29 12:44:38.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/irqs.h 2007-08-29 12:44:49.000000000 +0200 +@@ -172,6 +172,8 @@ defined(CONFIG_MACH_LOGICPD_PXA270) || \ defined(CONFIG_MACH_MAINSTONE) #define NR_IRQS (IRQ_BOARD_END) @@ -7911,7 +7740,7 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/irqs.h Index: linux-2.6.22/include/linux/ioport.h =================================================================== --- linux-2.6.22.orig/include/linux/ioport.h 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/include/linux/ioport.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/linux/ioport.h 2007-08-29 12:44:49.000000000 +0200 @@ -56,6 +56,7 @@ #define IORESOURCE_IRQ_HIGHLEVEL (1<<2) #define IORESOURCE_IRQ_LOWLEVEL (1<<3) @@ -7922,9 +7751,9 @@ Index: linux-2.6.22/include/linux/ioport.h #define IORESOURCE_DMA_TYPE_MASK (3<<0) Index: linux-2.6.22/drivers/video/backlight/Kconfig =================================================================== ---- linux-2.6.22.orig/drivers/video/backlight/Kconfig 2007-08-23 13:09:19.000000000 +0200 -+++ linux-2.6.22/drivers/video/backlight/Kconfig 2007-08-23 13:09:22.000000000 +0200 -@@ -34,7 +34,7 @@ +--- linux-2.6.22.orig/drivers/video/backlight/Kconfig 2007-08-29 12:44:43.000000000 +0200 ++++ linux-2.6.22/drivers/video/backlight/Kconfig 2007-08-29 12:44:49.000000000 +0200 +@@ -40,7 +40,7 @@ config BACKLIGHT_CORGI tristate "Sharp Corgi Backlight Driver (SL Series)" @@ -7936,7 +7765,7 @@ Index: linux-2.6.22/drivers/video/backlight/Kconfig Index: linux-2.6.22/drivers/video/backlight/corgi_bl.c =================================================================== --- linux-2.6.22.orig/drivers/video/backlight/corgi_bl.c 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/video/backlight/corgi_bl.c 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/drivers/video/backlight/corgi_bl.c 2007-08-29 12:44:49.000000000 +0200 @@ -24,7 +24,7 @@ static int corgibl_intensity; static struct backlight_properties corgibl_data; @@ -7957,8 +7786,8 @@ Index: linux-2.6.22/drivers/video/backlight/corgi_bl.c if (!machinfo->limit_mask) Index: linux-2.6.22/arch/arm/mach-pxa/corgi.c =================================================================== ---- linux-2.6.22.orig/arch/arm/mach-pxa/corgi.c 2007-08-23 13:09:20.000000000 +0200 -+++ linux-2.6.22/arch/arm/mach-pxa/corgi.c 2007-08-23 13:09:22.000000000 +0200 +--- linux-2.6.22.orig/arch/arm/mach-pxa/corgi.c 2007-08-29 12:44:45.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/corgi.c 2007-08-29 12:44:49.000000000 +0200 @@ -20,6 +20,7 @@ #include #include @@ -7967,7 +7796,7 @@ Index: linux-2.6.22/arch/arm/mach-pxa/corgi.c #include #include -@@ -142,7 +143,7 @@ +@@ -143,7 +144,7 @@ /* * Corgi Backlight Device */ @@ -7978,9 +7807,9 @@ Index: linux-2.6.22/arch/arm/mach-pxa/corgi.c .limit_mask = 0x0b, Index: linux-2.6.22/arch/arm/mach-pxa/spitz.c =================================================================== ---- linux-2.6.22.orig/arch/arm/mach-pxa/spitz.c 2007-08-23 13:09:20.000000000 +0200 -+++ linux-2.6.22/arch/arm/mach-pxa/spitz.c 2007-08-23 13:09:22.000000000 +0200 -@@ -221,7 +221,7 @@ +--- linux-2.6.22.orig/arch/arm/mach-pxa/spitz.c 2007-08-29 12:44:46.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/spitz.c 2007-08-29 12:44:49.000000000 +0200 +@@ -222,7 +222,7 @@ /* * Spitz Backlight Device */ @@ -7989,75 +7818,10 @@ Index: linux-2.6.22/arch/arm/mach-pxa/spitz.c .default_intensity = 0x1f, .limit_mask = 0x0b, .max_intensity = 0x2f, -Index: linux-2.6.22/arch/arm/mach-pxa/generic.c -=================================================================== ---- linux-2.6.22.orig/arch/arm/mach-pxa/generic.c 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/arch/arm/mach-pxa/generic.c 2007-08-23 13:09:22.000000000 +0200 -@@ -345,6 +345,18 @@ - .id = 3, - }; - -+void __init pxa_set_ffuart_info(struct platform_pxa_serial_funcs *info) -+{ -+ ffuart_device.dev.platform_data = info; -+} -+EXPORT_SYMBOL(pxa_set_ffuart_info); -+ -+void __init pxa_set_btuart_info(struct platform_pxa_serial_funcs *info) -+{ -+ btuart_device.dev.platform_data = info; -+} -+EXPORT_SYMBOL(pxa_set_btuart_info); -+ - static struct resource i2c_resources[] = { - { - .start = 0x40301680, -Index: linux-2.6.22/drivers/w1/slaves/Kconfig -=================================================================== ---- linux-2.6.22.orig/drivers/w1/slaves/Kconfig 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/w1/slaves/Kconfig 2007-08-23 13:09:22.000000000 +0200 -@@ -35,4 +35,15 @@ - Each block has 30 bytes of data and a two byte CRC16. - Full block writes are only allowed if the CRC is valid. - -+config W1_SLAVE_DS2760 -+ tristate "Dallas 2760 battery monitor chip (HP iPAQ & others)" -+ depends on W1 -+ help -+ If you enable this you will have the DS2760 battery monitor -+ chip support. -+ The battery monitor chip is used in many batteries/devices -+ as the one who is responsible for charging/discharging/monitoring -+ Li+ batteries. -+ If you are unsure, say N. -+ - endmenu -Index: linux-2.6.22/drivers/w1/slaves/Makefile -=================================================================== ---- linux-2.6.22.orig/drivers/w1/slaves/Makefile 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/w1/slaves/Makefile 2007-08-23 13:09:22.000000000 +0200 -@@ -5,4 +5,4 @@ - obj-$(CONFIG_W1_SLAVE_THERM) += w1_therm.o - obj-$(CONFIG_W1_SLAVE_SMEM) += w1_smem.o - obj-$(CONFIG_W1_SLAVE_DS2433) += w1_ds2433.o -- -+obj-$(CONFIG_W1_SLAVE_DS2760) += w1_ds2760.o -Index: linux-2.6.22/drivers/w1/w1_family.h -=================================================================== ---- linux-2.6.22.orig/drivers/w1/w1_family.h 2007-07-09 01:32:17.000000000 +0200 -+++ linux-2.6.22/drivers/w1/w1_family.h 2007-08-23 13:09:22.000000000 +0200 -@@ -33,6 +33,7 @@ - #define W1_THERM_DS1822 0x22 - #define W1_EEPROM_DS2433 0x23 - #define W1_THERM_DS18B20 0x28 -+#define W1_FAMILY_DS2760 0x30 - - #define MAXNAMELEN 32 - Index: linux-2.6.22/include/asm-arm/arch-pxa/serial.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/include/asm-arm/arch-pxa/serial.h 2007-08-23 13:09:22.000000000 +0200 ++++ linux-2.6.22/include/asm-arm/arch-pxa/serial.h 2007-08-29 12:44:49.000000000 +0200 @@ -0,0 +1,78 @@ +/* + * linux/include/asm-arm/arch-pxa/serial.h @@ -8137,283 +7901,10 @@ Index: linux-2.6.22/include/asm-arm/arch-pxa/serial.h +void pxa_set_btuart_info(struct platform_pxa_serial_funcs *btuart_funcs); +void pxa_set_stuart_info(struct platform_pxa_serial_funcs *stuart_funcs); +void pxa_set_hwuart_info(struct platform_pxa_serial_funcs *hwuart_funcs); -Index: linux-2.6.22/drivers/w1/slaves/w1_ds2760.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/w1/slaves/w1_ds2760.c 2007-08-23 13:09:22.000000000 +0200 -@@ -0,0 +1,213 @@ -+/* -+ * 1-Wire implementation for the ds2760 chip -+ * -+ * Copyright (c) 2004-2005, Szabolcs Gyurko -+ * -+ * Use consistent with the GNU GPL is permitted, -+ * provided that this copyright notice is -+ * preserved in its entirety in all copies and derived works. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "../w1.h" -+#include "../w1_int.h" -+#include "../w1_family.h" -+#include "w1_ds2760.h" -+ -+static int w1_ds2760_io(struct device *dev, char *buf, int addr, size_t count, -+ int io) -+{ -+ struct w1_slave *sl = container_of(dev, struct w1_slave, dev); -+ -+ if (!dev) -+ return 0; -+ -+ mutex_lock(&sl->master->mutex); -+ -+ if (addr > DS2760_DATA_SIZE || addr < 0) { -+ count = 0; -+ goto out; -+ } -+ if (addr + count > DS2760_DATA_SIZE) -+ count = DS2760_DATA_SIZE - addr; -+ -+ if (!w1_reset_select_slave(sl)) { -+ if (!io) { -+ w1_write_8(sl->master, W1_DS2760_READ_DATA); -+ w1_write_8(sl->master, addr); -+ count = w1_read_block(sl->master, buf, count); -+ } else { -+ w1_write_8(sl->master, W1_DS2760_WRITE_DATA); -+ w1_write_8(sl->master, addr); -+ w1_write_block(sl->master, buf, count); -+ /* XXX w1_write_block returns void, not n_written */ -+ } -+ } -+ -+out: -+ mutex_unlock(&sl->master->mutex); -+ -+ return count; -+} -+ -+int w1_ds2760_read(struct device *dev, char *buf, int addr, size_t count) -+{ -+ return w1_ds2760_io(dev, buf, addr, count, 0); -+} -+ -+int w1_ds2760_write(struct device *dev, char *buf, int addr, size_t count) -+{ -+ return w1_ds2760_io(dev, buf, addr, count, 1); -+} -+ -+static ssize_t w1_ds2760_read_bin(struct kobject *kobj, char *buf, loff_t off, -+ size_t count) -+{ -+ struct device *dev = container_of(kobj, struct device, kobj); -+ return w1_ds2760_read(dev, buf, off, count); -+} -+ -+static struct bin_attribute w1_ds2760_bin_attr = { -+ .attr = { -+ .name = "w1_slave", -+ .mode = S_IRUGO, -+ .owner = THIS_MODULE, -+ }, -+ .size = DS2760_DATA_SIZE, -+ .read = w1_ds2760_read_bin, -+}; -+ -+static DEFINE_IDR(bat_idr); -+static DEFINE_MUTEX(bat_idr_lock); -+ -+static int new_bat_id(void) -+{ -+ int ret; -+ -+ while (1) { -+ int id; -+ -+ ret = idr_pre_get(&bat_idr, GFP_KERNEL); -+ if (ret == 0) -+ return -ENOMEM; -+ -+ mutex_lock(&bat_idr_lock); -+ ret = idr_get_new(&bat_idr, NULL, &id); -+ mutex_unlock(&bat_idr_lock); -+ -+ if (ret == 0) { -+ ret = id & MAX_ID_MASK; -+ break; -+ } -+ else if (ret == -EAGAIN) -+ continue; -+ else -+ break; -+ } -+ -+ return ret; -+} -+ -+static void release_bat_id(int id) -+{ -+ mutex_lock(&bat_idr_lock); -+ idr_remove(&bat_idr, id); -+ mutex_unlock(&bat_idr_lock); -+ -+ return; -+} -+ -+static int w1_ds2760_add_slave(struct w1_slave *sl) -+{ -+ int ret; -+ int id; -+ struct platform_device *pdev; -+ -+ id = new_bat_id(); -+ if (id < 0) { -+ ret = id; -+ goto noid; -+ } -+ -+ pdev = platform_device_alloc("ds2760-battery", id); -+ if (!pdev) { -+ ret = -ENOMEM; -+ goto pdev_alloc_failed; -+ } -+ pdev->dev.parent = &sl->dev; -+ -+ ret = platform_device_add(pdev); -+ if (ret) -+ goto pdev_add_failed; -+ -+ ret = sysfs_create_bin_file(&sl->dev.kobj, &w1_ds2760_bin_attr); -+ if (ret) -+ goto bin_attr_failed; -+ -+ dev_set_drvdata(&sl->dev, pdev); -+ -+ goto success; -+ -+bin_attr_failed: -+pdev_add_failed: -+ platform_device_unregister(pdev); -+pdev_alloc_failed: -+ release_bat_id(id); -+noid: -+success: -+ return ret; -+} -+ -+static void w1_ds2760_remove_slave(struct w1_slave *sl) -+{ -+ struct platform_device *pdev = dev_get_drvdata(&sl->dev); -+ int id = pdev->id; -+ -+ platform_device_unregister(pdev); -+ release_bat_id(id); -+ sysfs_remove_bin_file(&sl->dev.kobj, &w1_ds2760_bin_attr); -+ -+ return; -+} -+ -+static struct w1_family_ops w1_ds2760_fops = { -+ .add_slave = w1_ds2760_add_slave, -+ .remove_slave = w1_ds2760_remove_slave, -+}; -+ -+static struct w1_family w1_ds2760_family = { -+ .fid = W1_FAMILY_DS2760, -+ .fops = &w1_ds2760_fops, -+}; -+ -+static int __init w1_ds2760_init(void) -+{ -+ printk(KERN_INFO "1-Wire driver for the DS2760 battery monitor " -+ " chip - (c) 2004-2005, Szabolcs Gyurko\n"); -+ idr_init(&bat_idr); -+ return w1_register_family(&w1_ds2760_family); -+} -+ -+static void __exit w1_ds2760_exit(void) -+{ -+ w1_unregister_family(&w1_ds2760_family); -+ idr_destroy(&bat_idr); -+} -+ -+EXPORT_SYMBOL(w1_ds2760_read); -+EXPORT_SYMBOL(w1_ds2760_write); -+ -+module_init(w1_ds2760_init); -+module_exit(w1_ds2760_exit); -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Szabolcs Gyurko "); -+MODULE_DESCRIPTION("1-wire Driver Dallas 2760 battery monitor chip"); -Index: linux-2.6.22/drivers/w1/slaves/w1_ds2760.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.22/drivers/w1/slaves/w1_ds2760.h 2007-08-23 13:09:22.000000000 +0200 -@@ -0,0 +1,50 @@ -+/* -+ * 1-Wire implementation for the ds2760 chip -+ * -+ * Copyright (c) 2004-2005, Szabolcs Gyurko -+ * -+ * Use consistent with the GNU GPL is permitted, -+ * provided that this copyright notice is -+ * preserved in its entirety in all copies and derived works. -+ * -+ */ -+ -+#ifndef __w1_ds2760_h__ -+#define __w1_ds2760_h__ -+ -+/* Known commands to the DS2760 chip */ -+#define W1_DS2760_SWAP 0xAA -+#define W1_DS2760_READ_DATA 0x69 -+#define W1_DS2760_WRITE_DATA 0x6C -+#define W1_DS2760_COPY_DATA 0x48 -+#define W1_DS2760_RECALL_DATA 0xB8 -+#define W1_DS2760_LOCK 0x6A -+ -+/* Number of valid register addresses */ -+#define DS2760_DATA_SIZE 0x40 -+ -+#define DS2760_PROTECTION_REG 0x00 -+#define DS2760_STATUS_REG 0x01 -+#define DS2760_EEPROM_REG 0x07 -+#define DS2760_SPECIAL_FEATURE_REG 0x08 -+#define DS2760_VOLTAGE_MSB 0x0c -+#define DS2760_VOLTAGE_LSB 0x0d -+#define DS2760_CURRENT_MSB 0x0e -+#define DS2760_CURRENT_LSB 0x0f -+#define DS2760_CURRENT_ACCUM_MSB 0x10 -+#define DS2760_CURRENT_ACCUM_LSB 0x11 -+#define DS2760_TEMP_MSB 0x18 -+#define DS2760_TEMP_LSB 0x19 -+#define DS2760_EEPROM_BLOCK0 0x20 -+#define DS2760_ACTIVE_FULL 0x20 -+#define DS2760_EEPROM_BLOCK1 0x30 -+#define DS2760_RATED_CAPACITY 0x32 -+#define DS2760_CURRENT_OFFSET_BIAS 0x33 -+#define DS2760_ACTIVE_EMPTY 0x3b -+ -+extern int w1_ds2760_read(struct device *dev, char *buf, int addr, -+ size_t count); -+extern int w1_ds2760_write(struct device *dev, char *buf, int addr, -+ size_t count); -+ -+#endif /* !__w1_ds2760_h__ */ Index: linux-2.6.22/drivers/serial/pxa.c =================================================================== ---- linux-2.6.22.orig/drivers/serial/pxa.c 2007-08-23 13:21:54.000000000 +0200 -+++ linux-2.6.22/drivers/serial/pxa.c 2007-08-23 13:22:54.000000000 +0200 +--- linux-2.6.22.orig/drivers/serial/pxa.c 2007-07-09 01:32:17.000000000 +0200 ++++ linux-2.6.22/drivers/serial/pxa.c 2007-08-29 12:44:49.000000000 +0200 @@ -46,6 +46,7 @@ #include #include @@ -8478,3 +7969,59 @@ Index: linux-2.6.22/drivers/serial/pxa.c } static void +Index: linux-2.6.22/arch/arm/mach-pxa/generic.c +=================================================================== +--- linux-2.6.22.orig/arch/arm/mach-pxa/generic.c 2007-08-29 12:44:25.000000000 +0200 ++++ linux-2.6.22/arch/arm/mach-pxa/generic.c 2007-08-29 12:44:49.000000000 +0200 +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + + #include "devices.h" + #include "generic.h" +@@ -346,6 +347,18 @@ + .id = 3, + }; + ++void __init pxa_set_ffuart_info(struct platform_pxa_serial_funcs *info) ++{ ++ pxa_device_ffuart.dev.platform_data = info; ++} ++EXPORT_SYMBOL(pxa_set_ffuart_info); ++ ++void __init pxa_set_btuart_info(struct platform_pxa_serial_funcs *info) ++{ ++ pxa_device_btuart.dev.platform_data = info; ++} ++EXPORT_SYMBOL(pxa_set_btuart_info); ++ + static struct resource pxai2c_resources[] = { + { + .start = 0x40301680, +Index: linux-2.6.22/drivers/leds/Makefile +=================================================================== +--- linux-2.6.22.orig/drivers/leds/Makefile 2007-08-29 12:44:30.000000000 +0200 ++++ linux-2.6.22/drivers/leds/Makefile 2007-08-29 12:44:49.000000000 +0200 +@@ -16,6 +16,7 @@ + obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o + obj-$(CONFIG_LEDS_H1940) += leds-h1940.o + obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o ++obj-$(CONFIG_LEDS_ASIC3) += leds-asic3.o + obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o + + # LED Triggers +Index: linux-2.6.22/arch/arm/Kconfig +=================================================================== +--- linux-2.6.22.orig/arch/arm/Kconfig 2007-08-29 17:18:19.000000000 +0200 ++++ linux-2.6.22/arch/arm/Kconfig 2007-08-29 17:18:58.000000000 +0200 +@@ -1032,6 +1032,8 @@ + + source "drivers/w1/Kconfig" + ++source "drivers/power/Kconfig" ++ + source "drivers/hwmon/Kconfig" + + #source "drivers/l3/Kconfig" -- cgit v1.2.3