aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-jlime-jornada7xx-2.6.19rc6/jornada7xx.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/linux-jlime-jornada7xx-2.6.19rc6/jornada7xx.patch')
-rw-r--r--recipes/linux/linux-jlime-jornada7xx-2.6.19rc6/jornada7xx.patch3013
1 files changed, 0 insertions, 3013 deletions
diff --git a/recipes/linux/linux-jlime-jornada7xx-2.6.19rc6/jornada7xx.patch b/recipes/linux/linux-jlime-jornada7xx-2.6.19rc6/jornada7xx.patch
deleted file mode 100644
index 8ca6c2e2cc..0000000000
--- a/recipes/linux/linux-jlime-jornada7xx-2.6.19rc6/jornada7xx.patch
+++ /dev/null
@@ -1,3013 +0,0 @@
-diff -ruN linux-2.6.18-vanilla/arch/arm/Kconfig linux-2.6.18/arch/arm/Kconfig
---- linux-2.6.18-vanilla/arch/arm/Kconfig 2006-11-20 23:12:54.000000000 +0000
-+++ linux-2.6.18/arch/arm/Kconfig 2006-11-20 23:12:33.000000000 +0000
-@@ -729,7 +729,7 @@
-
- config CPU_FREQ_SA1110
- bool
-- depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
-+ depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3 || SA1100_JORNADA720)
- default y
-
- config CPU_FREQ_INTEGRATOR
-@@ -848,6 +848,17 @@
- anything, try disabling/enabling this option (or disabling/enabling
- APM in your BIOS).
-
-+config SA1100_JORNADA720_APM
-+ tristate "Jornada 720 battery status reporting"
-+ depends on SA1100_JORNADA720_MCU && APM
-+ help
-+ Say Y here if you have a HP Jornada 7xx handheld computer and you
-+ want to be able to read battery status.
-+
-+ To compile this driver as a module choose M here: the
-+ module will be called jornada720_apm.
-+
-+
- endmenu
-
- source "net/Kconfig"
-diff -ruN linux-2.6.18-vanilla/arch/arm/configs/jornada720_defconfig linux-2.6.18/arch/arm/configs/jornada720_defconfig
---- linux-2.6.18-vanilla/arch/arm/configs/jornada720_defconfig 2006-09-20 03:42:06.000000000 +0000
-+++ linux-2.6.18/arch/arm/configs/jornada720_defconfig 2006-11-20 23:12:36.000000000 +0000
-@@ -1,74 +1,120 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.12-rc1-bk2
--# Sun Mar 27 23:10:35 2005
-+# Linux kernel version: 2.6.19-rc6
-+# Mon Nov 20 20:39:42 2006
- #
- CONFIG_ARM=y
-+# CONFIG_GENERIC_TIME is not set
- CONFIG_MMU=y
--CONFIG_UID16=y
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-+CONFIG_HARDIRQS_SW_RESEND=y
-+CONFIG_GENERIC_IRQ_PROBE=y
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+CONFIG_GENERIC_HWEIGHT=y
- CONFIG_GENERIC_CALIBRATE_DELAY=y
--CONFIG_GENERIC_IOMAP=y
-+CONFIG_ARCH_MTD_XIP=y
-+CONFIG_VECTORS_BASE=0xffff0000
-+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
- #
- # Code maturity level options
- #
- CONFIG_EXPERIMENTAL=y
--CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
--CONFIG_SWAP=y
-+# CONFIG_LOCALVERSION_AUTO is not set
-+# CONFIG_SWAP is not set
- CONFIG_SYSVIPC=y
-+# CONFIG_IPC_NS is not set
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
--CONFIG_SYSCTL=y
-+# CONFIG_TASKSTATS is not set
-+# CONFIG_UTS_NS is not set
- # CONFIG_AUDIT is not set
--CONFIG_HOTPLUG=y
--CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
-+# CONFIG_RELAY is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-+CONFIG_SYSCTL=y
- # CONFIG_EMBEDDED is not set
-+CONFIG_UID16=y
-+CONFIG_SYSCTL_SYSCALL=y
- 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_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_SHMEM=y
--CONFIG_CC_ALIGN_FUNCTIONS=0
--CONFIG_CC_ALIGN_LABELS=0
--CONFIG_CC_ALIGN_LOOPS=0
--CONFIG_CC_ALIGN_JUMPS=0
-+CONFIG_SLAB=y
-+CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_RT_MUTEXES=y
- # CONFIG_TINY_SHMEM is not set
- CONFIG_BASE_SMALL=0
-+# CONFIG_SLOB is not set
-
- #
- # Loadable module support
- #
- CONFIG_MODULES=y
--# CONFIG_MODULE_UNLOAD is not set
--CONFIG_OBSOLETE_MODPARM=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_BLK_DEV_IO_TRACE is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+# CONFIG_IOSCHED_AS is not set
-+# CONFIG_IOSCHED_DEADLINE is not set
-+CONFIG_IOSCHED_CFQ=y
-+# CONFIG_DEFAULT_AS is not set
-+# CONFIG_DEFAULT_DEADLINE is not set
-+CONFIG_DEFAULT_CFQ=y
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="cfq"
-+
-+#
- # System Type
- #
-+# CONFIG_ARCH_AAEC2000 is not set
-+# CONFIG_ARCH_INTEGRATOR is not set
-+# CONFIG_ARCH_REALVIEW is not set
-+# CONFIG_ARCH_VERSATILE is not set
-+# CONFIG_ARCH_AT91 is not set
- # 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_NETX is not set
-+# CONFIG_ARCH_H720X is not set
-+# CONFIG_ARCH_IMX is not set
-+# CONFIG_ARCH_IOP32X is not set
-+# CONFIG_ARCH_IOP33X 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_PNX4008 is not set
- # CONFIG_ARCH_PXA is not set
- # CONFIG_ARCH_RPC is not set
- CONFIG_ARCH_SA1100=y
-@@ -76,9 +122,7 @@
- # 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_IMX is not set
--# CONFIG_ARCH_H720X is not set
-+CONFIG_DMABOUNCE=y
-
- #
- # SA11x0 Implementations
-@@ -91,6 +135,7 @@
- # CONFIG_SA1100_H3800 is not set
- # CONFIG_SA1100_BADGE4 is not set
- CONFIG_SA1100_JORNADA720=y
-+CONFIG_SA1100_JORNADA720_MCU=y
- # CONFIG_SA1100_HACKKIT is not set
- # CONFIG_SA1100_LART is not set
- # CONFIG_SA1100_PLEB is not set
-@@ -108,13 +153,15 @@
- CONFIG_CPU_CACHE_V4WB=y
- CONFIG_CPU_CACHE_VIVT=y
- CONFIG_CPU_TLB_V4WB=y
--CONFIG_CPU_MINICACHE=y
-+CONFIG_CPU_CP15=y
-+CONFIG_CPU_CP15_MMU=y
-
- #
- # Processor Features
- #
-+# CONFIG_CPU_ICACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_DISABLE is not set
- CONFIG_SA1111=y
--CONFIG_DMABOUNCE=y
- CONFIG_FORCE_MAX_ZONEORDER=9
-
- #
-@@ -128,21 +175,36 @@
- CONFIG_PCCARD=y
- # CONFIG_PCMCIA_DEBUG is not set
- CONFIG_PCMCIA=y
-+CONFIG_PCMCIA_LOAD_CIS=y
-+# CONFIG_PCMCIA_IOCTL is not set
-
- #
- # PC-card bridges
- #
--CONFIG_I82365=y
-+# CONFIG_I82365 is not set
- # CONFIG_TCIC is not set
--CONFIG_PCMCIA_SA1100=y
--# CONFIG_PCMCIA_SA1111 is not set
--CONFIG_PCCARD_NONSTATIC=y
-+# CONFIG_PCMCIA_SA1100 is not set
-+CONFIG_PCMCIA_SA1111=y
-
- #
- # 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=y
-+CONFIG_NODES_SHIFT=2
-+CONFIG_SELECT_MEMORY_MODEL=y
-+# CONFIG_FLATMEM_MANUAL is not set
-+CONFIG_DISCONTIGMEM_MANUAL=y
-+# CONFIG_SPARSEMEM_MANUAL is not set
- CONFIG_DISCONTIGMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_NEED_MULTIPLE_NODES=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4096
-+# CONFIG_RESOURCES_64BIT is not set
- # CONFIG_LEDS is not set
- CONFIG_ALIGNMENT_TRAP=y
-
-@@ -151,13 +213,24 @@
- #
- CONFIG_ZBOOT_ROM_TEXT=0x0
- CONFIG_ZBOOT_ROM_BSS=0x0
--CONFIG_CMDLINE="keepinitrd mem=32M"
-+CONFIG_CMDLINE=""
- # CONFIG_XIP_KERNEL is not set
-
- #
- # CPU Frequency scaling
- #
--# CONFIG_CPU_FREQ is not set
-+CONFIG_CPU_FREQ=y
-+CONFIG_CPU_FREQ_TABLE=m
-+# CONFIG_CPU_FREQ_DEBUG is not set
-+# CONFIG_CPU_FREQ_STAT is not set
-+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-+# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
-+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
-+CONFIG_CPU_FREQ_GOV_USERSPACE=y
-+# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
-+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
-+CONFIG_CPU_FREQ_SA1110=y
-
- #
- # Floating point emulation
-@@ -168,21 +241,106 @@
- #
- CONFIG_FPE_NWFPE=y
- # CONFIG_FPE_NWFPE_XP is not set
--CONFIG_FPE_FASTFPE=y
-+# CONFIG_FPE_FASTFPE is not set
-
- #
- # Userspace binary formats
- #
- CONFIG_BINFMT_ELF=y
--CONFIG_BINFMT_AOUT=m
-+# CONFIG_BINFMT_AOUT is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_ARTHUR is not set
-
- #
- # Power management options
- #
--CONFIG_PM=y
--# CONFIG_APM is not set
-+# CONFIG_PM is not set
-+CONFIG_APM=y
-+CONFIG_SA1100_JORNADA720_APM=y
-+
-+#
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+# CONFIG_NETDEBUG is not set
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+CONFIG_XFRM=y
-+# CONFIG_XFRM_USER is not set
-+# CONFIG_XFRM_SUB_POLICY is not set
-+CONFIG_NET_KEY=y
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP 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_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_IPV6 is not set
-+# CONFIG_INET6_XFRM_TUNNEL is not set
-+# CONFIG_INET6_TUNNEL is not set
-+# CONFIG_NETWORK_SECMARK 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_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
-+CONFIG_WIRELESS_EXT=y
-
- #
- # Device Drivers
-@@ -193,89 +351,18 @@
- #
- CONFIG_STANDALONE=y
- CONFIG_PREVENT_FIRMWARE_BUILD=y
--# CONFIG_FW_LOADER is not set
--# CONFIG_DEBUG_DRIVER is not set
-+CONFIG_FW_LOADER=y
-+# CONFIG_SYS_HYPERVISOR is not set
-
- #
--# Memory Technology Devices (MTD)
-+# Connector - unified userspace <-> kernelspace linker
- #
--CONFIG_MTD=y
--CONFIG_MTD_DEBUG=y
--CONFIG_MTD_DEBUG_VERBOSE=1
--# CONFIG_MTD_CONCAT is not set
--CONFIG_MTD_PARTITIONS=y
--# CONFIG_MTD_REDBOOT_PARTS 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=m
--CONFIG_MTD_BLOCK=y
--# CONFIG_FTL is not set
--# CONFIG_NFTL is not set
--# CONFIG_INFTL 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=y
--CONFIG_MTD_CFI_I2=y
--# CONFIG_MTD_CFI_I4 is not set
--# CONFIG_MTD_CFI_I8 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_XIP is not set
--
--#
--# Mapping drivers for chip access
--#
--# CONFIG_MTD_COMPLEX_MAPPINGS is not set
--# CONFIG_MTD_PHYSMAP is not set
--# CONFIG_MTD_ARM_INTEGRATOR is not set
--CONFIG_MTD_SA1100=y
--# CONFIG_MTD_EDB7312 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_BLKMTD 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
-+# CONFIG_CONNECTOR is not set
-
- #
--# NAND Flash Device Drivers
-+# Memory Technology Devices (MTD)
- #
--# CONFIG_MTD_NAND is not set
-+# CONFIG_MTD is not set
-
- #
- # Parallel port support
-@@ -290,40 +377,28 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
--# CONFIG_BLK_DEV_XD is not set
- # CONFIG_BLK_DEV_COW_COMMON is not set
--CONFIG_BLK_DEV_LOOP=m
--# CONFIG_BLK_DEV_CRYPTOLOOP is not set
--CONFIG_BLK_DEV_NBD=m
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_RAM is not set
--CONFIG_BLK_DEV_RAM_COUNT=16
--CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_BLK_DEV_INITRD is not set
- # CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
- # CONFIG_ATA_OVER_ETH is not set
-
- #
- # ATA/ATAPI/MFM/RLL support
- #
--CONFIG_IDE=m
--CONFIG_BLK_DEV_IDE=m
-+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=m
-+CONFIG_BLK_DEV_IDEDISK=y
- # CONFIG_IDEDISK_MULTI_MODE is not set
--# CONFIG_BLK_DEV_IDECS is not set
--CONFIG_BLK_DEV_IDECD=m
-+CONFIG_BLK_DEV_IDECS=y
-+# 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
-@@ -331,7 +406,7 @@
- #
- # IDE chipset support/bugfixes
- #
--CONFIG_IDE_GENERIC=m
-+CONFIG_IDE_GENERIC=y
- # CONFIG_IDE_ARM is not set
- # CONFIG_IDE_CHIPSETS is not set
- # CONFIG_BLK_DEV_IDEDMA is not set
-@@ -341,7 +416,9 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-+# CONFIG_SCSI_NETLINK is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -351,6 +428,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -361,129 +439,8 @@
- #
-
- #
--# Networking support
-+# Network device support
- #
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--CONFIG_PACKET_MMAP=y
--# CONFIG_NETLINK_DEV is not set
--CONFIG_UNIX=y
--# CONFIG_NET_KEY is not set
--CONFIG_INET=y
--CONFIG_IP_MULTICAST=y
--# CONFIG_IP_ADVANCED_ROUTER is not set
--# CONFIG_IP_PNP is not set
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_IP_MROUTE 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_TUNNEL is not set
--# CONFIG_IP_TCPDIAG is not set
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--
--#
--# IP: Virtual Server Configuration
--#
--# CONFIG_IP_VS is not set
--# CONFIG_IPV6 is not set
--CONFIG_NETFILTER=y
--# CONFIG_NETFILTER_DEBUG is not set
--
--#
--# IP: Netfilter Configuration
--#
--# CONFIG_IP_NF_CONNTRACK is not set
--# CONFIG_IP_NF_CONNTRACK_MARK is not set
--# CONFIG_IP_NF_QUEUE is not set
--# CONFIG_IP_NF_IPTABLES is not set
--# CONFIG_IP_NF_ARPTABLES is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP 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
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
--#
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--CONFIG_IRDA=m
--
--#
--# IrDA protocols
--#
--CONFIG_IRLAN=m
--# CONFIG_IRNET is not set
--CONFIG_IRCOMM=m
--# CONFIG_IRDA_ULTRA is not set
--
--#
--# IrDA options
--#
--# CONFIG_IRDA_CACHE_LAST_LSAP is not set
--# CONFIG_IRDA_FAST_RR is not set
--# CONFIG_IRDA_DEBUG is not set
--
--#
--# Infrared-port device drivers
--#
--
--#
--# SIR device drivers
--#
--# CONFIG_IRTTY_SIR is not set
--
--#
--# Dongle support
--#
--
--#
--# Old SIR device drivers
--#
--# CONFIG_IRPORT_SIR is not set
--
--#
--# Old Serial dongle support
--#
--
--#
--# FIR device drivers
--#
--# CONFIG_NSC_FIR is not set
--# CONFIG_WINBOND_FIR is not set
--# CONFIG_SMC_IRCC_FIR is not set
--# CONFIG_ALI_FIR is not set
--CONFIG_SA1100_FIR=m
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-@@ -496,6 +453,10 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- # CONFIG_NET_ETHERNET is not set
-@@ -518,15 +479,16 @@
- # Wireless LAN (non-hamradio)
- #
- CONFIG_NET_RADIO=y
-+# CONFIG_NET_WIRELESS_RTNETLINK is not set
-
- #
- # Obsolete Wireless cards support (pre-802.11)
- #
- # CONFIG_STRIP is not set
--CONFIG_ARLAN=m
--CONFIG_WAVELAN=m
-+# CONFIG_ARLAN is not set
-+# CONFIG_WAVELAN is not set
- CONFIG_PCMCIA_WAVELAN=m
--# CONFIG_PCMCIA_NETWAVE is not set
-+CONFIG_PCMCIA_NETWAVE=m
-
- #
- # Wireless 802.11 Frequency Hopping cards support
-@@ -537,14 +499,17 @@
- # Wireless 802.11b ISA/PCI cards support
- #
- CONFIG_HERMES=m
--# CONFIG_ATMEL is not set
-+CONFIG_ATMEL=m
-
- #
- # Wireless 802.11b Pcmcia/Cardbus cards support
- #
- CONFIG_PCMCIA_HERMES=m
-+CONFIG_PCMCIA_SPECTRUM=m
- CONFIG_AIRO_CS=m
--# CONFIG_PCMCIA_WL3501 is not set
-+# CONFIG_PCMCIA_ATMEL is not set
-+CONFIG_PCMCIA_WL3501=m
-+# CONFIG_HOSTAP is not set
- CONFIG_NET_WIRELESS=y
-
- #
-@@ -564,17 +529,12 @@
- # Wan interfaces
- #
- # CONFIG_WAN is not set
--CONFIG_PPP=m
--# CONFIG_PPP_MULTILINK is not set
--# CONFIG_PPP_FILTER is not set
--CONFIG_PPP_ASYNC=m
--# CONFIG_PPP_SYNC_TTY is not set
--CONFIG_PPP_DEFLATE=m
--CONFIG_PPP_BSDCOMP=m
--# CONFIG_PPPOE 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
-@@ -585,49 +545,51 @@
- # Input device support
- #
- CONFIG_INPUT=y
-+# CONFIG_INPUT_FF_MEMLESS is not set
-
- #
- # Userland interfaces
- #
- CONFIG_INPUT_MOUSEDEV=y
--CONFIG_INPUT_MOUSEDEV_PSAUX=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
- CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
- CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
- # CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_TSDEV is not set
--# CONFIG_INPUT_EVDEV is not set
-+CONFIG_INPUT_TSDEV=y
-+CONFIG_INPUT_TSDEV_SCREEN_X=640
-+CONFIG_INPUT_TSDEV_SCREEN_Y=240
-+CONFIG_INPUT_EVDEV=y
- # CONFIG_INPUT_EVBUG is not set
-
- #
- # Input Device Drivers
- #
- CONFIG_INPUT_KEYBOARD=y
--CONFIG_KEYBOARD_ATKBD=y
-+# CONFIG_KEYBOARD_ATKBD is not set
- # 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=y
--CONFIG_MOUSE_PS2=y
--# CONFIG_MOUSE_SERIAL is not set
--# CONFIG_MOUSE_INPORT is not set
--# CONFIG_MOUSE_LOGIBM is not set
--# CONFIG_MOUSE_PC110PAD is not set
--# CONFIG_MOUSE_VSXXXAA is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+CONFIG_KEYBOARD_JORNADA720=y
-+# CONFIG_INPUT_MOUSE is not set
- # CONFIG_INPUT_JOYSTICK is not set
--# CONFIG_INPUT_TOUCHSCREEN is not set
-+CONFIG_INPUT_TOUCHSCREEN=y
-+# 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_TOUCHSCREEN_PENMOUNT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-+CONFIG_TOUCHSCREEN_JORNADA720=y
- # CONFIG_INPUT_MISC is not set
-
- #
- # Hardware I/O ports
- #
--CONFIG_SERIO=y
--CONFIG_SERIO_SERPORT=y
--# CONFIG_SERIO_SA1111 is not set
--CONFIG_SERIO_LIBPS2=y
--# CONFIG_SERIO_RAW is not set
-+# CONFIG_SERIO is not set
- # CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
-
- #
- # Character devices
-@@ -635,6 +597,7 @@
- CONFIG_VT=y
- CONFIG_VT_CONSOLE=y
- CONFIG_HW_CONSOLE=y
-+# CONFIG_VT_HW_CONSOLE_BINDING is not set
- # CONFIG_SERIAL_NONSTANDARD is not set
-
- #
-@@ -651,7 +614,7 @@
- CONFIG_SERIAL_CORE_CONSOLE=y
- CONFIG_UNIX98_PTYS=y
- CONFIG_LEGACY_PTYS=y
--CONFIG_LEGACY_PTY_COUNT=256
-+CONFIG_LEGACY_PTY_COUNT=8
-
- #
- # IPMI
-@@ -662,20 +625,21 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+CONFIG_HW_RANDOM=y
- # CONFIG_NVRAM is not set
--# CONFIG_RTC is not set
- # CONFIG_DTLK is not set
- # CONFIG_R3964 is not set
-
- #
- # Ftape, the floppy tape device driver
- #
--# CONFIG_DRM is not set
-
- #
- # PCMCIA character devices
- #
- # CONFIG_SYNCLINK_CS is not set
-+# CONFIG_CARDMAN_4000 is not set
-+# CONFIG_CARDMAN_4040 is not set
- # CONFIG_RAW_DRIVER is not set
-
- #
-@@ -689,8 +653,44 @@
- # 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 is not set
-+# CONFIG_HWMON_VID is not set
-+
-+#
- # Misc devices
- #
-+# CONFIG_TIFM_CORE is not set
-+
-+#
-+# Multimedia Capabilities Port drivers
-+#
-+# CONFIG_MCP_SA11X0 is not set
-+
-+#
-+# LED devices
-+#
-+# CONFIG_NEW_LEDS is not set
-+
-+#
-+# LED drivers
-+#
-+
-+#
-+# LED Triggers
-+#
-
- #
- # Multimedia devices
-@@ -705,14 +705,17 @@
- #
- # Graphics support
- #
-+CONFIG_FIRMWARE_EDID=y
- CONFIG_FB=y
--# CONFIG_FB_CFB_FILLRECT is not set
--# CONFIG_FB_CFB_COPYAREA is not set
--# CONFIG_FB_CFB_IMAGEBLIT is not set
--# CONFIG_FB_SOFT_CURSOR is not set
-+CONFIG_FB_CFB_FILLRECT=y
-+CONFIG_FB_CFB_COPYAREA=y
-+CONFIG_FB_CFB_IMAGEBLIT=y
-+# CONFIG_FB_MACMODES is not set
-+# CONFIG_FB_BACKLIGHT is not set
- # CONFIG_FB_MODE_HELPERS is not set
- # CONFIG_FB_TILEBLITTING is not set
- # CONFIG_FB_SA1100 is not set
-+CONFIG_FB_S1D13XXX=y
- # CONFIG_FB_VIRTUAL is not set
-
- #
-@@ -721,37 +724,50 @@
- # CONFIG_VGA_CONSOLE is not set
- # CONFIG_MDA_CONSOLE is not set
- CONFIG_DUMMY_CONSOLE=y
--# CONFIG_FRAMEBUFFER_CONSOLE is not set
-+CONFIG_FRAMEBUFFER_CONSOLE=y
-+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-+CONFIG_FONTS=y
-+CONFIG_FONT_8x8=y
-+# CONFIG_FONT_8x16 is not set
-+# CONFIG_FONT_6x11 is not set
-+# CONFIG_FONT_7x14 is not set
-+# CONFIG_FONT_PEARL_8x8 is not set
-+# CONFIG_FONT_ACORN_8x8 is not set
-+# CONFIG_FONT_MINI_4x6 is not set
-+# CONFIG_FONT_SUN8x16 is not set
-+# CONFIG_FONT_SUN12x22 is not set
-+# CONFIG_FONT_10x18 is not set
-
- #
- # Logo configuration
- #
- # CONFIG_LOGO is not set
--# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_DEVICE=y
-+CONFIG_LCD_CLASS_DEVICE=y
-+CONFIG_LCD_DEVICE=y
-+CONFIG_BACKLIGHT_JORNADA720=y
-+CONFIG_LCD_JORNADA720=y
-
- #
- # Sound
- #
--CONFIG_SOUND=m
--
--#
--# Advanced Linux Sound Architecture
--#
--# CONFIG_SND is not set
--
--#
--# Open Sound System
--#
--# CONFIG_SOUND_PRIME is not set
-+# 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
-@@ -762,53 +778,89 @@
- # CONFIG_MMC is not set
-
- #
-+# Real Time Clock
-+#
-+CONFIG_RTC_LIB=y
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_HCTOSYS=y
-+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-+# CONFIG_RTC_DEBUG is not set
-+
-+#
-+# RTC interfaces
-+#
-+CONFIG_RTC_INTF_SYSFS=y
-+CONFIG_RTC_INTF_PROC=y
-+CONFIG_RTC_INTF_DEV=y
-+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-+
-+#
-+# RTC drivers
-+#
-+# CONFIG_RTC_DRV_DS1553 is not set
-+# CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_M48T86 is not set
-+CONFIG_RTC_DRV_SA1100=y
-+# CONFIG_RTC_DRV_TEST is not set
-+# CONFIG_RTC_DRV_V3020 is not set
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
--# CONFIG_EXT3_FS is not set
--# CONFIG_JBD is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+CONFIG_EXT3_FS=y
-+CONFIG_EXT3_FS_XATTR=y
-+# CONFIG_EXT3_FS_POSIX_ACL is not set
-+# CONFIG_EXT3_FS_SECURITY is not set
-+# CONFIG_EXT4DEV_FS is not set
-+CONFIG_JBD=y
-+# CONFIG_JBD_DEBUG is not set
-+CONFIG_FS_MBCACHE=y
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
-+# CONFIG_GFS2_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_INOTIFY_USER=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=m
--# CONFIG_JOLIET is not set
--# CONFIG_ZISOFS is not set
-+# CONFIG_ISO9660_FS is not set
- # CONFIG_UDF_FS is not set
-
- #
- # DOS/FAT/NT Filesystems
- #
--# CONFIG_MSDOS_FS is not set
--# CONFIG_VFAT_FS is not set
-+CONFIG_FAT_FS=y
-+CONFIG_MSDOS_FS=y
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=852
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-2"
- # CONFIG_NTFS_FS is not set
-
- #
- # Pseudo filesystems
- #
- CONFIG_PROC_FS=y
-+CONFIG_PROC_SYSCTL=y
- CONFIG_SYSFS=y
--CONFIG_DEVFS_FS=y
--CONFIG_DEVFS_MOUNT=y
--CONFIG_DEVFS_DEBUG=y
--# CONFIG_DEVPTS_FS_XATTR is not set
--# CONFIG_TMPFS is not set
-+CONFIG_TMPFS=y
-+# CONFIG_TMPFS_POSIX_ACL is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_CONFIGFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -820,15 +872,6 @@
- # 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=2
--# CONFIG_JFFS2_FS_NAND is not set
--# CONFIG_JFFS2_FS_NOR_ECC 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
-@@ -839,21 +882,14 @@
- #
- # Network File Systems
- #
--CONFIG_NFS_FS=m
--CONFIG_NFS_V3=y
--# CONFIG_NFS_V4 is not set
--# CONFIG_NFS_DIRECTIO is not set
-+# CONFIG_NFS_FS is not set
- # CONFIG_NFSD is not set
--CONFIG_LOCKD=m
--CONFIG_LOCKD_V4=y
--CONFIG_SUNRPC=m
--# 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
-@@ -864,7 +900,46 @@
- #
- # Native Language Support
- #
--# CONFIG_NLS is not set
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-2"
-+CONFIG_NLS_CODEPAGE_437=m
-+# 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=y
-+# 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=m
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+CONFIG_NLS_ISO8859_1=y
-+CONFIG_NLS_ISO8859_2=y
-+# 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=y
-
- #
- # Profiling support
-@@ -875,23 +950,16 @@
- # Kernel hacking
- #
- # CONFIG_PRINTK_TIME is not set
--CONFIG_DEBUG_KERNEL=y
-+CONFIG_ENABLE_MUST_CHECK=y
- # CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_UNUSED_SYMBOLS is not set
-+# CONFIG_DEBUG_KERNEL is not set
- CONFIG_LOG_BUF_SHIFT=14
--# CONFIG_SCHEDSTATS is not set
--CONFIG_DEBUG_SLAB=y
--# 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 is not set
- # CONFIG_DEBUG_FS is not set
- CONFIG_FRAME_POINTER=y
-+# CONFIG_HEADERS_CHECK is not set
- # CONFIG_DEBUG_USER is not set
--# CONFIG_DEBUG_WAITQ is not set
--CONFIG_DEBUG_ERRORS=y
--CONFIG_DEBUG_LL=y
--# CONFIG_DEBUG_ICEDCC is not set
-
- #
- # Security options
-@@ -902,7 +970,36 @@
- #
- # Cryptographic options
- #
--# CONFIG_CRYPTO is not set
-+CONFIG_CRYPTO=y
-+CONFIG_CRYPTO_ALGAPI=m
-+CONFIG_CRYPTO_BLKCIPHER=m
-+CONFIG_CRYPTO_MANAGER=m
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_NULL is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+CONFIG_CRYPTO_ECB=m
-+CONFIG_CRYPTO_CBC=m
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+CONFIG_CRYPTO_AES=m
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_ARC4 is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_ANUBIS is not set
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_TEST is not set
-
- #
- # Hardware crypto devices
-@@ -912,7 +1009,7 @@
- # Library routines
- #
- CONFIG_CRC_CCITT=m
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
--CONFIG_ZLIB_INFLATE=y
--CONFIG_ZLIB_DEFLATE=y
-+CONFIG_PLIST=y
-diff -ruN linux-2.6.18-vanilla/arch/arm/mach-sa1100/Kconfig linux-2.6.18/arch/arm/mach-sa1100/Kconfig
---- linux-2.6.18-vanilla/arch/arm/mach-sa1100/Kconfig 2006-09-20 03:42:06.000000000 +0000
-+++ linux-2.6.18/arch/arm/mach-sa1100/Kconfig 2006-11-20 23:11:07.000000000 +0000
-@@ -101,6 +101,17 @@
- handheld computer. See <http://www.hp.com/jornada/products/720>
- for details.
-
-+config SA1100_JORNADA720_MCU
-+ tristate "HP Jornada 720 Microprocessor Controller Unit"
-+ depends on SA1100_JORNADA720
-+ help
-+ Say Y here if you have a HP Jornada 7xx handheld computer and you
-+ want to access devices connected by the MCU. Those include the
-+ keyboard, touchscreen, backlight and battery.
-+
-+ To compile this driver as a module choose M here: the
-+ module will be called jornada720_mcu.
-+
- config SA1100_HACKKIT
- bool "HackKit Core CPU Board"
- help
-diff -ruN linux-2.6.18-vanilla/arch/arm/mach-sa1100/Makefile linux-2.6.18/arch/arm/mach-sa1100/Makefile
---- linux-2.6.18-vanilla/arch/arm/mach-sa1100/Makefile 2006-09-20 03:42:06.000000000 +0000
-+++ linux-2.6.18/arch/arm/mach-sa1100/Makefile 2006-11-20 23:11:23.000000000 +0000
-@@ -31,6 +31,8 @@
- led-$(CONFIG_SA1100_HACKKIT) += leds-hackkit.o
-
- obj-$(CONFIG_SA1100_JORNADA720) += jornada720.o
-+obj-$(CONFIG_SA1100_JORNADA720_MCU) += jornada720_mcu.o
-+obj-$(CONFIG_SA1100_JORNADA720_APM) += jornada720_apm.o
-
- obj-$(CONFIG_SA1100_LART) += lart.o
- led-$(CONFIG_SA1100_LART) += leds-lart.o
-diff -ruN linux-2.6.18-vanilla/arch/arm/mach-sa1100/cpu-sa1110.c linux-2.6.18/arch/arm/mach-sa1100/cpu-sa1110.c
---- linux-2.6.18-vanilla/arch/arm/mach-sa1100/cpu-sa1110.c 2006-11-20 23:12:54.000000000 +0000
-+++ linux-2.6.18/arch/arm/mach-sa1100/cpu-sa1110.c 2006-11-20 23:12:31.000000000 +0000
-@@ -85,7 +85,8 @@
- }, { /* Samsung K4S281632B-1H */
- .name = "K4S281632B-1H",
- .rows = 12,
-- .tck = 10,
-+ .tck = 8,
-+ .trcd = 20,
- .trp = 20,
- .twr = 10,
- .refresh = 64000,
-@@ -142,7 +143,7 @@
- sdram_calculate_timing(struct sdram_info *sd, u_int cpu_khz,
- struct sdram_params *sdram)
- {
-- u_int mem_khz, sd_khz, trp, twr;
-+ u_int mem_khz, sd_khz, trp, twr, rcd;
-
- mem_khz = cpu_khz / 2;
- sd_khz = mem_khz;
-@@ -180,8 +181,14 @@
- if (sd_khz != mem_khz)
- sd->mdrefr |= MDREFR_K1DB2;
-
-+ rcd = ns_to_cycles(sdram->trcd, mem_khz);
-+
-+#ifdef CONFIG_SA1100_JORNADA720
-+ /* Jornada 720 memory doesn't like trcd of 1 */
-+ if(rcd < 2) rcd = 2;
-+#endif
- /* initial number of '1's in MDCAS + 1 */
-- set_mdcas(sd->mdcas, sd_khz >= 62000, ns_to_cycles(sdram->trcd, mem_khz));
-+ set_mdcas(sd->mdcas, sd_khz >= 62000, rcd);
-
- #ifdef DEBUG
- printk("MDCNFG: %08x MDREFR: %08x MDCAS0: %08x MDCAS1: %08x MDCAS2: %08x\n",
-diff -ruN linux-2.6.18-vanilla/arch/arm/mach-sa1100/jornada720.c linux-2.6.18/arch/arm/mach-sa1100/jornada720.c
---- linux-2.6.18-vanilla/arch/arm/mach-sa1100/jornada720.c 2006-09-20 03:42:06.000000000 +0000
-+++ linux-2.6.18/arch/arm/mach-sa1100/jornada720.c 2006-11-20 23:10:41.000000000 +0000
-@@ -1,5 +1,15 @@
- /*
- * linux/arch/arm/mach-sa1100/jornada720.c
-+ *
-+ * HP Jornada720 init code
-+ *
-+ * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>
-+ * Copyright (C) 2005 Michael Gernoth <michael@gernoth.net>
-+ *
-+ * 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/init.h>
-@@ -10,13 +20,14 @@
- #include <linux/ioport.h>
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/partitions.h>
-+#include <video/s1d13xxxfb.h>
-
- #include <asm/hardware.h>
- #include <asm/hardware/sa1111.h>
- #include <asm/irq.h>
- #include <asm/mach-types.h>
- #include <asm/setup.h>
--
-+#include <asm/s1d13506.h>
- #include <asm/mach/arch.h>
- #include <asm/mach/flash.h>
- #include <asm/mach/map.h>
-@@ -24,13 +35,56 @@
-
- #include "generic.h"
-
-+/*
-+ * HP Documentation referred in this file:
-+ * http://www.jlime.com/downloads/development/docs/jornada7xx/jornada720.txt
-+ */
-+
-+/* line 110 of HP's doc */
-+#define TUCR_VAL 0x20000400
-+
-+/* memory space (line 52 of HP's doc) */
-+#define SA1111REGSTART 0x40000000
-+#define SA1111REGLEN 0x00001fff
-+#define EPSONREGSTART 0x48000000
-+#define EPSONREGLEN 0x00100000
-+#define EPSONFBSTART 0x48200000
-+/* 512kB framebuffer */
-+#define EPSONFBLEN 512*1024
-+
-+static struct s1d13xxxfb_pdata s1d13xxxfb_data = {
-+ .initregs = s1d13xxxfb_initregs,
-+ .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs),
-+ .platform_init_video = NULL
-+};
-+
-+static struct resource s1d13xxxfb_resources[] = {
-+ [0] = {
-+ .start = EPSONFBSTART,
-+ .end = EPSONFBSTART + EPSONFBLEN,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = EPSONREGSTART,
-+ .end = EPSONREGSTART + EPSONREGLEN,
-+ .flags = IORESOURCE_MEM,
-+ }
-+};
-
--#define JORTUCR_VAL 0x20000400
-+static struct platform_device s1d13xxxfb_device = {
-+ .name = S1D_DEVICENAME,
-+ .id = 0,
-+ .dev = {
-+ .platform_data = &s1d13xxxfb_data,
-+ },
-+ .num_resources = ARRAY_SIZE(s1d13xxxfb_resources),
-+ .resource = s1d13xxxfb_resources,
-+};
-
- static struct resource sa1111_resources[] = {
- [0] = {
-- .start = 0x40000000,
-- .end = 0x40001fff,
-+ .start = SA1111REGSTART,
-+ .end = SA1111REGSTART + SA1111REGLEN,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
-@@ -53,18 +107,32 @@
- .resource = sa1111_resources,
- };
-
-+static struct platform_device jornada720_mcu_device = {
-+ .name = "jornada720_mcu",
-+ .id = -1,
-+};
-+
- static struct platform_device *devices[] __initdata = {
- &sa1111_device,
-+ &jornada720_mcu_device,
-+ &s1d13xxxfb_device,
- };
-
-+/* a stub for now, we theoretically cannot suspend without a flashboard */
-+int pm_suspend(suspend_state_t state)
-+{
-+ return -1;
-+}
-+
- static int __init jornada720_init(void)
- {
- int ret = -ENODEV;
-
- if (machine_is_jornada720()) {
- GPDR |= GPIO_GPIO20;
-- TUCR = JORTUCR_VAL; /* set the oscillator out to the SA-1101 */
--
-+ /* oscillator setup (line 116 of HP's doc) */
-+ TUCR = TUCR_VAL;
-+ /* resetting SA1111 (line 118 of HP's doc) */
- GPSR = GPIO_GPIO20;
- udelay(1);
- GPCR = GPIO_GPIO20;
-@@ -72,10 +140,6 @@
- GPSR = GPIO_GPIO20;
- udelay(20);
-
-- /* LDD4 is speaker, LDD3 is microphone */
-- PPSR &= ~(PPC_LDD3 | PPC_LDD4);
-- PPDR |= PPC_LDD3 | PPC_LDD4;
--
- ret = platform_add_devices(devices, ARRAY_SIZE(devices));
- }
- return ret;
-@@ -85,19 +149,19 @@
-
- static struct map_desc jornada720_io_desc[] __initdata = {
- { /* Epson registers */
-- .virtual = 0xf0000000,
-- .pfn = __phys_to_pfn(0x48000000),
-- .length = 0x00100000,
-+ .virtual = 0xf0000000,
-+ .pfn = __phys_to_pfn(EPSONREGSTART),
-+ .length = EPSONREGLEN,
- .type = MT_DEVICE
- }, { /* Epson frame buffer */
-- .virtual = 0xf1000000,
-- .pfn = __phys_to_pfn(0x48200000),
-- .length = 0x00100000,
-+ .virtual = 0xf1000000,
-+ .pfn = __phys_to_pfn(EPSONFBSTART),
-+ .length = EPSONFBLEN,
- .type = MT_DEVICE
- }, { /* SA-1111 */
-- .virtual = 0xf4000000,
-- .pfn = __phys_to_pfn(0x40000000),
-- .length = 0x00100000,
-+ .virtual = 0xf4000000,
-+ .pfn = __phys_to_pfn(SA1111REGSTART),
-+ .length = SA1111REGLEN,
- .type = MT_DEVICE
- }
- };
-@@ -106,7 +170,7 @@
- {
- sa1100_map_io();
- iotable_init(jornada720_io_desc, ARRAY_SIZE(jornada720_io_desc));
--
-+
- sa1100_register_uart(0, 3);
- sa1100_register_uart(1, 1);
- }
-@@ -116,7 +180,7 @@
- .name = "JORNADA720 boot firmware",
- .size = 0x00040000,
- .offset = 0,
-- .mask_flags = MTD_WRITEABLE, /* force read-only */
-+ .mask_flags = MTD_WRITEABLE, /* force read-only */
- }, {
- .name = "JORNADA720 kernel",
- .size = 0x000c0000,
-@@ -139,7 +203,7 @@
- .offset = 0x00540000,
- }, {
- .name = "JORNADA720 usr local",
-- .size = 0, /* will expand to the end of the flash */
-+ .size = 0, /* will expand to the end of the flash */
- .offset = 0x00d00000,
- }
- };
-@@ -147,10 +211,12 @@
- static void jornada720_set_vpp(int vpp)
- {
- if (vpp)
-- PPSR |= 0x80;
-+ /* enabling flash write (line 470 of HP's doc) */
-+ PPSR |= PPC_LDD7;
- else
-- PPSR &= ~0x80;
-- PPDR |= 0x80;
-+ /* disabling flash write (line 470 of HP's doc) */
-+ PPSR &= ~PPC_LDD7;
-+ PPDR |= PPC_LDD7;
- }
-
- static struct flash_platform_data jornada720_flash_data = {
-diff -ruN linux-2.6.18-vanilla/arch/arm/mach-sa1100/jornada720_apm.c linux-2.6.18/arch/arm/mach-sa1100/jornada720_apm.c
---- linux-2.6.18-vanilla/arch/arm/mach-sa1100/jornada720_apm.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.18/arch/arm/mach-sa1100/jornada720_apm.c 2006-11-20 23:11:20.000000000 +0000
-@@ -0,0 +1,195 @@
-+/*
-+ * HP Jornada 720 APM driver
-+ */
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/delay.h>
-+#include <linux/device.h>
-+
-+#include <asm/apm.h>
-+
-+#include <asm/hardware.h>
-+#include <asm/arch/jornada720_mcu.h>
-+
-+/*
-+ * HP Documentation referred in this file:
-+ * http://www.jlime.com/downloads/development/docs/jornada7xx/jornada720.txt
-+ */
-+
-+MODULE_AUTHOR("Filip Zyzniewski <filip.zyzniewski@tefnet.pl>");
-+MODULE_DESCRIPTION("Jornada 720 battery status reporting");
-+MODULE_LICENSE("GPL");
-+
-+#define jornada720_apm_battery_charging() (! (GPLR & GPIO_GPIO26) )
-+#define jornada720_apm_ac_online() ((GPLR & GPIO_GPIO4) ? 0 : 1)
-+
-+#define JORNADA720_APM_BACKUP_BATTERY 0
-+#define JORNADA720_APM_MAIN_BATTERY 1
-+
-+#define JORNADA720_APM_MAIN_BATT_MIN_VOLTAGE 430
-+
-+/* without ac power */
-+#define JORNADA720_APM_MAIN_BATT_MAX_VOLTAGE 670
-+
-+/* divisor to convert jornada720_apm_get_main_battery() return value into % */
-+#define JORNADA720_APM_MAIN_BATT_DIVISOR \
-+ (JORNADA720_APM_MAIN_BATT_MAX_VOLTAGE-JORNADA720_APM_MAIN_BATT_MIN_VOLTAGE) * \
-+ (JORNADA720_APM_MAIN_BATT_MAX_VOLTAGE-JORNADA720_APM_MAIN_BATT_MIN_VOLTAGE) / 100
-+/*
-+ * coeffient correcting battery voltage altered by
-+ * ac power
-+ */
-+#define JORNADA720_APM_MAIN_BATT_AC_COEFF 100 / 105
-+
-+
-+int jornada720_apm_get_battery_raw(int battnum)
-+{
-+ unsigned char lsb, msb;
-+
-+ /* getting batteries data (line 289 of HP's doc) */
-+ if (!jornada720_mcu_start(jornada720_mcu_GetBatteryData)) {
-+ lsb=jornada720_mcu_read();
-+ if (battnum==JORNADA720_APM_BACKUP_BATTERY)
-+ /* we are interested in the second byte */
-+ lsb=jornada720_mcu_read();
-+ else
-+ /* we are interested in the first byte */
-+ jornada720_mcu_read();
-+
-+ msb=jornada720_mcu_read();
-+ } else {
-+ jornada720_mcu_end();
-+ return -1;
-+ }
-+
-+ jornada720_mcu_end();
-+
-+ if (battnum==JORNADA720_APM_MAIN_BATTERY) {
-+ /*
-+ * main battery absent
-+ * (http://mail-index.netbsd.org/port-hpcarm/2005/09/18/0000.html)
-+ */
-+ if ((msb & 0x03) == 0x03) return -1;
-+ /* putting the value together (line 300 of HP's doc) */
-+ return ((msb & 0x03) << 8) + lsb;
-+ } else {
-+ /*
-+ * backup battery absent
-+ * (http://mail-index.netbsd.org/port-hpcarm/2005/09/18/0000.html)
-+ */
-+ if ((msb & 0x0c) == 0x00) return -1;
-+ /* putting the value together (line 300 of HP's doc) */
-+ return ((msb & 0x0c) << 6) + lsb;
-+ }
-+}
-+
-+int jornada720_apm_get_battery(int battnum)
-+{
-+ int ret = jornada720_apm_get_battery_raw(battnum);
-+
-+ if (ret == -1)
-+ return ret;
-+
-+ if (battnum==JORNADA720_APM_MAIN_BATTERY) {
-+ /* we want 0 for a completely drained battery */
-+ ret -= JORNADA720_APM_MAIN_BATT_MIN_VOLTAGE;
-+
-+ /* voltage(time) is not linear */
-+ ret *= ret;
-+
-+ /* let's bring it down to 0-100% range */
-+ ret /= JORNADA720_APM_MAIN_BATT_DIVISOR;
-+
-+ /* plugging AC power causes voltage to rise a bit */
-+ if (jornada720_apm_ac_online())
-+ ret = ret * JORNADA720_APM_MAIN_BATT_AC_COEFF;
-+
-+ /*
-+ * sometimes it tends to fluctuate a bit above 100%, which
-+ * looks funny, so we bring it down
-+ */
-+ if (ret > 100) ret=100;
-+
-+ }
-+
-+ /*
-+ * returning a raw value, because we don't know how to calculate %
-+ * for a backup battery
-+ */
-+ return ret;
-+}
-+
-+static void jornada720_apm_get_power_status(struct apm_power_info *info)
-+{
-+
-+ info->battery_life=jornada720_apm_get_battery(JORNADA720_APM_MAIN_BATTERY);
-+
-+ if (info->battery_life==-1) {
-+ info->battery_status = APM_BATTERY_STATUS_NOT_PRESENT;
-+ info->battery_flag = APM_BATTERY_FLAG_NOT_PRESENT;
-+
-+ } else if (info->battery_life < 30) {
-+ info->battery_status = APM_BATTERY_STATUS_LOW;
-+ info->battery_flag = APM_BATTERY_FLAG_LOW;
-+
-+ } else if (info->battery_life < 5) {
-+ info->battery_status = APM_BATTERY_STATUS_CRITICAL;
-+ info->battery_flag = APM_BATTERY_FLAG_CRITICAL;
-+
-+ } else {
-+ info->battery_status = APM_BATTERY_STATUS_HIGH;
-+ info->battery_flag = APM_BATTERY_FLAG_HIGH;
-+ }
-+
-+ if (jornada720_apm_battery_charging())
-+ info->battery_status = APM_BATTERY_STATUS_CHARGING;
-+
-+ info->ac_line_status = jornada720_apm_ac_online();
-+}
-+
-+static int jornada720_apm_probe(struct device *dev) {
-+
-+ /* we provide a function to check battery levels etc */
-+ apm_get_power_status=jornada720_apm_get_power_status;
-+
-+ return 0;
-+}
-+
-+static int jornada720_apm_remove(struct device *dev) {
-+ if(apm_get_power_status==jornada720_apm_get_power_status)
-+ apm_get_power_status=NULL;
-+ return 0;
-+}
-+
-+static struct device_driver jornada720_apm_driver = {
-+ .name = jornada720_mcu_bus_id_apm,
-+ .bus = &jornada720_mcu_bus_type,
-+ .probe = jornada720_apm_probe,
-+ .remove = jornada720_apm_remove,
-+ .owner = THIS_MODULE,
-+};
-+
-+static int __init jornada720_apm_init(void) {
-+ int ret, backup_level;
-+
-+ ret = driver_register(&jornada720_apm_driver);
-+ if(ret) return ret;
-+
-+ backup_level = jornada720_apm_get_battery(JORNADA720_APM_BACKUP_BATTERY);
-+
-+ if(backup_level != -1)
-+ printk(KERN_INFO "jornada720_apm: backup battery level: %i\n", backup_level);
-+ else
-+ printk(KERN_INFO "jornada720_apm: backup battery not present\n");
-+
-+ return ret;
-+}
-+
-+static void __exit jornada720_apm_exit(void) {
-+ driver_unregister(&jornada720_apm_driver);
-+}
-+
-+
-+module_init(jornada720_apm_init);
-+module_exit(jornada720_apm_exit);
-diff -ruN linux-2.6.18-vanilla/arch/arm/mach-sa1100/jornada720_mcu.c linux-2.6.18/arch/arm/mach-sa1100/jornada720_mcu.c
---- linux-2.6.18-vanilla/arch/arm/mach-sa1100/jornada720_mcu.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.18/arch/arm/mach-sa1100/jornada720_mcu.c 2006-11-20 23:11:00.000000000 +0000
-@@ -0,0 +1,248 @@
-+/*
-+ * arch/arm/mach-sa1100/jornada720_mcu.c
-+ *
-+ * HP Jornada 720 Microprocessor Control Unit driver
-+ *
-+ * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>
-+ * Copyright (C) 2005 Michael Gernoth <michael@gernoth.net>
-+ *
-+ * 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/init.h>
-+#include <linux/kernel.h>
-+#include <linux/device.h>
-+#include <linux/platform_device.h>
-+
-+#include <asm/hardware.h>
-+#include <asm/arch/jornada720_mcu.h>
-+
-+/* TODO:
-+ * when CONFIG_SA1100_SSP will be definable and ssp header will be present,
-+ * CONFIG_SA1100_SSP should be added to this module's dependencies and this
-+ * include should be removed in favour of ssp header file
-+ */
-+#include "ssp.c"
-+
-+MODULE_AUTHOR("Filip Zyzniewski <filip.zyzniewski@tefnet.pl>");
-+MODULE_DESCRIPTION("HP Jornada 720 Microprocessor Controller Unit driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * HP Documentation referred in this file:
-+ * http://www.jlime.com/downloads/development/docs/jornada7xx/jornada720.txt
-+ */
-+
-+
-+/*
-+ * we have to lock to avoid starting
-+ * second transmission during one taking place
-+ */
-+static spinlock_t jornada720_mcu_lock = SPIN_LOCK_UNLOCKED;
-+static unsigned long jornada720_mcu_flags;
-+
-+
-+u8 inline jornada720_mcu_reverse(u8 x)
-+{
-+ /* byte ghijklmn becomes nmlkjihg (line 205 of HP's doc) */
-+ return
-+ ((0x80 & x) >> 7) |
-+ ((0x40 & x) >> 5) |
-+ ((0x20 & x) >> 3) |
-+ ((0x10 & x) >> 1) |
-+ ((0x08 & x) << 1) |
-+ ((0x04 & x) << 3) |
-+ ((0x02 & x) << 5) |
-+ ((0x01 & x) << 7) ;
-+}
-+
-+
-+int jornada720_mcu_byte(u8 byte)
-+{
-+ u16 ret;
-+ int timeout = 400000;
-+
-+ /* wating for GPIO 10 to go low (line 197 of HP's doc) */
-+ while ((GPLR & GPIO_GPIO10)) {
-+ if (!--timeout) {
-+ printk("jornada720_mcu_byte ret -ETIMEDOUT\n");
-+ return -ETIMEDOUT;
-+ }
-+ cpu_relax();
-+ }
-+
-+ ret=jornada720_mcu_reverse(byte) << 8;
-+
-+ ssp_write_word(ret);
-+ ssp_read_word(&ret);
-+
-+ return jornada720_mcu_reverse(ret);
-+}
-+
-+EXPORT_SYMBOL(jornada720_mcu_byte);
-+
-+
-+/*
-+ * WARNING: remember to jornada720_mcu_end() after every
-+ * jornada720_mcu_start() or you will deadlock!
-+ */
-+
-+int jornada720_mcu_start(u8 byte)
-+{
-+ int i;
-+
-+ /* we don't want other access to the MCU now */
-+ spin_lock_irqsave(&jornada720_mcu_lock, jornada720_mcu_flags);
-+
-+ /* clear to enable MCU (line 194 of HP's doc) */
-+ GPCR = GPIO_GPIO25;
-+
-+ /* we should always get TxDummy after first request */
-+ if (jornada720_mcu_byte(byte) != jornada720_mcu_TxDummy)
-+ {
-+ printk(KERN_WARNING "jornada720_mcu: leftover MCU data, flushing\n");
-+ for (i = 0; i < 256; i++)
-+ if (jornada720_mcu_read() == -1)
-+ break;
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+EXPORT_SYMBOL(jornada720_mcu_start);
-+
-+
-+void jornada720_mcu_end(void)
-+{
-+ /* end of transmission (line 203 of HP's doc) */
-+ GPSR = GPIO_GPIO25;
-+ spin_unlock_irqrestore(&jornada720_mcu_lock, jornada720_mcu_flags);
-+}
-+
-+EXPORT_SYMBOL(jornada720_mcu_end);
-+
-+
-+/* Jornada 720 devices accessed by the MCU */
-+static struct device jornada720_mcu_bus_devices[] = {
-+ /* keyboard */
-+ { .bus_id = jornada720_mcu_bus_id_kbd },
-+
-+ /* touchscreen */
-+ { .bus_id = jornada720_mcu_bus_id_ts },
-+
-+ /* apm (batteries) */
-+ { .bus_id = jornada720_mcu_bus_id_apm },
-+
-+ /* backlight */
-+ { .bus_id = jornada720_mcu_bus_id_bl },
-+
-+ /* lcd display */
-+ { .bus_id = jornada720_mcu_bus_id_lcd },
-+};
-+
-+static int jornada720_mcu_bus_match(struct device *dev, struct device_driver *drv)
-+{
-+ return ! strcmp(dev->bus_id, drv->name);
-+}
-+
-+struct bus_type jornada720_mcu_bus_type = {
-+ .name = "jornada720_mcu_bus",
-+ .match = jornada720_mcu_bus_match,
-+};
-+
-+EXPORT_SYMBOL(jornada720_mcu_bus_type);
-+
-+
-+void jornada720_mcu_bus_device_release(struct device *dev)
-+{
-+ /*
-+ * those device structures are static, so we don't
-+ * have anything to free
-+ */
-+}
-+
-+static int __init jornada720_mcu_probe(struct platform_device *dev)
-+{
-+ int ret, i;
-+
-+ /* we don't want any data yet (line 203 of HP's doc) */
-+ GPSR = GPIO_GPIO25;
-+ ret=ssp_init();
-+ if (ret)
-+ return ret;
-+
-+ /* initialization of MCU serial interface (line 182 of HP's doc) */
-+ Ser4MCCR0 = 0;
-+ Ser4SSCR0 = 0x0387;
-+ Ser4SSCR1 = 0x18;
-+
-+ ssp_flush();
-+
-+ /* test of MCU presence */
-+ ret = jornada720_mcu_start(jornada720_mcu_GetBrightness);
-+ if(!ret) jornada720_mcu_read();
-+ jornada720_mcu_end();
-+
-+ if(ret < 0) {
-+ ssp_exit();
-+ return -ENODEV;
-+ }
-+
-+ /* registering devices accessible through this bus */
-+ for(i=0; i<ARRAY_SIZE(jornada720_mcu_bus_devices); i++) {
-+ jornada720_mcu_bus_devices[i].bus = &jornada720_mcu_bus_type;
-+ jornada720_mcu_bus_devices[i].parent = &(dev->dev);
-+ jornada720_mcu_bus_devices[i].release = jornada720_mcu_bus_device_release;
-+ ret = device_register(jornada720_mcu_bus_devices + i);
-+ if (ret)
-+ break;
-+ }
-+
-+ if (ret) {
-+ for(; i <= 0; i--) {
-+ device_unregister(jornada720_mcu_bus_devices + i);
-+ }
-+ ssp_exit();
-+ }
-+
-+ return ret;
-+}
-+
-+static int jornada720_mcu_remove(struct platform_device *dev)
-+{
-+ int i;
-+ for(i=0; i<ARRAY_SIZE(jornada720_mcu_bus_devices); i++)
-+ device_unregister(jornada720_mcu_bus_devices + i);
-+ /* we don't want data anymore (line 203 of HP's doc) */
-+ GPSR = GPIO_GPIO25;
-+ ssp_exit();
-+ return 0;
-+}
-+
-+struct platform_driver jornada720_mcu_driver = {
-+ .probe = jornada720_mcu_probe,
-+ .remove = jornada720_mcu_remove,
-+ .driver = {
-+ .name = "jornada720_mcu",
-+ },
-+};
-+
-+static int __init jornada720_mcu_init(void) {
-+ int ret = bus_register(&jornada720_mcu_bus_type);
-+ if (!ret)
-+ return platform_driver_register(&jornada720_mcu_driver);
-+ return ret;
-+}
-+
-+static void __exit jornada720_mcu_exit(void) {
-+ bus_unregister(&jornada720_mcu_bus_type);
-+ platform_driver_unregister(&jornada720_mcu_driver);
-+}
-+
-+module_init(jornada720_mcu_init);
-+module_exit(jornada720_mcu_exit);
-diff -ruN linux-2.6.18-vanilla/drivers/input/keyboard/Kconfig linux-2.6.18/drivers/input/keyboard/Kconfig
---- linux-2.6.18-vanilla/drivers/input/keyboard/Kconfig 2006-11-20 23:12:57.000000000 +0000
-+++ linux-2.6.18/drivers/input/keyboard/Kconfig 2006-11-20 23:11:39.000000000 +0000
-@@ -203,4 +203,15 @@
- To compile this driver as a module, choose M here: the
- module will be called omap-keypad.
-
-+config KEYBOARD_JORNADA720
-+ tristate "HP Jornada 720 Keyboard Support"
-+ depends on SA1100_JORNADA720_MCU
-+ default y
-+ help
-+ Say Y to enable keyboard on the hewlett Packard Jornada
-+ 7xx(710/720/728) series of PDAs.
-+
-+ To compile this driver as a module choose M here: the
-+ module will be called jornada720_kbd.
-+
- endif
-diff -ruN linux-2.6.18-vanilla/drivers/input/keyboard/Makefile linux-2.6.18/drivers/input/keyboard/Makefile
---- linux-2.6.18-vanilla/drivers/input/keyboard/Makefile 2006-11-20 23:12:57.000000000 +0000
-+++ linux-2.6.18/drivers/input/keyboard/Makefile 2006-11-20 23:11:36.000000000 +0000
-@@ -17,4 +17,5 @@
- obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o
- obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o
- obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
-+obj-$(CONFIG_KEYBOARD_JORNADA720) += jornada720_kbd.o
-
-diff -ruN linux-2.6.18-vanilla/drivers/input/keyboard/jornada720_kbd.c linux-2.6.18/drivers/input/keyboard/jornada720_kbd.c
---- linux-2.6.18-vanilla/drivers/input/keyboard/jornada720_kbd.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.18/drivers/input/keyboard/jornada720_kbd.c 2006-11-20 23:11:33.000000000 +0000
-@@ -0,0 +1,159 @@
-+/*
-+ * drivers/input/keyboard/jornada720_kbd.c
-+ *
-+ * Jornada 720 keyboard interface
-+ *
-+ * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>
-+ * Copyright (C) 2004 Alex Lange <chicken@handhelds.org>
-+ *
-+ * 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/input.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/interrupt.h>
-+#include <linux/device.h>
-+
-+#include <asm/hardware.h>
-+#include <asm/arch/jornada720_mcu.h>
-+
-+MODULE_AUTHOR("Alex Lange <chicken@handhelds.org>");
-+MODULE_DESCRIPTION("Jornada 720 keyboard driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * HP Documentation referred in this file:
-+ * http://www.jlime.com/downloads/development/docs/jornada7xx/jornada720.txt
-+ */
-+
-+static struct input_dev *dev;
-+
-+static char jornada720_kbd_name[] = "Jornada 720 keyboard";
-+
-+/* line 227 of HP's doc */
-+static unsigned char jornada720_normal_keymap[128] = {
-+ 0, 1, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 87, KEY_VOLUMEUP, KEY_VOLUMEDOWN, KEY_MUTE,
-+ 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
-+ 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 43, 14, 0, 0, 0,
-+ 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, KEY_LEFTBRACE, KEY_RIGHTBRACE, 0, 0, 0,
-+ 0, 44, 45, 46, 47, 48, 49, 50, 51, 52, KEY_KPMINUS, 40, 28, 0, 0, 0,
-+ 0, 15, 0, 42, 0, 40, 0, 0, 0, 0, 103, 0, 54, 0, 0, 0,
-+ 0, 0, 0, 0, 0, 56, KEY_GRAVE, 0, 0, 105, 108, 106, 0, 0, 0, 0,
-+ 0, 55, 29, 0, 57, 0, 0, 0, 53, 111, 0, 0, 0, 0, 0, 116,
-+};
-+
-+static irqreturn_t jornada720_kbd_interrupt(int irq, void *dev_id)
-+{
-+ int key, keycode;
-+ int count, mcu_data=0;
-+
-+ /* start of dialogue with the MCU (line 217 of HP's doc) */
-+ if(jornada720_mcu_start(jornada720_mcu_GetScanKeyCode)) {
-+ printk(KERN_WARNING "jornada720_kbd: GetScanKeyCode failed\n");
-+ jornada720_mcu_end();
-+ return IRQ_HANDLED;
-+ }
-+
-+ /* amount of key events (line 218 of HP's doc) */
-+ count = jornada720_mcu_read();
-+
-+ while (count-- > 0) {
-+ /* keycode (line 219 of HP's doc) */
-+ key = mcu_data = jornada720_mcu_read();
-+
-+ if (key < 0) {
-+ jornada720_mcu_end();
-+ return IRQ_HANDLED;
-+ }
-+
-+ /* scancode > 128 means key release (line 223 of HP's doc) */
-+ if (key > 128)
-+ key = key - 128;
-+
-+ keycode = jornada720_normal_keymap[key];
-+
-+ if (mcu_data < 128) {
-+ /* key pressed (line 223 of HP's doc) */
-+ input_report_key(dev, keycode, 1);
-+ input_sync(dev);
-+ }
-+ else {
-+ /* key released (line 223 of HP's doc) */
-+ input_report_key(dev, keycode, 0);
-+ input_sync(dev);
-+ }
-+ }
-+
-+
-+ jornada720_mcu_end();
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static int jornada720_kbd_probe(struct device *_dev)
-+{
-+ int i, ret;
-+
-+ dev = input_allocate_device();
-+ if (!dev)
-+ return -ENOMEM;
-+
-+ dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
-+ dev->keybit[LONG(KEY_SUSPEND)] |= BIT(KEY_SUSPEND);
-+
-+ for ( i=0 ; i<=128 ; i++ ) {
-+ if (jornada720_normal_keymap[i])
-+ set_bit(jornada720_normal_keymap[i], dev->keybit);
-+ }
-+
-+ dev->name = jornada720_kbd_name;
-+
-+ /* keyboard is on GPIO0 (line 215 of HP's doc) */
-+ ret = request_irq(IRQ_GPIO0,
-+ jornada720_kbd_interrupt,
-+ IRQF_DISABLED | IRQF_TRIGGER_FALLING,
-+ jornada720_kbd_name, dev);
-+ if (ret) {
-+ printk(KERN_WARNING "Unable to grab IRQ for %s: %d\n", jornada720_kbd_name, ret);
-+ input_free_device(dev);
-+ return ret;
-+ }
-+
-+ input_register_device(dev);
-+
-+ return 0;
-+
-+}
-+
-+static int jornada720_kbd_remove(struct device *_dev)
-+{
-+ free_irq(IRQ_GPIO0, dev);
-+ input_unregister_device(dev);
-+ return 0;
-+}
-+
-+static struct device_driver jornada720_kbd_driver = {
-+ .name = jornada720_mcu_bus_id_kbd,
-+ .bus = &jornada720_mcu_bus_type,
-+ .probe = jornada720_kbd_probe,
-+ .remove = jornada720_kbd_remove,
-+ .owner = THIS_MODULE
-+};
-+
-+static int __init jornada720_kbd_init(void)
-+{
-+ return driver_register(&jornada720_kbd_driver);
-+}
-+
-+static void __exit jornada720_kbd_exit(void)
-+{
-+ driver_unregister(&jornada720_kbd_driver);
-+}
-+
-+module_init(jornada720_kbd_init);
-+module_exit(jornada720_kbd_exit);
-diff -ruN linux-2.6.18-vanilla/drivers/input/touchscreen/Kconfig linux-2.6.18/drivers/input/touchscreen/Kconfig
---- linux-2.6.18-vanilla/drivers/input/touchscreen/Kconfig 2006-11-20 23:12:57.000000000 +0000
-+++ linux-2.6.18/drivers/input/touchscreen/Kconfig 2006-11-20 23:11:53.000000000 +0000
-@@ -144,4 +144,14 @@
- To compile this driver as a module, choose M here: the
- module will be called touchwin.
-
-+config TOUCHSCREEN_JORNADA720
-+ tristate "HP Jornada 720 touchscreen support"
-+ depends on SA1100_JORNADA720_MCU
-+ help
-+ Say Y here if you are using a HP Jornada 7xx (710/720/728) PDA
-+ and want to use the touchscreen.
-+
-+ To compile this driver as a module choose M here: the
-+ module will be called jornada720_ts.
-+
- endif
-diff -ruN linux-2.6.18-vanilla/drivers/input/touchscreen/Makefile linux-2.6.18/drivers/input/touchscreen/Makefile
---- linux-2.6.18-vanilla/drivers/input/touchscreen/Makefile 2006-11-20 23:12:57.000000000 +0000
-+++ linux-2.6.18/drivers/input/touchscreen/Makefile 2006-11-20 23:11:50.000000000 +0000
-@@ -15,3 +15,4 @@
- obj-$(CONFIG_TOUCHSCREEN_PENMOUNT) += penmount.o
- obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
- obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
-+obj-$(CONFIG_TOUCHSCREEN_JORNADA720) += jornada720_ts.o
-diff -ruN linux-2.6.18-vanilla/drivers/input/touchscreen/jornada720_ts.c linux-2.6.18/drivers/input/touchscreen/jornada720_ts.c
---- linux-2.6.18-vanilla/drivers/input/touchscreen/jornada720_ts.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.18/drivers/input/touchscreen/jornada720_ts.c 2006-11-20 23:11:48.000000000 +0000
-@@ -0,0 +1,173 @@
-+/*
-+ * drivers/input/touchscreen/jornada720_ts.c
-+ *
-+ * Jornada 720 touchscreen interface
-+ *
-+ * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>
-+ * Copyright (C) 2004 Alex Lange <chicken@handhelds.org>
-+ *
-+ * 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/input.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/interrupt.h>
-+#include <linux/device.h>
-+
-+#include <asm/hardware.h>
-+#include <asm/arch/jornada720_mcu.h>
-+
-+MODULE_AUTHOR("Alex Lange <chicken@handhelds.org>");
-+MODULE_DESCRIPTION("Jornada 720 touchscreen driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * HP Documentation referred in this file:
-+ * http://www.jlime.com/downloads/development/docs/jornada7xx/jornada720.txt
-+ */
-+
-+static struct input_dev *dev;
-+
-+static char jornada720_ts_name[] = "Jornada 720 touchscreen";
-+
-+
-+static irqreturn_t jornada720_ts_interrupt(int irq, void *dev_id)
-+{
-+ int X[3], Y[3], high_x, high_y, x, y;
-+
-+ /* check if pen is up (line 264 of HP's doc) */
-+ if(GPLR & GPIO_GPIO(9)) {
-+ /* report pen up */
-+ input_report_key(dev, BTN_TOUCH, 0);
-+ input_report_abs(dev, ABS_PRESSURE, 0);
-+ input_sync(dev);
-+
-+ return IRQ_HANDLED;
-+ }
-+
-+ /*
-+ * read x & y data from mcu interface and
-+ * pass it on (line 265 of HP's doc)
-+ */
-+ if(jornada720_mcu_start(jornada720_mcu_GetTouchSamples)) {
-+ jornada720_mcu_end();
-+ return IRQ_HANDLED;
-+ }
-+
-+ /*
-+ * beware: HP's doc specifies incorrect order of sample
-+ * bytes, MSBs for X and Y are the last two ones.
-+ */
-+
-+ /* LSBs for X (line 272 of HP's doc */
-+ X[0] = jornada720_mcu_read();
-+ X[1] = jornada720_mcu_read();
-+ X[2] = jornada720_mcu_read();
-+
-+ /* LSBs for Y (line 276 of HP's doc */
-+ Y[0] = jornada720_mcu_read();
-+ Y[1] = jornada720_mcu_read();
-+ Y[2] = jornada720_mcu_read();
-+
-+ /* MSBs for X (line 275 of HP's doc */
-+ high_x = jornada720_mcu_read();
-+
-+ /* MSBs for Y (line 279 of HP's doc) */
-+ high_y = jornada720_mcu_read();
-+
-+ jornada720_mcu_end();
-+
-+ /* calculating actual values (line 281 of HP's doc) */
-+ X[0] |= (high_x & 3) << 8;
-+ X[1] |= (high_x & 0xc) << 6;
-+ X[2] |= (high_x & 0x30) << 4;
-+
-+ Y[0] |= (high_y & 3) << 8;
-+ Y[1] |= (high_y & 0xc) << 6;
-+ Y[2] |= (high_y & 0x30) << 4;
-+
-+ /* simple averaging filter */
-+ x = (X[0] + X[1] + X[2])/3;
-+ y = (Y[0] + Y[1] + Y[2])/3;
-+
-+ /* report pen down */
-+ input_report_key(dev, BTN_TOUCH, 1);
-+ input_report_abs(dev, ABS_X, x);
-+ input_report_abs(dev, ABS_Y, y);
-+ input_report_abs(dev, ABS_PRESSURE, 1);
-+ input_sync(dev);
-+
-+ return IRQ_HANDLED;
-+
-+}
-+
-+
-+static int jornada720_ts_probe(struct device *_dev)
-+{
-+ int ret;
-+
-+ dev = input_allocate_device();
-+ if (!dev)
-+ return -ENOMEM;
-+
-+ dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
-+ dev->absbit[0] = BIT(ABS_X) | BIT(ABS_Y) | BIT(ABS_PRESSURE);
-+ dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
-+
-+ dev->absmin[ABS_X] = 270; dev->absmin[ABS_Y] = 180;
-+ dev->absmax[ABS_X] = 3900; dev->absmax[ABS_Y] = 3700;
-+
-+ dev->name = jornada720_ts_name;
-+
-+ /*
-+ * touchscreen is on GPIO9 (Line 263 of HP's doc. It says we should
-+ * care for falling edge, but in fact we need a rising edge.)
-+ */
-+ ret = request_irq(IRQ_GPIO9,
-+ jornada720_ts_interrupt,
-+ IRQF_DISABLED | IRQF_TRIGGER_RISING,
-+ jornada720_ts_name, dev);
-+ if (ret) {
-+ printk("Unable to grab IRQ for %s: %d\n", jornada720_ts_name, ret);
-+ input_free_device(dev);
-+ return ret;
-+ }
-+
-+ input_register_device(dev);
-+
-+ return 0;
-+}
-+
-+
-+static int jornada720_ts_remove(struct device *_dev)
-+{
-+ free_irq(IRQ_GPIO9, dev);
-+ input_unregister_device(dev);
-+ return 0;
-+}
-+
-+static struct device_driver jornada720_ts_driver = {
-+ .name = jornada720_mcu_bus_id_ts,
-+ .bus = &jornada720_mcu_bus_type,
-+ .probe = jornada720_ts_probe,
-+ .remove = jornada720_ts_remove,
-+ .owner = THIS_MODULE
-+};
-+
-+static int __init jornada720_ts_init(void)
-+{
-+ return driver_register(&jornada720_ts_driver);
-+}
-+
-+static void __exit jornada720_ts_exit(void)
-+{
-+ driver_unregister(&jornada720_ts_driver);
-+}
-+
-+module_init(jornada720_ts_init);
-+module_exit(jornada720_ts_exit);
-diff -ruN linux-2.6.18-vanilla/drivers/video/backlight/Kconfig linux-2.6.18/drivers/video/backlight/Kconfig
---- linux-2.6.18-vanilla/drivers/video/backlight/Kconfig 2006-09-20 03:42:06.000000000 +0000
-+++ linux-2.6.18/drivers/video/backlight/Kconfig 2006-11-20 23:12:17.000000000 +0000
-@@ -66,3 +66,24 @@
- If you have a HP Jornada 680, say y to enable the
- backlight driver.
-
-+config BACKLIGHT_JORNADA720
-+ tristate "HP Jornada 720 Backlight Driver"
-+ depends on BACKLIGHT_DEVICE && SA1100_JORNADA720_MCU
-+ default y
-+ help
-+ If you have a HP Jornada 7xx, say y to enable the
-+ backlight driver.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called jornada720_bl.
-+
-+config LCD_JORNADA720
-+ tristate "HP Jornada 720 LCD control"
-+ depends on LCD_DEVICE && SA1100_JORNADA720_MCU
-+ default y
-+ help
-+ If you have a HP Jornada 7xx, say y to be able to
-+ set contrast and power state of the LCD.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called jornada720_lcd.
-diff -ruN linux-2.6.18-vanilla/drivers/video/backlight/Makefile linux-2.6.18/drivers/video/backlight/Makefile
---- linux-2.6.18-vanilla/drivers/video/backlight/Makefile 2006-09-20 03:42:06.000000000 +0000
-+++ linux-2.6.18/drivers/video/backlight/Makefile 2006-11-20 23:12:15.000000000 +0000
-@@ -5,3 +5,5 @@
- obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o
- obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
- obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o
-+obj-$(CONFIG_BACKLIGHT_JORNADA720) += jornada720_bl.o
-+obj-$(CONFIG_LCD_JORNADA720) += jornada720_lcd.o
-diff -ruN linux-2.6.18-vanilla/drivers/video/backlight/jornada720_bl.c linux-2.6.18/drivers/video/backlight/jornada720_bl.c
---- linux-2.6.18-vanilla/drivers/video/backlight/jornada720_bl.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.18/drivers/video/backlight/jornada720_bl.c 2006-11-20 23:12:01.000000000 +0000
-@@ -0,0 +1,145 @@
-+/*
-+ * drivers/video/backlight/jornada720_bl.c
-+ *
-+ * Backlight Driver for HP Jornada 720
-+ *
-+ * Copyright (c) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>
-+ *
-+ * 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/kernel.h>
-+#include <linux/init.h>
-+#include <linux/backlight.h>
-+#include <linux/fb.h>
-+#include <linux/device.h>
-+#include <asm/hardware.h>
-+#include <asm/arch/jornada720_mcu.h>
-+#include <video/s1d13xxxfb.h>
-+
-+MODULE_AUTHOR("Filip Zyzniewski <filip.zyzniewski@tefnet.pl>");
-+MODULE_DESCRIPTION("HP Jornada 720 Backlight Driver");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * HP Documentation referred in this file:
-+ * http://www.jlime.com/downloads/development/docs/jornada7xx/jornada720.txt
-+ */
-+
-+#define JORNADA720_BL_MAX_BRIGHTNESS 0xff
-+
-+/* default brightness (line 460 of HP's doc - it's
-+ * mistakenly referred as default contrast there) */
-+#define JORNADA720_BL_DEFAULT_BRIGHTNESS 0x19
-+
-+static struct backlight_device *jornada720_bl_device;
-+
-+static int jornada720_bl_get_brightness(struct backlight_device *dev)
-+{
-+ int ret;
-+
-+ /* check if backlight is on (line 461 of HP's doc */
-+ if(!(PPSR & PPC_LDD1))
-+ return 255;
-+
-+ /* get data from the MCU (line 310 of HP's doc) */
-+ if(jornada720_mcu_start(jornada720_mcu_GetBrightness)) {
-+ printk(KERN_WARNING "jornada720_bl: GetBrightness failed\n");
-+ ret=256;
-+ } else
-+ ret=jornada720_mcu_read();
-+
-+ jornada720_mcu_end();
-+
-+ /* 0 is max brightness for the kernel, opposite for the MCU */
-+ return 255-ret;
-+}
-+
-+static int jornada720_bl_update_status(struct backlight_device *dev)
-+{
-+ int ret=0;
-+
-+
-+ if (dev->props->power != FB_BLANK_UNBLANK || dev->props->fb_blank != FB_BLANK_UNBLANK) {
-+ /* turn off the backlight PWM (line 313 of HP's doc) */
-+ ret=jornada720_mcu_start(jornada720_mcu_BrightnessOff);
-+ if(ret)
-+ printk(KERN_WARNING "jornada720_bl: BrightnessOff failed\n");
-+ /* turn off the backlight (line 461 of HP's doc) */
-+ PPSR &= ~PPC_LDD1;
-+ PPDR |= PPC_LDD1;
-+ }
-+ else {
-+ /* turn the backlight on (line 461 of HP's doc) */
-+ PPSR |= PPC_LDD1;
-+ /* line 309 of HP's doc */
-+ if (!(ret=jornada720_mcu_start(jornada720_mcu_SetBrightness))) {
-+ /* 0 is max brightness for the kernel, opposite for the MCU */
-+ if(jornada720_mcu_byte(255 - dev->props->brightness) != jornada720_mcu_TxDummy)
-+ ret = -1;
-+ } else
-+ printk(KERN_WARNING "jornada720_bl: SetBrightness failed\n");
-+ }
-+
-+ jornada720_mcu_end();
-+
-+ return ret;
-+}
-+
-+
-+static struct backlight_properties jornada720_bl_data = {
-+ .owner = THIS_MODULE,
-+ .max_brightness = JORNADA720_BL_MAX_BRIGHTNESS,
-+ .get_brightness = jornada720_bl_get_brightness,
-+ .update_status = jornada720_bl_update_status,
-+};
-+
-+static int jornada720_bl_probe(struct device *_dev)
-+{
-+ /*
-+ * name must match fb driver name (documentation of
-+ * backlight_device_register() in backlight.c
-+ */
-+ jornada720_bl_device = backlight_device_register (S1D_DEVICENAME,
-+ NULL, &jornada720_bl_data);
-+ if (IS_ERR (jornada720_bl_device))
-+ return PTR_ERR (jornada720_bl_device);
-+
-+ jornada720_bl_data.power = FB_BLANK_UNBLANK;
-+ jornada720_bl_data.brightness = JORNADA720_BL_DEFAULT_BRIGHTNESS;
-+ jornada720_bl_update_status(jornada720_bl_device);
-+
-+ return 0;
-+
-+}
-+
-+static int jornada720_bl_remove(struct device *_dev)
-+{
-+ backlight_device_unregister(jornada720_bl_device);
-+ return 0;
-+}
-+
-+static struct device_driver jornada720_bl_driver = {
-+ .name = jornada720_mcu_bus_id_bl,
-+ .bus = &jornada720_mcu_bus_type,
-+ .probe = jornada720_bl_probe,
-+ .remove = jornada720_bl_remove,
-+ .owner = THIS_MODULE
-+};
-+
-+static int __init jornada720_bl_init(void)
-+{
-+ return driver_register(&jornada720_bl_driver);
-+}
-+
-+static void __exit jornada720_bl_exit(void)
-+{
-+ driver_unregister(&jornada720_bl_driver);
-+}
-+
-+module_init(jornada720_bl_init);
-+module_exit(jornada720_bl_exit);
-diff -ruN linux-2.6.18-vanilla/drivers/video/backlight/jornada720_lcd.c linux-2.6.18/drivers/video/backlight/jornada720_lcd.c
---- linux-2.6.18-vanilla/drivers/video/backlight/jornada720_lcd.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.18/drivers/video/backlight/jornada720_lcd.c 2006-11-20 23:12:12.000000000 +0000
-@@ -0,0 +1,152 @@
-+/*
-+ * drivers/video/backlight/jornada720_lcd.c
-+ *
-+ * LCD display driver for HP Jornada 720
-+ *
-+ * Copyright (c) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>
-+ *
-+ * 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/kernel.h>
-+#include <linux/init.h>
-+#include <linux/lcd.h>
-+#include <linux/fb.h>
-+#include <linux/delay.h>
-+#include <linux/device.h>
-+#include <asm/hardware.h>
-+#include <asm/arch/jornada720_mcu.h>
-+#include <video/s1d13xxxfb.h>
-+
-+MODULE_AUTHOR("Filip Zyzniewski <filip.zyzniewski@tefnet.pl>");
-+MODULE_DESCRIPTION("HP Jornada 720 LCD control");
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * HP Documentation referred in this file:
-+ * http://www.jlime.com/downloads/development/docs/jornada7xx/jornada720.txt
-+ */
-+
-+#define JORNADA720_LCD_MAX_CONTRAST 0xff
-+
-+/* default contrast (line 457 of HP's doc, but it looks bad with that one) */
-+#define JORNADA720_LCD_DEFAULT_CONTRAST 0x80
-+
-+static struct lcd_device *jornada720_lcd_device;
-+
-+static int jornada720_lcd_set_contrast(struct lcd_device *dev, int contrast)
-+{
-+ int ret=0;
-+
-+ /* line 312 of HP's doc */
-+ if ( !(ret=jornada720_mcu_start(jornada720_mcu_SetContrast)) ) {
-+ if(jornada720_mcu_byte(contrast) != jornada720_mcu_TxDummy)
-+ ret = -1;
-+ } else
-+ printk(KERN_WARNING "jornada720_lcd: SetContrast failed\n");
-+
-+ jornada720_mcu_end();
-+
-+ return ret;
-+}
-+
-+static int jornada720_lcd_get_power(struct lcd_device *dev) {
-+ /* LDD2 in PPC is responsible for LCD power (line 458 of HP's doc */
-+ if(PPSR & PPC_LDD2)
-+ return FB_BLANK_UNBLANK;
-+ else
-+ return FB_BLANK_POWERDOWN;
-+}
-+
-+static int jornada720_lcd_set_power(struct lcd_device *dev, int power) {
-+ if (power != FB_BLANK_UNBLANK) {
-+ /* turn off the LCD (line 458 of HP's doc) */
-+ PPSR &= ~PPC_LDD2;
-+ PPDR |= PPC_LDD2;
-+ } else
-+ /* turn on the LCD (line 458 of HP's doc) */
-+ PPSR |= PPC_LDD2;
-+ return 0;
-+}
-+
-+static int jornada720_lcd_get_contrast(struct lcd_device *dev)
-+{
-+ int ret;
-+
-+ /* check if LCD is on (line 458 of HP's doc */
-+ if(jornada720_lcd_get_power(dev) != FB_BLANK_UNBLANK)
-+ return 0;
-+
-+ /* get the data from MCU (line 312 of HP's doc) */
-+ if(jornada720_mcu_start(jornada720_mcu_GetContrast)) {
-+ printk(KERN_WARNING "jornada720_lcd: GetContrast failed\n");
-+ ret=256;
-+ } else
-+ ret=jornada720_mcu_read();
-+
-+ jornada720_mcu_end();
-+
-+ return ret;
-+}
-+
-+static struct lcd_properties jornada720_lcd_data = {
-+ .owner = THIS_MODULE,
-+ .max_contrast = JORNADA720_LCD_MAX_CONTRAST,
-+ .get_contrast = jornada720_lcd_get_contrast,
-+ .set_contrast = jornada720_lcd_set_contrast,
-+ .get_power = jornada720_lcd_get_power,
-+ .set_power = jornada720_lcd_set_power,
-+};
-+
-+static int jornada720_lcd_probe(struct device *_dev)
-+{
-+ /*
-+ * name must match fb driver name (documentation of
-+ * lcd_device_register() in lcd.c
-+ */
-+ jornada720_lcd_device = lcd_device_register (S1D_DEVICENAME,
-+ NULL, &jornada720_lcd_data);
-+ if (IS_ERR (jornada720_lcd_device))
-+ return PTR_ERR (jornada720_lcd_device);
-+
-+ /* line 457 of HP's doc */
-+ jornada720_lcd_set_contrast(jornada720_lcd_device, JORNADA720_LCD_DEFAULT_CONTRAST);
-+ /* line 458 of HP's doc */
-+ jornada720_lcd_set_power(jornada720_lcd_device, FB_BLANK_UNBLANK);
-+ /* line 459 of HP's doc */
-+ msleep(100);
-+
-+ return 0;
-+
-+}
-+
-+static int jornada720_lcd_remove(struct device *_dev)
-+{
-+ lcd_device_unregister(jornada720_lcd_device);
-+ return 0;
-+}
-+
-+static struct device_driver jornada720_lcd_driver = {
-+ .name = jornada720_mcu_bus_id_lcd,
-+ .bus = &jornada720_mcu_bus_type,
-+ .probe = jornada720_lcd_probe,
-+ .remove = jornada720_lcd_remove,
-+ .owner = THIS_MODULE
-+};
-+
-+static int __init jornada720_lcd_init(void)
-+{
-+ return driver_register(&jornada720_lcd_driver);
-+}
-+
-+static void __exit jornada720_lcd_exit(void)
-+{
-+ driver_unregister(&jornada720_lcd_driver);
-+}
-+
-+module_init(jornada720_lcd_init);
-+module_exit(jornada720_lcd_exit);
-diff -ruN linux-2.6.18-vanilla/drivers/video/s1d13xxxfb.c linux-2.6.18/drivers/video/s1d13xxxfb.c
---- linux-2.6.18-vanilla/drivers/video/s1d13xxxfb.c 2006-09-20 03:42:06.000000000 +0000
-+++ linux-2.6.18/drivers/video/s1d13xxxfb.c 2006-11-20 23:10:47.000000000 +0000
-@@ -540,7 +540,7 @@
- int ret = 0;
- u8 revision;
-
-- dbg("probe called: device is %p\n", dev);
-+ dbg("probe called: device is %p\n", pdev);
-
- printk(KERN_INFO "Epson S1D13XXX FB Driver\n");
-
-diff -ruN linux-2.6.18-vanilla/include/asm-arm/arch-sa1100/jornada720.h linux-2.6.18/include/asm-arm/arch-sa1100/jornada720.h
---- linux-2.6.18-vanilla/include/asm-arm/arch-sa1100/jornada720.h 2006-11-20 23:13:04.000000000 +0000
-+++ linux-2.6.18/include/asm-arm/arch-sa1100/jornada720.h 1970-01-01 00:00:00.000000000 +0000
-@@ -1,42 +0,0 @@
--/*
-- * linux/include/asm-arm/arch-sa1100/jornada720.h
-- *
-- * Created 2000/11/29 by John Ankcorn <jca@lcs.mit.edu>
-- *
-- * This file contains the hardware specific definitions for HP Jornada 720
-- *
-- */
--
--#ifndef __ASM_ARCH_HARDWARE_H
--#error "include <asm/hardware.h> instead"
--#endif
--
--#define SA1111_BASE (0x40000000)
--
--#define GPIO_JORNADA720_KEYBOARD GPIO_GPIO(0)
--#define GPIO_JORNADA720_MOUSE GPIO_GPIO(9)
--
--#define GPIO_JORNADA720_KEYBOARD_IRQ IRQ_GPIO0
--#define GPIO_JORNADA720_MOUSE_IRQ IRQ_GPIO9
--
--/* MCU COMMANDS */
--#define MCU_GetBatteryData 0xc0
--#define MCU_GetScanKeyCode 0x90
--#define MCU_GetTouchSamples 0xa0
--#define MCU_GetContrast 0xD0
--#define MCU_SetContrast 0xD1
--#define MCU_GetBrightness 0xD2
--#define MCU_SetBrightness 0xD3
--#define MCU_ContrastOff 0xD8
--#define MCU_BrightnessOff 0xD9
--#define MCU_PWMOFF 0xDF
--#define MCU_TxDummy 0x11
--#define MCU_ErrorCode 0x00
--
--#ifndef __ASSEMBLY__
--
--void jornada720_mcu_init(void);
--void jornada_contrast(int arg_contrast);
--void jornada720_battery(void);
--int jornada720_getkey(unsigned char *data, int size);
--#endif
-diff -ruN linux-2.6.18-vanilla/include/asm-arm/arch-sa1100/jornada720_mcu.h linux-2.6.18/include/asm-arm/arch-sa1100/jornada720_mcu.h
---- linux-2.6.18-vanilla/include/asm-arm/arch-sa1100/jornada720_mcu.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.18/include/asm-arm/arch-sa1100/jornada720_mcu.h 2006-11-20 23:10:57.000000000 +0000
-@@ -0,0 +1,48 @@
-+/*
-+ * include/asm-arm/arch-sa1100/jornada720_mcu.h
-+ *
-+ * This file contains MCU communication API defintions for HP Jornada 720
-+ *
-+ * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>
-+ * Copyright (C) 2000 John Ankcorn <jca@lcs.mit.edu>
-+ *
-+ * 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.
-+ *
-+ */
-+
-+/* Jornada 720 Microprocessor Control Unit commands */
-+#define jornada720_mcu_GetBatteryData 0xc0
-+#define jornada720_mcu_GetScanKeyCode 0x90
-+#define jornada720_mcu_GetTouchSamples 0xa0
-+#define jornada720_mcu_GetContrast 0xD0
-+#define jornada720_mcu_SetContrast 0xD1
-+#define jornada720_mcu_GetBrightness 0xD2
-+#define jornada720_mcu_SetBrightness 0xD3
-+#define jornada720_mcu_ContrastOff 0xD8
-+#define jornada720_mcu_BrightnessOff 0xD9
-+#define jornada720_mcu_PWMOFF 0xDF
-+#define jornada720_mcu_TxDummy 0x11
-+#define jornada720_mcu_ErrorCode 0x00
-+
-+/* devices accessible through the MCU */
-+#define jornada720_mcu_bus_id_kbd "jornada720_kbd"
-+#define jornada720_mcu_bus_id_ts "jornada720_ts"
-+#define jornada720_mcu_bus_id_apm "jornada720_apm"
-+#define jornada720_mcu_bus_id_lcd "jornada720_lcd"
-+#define jornada720_mcu_bus_id_bl "jornada720_bl"
-+
-+int jornada720_mcu_byte(u8 byte);
-+
-+#define jornada720_mcu_read() jornada720_mcu_byte(jornada720_mcu_TxDummy)
-+
-+/*
-+ * WARNING: remember to jornada720_mcu_end() after every
-+ * jornada720_mcu_start() or you will deadlock!
-+ */
-+int jornada720_mcu_start(u8 byte);
-+
-+void jornada720_mcu_end(void);
-+
-+extern struct bus_type jornada720_mcu_bus_type;
-diff -ruN linux-2.6.18-vanilla/include/asm-arm/s1d13506.h linux-2.6.18/include/asm-arm/s1d13506.h
---- linux-2.6.18-vanilla/include/asm-arm/s1d13506.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.18/include/asm-arm/s1d13506.h 2006-11-20 23:10:50.000000000 +0000
-@@ -0,0 +1,135 @@
-+/*
-+ * include/asm-arm/s1d13506.h
-+ *
-+ * Epson S1D13xxx chip register init for ARM machines
-+ *
-+ * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>
-+ *
-+ * 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.
-+ *
-+ */
-+
-+/*
-+ * HP Documentation referred in this file:
-+ * http://www.jlime.com/downloads/development/docs/jornada7xx/jornada720.txt
-+ */
-+
-+static struct s1d13xxxfb_regval s1d13xxxfb_initregs[] = {
-+ /* line 344 of HP's doc */
-+ {0x0001,0x00}, // Miscellaneous Register
-+ {0x01FC,0x00}, // Display Mode Register
-+#if defined(CONFIG_SA1100_JORNADA720)
-+ {0x0004,0x00}, // General IO Pins Configuration Register 0
-+ {0x0005,0x00}, // General IO Pins Configuration Register 1
-+ {0x0008,0x00}, // General IO Pins Control Register 0
-+ {0x0009,0x00}, // General IO Pins Control Register 1
-+ {0x0010,0x01}, // Memory Clock Configuration Register
-+ {0x0014,0x11}, // LCD Pixel Clock Configuration Register
-+ {0x0018,0x01}, // CRT/TV Pixel Clock Configuration Register
-+ {0x001C,0x01}, // MediaPlug Clock Configuration Register
-+ {0x001E,0x01}, // CPU To Memory Wait State Select Register
-+ {0x0020,0x00}, // Memory Configuration Register
-+ {0x0021,0x45}, // DRAM Refresh Rate Register
-+ {0x002A,0x01}, // DRAM Timings Control Register 0
-+ {0x002B,0x03}, // DRAM Timings Control Register 1
-+ {0x0030,0x1c}, // Panel Type Register
-+ {0x0031,0x00}, // MOD Rate Register
-+ {0x0032,0x4F}, // LCD Horizontal Display Width Register
-+ {0x0034,0x07}, // LCD Horizontal Non-Display Period Register
-+ {0x0035,0x01}, // TFT FPLINE Start Position Register
-+ {0x0036,0x0B}, // TFT FPLINE Pulse Width Register
-+ {0x0038,0xEF}, // LCD Vertical Display Height Register 0
-+ {0x0039,0x00}, // LCD Vertical Display Height Register 1
-+ {0x003A,0x13}, // LCD Vertical Non-Display Period Register
-+ {0x003B,0x0B}, // TFT FPFRAME Start Position Register
-+ {0x003C,0x01}, // TFT FPFRAME Pulse Width Register
-+ {0x0040,0x05}, // LCD Display Mode Register (2:4bpp,3:8bpp,5:16bpp)
-+ {0x0041,0x00}, // LCD Miscellaneous Register
-+ {0x0042,0x00}, // LCD Display Start Address Register 0
-+ {0x0043,0x00}, // LCD Display Start Address Register 1
-+ {0x0044,0x00}, // LCD Display Start Address Register 2
-+ {0x0046,0x80}, // LCD Memory Address Offset Register 0
-+ {0x0047,0x02}, // LCD Memory Address Offset Register 1
-+ {0x0048,0x00}, // LCD Pixel Panning Register
-+ {0x004A,0x00}, // LCD Display FIFO High Threshold Control Register
-+ {0x004B,0x00}, // LCD Display FIFO Low Threshold Control Register
-+ {0x0050,0x4F}, // CRT/TV Horizontal Display Width Register
-+ {0x0052,0x13}, // CRT/TV Horizontal Non-Display Period Register
-+ {0x0053,0x01}, // CRT/TV HRTC Start Position Register
-+ {0x0054,0x0B}, // CRT/TV HRTC Pulse Width Register
-+ {0x0056,0xDF}, // CRT/TV Vertical Display Height Register 0
-+ {0x0057,0x01}, // CRT/TV Vertical Display Height Register 1
-+ {0x0058,0x2B}, // CRT/TV Vertical Non-Display Period Register
-+ {0x0059,0x09}, // CRT/TV VRTC Start Position Register
-+ {0x005A,0x01}, // CRT/TV VRTC Pulse Width Register
-+ {0x005B,0x10}, // TV Output Control Register
-+ {0x0060,0x03}, // CRT/TV Display Mode Register (2:4bpp,3:8bpp,5:16bpp)
-+ {0x0062,0x00}, // CRT/TV Display Start Address Register 0
-+ {0x0063,0x00}, // CRT/TV Display Start Address Register 1
-+ {0x0064,0x00}, // CRT/TV Display Start Address Register 2
-+ {0x0066,0x40}, // CRT/TV Memory Address Offset Register 0
-+ {0x0067,0x01}, // CRT/TV Memory Address Offset Register 1
-+ {0x0068,0x00}, // CRT/TV Pixel Panning Register
-+ {0x006A,0x00}, // CRT/TV Display FIFO High Threshold Control Register
-+ {0x006B,0x00}, // CRT/TV Display FIFO Low Threshold Control Register
-+ {0x0070,0x00}, // LCD Ink/Cursor Control Register
-+ {0x0071,0x01}, // LCD Ink/Cursor Start Address Register
-+ {0x0072,0x00}, // LCD Cursor X Position Register 0
-+ {0x0073,0x00}, // LCD Cursor X Position Register 1
-+ {0x0074,0x00}, // LCD Cursor Y Position Register 0
-+ {0x0075,0x00}, // LCD Cursor Y Position Register 1
-+ {0x0076,0x00}, // LCD Ink/Cursor Blue Color 0 Register
-+ {0x0077,0x00}, // LCD Ink/Cursor Green Color 0 Register
-+ {0x0078,0x00}, // LCD Ink/Cursor Red Color 0 Register
-+ {0x007A,0x1F}, // LCD Ink/Cursor Blue Color 1 Register
-+ {0x007B,0x3F}, // LCD Ink/Cursor Green Color 1 Register
-+ {0x007C,0x1F}, // LCD Ink/Cursor Red Color 1 Register
-+ {0x007E,0x00}, // LCD Ink/Cursor FIFO Threshold Register
-+ {0x0080,0x00}, // CRT/TV Ink/Cursor Control Register
-+ {0x0081,0x01}, // CRT/TV Ink/Cursor Start Address Register
-+ {0x0082,0x00}, // CRT/TV Cursor X Position Register 0
-+ {0x0083,0x00}, // CRT/TV Cursor X Position Register 1
-+ {0x0084,0x00}, // CRT/TV Cursor Y Position Register 0
-+ {0x0085,0x00}, // CRT/TV Cursor Y Position Register 1
-+ {0x0086,0x00}, // CRT/TV Ink/Cursor Blue Color 0 Register
-+ {0x0087,0x00}, // CRT/TV Ink/Cursor Green Color 0 Register
-+ {0x0088,0x00}, // CRT/TV Ink/Cursor Red Color 0 Register
-+ {0x008A,0x1F}, // CRT/TV Ink/Cursor Blue Color 1 Register
-+ {0x008B,0x3F}, // CRT/TV Ink/Cursor Green Color 1 Register
-+ {0x008C,0x1F}, // CRT/TV Ink/Cursor Red Color 1 Register
-+ {0x008E,0x00}, // CRT/TV Ink/Cursor FIFO Threshold Register
-+ {0x0100,0x00}, // BitBlt Control Register 0
-+ {0x0101,0x00}, // BitBlt Control Register 1
-+ {0x0102,0x00}, // BitBlt ROP Code/Color Expansion Register
-+ {0x0103,0x00}, // BitBlt Operation Register
-+ {0x0104,0x00}, // BitBlt Source Start Address Register 0
-+ {0x0105,0x00}, // BitBlt Source Start Address Register 1
-+ {0x0106,0x00}, // BitBlt Source Start Address Register 2
-+ {0x0108,0x00}, // BitBlt Destination Start Address Register 0
-+ {0x0109,0x00}, // BitBlt Destination Start Address Register 1
-+ {0x010A,0x00}, // BitBlt Destination Start Address Register 2
-+ {0x010C,0x00}, // BitBlt Memory Address Offset Register 0
-+ {0x010D,0x00}, // BitBlt Memory Address Offset Register 1
-+ {0x0110,0x00}, // BitBlt Width Register 0
-+ {0x0111,0x00}, // BitBlt Width Register 1
-+ {0x0112,0x00}, // BitBlt Height Register 0
-+ {0x0113,0x00}, // BitBlt Height Register 1
-+ {0x0114,0x00}, // BitBlt Background Color Register 0
-+ {0x0115,0x00}, // BitBlt Background Color Register 1
-+ {0x0118,0x00}, // BitBlt Foreground Color Register 0
-+ {0x0119,0x00}, // BitBlt Foreground Color Register 1
-+ {0x01E0,0x00}, // Look-Up Table Mode Register
-+ {0x01E2,0x00}, // Look-Up Table Address Register
-+ /* not sure, wouldn't like to mess with the driver */
-+ {0x01E4,0x00}, // Look-Up Table Data Register
-+ /* jornada doc says 0x00, but I trust the driver */
-+ {0x01F0,0x10}, // Power Save Configuration Register
-+ {0x01F1,0x00}, // Power Save Status Register
-+ {0x01F4,0x00}, // CPU-to-Memory Access Watchdog Timer Register
-+ {0x01FC,0x01}, // Display Mode Register(0x01:LCD, 0x02:CRT, 0x03:LCD&CRT)
-+#elif 1
-+#error "define a register set for your machine"
-+#endif
-+};
-diff -ruN linux-2.6.18-vanilla/include/video/s1d13xxxfb.h linux-2.6.18/include/video/s1d13xxxfb.h
---- linux-2.6.18-vanilla/include/video/s1d13xxxfb.h 2006-11-20 23:13:06.000000000 +0000
-+++ linux-2.6.18/include/video/s1d13xxxfb.h 2006-11-20 23:10:38.000000000 +0000
-@@ -14,7 +14,13 @@
- #define S1D13XXXFB_H
-
- #define S1D_PALETTE_SIZE 256
-+
-+#if defined(CONFIG_SA1100_JORNADA720)
-+#define S1D_CHIP_REV 4 /* expected chip revision number for s1d13506 */
-+#else
- #define S1D_CHIP_REV 7 /* expected chip revision number for s1d13806 */
-+#endif
-+
- #define S1D_FBID "S1D13806"
- #define S1D_DEVICENAME "s1d13806fb"
-