diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-28 13:08:46 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-28 13:08:46 -0400 |
| commit | 8ed575904373d7aaab7f15a8db2edc317a44df43 (patch) | |
| tree | 3b2e92a396a1bbec8e1fb499f25e8aed93ab5692 | |
| parent | 27d1097d39509494706eaa2620ef3b1e780a3224 (diff) | |
| parent | 210cc679faf0e1cabda9fc5d1279644f5e52aecb (diff) | |
Merge branch 'forlinus' of git://parisc-linux.org/home/kyle/git/parisc-2.6
84 files changed, 4260 insertions, 2084 deletions
| @@ -2247,6 +2247,12 @@ S: 249 Nichols Avenue | |||
| 2247 | S: Syracuse, New York 13206 | 2247 | S: Syracuse, New York 13206 |
| 2248 | S: USA | 2248 | S: USA |
| 2249 | 2249 | ||
| 2250 | N: Kyle McMartin | ||
| 2251 | E: kyle@parisc-linux.org | ||
| 2252 | D: Linux/PARISC hacker | ||
| 2253 | D: AD1889 sound driver | ||
| 2254 | S: Ottawa, Canada | ||
| 2255 | |||
| 2250 | N: Dirk Melchers | 2256 | N: Dirk Melchers |
| 2251 | E: dirk@merlin.nbg.sub.org | 2257 | E: dirk@merlin.nbg.sub.org |
| 2252 | D: 8 bit XT hard disk driver for OMTI5520 | 2258 | D: 8 bit XT hard disk driver for OMTI5520 |
diff --git a/MAINTAINERS b/MAINTAINERS index 767fb610963e..248b93b32fc4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -197,6 +197,15 @@ M: Thorsten Knabe <linux@thorsten-knabe.de> | |||
| 197 | W: http://linux.thorsten-knabe.de | 197 | W: http://linux.thorsten-knabe.de |
| 198 | S: Maintained | 198 | S: Maintained |
| 199 | 199 | ||
| 200 | AD1889 SOUND DRIVER | ||
| 201 | P: Kyle McMartin | ||
| 202 | M: kyle@parisc-linux.org | ||
| 203 | P: Thibaut Varene | ||
| 204 | M: T-Bone@parisc-linux.org | ||
| 205 | W: http://wiki.parisc-linux.org/AD1889 | ||
| 206 | L: parisc-linux@lists.parisc-linux.org | ||
| 207 | S: Maintained | ||
| 208 | |||
| 200 | ADM1025 HARDWARE MONITOR DRIVER | 209 | ADM1025 HARDWARE MONITOR DRIVER |
| 201 | P: Jean Delvare | 210 | P: Jean Delvare |
| 202 | M: khali@linux-fr.org | 211 | M: khali@linux-fr.org |
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 0b07922a2ac6..874a283edb95 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
| @@ -47,10 +47,10 @@ config PM | |||
| 47 | 47 | ||
| 48 | config ISA_DMA_API | 48 | config ISA_DMA_API |
| 49 | bool | 49 | bool |
| 50 | default y | ||
| 51 | 50 | ||
| 52 | config ARCH_MAY_HAVE_PC_FDC | 51 | config ARCH_MAY_HAVE_PC_FDC |
| 53 | bool | 52 | bool |
| 53 | depends on BROKEN | ||
| 54 | default y | 54 | default y |
| 55 | 55 | ||
| 56 | source "init/Kconfig" | 56 | source "init/Kconfig" |
| @@ -154,13 +154,14 @@ config HOTPLUG_CPU | |||
| 154 | 154 | ||
| 155 | config ARCH_DISCONTIGMEM_ENABLE | 155 | config ARCH_DISCONTIGMEM_ENABLE |
| 156 | bool "Discontiguous memory support (EXPERIMENTAL)" | 156 | bool "Discontiguous memory support (EXPERIMENTAL)" |
| 157 | depends on EXPERIMENTAL | 157 | depends on 64BIT && EXPERIMENTAL |
| 158 | help | 158 | help |
| 159 | Say Y to support efficient handling of discontiguous physical memory, | 159 | Say Y to support efficient handling of discontiguous physical memory, |
| 160 | for architectures which are either NUMA (Non-Uniform Memory Access) | 160 | for architectures which are either NUMA (Non-Uniform Memory Access) |
| 161 | or have huge holes in the physical address space for other reasons. | 161 | or have huge holes in the physical address space for other reasons. |
| 162 | See <file:Documentation/vm/numa> for more. | 162 | See <file:Documentation/vm/numa> for more. |
| 163 | 163 | ||
| 164 | source "kernel/Kconfig.hz" | ||
| 164 | source "mm/Kconfig" | 165 | source "mm/Kconfig" |
| 165 | 166 | ||
| 166 | config PREEMPT | 167 | config PREEMPT |
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile index 3b339b1cce13..9b7e42490dd1 100644 --- a/arch/parisc/Makefile +++ b/arch/parisc/Makefile | |||
| @@ -20,7 +20,8 @@ NM = sh $(srctree)/arch/parisc/nm | |||
| 20 | CHECKFLAGS += -D__hppa__=1 | 20 | CHECKFLAGS += -D__hppa__=1 |
| 21 | 21 | ||
| 22 | ifdef CONFIG_64BIT | 22 | ifdef CONFIG_64BIT |
| 23 | CROSS_COMPILE := hppa64-linux- | 23 | CROSS_COMPILE := $(shell if [ -x /usr/bin/hppa64-linux-gnu-gcc ]; then \ |
| 24 | echo hppa64-linux-gnu-; else echo hppa64-linux-; fi) | ||
| 24 | UTS_MACHINE := parisc64 | 25 | UTS_MACHINE := parisc64 |
| 25 | CHECKFLAGS += -D__LP64__=1 -m64 | 26 | CHECKFLAGS += -D__LP64__=1 -m64 |
| 26 | else | 27 | else |
| @@ -34,6 +35,14 @@ FINAL_LD=$(CROSS_COMPILE)ld --warn-common --warn-section-align | |||
| 34 | 35 | ||
| 35 | OBJCOPY_FLAGS =-O binary -R .note -R .comment -S | 36 | OBJCOPY_FLAGS =-O binary -R .note -R .comment -S |
| 36 | 37 | ||
| 38 | GCC_VERSION := $(call cc-version) | ||
| 39 | ifneq ($(shell if [ -z $(GCC_VERSION) ] ; then echo "bad"; fi ;),) | ||
| 40 | $(error Sorry, couldn't find ($(cc-version)).) | ||
| 41 | endif | ||
| 42 | ifneq ($(shell if [ $(GCC_VERSION) -lt 0303 ] ; then echo "bad"; fi ;),) | ||
| 43 | $(error Sorry, your compiler is too old ($(GCC_VERSION)). GCC v3.3 or above is required.) | ||
| 44 | endif | ||
| 45 | |||
| 37 | cflags-y := -pipe | 46 | cflags-y := -pipe |
| 38 | 47 | ||
| 39 | # These flags should be implied by an hppa-linux configuration, but they | 48 | # These flags should be implied by an hppa-linux configuration, but they |
| @@ -43,7 +52,7 @@ cflags-y += -mno-space-regs -mfast-indirect-calls | |||
| 43 | # Currently we save and restore fpregs on all kernel entry/interruption paths. | 52 | # Currently we save and restore fpregs on all kernel entry/interruption paths. |
| 44 | # If that gets optimized, we might need to disable the use of fpregs in the | 53 | # If that gets optimized, we might need to disable the use of fpregs in the |
| 45 | # kernel. | 54 | # kernel. |
| 46 | #cflags-y += -mdisable-fpregs | 55 | cflags-y += -mdisable-fpregs |
| 47 | 56 | ||
| 48 | # Without this, "ld -r" results in .text sections that are too big | 57 | # Without this, "ld -r" results in .text sections that are too big |
| 49 | # (> 0x40000) for branches to reach stubs. | 58 | # (> 0x40000) for branches to reach stubs. |
diff --git a/arch/parisc/configs/712_defconfig b/arch/parisc/configs/712_defconfig index 6efaa9293eef..3e013f55df64 100644 --- a/arch/parisc/configs/712_defconfig +++ b/arch/parisc/configs/712_defconfig | |||
| @@ -1,12 +1,16 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.10-pa5 | 3 | # Linux kernel version: 2.6.14-rc5-pa1 |
| 4 | # Wed Jan 5 13:20:32 2005 | 4 | # Fri Oct 21 23:04:34 2005 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_STACK_GROWSUP=y | 8 | CONFIG_STACK_GROWSUP=y |
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 11 | CONFIG_GENERIC_HARDIRQS=y | ||
| 12 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 13 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
| 10 | 14 | ||
| 11 | # | 15 | # |
| 12 | # Code maturity level options | 16 | # Code maturity level options |
| @@ -15,35 +19,40 @@ CONFIG_EXPERIMENTAL=y | |||
| 15 | # CONFIG_CLEAN_COMPILE is not set | 19 | # CONFIG_CLEAN_COMPILE is not set |
| 16 | CONFIG_BROKEN=y | 20 | CONFIG_BROKEN=y |
| 17 | CONFIG_BROKEN_ON_SMP=y | 21 | CONFIG_BROKEN_ON_SMP=y |
| 22 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 18 | 23 | ||
| 19 | # | 24 | # |
| 20 | # General setup | 25 | # General setup |
| 21 | # | 26 | # |
| 22 | CONFIG_LOCALVERSION="" | 27 | CONFIG_LOCALVERSION="" |
| 28 | # CONFIG_LOCALVERSION_AUTO is not set | ||
| 23 | CONFIG_SWAP=y | 29 | CONFIG_SWAP=y |
| 24 | CONFIG_SYSVIPC=y | 30 | CONFIG_SYSVIPC=y |
| 25 | CONFIG_POSIX_MQUEUE=y | 31 | CONFIG_POSIX_MQUEUE=y |
| 26 | # CONFIG_BSD_PROCESS_ACCT is not set | 32 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 27 | CONFIG_SYSCTL=y | 33 | CONFIG_SYSCTL=y |
| 28 | # CONFIG_AUDIT is not set | 34 | # CONFIG_AUDIT is not set |
| 29 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 30 | CONFIG_HOTPLUG=y | 35 | CONFIG_HOTPLUG=y |
| 31 | CONFIG_KOBJECT_UEVENT=y | 36 | CONFIG_KOBJECT_UEVENT=y |
| 32 | CONFIG_IKCONFIG=y | 37 | CONFIG_IKCONFIG=y |
| 33 | CONFIG_IKCONFIG_PROC=y | 38 | CONFIG_IKCONFIG_PROC=y |
| 39 | CONFIG_INITRAMFS_SOURCE="" | ||
| 34 | # CONFIG_EMBEDDED is not set | 40 | # CONFIG_EMBEDDED is not set |
| 35 | CONFIG_KALLSYMS=y | 41 | CONFIG_KALLSYMS=y |
| 36 | CONFIG_KALLSYMS_ALL=y | 42 | CONFIG_KALLSYMS_ALL=y |
| 37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 43 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
| 44 | CONFIG_PRINTK=y | ||
| 45 | CONFIG_BUG=y | ||
| 46 | CONFIG_BASE_FULL=y | ||
| 38 | CONFIG_FUTEX=y | 47 | CONFIG_FUTEX=y |
| 39 | CONFIG_EPOLL=y | 48 | CONFIG_EPOLL=y |
| 40 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
| 41 | CONFIG_SHMEM=y | 49 | CONFIG_SHMEM=y |
| 42 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 50 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
| 43 | CONFIG_CC_ALIGN_LABELS=0 | 51 | CONFIG_CC_ALIGN_LABELS=0 |
| 44 | CONFIG_CC_ALIGN_LOOPS=0 | 52 | CONFIG_CC_ALIGN_LOOPS=0 |
| 45 | CONFIG_CC_ALIGN_JUMPS=0 | 53 | CONFIG_CC_ALIGN_JUMPS=0 |
| 46 | # CONFIG_TINY_SHMEM is not set | 54 | # CONFIG_TINY_SHMEM is not set |
| 55 | CONFIG_BASE_SMALL=0 | ||
| 47 | 56 | ||
| 48 | # | 57 | # |
| 49 | # Loadable module support | 58 | # Loadable module support |
| @@ -65,9 +74,18 @@ CONFIG_PA7100LC=y | |||
| 65 | # CONFIG_PA7300LC is not set | 74 | # CONFIG_PA7300LC is not set |
| 66 | # CONFIG_PA8X00 is not set | 75 | # CONFIG_PA8X00 is not set |
| 67 | CONFIG_PA11=y | 76 | CONFIG_PA11=y |
| 68 | # CONFIG_64BIT is not set | ||
| 69 | # CONFIG_SMP is not set | 77 | # CONFIG_SMP is not set |
| 70 | # CONFIG_DISCONTIGMEM is not set | 78 | # CONFIG_HZ_100 is not set |
| 79 | CONFIG_HZ_250=y | ||
| 80 | # CONFIG_HZ_1000 is not set | ||
| 81 | CONFIG_HZ=250 | ||
| 82 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 83 | CONFIG_FLATMEM_MANUAL=y | ||
| 84 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 85 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 86 | CONFIG_FLATMEM=y | ||
| 87 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 88 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 71 | # CONFIG_PREEMPT is not set | 89 | # CONFIG_PREEMPT is not set |
| 72 | # CONFIG_HPUX is not set | 90 | # CONFIG_HPUX is not set |
| 73 | 91 | ||
| @@ -81,8 +99,6 @@ CONFIG_GSC_LASI=y | |||
| 81 | # CONFIG_GSC_WAX is not set | 99 | # CONFIG_GSC_WAX is not set |
| 82 | # CONFIG_EISA is not set | 100 | # CONFIG_EISA is not set |
| 83 | # CONFIG_PCI is not set | 101 | # CONFIG_PCI is not set |
| 84 | CONFIG_CHASSIS_LCD_LED=y | ||
| 85 | # CONFIG_PDC_CHASSIS is not set | ||
| 86 | 102 | ||
| 87 | # | 103 | # |
| 88 | # PCCARD (PCMCIA/CardBus) support | 104 | # PCCARD (PCMCIA/CardBus) support |
| @@ -90,12 +106,15 @@ CONFIG_CHASSIS_LCD_LED=y | |||
| 90 | # CONFIG_PCCARD is not set | 106 | # CONFIG_PCCARD is not set |
| 91 | 107 | ||
| 92 | # | 108 | # |
| 93 | # PC-card bridges | 109 | # PCI Hotplug Support |
| 94 | # | 110 | # |
| 95 | 111 | ||
| 96 | # | 112 | # |
| 97 | # PCI Hotplug Support | 113 | # PA-RISC specific drivers |
| 98 | # | 114 | # |
| 115 | CONFIG_CHASSIS_LCD_LED=y | ||
| 116 | # CONFIG_PDC_CHASSIS is not set | ||
| 117 | CONFIG_PDC_STABLE=y | ||
| 99 | 118 | ||
| 100 | # | 119 | # |
| 101 | # Executable file formats | 120 | # Executable file formats |
| @@ -104,137 +123,7 @@ CONFIG_BINFMT_ELF=y | |||
| 104 | CONFIG_BINFMT_MISC=m | 123 | CONFIG_BINFMT_MISC=m |
| 105 | 124 | ||
| 106 | # | 125 | # |
| 107 | # Device Drivers | 126 | # Networking |
| 108 | # | ||
| 109 | |||
| 110 | # | ||
| 111 | # Generic Driver Options | ||
| 112 | # | ||
| 113 | # CONFIG_STANDALONE is not set | ||
| 114 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
| 115 | CONFIG_FW_LOADER=y | ||
| 116 | # CONFIG_DEBUG_DRIVER is not set | ||
| 117 | |||
| 118 | # | ||
| 119 | # Memory Technology Devices (MTD) | ||
| 120 | # | ||
| 121 | # CONFIG_MTD is not set | ||
| 122 | |||
| 123 | # | ||
| 124 | # Parallel port support | ||
| 125 | # | ||
| 126 | CONFIG_PARPORT=y | ||
| 127 | CONFIG_PARPORT_PC=m | ||
| 128 | CONFIG_PARPORT_PC_CML1=m | ||
| 129 | # CONFIG_PARPORT_PC_FIFO is not set | ||
| 130 | # CONFIG_PARPORT_PC_SUPERIO is not set | ||
| 131 | CONFIG_PARPORT_GSC=y | ||
| 132 | # CONFIG_PARPORT_OTHER is not set | ||
| 133 | # CONFIG_PARPORT_1284 is not set | ||
| 134 | |||
| 135 | # | ||
| 136 | # Plug and Play support | ||
| 137 | # | ||
| 138 | |||
| 139 | # | ||
| 140 | # Block devices | ||
| 141 | # | ||
| 142 | # CONFIG_BLK_DEV_FD is not set | ||
| 143 | # CONFIG_PARIDE is not set | ||
| 144 | CONFIG_BLK_DEV_LOOP=y | ||
| 145 | CONFIG_BLK_DEV_CRYPTOLOOP=y | ||
| 146 | # CONFIG_BLK_DEV_NBD is not set | ||
| 147 | CONFIG_BLK_DEV_RAM=y | ||
| 148 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
| 149 | CONFIG_BLK_DEV_RAM_SIZE=6144 | ||
| 150 | CONFIG_BLK_DEV_INITRD=y | ||
| 151 | CONFIG_INITRAMFS_SOURCE="" | ||
| 152 | # CONFIG_CDROM_PKTCDVD is not set | ||
| 153 | |||
| 154 | # | ||
| 155 | # IO Schedulers | ||
| 156 | # | ||
| 157 | CONFIG_IOSCHED_NOOP=y | ||
| 158 | CONFIG_IOSCHED_AS=y | ||
| 159 | CONFIG_IOSCHED_DEADLINE=y | ||
| 160 | CONFIG_IOSCHED_CFQ=y | ||
| 161 | |||
| 162 | # | ||
| 163 | # ATA/ATAPI/MFM/RLL support | ||
| 164 | # | ||
| 165 | # CONFIG_IDE is not set | ||
| 166 | |||
| 167 | # | ||
| 168 | # SCSI device support | ||
| 169 | # | ||
| 170 | CONFIG_SCSI=y | ||
| 171 | CONFIG_SCSI_PROC_FS=y | ||
| 172 | |||
| 173 | # | ||
| 174 | # SCSI support type (disk, tape, CD-ROM) | ||
| 175 | # | ||
| 176 | CONFIG_BLK_DEV_SD=y | ||
| 177 | CONFIG_CHR_DEV_ST=y | ||
| 178 | # CONFIG_CHR_DEV_OSST is not set | ||
| 179 | CONFIG_BLK_DEV_SR=y | ||
| 180 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
| 181 | CONFIG_CHR_DEV_SG=y | ||
| 182 | |||
| 183 | # | ||
| 184 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
| 185 | # | ||
| 186 | # CONFIG_SCSI_MULTI_LUN is not set | ||
| 187 | # CONFIG_SCSI_CONSTANTS is not set | ||
| 188 | # CONFIG_SCSI_LOGGING is not set | ||
| 189 | |||
| 190 | # | ||
| 191 | # SCSI Transport Attributes | ||
| 192 | # | ||
| 193 | CONFIG_SCSI_SPI_ATTRS=y | ||
| 194 | # CONFIG_SCSI_FC_ATTRS is not set | ||
| 195 | |||
| 196 | # | ||
| 197 | # SCSI low-level drivers | ||
| 198 | # | ||
| 199 | # CONFIG_SCSI_SATA is not set | ||
| 200 | # CONFIG_SCSI_PPA is not set | ||
| 201 | # CONFIG_SCSI_IMM is not set | ||
| 202 | CONFIG_SCSI_LASI700=y | ||
| 203 | CONFIG_53C700_MEM_MAPPED=y | ||
| 204 | CONFIG_53C700_LE_ON_BE=y | ||
| 205 | # CONFIG_SCSI_ZALON is not set | ||
| 206 | CONFIG_SCSI_DEBUG=m | ||
| 207 | |||
| 208 | # | ||
| 209 | # Multi-device support (RAID and LVM) | ||
| 210 | # | ||
| 211 | CONFIG_MD=y | ||
| 212 | CONFIG_BLK_DEV_MD=m | ||
| 213 | CONFIG_MD_LINEAR=m | ||
| 214 | CONFIG_MD_RAID0=m | ||
| 215 | CONFIG_MD_RAID1=m | ||
| 216 | # CONFIG_MD_RAID10 is not set | ||
| 217 | # CONFIG_MD_RAID5 is not set | ||
| 218 | # CONFIG_MD_RAID6 is not set | ||
| 219 | # CONFIG_MD_MULTIPATH is not set | ||
| 220 | # CONFIG_MD_FAULTY is not set | ||
| 221 | # CONFIG_BLK_DEV_DM is not set | ||
| 222 | |||
| 223 | # | ||
| 224 | # Fusion MPT device support | ||
| 225 | # | ||
| 226 | |||
| 227 | # | ||
| 228 | # IEEE 1394 (FireWire) support | ||
| 229 | # | ||
| 230 | # CONFIG_IEEE1394 is not set | ||
| 231 | |||
| 232 | # | ||
| 233 | # I2O device support | ||
| 234 | # | ||
| 235 | |||
| 236 | # | ||
| 237 | # Networking support | ||
| 238 | # | 127 | # |
| 239 | CONFIG_NET=y | 128 | CONFIG_NET=y |
| 240 | 129 | ||
| @@ -243,12 +132,14 @@ CONFIG_NET=y | |||
| 243 | # | 132 | # |
| 244 | CONFIG_PACKET=y | 133 | CONFIG_PACKET=y |
| 245 | CONFIG_PACKET_MMAP=y | 134 | CONFIG_PACKET_MMAP=y |
| 246 | CONFIG_NETLINK_DEV=y | ||
| 247 | CONFIG_UNIX=y | 135 | CONFIG_UNIX=y |
| 136 | CONFIG_XFRM=y | ||
| 137 | CONFIG_XFRM_USER=m | ||
| 248 | CONFIG_NET_KEY=m | 138 | CONFIG_NET_KEY=m |
| 249 | CONFIG_INET=y | 139 | CONFIG_INET=y |
| 250 | CONFIG_IP_MULTICAST=y | 140 | CONFIG_IP_MULTICAST=y |
| 251 | # CONFIG_IP_ADVANCED_ROUTER is not set | 141 | # CONFIG_IP_ADVANCED_ROUTER is not set |
| 142 | CONFIG_IP_FIB_HASH=y | ||
| 252 | CONFIG_IP_PNP=y | 143 | CONFIG_IP_PNP=y |
| 253 | CONFIG_IP_PNP_DHCP=y | 144 | CONFIG_IP_PNP_DHCP=y |
| 254 | CONFIG_IP_PNP_BOOTP=y | 145 | CONFIG_IP_PNP_BOOTP=y |
| @@ -262,8 +153,10 @@ CONFIG_INET_AH=m | |||
| 262 | CONFIG_INET_ESP=m | 153 | CONFIG_INET_ESP=m |
| 263 | # CONFIG_INET_IPCOMP is not set | 154 | # CONFIG_INET_IPCOMP is not set |
| 264 | CONFIG_INET_TUNNEL=m | 155 | CONFIG_INET_TUNNEL=m |
| 265 | CONFIG_IP_TCPDIAG=y | 156 | CONFIG_INET_DIAG=m |
| 266 | # CONFIG_IP_TCPDIAG_IPV6 is not set | 157 | CONFIG_INET_TCP_DIAG=m |
| 158 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 159 | CONFIG_TCP_CONG_BIC=y | ||
| 267 | 160 | ||
| 268 | # | 161 | # |
| 269 | # IP: Virtual Server Configuration | 162 | # IP: Virtual Server Configuration |
| @@ -272,6 +165,7 @@ CONFIG_IP_TCPDIAG=y | |||
| 272 | # CONFIG_IPV6 is not set | 165 | # CONFIG_IPV6 is not set |
| 273 | CONFIG_NETFILTER=y | 166 | CONFIG_NETFILTER=y |
| 274 | # CONFIG_NETFILTER_DEBUG is not set | 167 | # CONFIG_NETFILTER_DEBUG is not set |
| 168 | # CONFIG_NETFILTER_NETLINK is not set | ||
| 275 | 169 | ||
| 276 | # | 170 | # |
| 277 | # IP: Netfilter Configuration | 171 | # IP: Netfilter Configuration |
| @@ -279,11 +173,14 @@ CONFIG_NETFILTER=y | |||
| 279 | CONFIG_IP_NF_CONNTRACK=m | 173 | CONFIG_IP_NF_CONNTRACK=m |
| 280 | # CONFIG_IP_NF_CT_ACCT is not set | 174 | # CONFIG_IP_NF_CT_ACCT is not set |
| 281 | CONFIG_IP_NF_CONNTRACK_MARK=y | 175 | CONFIG_IP_NF_CONNTRACK_MARK=y |
| 176 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
| 282 | CONFIG_IP_NF_CT_PROTO_SCTP=m | 177 | CONFIG_IP_NF_CT_PROTO_SCTP=m |
| 283 | CONFIG_IP_NF_FTP=m | 178 | CONFIG_IP_NF_FTP=m |
| 284 | CONFIG_IP_NF_IRC=m | 179 | CONFIG_IP_NF_IRC=m |
| 180 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
| 285 | CONFIG_IP_NF_TFTP=m | 181 | CONFIG_IP_NF_TFTP=m |
| 286 | CONFIG_IP_NF_AMANDA=m | 182 | CONFIG_IP_NF_AMANDA=m |
| 183 | # CONFIG_IP_NF_PPTP is not set | ||
| 287 | CONFIG_IP_NF_QUEUE=m | 184 | CONFIG_IP_NF_QUEUE=m |
| 288 | CONFIG_IP_NF_IPTABLES=m | 185 | CONFIG_IP_NF_IPTABLES=m |
| 289 | CONFIG_IP_NF_MATCH_LIMIT=m | 186 | CONFIG_IP_NF_MATCH_LIMIT=m |
| @@ -307,21 +204,23 @@ CONFIG_IP_NF_MATCH_OWNER=m | |||
| 307 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | 204 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set |
| 308 | # CONFIG_IP_NF_MATCH_REALM is not set | 205 | # CONFIG_IP_NF_MATCH_REALM is not set |
| 309 | CONFIG_IP_NF_MATCH_SCTP=m | 206 | CONFIG_IP_NF_MATCH_SCTP=m |
| 207 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
| 310 | CONFIG_IP_NF_MATCH_COMMENT=m | 208 | CONFIG_IP_NF_MATCH_COMMENT=m |
| 311 | CONFIG_IP_NF_MATCH_CONNMARK=m | 209 | CONFIG_IP_NF_MATCH_CONNMARK=m |
| 312 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 210 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
| 211 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
| 313 | CONFIG_IP_NF_FILTER=m | 212 | CONFIG_IP_NF_FILTER=m |
| 314 | CONFIG_IP_NF_TARGET_REJECT=m | 213 | CONFIG_IP_NF_TARGET_REJECT=m |
| 315 | CONFIG_IP_NF_TARGET_LOG=m | 214 | CONFIG_IP_NF_TARGET_LOG=m |
| 316 | CONFIG_IP_NF_TARGET_ULOG=m | 215 | CONFIG_IP_NF_TARGET_ULOG=m |
| 317 | CONFIG_IP_NF_TARGET_TCPMSS=m | 216 | CONFIG_IP_NF_TARGET_TCPMSS=m |
| 217 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
| 318 | CONFIG_IP_NF_NAT=m | 218 | CONFIG_IP_NF_NAT=m |
| 319 | CONFIG_IP_NF_NAT_NEEDED=y | 219 | CONFIG_IP_NF_NAT_NEEDED=y |
| 320 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 220 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
| 321 | CONFIG_IP_NF_TARGET_REDIRECT=m | 221 | CONFIG_IP_NF_TARGET_REDIRECT=m |
| 322 | CONFIG_IP_NF_TARGET_NETMAP=m | 222 | CONFIG_IP_NF_TARGET_NETMAP=m |
| 323 | CONFIG_IP_NF_TARGET_SAME=m | 223 | CONFIG_IP_NF_TARGET_SAME=m |
| 324 | # CONFIG_IP_NF_NAT_LOCAL is not set | ||
| 325 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | 224 | CONFIG_IP_NF_NAT_SNMP_BASIC=m |
| 326 | CONFIG_IP_NF_NAT_IRC=m | 225 | CONFIG_IP_NF_NAT_IRC=m |
| 327 | CONFIG_IP_NF_NAT_FTP=m | 226 | CONFIG_IP_NF_NAT_FTP=m |
| @@ -333,6 +232,7 @@ CONFIG_IP_NF_TARGET_ECN=m | |||
| 333 | CONFIG_IP_NF_TARGET_DSCP=m | 232 | CONFIG_IP_NF_TARGET_DSCP=m |
| 334 | CONFIG_IP_NF_TARGET_MARK=m | 233 | CONFIG_IP_NF_TARGET_MARK=m |
| 335 | CONFIG_IP_NF_TARGET_CLASSIFY=m | 234 | CONFIG_IP_NF_TARGET_CLASSIFY=m |
| 235 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
| 336 | CONFIG_IP_NF_TARGET_CONNMARK=m | 236 | CONFIG_IP_NF_TARGET_CONNMARK=m |
| 337 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | 237 | CONFIG_IP_NF_TARGET_CLUSTERIP=m |
| 338 | CONFIG_IP_NF_RAW=m | 238 | CONFIG_IP_NF_RAW=m |
| @@ -340,10 +240,11 @@ CONFIG_IP_NF_TARGET_NOTRACK=m | |||
| 340 | CONFIG_IP_NF_ARPTABLES=m | 240 | CONFIG_IP_NF_ARPTABLES=m |
| 341 | CONFIG_IP_NF_ARPFILTER=m | 241 | CONFIG_IP_NF_ARPFILTER=m |
| 342 | CONFIG_IP_NF_ARP_MANGLE=m | 242 | CONFIG_IP_NF_ARP_MANGLE=m |
| 343 | # CONFIG_IP_NF_COMPAT_IPCHAINS is not set | 243 | |
| 344 | # CONFIG_IP_NF_COMPAT_IPFWADM is not set | 244 | # |
| 345 | CONFIG_XFRM=y | 245 | # DCCP Configuration (EXPERIMENTAL) |
| 346 | CONFIG_XFRM_USER=m | 246 | # |
| 247 | # CONFIG_IP_DCCP is not set | ||
| 347 | 248 | ||
| 348 | # | 249 | # |
| 349 | # SCTP Configuration (EXPERIMENTAL) | 250 | # SCTP Configuration (EXPERIMENTAL) |
| @@ -362,10 +263,6 @@ CONFIG_LLC2=m | |||
| 362 | # CONFIG_NET_DIVERT is not set | 263 | # CONFIG_NET_DIVERT is not set |
| 363 | # CONFIG_ECONET is not set | 264 | # CONFIG_ECONET is not set |
| 364 | # CONFIG_WAN_ROUTER is not set | 265 | # CONFIG_WAN_ROUTER is not set |
| 365 | |||
| 366 | # | ||
| 367 | # QoS and/or fair queueing | ||
| 368 | # | ||
| 369 | # CONFIG_NET_SCHED is not set | 266 | # CONFIG_NET_SCHED is not set |
| 370 | # CONFIG_NET_CLS_ROUTE is not set | 267 | # CONFIG_NET_CLS_ROUTE is not set |
| 371 | 268 | ||
| @@ -373,17 +270,162 @@ CONFIG_LLC2=m | |||
| 373 | # Network testing | 270 | # Network testing |
| 374 | # | 271 | # |
| 375 | CONFIG_NET_PKTGEN=m | 272 | CONFIG_NET_PKTGEN=m |
| 376 | # CONFIG_NETPOLL is not set | ||
| 377 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 378 | # CONFIG_HAMRADIO is not set | 273 | # CONFIG_HAMRADIO is not set |
| 379 | # CONFIG_IRDA is not set | 274 | # CONFIG_IRDA is not set |
| 380 | # CONFIG_BT is not set | 275 | # CONFIG_BT is not set |
| 276 | # CONFIG_IEEE80211 is not set | ||
| 277 | |||
| 278 | # | ||
| 279 | # Device Drivers | ||
| 280 | # | ||
| 281 | |||
| 282 | # | ||
| 283 | # Generic Driver Options | ||
| 284 | # | ||
| 285 | # CONFIG_STANDALONE is not set | ||
| 286 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
| 287 | CONFIG_FW_LOADER=y | ||
| 288 | # CONFIG_DEBUG_DRIVER is not set | ||
| 289 | |||
| 290 | # | ||
| 291 | # Connector - unified userspace <-> kernelspace linker | ||
| 292 | # | ||
| 293 | # CONFIG_CONNECTOR is not set | ||
| 294 | |||
| 295 | # | ||
| 296 | # Memory Technology Devices (MTD) | ||
| 297 | # | ||
| 298 | # CONFIG_MTD is not set | ||
| 299 | |||
| 300 | # | ||
| 301 | # Parallel port support | ||
| 302 | # | ||
| 303 | CONFIG_PARPORT=y | ||
| 304 | CONFIG_PARPORT_PC=m | ||
| 305 | # CONFIG_PARPORT_PC_FIFO is not set | ||
| 306 | # CONFIG_PARPORT_PC_SUPERIO is not set | ||
| 307 | CONFIG_PARPORT_GSC=y | ||
| 308 | # CONFIG_PARPORT_1284 is not set | ||
| 309 | |||
| 310 | # | ||
| 311 | # Plug and Play support | ||
| 312 | # | ||
| 313 | |||
| 314 | # | ||
| 315 | # Block devices | ||
| 316 | # | ||
| 317 | # CONFIG_BLK_DEV_FD is not set | ||
| 318 | # CONFIG_PARIDE is not set | ||
| 319 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 320 | CONFIG_BLK_DEV_LOOP=y | ||
| 321 | CONFIG_BLK_DEV_CRYPTOLOOP=y | ||
| 322 | # CONFIG_BLK_DEV_NBD is not set | ||
| 323 | CONFIG_BLK_DEV_RAM=y | ||
| 324 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
| 325 | CONFIG_BLK_DEV_RAM_SIZE=6144 | ||
| 326 | CONFIG_BLK_DEV_INITRD=y | ||
| 327 | # CONFIG_CDROM_PKTCDVD is not set | ||
| 328 | |||
| 329 | # | ||
| 330 | # IO Schedulers | ||
| 331 | # | ||
| 332 | CONFIG_IOSCHED_NOOP=y | ||
| 333 | CONFIG_IOSCHED_AS=y | ||
| 334 | CONFIG_IOSCHED_DEADLINE=y | ||
| 335 | CONFIG_IOSCHED_CFQ=y | ||
| 336 | CONFIG_ATA_OVER_ETH=m | ||
| 337 | |||
| 338 | # | ||
| 339 | # ATA/ATAPI/MFM/RLL support | ||
| 340 | # | ||
| 341 | # CONFIG_IDE is not set | ||
| 342 | |||
| 343 | # | ||
| 344 | # SCSI device support | ||
| 345 | # | ||
| 346 | # CONFIG_RAID_ATTRS is not set | ||
| 347 | CONFIG_SCSI=y | ||
| 348 | CONFIG_SCSI_PROC_FS=y | ||
| 349 | |||
| 350 | # | ||
| 351 | # SCSI support type (disk, tape, CD-ROM) | ||
| 352 | # | ||
| 353 | CONFIG_BLK_DEV_SD=y | ||
| 354 | CONFIG_CHR_DEV_ST=y | ||
| 355 | # CONFIG_CHR_DEV_OSST is not set | ||
| 356 | CONFIG_BLK_DEV_SR=y | ||
| 357 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
| 358 | CONFIG_CHR_DEV_SG=y | ||
| 359 | # CONFIG_CHR_DEV_SCH is not set | ||
| 360 | |||
| 361 | # | ||
| 362 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
| 363 | # | ||
| 364 | # CONFIG_SCSI_MULTI_LUN is not set | ||
| 365 | # CONFIG_SCSI_CONSTANTS is not set | ||
| 366 | # CONFIG_SCSI_LOGGING is not set | ||
| 367 | |||
| 368 | # | ||
| 369 | # SCSI Transport Attributes | ||
| 370 | # | ||
| 371 | CONFIG_SCSI_SPI_ATTRS=y | ||
| 372 | # CONFIG_SCSI_FC_ATTRS is not set | ||
| 373 | CONFIG_SCSI_ISCSI_ATTRS=m | ||
| 374 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
| 375 | |||
| 376 | # | ||
| 377 | # SCSI low-level drivers | ||
| 378 | # | ||
| 379 | # CONFIG_SCSI_SATA is not set | ||
| 380 | # CONFIG_SCSI_PPA is not set | ||
| 381 | # CONFIG_SCSI_IMM is not set | ||
| 382 | CONFIG_SCSI_LASI700=y | ||
| 383 | CONFIG_53C700_LE_ON_BE=y | ||
| 384 | # CONFIG_SCSI_ZALON is not set | ||
| 385 | CONFIG_SCSI_DEBUG=m | ||
| 386 | |||
| 387 | # | ||
| 388 | # Multi-device support (RAID and LVM) | ||
| 389 | # | ||
| 390 | CONFIG_MD=y | ||
| 391 | CONFIG_BLK_DEV_MD=m | ||
| 392 | CONFIG_MD_LINEAR=m | ||
| 393 | CONFIG_MD_RAID0=m | ||
| 394 | CONFIG_MD_RAID1=m | ||
| 395 | # CONFIG_MD_RAID10 is not set | ||
| 396 | # CONFIG_MD_RAID5 is not set | ||
| 397 | # CONFIG_MD_RAID6 is not set | ||
| 398 | # CONFIG_MD_MULTIPATH is not set | ||
| 399 | # CONFIG_MD_FAULTY is not set | ||
| 400 | # CONFIG_BLK_DEV_DM is not set | ||
| 401 | |||
| 402 | # | ||
| 403 | # Fusion MPT device support | ||
| 404 | # | ||
| 405 | # CONFIG_FUSION is not set | ||
| 406 | |||
| 407 | # | ||
| 408 | # IEEE 1394 (FireWire) support | ||
| 409 | # | ||
| 410 | # CONFIG_IEEE1394 is not set | ||
| 411 | |||
| 412 | # | ||
| 413 | # I2O device support | ||
| 414 | # | ||
| 415 | |||
| 416 | # | ||
| 417 | # Network device support | ||
| 418 | # | ||
| 381 | CONFIG_NETDEVICES=y | 419 | CONFIG_NETDEVICES=y |
| 382 | CONFIG_DUMMY=m | 420 | CONFIG_DUMMY=m |
| 383 | CONFIG_BONDING=m | 421 | CONFIG_BONDING=m |
| 384 | # CONFIG_EQUALIZER is not set | 422 | # CONFIG_EQUALIZER is not set |
| 385 | CONFIG_TUN=m | 423 | CONFIG_TUN=m |
| 386 | # CONFIG_ETHERTAP is not set | 424 | |
| 425 | # | ||
| 426 | # PHY device support | ||
| 427 | # | ||
| 428 | # CONFIG_PHYLIB is not set | ||
| 387 | 429 | ||
| 388 | # | 430 | # |
| 389 | # Ethernet (10 or 100Mbit) | 431 | # Ethernet (10 or 100Mbit) |
| @@ -391,6 +433,7 @@ CONFIG_TUN=m | |||
| 391 | CONFIG_NET_ETHERNET=y | 433 | CONFIG_NET_ETHERNET=y |
| 392 | CONFIG_MII=m | 434 | CONFIG_MII=m |
| 393 | CONFIG_LASI_82596=y | 435 | CONFIG_LASI_82596=y |
| 436 | # CONFIG_NET_POCKET is not set | ||
| 394 | 437 | ||
| 395 | # | 438 | # |
| 396 | # Ethernet (1000 Mbit) | 439 | # Ethernet (1000 Mbit) |
| @@ -414,6 +457,7 @@ CONFIG_NET_RADIO=y | |||
| 414 | # | 457 | # |
| 415 | # CONFIG_STRIP is not set | 458 | # CONFIG_STRIP is not set |
| 416 | # CONFIG_ATMEL is not set | 459 | # CONFIG_ATMEL is not set |
| 460 | # CONFIG_HOSTAP is not set | ||
| 417 | 461 | ||
| 418 | # | 462 | # |
| 419 | # Wan interfaces | 463 | # Wan interfaces |
| @@ -431,6 +475,8 @@ CONFIG_PPPOE=m | |||
| 431 | # CONFIG_SLIP is not set | 475 | # CONFIG_SLIP is not set |
| 432 | # CONFIG_SHAPER is not set | 476 | # CONFIG_SHAPER is not set |
| 433 | # CONFIG_NETCONSOLE is not set | 477 | # CONFIG_NETCONSOLE is not set |
| 478 | # CONFIG_NETPOLL is not set | ||
| 479 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 434 | 480 | ||
| 435 | # | 481 | # |
| 436 | # ISDN subsystem | 482 | # ISDN subsystem |
| @@ -460,19 +506,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
| 460 | # CONFIG_INPUT_EVBUG is not set | 506 | # CONFIG_INPUT_EVBUG is not set |
| 461 | 507 | ||
| 462 | # | 508 | # |
| 463 | # Input I/O drivers | ||
| 464 | # | ||
| 465 | # CONFIG_GAMEPORT is not set | ||
| 466 | CONFIG_SOUND_GAMEPORT=y | ||
| 467 | CONFIG_SERIO=y | ||
| 468 | CONFIG_SERIO_SERPORT=y | ||
| 469 | # CONFIG_SERIO_PARKBD is not set | ||
| 470 | CONFIG_SERIO_GSCPS2=y | ||
| 471 | CONFIG_HP_SDC=y | ||
| 472 | CONFIG_HIL_MLC=y | ||
| 473 | # CONFIG_SERIO_RAW is not set | ||
| 474 | |||
| 475 | # | ||
| 476 | # Input Device Drivers | 509 | # Input Device Drivers |
| 477 | # | 510 | # |
| 478 | CONFIG_INPUT_KEYBOARD=y | 511 | CONFIG_INPUT_KEYBOARD=y |
| @@ -483,6 +516,7 @@ CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y | |||
| 483 | # CONFIG_KEYBOARD_LKKBD is not set | 516 | # CONFIG_KEYBOARD_LKKBD is not set |
| 484 | # CONFIG_KEYBOARD_XTKBD is not set | 517 | # CONFIG_KEYBOARD_XTKBD is not set |
| 485 | # CONFIG_KEYBOARD_NEWTON is not set | 518 | # CONFIG_KEYBOARD_NEWTON is not set |
| 519 | CONFIG_KEYBOARD_HIL_OLD=y | ||
| 486 | # CONFIG_KEYBOARD_HIL is not set | 520 | # CONFIG_KEYBOARD_HIL is not set |
| 487 | CONFIG_INPUT_MOUSE=y | 521 | CONFIG_INPUT_MOUSE=y |
| 488 | CONFIG_MOUSE_PS2=y | 522 | CONFIG_MOUSE_PS2=y |
| @@ -494,6 +528,19 @@ CONFIG_MOUSE_HIL=m | |||
| 494 | # CONFIG_INPUT_MISC is not set | 528 | # CONFIG_INPUT_MISC is not set |
| 495 | 529 | ||
| 496 | # | 530 | # |
| 531 | # Hardware I/O ports | ||
| 532 | # | ||
| 533 | CONFIG_SERIO=y | ||
| 534 | CONFIG_SERIO_SERPORT=y | ||
| 535 | # CONFIG_SERIO_PARKBD is not set | ||
| 536 | CONFIG_SERIO_GSCPS2=y | ||
| 537 | CONFIG_HP_SDC=y | ||
| 538 | CONFIG_HIL_MLC=y | ||
| 539 | CONFIG_SERIO_LIBPS2=y | ||
| 540 | # CONFIG_SERIO_RAW is not set | ||
| 541 | # CONFIG_GAMEPORT is not set | ||
| 542 | |||
| 543 | # | ||
| 497 | # Character devices | 544 | # Character devices |
| 498 | # | 545 | # |
| 499 | CONFIG_VT=y | 546 | CONFIG_VT=y |
| @@ -511,7 +558,6 @@ CONFIG_SERIAL_8250_EXTENDED=y | |||
| 511 | CONFIG_SERIAL_8250_MANY_PORTS=y | 558 | CONFIG_SERIAL_8250_MANY_PORTS=y |
| 512 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 559 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
| 513 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 560 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
| 514 | # CONFIG_SERIAL_8250_MULTIPORT is not set | ||
| 515 | # CONFIG_SERIAL_8250_RSA is not set | 561 | # CONFIG_SERIAL_8250_RSA is not set |
| 516 | 562 | ||
| 517 | # | 563 | # |
| @@ -546,12 +592,14 @@ CONFIG_GEN_RTC_X=y | |||
| 546 | # | 592 | # |
| 547 | # Ftape, the floppy tape device driver | 593 | # Ftape, the floppy tape device driver |
| 548 | # | 594 | # |
| 549 | # CONFIG_AGP is not set | ||
| 550 | # CONFIG_DRM is not set | ||
| 551 | CONFIG_RAW_DRIVER=y | 595 | CONFIG_RAW_DRIVER=y |
| 552 | CONFIG_MAX_RAW_DEVS=256 | 596 | CONFIG_MAX_RAW_DEVS=256 |
| 553 | 597 | ||
| 554 | # | 598 | # |
| 599 | # TPM devices | ||
| 600 | # | ||
| 601 | |||
| 602 | # | ||
| 555 | # I2C support | 603 | # I2C support |
| 556 | # | 604 | # |
| 557 | # CONFIG_I2C is not set | 605 | # CONFIG_I2C is not set |
| @@ -562,10 +610,20 @@ CONFIG_MAX_RAW_DEVS=256 | |||
| 562 | # CONFIG_W1 is not set | 610 | # CONFIG_W1 is not set |
| 563 | 611 | ||
| 564 | # | 612 | # |
| 613 | # Hardware Monitoring support | ||
| 614 | # | ||
| 615 | # CONFIG_HWMON is not set | ||
| 616 | # CONFIG_HWMON_VID is not set | ||
| 617 | |||
| 618 | # | ||
| 565 | # Misc devices | 619 | # Misc devices |
| 566 | # | 620 | # |
| 567 | 621 | ||
| 568 | # | 622 | # |
| 623 | # Multimedia Capabilities Port drivers | ||
| 624 | # | ||
| 625 | |||
| 626 | # | ||
| 569 | # Multimedia devices | 627 | # Multimedia devices |
| 570 | # | 628 | # |
| 571 | # CONFIG_VIDEO_DEV is not set | 629 | # CONFIG_VIDEO_DEV is not set |
| @@ -579,28 +637,36 @@ CONFIG_MAX_RAW_DEVS=256 | |||
| 579 | # Graphics support | 637 | # Graphics support |
| 580 | # | 638 | # |
| 581 | CONFIG_FB=y | 639 | CONFIG_FB=y |
| 640 | CONFIG_FB_CFB_FILLRECT=y | ||
| 641 | CONFIG_FB_CFB_COPYAREA=y | ||
| 642 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 643 | CONFIG_FB_SOFT_CURSOR=y | ||
| 644 | # CONFIG_FB_MACMODES is not set | ||
| 582 | CONFIG_FB_MODE_HELPERS=y | 645 | CONFIG_FB_MODE_HELPERS=y |
| 583 | CONFIG_FB_TILEBLITTING=y | 646 | CONFIG_FB_TILEBLITTING=y |
| 584 | CONFIG_FB_STI=y | 647 | CONFIG_FB_STI=y |
| 648 | # CONFIG_FB_S1D13XXX is not set | ||
| 585 | # CONFIG_FB_VIRTUAL is not set | 649 | # CONFIG_FB_VIRTUAL is not set |
| 586 | 650 | ||
| 587 | # | 651 | # |
| 588 | # Console display driver support | 652 | # Console display driver support |
| 589 | # | 653 | # |
| 590 | CONFIG_STI_CONSOLE=y | 654 | CONFIG_DUMMY_CONSOLE=y |
| 591 | CONFIG_DUMMY_CONSOLE_COLUMNS=128 | 655 | CONFIG_DUMMY_CONSOLE_COLUMNS=128 |
| 592 | CONFIG_DUMMY_CONSOLE_ROWS=48 | 656 | CONFIG_DUMMY_CONSOLE_ROWS=48 |
| 593 | CONFIG_DUMMY_CONSOLE=y | ||
| 594 | CONFIG_FRAMEBUFFER_CONSOLE=y | 657 | CONFIG_FRAMEBUFFER_CONSOLE=y |
| 658 | CONFIG_STI_CONSOLE=y | ||
| 595 | CONFIG_FONTS=y | 659 | CONFIG_FONTS=y |
| 596 | CONFIG_FONT_8x8=y | 660 | CONFIG_FONT_8x8=y |
| 597 | CONFIG_FONT_8x16=y | 661 | CONFIG_FONT_8x16=y |
| 598 | # CONFIG_FONT_6x11 is not set | 662 | # CONFIG_FONT_6x11 is not set |
| 663 | # CONFIG_FONT_7x14 is not set | ||
| 599 | # CONFIG_FONT_PEARL_8x8 is not set | 664 | # CONFIG_FONT_PEARL_8x8 is not set |
| 600 | # CONFIG_FONT_ACORN_8x8 is not set | 665 | # CONFIG_FONT_ACORN_8x8 is not set |
| 601 | # CONFIG_FONT_MINI_4x6 is not set | 666 | # CONFIG_FONT_MINI_4x6 is not set |
| 602 | # CONFIG_FONT_SUN8x16 is not set | 667 | # CONFIG_FONT_SUN8x16 is not set |
| 603 | # CONFIG_FONT_SUN12x22 is not set | 668 | # CONFIG_FONT_SUN12x22 is not set |
| 669 | # CONFIG_FONT_10x18 is not set | ||
| 604 | 670 | ||
| 605 | # | 671 | # |
| 606 | # Logo configuration | 672 | # Logo configuration |
| @@ -610,6 +676,7 @@ CONFIG_LOGO=y | |||
| 610 | # CONFIG_LOGO_LINUX_VGA16 is not set | 676 | # CONFIG_LOGO_LINUX_VGA16 is not set |
| 611 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 677 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
| 612 | CONFIG_LOGO_PARISC_CLUT224=y | 678 | CONFIG_LOGO_PARISC_CLUT224=y |
| 679 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 613 | 680 | ||
| 614 | # | 681 | # |
| 615 | # Sound | 682 | # Sound |
| @@ -657,10 +724,6 @@ CONFIG_SND_HARMONY=y | |||
| 657 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 724 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
| 658 | 725 | ||
| 659 | # | 726 | # |
| 660 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
| 661 | # | ||
| 662 | |||
| 663 | # | ||
| 664 | # USB Gadget Support | 727 | # USB Gadget Support |
| 665 | # | 728 | # |
| 666 | # CONFIG_USB_GADGET is not set | 729 | # CONFIG_USB_GADGET is not set |
| @@ -671,10 +734,20 @@ CONFIG_SND_HARMONY=y | |||
| 671 | # CONFIG_MMC is not set | 734 | # CONFIG_MMC is not set |
| 672 | 735 | ||
| 673 | # | 736 | # |
| 737 | # InfiniBand support | ||
| 738 | # | ||
| 739 | # CONFIG_INFINIBAND is not set | ||
| 740 | |||
| 741 | # | ||
| 742 | # SN Devices | ||
| 743 | # | ||
| 744 | |||
| 745 | # | ||
| 674 | # File systems | 746 | # File systems |
| 675 | # | 747 | # |
| 676 | CONFIG_EXT2_FS=y | 748 | CONFIG_EXT2_FS=y |
| 677 | # CONFIG_EXT2_FS_XATTR is not set | 749 | # CONFIG_EXT2_FS_XATTR is not set |
| 750 | # CONFIG_EXT2_FS_XIP is not set | ||
| 678 | CONFIG_EXT3_FS=y | 751 | CONFIG_EXT3_FS=y |
| 679 | # CONFIG_EXT3_FS_XATTR is not set | 752 | # CONFIG_EXT3_FS_XATTR is not set |
| 680 | CONFIG_JBD=y | 753 | CONFIG_JBD=y |
| @@ -682,20 +755,24 @@ CONFIG_JBD=y | |||
| 682 | # CONFIG_REISERFS_FS is not set | 755 | # CONFIG_REISERFS_FS is not set |
| 683 | CONFIG_JFS_FS=m | 756 | CONFIG_JFS_FS=m |
| 684 | # CONFIG_JFS_POSIX_ACL is not set | 757 | # CONFIG_JFS_POSIX_ACL is not set |
| 758 | # CONFIG_JFS_SECURITY is not set | ||
| 685 | # CONFIG_JFS_DEBUG is not set | 759 | # CONFIG_JFS_DEBUG is not set |
| 686 | # CONFIG_JFS_STATISTICS is not set | 760 | # CONFIG_JFS_STATISTICS is not set |
| 687 | CONFIG_FS_POSIX_ACL=y | 761 | CONFIG_FS_POSIX_ACL=y |
| 688 | CONFIG_XFS_FS=m | 762 | CONFIG_XFS_FS=m |
| 689 | # CONFIG_XFS_RT is not set | 763 | CONFIG_XFS_EXPORT=y |
| 690 | # CONFIG_XFS_QUOTA is not set | 764 | # CONFIG_XFS_QUOTA is not set |
| 691 | # CONFIG_XFS_SECURITY is not set | 765 | # CONFIG_XFS_SECURITY is not set |
| 692 | # CONFIG_XFS_POSIX_ACL is not set | 766 | # CONFIG_XFS_POSIX_ACL is not set |
| 767 | # CONFIG_XFS_RT is not set | ||
| 693 | # CONFIG_MINIX_FS is not set | 768 | # CONFIG_MINIX_FS is not set |
| 694 | # CONFIG_ROMFS_FS is not set | 769 | # CONFIG_ROMFS_FS is not set |
| 770 | CONFIG_INOTIFY=y | ||
| 695 | # CONFIG_QUOTA is not set | 771 | # CONFIG_QUOTA is not set |
| 696 | CONFIG_DNOTIFY=y | 772 | CONFIG_DNOTIFY=y |
| 697 | # CONFIG_AUTOFS_FS is not set | 773 | # CONFIG_AUTOFS_FS is not set |
| 698 | CONFIG_AUTOFS4_FS=y | 774 | CONFIG_AUTOFS4_FS=y |
| 775 | # CONFIG_FUSE_FS is not set | ||
| 699 | 776 | ||
| 700 | # | 777 | # |
| 701 | # CD-ROM/DVD Filesystems | 778 | # CD-ROM/DVD Filesystems |
| @@ -722,14 +799,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 722 | CONFIG_PROC_FS=y | 799 | CONFIG_PROC_FS=y |
| 723 | CONFIG_PROC_KCORE=y | 800 | CONFIG_PROC_KCORE=y |
| 724 | CONFIG_SYSFS=y | 801 | CONFIG_SYSFS=y |
| 725 | # CONFIG_DEVFS_FS is not set | ||
| 726 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
| 727 | CONFIG_TMPFS=y | 802 | CONFIG_TMPFS=y |
| 728 | CONFIG_TMPFS_XATTR=y | ||
| 729 | # CONFIG_TMPFS_SECURITY is not set | ||
| 730 | # CONFIG_HUGETLBFS is not set | 803 | # CONFIG_HUGETLBFS is not set |
| 731 | # CONFIG_HUGETLB_PAGE is not set | 804 | # CONFIG_HUGETLB_PAGE is not set |
| 732 | CONFIG_RAMFS=y | 805 | CONFIG_RAMFS=y |
| 806 | # CONFIG_RELAYFS_FS is not set | ||
| 733 | 807 | ||
| 734 | # | 808 | # |
| 735 | # Miscellaneous filesystems | 809 | # Miscellaneous filesystems |
| @@ -754,16 +828,19 @@ CONFIG_UFS_FS=m | |||
| 754 | # | 828 | # |
| 755 | CONFIG_NFS_FS=y | 829 | CONFIG_NFS_FS=y |
| 756 | CONFIG_NFS_V3=y | 830 | CONFIG_NFS_V3=y |
| 831 | # CONFIG_NFS_V3_ACL is not set | ||
| 757 | CONFIG_NFS_V4=y | 832 | CONFIG_NFS_V4=y |
| 758 | CONFIG_NFS_DIRECTIO=y | 833 | CONFIG_NFS_DIRECTIO=y |
| 759 | CONFIG_NFSD=m | 834 | CONFIG_NFSD=m |
| 760 | CONFIG_NFSD_V3=y | 835 | CONFIG_NFSD_V3=y |
| 836 | # CONFIG_NFSD_V3_ACL is not set | ||
| 761 | CONFIG_NFSD_V4=y | 837 | CONFIG_NFSD_V4=y |
| 762 | CONFIG_NFSD_TCP=y | 838 | CONFIG_NFSD_TCP=y |
| 763 | CONFIG_ROOT_NFS=y | 839 | CONFIG_ROOT_NFS=y |
| 764 | CONFIG_LOCKD=y | 840 | CONFIG_LOCKD=y |
| 765 | CONFIG_LOCKD_V4=y | 841 | CONFIG_LOCKD_V4=y |
| 766 | CONFIG_EXPORTFS=m | 842 | CONFIG_EXPORTFS=m |
| 843 | CONFIG_NFS_COMMON=y | ||
| 767 | CONFIG_SUNRPC=y | 844 | CONFIG_SUNRPC=y |
| 768 | CONFIG_SUNRPC_GSS=y | 845 | CONFIG_SUNRPC_GSS=y |
| 769 | CONFIG_RPCSEC_GSS_KRB5=y | 846 | CONFIG_RPCSEC_GSS_KRB5=y |
| @@ -778,6 +855,7 @@ CONFIG_CIFS=m | |||
| 778 | # CONFIG_NCP_FS is not set | 855 | # CONFIG_NCP_FS is not set |
| 779 | # CONFIG_CODA_FS is not set | 856 | # CONFIG_CODA_FS is not set |
| 780 | # CONFIG_AFS_FS is not set | 857 | # CONFIG_AFS_FS is not set |
| 858 | # CONFIG_9P_FS is not set | ||
| 781 | 859 | ||
| 782 | # | 860 | # |
| 783 | # Partition Types | 861 | # Partition Types |
| @@ -838,13 +916,19 @@ CONFIG_OPROFILE=m | |||
| 838 | # | 916 | # |
| 839 | # Kernel hacking | 917 | # Kernel hacking |
| 840 | # | 918 | # |
| 919 | # CONFIG_PRINTK_TIME is not set | ||
| 841 | CONFIG_DEBUG_KERNEL=y | 920 | CONFIG_DEBUG_KERNEL=y |
| 842 | CONFIG_MAGIC_SYSRQ=y | 921 | CONFIG_MAGIC_SYSRQ=y |
| 922 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 923 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 843 | # CONFIG_SCHEDSTATS is not set | 924 | # CONFIG_SCHEDSTATS is not set |
| 844 | # CONFIG_DEBUG_SLAB is not set | 925 | # CONFIG_DEBUG_SLAB is not set |
| 845 | # CONFIG_DEBUG_SPINLOCK is not set | 926 | # CONFIG_DEBUG_SPINLOCK is not set |
| 927 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 846 | # CONFIG_DEBUG_KOBJECT is not set | 928 | # CONFIG_DEBUG_KOBJECT is not set |
| 847 | # CONFIG_DEBUG_INFO is not set | 929 | # CONFIG_DEBUG_INFO is not set |
| 930 | # CONFIG_DEBUG_IOREMAP is not set | ||
| 931 | # CONFIG_DEBUG_FS is not set | ||
| 848 | 932 | ||
| 849 | # | 933 | # |
| 850 | # Security options | 934 | # Security options |
| @@ -865,6 +949,7 @@ CONFIG_CRYPTO_SHA1=m | |||
| 865 | CONFIG_CRYPTO_SHA256=m | 949 | CONFIG_CRYPTO_SHA256=m |
| 866 | CONFIG_CRYPTO_SHA512=m | 950 | CONFIG_CRYPTO_SHA512=m |
| 867 | CONFIG_CRYPTO_WP512=m | 951 | CONFIG_CRYPTO_WP512=m |
| 952 | CONFIG_CRYPTO_TGR192=m | ||
| 868 | CONFIG_CRYPTO_DES=y | 953 | CONFIG_CRYPTO_DES=y |
| 869 | CONFIG_CRYPTO_BLOWFISH=m | 954 | CONFIG_CRYPTO_BLOWFISH=m |
| 870 | CONFIG_CRYPTO_TWOFISH=m | 955 | CONFIG_CRYPTO_TWOFISH=m |
| @@ -882,9 +967,14 @@ CONFIG_CRYPTO_CRC32C=m | |||
| 882 | CONFIG_CRYPTO_TEST=m | 967 | CONFIG_CRYPTO_TEST=m |
| 883 | 968 | ||
| 884 | # | 969 | # |
| 970 | # Hardware crypto devices | ||
| 971 | # | ||
| 972 | |||
| 973 | # | ||
| 885 | # Library routines | 974 | # Library routines |
| 886 | # | 975 | # |
| 887 | CONFIG_CRC_CCITT=m | 976 | CONFIG_CRC_CCITT=m |
| 977 | # CONFIG_CRC16 is not set | ||
| 888 | CONFIG_CRC32=y | 978 | CONFIG_CRC32=y |
| 889 | CONFIG_LIBCRC32C=m | 979 | CONFIG_LIBCRC32C=m |
| 890 | CONFIG_ZLIB_INFLATE=m | 980 | CONFIG_ZLIB_INFLATE=m |
diff --git a/arch/parisc/configs/a500_defconfig b/arch/parisc/configs/a500_defconfig index 30fc03ed0cfb..955ef5084f3e 100644 --- a/arch/parisc/configs/a500_defconfig +++ b/arch/parisc/configs/a500_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.11-rc4-pa1 | 3 | # Linux kernel version: 2.6.14-rc5-pa1 |
| 4 | # Wed Feb 16 11:32:49 2005 | 4 | # Fri Oct 21 23:04:54 2005 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| @@ -10,6 +10,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y | |||
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 11 | CONFIG_GENERIC_HARDIRQS=y | 11 | CONFIG_GENERIC_HARDIRQS=y |
| 12 | CONFIG_GENERIC_IRQ_PROBE=y | 12 | CONFIG_GENERIC_IRQ_PROBE=y |
| 13 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
| 13 | 14 | ||
| 14 | # | 15 | # |
| 15 | # Code maturity level options | 16 | # Code maturity level options |
| @@ -19,26 +20,32 @@ CONFIG_EXPERIMENTAL=y | |||
| 19 | CONFIG_BROKEN=y | 20 | CONFIG_BROKEN=y |
| 20 | CONFIG_BROKEN_ON_SMP=y | 21 | CONFIG_BROKEN_ON_SMP=y |
| 21 | CONFIG_LOCK_KERNEL=y | 22 | CONFIG_LOCK_KERNEL=y |
| 23 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 22 | 24 | ||
| 23 | # | 25 | # |
| 24 | # General setup | 26 | # General setup |
| 25 | # | 27 | # |
| 26 | CONFIG_LOCALVERSION="" | 28 | CONFIG_LOCALVERSION="" |
| 29 | # CONFIG_LOCALVERSION_AUTO is not set | ||
| 27 | CONFIG_SWAP=y | 30 | CONFIG_SWAP=y |
| 28 | CONFIG_SYSVIPC=y | 31 | CONFIG_SYSVIPC=y |
| 29 | CONFIG_POSIX_MQUEUE=y | 32 | CONFIG_POSIX_MQUEUE=y |
| 30 | # CONFIG_BSD_PROCESS_ACCT is not set | 33 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 31 | CONFIG_SYSCTL=y | 34 | CONFIG_SYSCTL=y |
| 32 | # CONFIG_AUDIT is not set | 35 | # CONFIG_AUDIT is not set |
| 33 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 34 | CONFIG_HOTPLUG=y | 36 | CONFIG_HOTPLUG=y |
| 35 | CONFIG_KOBJECT_UEVENT=y | 37 | CONFIG_KOBJECT_UEVENT=y |
| 36 | CONFIG_IKCONFIG=y | 38 | CONFIG_IKCONFIG=y |
| 37 | CONFIG_IKCONFIG_PROC=y | 39 | CONFIG_IKCONFIG_PROC=y |
| 40 | # CONFIG_CPUSETS is not set | ||
| 41 | CONFIG_INITRAMFS_SOURCE="" | ||
| 38 | CONFIG_EMBEDDED=y | 42 | CONFIG_EMBEDDED=y |
| 39 | CONFIG_KALLSYMS=y | 43 | CONFIG_KALLSYMS=y |
| 40 | CONFIG_KALLSYMS_ALL=y | 44 | CONFIG_KALLSYMS_ALL=y |
| 41 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 45 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
| 46 | CONFIG_PRINTK=y | ||
| 47 | CONFIG_BUG=y | ||
| 48 | CONFIG_BASE_FULL=y | ||
| 42 | CONFIG_FUTEX=y | 49 | CONFIG_FUTEX=y |
| 43 | CONFIG_EPOLL=y | 50 | CONFIG_EPOLL=y |
| 44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 51 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
| @@ -48,6 +55,7 @@ CONFIG_CC_ALIGN_LABELS=0 | |||
| 48 | CONFIG_CC_ALIGN_LOOPS=0 | 55 | CONFIG_CC_ALIGN_LOOPS=0 |
| 49 | CONFIG_CC_ALIGN_JUMPS=0 | 56 | CONFIG_CC_ALIGN_JUMPS=0 |
| 50 | # CONFIG_TINY_SHMEM is not set | 57 | # CONFIG_TINY_SHMEM is not set |
| 58 | CONFIG_BASE_SMALL=0 | ||
| 51 | 59 | ||
| 52 | # | 60 | # |
| 53 | # Loadable module support | 61 | # Loadable module support |
| @@ -74,7 +82,19 @@ CONFIG_PREFETCH=y | |||
| 74 | CONFIG_64BIT=y | 82 | CONFIG_64BIT=y |
| 75 | CONFIG_SMP=y | 83 | CONFIG_SMP=y |
| 76 | CONFIG_HOTPLUG_CPU=y | 84 | CONFIG_HOTPLUG_CPU=y |
| 85 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
| 86 | # CONFIG_HZ_100 is not set | ||
| 87 | CONFIG_HZ_250=y | ||
| 88 | # CONFIG_HZ_1000 is not set | ||
| 89 | CONFIG_HZ=250 | ||
| 90 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 91 | # CONFIG_FLATMEM_MANUAL is not set | ||
| 92 | CONFIG_DISCONTIGMEM_MANUAL=y | ||
| 93 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 77 | CONFIG_DISCONTIGMEM=y | 94 | CONFIG_DISCONTIGMEM=y |
| 95 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 96 | CONFIG_NEED_MULTIPLE_NODES=y | ||
| 97 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 78 | # CONFIG_PREEMPT is not set | 98 | # CONFIG_PREEMPT is not set |
| 79 | CONFIG_COMPAT=y | 99 | CONFIG_COMPAT=y |
| 80 | CONFIG_NR_CPUS=8 | 100 | CONFIG_NR_CPUS=8 |
| @@ -85,7 +105,7 @@ CONFIG_NR_CPUS=8 | |||
| 85 | # CONFIG_GSC is not set | 105 | # CONFIG_GSC is not set |
| 86 | CONFIG_PCI=y | 106 | CONFIG_PCI=y |
| 87 | CONFIG_PCI_LEGACY_PROC=y | 107 | CONFIG_PCI_LEGACY_PROC=y |
| 88 | CONFIG_PCI_NAMES=y | 108 | # CONFIG_PCI_DEBUG is not set |
| 89 | CONFIG_PCI_LBA=y | 109 | CONFIG_PCI_LBA=y |
| 90 | CONFIG_IOSAPIC=y | 110 | CONFIG_IOSAPIC=y |
| 91 | CONFIG_IOMMU_SBA=y | 111 | CONFIG_IOMMU_SBA=y |
| @@ -96,6 +116,8 @@ CONFIG_IOMMU_SBA=y | |||
| 96 | CONFIG_PCCARD=m | 116 | CONFIG_PCCARD=m |
| 97 | # CONFIG_PCMCIA_DEBUG is not set | 117 | # CONFIG_PCMCIA_DEBUG is not set |
| 98 | CONFIG_PCMCIA=m | 118 | CONFIG_PCMCIA=m |
| 119 | # CONFIG_PCMCIA_LOAD_CIS is not set | ||
| 120 | CONFIG_PCMCIA_IOCTL=y | ||
| 99 | CONFIG_CARDBUS=y | 121 | CONFIG_CARDBUS=y |
| 100 | 122 | ||
| 101 | # | 123 | # |
| @@ -104,7 +126,6 @@ CONFIG_CARDBUS=y | |||
| 104 | CONFIG_YENTA=m | 126 | CONFIG_YENTA=m |
| 105 | CONFIG_PD6729=m | 127 | CONFIG_PD6729=m |
| 106 | CONFIG_I82092=m | 128 | CONFIG_I82092=m |
| 107 | CONFIG_TCIC=m | ||
| 108 | CONFIG_PCCARD_NONSTATIC=m | 129 | CONFIG_PCCARD_NONSTATIC=m |
| 109 | 130 | ||
| 110 | # | 131 | # |
| @@ -127,6 +148,203 @@ CONFIG_BINFMT_ELF=y | |||
| 127 | # CONFIG_BINFMT_MISC is not set | 148 | # CONFIG_BINFMT_MISC is not set |
| 128 | 149 | ||
| 129 | # | 150 | # |
| 151 | # Networking | ||
| 152 | # | ||
| 153 | CONFIG_NET=y | ||
| 154 | |||
| 155 | # | ||
| 156 | # Networking options | ||
| 157 | # | ||
| 158 | CONFIG_PACKET=y | ||
| 159 | CONFIG_PACKET_MMAP=y | ||
| 160 | CONFIG_UNIX=y | ||
| 161 | CONFIG_XFRM=y | ||
| 162 | CONFIG_XFRM_USER=m | ||
| 163 | CONFIG_NET_KEY=m | ||
| 164 | CONFIG_INET=y | ||
| 165 | CONFIG_IP_MULTICAST=y | ||
| 166 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 167 | CONFIG_IP_FIB_HASH=y | ||
| 168 | CONFIG_IP_PNP=y | ||
| 169 | CONFIG_IP_PNP_DHCP=y | ||
| 170 | CONFIG_IP_PNP_BOOTP=y | ||
| 171 | # CONFIG_IP_PNP_RARP is not set | ||
| 172 | # CONFIG_NET_IPIP is not set | ||
| 173 | # CONFIG_NET_IPGRE is not set | ||
| 174 | # CONFIG_IP_MROUTE is not set | ||
| 175 | # CONFIG_ARPD is not set | ||
| 176 | # CONFIG_SYN_COOKIES is not set | ||
| 177 | CONFIG_INET_AH=m | ||
| 178 | CONFIG_INET_ESP=m | ||
| 179 | # CONFIG_INET_IPCOMP is not set | ||
| 180 | CONFIG_INET_TUNNEL=m | ||
| 181 | CONFIG_INET_DIAG=y | ||
| 182 | CONFIG_INET_TCP_DIAG=y | ||
| 183 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 184 | CONFIG_TCP_CONG_BIC=y | ||
| 185 | |||
| 186 | # | ||
| 187 | # IP: Virtual Server Configuration | ||
| 188 | # | ||
| 189 | # CONFIG_IP_VS is not set | ||
| 190 | CONFIG_IPV6=m | ||
| 191 | # CONFIG_IPV6_PRIVACY is not set | ||
| 192 | CONFIG_INET6_AH=m | ||
| 193 | CONFIG_INET6_ESP=m | ||
| 194 | CONFIG_INET6_IPCOMP=m | ||
| 195 | CONFIG_INET6_TUNNEL=m | ||
| 196 | CONFIG_IPV6_TUNNEL=m | ||
| 197 | CONFIG_NETFILTER=y | ||
| 198 | # CONFIG_NETFILTER_DEBUG is not set | ||
| 199 | # CONFIG_NETFILTER_NETLINK is not set | ||
| 200 | |||
| 201 | # | ||
| 202 | # IP: Netfilter Configuration | ||
| 203 | # | ||
| 204 | CONFIG_IP_NF_CONNTRACK=m | ||
| 205 | # CONFIG_IP_NF_CT_ACCT is not set | ||
| 206 | CONFIG_IP_NF_CONNTRACK_MARK=y | ||
| 207 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
| 208 | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||
| 209 | CONFIG_IP_NF_FTP=m | ||
| 210 | CONFIG_IP_NF_IRC=m | ||
| 211 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
| 212 | CONFIG_IP_NF_TFTP=m | ||
| 213 | CONFIG_IP_NF_AMANDA=m | ||
| 214 | # CONFIG_IP_NF_PPTP is not set | ||
| 215 | CONFIG_IP_NF_QUEUE=m | ||
| 216 | CONFIG_IP_NF_IPTABLES=m | ||
| 217 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
| 218 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
| 219 | CONFIG_IP_NF_MATCH_MAC=m | ||
| 220 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
| 221 | CONFIG_IP_NF_MATCH_MARK=m | ||
| 222 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
| 223 | CONFIG_IP_NF_MATCH_TOS=m | ||
| 224 | CONFIG_IP_NF_MATCH_RECENT=m | ||
| 225 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 226 | CONFIG_IP_NF_MATCH_DSCP=m | ||
| 227 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
| 228 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
| 229 | CONFIG_IP_NF_MATCH_TTL=m | ||
| 230 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
| 231 | CONFIG_IP_NF_MATCH_HELPER=m | ||
| 232 | CONFIG_IP_NF_MATCH_STATE=m | ||
| 233 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
| 234 | CONFIG_IP_NF_MATCH_OWNER=m | ||
| 235 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
| 236 | # CONFIG_IP_NF_MATCH_REALM is not set | ||
| 237 | CONFIG_IP_NF_MATCH_SCTP=m | ||
| 238 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
| 239 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
| 240 | CONFIG_IP_NF_MATCH_CONNMARK=m | ||
| 241 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
| 242 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
| 243 | CONFIG_IP_NF_FILTER=m | ||
| 244 | CONFIG_IP_NF_TARGET_REJECT=m | ||
| 245 | CONFIG_IP_NF_TARGET_LOG=m | ||
| 246 | CONFIG_IP_NF_TARGET_ULOG=m | ||
| 247 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
| 248 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
| 249 | CONFIG_IP_NF_NAT=m | ||
| 250 | CONFIG_IP_NF_NAT_NEEDED=y | ||
| 251 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
| 252 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
| 253 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
| 254 | CONFIG_IP_NF_TARGET_SAME=m | ||
| 255 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | ||
| 256 | CONFIG_IP_NF_NAT_IRC=m | ||
| 257 | CONFIG_IP_NF_NAT_FTP=m | ||
| 258 | CONFIG_IP_NF_NAT_TFTP=m | ||
| 259 | CONFIG_IP_NF_NAT_AMANDA=m | ||
| 260 | CONFIG_IP_NF_MANGLE=m | ||
| 261 | CONFIG_IP_NF_TARGET_TOS=m | ||
| 262 | CONFIG_IP_NF_TARGET_ECN=m | ||
| 263 | CONFIG_IP_NF_TARGET_DSCP=m | ||
| 264 | CONFIG_IP_NF_TARGET_MARK=m | ||
| 265 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
| 266 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
| 267 | CONFIG_IP_NF_TARGET_CONNMARK=m | ||
| 268 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | ||
| 269 | CONFIG_IP_NF_RAW=m | ||
| 270 | CONFIG_IP_NF_TARGET_NOTRACK=m | ||
| 271 | CONFIG_IP_NF_ARPTABLES=m | ||
| 272 | CONFIG_IP_NF_ARPFILTER=m | ||
| 273 | CONFIG_IP_NF_ARP_MANGLE=m | ||
| 274 | |||
| 275 | # | ||
| 276 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | ||
| 277 | # | ||
| 278 | # CONFIG_IP6_NF_QUEUE is not set | ||
| 279 | CONFIG_IP6_NF_IPTABLES=m | ||
| 280 | # CONFIG_IP6_NF_MATCH_LIMIT is not set | ||
| 281 | CONFIG_IP6_NF_MATCH_MAC=m | ||
| 282 | CONFIG_IP6_NF_MATCH_RT=m | ||
| 283 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
| 284 | CONFIG_IP6_NF_MATCH_FRAG=m | ||
| 285 | CONFIG_IP6_NF_MATCH_HL=m | ||
| 286 | # CONFIG_IP6_NF_MATCH_MULTIPORT is not set | ||
| 287 | # CONFIG_IP6_NF_MATCH_OWNER is not set | ||
| 288 | # CONFIG_IP6_NF_MATCH_MARK is not set | ||
| 289 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
| 290 | # CONFIG_IP6_NF_MATCH_AHESP is not set | ||
| 291 | # CONFIG_IP6_NF_MATCH_LENGTH is not set | ||
| 292 | # CONFIG_IP6_NF_MATCH_EUI64 is not set | ||
| 293 | CONFIG_IP6_NF_FILTER=m | ||
| 294 | CONFIG_IP6_NF_TARGET_LOG=m | ||
| 295 | CONFIG_IP6_NF_TARGET_REJECT=m | ||
| 296 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
| 297 | CONFIG_IP6_NF_MANGLE=m | ||
| 298 | # CONFIG_IP6_NF_TARGET_MARK is not set | ||
| 299 | # CONFIG_IP6_NF_TARGET_HL is not set | ||
| 300 | CONFIG_IP6_NF_RAW=m | ||
| 301 | |||
| 302 | # | ||
| 303 | # DCCP Configuration (EXPERIMENTAL) | ||
| 304 | # | ||
| 305 | CONFIG_IP_DCCP=m | ||
| 306 | CONFIG_INET_DCCP_DIAG=m | ||
| 307 | |||
| 308 | # | ||
| 309 | # DCCP CCIDs Configuration (EXPERIMENTAL) | ||
| 310 | # | ||
| 311 | # CONFIG_IP_DCCP_CCID3 is not set | ||
| 312 | |||
| 313 | # | ||
| 314 | # DCCP Kernel Hacking | ||
| 315 | # | ||
| 316 | # CONFIG_IP_DCCP_DEBUG is not set | ||
| 317 | |||
| 318 | # | ||
| 319 | # SCTP Configuration (EXPERIMENTAL) | ||
| 320 | # | ||
| 321 | # CONFIG_IP_SCTP is not set | ||
| 322 | # CONFIG_ATM is not set | ||
| 323 | # CONFIG_BRIDGE is not set | ||
| 324 | # CONFIG_VLAN_8021Q is not set | ||
| 325 | # CONFIG_DECNET is not set | ||
| 326 | CONFIG_LLC=m | ||
| 327 | CONFIG_LLC2=m | ||
| 328 | # CONFIG_IPX is not set | ||
| 329 | # CONFIG_ATALK is not set | ||
| 330 | # CONFIG_X25 is not set | ||
| 331 | # CONFIG_LAPB is not set | ||
| 332 | # CONFIG_NET_DIVERT is not set | ||
| 333 | # CONFIG_ECONET is not set | ||
| 334 | # CONFIG_WAN_ROUTER is not set | ||
| 335 | # CONFIG_NET_SCHED is not set | ||
| 336 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 337 | |||
| 338 | # | ||
| 339 | # Network testing | ||
| 340 | # | ||
| 341 | CONFIG_NET_PKTGEN=m | ||
| 342 | # CONFIG_HAMRADIO is not set | ||
| 343 | # CONFIG_IRDA is not set | ||
| 344 | # CONFIG_BT is not set | ||
| 345 | # CONFIG_IEEE80211 is not set | ||
| 346 | |||
| 347 | # | ||
| 130 | # Device Drivers | 348 | # Device Drivers |
| 131 | # | 349 | # |
| 132 | 350 | ||
| @@ -139,6 +357,11 @@ CONFIG_FW_LOADER=y | |||
| 139 | # CONFIG_DEBUG_DRIVER is not set | 357 | # CONFIG_DEBUG_DRIVER is not set |
| 140 | 358 | ||
| 141 | # | 359 | # |
| 360 | # Connector - unified userspace <-> kernelspace linker | ||
| 361 | # | ||
| 362 | # CONFIG_CONNECTOR is not set | ||
| 363 | |||
| 364 | # | ||
| 142 | # Memory Technology Devices (MTD) | 365 | # Memory Technology Devices (MTD) |
| 143 | # | 366 | # |
| 144 | # CONFIG_MTD is not set | 367 | # CONFIG_MTD is not set |
| @@ -169,7 +392,6 @@ CONFIG_BLK_DEV_RAM=y | |||
| 169 | CONFIG_BLK_DEV_RAM_COUNT=16 | 392 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 170 | CONFIG_BLK_DEV_RAM_SIZE=6144 | 393 | CONFIG_BLK_DEV_RAM_SIZE=6144 |
| 171 | CONFIG_BLK_DEV_INITRD=y | 394 | CONFIG_BLK_DEV_INITRD=y |
| 172 | CONFIG_INITRAMFS_SOURCE="" | ||
| 173 | # CONFIG_CDROM_PKTCDVD is not set | 395 | # CONFIG_CDROM_PKTCDVD is not set |
| 174 | 396 | ||
| 175 | # | 397 | # |
| @@ -189,6 +411,7 @@ CONFIG_IOSCHED_CFQ=y | |||
| 189 | # | 411 | # |
| 190 | # SCSI device support | 412 | # SCSI device support |
| 191 | # | 413 | # |
| 414 | CONFIG_RAID_ATTRS=m | ||
| 192 | CONFIG_SCSI=y | 415 | CONFIG_SCSI=y |
| 193 | CONFIG_SCSI_PROC_FS=y | 416 | CONFIG_SCSI_PROC_FS=y |
| 194 | 417 | ||
| @@ -201,6 +424,7 @@ CONFIG_CHR_DEV_ST=y | |||
| 201 | CONFIG_BLK_DEV_SR=y | 424 | CONFIG_BLK_DEV_SR=y |
| 202 | # CONFIG_BLK_DEV_SR_VENDOR is not set | 425 | # CONFIG_BLK_DEV_SR_VENDOR is not set |
| 203 | CONFIG_CHR_DEV_SG=y | 426 | CONFIG_CHR_DEV_SG=y |
| 427 | # CONFIG_CHR_DEV_SCH is not set | ||
| 204 | 428 | ||
| 205 | # | 429 | # |
| 206 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | 430 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs |
| @@ -215,6 +439,7 @@ CONFIG_SCSI_MULTI_LUN=y | |||
| 215 | CONFIG_SCSI_SPI_ATTRS=y | 439 | CONFIG_SCSI_SPI_ATTRS=y |
| 216 | CONFIG_SCSI_FC_ATTRS=m | 440 | CONFIG_SCSI_FC_ATTRS=m |
| 217 | CONFIG_SCSI_ISCSI_ATTRS=m | 441 | CONFIG_SCSI_ISCSI_ATTRS=m |
| 442 | CONFIG_SCSI_SAS_ATTRS=m | ||
| 218 | 443 | ||
| 219 | # | 444 | # |
| 220 | # SCSI low-level drivers | 445 | # SCSI low-level drivers |
| @@ -229,14 +454,12 @@ CONFIG_SCSI_ISCSI_ATTRS=m | |||
| 229 | # CONFIG_SCSI_ADVANSYS is not set | 454 | # CONFIG_SCSI_ADVANSYS is not set |
| 230 | # CONFIG_MEGARAID_NEWGEN is not set | 455 | # CONFIG_MEGARAID_NEWGEN is not set |
| 231 | # CONFIG_MEGARAID_LEGACY is not set | 456 | # CONFIG_MEGARAID_LEGACY is not set |
| 457 | # CONFIG_MEGARAID_SAS is not set | ||
| 232 | # CONFIG_SCSI_SATA is not set | 458 | # CONFIG_SCSI_SATA is not set |
| 233 | # CONFIG_SCSI_BUSLOGIC is not set | ||
| 234 | # CONFIG_SCSI_CPQFCTS is not set | 459 | # CONFIG_SCSI_CPQFCTS is not set |
| 235 | # CONFIG_SCSI_DMX3191D is not set | 460 | # CONFIG_SCSI_DMX3191D is not set |
| 236 | # CONFIG_SCSI_EATA is not set | ||
| 237 | # CONFIG_SCSI_EATA_PIO is not set | 461 | # CONFIG_SCSI_EATA_PIO is not set |
| 238 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 462 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
| 239 | # CONFIG_SCSI_GDTH is not set | ||
| 240 | # CONFIG_SCSI_IPS is not set | 463 | # CONFIG_SCSI_IPS is not set |
| 241 | # CONFIG_SCSI_INITIO is not set | 464 | # CONFIG_SCSI_INITIO is not set |
| 242 | # CONFIG_SCSI_INIA100 is not set | 465 | # CONFIG_SCSI_INIA100 is not set |
| @@ -246,8 +469,6 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | |||
| 246 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | 469 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
| 247 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set | 470 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set |
| 248 | # CONFIG_SCSI_IPR is not set | 471 | # CONFIG_SCSI_IPR is not set |
| 249 | # CONFIG_SCSI_PCI2000 is not set | ||
| 250 | # CONFIG_SCSI_PCI2220I is not set | ||
| 251 | # CONFIG_SCSI_QLOGIC_ISP is not set | 472 | # CONFIG_SCSI_QLOGIC_ISP is not set |
| 252 | CONFIG_SCSI_QLOGIC_FC=m | 473 | CONFIG_SCSI_QLOGIC_FC=m |
| 253 | # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set | 474 | # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set |
| @@ -258,7 +479,9 @@ CONFIG_SCSI_QLA2XXX=y | |||
| 258 | # CONFIG_SCSI_QLA22XX is not set | 479 | # CONFIG_SCSI_QLA22XX is not set |
| 259 | CONFIG_SCSI_QLA2300=m | 480 | CONFIG_SCSI_QLA2300=m |
| 260 | CONFIG_SCSI_QLA2322=m | 481 | CONFIG_SCSI_QLA2322=m |
| 261 | CONFIG_SCSI_QLA6312=m | 482 | # CONFIG_SCSI_QLA6312 is not set |
| 483 | # CONFIG_SCSI_QLA24XX is not set | ||
| 484 | # CONFIG_SCSI_LPFC is not set | ||
| 262 | # CONFIG_SCSI_DC395x is not set | 485 | # CONFIG_SCSI_DC395x is not set |
| 263 | # CONFIG_SCSI_DC390T is not set | 486 | # CONFIG_SCSI_DC390T is not set |
| 264 | CONFIG_SCSI_DEBUG=m | 487 | CONFIG_SCSI_DEBUG=m |
| @@ -288,8 +511,11 @@ CONFIG_MD_RAID1=y | |||
| 288 | # | 511 | # |
| 289 | # Fusion MPT device support | 512 | # Fusion MPT device support |
| 290 | # | 513 | # |
| 291 | CONFIG_FUSION=m | 514 | CONFIG_FUSION=y |
| 292 | CONFIG_FUSION_MAX_SGE=40 | 515 | CONFIG_FUSION_SPI=m |
| 516 | CONFIG_FUSION_FC=m | ||
| 517 | # CONFIG_FUSION_SAS is not set | ||
| 518 | CONFIG_FUSION_MAX_SGE=128 | ||
| 293 | CONFIG_FUSION_CTL=m | 519 | CONFIG_FUSION_CTL=m |
| 294 | 520 | ||
| 295 | # | 521 | # |
| @@ -303,153 +529,13 @@ CONFIG_FUSION_CTL=m | |||
| 303 | # CONFIG_I2O is not set | 529 | # CONFIG_I2O is not set |
| 304 | 530 | ||
| 305 | # | 531 | # |
| 306 | # Networking support | 532 | # Network device support |
| 307 | # | ||
| 308 | CONFIG_NET=y | ||
| 309 | |||
| 310 | # | ||
| 311 | # Networking options | ||
| 312 | # | ||
| 313 | CONFIG_PACKET=y | ||
| 314 | CONFIG_PACKET_MMAP=y | ||
| 315 | CONFIG_NETLINK_DEV=y | ||
| 316 | CONFIG_UNIX=y | ||
| 317 | CONFIG_NET_KEY=m | ||
| 318 | CONFIG_INET=y | ||
| 319 | CONFIG_IP_MULTICAST=y | ||
| 320 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 321 | CONFIG_IP_PNP=y | ||
| 322 | CONFIG_IP_PNP_DHCP=y | ||
| 323 | CONFIG_IP_PNP_BOOTP=y | ||
| 324 | # CONFIG_IP_PNP_RARP is not set | ||
| 325 | # CONFIG_NET_IPIP is not set | ||
| 326 | # CONFIG_NET_IPGRE is not set | ||
| 327 | # CONFIG_IP_MROUTE is not set | ||
| 328 | # CONFIG_ARPD is not set | ||
| 329 | # CONFIG_SYN_COOKIES is not set | ||
| 330 | CONFIG_INET_AH=m | ||
| 331 | CONFIG_INET_ESP=m | ||
| 332 | # CONFIG_INET_IPCOMP is not set | ||
| 333 | CONFIG_INET_TUNNEL=m | ||
| 334 | CONFIG_IP_TCPDIAG=y | ||
| 335 | # CONFIG_IP_TCPDIAG_IPV6 is not set | ||
| 336 | |||
| 337 | # | ||
| 338 | # IP: Virtual Server Configuration | ||
| 339 | # | 533 | # |
| 340 | # CONFIG_IP_VS is not set | ||
| 341 | # CONFIG_IPV6 is not set | ||
| 342 | CONFIG_NETFILTER=y | ||
| 343 | # CONFIG_NETFILTER_DEBUG is not set | ||
| 344 | |||
| 345 | # | ||
| 346 | # IP: Netfilter Configuration | ||
| 347 | # | ||
| 348 | CONFIG_IP_NF_CONNTRACK=m | ||
| 349 | # CONFIG_IP_NF_CT_ACCT is not set | ||
| 350 | CONFIG_IP_NF_CONNTRACK_MARK=y | ||
| 351 | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||
| 352 | CONFIG_IP_NF_FTP=m | ||
| 353 | CONFIG_IP_NF_IRC=m | ||
| 354 | CONFIG_IP_NF_TFTP=m | ||
| 355 | CONFIG_IP_NF_AMANDA=m | ||
| 356 | CONFIG_IP_NF_QUEUE=m | ||
| 357 | CONFIG_IP_NF_IPTABLES=m | ||
| 358 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
| 359 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
| 360 | CONFIG_IP_NF_MATCH_MAC=m | ||
| 361 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
| 362 | CONFIG_IP_NF_MATCH_MARK=m | ||
| 363 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
| 364 | CONFIG_IP_NF_MATCH_TOS=m | ||
| 365 | CONFIG_IP_NF_MATCH_RECENT=m | ||
| 366 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 367 | CONFIG_IP_NF_MATCH_DSCP=m | ||
| 368 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
| 369 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
| 370 | CONFIG_IP_NF_MATCH_TTL=m | ||
| 371 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
| 372 | CONFIG_IP_NF_MATCH_HELPER=m | ||
| 373 | CONFIG_IP_NF_MATCH_STATE=m | ||
| 374 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
| 375 | CONFIG_IP_NF_MATCH_OWNER=m | ||
| 376 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
| 377 | # CONFIG_IP_NF_MATCH_REALM is not set | ||
| 378 | CONFIG_IP_NF_MATCH_SCTP=m | ||
| 379 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
| 380 | CONFIG_IP_NF_MATCH_CONNMARK=m | ||
| 381 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
| 382 | CONFIG_IP_NF_FILTER=m | ||
| 383 | CONFIG_IP_NF_TARGET_REJECT=m | ||
| 384 | CONFIG_IP_NF_TARGET_LOG=m | ||
| 385 | CONFIG_IP_NF_TARGET_ULOG=m | ||
| 386 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
| 387 | CONFIG_IP_NF_NAT=m | ||
| 388 | CONFIG_IP_NF_NAT_NEEDED=y | ||
| 389 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
| 390 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
| 391 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
| 392 | CONFIG_IP_NF_TARGET_SAME=m | ||
| 393 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | ||
| 394 | CONFIG_IP_NF_NAT_IRC=m | ||
| 395 | CONFIG_IP_NF_NAT_FTP=m | ||
| 396 | CONFIG_IP_NF_NAT_TFTP=m | ||
| 397 | CONFIG_IP_NF_NAT_AMANDA=m | ||
| 398 | CONFIG_IP_NF_MANGLE=m | ||
| 399 | CONFIG_IP_NF_TARGET_TOS=m | ||
| 400 | CONFIG_IP_NF_TARGET_ECN=m | ||
| 401 | CONFIG_IP_NF_TARGET_DSCP=m | ||
| 402 | CONFIG_IP_NF_TARGET_MARK=m | ||
| 403 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
| 404 | CONFIG_IP_NF_TARGET_CONNMARK=m | ||
| 405 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | ||
| 406 | CONFIG_IP_NF_RAW=m | ||
| 407 | CONFIG_IP_NF_TARGET_NOTRACK=m | ||
| 408 | CONFIG_IP_NF_ARPTABLES=m | ||
| 409 | CONFIG_IP_NF_ARPFILTER=m | ||
| 410 | CONFIG_IP_NF_ARP_MANGLE=m | ||
| 411 | CONFIG_XFRM=y | ||
| 412 | CONFIG_XFRM_USER=m | ||
| 413 | |||
| 414 | # | ||
| 415 | # SCTP Configuration (EXPERIMENTAL) | ||
| 416 | # | ||
| 417 | # CONFIG_IP_SCTP is not set | ||
| 418 | # CONFIG_ATM is not set | ||
| 419 | # CONFIG_BRIDGE is not set | ||
| 420 | # CONFIG_VLAN_8021Q is not set | ||
| 421 | # CONFIG_DECNET is not set | ||
| 422 | CONFIG_LLC=m | ||
| 423 | CONFIG_LLC2=m | ||
| 424 | # CONFIG_IPX is not set | ||
| 425 | # CONFIG_ATALK is not set | ||
| 426 | # CONFIG_X25 is not set | ||
| 427 | # CONFIG_LAPB is not set | ||
| 428 | # CONFIG_NET_DIVERT is not set | ||
| 429 | # CONFIG_ECONET is not set | ||
| 430 | # CONFIG_WAN_ROUTER is not set | ||
| 431 | |||
| 432 | # | ||
| 433 | # QoS and/or fair queueing | ||
| 434 | # | ||
| 435 | # CONFIG_NET_SCHED is not set | ||
| 436 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 437 | |||
| 438 | # | ||
| 439 | # Network testing | ||
| 440 | # | ||
| 441 | CONFIG_NET_PKTGEN=m | ||
| 442 | # CONFIG_NETPOLL is not set | ||
| 443 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 444 | # CONFIG_HAMRADIO is not set | ||
| 445 | # CONFIG_IRDA is not set | ||
| 446 | # CONFIG_BT is not set | ||
| 447 | CONFIG_NETDEVICES=y | 534 | CONFIG_NETDEVICES=y |
| 448 | CONFIG_DUMMY=m | 535 | CONFIG_DUMMY=m |
| 449 | CONFIG_BONDING=m | 536 | CONFIG_BONDING=m |
| 450 | # CONFIG_EQUALIZER is not set | 537 | # CONFIG_EQUALIZER is not set |
| 451 | CONFIG_TUN=m | 538 | CONFIG_TUN=m |
| 452 | # CONFIG_ETHERTAP is not set | ||
| 453 | 539 | ||
| 454 | # | 540 | # |
| 455 | # ARCnet devices | 541 | # ARCnet devices |
| @@ -457,12 +543,18 @@ CONFIG_TUN=m | |||
| 457 | # CONFIG_ARCNET is not set | 543 | # CONFIG_ARCNET is not set |
| 458 | 544 | ||
| 459 | # | 545 | # |
| 546 | # PHY device support | ||
| 547 | # | ||
| 548 | # CONFIG_PHYLIB is not set | ||
| 549 | |||
| 550 | # | ||
| 460 | # Ethernet (10 or 100Mbit) | 551 | # Ethernet (10 or 100Mbit) |
| 461 | # | 552 | # |
| 462 | CONFIG_NET_ETHERNET=y | 553 | CONFIG_NET_ETHERNET=y |
| 463 | CONFIG_MII=m | 554 | CONFIG_MII=m |
| 464 | # CONFIG_HAPPYMEAL is not set | 555 | # CONFIG_HAPPYMEAL is not set |
| 465 | # CONFIG_SUNGEM is not set | 556 | # CONFIG_SUNGEM is not set |
| 557 | # CONFIG_CASSINI is not set | ||
| 466 | CONFIG_NET_VENDOR_3COM=y | 558 | CONFIG_NET_VENDOR_3COM=y |
| 467 | CONFIG_VORTEX=m | 559 | CONFIG_VORTEX=m |
| 468 | CONFIG_TYPHOON=m | 560 | CONFIG_TYPHOON=m |
| @@ -479,6 +571,7 @@ CONFIG_TULIP_MMIO=y | |||
| 479 | # CONFIG_DE4X5 is not set | 571 | # CONFIG_DE4X5 is not set |
| 480 | # CONFIG_WINBOND_840 is not set | 572 | # CONFIG_WINBOND_840 is not set |
| 481 | # CONFIG_DM9102 is not set | 573 | # CONFIG_DM9102 is not set |
| 574 | # CONFIG_ULI526X is not set | ||
| 482 | CONFIG_PCMCIA_XIRCOM=m | 575 | CONFIG_PCMCIA_XIRCOM=m |
| 483 | # CONFIG_PCMCIA_XIRTULIP is not set | 576 | # CONFIG_PCMCIA_XIRTULIP is not set |
| 484 | CONFIG_HP100=m | 577 | CONFIG_HP100=m |
| @@ -489,48 +582,43 @@ CONFIG_PCNET32=m | |||
| 489 | # CONFIG_B44 is not set | 582 | # CONFIG_B44 is not set |
| 490 | # CONFIG_FORCEDETH is not set | 583 | # CONFIG_FORCEDETH is not set |
| 491 | # CONFIG_DGRS is not set | 584 | # CONFIG_DGRS is not set |
| 492 | CONFIG_EEPRO100=m | 585 | # CONFIG_EEPRO100 is not set |
| 493 | CONFIG_E100=m | 586 | CONFIG_E100=m |
| 494 | CONFIG_E100_NAPI=y | ||
| 495 | # CONFIG_FEALNX is not set | 587 | # CONFIG_FEALNX is not set |
| 496 | CONFIG_NATSEMI=m | 588 | # CONFIG_NATSEMI is not set |
| 497 | # CONFIG_NE2K_PCI is not set | 589 | # CONFIG_NE2K_PCI is not set |
| 498 | # CONFIG_8139CP is not set | 590 | # CONFIG_8139CP is not set |
| 499 | CONFIG_8139TOO=m | 591 | # CONFIG_8139TOO is not set |
| 500 | # CONFIG_8139TOO_PIO is not set | ||
| 501 | # CONFIG_8139TOO_TUNE_TWISTER is not set | ||
| 502 | # CONFIG_8139TOO_8129 is not set | ||
| 503 | # CONFIG_8139_OLD_RX_RESET is not set | ||
| 504 | # CONFIG_SIS900 is not set | 592 | # CONFIG_SIS900 is not set |
| 505 | CONFIG_EPIC100=m | 593 | # CONFIG_EPIC100 is not set |
| 506 | # CONFIG_SUNDANCE is not set | 594 | # CONFIG_SUNDANCE is not set |
| 507 | CONFIG_VIA_RHINE=m | 595 | # CONFIG_VIA_RHINE is not set |
| 508 | CONFIG_VIA_RHINE_MMIO=y | ||
| 509 | 596 | ||
| 510 | # | 597 | # |
| 511 | # Ethernet (1000 Mbit) | 598 | # Ethernet (1000 Mbit) |
| 512 | # | 599 | # |
| 513 | CONFIG_ACENIC=m | 600 | CONFIG_ACENIC=m |
| 514 | CONFIG_ACENIC_OMIT_TIGON_I=y | 601 | CONFIG_ACENIC_OMIT_TIGON_I=y |
| 515 | CONFIG_DL2K=m | 602 | # CONFIG_DL2K is not set |
| 516 | CONFIG_E1000=m | 603 | CONFIG_E1000=m |
| 517 | CONFIG_E1000_NAPI=y | 604 | CONFIG_E1000_NAPI=y |
| 518 | # CONFIG_NS83820 is not set | 605 | # CONFIG_NS83820 is not set |
| 519 | # CONFIG_HAMACHI is not set | 606 | # CONFIG_HAMACHI is not set |
| 520 | # CONFIG_YELLOWFIN is not set | 607 | # CONFIG_YELLOWFIN is not set |
| 521 | # CONFIG_R8169 is not set | 608 | # CONFIG_R8169 is not set |
| 609 | # CONFIG_SIS190 is not set | ||
| 610 | # CONFIG_SKGE is not set | ||
| 522 | # CONFIG_SK98LIN is not set | 611 | # CONFIG_SK98LIN is not set |
| 523 | # CONFIG_VIA_VELOCITY is not set | 612 | # CONFIG_VIA_VELOCITY is not set |
| 524 | CONFIG_TIGON3=m | 613 | CONFIG_TIGON3=m |
| 614 | # CONFIG_BNX2 is not set | ||
| 525 | 615 | ||
| 526 | # | 616 | # |
| 527 | # Ethernet (10000 Mbit) | 617 | # Ethernet (10000 Mbit) |
| 528 | # | 618 | # |
| 529 | CONFIG_IXGB=m | 619 | # CONFIG_CHELSIO_T1 is not set |
| 530 | CONFIG_IXGB_NAPI=y | 620 | # CONFIG_IXGB is not set |
| 531 | CONFIG_S2IO=m | 621 | # CONFIG_S2IO is not set |
| 532 | CONFIG_S2IO_NAPI=y | ||
| 533 | # CONFIG_2BUFF_MODE is not set | ||
| 534 | 622 | ||
| 535 | # | 623 | # |
| 536 | # Token Ring devices | 624 | # Token Ring devices |
| @@ -560,6 +648,7 @@ CONFIG_PCMCIA_RAYCS=m | |||
| 560 | CONFIG_HERMES=m | 648 | CONFIG_HERMES=m |
| 561 | CONFIG_PLX_HERMES=m | 649 | CONFIG_PLX_HERMES=m |
| 562 | CONFIG_TMD_HERMES=m | 650 | CONFIG_TMD_HERMES=m |
| 651 | # CONFIG_NORTEL_HERMES is not set | ||
| 563 | CONFIG_PCI_HERMES=m | 652 | CONFIG_PCI_HERMES=m |
| 564 | # CONFIG_ATMEL is not set | 653 | # CONFIG_ATMEL is not set |
| 565 | 654 | ||
| @@ -567,6 +656,7 @@ CONFIG_PCI_HERMES=m | |||
| 567 | # Wireless 802.11b Pcmcia/Cardbus cards support | 656 | # Wireless 802.11b Pcmcia/Cardbus cards support |
| 568 | # | 657 | # |
| 569 | CONFIG_PCMCIA_HERMES=m | 658 | CONFIG_PCMCIA_HERMES=m |
| 659 | # CONFIG_PCMCIA_SPECTRUM is not set | ||
| 570 | CONFIG_AIRO_CS=m | 660 | CONFIG_AIRO_CS=m |
| 571 | CONFIG_PCMCIA_WL3501=m | 661 | CONFIG_PCMCIA_WL3501=m |
| 572 | 662 | ||
| @@ -574,6 +664,7 @@ CONFIG_PCMCIA_WL3501=m | |||
| 574 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support | 664 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support |
| 575 | # | 665 | # |
| 576 | # CONFIG_PRISM54 is not set | 666 | # CONFIG_PRISM54 is not set |
| 667 | # CONFIG_HOSTAP is not set | ||
| 577 | CONFIG_NET_WIRELESS=y | 668 | CONFIG_NET_WIRELESS=y |
| 578 | 669 | ||
| 579 | # | 670 | # |
| @@ -607,6 +698,8 @@ CONFIG_PPP_BSDCOMP=m | |||
| 607 | # CONFIG_NET_FC is not set | 698 | # CONFIG_NET_FC is not set |
| 608 | # CONFIG_SHAPER is not set | 699 | # CONFIG_SHAPER is not set |
| 609 | # CONFIG_NETCONSOLE is not set | 700 | # CONFIG_NETCONSOLE is not set |
| 701 | # CONFIG_NETPOLL is not set | ||
| 702 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 610 | 703 | ||
| 611 | # | 704 | # |
| 612 | # ISDN subsystem | 705 | # ISDN subsystem |
| @@ -633,13 +726,6 @@ CONFIG_INPUT=y | |||
| 633 | # CONFIG_INPUT_EVBUG is not set | 726 | # CONFIG_INPUT_EVBUG is not set |
| 634 | 727 | ||
| 635 | # | 728 | # |
| 636 | # Input I/O drivers | ||
| 637 | # | ||
| 638 | # CONFIG_GAMEPORT is not set | ||
| 639 | CONFIG_SOUND_GAMEPORT=y | ||
| 640 | # CONFIG_SERIO is not set | ||
| 641 | |||
| 642 | # | ||
| 643 | # Input Device Drivers | 729 | # Input Device Drivers |
| 644 | # | 730 | # |
| 645 | # CONFIG_INPUT_KEYBOARD is not set | 731 | # CONFIG_INPUT_KEYBOARD is not set |
| @@ -649,6 +735,12 @@ CONFIG_SOUND_GAMEPORT=y | |||
| 649 | # CONFIG_INPUT_MISC is not set | 735 | # CONFIG_INPUT_MISC is not set |
| 650 | 736 | ||
| 651 | # | 737 | # |
| 738 | # Hardware I/O ports | ||
| 739 | # | ||
| 740 | # CONFIG_SERIO is not set | ||
| 741 | # CONFIG_GAMEPORT is not set | ||
| 742 | |||
| 743 | # | ||
| 652 | # Character devices | 744 | # Character devices |
| 653 | # | 745 | # |
| 654 | CONFIG_VT=y | 746 | CONFIG_VT=y |
| @@ -667,7 +759,6 @@ CONFIG_SERIAL_8250_EXTENDED=y | |||
| 667 | CONFIG_SERIAL_8250_MANY_PORTS=y | 759 | CONFIG_SERIAL_8250_MANY_PORTS=y |
| 668 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 760 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
| 669 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 761 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
| 670 | # CONFIG_SERIAL_8250_MULTIPORT is not set | ||
| 671 | # CONFIG_SERIAL_8250_RSA is not set | 762 | # CONFIG_SERIAL_8250_RSA is not set |
| 672 | 763 | ||
| 673 | # | 764 | # |
| @@ -677,6 +768,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y | |||
| 677 | CONFIG_PDC_CONSOLE=y | 768 | CONFIG_PDC_CONSOLE=y |
| 678 | CONFIG_SERIAL_CORE=y | 769 | CONFIG_SERIAL_CORE=y |
| 679 | CONFIG_SERIAL_CORE_CONSOLE=y | 770 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 771 | # CONFIG_SERIAL_JSM is not set | ||
| 680 | CONFIG_UNIX98_PTYS=y | 772 | CONFIG_UNIX98_PTYS=y |
| 681 | # CONFIG_LEGACY_PTYS is not set | 773 | # CONFIG_LEGACY_PTYS is not set |
| 682 | 774 | ||
| @@ -708,6 +800,11 @@ CONFIG_RAW_DRIVER=y | |||
| 708 | CONFIG_MAX_RAW_DEVS=256 | 800 | CONFIG_MAX_RAW_DEVS=256 |
| 709 | 801 | ||
| 710 | # | 802 | # |
| 803 | # TPM devices | ||
| 804 | # | ||
| 805 | # CONFIG_TCG_TPM is not set | ||
| 806 | |||
| 807 | # | ||
| 711 | # I2C support | 808 | # I2C support |
| 712 | # | 809 | # |
| 713 | # CONFIG_I2C is not set | 810 | # CONFIG_I2C is not set |
| @@ -718,10 +815,20 @@ CONFIG_MAX_RAW_DEVS=256 | |||
| 718 | # CONFIG_W1 is not set | 815 | # CONFIG_W1 is not set |
| 719 | 816 | ||
| 720 | # | 817 | # |
| 818 | # Hardware Monitoring support | ||
| 819 | # | ||
| 820 | # CONFIG_HWMON is not set | ||
| 821 | # CONFIG_HWMON_VID is not set | ||
| 822 | |||
| 823 | # | ||
| 721 | # Misc devices | 824 | # Misc devices |
| 722 | # | 825 | # |
| 723 | 826 | ||
| 724 | # | 827 | # |
| 828 | # Multimedia Capabilities Port drivers | ||
| 829 | # | ||
| 830 | |||
| 831 | # | ||
| 725 | # Multimedia devices | 832 | # Multimedia devices |
| 726 | # | 833 | # |
| 727 | # CONFIG_VIDEO_DEV is not set | 834 | # CONFIG_VIDEO_DEV is not set |
| @@ -742,6 +849,7 @@ CONFIG_MAX_RAW_DEVS=256 | |||
| 742 | CONFIG_DUMMY_CONSOLE=y | 849 | CONFIG_DUMMY_CONSOLE=y |
| 743 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 | 850 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 |
| 744 | CONFIG_DUMMY_CONSOLE_ROWS=64 | 851 | CONFIG_DUMMY_CONSOLE_ROWS=64 |
| 852 | # CONFIG_STI_CONSOLE is not set | ||
| 745 | 853 | ||
| 746 | # | 854 | # |
| 747 | # Sound | 855 | # Sound |
| @@ -751,13 +859,9 @@ CONFIG_DUMMY_CONSOLE_ROWS=64 | |||
| 751 | # | 859 | # |
| 752 | # USB support | 860 | # USB support |
| 753 | # | 861 | # |
| 754 | # CONFIG_USB is not set | ||
| 755 | CONFIG_USB_ARCH_HAS_HCD=y | 862 | CONFIG_USB_ARCH_HAS_HCD=y |
| 756 | CONFIG_USB_ARCH_HAS_OHCI=y | 863 | CONFIG_USB_ARCH_HAS_OHCI=y |
| 757 | 864 | # CONFIG_USB is not set | |
| 758 | # | ||
| 759 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
| 760 | # | ||
| 761 | 865 | ||
| 762 | # | 866 | # |
| 763 | # USB Gadget Support | 867 | # USB Gadget Support |
| @@ -772,17 +876,18 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
| 772 | # | 876 | # |
| 773 | # InfiniBand support | 877 | # InfiniBand support |
| 774 | # | 878 | # |
| 775 | CONFIG_INFINIBAND=m | 879 | # CONFIG_INFINIBAND is not set |
| 776 | CONFIG_INFINIBAND_MTHCA=m | 880 | |
| 777 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set | 881 | # |
| 778 | CONFIG_INFINIBAND_IPOIB=m | 882 | # SN Devices |
| 779 | # CONFIG_INFINIBAND_IPOIB_DEBUG is not set | 883 | # |
| 780 | 884 | ||
| 781 | # | 885 | # |
| 782 | # File systems | 886 | # File systems |
| 783 | # | 887 | # |
| 784 | CONFIG_EXT2_FS=y | 888 | CONFIG_EXT2_FS=y |
| 785 | # CONFIG_EXT2_FS_XATTR is not set | 889 | # CONFIG_EXT2_FS_XATTR is not set |
| 890 | # CONFIG_EXT2_FS_XIP is not set | ||
| 786 | CONFIG_EXT3_FS=y | 891 | CONFIG_EXT3_FS=y |
| 787 | # CONFIG_EXT3_FS_XATTR is not set | 892 | # CONFIG_EXT3_FS_XATTR is not set |
| 788 | CONFIG_JBD=y | 893 | CONFIG_JBD=y |
| @@ -794,22 +899,20 @@ CONFIG_JFS_FS=m | |||
| 794 | # CONFIG_JFS_DEBUG is not set | 899 | # CONFIG_JFS_DEBUG is not set |
| 795 | # CONFIG_JFS_STATISTICS is not set | 900 | # CONFIG_JFS_STATISTICS is not set |
| 796 | CONFIG_FS_POSIX_ACL=y | 901 | CONFIG_FS_POSIX_ACL=y |
| 797 | |||
| 798 | # | ||
| 799 | # XFS support | ||
| 800 | # | ||
| 801 | CONFIG_XFS_FS=m | 902 | CONFIG_XFS_FS=m |
| 802 | CONFIG_XFS_EXPORT=y | 903 | CONFIG_XFS_EXPORT=y |
| 803 | # CONFIG_XFS_RT is not set | ||
| 804 | # CONFIG_XFS_QUOTA is not set | 904 | # CONFIG_XFS_QUOTA is not set |
| 805 | # CONFIG_XFS_SECURITY is not set | 905 | # CONFIG_XFS_SECURITY is not set |
| 806 | # CONFIG_XFS_POSIX_ACL is not set | 906 | # CONFIG_XFS_POSIX_ACL is not set |
| 907 | # CONFIG_XFS_RT is not set | ||
| 807 | # CONFIG_MINIX_FS is not set | 908 | # CONFIG_MINIX_FS is not set |
| 808 | # CONFIG_ROMFS_FS is not set | 909 | # CONFIG_ROMFS_FS is not set |
| 910 | CONFIG_INOTIFY=y | ||
| 809 | # CONFIG_QUOTA is not set | 911 | # CONFIG_QUOTA is not set |
| 810 | CONFIG_DNOTIFY=y | 912 | CONFIG_DNOTIFY=y |
| 811 | # CONFIG_AUTOFS_FS is not set | 913 | # CONFIG_AUTOFS_FS is not set |
| 812 | CONFIG_AUTOFS4_FS=y | 914 | CONFIG_AUTOFS4_FS=y |
| 915 | # CONFIG_FUSE_FS is not set | ||
| 813 | 916 | ||
| 814 | # | 917 | # |
| 815 | # CD-ROM/DVD Filesystems | 918 | # CD-ROM/DVD Filesystems |
| @@ -836,13 +939,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 836 | CONFIG_PROC_FS=y | 939 | CONFIG_PROC_FS=y |
| 837 | CONFIG_PROC_KCORE=y | 940 | CONFIG_PROC_KCORE=y |
| 838 | CONFIG_SYSFS=y | 941 | CONFIG_SYSFS=y |
| 839 | # CONFIG_DEVFS_FS is not set | ||
| 840 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
| 841 | CONFIG_TMPFS=y | 942 | CONFIG_TMPFS=y |
| 842 | # CONFIG_TMPFS_XATTR is not set | ||
| 843 | # CONFIG_HUGETLBFS is not set | 943 | # CONFIG_HUGETLBFS is not set |
| 844 | # CONFIG_HUGETLB_PAGE is not set | 944 | # CONFIG_HUGETLB_PAGE is not set |
| 845 | CONFIG_RAMFS=y | 945 | CONFIG_RAMFS=y |
| 946 | # CONFIG_RELAYFS_FS is not set | ||
| 846 | 947 | ||
| 847 | # | 948 | # |
| 848 | # Miscellaneous filesystems | 949 | # Miscellaneous filesystems |
| @@ -867,15 +968,18 @@ CONFIG_UFS_FS=m | |||
| 867 | # | 968 | # |
| 868 | CONFIG_NFS_FS=m | 969 | CONFIG_NFS_FS=m |
| 869 | CONFIG_NFS_V3=y | 970 | CONFIG_NFS_V3=y |
| 971 | # CONFIG_NFS_V3_ACL is not set | ||
| 870 | CONFIG_NFS_V4=y | 972 | CONFIG_NFS_V4=y |
| 871 | CONFIG_NFS_DIRECTIO=y | 973 | CONFIG_NFS_DIRECTIO=y |
| 872 | CONFIG_NFSD=m | 974 | CONFIG_NFSD=m |
| 873 | CONFIG_NFSD_V3=y | 975 | CONFIG_NFSD_V3=y |
| 976 | # CONFIG_NFSD_V3_ACL is not set | ||
| 874 | CONFIG_NFSD_V4=y | 977 | CONFIG_NFSD_V4=y |
| 875 | CONFIG_NFSD_TCP=y | 978 | CONFIG_NFSD_TCP=y |
| 876 | CONFIG_LOCKD=m | 979 | CONFIG_LOCKD=m |
| 877 | CONFIG_LOCKD_V4=y | 980 | CONFIG_LOCKD_V4=y |
| 878 | CONFIG_EXPORTFS=m | 981 | CONFIG_EXPORTFS=m |
| 982 | CONFIG_NFS_COMMON=y | ||
| 879 | CONFIG_SUNRPC=m | 983 | CONFIG_SUNRPC=m |
| 880 | CONFIG_SUNRPC_GSS=m | 984 | CONFIG_SUNRPC_GSS=m |
| 881 | CONFIG_RPCSEC_GSS_KRB5=m | 985 | CONFIG_RPCSEC_GSS_KRB5=m |
| @@ -890,6 +994,7 @@ CONFIG_CIFS=m | |||
| 890 | # CONFIG_NCP_FS is not set | 994 | # CONFIG_NCP_FS is not set |
| 891 | # CONFIG_CODA_FS is not set | 995 | # CONFIG_CODA_FS is not set |
| 892 | # CONFIG_AFS_FS is not set | 996 | # CONFIG_AFS_FS is not set |
| 997 | # CONFIG_9P_FS is not set | ||
| 893 | 998 | ||
| 894 | # | 999 | # |
| 895 | # Partition Types | 1000 | # Partition Types |
| @@ -906,15 +1011,15 @@ CONFIG_NLS_CODEPAGE_437=m | |||
| 906 | # CONFIG_NLS_CODEPAGE_737 is not set | 1011 | # CONFIG_NLS_CODEPAGE_737 is not set |
| 907 | # CONFIG_NLS_CODEPAGE_775 is not set | 1012 | # CONFIG_NLS_CODEPAGE_775 is not set |
| 908 | CONFIG_NLS_CODEPAGE_850=m | 1013 | CONFIG_NLS_CODEPAGE_850=m |
| 909 | CONFIG_NLS_CODEPAGE_852=m | 1014 | # CONFIG_NLS_CODEPAGE_852 is not set |
| 910 | # CONFIG_NLS_CODEPAGE_855 is not set | 1015 | # CONFIG_NLS_CODEPAGE_855 is not set |
| 911 | # CONFIG_NLS_CODEPAGE_857 is not set | 1016 | # CONFIG_NLS_CODEPAGE_857 is not set |
| 912 | # CONFIG_NLS_CODEPAGE_860 is not set | 1017 | # CONFIG_NLS_CODEPAGE_860 is not set |
| 913 | # CONFIG_NLS_CODEPAGE_861 is not set | 1018 | # CONFIG_NLS_CODEPAGE_861 is not set |
| 914 | # CONFIG_NLS_CODEPAGE_862 is not set | 1019 | # CONFIG_NLS_CODEPAGE_862 is not set |
| 915 | CONFIG_NLS_CODEPAGE_863=m | 1020 | # CONFIG_NLS_CODEPAGE_863 is not set |
| 916 | # CONFIG_NLS_CODEPAGE_864 is not set | 1021 | # CONFIG_NLS_CODEPAGE_864 is not set |
| 917 | CONFIG_NLS_CODEPAGE_865=m | 1022 | # CONFIG_NLS_CODEPAGE_865 is not set |
| 918 | # CONFIG_NLS_CODEPAGE_866 is not set | 1023 | # CONFIG_NLS_CODEPAGE_866 is not set |
| 919 | # CONFIG_NLS_CODEPAGE_869 is not set | 1024 | # CONFIG_NLS_CODEPAGE_869 is not set |
| 920 | # CONFIG_NLS_CODEPAGE_936 is not set | 1025 | # CONFIG_NLS_CODEPAGE_936 is not set |
| @@ -926,10 +1031,10 @@ CONFIG_NLS_CODEPAGE_865=m | |||
| 926 | # CONFIG_NLS_CODEPAGE_1250 is not set | 1031 | # CONFIG_NLS_CODEPAGE_1250 is not set |
| 927 | # CONFIG_NLS_CODEPAGE_1251 is not set | 1032 | # CONFIG_NLS_CODEPAGE_1251 is not set |
| 928 | # CONFIG_NLS_ASCII is not set | 1033 | # CONFIG_NLS_ASCII is not set |
| 929 | CONFIG_NLS_ISO8859_1=m | 1034 | # CONFIG_NLS_ISO8859_1 is not set |
| 930 | CONFIG_NLS_ISO8859_2=m | 1035 | # CONFIG_NLS_ISO8859_2 is not set |
| 931 | CONFIG_NLS_ISO8859_3=m | 1036 | # CONFIG_NLS_ISO8859_3 is not set |
| 932 | CONFIG_NLS_ISO8859_4=m | 1037 | # CONFIG_NLS_ISO8859_4 is not set |
| 933 | # CONFIG_NLS_ISO8859_5 is not set | 1038 | # CONFIG_NLS_ISO8859_5 is not set |
| 934 | # CONFIG_NLS_ISO8859_6 is not set | 1039 | # CONFIG_NLS_ISO8859_6 is not set |
| 935 | # CONFIG_NLS_ISO8859_7 is not set | 1040 | # CONFIG_NLS_ISO8859_7 is not set |
| @@ -950,11 +1055,15 @@ CONFIG_OPROFILE=m | |||
| 950 | # | 1055 | # |
| 951 | # Kernel hacking | 1056 | # Kernel hacking |
| 952 | # | 1057 | # |
| 1058 | # CONFIG_PRINTK_TIME is not set | ||
| 953 | CONFIG_DEBUG_KERNEL=y | 1059 | CONFIG_DEBUG_KERNEL=y |
| 954 | CONFIG_MAGIC_SYSRQ=y | 1060 | CONFIG_MAGIC_SYSRQ=y |
| 1061 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 1062 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 955 | # CONFIG_SCHEDSTATS is not set | 1063 | # CONFIG_SCHEDSTATS is not set |
| 956 | # CONFIG_DEBUG_SLAB is not set | 1064 | # CONFIG_DEBUG_SLAB is not set |
| 957 | # CONFIG_DEBUG_SPINLOCK is not set | 1065 | # CONFIG_DEBUG_SPINLOCK is not set |
| 1066 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 958 | # CONFIG_DEBUG_KOBJECT is not set | 1067 | # CONFIG_DEBUG_KOBJECT is not set |
| 959 | # CONFIG_DEBUG_INFO is not set | 1068 | # CONFIG_DEBUG_INFO is not set |
| 960 | # CONFIG_DEBUG_IOREMAP is not set | 1069 | # CONFIG_DEBUG_IOREMAP is not set |
| @@ -974,25 +1083,26 @@ CONFIG_KEYS_DEBUG_PROC_KEYS=y | |||
| 974 | CONFIG_CRYPTO=y | 1083 | CONFIG_CRYPTO=y |
| 975 | CONFIG_CRYPTO_HMAC=y | 1084 | CONFIG_CRYPTO_HMAC=y |
| 976 | CONFIG_CRYPTO_NULL=m | 1085 | CONFIG_CRYPTO_NULL=m |
| 977 | CONFIG_CRYPTO_MD4=m | 1086 | # CONFIG_CRYPTO_MD4 is not set |
| 978 | CONFIG_CRYPTO_MD5=m | 1087 | CONFIG_CRYPTO_MD5=y |
| 979 | CONFIG_CRYPTO_SHA1=m | 1088 | CONFIG_CRYPTO_SHA1=m |
| 980 | CONFIG_CRYPTO_SHA256=m | 1089 | # CONFIG_CRYPTO_SHA256 is not set |
| 981 | CONFIG_CRYPTO_SHA512=m | 1090 | # CONFIG_CRYPTO_SHA512 is not set |
| 982 | CONFIG_CRYPTO_WP512=m | 1091 | # CONFIG_CRYPTO_WP512 is not set |
| 1092 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 983 | CONFIG_CRYPTO_DES=m | 1093 | CONFIG_CRYPTO_DES=m |
| 984 | CONFIG_CRYPTO_BLOWFISH=m | 1094 | CONFIG_CRYPTO_BLOWFISH=m |
| 985 | CONFIG_CRYPTO_TWOFISH=m | 1095 | # CONFIG_CRYPTO_TWOFISH is not set |
| 986 | CONFIG_CRYPTO_SERPENT=m | 1096 | # CONFIG_CRYPTO_SERPENT is not set |
| 987 | CONFIG_CRYPTO_AES=m | 1097 | # CONFIG_CRYPTO_AES is not set |
| 988 | CONFIG_CRYPTO_CAST5=m | 1098 | # CONFIG_CRYPTO_CAST5 is not set |
| 989 | CONFIG_CRYPTO_CAST6=m | 1099 | # CONFIG_CRYPTO_CAST6 is not set |
| 990 | CONFIG_CRYPTO_TEA=m | 1100 | # CONFIG_CRYPTO_TEA is not set |
| 991 | CONFIG_CRYPTO_ARC4=m | 1101 | # CONFIG_CRYPTO_ARC4 is not set |
| 992 | CONFIG_CRYPTO_KHAZAD=m | 1102 | # CONFIG_CRYPTO_KHAZAD is not set |
| 993 | CONFIG_CRYPTO_ANUBIS=m | 1103 | # CONFIG_CRYPTO_ANUBIS is not set |
| 994 | CONFIG_CRYPTO_DEFLATE=m | 1104 | CONFIG_CRYPTO_DEFLATE=m |
| 995 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1105 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
| 996 | CONFIG_CRYPTO_CRC32C=m | 1106 | CONFIG_CRYPTO_CRC32C=m |
| 997 | CONFIG_CRYPTO_TEST=m | 1107 | CONFIG_CRYPTO_TEST=m |
| 998 | 1108 | ||
| @@ -1004,6 +1114,7 @@ CONFIG_CRYPTO_TEST=m | |||
| 1004 | # Library routines | 1114 | # Library routines |
| 1005 | # | 1115 | # |
| 1006 | CONFIG_CRC_CCITT=m | 1116 | CONFIG_CRC_CCITT=m |
| 1117 | # CONFIG_CRC16 is not set | ||
| 1007 | CONFIG_CRC32=y | 1118 | CONFIG_CRC32=y |
| 1008 | CONFIG_LIBCRC32C=m | 1119 | CONFIG_LIBCRC32C=m |
| 1009 | CONFIG_ZLIB_INFLATE=m | 1120 | CONFIG_ZLIB_INFLATE=m |
diff --git a/arch/parisc/configs/b180_defconfig b/arch/parisc/configs/b180_defconfig index 46c9511f3229..8819e7e6ae3f 100644 --- a/arch/parisc/configs/b180_defconfig +++ b/arch/parisc/configs/b180_defconfig | |||
| @@ -1,12 +1,15 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.10-pa5 | 3 | # Linux kernel version: 2.6.14-rc5-pa1 |
| 4 | # Wed Jan 5 13:35:54 2005 | 4 | # Fri Oct 21 23:06:10 2005 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_STACK_GROWSUP=y | 8 | CONFIG_STACK_GROWSUP=y |
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 11 | CONFIG_GENERIC_HARDIRQS=y | ||
| 12 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 10 | 13 | ||
| 11 | # | 14 | # |
| 12 | # Code maturity level options | 15 | # Code maturity level options |
| @@ -14,33 +17,39 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y | |||
| 14 | # CONFIG_EXPERIMENTAL is not set | 17 | # CONFIG_EXPERIMENTAL is not set |
| 15 | CONFIG_CLEAN_COMPILE=y | 18 | CONFIG_CLEAN_COMPILE=y |
| 16 | CONFIG_BROKEN_ON_SMP=y | 19 | CONFIG_BROKEN_ON_SMP=y |
| 20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 17 | 21 | ||
| 18 | # | 22 | # |
| 19 | # General setup | 23 | # General setup |
| 20 | # | 24 | # |
| 21 | CONFIG_LOCALVERSION="" | 25 | CONFIG_LOCALVERSION="" |
| 26 | # CONFIG_LOCALVERSION_AUTO is not set | ||
| 22 | CONFIG_SWAP=y | 27 | CONFIG_SWAP=y |
| 23 | CONFIG_SYSVIPC=y | 28 | CONFIG_SYSVIPC=y |
| 24 | # CONFIG_BSD_PROCESS_ACCT is not set | 29 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 25 | CONFIG_SYSCTL=y | 30 | CONFIG_SYSCTL=y |
| 26 | # CONFIG_AUDIT is not set | 31 | # CONFIG_AUDIT is not set |
| 27 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 28 | # CONFIG_HOTPLUG is not set | 32 | # CONFIG_HOTPLUG is not set |
| 29 | CONFIG_KOBJECT_UEVENT=y | 33 | CONFIG_KOBJECT_UEVENT=y |
| 30 | # CONFIG_IKCONFIG is not set | 34 | CONFIG_IKCONFIG=y |
| 35 | CONFIG_IKCONFIG_PROC=y | ||
| 36 | CONFIG_INITRAMFS_SOURCE="" | ||
| 31 | # CONFIG_EMBEDDED is not set | 37 | # CONFIG_EMBEDDED is not set |
| 32 | CONFIG_KALLSYMS=y | 38 | CONFIG_KALLSYMS=y |
| 33 | # CONFIG_KALLSYMS_ALL is not set | 39 | # CONFIG_KALLSYMS_ALL is not set |
| 34 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
| 41 | CONFIG_PRINTK=y | ||
| 42 | CONFIG_BUG=y | ||
| 43 | CONFIG_BASE_FULL=y | ||
| 35 | CONFIG_FUTEX=y | 44 | CONFIG_FUTEX=y |
| 36 | CONFIG_EPOLL=y | 45 | CONFIG_EPOLL=y |
| 37 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
| 38 | CONFIG_SHMEM=y | 46 | CONFIG_SHMEM=y |
| 39 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 47 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
| 40 | CONFIG_CC_ALIGN_LABELS=0 | 48 | CONFIG_CC_ALIGN_LABELS=0 |
| 41 | CONFIG_CC_ALIGN_LOOPS=0 | 49 | CONFIG_CC_ALIGN_LOOPS=0 |
| 42 | CONFIG_CC_ALIGN_JUMPS=0 | 50 | CONFIG_CC_ALIGN_JUMPS=0 |
| 43 | # CONFIG_TINY_SHMEM is not set | 51 | # CONFIG_TINY_SHMEM is not set |
| 52 | CONFIG_BASE_SMALL=0 | ||
| 44 | 53 | ||
| 45 | # | 54 | # |
| 46 | # Loadable module support | 55 | # Loadable module support |
| @@ -60,8 +69,14 @@ CONFIG_PA7100LC=y | |||
| 60 | # CONFIG_PA7300LC is not set | 69 | # CONFIG_PA7300LC is not set |
| 61 | # CONFIG_PA8X00 is not set | 70 | # CONFIG_PA8X00 is not set |
| 62 | CONFIG_PA11=y | 71 | CONFIG_PA11=y |
| 63 | # CONFIG_64BIT is not set | ||
| 64 | # CONFIG_SMP is not set | 72 | # CONFIG_SMP is not set |
| 73 | # CONFIG_HZ_100 is not set | ||
| 74 | CONFIG_HZ_250=y | ||
| 75 | # CONFIG_HZ_1000 is not set | ||
| 76 | CONFIG_HZ=250 | ||
| 77 | CONFIG_FLATMEM=y | ||
| 78 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 79 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 65 | # CONFIG_PREEMPT is not set | 80 | # CONFIG_PREEMPT is not set |
| 66 | # CONFIG_HPUX is not set | 81 | # CONFIG_HPUX is not set |
| 67 | 82 | ||
| @@ -78,11 +93,25 @@ CONFIG_EISA_NAMES=y | |||
| 78 | CONFIG_ISA=y | 93 | CONFIG_ISA=y |
| 79 | CONFIG_PCI=y | 94 | CONFIG_PCI=y |
| 80 | CONFIG_PCI_LEGACY_PROC=y | 95 | CONFIG_PCI_LEGACY_PROC=y |
| 81 | CONFIG_PCI_NAMES=y | 96 | # CONFIG_PCI_DEBUG is not set |
| 82 | CONFIG_GSC_DINO=y | 97 | CONFIG_GSC_DINO=y |
| 83 | # CONFIG_PCI_LBA is not set | 98 | # CONFIG_PCI_LBA is not set |
| 99 | |||
| 100 | # | ||
| 101 | # PCCARD (PCMCIA/CardBus) support | ||
| 102 | # | ||
| 103 | # CONFIG_PCCARD is not set | ||
| 104 | |||
| 105 | # | ||
| 106 | # PCI Hotplug Support | ||
| 107 | # | ||
| 108 | |||
| 109 | # | ||
| 110 | # PA-RISC specific drivers | ||
| 111 | # | ||
| 84 | CONFIG_CHASSIS_LCD_LED=y | 112 | CONFIG_CHASSIS_LCD_LED=y |
| 85 | # CONFIG_PDC_CHASSIS is not set | 113 | # CONFIG_PDC_CHASSIS is not set |
| 114 | CONFIG_PDC_STABLE=y | ||
| 86 | 115 | ||
| 87 | # | 116 | # |
| 88 | # Executable file formats | 117 | # Executable file formats |
| @@ -91,6 +120,64 @@ CONFIG_BINFMT_ELF=y | |||
| 91 | # CONFIG_BINFMT_MISC is not set | 120 | # CONFIG_BINFMT_MISC is not set |
| 92 | 121 | ||
| 93 | # | 122 | # |
| 123 | # Networking | ||
| 124 | # | ||
| 125 | CONFIG_NET=y | ||
| 126 | |||
| 127 | # | ||
| 128 | # Networking options | ||
| 129 | # | ||
| 130 | CONFIG_PACKET=y | ||
| 131 | CONFIG_PACKET_MMAP=y | ||
| 132 | CONFIG_UNIX=y | ||
| 133 | # CONFIG_NET_KEY is not set | ||
| 134 | CONFIG_INET=y | ||
| 135 | CONFIG_IP_MULTICAST=y | ||
| 136 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 137 | CONFIG_IP_FIB_HASH=y | ||
| 138 | CONFIG_IP_PNP=y | ||
| 139 | # CONFIG_IP_PNP_DHCP is not set | ||
| 140 | CONFIG_IP_PNP_BOOTP=y | ||
| 141 | # CONFIG_IP_PNP_RARP is not set | ||
| 142 | # CONFIG_NET_IPIP is not set | ||
| 143 | # CONFIG_NET_IPGRE is not set | ||
| 144 | # CONFIG_IP_MROUTE is not set | ||
| 145 | # CONFIG_SYN_COOKIES is not set | ||
| 146 | # CONFIG_INET_AH is not set | ||
| 147 | # CONFIG_INET_ESP is not set | ||
| 148 | # CONFIG_INET_IPCOMP is not set | ||
| 149 | # CONFIG_INET_TUNNEL is not set | ||
| 150 | CONFIG_INET_DIAG=y | ||
| 151 | CONFIG_INET_TCP_DIAG=y | ||
| 152 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 153 | CONFIG_TCP_CONG_BIC=y | ||
| 154 | CONFIG_IPV6=y | ||
| 155 | # CONFIG_IPV6_PRIVACY is not set | ||
| 156 | # CONFIG_INET6_AH is not set | ||
| 157 | # CONFIG_INET6_ESP is not set | ||
| 158 | # CONFIG_INET6_IPCOMP is not set | ||
| 159 | # CONFIG_INET6_TUNNEL is not set | ||
| 160 | # CONFIG_IPV6_TUNNEL is not set | ||
| 161 | # CONFIG_NETFILTER is not set | ||
| 162 | # CONFIG_BRIDGE is not set | ||
| 163 | # CONFIG_VLAN_8021Q is not set | ||
| 164 | # CONFIG_DECNET is not set | ||
| 165 | # CONFIG_LLC2 is not set | ||
| 166 | # CONFIG_IPX is not set | ||
| 167 | # CONFIG_ATALK is not set | ||
| 168 | # CONFIG_NET_SCHED is not set | ||
| 169 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 170 | |||
| 171 | # | ||
| 172 | # Network testing | ||
| 173 | # | ||
| 174 | # CONFIG_NET_PKTGEN is not set | ||
| 175 | # CONFIG_HAMRADIO is not set | ||
| 176 | # CONFIG_IRDA is not set | ||
| 177 | # CONFIG_BT is not set | ||
| 178 | # CONFIG_IEEE80211 is not set | ||
| 179 | |||
| 180 | # | ||
| 94 | # Device Drivers | 181 | # Device Drivers |
| 95 | # | 182 | # |
| 96 | 183 | ||
| @@ -99,9 +186,15 @@ CONFIG_BINFMT_ELF=y | |||
| 99 | # | 186 | # |
| 100 | CONFIG_STANDALONE=y | 187 | CONFIG_STANDALONE=y |
| 101 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 188 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
| 189 | # CONFIG_FW_LOADER is not set | ||
| 102 | # CONFIG_DEBUG_DRIVER is not set | 190 | # CONFIG_DEBUG_DRIVER is not set |
| 103 | 191 | ||
| 104 | # | 192 | # |
| 193 | # Connector - unified userspace <-> kernelspace linker | ||
| 194 | # | ||
| 195 | # CONFIG_CONNECTOR is not set | ||
| 196 | |||
| 197 | # | ||
| 105 | # Memory Technology Devices (MTD) | 198 | # Memory Technology Devices (MTD) |
| 106 | # | 199 | # |
| 107 | # CONFIG_MTD is not set | 200 | # CONFIG_MTD is not set |
| @@ -111,10 +204,8 @@ CONFIG_STANDALONE=y | |||
| 111 | # | 204 | # |
| 112 | CONFIG_PARPORT=y | 205 | CONFIG_PARPORT=y |
| 113 | CONFIG_PARPORT_PC=y | 206 | CONFIG_PARPORT_PC=y |
| 114 | CONFIG_PARPORT_PC_CML1=y | ||
| 115 | # CONFIG_PARPORT_SERIAL is not set | 207 | # CONFIG_PARPORT_SERIAL is not set |
| 116 | CONFIG_PARPORT_GSC=y | 208 | CONFIG_PARPORT_GSC=y |
| 117 | # CONFIG_PARPORT_OTHER is not set | ||
| 118 | # CONFIG_PARPORT_1284 is not set | 209 | # CONFIG_PARPORT_1284 is not set |
| 119 | 210 | ||
| 120 | # | 211 | # |
| @@ -125,19 +216,17 @@ CONFIG_PARPORT_GSC=y | |||
| 125 | # | 216 | # |
| 126 | # Block devices | 217 | # Block devices |
| 127 | # | 218 | # |
| 128 | # CONFIG_BLK_DEV_FD is not set | ||
| 129 | # CONFIG_BLK_DEV_XD is not set | ||
| 130 | # CONFIG_PARIDE is not set | 219 | # CONFIG_PARIDE is not set |
| 131 | # CONFIG_BLK_CPQ_DA is not set | 220 | # CONFIG_BLK_CPQ_DA is not set |
| 132 | # CONFIG_BLK_CPQ_CISS_DA is not set | 221 | # CONFIG_BLK_CPQ_CISS_DA is not set |
| 133 | # CONFIG_BLK_DEV_DAC960 is not set | 222 | # CONFIG_BLK_DEV_DAC960 is not set |
| 223 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 134 | CONFIG_BLK_DEV_LOOP=y | 224 | CONFIG_BLK_DEV_LOOP=y |
| 135 | CONFIG_BLK_DEV_CRYPTOLOOP=y | 225 | CONFIG_BLK_DEV_CRYPTOLOOP=y |
| 136 | # CONFIG_BLK_DEV_NBD is not set | 226 | # CONFIG_BLK_DEV_NBD is not set |
| 137 | # CONFIG_BLK_DEV_SX8 is not set | 227 | # CONFIG_BLK_DEV_SX8 is not set |
| 138 | # CONFIG_BLK_DEV_RAM is not set | 228 | # CONFIG_BLK_DEV_RAM is not set |
| 139 | CONFIG_BLK_DEV_RAM_COUNT=16 | 229 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 140 | CONFIG_INITRAMFS_SOURCE="" | ||
| 141 | CONFIG_CDROM_PKTCDVD=m | 230 | CONFIG_CDROM_PKTCDVD=m |
| 142 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 231 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
| 143 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 232 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
| @@ -149,6 +238,7 @@ CONFIG_IOSCHED_NOOP=y | |||
| 149 | CONFIG_IOSCHED_AS=y | 238 | CONFIG_IOSCHED_AS=y |
| 150 | CONFIG_IOSCHED_DEADLINE=y | 239 | CONFIG_IOSCHED_DEADLINE=y |
| 151 | CONFIG_IOSCHED_CFQ=y | 240 | CONFIG_IOSCHED_CFQ=y |
| 241 | CONFIG_ATA_OVER_ETH=y | ||
| 152 | 242 | ||
| 153 | # | 243 | # |
| 154 | # ATA/ATAPI/MFM/RLL support | 244 | # ATA/ATAPI/MFM/RLL support |
| @@ -158,6 +248,7 @@ CONFIG_IOSCHED_CFQ=y | |||
| 158 | # | 248 | # |
| 159 | # SCSI device support | 249 | # SCSI device support |
| 160 | # | 250 | # |
| 251 | # CONFIG_RAID_ATTRS is not set | ||
| 161 | CONFIG_SCSI=y | 252 | CONFIG_SCSI=y |
| 162 | CONFIG_SCSI_PROC_FS=y | 253 | CONFIG_SCSI_PROC_FS=y |
| 163 | 254 | ||
| @@ -170,6 +261,7 @@ CONFIG_CHR_DEV_ST=y | |||
| 170 | CONFIG_BLK_DEV_SR=y | 261 | CONFIG_BLK_DEV_SR=y |
| 171 | # CONFIG_BLK_DEV_SR_VENDOR is not set | 262 | # CONFIG_BLK_DEV_SR_VENDOR is not set |
| 172 | CONFIG_CHR_DEV_SG=y | 263 | CONFIG_CHR_DEV_SG=y |
| 264 | # CONFIG_CHR_DEV_SCH is not set | ||
| 173 | 265 | ||
| 174 | # | 266 | # |
| 175 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | 267 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs |
| @@ -183,16 +275,16 @@ CONFIG_CHR_DEV_SG=y | |||
| 183 | # | 275 | # |
| 184 | CONFIG_SCSI_SPI_ATTRS=y | 276 | CONFIG_SCSI_SPI_ATTRS=y |
| 185 | # CONFIG_SCSI_FC_ATTRS is not set | 277 | # CONFIG_SCSI_FC_ATTRS is not set |
| 278 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
| 279 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
| 186 | 280 | ||
| 187 | # | 281 | # |
| 188 | # SCSI low-level drivers | 282 | # SCSI low-level drivers |
| 189 | # | 283 | # |
| 190 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 284 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
| 191 | # CONFIG_SCSI_3W_9XXX is not set | 285 | # CONFIG_SCSI_3W_9XXX is not set |
| 192 | # CONFIG_SCSI_7000FASST is not set | ||
| 193 | # CONFIG_SCSI_ACARD is not set | 286 | # CONFIG_SCSI_ACARD is not set |
| 194 | # CONFIG_SCSI_AHA152X is not set | 287 | # CONFIG_SCSI_AHA152X is not set |
| 195 | # CONFIG_SCSI_AHA1542 is not set | ||
| 196 | # CONFIG_SCSI_AHA1740 is not set | 288 | # CONFIG_SCSI_AHA1740 is not set |
| 197 | # CONFIG_SCSI_AACRAID is not set | 289 | # CONFIG_SCSI_AACRAID is not set |
| 198 | # CONFIG_SCSI_AIC7XXX is not set | 290 | # CONFIG_SCSI_AIC7XXX is not set |
| @@ -202,14 +294,11 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 202 | # CONFIG_SCSI_IN2000 is not set | 294 | # CONFIG_SCSI_IN2000 is not set |
| 203 | # CONFIG_MEGARAID_NEWGEN is not set | 295 | # CONFIG_MEGARAID_NEWGEN is not set |
| 204 | # CONFIG_MEGARAID_LEGACY is not set | 296 | # CONFIG_MEGARAID_LEGACY is not set |
| 297 | # CONFIG_MEGARAID_SAS is not set | ||
| 205 | # CONFIG_SCSI_SATA is not set | 298 | # CONFIG_SCSI_SATA is not set |
| 206 | # CONFIG_SCSI_BUSLOGIC is not set | ||
| 207 | # CONFIG_SCSI_DMX3191D is not set | 299 | # CONFIG_SCSI_DMX3191D is not set |
| 208 | # CONFIG_SCSI_DTC3280 is not set | 300 | # CONFIG_SCSI_DTC3280 is not set |
| 209 | # CONFIG_SCSI_EATA is not set | ||
| 210 | # CONFIG_SCSI_EATA_PIO is not set | ||
| 211 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 301 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
| 212 | # CONFIG_SCSI_GDTH is not set | ||
| 213 | # CONFIG_SCSI_GENERIC_NCR5380 is not set | 302 | # CONFIG_SCSI_GENERIC_NCR5380 is not set |
| 214 | # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set | 303 | # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set |
| 215 | # CONFIG_SCSI_IPS is not set | 304 | # CONFIG_SCSI_IPS is not set |
| @@ -219,7 +308,6 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
| 219 | # CONFIG_SCSI_IMM is not set | 308 | # CONFIG_SCSI_IMM is not set |
| 220 | # CONFIG_SCSI_NCR53C406A is not set | 309 | # CONFIG_SCSI_NCR53C406A is not set |
| 221 | CONFIG_SCSI_LASI700=y | 310 | CONFIG_SCSI_LASI700=y |
| 222 | CONFIG_53C700_MEM_MAPPED=y | ||
| 223 | CONFIG_53C700_LE_ON_BE=y | 311 | CONFIG_53C700_LE_ON_BE=y |
| 224 | CONFIG_SCSI_SYM53C8XX_2=y | 312 | CONFIG_SCSI_SYM53C8XX_2=y |
| 225 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 | 313 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 |
| @@ -231,7 +319,6 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | |||
| 231 | # CONFIG_SCSI_PAS16 is not set | 319 | # CONFIG_SCSI_PAS16 is not set |
| 232 | # CONFIG_SCSI_PSI240I is not set | 320 | # CONFIG_SCSI_PSI240I is not set |
| 233 | # CONFIG_SCSI_QLOGIC_FAS is not set | 321 | # CONFIG_SCSI_QLOGIC_FAS is not set |
| 234 | # CONFIG_SCSI_QLOGIC_ISP is not set | ||
| 235 | # CONFIG_SCSI_QLOGIC_FC is not set | 322 | # CONFIG_SCSI_QLOGIC_FC is not set |
| 236 | # CONFIG_SCSI_QLOGIC_1280 is not set | 323 | # CONFIG_SCSI_QLOGIC_1280 is not set |
| 237 | CONFIG_SCSI_QLA2XXX=y | 324 | CONFIG_SCSI_QLA2XXX=y |
| @@ -240,12 +327,12 @@ CONFIG_SCSI_QLA2XXX=y | |||
| 240 | # CONFIG_SCSI_QLA2300 is not set | 327 | # CONFIG_SCSI_QLA2300 is not set |
| 241 | # CONFIG_SCSI_QLA2322 is not set | 328 | # CONFIG_SCSI_QLA2322 is not set |
| 242 | # CONFIG_SCSI_QLA6312 is not set | 329 | # CONFIG_SCSI_QLA6312 is not set |
| 243 | # CONFIG_SCSI_QLA6322 is not set | 330 | # CONFIG_SCSI_QLA24XX is not set |
| 331 | # CONFIG_SCSI_LPFC is not set | ||
| 244 | # CONFIG_SCSI_SIM710 is not set | 332 | # CONFIG_SCSI_SIM710 is not set |
| 245 | # CONFIG_SCSI_SYM53C416 is not set | 333 | # CONFIG_SCSI_SYM53C416 is not set |
| 246 | # CONFIG_SCSI_DC390T is not set | 334 | # CONFIG_SCSI_DC390T is not set |
| 247 | # CONFIG_SCSI_T128 is not set | 335 | # CONFIG_SCSI_T128 is not set |
| 248 | # CONFIG_SCSI_U14_34F is not set | ||
| 249 | # CONFIG_SCSI_NSP32 is not set | 336 | # CONFIG_SCSI_NSP32 is not set |
| 250 | # CONFIG_SCSI_DEBUG is not set | 337 | # CONFIG_SCSI_DEBUG is not set |
| 251 | 338 | ||
| @@ -263,6 +350,7 @@ CONFIG_MD_LINEAR=y | |||
| 263 | CONFIG_MD_RAID0=y | 350 | CONFIG_MD_RAID0=y |
| 264 | CONFIG_MD_RAID1=y | 351 | CONFIG_MD_RAID1=y |
| 265 | CONFIG_MD_RAID5=y | 352 | CONFIG_MD_RAID5=y |
| 353 | CONFIG_MD_RAID6=y | ||
| 266 | # CONFIG_MD_MULTIPATH is not set | 354 | # CONFIG_MD_MULTIPATH is not set |
| 267 | # CONFIG_MD_FAULTY is not set | 355 | # CONFIG_MD_FAULTY is not set |
| 268 | # CONFIG_BLK_DEV_DM is not set | 356 | # CONFIG_BLK_DEV_DM is not set |
| @@ -271,6 +359,9 @@ CONFIG_MD_RAID5=y | |||
| 271 | # Fusion MPT device support | 359 | # Fusion MPT device support |
| 272 | # | 360 | # |
| 273 | # CONFIG_FUSION is not set | 361 | # CONFIG_FUSION is not set |
| 362 | # CONFIG_FUSION_SPI is not set | ||
| 363 | # CONFIG_FUSION_FC is not set | ||
| 364 | # CONFIG_FUSION_SAS is not set | ||
| 274 | 365 | ||
| 275 | # | 366 | # |
| 276 | # IEEE 1394 (FireWire) support | 367 | # IEEE 1394 (FireWire) support |
| @@ -283,58 +374,8 @@ CONFIG_MD_RAID5=y | |||
| 283 | # CONFIG_I2O is not set | 374 | # CONFIG_I2O is not set |
| 284 | 375 | ||
| 285 | # | 376 | # |
| 286 | # Networking support | 377 | # Network device support |
| 287 | # | ||
| 288 | CONFIG_NET=y | ||
| 289 | |||
| 290 | # | ||
| 291 | # Networking options | ||
| 292 | # | ||
| 293 | CONFIG_PACKET=y | ||
| 294 | CONFIG_PACKET_MMAP=y | ||
| 295 | CONFIG_NETLINK_DEV=y | ||
| 296 | CONFIG_UNIX=y | ||
| 297 | # CONFIG_NET_KEY is not set | ||
| 298 | CONFIG_INET=y | ||
| 299 | CONFIG_IP_MULTICAST=y | ||
| 300 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 301 | CONFIG_IP_PNP=y | ||
| 302 | # CONFIG_IP_PNP_DHCP is not set | ||
| 303 | CONFIG_IP_PNP_BOOTP=y | ||
| 304 | # CONFIG_IP_PNP_RARP is not set | ||
| 305 | # CONFIG_NET_IPIP is not set | ||
| 306 | # CONFIG_NET_IPGRE is not set | ||
| 307 | # CONFIG_IP_MROUTE is not set | ||
| 308 | # CONFIG_SYN_COOKIES is not set | ||
| 309 | # CONFIG_INET_AH is not set | ||
| 310 | # CONFIG_INET_ESP is not set | ||
| 311 | # CONFIG_INET_IPCOMP is not set | ||
| 312 | # CONFIG_INET_TUNNEL is not set | ||
| 313 | CONFIG_IP_TCPDIAG=y | ||
| 314 | # CONFIG_IP_TCPDIAG_IPV6 is not set | ||
| 315 | # CONFIG_NETFILTER is not set | ||
| 316 | # CONFIG_BRIDGE is not set | ||
| 317 | # CONFIG_VLAN_8021Q is not set | ||
| 318 | # CONFIG_DECNET is not set | ||
| 319 | # CONFIG_LLC2 is not set | ||
| 320 | # CONFIG_IPX is not set | ||
| 321 | # CONFIG_ATALK is not set | ||
| 322 | |||
| 323 | # | ||
| 324 | # QoS and/or fair queueing | ||
| 325 | # | ||
| 326 | # CONFIG_NET_SCHED is not set | ||
| 327 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 328 | |||
| 329 | # | ||
| 330 | # Network testing | ||
| 331 | # | 378 | # |
| 332 | # CONFIG_NET_PKTGEN is not set | ||
| 333 | # CONFIG_NETPOLL is not set | ||
| 334 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 335 | # CONFIG_HAMRADIO is not set | ||
| 336 | # CONFIG_IRDA is not set | ||
| 337 | # CONFIG_BT is not set | ||
| 338 | CONFIG_NETDEVICES=y | 379 | CONFIG_NETDEVICES=y |
| 339 | # CONFIG_DUMMY is not set | 380 | # CONFIG_DUMMY is not set |
| 340 | # CONFIG_BONDING is not set | 381 | # CONFIG_BONDING is not set |
| @@ -347,6 +388,11 @@ CONFIG_NETDEVICES=y | |||
| 347 | # CONFIG_ARCNET is not set | 388 | # CONFIG_ARCNET is not set |
| 348 | 389 | ||
| 349 | # | 390 | # |
| 391 | # PHY device support | ||
| 392 | # | ||
| 393 | # CONFIG_PHYLIB is not set | ||
| 394 | |||
| 395 | # | ||
| 350 | # Ethernet (10 or 100Mbit) | 396 | # Ethernet (10 or 100Mbit) |
| 351 | # | 397 | # |
| 352 | CONFIG_NET_ETHERNET=y | 398 | CONFIG_NET_ETHERNET=y |
| @@ -354,8 +400,8 @@ CONFIG_NET_ETHERNET=y | |||
| 354 | # CONFIG_LASI_82596 is not set | 400 | # CONFIG_LASI_82596 is not set |
| 355 | # CONFIG_HAPPYMEAL is not set | 401 | # CONFIG_HAPPYMEAL is not set |
| 356 | # CONFIG_SUNGEM is not set | 402 | # CONFIG_SUNGEM is not set |
| 403 | # CONFIG_CASSINI is not set | ||
| 357 | # CONFIG_NET_VENDOR_3COM is not set | 404 | # CONFIG_NET_VENDOR_3COM is not set |
| 358 | # CONFIG_LANCE is not set | ||
| 359 | # CONFIG_NET_VENDOR_SMC is not set | 405 | # CONFIG_NET_VENDOR_SMC is not set |
| 360 | # CONFIG_NET_VENDOR_RACAL is not set | 406 | # CONFIG_NET_VENDOR_RACAL is not set |
| 361 | 407 | ||
| @@ -369,6 +415,7 @@ CONFIG_TULIP=y | |||
| 369 | # CONFIG_DE4X5 is not set | 415 | # CONFIG_DE4X5 is not set |
| 370 | # CONFIG_WINBOND_840 is not set | 416 | # CONFIG_WINBOND_840 is not set |
| 371 | # CONFIG_DM9102 is not set | 417 | # CONFIG_DM9102 is not set |
| 418 | # CONFIG_ULI526X is not set | ||
| 372 | # CONFIG_DEPCA is not set | 419 | # CONFIG_DEPCA is not set |
| 373 | # CONFIG_HP100 is not set | 420 | # CONFIG_HP100 is not set |
| 374 | # CONFIG_NET_ISA is not set | 421 | # CONFIG_NET_ISA is not set |
| @@ -384,12 +431,15 @@ CONFIG_TULIP=y | |||
| 384 | # CONFIG_NS83820 is not set | 431 | # CONFIG_NS83820 is not set |
| 385 | # CONFIG_HAMACHI is not set | 432 | # CONFIG_HAMACHI is not set |
| 386 | # CONFIG_R8169 is not set | 433 | # CONFIG_R8169 is not set |
| 434 | # CONFIG_SIS190 is not set | ||
| 387 | # CONFIG_SK98LIN is not set | 435 | # CONFIG_SK98LIN is not set |
| 388 | # CONFIG_TIGON3 is not set | 436 | # CONFIG_TIGON3 is not set |
| 437 | # CONFIG_BNX2 is not set | ||
| 389 | 438 | ||
| 390 | # | 439 | # |
| 391 | # Ethernet (10000 Mbit) | 440 | # Ethernet (10000 Mbit) |
| 392 | # | 441 | # |
| 442 | # CONFIG_CHELSIO_T1 is not set | ||
| 393 | # CONFIG_IXGB is not set | 443 | # CONFIG_IXGB is not set |
| 394 | # CONFIG_S2IO is not set | 444 | # CONFIG_S2IO is not set |
| 395 | 445 | ||
| @@ -413,12 +463,12 @@ CONFIG_NET_RADIO=y | |||
| 413 | # | 463 | # |
| 414 | # Wireless 802.11b ISA/PCI cards support | 464 | # Wireless 802.11b ISA/PCI cards support |
| 415 | # | 465 | # |
| 416 | # CONFIG_AIRO is not set | ||
| 417 | # CONFIG_HERMES is not set | 466 | # CONFIG_HERMES is not set |
| 418 | 467 | ||
| 419 | # | 468 | # |
| 420 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support | 469 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support |
| 421 | # | 470 | # |
| 471 | # CONFIG_HOSTAP is not set | ||
| 422 | CONFIG_NET_WIRELESS=y | 472 | CONFIG_NET_WIRELESS=y |
| 423 | 473 | ||
| 424 | # | 474 | # |
| @@ -435,6 +485,8 @@ CONFIG_PPP=y | |||
| 435 | # CONFIG_PPP_BSDCOMP is not set | 485 | # CONFIG_PPP_BSDCOMP is not set |
| 436 | # CONFIG_SLIP is not set | 486 | # CONFIG_SLIP is not set |
| 437 | # CONFIG_NET_FC is not set | 487 | # CONFIG_NET_FC is not set |
| 488 | # CONFIG_NETPOLL is not set | ||
| 489 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 438 | 490 | ||
| 439 | # | 491 | # |
| 440 | # ISDN subsystem | 492 | # ISDN subsystem |
| @@ -464,23 +516,12 @@ CONFIG_INPUT_EVDEV=y | |||
| 464 | # CONFIG_INPUT_EVBUG is not set | 516 | # CONFIG_INPUT_EVBUG is not set |
| 465 | 517 | ||
| 466 | # | 518 | # |
| 467 | # Input I/O drivers | ||
| 468 | # | ||
| 469 | # CONFIG_GAMEPORT is not set | ||
| 470 | CONFIG_SOUND_GAMEPORT=y | ||
| 471 | CONFIG_SERIO=y | ||
| 472 | # CONFIG_SERIO_SERPORT is not set | ||
| 473 | # CONFIG_SERIO_PARKBD is not set | ||
| 474 | CONFIG_SERIO_GSCPS2=y | ||
| 475 | # CONFIG_HP_SDC is not set | ||
| 476 | # CONFIG_SERIO_PCIPS2 is not set | ||
| 477 | # CONFIG_SERIO_RAW is not set | ||
| 478 | |||
| 479 | # | ||
| 480 | # Input Device Drivers | 519 | # Input Device Drivers |
| 481 | # | 520 | # |
| 482 | CONFIG_INPUT_KEYBOARD=y | 521 | CONFIG_INPUT_KEYBOARD=y |
| 483 | # CONFIG_KEYBOARD_ATKBD is not set | 522 | CONFIG_KEYBOARD_ATKBD=y |
| 523 | CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y | ||
| 524 | # CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set | ||
| 484 | # CONFIG_KEYBOARD_SUNKBD is not set | 525 | # CONFIG_KEYBOARD_SUNKBD is not set |
| 485 | # CONFIG_KEYBOARD_LKKBD is not set | 526 | # CONFIG_KEYBOARD_LKKBD is not set |
| 486 | # CONFIG_KEYBOARD_XTKBD is not set | 527 | # CONFIG_KEYBOARD_XTKBD is not set |
| @@ -488,7 +529,7 @@ CONFIG_INPUT_KEYBOARD=y | |||
| 488 | # CONFIG_KEYBOARD_HIL_OLD is not set | 529 | # CONFIG_KEYBOARD_HIL_OLD is not set |
| 489 | # CONFIG_KEYBOARD_HIL is not set | 530 | # CONFIG_KEYBOARD_HIL is not set |
| 490 | CONFIG_INPUT_MOUSE=y | 531 | CONFIG_INPUT_MOUSE=y |
| 491 | # CONFIG_MOUSE_PS2 is not set | 532 | CONFIG_MOUSE_PS2=y |
| 492 | # CONFIG_MOUSE_SERIAL is not set | 533 | # CONFIG_MOUSE_SERIAL is not set |
| 493 | # CONFIG_MOUSE_INPORT is not set | 534 | # CONFIG_MOUSE_INPORT is not set |
| 494 | # CONFIG_MOUSE_LOGIBM is not set | 535 | # CONFIG_MOUSE_LOGIBM is not set |
| @@ -502,6 +543,19 @@ CONFIG_INPUT_MISC=y | |||
| 502 | # CONFIG_HP_SDC_RTC is not set | 543 | # CONFIG_HP_SDC_RTC is not set |
| 503 | 544 | ||
| 504 | # | 545 | # |
| 546 | # Hardware I/O ports | ||
| 547 | # | ||
| 548 | CONFIG_SERIO=y | ||
| 549 | # CONFIG_SERIO_SERPORT is not set | ||
| 550 | # CONFIG_SERIO_PARKBD is not set | ||
| 551 | CONFIG_SERIO_GSCPS2=y | ||
| 552 | # CONFIG_HP_SDC is not set | ||
| 553 | # CONFIG_SERIO_PCIPS2 is not set | ||
| 554 | CONFIG_SERIO_LIBPS2=y | ||
| 555 | # CONFIG_SERIO_RAW is not set | ||
| 556 | # CONFIG_GAMEPORT is not set | ||
| 557 | |||
| 558 | # | ||
| 505 | # Character devices | 559 | # Character devices |
| 506 | # | 560 | # |
| 507 | CONFIG_VT=y | 561 | CONFIG_VT=y |
| @@ -519,8 +573,11 @@ CONFIG_SERIAL_8250_EXTENDED=y | |||
| 519 | CONFIG_SERIAL_8250_MANY_PORTS=y | 573 | CONFIG_SERIAL_8250_MANY_PORTS=y |
| 520 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 574 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
| 521 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 575 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
| 522 | # CONFIG_SERIAL_8250_MULTIPORT is not set | ||
| 523 | # CONFIG_SERIAL_8250_RSA is not set | 576 | # CONFIG_SERIAL_8250_RSA is not set |
| 577 | # CONFIG_SERIAL_8250_FOURPORT is not set | ||
| 578 | # CONFIG_SERIAL_8250_ACCENT is not set | ||
| 579 | # CONFIG_SERIAL_8250_BOCA is not set | ||
| 580 | # CONFIG_SERIAL_8250_HUB6 is not set | ||
| 524 | 581 | ||
| 525 | # | 582 | # |
| 526 | # Non-8250 serial port support | 583 | # Non-8250 serial port support |
| @@ -529,6 +586,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y | |||
| 529 | # CONFIG_PDC_CONSOLE is not set | 586 | # CONFIG_PDC_CONSOLE is not set |
| 530 | CONFIG_SERIAL_CORE=y | 587 | CONFIG_SERIAL_CORE=y |
| 531 | CONFIG_SERIAL_CORE_CONSOLE=y | 588 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 589 | # CONFIG_SERIAL_JSM is not set | ||
| 532 | CONFIG_UNIX98_PTYS=y | 590 | CONFIG_UNIX98_PTYS=y |
| 533 | CONFIG_LEGACY_PTYS=y | 591 | CONFIG_LEGACY_PTYS=y |
| 534 | CONFIG_LEGACY_PTY_COUNT=256 | 592 | CONFIG_LEGACY_PTY_COUNT=256 |
| @@ -555,11 +613,14 @@ CONFIG_GEN_RTC=y | |||
| 555 | # | 613 | # |
| 556 | # Ftape, the floppy tape device driver | 614 | # Ftape, the floppy tape device driver |
| 557 | # | 615 | # |
| 558 | # CONFIG_AGP is not set | ||
| 559 | # CONFIG_DRM is not set | 616 | # CONFIG_DRM is not set |
| 560 | # CONFIG_RAW_DRIVER is not set | 617 | # CONFIG_RAW_DRIVER is not set |
| 561 | 618 | ||
| 562 | # | 619 | # |
| 620 | # TPM devices | ||
| 621 | # | ||
| 622 | |||
| 623 | # | ||
| 563 | # I2C support | 624 | # I2C support |
| 564 | # | 625 | # |
| 565 | # CONFIG_I2C is not set | 626 | # CONFIG_I2C is not set |
| @@ -570,10 +631,20 @@ CONFIG_GEN_RTC=y | |||
| 570 | # CONFIG_W1 is not set | 631 | # CONFIG_W1 is not set |
| 571 | 632 | ||
| 572 | # | 633 | # |
| 634 | # Hardware Monitoring support | ||
| 635 | # | ||
| 636 | # CONFIG_HWMON is not set | ||
| 637 | # CONFIG_HWMON_VID is not set | ||
| 638 | |||
| 639 | # | ||
| 573 | # Misc devices | 640 | # Misc devices |
| 574 | # | 641 | # |
| 575 | 642 | ||
| 576 | # | 643 | # |
| 644 | # Multimedia Capabilities Port drivers | ||
| 645 | # | ||
| 646 | |||
| 647 | # | ||
| 577 | # Multimedia devices | 648 | # Multimedia devices |
| 578 | # | 649 | # |
| 579 | # CONFIG_VIDEO_DEV is not set | 650 | # CONFIG_VIDEO_DEV is not set |
| @@ -587,6 +658,11 @@ CONFIG_GEN_RTC=y | |||
| 587 | # Graphics support | 658 | # Graphics support |
| 588 | # | 659 | # |
| 589 | CONFIG_FB=y | 660 | CONFIG_FB=y |
| 661 | CONFIG_FB_CFB_FILLRECT=y | ||
| 662 | CONFIG_FB_CFB_COPYAREA=y | ||
| 663 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 664 | CONFIG_FB_SOFT_CURSOR=y | ||
| 665 | # CONFIG_FB_MACMODES is not set | ||
| 590 | # CONFIG_FB_MODE_HELPERS is not set | 666 | # CONFIG_FB_MODE_HELPERS is not set |
| 591 | # CONFIG_FB_TILEBLITTING is not set | 667 | # CONFIG_FB_TILEBLITTING is not set |
| 592 | # CONFIG_FB_CIRRUS is not set | 668 | # CONFIG_FB_CIRRUS is not set |
| @@ -595,6 +671,7 @@ CONFIG_FB=y | |||
| 595 | # CONFIG_FB_ASILIANT is not set | 671 | # CONFIG_FB_ASILIANT is not set |
| 596 | # CONFIG_FB_IMSTT is not set | 672 | # CONFIG_FB_IMSTT is not set |
| 597 | CONFIG_FB_STI=y | 673 | CONFIG_FB_STI=y |
| 674 | # CONFIG_FB_NVIDIA is not set | ||
| 598 | # CONFIG_FB_RIVA is not set | 675 | # CONFIG_FB_RIVA is not set |
| 599 | # CONFIG_FB_MATROX is not set | 676 | # CONFIG_FB_MATROX is not set |
| 600 | # CONFIG_FB_RADEON_OLD is not set | 677 | # CONFIG_FB_RADEON_OLD is not set |
| @@ -606,18 +683,19 @@ CONFIG_FB_STI=y | |||
| 606 | # CONFIG_FB_KYRO is not set | 683 | # CONFIG_FB_KYRO is not set |
| 607 | # CONFIG_FB_3DFX is not set | 684 | # CONFIG_FB_3DFX is not set |
| 608 | # CONFIG_FB_VOODOO1 is not set | 685 | # CONFIG_FB_VOODOO1 is not set |
| 686 | # CONFIG_FB_CYBLA is not set | ||
| 609 | # CONFIG_FB_TRIDENT is not set | 687 | # CONFIG_FB_TRIDENT is not set |
| 688 | # CONFIG_FB_S1D13XXX is not set | ||
| 610 | # CONFIG_FB_VIRTUAL is not set | 689 | # CONFIG_FB_VIRTUAL is not set |
| 611 | 690 | ||
| 612 | # | 691 | # |
| 613 | # Console display driver support | 692 | # Console display driver support |
| 614 | # | 693 | # |
| 615 | # CONFIG_MDA_CONSOLE is not set | 694 | CONFIG_DUMMY_CONSOLE=y |
| 616 | CONFIG_STI_CONSOLE=y | ||
| 617 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 | 695 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 |
| 618 | CONFIG_DUMMY_CONSOLE_ROWS=64 | 696 | CONFIG_DUMMY_CONSOLE_ROWS=64 |
| 619 | CONFIG_DUMMY_CONSOLE=y | ||
| 620 | CONFIG_FRAMEBUFFER_CONSOLE=y | 697 | CONFIG_FRAMEBUFFER_CONSOLE=y |
| 698 | CONFIG_STI_CONSOLE=y | ||
| 621 | # CONFIG_FONTS is not set | 699 | # CONFIG_FONTS is not set |
| 622 | CONFIG_FONT_8x8=y | 700 | CONFIG_FONT_8x8=y |
| 623 | CONFIG_FONT_8x16=y | 701 | CONFIG_FONT_8x16=y |
| @@ -630,6 +708,7 @@ CONFIG_LOGO_LINUX_MONO=y | |||
| 630 | CONFIG_LOGO_LINUX_VGA16=y | 708 | CONFIG_LOGO_LINUX_VGA16=y |
| 631 | CONFIG_LOGO_LINUX_CLUT224=y | 709 | CONFIG_LOGO_LINUX_CLUT224=y |
| 632 | CONFIG_LOGO_PARISC_CLUT224=y | 710 | CONFIG_LOGO_PARISC_CLUT224=y |
| 711 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 633 | 712 | ||
| 634 | # | 713 | # |
| 635 | # Sound | 714 | # Sound |
| @@ -639,13 +718,9 @@ CONFIG_LOGO_PARISC_CLUT224=y | |||
| 639 | # | 718 | # |
| 640 | # USB support | 719 | # USB support |
| 641 | # | 720 | # |
| 642 | # CONFIG_USB is not set | ||
| 643 | CONFIG_USB_ARCH_HAS_HCD=y | 721 | CONFIG_USB_ARCH_HAS_HCD=y |
| 644 | CONFIG_USB_ARCH_HAS_OHCI=y | 722 | CONFIG_USB_ARCH_HAS_OHCI=y |
| 645 | 723 | # CONFIG_USB is not set | |
| 646 | # | ||
| 647 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
| 648 | # | ||
| 649 | 724 | ||
| 650 | # | 725 | # |
| 651 | # USB Gadget Support | 726 | # USB Gadget Support |
| @@ -658,23 +733,36 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
| 658 | # CONFIG_MMC is not set | 733 | # CONFIG_MMC is not set |
| 659 | 734 | ||
| 660 | # | 735 | # |
| 736 | # InfiniBand support | ||
| 737 | # | ||
| 738 | # CONFIG_INFINIBAND is not set | ||
| 739 | |||
| 740 | # | ||
| 741 | # SN Devices | ||
| 742 | # | ||
| 743 | |||
| 744 | # | ||
| 661 | # File systems | 745 | # File systems |
| 662 | # | 746 | # |
| 663 | CONFIG_EXT2_FS=y | 747 | CONFIG_EXT2_FS=y |
| 664 | # CONFIG_EXT2_FS_XATTR is not set | 748 | # CONFIG_EXT2_FS_XATTR is not set |
| 749 | # CONFIG_EXT2_FS_XIP is not set | ||
| 665 | CONFIG_EXT3_FS=y | 750 | CONFIG_EXT3_FS=y |
| 666 | # CONFIG_EXT3_FS_XATTR is not set | 751 | # CONFIG_EXT3_FS_XATTR is not set |
| 667 | CONFIG_JBD=y | 752 | CONFIG_JBD=y |
| 668 | # CONFIG_JBD_DEBUG is not set | 753 | # CONFIG_JBD_DEBUG is not set |
| 669 | # CONFIG_REISERFS_FS is not set | 754 | # CONFIG_REISERFS_FS is not set |
| 670 | # CONFIG_JFS_FS is not set | 755 | # CONFIG_JFS_FS is not set |
| 756 | # CONFIG_FS_POSIX_ACL is not set | ||
| 671 | # CONFIG_XFS_FS is not set | 757 | # CONFIG_XFS_FS is not set |
| 672 | # CONFIG_MINIX_FS is not set | 758 | # CONFIG_MINIX_FS is not set |
| 673 | # CONFIG_ROMFS_FS is not set | 759 | # CONFIG_ROMFS_FS is not set |
| 760 | CONFIG_INOTIFY=y | ||
| 674 | # CONFIG_QUOTA is not set | 761 | # CONFIG_QUOTA is not set |
| 675 | CONFIG_DNOTIFY=y | 762 | CONFIG_DNOTIFY=y |
| 676 | # CONFIG_AUTOFS_FS is not set | 763 | # CONFIG_AUTOFS_FS is not set |
| 677 | CONFIG_AUTOFS4_FS=y | 764 | CONFIG_AUTOFS4_FS=y |
| 765 | # CONFIG_FUSE_FS is not set | ||
| 678 | 766 | ||
| 679 | # | 767 | # |
| 680 | # CD-ROM/DVD Filesystems | 768 | # CD-ROM/DVD Filesystems |
| @@ -697,11 +785,10 @@ CONFIG_JOLIET=y | |||
| 697 | CONFIG_PROC_FS=y | 785 | CONFIG_PROC_FS=y |
| 698 | CONFIG_PROC_KCORE=y | 786 | CONFIG_PROC_KCORE=y |
| 699 | CONFIG_SYSFS=y | 787 | CONFIG_SYSFS=y |
| 700 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
| 701 | CONFIG_TMPFS=y | 788 | CONFIG_TMPFS=y |
| 702 | # CONFIG_TMPFS_XATTR is not set | ||
| 703 | # CONFIG_HUGETLB_PAGE is not set | 789 | # CONFIG_HUGETLB_PAGE is not set |
| 704 | CONFIG_RAMFS=y | 790 | CONFIG_RAMFS=y |
| 791 | # CONFIG_RELAYFS_FS is not set | ||
| 705 | 792 | ||
| 706 | # | 793 | # |
| 707 | # Miscellaneous filesystems | 794 | # Miscellaneous filesystems |
| @@ -719,15 +806,19 @@ CONFIG_RAMFS=y | |||
| 719 | # | 806 | # |
| 720 | CONFIG_NFS_FS=y | 807 | CONFIG_NFS_FS=y |
| 721 | CONFIG_NFS_V3=y | 808 | CONFIG_NFS_V3=y |
| 809 | # CONFIG_NFS_V3_ACL is not set | ||
| 722 | CONFIG_NFSD=y | 810 | CONFIG_NFSD=y |
| 723 | CONFIG_NFSD_V3=y | 811 | CONFIG_NFSD_V3=y |
| 812 | # CONFIG_NFSD_V3_ACL is not set | ||
| 724 | CONFIG_NFSD_TCP=y | 813 | CONFIG_NFSD_TCP=y |
| 725 | CONFIG_ROOT_NFS=y | 814 | CONFIG_ROOT_NFS=y |
| 726 | CONFIG_LOCKD=y | 815 | CONFIG_LOCKD=y |
| 727 | CONFIG_LOCKD_V4=y | 816 | CONFIG_LOCKD_V4=y |
| 728 | CONFIG_EXPORTFS=y | 817 | CONFIG_EXPORTFS=y |
| 818 | CONFIG_NFS_COMMON=y | ||
| 729 | CONFIG_SUNRPC=y | 819 | CONFIG_SUNRPC=y |
| 730 | # CONFIG_SMB_FS is not set | 820 | CONFIG_SMB_FS=y |
| 821 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
| 731 | # CONFIG_CIFS is not set | 822 | # CONFIG_CIFS is not set |
| 732 | # CONFIG_NCP_FS is not set | 823 | # CONFIG_NCP_FS is not set |
| 733 | # CONFIG_CODA_FS is not set | 824 | # CONFIG_CODA_FS is not set |
| @@ -785,13 +876,19 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
| 785 | # | 876 | # |
| 786 | # Kernel hacking | 877 | # Kernel hacking |
| 787 | # | 878 | # |
| 879 | # CONFIG_PRINTK_TIME is not set | ||
| 788 | CONFIG_DEBUG_KERNEL=y | 880 | CONFIG_DEBUG_KERNEL=y |
| 789 | CONFIG_MAGIC_SYSRQ=y | 881 | CONFIG_MAGIC_SYSRQ=y |
| 882 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 883 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 790 | # CONFIG_SCHEDSTATS is not set | 884 | # CONFIG_SCHEDSTATS is not set |
| 791 | # CONFIG_DEBUG_SLAB is not set | 885 | # CONFIG_DEBUG_SLAB is not set |
| 792 | # CONFIG_DEBUG_SPINLOCK is not set | 886 | # CONFIG_DEBUG_SPINLOCK is not set |
| 887 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 793 | # CONFIG_DEBUG_KOBJECT is not set | 888 | # CONFIG_DEBUG_KOBJECT is not set |
| 794 | # CONFIG_DEBUG_INFO is not set | 889 | # CONFIG_DEBUG_INFO is not set |
| 890 | # CONFIG_DEBUG_IOREMAP is not set | ||
| 891 | # CONFIG_DEBUG_FS is not set | ||
| 795 | 892 | ||
| 796 | # | 893 | # |
| 797 | # Security options | 894 | # Security options |
| @@ -815,6 +912,7 @@ CONFIG_CRYPTO=y | |||
| 815 | # CONFIG_CRYPTO_SHA256 is not set | 912 | # CONFIG_CRYPTO_SHA256 is not set |
| 816 | # CONFIG_CRYPTO_SHA512 is not set | 913 | # CONFIG_CRYPTO_SHA512 is not set |
| 817 | # CONFIG_CRYPTO_WP512 is not set | 914 | # CONFIG_CRYPTO_WP512 is not set |
| 915 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 818 | # CONFIG_CRYPTO_DES is not set | 916 | # CONFIG_CRYPTO_DES is not set |
| 819 | # CONFIG_CRYPTO_BLOWFISH is not set | 917 | # CONFIG_CRYPTO_BLOWFISH is not set |
| 820 | # CONFIG_CRYPTO_TWOFISH is not set | 918 | # CONFIG_CRYPTO_TWOFISH is not set |
| @@ -832,8 +930,13 @@ CONFIG_CRYPTO=y | |||
| 832 | # CONFIG_CRYPTO_TEST is not set | 930 | # CONFIG_CRYPTO_TEST is not set |
| 833 | 931 | ||
| 834 | # | 932 | # |
| 933 | # Hardware crypto devices | ||
| 934 | # | ||
| 935 | |||
| 936 | # | ||
| 835 | # Library routines | 937 | # Library routines |
| 836 | # | 938 | # |
| 837 | # CONFIG_CRC_CCITT is not set | 939 | # CONFIG_CRC_CCITT is not set |
| 940 | # CONFIG_CRC16 is not set | ||
| 838 | CONFIG_CRC32=y | 941 | CONFIG_CRC32=y |
| 839 | # CONFIG_LIBCRC32C is not set | 942 | # CONFIG_LIBCRC32C is not set |
diff --git a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig index 67aca6ccc9b0..9d86b6b1ebd1 100644 --- a/arch/parisc/configs/c3000_defconfig +++ b/arch/parisc/configs/c3000_defconfig | |||
| @@ -1,12 +1,16 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.10-pa5 | 3 | # Linux kernel version: 2.6.14-rc5-pa1 |
| 4 | # Wed Jan 5 13:26:49 2005 | 4 | # Fri Oct 21 23:06:31 2005 |
| 5 | # | 5 | # |
| 6 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_STACK_GROWSUP=y | 8 | CONFIG_STACK_GROWSUP=y |
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 11 | CONFIG_GENERIC_HARDIRQS=y | ||
| 12 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 13 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
| 10 | 14 | ||
| 11 | # | 15 | # |
| 12 | # Code maturity level options | 16 | # Code maturity level options |
| @@ -15,26 +19,31 @@ CONFIG_EXPERIMENTAL=y | |||
| 15 | # CONFIG_CLEAN_COMPILE is not set | 19 | # CONFIG_CLEAN_COMPILE is not set |
| 16 | CONFIG_BROKEN=y | 20 | CONFIG_BROKEN=y |
| 17 | CONFIG_BROKEN_ON_SMP=y | 21 | CONFIG_BROKEN_ON_SMP=y |
| 22 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 18 | 23 | ||
| 19 | # | 24 | # |
| 20 | # General setup | 25 | # General setup |
| 21 | # | 26 | # |
| 22 | CONFIG_LOCALVERSION="" | 27 | CONFIG_LOCALVERSION="" |
| 28 | # CONFIG_LOCALVERSION_AUTO is not set | ||
| 23 | CONFIG_SWAP=y | 29 | CONFIG_SWAP=y |
| 24 | CONFIG_SYSVIPC=y | 30 | CONFIG_SYSVIPC=y |
| 25 | # CONFIG_POSIX_MQUEUE is not set | 31 | # CONFIG_POSIX_MQUEUE is not set |
| 26 | # CONFIG_BSD_PROCESS_ACCT is not set | 32 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 27 | CONFIG_SYSCTL=y | 33 | CONFIG_SYSCTL=y |
| 28 | # CONFIG_AUDIT is not set | 34 | # CONFIG_AUDIT is not set |
| 29 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 30 | CONFIG_HOTPLUG=y | 35 | CONFIG_HOTPLUG=y |
| 31 | CONFIG_KOBJECT_UEVENT=y | 36 | CONFIG_KOBJECT_UEVENT=y |
| 32 | CONFIG_IKCONFIG=y | 37 | CONFIG_IKCONFIG=y |
| 33 | CONFIG_IKCONFIG_PROC=y | 38 | CONFIG_IKCONFIG_PROC=y |
| 39 | CONFIG_INITRAMFS_SOURCE="" | ||
| 34 | CONFIG_EMBEDDED=y | 40 | CONFIG_EMBEDDED=y |
| 35 | CONFIG_KALLSYMS=y | 41 | CONFIG_KALLSYMS=y |
| 36 | CONFIG_KALLSYMS_ALL=y | 42 | CONFIG_KALLSYMS_ALL=y |
| 37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 43 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
| 44 | CONFIG_PRINTK=y | ||
| 45 | CONFIG_BUG=y | ||
| 46 | CONFIG_BASE_FULL=y | ||
| 38 | CONFIG_FUTEX=y | 47 | CONFIG_FUTEX=y |
| 39 | CONFIG_EPOLL=y | 48 | CONFIG_EPOLL=y |
| 40 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 49 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
| @@ -44,6 +53,7 @@ CONFIG_CC_ALIGN_LABELS=0 | |||
| 44 | CONFIG_CC_ALIGN_LOOPS=0 | 53 | CONFIG_CC_ALIGN_LOOPS=0 |
| 45 | CONFIG_CC_ALIGN_JUMPS=0 | 54 | CONFIG_CC_ALIGN_JUMPS=0 |
| 46 | # CONFIG_TINY_SHMEM is not set | 55 | # CONFIG_TINY_SHMEM is not set |
| 56 | CONFIG_BASE_SMALL=0 | ||
| 47 | 57 | ||
| 48 | # | 58 | # |
| 49 | # Loadable module support | 59 | # Loadable module support |
| @@ -66,10 +76,19 @@ CONFIG_KMOD=y | |||
| 66 | CONFIG_PA8X00=y | 76 | CONFIG_PA8X00=y |
| 67 | CONFIG_PA20=y | 77 | CONFIG_PA20=y |
| 68 | CONFIG_PREFETCH=y | 78 | CONFIG_PREFETCH=y |
| 69 | # CONFIG_PARISC64 is not set | ||
| 70 | # CONFIG_64BIT is not set | 79 | # CONFIG_64BIT is not set |
| 71 | # CONFIG_SMP is not set | 80 | # CONFIG_SMP is not set |
| 72 | # CONFIG_DISCONTIGMEM is not set | 81 | # CONFIG_HZ_100 is not set |
| 82 | CONFIG_HZ_250=y | ||
| 83 | # CONFIG_HZ_1000 is not set | ||
| 84 | CONFIG_HZ=250 | ||
| 85 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 86 | CONFIG_FLATMEM_MANUAL=y | ||
| 87 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 88 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 89 | CONFIG_FLATMEM=y | ||
| 90 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 91 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 73 | # CONFIG_PREEMPT is not set | 92 | # CONFIG_PREEMPT is not set |
| 74 | # CONFIG_HPUX is not set | 93 | # CONFIG_HPUX is not set |
| 75 | 94 | ||
| @@ -79,13 +98,10 @@ CONFIG_PREFETCH=y | |||
| 79 | # CONFIG_GSC is not set | 98 | # CONFIG_GSC is not set |
| 80 | CONFIG_PCI=y | 99 | CONFIG_PCI=y |
| 81 | CONFIG_PCI_LEGACY_PROC=y | 100 | CONFIG_PCI_LEGACY_PROC=y |
| 82 | CONFIG_PCI_NAMES=y | 101 | # CONFIG_PCI_DEBUG is not set |
| 83 | CONFIG_PCI_LBA=y | 102 | CONFIG_PCI_LBA=y |
| 84 | CONFIG_IOSAPIC=y | 103 | CONFIG_IOSAPIC=y |
| 85 | CONFIG_IOMMU_SBA=y | 104 | CONFIG_IOMMU_SBA=y |
| 86 | CONFIG_SUPERIO=y | ||
| 87 | CONFIG_CHASSIS_LCD_LED=y | ||
| 88 | # CONFIG_PDC_CHASSIS is not set | ||
| 89 | 105 | ||
| 90 | # | 106 | # |
| 91 | # PCCARD (PCMCIA/CardBus) support | 107 | # PCCARD (PCMCIA/CardBus) support |
| @@ -93,13 +109,17 @@ CONFIG_CHASSIS_LCD_LED=y | |||
| 93 | # CONFIG_PCCARD is not set | 109 | # CONFIG_PCCARD is not set |
| 94 | 110 | ||
| 95 | # | 111 | # |
| 96 | # PC-card bridges | 112 | # PCI Hotplug Support |
| 97 | # | 113 | # |
| 114 | # CONFIG_HOTPLUG_PCI is not set | ||
| 98 | 115 | ||
| 99 | # | 116 | # |
| 100 | # PCI Hotplug Support | 117 | # PA-RISC specific drivers |
| 101 | # | 118 | # |
| 102 | # CONFIG_HOTPLUG_PCI is not set | 119 | CONFIG_SUPERIO=y |
| 120 | CONFIG_CHASSIS_LCD_LED=y | ||
| 121 | # CONFIG_PDC_CHASSIS is not set | ||
| 122 | CONFIG_PDC_STABLE=y | ||
| 103 | 123 | ||
| 104 | # | 124 | # |
| 105 | # Executable file formats | 125 | # Executable file formats |
| @@ -108,6 +128,186 @@ CONFIG_BINFMT_ELF=y | |||
| 108 | # CONFIG_BINFMT_MISC is not set | 128 | # CONFIG_BINFMT_MISC is not set |
| 109 | 129 | ||
| 110 | # | 130 | # |
| 131 | # Networking | ||
| 132 | # | ||
| 133 | CONFIG_NET=y | ||
| 134 | |||
| 135 | # | ||
| 136 | # Networking options | ||
| 137 | # | ||
| 138 | CONFIG_PACKET=y | ||
| 139 | CONFIG_PACKET_MMAP=y | ||
| 140 | CONFIG_UNIX=y | ||
| 141 | CONFIG_XFRM=y | ||
| 142 | CONFIG_XFRM_USER=m | ||
| 143 | CONFIG_NET_KEY=m | ||
| 144 | CONFIG_INET=y | ||
| 145 | CONFIG_IP_MULTICAST=y | ||
| 146 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 147 | CONFIG_IP_FIB_HASH=y | ||
| 148 | CONFIG_IP_PNP=y | ||
| 149 | # CONFIG_IP_PNP_DHCP is not set | ||
| 150 | CONFIG_IP_PNP_BOOTP=y | ||
| 151 | # CONFIG_IP_PNP_RARP is not set | ||
| 152 | # CONFIG_NET_IPIP is not set | ||
| 153 | # CONFIG_NET_IPGRE is not set | ||
| 154 | # CONFIG_IP_MROUTE is not set | ||
| 155 | # CONFIG_ARPD is not set | ||
| 156 | # CONFIG_SYN_COOKIES is not set | ||
| 157 | # CONFIG_INET_AH is not set | ||
| 158 | # CONFIG_INET_ESP is not set | ||
| 159 | # CONFIG_INET_IPCOMP is not set | ||
| 160 | # CONFIG_INET_TUNNEL is not set | ||
| 161 | # CONFIG_INET_DIAG is not set | ||
| 162 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 163 | CONFIG_TCP_CONG_BIC=y | ||
| 164 | |||
| 165 | # | ||
| 166 | # IP: Virtual Server Configuration | ||
| 167 | # | ||
| 168 | # CONFIG_IP_VS is not set | ||
| 169 | CONFIG_IPV6=m | ||
| 170 | # CONFIG_IPV6_PRIVACY is not set | ||
| 171 | # CONFIG_INET6_AH is not set | ||
| 172 | # CONFIG_INET6_ESP is not set | ||
| 173 | CONFIG_INET6_IPCOMP=m | ||
| 174 | CONFIG_INET6_TUNNEL=m | ||
| 175 | CONFIG_IPV6_TUNNEL=m | ||
| 176 | CONFIG_NETFILTER=y | ||
| 177 | CONFIG_NETFILTER_DEBUG=y | ||
| 178 | # CONFIG_NETFILTER_NETLINK is not set | ||
| 179 | |||
| 180 | # | ||
| 181 | # IP: Netfilter Configuration | ||
| 182 | # | ||
| 183 | CONFIG_IP_NF_CONNTRACK=m | ||
| 184 | # CONFIG_IP_NF_CT_ACCT is not set | ||
| 185 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
| 186 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
| 187 | # CONFIG_IP_NF_CT_PROTO_SCTP is not set | ||
| 188 | CONFIG_IP_NF_FTP=m | ||
| 189 | CONFIG_IP_NF_IRC=m | ||
| 190 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
| 191 | CONFIG_IP_NF_TFTP=m | ||
| 192 | CONFIG_IP_NF_AMANDA=m | ||
| 193 | # CONFIG_IP_NF_PPTP is not set | ||
| 194 | CONFIG_IP_NF_QUEUE=m | ||
| 195 | CONFIG_IP_NF_IPTABLES=m | ||
| 196 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
| 197 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
| 198 | CONFIG_IP_NF_MATCH_MAC=m | ||
| 199 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
| 200 | CONFIG_IP_NF_MATCH_MARK=m | ||
| 201 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
| 202 | CONFIG_IP_NF_MATCH_TOS=m | ||
| 203 | CONFIG_IP_NF_MATCH_RECENT=m | ||
| 204 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 205 | CONFIG_IP_NF_MATCH_DSCP=m | ||
| 206 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
| 207 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
| 208 | CONFIG_IP_NF_MATCH_TTL=m | ||
| 209 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
| 210 | CONFIG_IP_NF_MATCH_HELPER=m | ||
| 211 | CONFIG_IP_NF_MATCH_STATE=m | ||
| 212 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
| 213 | CONFIG_IP_NF_MATCH_OWNER=m | ||
| 214 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
| 215 | # CONFIG_IP_NF_MATCH_REALM is not set | ||
| 216 | # CONFIG_IP_NF_MATCH_SCTP is not set | ||
| 217 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
| 218 | # CONFIG_IP_NF_MATCH_COMMENT is not set | ||
| 219 | # CONFIG_IP_NF_MATCH_HASHLIMIT is not set | ||
| 220 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
| 221 | CONFIG_IP_NF_FILTER=m | ||
| 222 | CONFIG_IP_NF_TARGET_REJECT=m | ||
| 223 | CONFIG_IP_NF_TARGET_LOG=m | ||
| 224 | CONFIG_IP_NF_TARGET_ULOG=m | ||
| 225 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
| 226 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
| 227 | CONFIG_IP_NF_NAT=m | ||
| 228 | CONFIG_IP_NF_NAT_NEEDED=y | ||
| 229 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
| 230 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
| 231 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
| 232 | CONFIG_IP_NF_TARGET_SAME=m | ||
| 233 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | ||
| 234 | CONFIG_IP_NF_NAT_IRC=m | ||
| 235 | CONFIG_IP_NF_NAT_FTP=m | ||
| 236 | CONFIG_IP_NF_NAT_TFTP=m | ||
| 237 | CONFIG_IP_NF_NAT_AMANDA=m | ||
| 238 | CONFIG_IP_NF_MANGLE=m | ||
| 239 | CONFIG_IP_NF_TARGET_TOS=m | ||
| 240 | CONFIG_IP_NF_TARGET_ECN=m | ||
| 241 | CONFIG_IP_NF_TARGET_DSCP=m | ||
| 242 | CONFIG_IP_NF_TARGET_MARK=m | ||
| 243 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
| 244 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
| 245 | # CONFIG_IP_NF_RAW is not set | ||
| 246 | CONFIG_IP_NF_ARPTABLES=m | ||
| 247 | CONFIG_IP_NF_ARPFILTER=m | ||
| 248 | CONFIG_IP_NF_ARP_MANGLE=m | ||
| 249 | |||
| 250 | # | ||
| 251 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | ||
| 252 | # | ||
| 253 | # CONFIG_IP6_NF_QUEUE is not set | ||
| 254 | CONFIG_IP6_NF_IPTABLES=m | ||
| 255 | # CONFIG_IP6_NF_MATCH_LIMIT is not set | ||
| 256 | CONFIG_IP6_NF_MATCH_MAC=m | ||
| 257 | CONFIG_IP6_NF_MATCH_RT=m | ||
| 258 | # CONFIG_IP6_NF_MATCH_OPTS is not set | ||
| 259 | # CONFIG_IP6_NF_MATCH_FRAG is not set | ||
| 260 | # CONFIG_IP6_NF_MATCH_HL is not set | ||
| 261 | # CONFIG_IP6_NF_MATCH_MULTIPORT is not set | ||
| 262 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
| 263 | # CONFIG_IP6_NF_MATCH_MARK is not set | ||
| 264 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
| 265 | # CONFIG_IP6_NF_MATCH_AHESP is not set | ||
| 266 | CONFIG_IP6_NF_MATCH_LENGTH=m | ||
| 267 | # CONFIG_IP6_NF_MATCH_EUI64 is not set | ||
| 268 | CONFIG_IP6_NF_FILTER=m | ||
| 269 | CONFIG_IP6_NF_TARGET_LOG=m | ||
| 270 | CONFIG_IP6_NF_TARGET_REJECT=m | ||
| 271 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
| 272 | CONFIG_IP6_NF_MANGLE=m | ||
| 273 | # CONFIG_IP6_NF_TARGET_MARK is not set | ||
| 274 | # CONFIG_IP6_NF_TARGET_HL is not set | ||
| 275 | # CONFIG_IP6_NF_RAW is not set | ||
| 276 | |||
| 277 | # | ||
| 278 | # DCCP Configuration (EXPERIMENTAL) | ||
| 279 | # | ||
| 280 | # CONFIG_IP_DCCP is not set | ||
| 281 | |||
| 282 | # | ||
| 283 | # SCTP Configuration (EXPERIMENTAL) | ||
| 284 | # | ||
| 285 | # CONFIG_IP_SCTP is not set | ||
| 286 | # CONFIG_ATM is not set | ||
| 287 | # CONFIG_BRIDGE is not set | ||
| 288 | # CONFIG_VLAN_8021Q is not set | ||
| 289 | # CONFIG_DECNET is not set | ||
| 290 | # CONFIG_LLC2 is not set | ||
| 291 | # CONFIG_IPX is not set | ||
| 292 | # CONFIG_ATALK is not set | ||
| 293 | # CONFIG_X25 is not set | ||
| 294 | # CONFIG_LAPB is not set | ||
| 295 | # CONFIG_NET_DIVERT is not set | ||
| 296 | # CONFIG_ECONET is not set | ||
| 297 | # CONFIG_WAN_ROUTER is not set | ||
| 298 | # CONFIG_NET_SCHED is not set | ||
| 299 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 300 | |||
| 301 | # | ||
| 302 | # Network testing | ||
| 303 | # | ||
| 304 | CONFIG_NET_PKTGEN=m | ||
| 305 | # CONFIG_HAMRADIO is not set | ||
| 306 | # CONFIG_IRDA is not set | ||
| 307 | # CONFIG_BT is not set | ||
| 308 | # CONFIG_IEEE80211 is not set | ||
| 309 | |||
| 310 | # | ||
| 111 | # Device Drivers | 311 | # Device Drivers |
| 112 | # | 312 | # |
| 113 | 313 | ||
| @@ -120,6 +320,11 @@ CONFIG_FW_LOADER=y | |||
| 120 | # CONFIG_DEBUG_DRIVER is not set | 320 | # CONFIG_DEBUG_DRIVER is not set |
| 121 | 321 | ||
| 122 | # | 322 | # |
| 323 | # Connector - unified userspace <-> kernelspace linker | ||
| 324 | # | ||
| 325 | # CONFIG_CONNECTOR is not set | ||
| 326 | |||
| 327 | # | ||
| 123 | # Memory Technology Devices (MTD) | 328 | # Memory Technology Devices (MTD) |
| 124 | # | 329 | # |
| 125 | # CONFIG_MTD is not set | 330 | # CONFIG_MTD is not set |
| @@ -141,14 +346,14 @@ CONFIG_FW_LOADER=y | |||
| 141 | # CONFIG_BLK_CPQ_CISS_DA is not set | 346 | # CONFIG_BLK_CPQ_CISS_DA is not set |
| 142 | # CONFIG_BLK_DEV_DAC960 is not set | 347 | # CONFIG_BLK_DEV_DAC960 is not set |
| 143 | CONFIG_BLK_DEV_UMEM=m | 348 | CONFIG_BLK_DEV_UMEM=m |
| 349 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 144 | CONFIG_BLK_DEV_LOOP=y | 350 | CONFIG_BLK_DEV_LOOP=y |
| 145 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 351 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
| 146 | # CONFIG_BLK_DEV_NBD is not set | 352 | # CONFIG_BLK_DEV_NBD is not set |
| 147 | # CONFIG_BLK_DEV_SX8 is not set | 353 | # CONFIG_BLK_DEV_SX8 is not set |
| 148 | # CONFIG_BLK_DEV_UB is not set | 354 | # CONFIG_BLK_DEV_UB is not set |
| 149 | # CONFIG_BLK_DEV_RAM is not set | 355 | # CONFIG_BLK_DEV_RAM is not set |
| 150 | CONFIG_BLK_DEV_RAM_COUNT=16 | 356 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 151 | CONFIG_INITRAMFS_SOURCE="" | ||
| 152 | # CONFIG_CDROM_PKTCDVD is not set | 357 | # CONFIG_CDROM_PKTCDVD is not set |
| 153 | 358 | ||
| 154 | # | 359 | # |
| @@ -158,6 +363,7 @@ CONFIG_IOSCHED_NOOP=y | |||
| 158 | CONFIG_IOSCHED_AS=y | 363 | CONFIG_IOSCHED_AS=y |
| 159 | CONFIG_IOSCHED_DEADLINE=y | 364 | CONFIG_IOSCHED_DEADLINE=y |
| 160 | CONFIG_IOSCHED_CFQ=y | 365 | CONFIG_IOSCHED_CFQ=y |
| 366 | # CONFIG_ATA_OVER_ETH is not set | ||
| 161 | 367 | ||
| 162 | # | 368 | # |
| 163 | # ATA/ATAPI/MFM/RLL support | 369 | # ATA/ATAPI/MFM/RLL support |
| @@ -201,6 +407,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y | |||
| 201 | # CONFIG_BLK_DEV_HPT366 is not set | 407 | # CONFIG_BLK_DEV_HPT366 is not set |
| 202 | # CONFIG_BLK_DEV_SC1200 is not set | 408 | # CONFIG_BLK_DEV_SC1200 is not set |
| 203 | # CONFIG_BLK_DEV_PIIX is not set | 409 | # CONFIG_BLK_DEV_PIIX is not set |
| 410 | # CONFIG_BLK_DEV_IT821X is not set | ||
| 204 | CONFIG_BLK_DEV_NS87415=y | 411 | CONFIG_BLK_DEV_NS87415=y |
| 205 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | 412 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set |
| 206 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | 413 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set |
| @@ -218,6 +425,7 @@ CONFIG_BLK_DEV_IDEDMA=y | |||
| 218 | # | 425 | # |
| 219 | # SCSI device support | 426 | # SCSI device support |
| 220 | # | 427 | # |
| 428 | # CONFIG_RAID_ATTRS is not set | ||
| 221 | CONFIG_SCSI=y | 429 | CONFIG_SCSI=y |
| 222 | CONFIG_SCSI_PROC_FS=y | 430 | CONFIG_SCSI_PROC_FS=y |
| 223 | 431 | ||
| @@ -230,6 +438,7 @@ CONFIG_CHR_DEV_ST=y | |||
| 230 | CONFIG_BLK_DEV_SR=y | 438 | CONFIG_BLK_DEV_SR=y |
| 231 | # CONFIG_BLK_DEV_SR_VENDOR is not set | 439 | # CONFIG_BLK_DEV_SR_VENDOR is not set |
| 232 | CONFIG_CHR_DEV_SG=y | 440 | CONFIG_CHR_DEV_SG=y |
| 441 | # CONFIG_CHR_DEV_SCH is not set | ||
| 233 | 442 | ||
| 234 | # | 443 | # |
| 235 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | 444 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs |
| @@ -242,7 +451,9 @@ CONFIG_SCSI_MULTI_LUN=y | |||
| 242 | # SCSI Transport Attributes | 451 | # SCSI Transport Attributes |
| 243 | # | 452 | # |
| 244 | CONFIG_SCSI_SPI_ATTRS=y | 453 | CONFIG_SCSI_SPI_ATTRS=y |
| 245 | CONFIG_SCSI_FC_ATTRS=m | 454 | # CONFIG_SCSI_FC_ATTRS is not set |
| 455 | CONFIG_SCSI_ISCSI_ATTRS=m | ||
| 456 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
| 246 | 457 | ||
| 247 | # | 458 | # |
| 248 | # SCSI low-level drivers | 459 | # SCSI low-level drivers |
| @@ -258,25 +469,26 @@ CONFIG_SCSI_FC_ATTRS=m | |||
| 258 | # CONFIG_SCSI_ADVANSYS is not set | 469 | # CONFIG_SCSI_ADVANSYS is not set |
| 259 | # CONFIG_MEGARAID_NEWGEN is not set | 470 | # CONFIG_MEGARAID_NEWGEN is not set |
| 260 | # CONFIG_MEGARAID_LEGACY is not set | 471 | # CONFIG_MEGARAID_LEGACY is not set |
| 472 | # CONFIG_MEGARAID_SAS is not set | ||
| 261 | CONFIG_SCSI_SATA=y | 473 | CONFIG_SCSI_SATA=y |
| 262 | # CONFIG_SCSI_SATA_AHCI is not set | 474 | # CONFIG_SCSI_SATA_AHCI is not set |
| 263 | # CONFIG_SCSI_SATA_SVW is not set | 475 | # CONFIG_SCSI_SATA_SVW is not set |
| 264 | CONFIG_SCSI_ATA_PIIX=m | 476 | CONFIG_SCSI_ATA_PIIX=m |
| 477 | # CONFIG_SCSI_SATA_MV is not set | ||
| 265 | # CONFIG_SCSI_SATA_NV is not set | 478 | # CONFIG_SCSI_SATA_NV is not set |
| 266 | CONFIG_SCSI_SATA_PROMISE=m | 479 | CONFIG_SCSI_SATA_PROMISE=m |
| 480 | # CONFIG_SCSI_SATA_QSTOR is not set | ||
| 267 | # CONFIG_SCSI_SATA_SX4 is not set | 481 | # CONFIG_SCSI_SATA_SX4 is not set |
| 268 | CONFIG_SCSI_SATA_SIL=m | 482 | CONFIG_SCSI_SATA_SIL=m |
| 269 | # CONFIG_SCSI_SATA_SIS is not set | 483 | # CONFIG_SCSI_SATA_SIS is not set |
| 270 | # CONFIG_SCSI_SATA_ULI is not set | 484 | # CONFIG_SCSI_SATA_ULI is not set |
| 271 | CONFIG_SCSI_SATA_VIA=m | 485 | CONFIG_SCSI_SATA_VIA=m |
| 272 | # CONFIG_SCSI_SATA_VITESSE is not set | 486 | # CONFIG_SCSI_SATA_VITESSE is not set |
| 273 | # CONFIG_SCSI_BUSLOGIC is not set | 487 | CONFIG_SCSI_SATA_INTEL_COMBINED=y |
| 274 | # CONFIG_SCSI_CPQFCTS is not set | 488 | # CONFIG_SCSI_CPQFCTS is not set |
| 275 | # CONFIG_SCSI_DMX3191D is not set | 489 | # CONFIG_SCSI_DMX3191D is not set |
| 276 | # CONFIG_SCSI_EATA is not set | ||
| 277 | # CONFIG_SCSI_EATA_PIO is not set | 490 | # CONFIG_SCSI_EATA_PIO is not set |
| 278 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 491 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
| 279 | # CONFIG_SCSI_GDTH is not set | ||
| 280 | # CONFIG_SCSI_IPS is not set | 492 | # CONFIG_SCSI_IPS is not set |
| 281 | # CONFIG_SCSI_INITIO is not set | 493 | # CONFIG_SCSI_INITIO is not set |
| 282 | # CONFIG_SCSI_INIA100 is not set | 494 | # CONFIG_SCSI_INIA100 is not set |
| @@ -286,20 +498,17 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | |||
| 286 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | 498 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
| 287 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set | 499 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set |
| 288 | # CONFIG_SCSI_IPR is not set | 500 | # CONFIG_SCSI_IPR is not set |
| 289 | # CONFIG_SCSI_PCI2000 is not set | ||
| 290 | # CONFIG_SCSI_PCI2220I is not set | ||
| 291 | # CONFIG_SCSI_QLOGIC_ISP is not set | 501 | # CONFIG_SCSI_QLOGIC_ISP is not set |
| 292 | CONFIG_SCSI_QLOGIC_FC=m | 502 | # CONFIG_SCSI_QLOGIC_FC is not set |
| 293 | # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set | 503 | # CONFIG_SCSI_QLOGIC_1280 is not set |
| 294 | CONFIG_SCSI_QLOGIC_1280=m | ||
| 295 | # CONFIG_SCSI_QLOGIC_1280_1040 is not set | ||
| 296 | CONFIG_SCSI_QLA2XXX=y | 504 | CONFIG_SCSI_QLA2XXX=y |
| 297 | # CONFIG_SCSI_QLA21XX is not set | 505 | # CONFIG_SCSI_QLA21XX is not set |
| 298 | # CONFIG_SCSI_QLA22XX is not set | 506 | # CONFIG_SCSI_QLA22XX is not set |
| 299 | CONFIG_SCSI_QLA2300=m | 507 | # CONFIG_SCSI_QLA2300 is not set |
| 300 | CONFIG_SCSI_QLA2322=m | 508 | # CONFIG_SCSI_QLA2322 is not set |
| 301 | CONFIG_SCSI_QLA6312=m | 509 | # CONFIG_SCSI_QLA6312 is not set |
| 302 | CONFIG_SCSI_QLA6322=m | 510 | # CONFIG_SCSI_QLA24XX is not set |
| 511 | # CONFIG_SCSI_LPFC is not set | ||
| 303 | # CONFIG_SCSI_DC395x is not set | 512 | # CONFIG_SCSI_DC395x is not set |
| 304 | # CONFIG_SCSI_DC390T is not set | 513 | # CONFIG_SCSI_DC390T is not set |
| 305 | # CONFIG_SCSI_NSP32 is not set | 514 | # CONFIG_SCSI_NSP32 is not set |
| @@ -316,19 +525,24 @@ CONFIG_MD_RAID1=y | |||
| 316 | # CONFIG_MD_RAID10 is not set | 525 | # CONFIG_MD_RAID10 is not set |
| 317 | # CONFIG_MD_RAID5 is not set | 526 | # CONFIG_MD_RAID5 is not set |
| 318 | # CONFIG_MD_RAID6 is not set | 527 | # CONFIG_MD_RAID6 is not set |
| 319 | CONFIG_MD_MULTIPATH=y | 528 | # CONFIG_MD_MULTIPATH is not set |
| 320 | # CONFIG_MD_FAULTY is not set | 529 | # CONFIG_MD_FAULTY is not set |
| 321 | CONFIG_BLK_DEV_DM=y | 530 | CONFIG_BLK_DEV_DM=m |
| 322 | # CONFIG_DM_CRYPT is not set | 531 | CONFIG_DM_CRYPT=m |
| 323 | # CONFIG_DM_SNAPSHOT is not set | 532 | CONFIG_DM_SNAPSHOT=m |
| 324 | # CONFIG_DM_MIRROR is not set | 533 | CONFIG_DM_MIRROR=m |
| 325 | # CONFIG_DM_ZERO is not set | 534 | CONFIG_DM_ZERO=m |
| 535 | CONFIG_DM_MULTIPATH=m | ||
| 536 | # CONFIG_DM_MULTIPATH_EMC is not set | ||
| 326 | 537 | ||
| 327 | # | 538 | # |
| 328 | # Fusion MPT device support | 539 | # Fusion MPT device support |
| 329 | # | 540 | # |
| 330 | CONFIG_FUSION=m | 541 | CONFIG_FUSION=y |
| 331 | CONFIG_FUSION_MAX_SGE=40 | 542 | CONFIG_FUSION_SPI=m |
| 543 | # CONFIG_FUSION_FC is not set | ||
| 544 | # CONFIG_FUSION_SAS is not set | ||
| 545 | CONFIG_FUSION_MAX_SGE=128 | ||
| 332 | CONFIG_FUSION_CTL=m | 546 | CONFIG_FUSION_CTL=m |
| 333 | 547 | ||
| 334 | # | 548 | # |
| @@ -342,151 +556,13 @@ CONFIG_FUSION_CTL=m | |||
| 342 | # CONFIG_I2O is not set | 556 | # CONFIG_I2O is not set |
| 343 | 557 | ||
| 344 | # | 558 | # |
| 345 | # Networking support | 559 | # Network device support |
| 346 | # | ||
| 347 | CONFIG_NET=y | ||
| 348 | |||
| 349 | # | ||
| 350 | # Networking options | ||
| 351 | # | ||
| 352 | CONFIG_PACKET=y | ||
| 353 | CONFIG_PACKET_MMAP=y | ||
| 354 | CONFIG_NETLINK_DEV=y | ||
| 355 | CONFIG_UNIX=y | ||
| 356 | CONFIG_NET_KEY=m | ||
| 357 | CONFIG_INET=y | ||
| 358 | CONFIG_IP_MULTICAST=y | ||
| 359 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 360 | CONFIG_IP_PNP=y | ||
| 361 | # CONFIG_IP_PNP_DHCP is not set | ||
| 362 | CONFIG_IP_PNP_BOOTP=y | ||
| 363 | # CONFIG_IP_PNP_RARP is not set | ||
| 364 | # CONFIG_NET_IPIP is not set | ||
| 365 | # CONFIG_NET_IPGRE is not set | ||
| 366 | # CONFIG_IP_MROUTE is not set | ||
| 367 | # CONFIG_ARPD is not set | ||
| 368 | # CONFIG_SYN_COOKIES is not set | ||
| 369 | CONFIG_INET_AH=m | ||
| 370 | CONFIG_INET_ESP=m | ||
| 371 | # CONFIG_INET_IPCOMP is not set | ||
| 372 | # CONFIG_INET_TUNNEL is not set | ||
| 373 | CONFIG_IP_TCPDIAG=y | ||
| 374 | # CONFIG_IP_TCPDIAG_IPV6 is not set | ||
| 375 | |||
| 376 | # | ||
| 377 | # IP: Virtual Server Configuration | ||
| 378 | # | ||
| 379 | # CONFIG_IP_VS is not set | ||
| 380 | # CONFIG_IPV6 is not set | ||
| 381 | CONFIG_NETFILTER=y | ||
| 382 | CONFIG_NETFILTER_DEBUG=y | ||
| 383 | |||
| 384 | # | ||
| 385 | # IP: Netfilter Configuration | ||
| 386 | # | ||
| 387 | CONFIG_IP_NF_CONNTRACK=m | ||
| 388 | # CONFIG_IP_NF_CT_ACCT is not set | ||
| 389 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
| 390 | # CONFIG_IP_NF_CT_PROTO_SCTP is not set | ||
| 391 | CONFIG_IP_NF_FTP=m | ||
| 392 | CONFIG_IP_NF_IRC=m | ||
| 393 | CONFIG_IP_NF_TFTP=m | ||
| 394 | CONFIG_IP_NF_AMANDA=m | ||
| 395 | CONFIG_IP_NF_QUEUE=m | ||
| 396 | CONFIG_IP_NF_IPTABLES=m | ||
| 397 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
| 398 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
| 399 | CONFIG_IP_NF_MATCH_MAC=m | ||
| 400 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
| 401 | CONFIG_IP_NF_MATCH_MARK=m | ||
| 402 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
| 403 | CONFIG_IP_NF_MATCH_TOS=m | ||
| 404 | CONFIG_IP_NF_MATCH_RECENT=m | ||
| 405 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 406 | CONFIG_IP_NF_MATCH_DSCP=m | ||
| 407 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
| 408 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
| 409 | CONFIG_IP_NF_MATCH_TTL=m | ||
| 410 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
| 411 | CONFIG_IP_NF_MATCH_HELPER=m | ||
| 412 | CONFIG_IP_NF_MATCH_STATE=m | ||
| 413 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
| 414 | CONFIG_IP_NF_MATCH_OWNER=m | ||
| 415 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
| 416 | # CONFIG_IP_NF_MATCH_REALM is not set | ||
| 417 | # CONFIG_IP_NF_MATCH_SCTP is not set | ||
| 418 | # CONFIG_IP_NF_MATCH_COMMENT is not set | ||
| 419 | # CONFIG_IP_NF_MATCH_HASHLIMIT is not set | ||
| 420 | CONFIG_IP_NF_FILTER=m | ||
| 421 | CONFIG_IP_NF_TARGET_REJECT=m | ||
| 422 | CONFIG_IP_NF_TARGET_LOG=m | ||
| 423 | CONFIG_IP_NF_TARGET_ULOG=m | ||
| 424 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
| 425 | CONFIG_IP_NF_NAT=m | ||
| 426 | CONFIG_IP_NF_NAT_NEEDED=y | ||
| 427 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
| 428 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
| 429 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
| 430 | CONFIG_IP_NF_TARGET_SAME=m | ||
| 431 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | ||
| 432 | CONFIG_IP_NF_NAT_IRC=m | ||
| 433 | CONFIG_IP_NF_NAT_FTP=m | ||
| 434 | CONFIG_IP_NF_NAT_TFTP=m | ||
| 435 | CONFIG_IP_NF_NAT_AMANDA=m | ||
| 436 | CONFIG_IP_NF_MANGLE=m | ||
| 437 | CONFIG_IP_NF_TARGET_TOS=m | ||
| 438 | CONFIG_IP_NF_TARGET_ECN=m | ||
| 439 | CONFIG_IP_NF_TARGET_DSCP=m | ||
| 440 | CONFIG_IP_NF_TARGET_MARK=m | ||
| 441 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
| 442 | # CONFIG_IP_NF_RAW is not set | ||
| 443 | CONFIG_IP_NF_ARPTABLES=m | ||
| 444 | CONFIG_IP_NF_ARPFILTER=m | ||
| 445 | CONFIG_IP_NF_ARP_MANGLE=m | ||
| 446 | CONFIG_IP_NF_COMPAT_IPCHAINS=m | ||
| 447 | CONFIG_IP_NF_COMPAT_IPFWADM=m | ||
| 448 | CONFIG_XFRM=y | ||
| 449 | CONFIG_XFRM_USER=m | ||
| 450 | |||
| 451 | # | ||
| 452 | # SCTP Configuration (EXPERIMENTAL) | ||
| 453 | # | ||
| 454 | # CONFIG_IP_SCTP is not set | ||
| 455 | # CONFIG_ATM is not set | ||
| 456 | # CONFIG_BRIDGE is not set | ||
| 457 | # CONFIG_VLAN_8021Q is not set | ||
| 458 | # CONFIG_DECNET is not set | ||
| 459 | CONFIG_LLC=m | ||
| 460 | CONFIG_LLC2=m | ||
| 461 | # CONFIG_IPX is not set | ||
| 462 | # CONFIG_ATALK is not set | ||
| 463 | # CONFIG_X25 is not set | ||
| 464 | # CONFIG_LAPB is not set | ||
| 465 | # CONFIG_NET_DIVERT is not set | ||
| 466 | # CONFIG_ECONET is not set | ||
| 467 | # CONFIG_WAN_ROUTER is not set | ||
| 468 | |||
| 469 | # | ||
| 470 | # QoS and/or fair queueing | ||
| 471 | # | ||
| 472 | # CONFIG_NET_SCHED is not set | ||
| 473 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 474 | |||
| 475 | # | ||
| 476 | # Network testing | ||
| 477 | # | 560 | # |
| 478 | # CONFIG_NET_PKTGEN is not set | ||
| 479 | # CONFIG_NETPOLL is not set | ||
| 480 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 481 | # CONFIG_HAMRADIO is not set | ||
| 482 | # CONFIG_IRDA is not set | ||
| 483 | # CONFIG_BT is not set | ||
| 484 | CONFIG_NETDEVICES=y | 561 | CONFIG_NETDEVICES=y |
| 485 | CONFIG_DUMMY=m | 562 | CONFIG_DUMMY=m |
| 486 | CONFIG_BONDING=m | 563 | CONFIG_BONDING=m |
| 487 | # CONFIG_EQUALIZER is not set | 564 | # CONFIG_EQUALIZER is not set |
| 488 | CONFIG_TUN=m | 565 | CONFIG_TUN=m |
| 489 | # CONFIG_ETHERTAP is not set | ||
| 490 | 566 | ||
| 491 | # | 567 | # |
| 492 | # ARCnet devices | 568 | # ARCnet devices |
| @@ -494,12 +570,18 @@ CONFIG_TUN=m | |||
| 494 | # CONFIG_ARCNET is not set | 570 | # CONFIG_ARCNET is not set |
| 495 | 571 | ||
| 496 | # | 572 | # |
| 573 | # PHY device support | ||
| 574 | # | ||
| 575 | # CONFIG_PHYLIB is not set | ||
| 576 | |||
| 577 | # | ||
| 497 | # Ethernet (10 or 100Mbit) | 578 | # Ethernet (10 or 100Mbit) |
| 498 | # | 579 | # |
| 499 | CONFIG_NET_ETHERNET=y | 580 | CONFIG_NET_ETHERNET=y |
| 500 | CONFIG_MII=m | 581 | CONFIG_MII=m |
| 501 | CONFIG_HAPPYMEAL=m | 582 | # CONFIG_HAPPYMEAL is not set |
| 502 | # CONFIG_SUNGEM is not set | 583 | # CONFIG_SUNGEM is not set |
| 584 | # CONFIG_CASSINI is not set | ||
| 503 | # CONFIG_NET_VENDOR_3COM is not set | 585 | # CONFIG_NET_VENDOR_3COM is not set |
| 504 | 586 | ||
| 505 | # | 587 | # |
| @@ -514,28 +596,22 @@ CONFIG_TULIP_MMIO=y | |||
| 514 | # CONFIG_DE4X5 is not set | 596 | # CONFIG_DE4X5 is not set |
| 515 | # CONFIG_WINBOND_840 is not set | 597 | # CONFIG_WINBOND_840 is not set |
| 516 | # CONFIG_DM9102 is not set | 598 | # CONFIG_DM9102 is not set |
| 599 | # CONFIG_ULI526X is not set | ||
| 517 | # CONFIG_HP100 is not set | 600 | # CONFIG_HP100 is not set |
| 518 | CONFIG_NET_PCI=y | 601 | CONFIG_NET_PCI=y |
| 519 | CONFIG_PCNET32=m | 602 | # CONFIG_PCNET32 is not set |
| 520 | # CONFIG_AMD8111_ETH is not set | 603 | # CONFIG_AMD8111_ETH is not set |
| 521 | CONFIG_ADAPTEC_STARFIRE=m | 604 | # CONFIG_ADAPTEC_STARFIRE is not set |
| 522 | # CONFIG_ADAPTEC_STARFIRE_NAPI is not set | 605 | # CONFIG_B44 is not set |
| 523 | CONFIG_B44=m | ||
| 524 | # CONFIG_FORCEDETH is not set | 606 | # CONFIG_FORCEDETH is not set |
| 525 | # CONFIG_DGRS is not set | 607 | # CONFIG_DGRS is not set |
| 526 | CONFIG_EEPRO100=m | 608 | # CONFIG_EEPRO100 is not set |
| 527 | # CONFIG_EEPRO100_PIO is not set | ||
| 528 | CONFIG_E100=m | 609 | CONFIG_E100=m |
| 529 | # CONFIG_E100_NAPI is not set | ||
| 530 | # CONFIG_FEALNX is not set | 610 | # CONFIG_FEALNX is not set |
| 531 | CONFIG_NATSEMI=m | 611 | # CONFIG_NATSEMI is not set |
| 532 | # CONFIG_NE2K_PCI is not set | 612 | # CONFIG_NE2K_PCI is not set |
| 533 | # CONFIG_8139CP is not set | 613 | # CONFIG_8139CP is not set |
| 534 | CONFIG_8139TOO=m | 614 | # CONFIG_8139TOO is not set |
| 535 | # CONFIG_8139TOO_PIO is not set | ||
| 536 | # CONFIG_8139TOO_TUNE_TWISTER is not set | ||
| 537 | # CONFIG_8139TOO_8129 is not set | ||
| 538 | # CONFIG_8139_OLD_RX_RESET is not set | ||
| 539 | # CONFIG_SIS900 is not set | 615 | # CONFIG_SIS900 is not set |
| 540 | # CONFIG_EPIC100 is not set | 616 | # CONFIG_EPIC100 is not set |
| 541 | # CONFIG_SUNDANCE is not set | 617 | # CONFIG_SUNDANCE is not set |
| @@ -554,15 +630,18 @@ CONFIG_E1000=m | |||
| 554 | # CONFIG_HAMACHI is not set | 630 | # CONFIG_HAMACHI is not set |
| 555 | # CONFIG_YELLOWFIN is not set | 631 | # CONFIG_YELLOWFIN is not set |
| 556 | # CONFIG_R8169 is not set | 632 | # CONFIG_R8169 is not set |
| 633 | # CONFIG_SIS190 is not set | ||
| 634 | # CONFIG_SKGE is not set | ||
| 557 | # CONFIG_SK98LIN is not set | 635 | # CONFIG_SK98LIN is not set |
| 558 | # CONFIG_VIA_VELOCITY is not set | 636 | # CONFIG_VIA_VELOCITY is not set |
| 559 | CONFIG_TIGON3=m | 637 | CONFIG_TIGON3=m |
| 638 | # CONFIG_BNX2 is not set | ||
| 560 | 639 | ||
| 561 | # | 640 | # |
| 562 | # Ethernet (10000 Mbit) | 641 | # Ethernet (10000 Mbit) |
| 563 | # | 642 | # |
| 564 | CONFIG_IXGB=y | 643 | # CONFIG_CHELSIO_T1 is not set |
| 565 | CONFIG_IXGB_NAPI=y | 644 | # CONFIG_IXGB is not set |
| 566 | # CONFIG_S2IO is not set | 645 | # CONFIG_S2IO is not set |
| 567 | 646 | ||
| 568 | # | 647 | # |
| @@ -593,6 +672,8 @@ CONFIG_PPPOE=m | |||
| 593 | # CONFIG_NET_FC is not set | 672 | # CONFIG_NET_FC is not set |
| 594 | # CONFIG_SHAPER is not set | 673 | # CONFIG_SHAPER is not set |
| 595 | # CONFIG_NETCONSOLE is not set | 674 | # CONFIG_NETCONSOLE is not set |
| 675 | # CONFIG_NETPOLL is not set | ||
| 676 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 596 | 677 | ||
| 597 | # | 678 | # |
| 598 | # ISDN subsystem | 679 | # ISDN subsystem |
| @@ -622,16 +703,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200 | |||
| 622 | # CONFIG_INPUT_EVBUG is not set | 703 | # CONFIG_INPUT_EVBUG is not set |
| 623 | 704 | ||
| 624 | # | 705 | # |
| 625 | # Input I/O drivers | ||
| 626 | # | ||
| 627 | # CONFIG_GAMEPORT is not set | ||
| 628 | CONFIG_SOUND_GAMEPORT=y | ||
| 629 | CONFIG_SERIO=m | ||
| 630 | CONFIG_SERIO_SERPORT=m | ||
| 631 | # CONFIG_SERIO_PCIPS2 is not set | ||
| 632 | # CONFIG_SERIO_RAW is not set | ||
| 633 | |||
| 634 | # | ||
| 635 | # Input Device Drivers | 706 | # Input Device Drivers |
| 636 | # | 707 | # |
| 637 | CONFIG_INPUT_KEYBOARD=y | 708 | CONFIG_INPUT_KEYBOARD=y |
| @@ -649,6 +720,16 @@ CONFIG_INPUT_MOUSE=y | |||
| 649 | # CONFIG_INPUT_MISC is not set | 720 | # CONFIG_INPUT_MISC is not set |
| 650 | 721 | ||
| 651 | # | 722 | # |
| 723 | # Hardware I/O ports | ||
| 724 | # | ||
| 725 | CONFIG_SERIO=m | ||
| 726 | CONFIG_SERIO_SERPORT=m | ||
| 727 | # CONFIG_SERIO_PCIPS2 is not set | ||
| 728 | CONFIG_SERIO_LIBPS2=m | ||
| 729 | # CONFIG_SERIO_RAW is not set | ||
| 730 | # CONFIG_GAMEPORT is not set | ||
| 731 | |||
| 732 | # | ||
| 652 | # Character devices | 733 | # Character devices |
| 653 | # | 734 | # |
| 654 | CONFIG_VT=y | 735 | CONFIG_VT=y |
| @@ -666,7 +747,6 @@ CONFIG_SERIAL_8250_EXTENDED=y | |||
| 666 | CONFIG_SERIAL_8250_MANY_PORTS=y | 747 | CONFIG_SERIAL_8250_MANY_PORTS=y |
| 667 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 748 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
| 668 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 749 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
| 669 | # CONFIG_SERIAL_8250_MULTIPORT is not set | ||
| 670 | # CONFIG_SERIAL_8250_RSA is not set | 750 | # CONFIG_SERIAL_8250_RSA is not set |
| 671 | 751 | ||
| 672 | # | 752 | # |
| @@ -676,6 +756,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y | |||
| 676 | # CONFIG_PDC_CONSOLE is not set | 756 | # CONFIG_PDC_CONSOLE is not set |
| 677 | CONFIG_SERIAL_CORE=y | 757 | CONFIG_SERIAL_CORE=y |
| 678 | CONFIG_SERIAL_CORE_CONSOLE=y | 758 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 759 | # CONFIG_SERIAL_JSM is not set | ||
| 679 | CONFIG_UNIX98_PTYS=y | 760 | CONFIG_UNIX98_PTYS=y |
| 680 | CONFIG_LEGACY_PTYS=y | 761 | CONFIG_LEGACY_PTYS=y |
| 681 | CONFIG_LEGACY_PTY_COUNT=256 | 762 | CONFIG_LEGACY_PTY_COUNT=256 |
| @@ -698,12 +779,16 @@ CONFIG_GEN_RTC_X=y | |||
| 698 | # | 779 | # |
| 699 | # Ftape, the floppy tape device driver | 780 | # Ftape, the floppy tape device driver |
| 700 | # | 781 | # |
| 701 | # CONFIG_AGP is not set | ||
| 702 | # CONFIG_DRM is not set | 782 | # CONFIG_DRM is not set |
| 703 | CONFIG_RAW_DRIVER=y | 783 | CONFIG_RAW_DRIVER=y |
| 704 | CONFIG_MAX_RAW_DEVS=256 | 784 | CONFIG_MAX_RAW_DEVS=256 |
| 705 | 785 | ||
| 706 | # | 786 | # |
| 787 | # TPM devices | ||
| 788 | # | ||
| 789 | # CONFIG_TCG_TPM is not set | ||
| 790 | |||
| 791 | # | ||
| 707 | # I2C support | 792 | # I2C support |
| 708 | # | 793 | # |
| 709 | # CONFIG_I2C is not set | 794 | # CONFIG_I2C is not set |
| @@ -714,10 +799,20 @@ CONFIG_MAX_RAW_DEVS=256 | |||
| 714 | # CONFIG_W1 is not set | 799 | # CONFIG_W1 is not set |
| 715 | 800 | ||
| 716 | # | 801 | # |
| 802 | # Hardware Monitoring support | ||
| 803 | # | ||
| 804 | # CONFIG_HWMON is not set | ||
| 805 | # CONFIG_HWMON_VID is not set | ||
| 806 | |||
| 807 | # | ||
| 717 | # Misc devices | 808 | # Misc devices |
| 718 | # | 809 | # |
| 719 | 810 | ||
| 720 | # | 811 | # |
| 812 | # Multimedia Capabilities Port drivers | ||
| 813 | # | ||
| 814 | |||
| 815 | # | ||
| 721 | # Multimedia devices | 816 | # Multimedia devices |
| 722 | # | 817 | # |
| 723 | # CONFIG_VIDEO_DEV is not set | 818 | # CONFIG_VIDEO_DEV is not set |
| @@ -731,6 +826,11 @@ CONFIG_MAX_RAW_DEVS=256 | |||
| 731 | # Graphics support | 826 | # Graphics support |
| 732 | # | 827 | # |
| 733 | CONFIG_FB=y | 828 | CONFIG_FB=y |
| 829 | CONFIG_FB_CFB_FILLRECT=y | ||
| 830 | CONFIG_FB_CFB_COPYAREA=y | ||
| 831 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 832 | CONFIG_FB_SOFT_CURSOR=y | ||
| 833 | # CONFIG_FB_MACMODES is not set | ||
| 734 | # CONFIG_FB_MODE_HELPERS is not set | 834 | # CONFIG_FB_MODE_HELPERS is not set |
| 735 | # CONFIG_FB_TILEBLITTING is not set | 835 | # CONFIG_FB_TILEBLITTING is not set |
| 736 | # CONFIG_FB_CIRRUS is not set | 836 | # CONFIG_FB_CIRRUS is not set |
| @@ -739,6 +839,7 @@ CONFIG_FB=y | |||
| 739 | # CONFIG_FB_ASILIANT is not set | 839 | # CONFIG_FB_ASILIANT is not set |
| 740 | # CONFIG_FB_IMSTT is not set | 840 | # CONFIG_FB_IMSTT is not set |
| 741 | CONFIG_FB_STI=y | 841 | CONFIG_FB_STI=y |
| 842 | # CONFIG_FB_NVIDIA is not set | ||
| 742 | # CONFIG_FB_RIVA is not set | 843 | # CONFIG_FB_RIVA is not set |
| 743 | # CONFIG_FB_MATROX is not set | 844 | # CONFIG_FB_MATROX is not set |
| 744 | # CONFIG_FB_RADEON_OLD is not set | 845 | # CONFIG_FB_RADEON_OLD is not set |
| @@ -751,18 +852,20 @@ CONFIG_FB_STI=y | |||
| 751 | # CONFIG_FB_KYRO is not set | 852 | # CONFIG_FB_KYRO is not set |
| 752 | # CONFIG_FB_3DFX is not set | 853 | # CONFIG_FB_3DFX is not set |
| 753 | # CONFIG_FB_VOODOO1 is not set | 854 | # CONFIG_FB_VOODOO1 is not set |
| 855 | # CONFIG_FB_CYBLA is not set | ||
| 754 | # CONFIG_FB_TRIDENT is not set | 856 | # CONFIG_FB_TRIDENT is not set |
| 755 | # CONFIG_FB_PM3 is not set | 857 | # CONFIG_FB_PM3 is not set |
| 858 | # CONFIG_FB_S1D13XXX is not set | ||
| 756 | # CONFIG_FB_VIRTUAL is not set | 859 | # CONFIG_FB_VIRTUAL is not set |
| 757 | 860 | ||
| 758 | # | 861 | # |
| 759 | # Console display driver support | 862 | # Console display driver support |
| 760 | # | 863 | # |
| 761 | CONFIG_STI_CONSOLE=y | 864 | CONFIG_DUMMY_CONSOLE=y |
| 762 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 | 865 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 |
| 763 | CONFIG_DUMMY_CONSOLE_ROWS=64 | 866 | CONFIG_DUMMY_CONSOLE_ROWS=64 |
| 764 | CONFIG_DUMMY_CONSOLE=y | ||
| 765 | CONFIG_FRAMEBUFFER_CONSOLE=y | 867 | CONFIG_FRAMEBUFFER_CONSOLE=y |
| 868 | CONFIG_STI_CONSOLE=y | ||
| 766 | # CONFIG_FONTS is not set | 869 | # CONFIG_FONTS is not set |
| 767 | CONFIG_FONT_8x8=y | 870 | CONFIG_FONT_8x8=y |
| 768 | CONFIG_FONT_8x16=y | 871 | CONFIG_FONT_8x16=y |
| @@ -775,6 +878,7 @@ CONFIG_LOGO=y | |||
| 775 | # CONFIG_LOGO_LINUX_VGA16 is not set | 878 | # CONFIG_LOGO_LINUX_VGA16 is not set |
| 776 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 879 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
| 777 | CONFIG_LOGO_PARISC_CLUT224=y | 880 | CONFIG_LOGO_PARISC_CLUT224=y |
| 881 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 778 | 882 | ||
| 779 | # | 883 | # |
| 780 | # Sound | 884 | # Sound |
| @@ -784,7 +888,78 @@ CONFIG_SOUND=y | |||
| 784 | # | 888 | # |
| 785 | # Advanced Linux Sound Architecture | 889 | # Advanced Linux Sound Architecture |
| 786 | # | 890 | # |
| 787 | # CONFIG_SND is not set | 891 | CONFIG_SND=y |
| 892 | CONFIG_SND_TIMER=y | ||
| 893 | CONFIG_SND_PCM=y | ||
| 894 | CONFIG_SND_SEQUENCER=y | ||
| 895 | # CONFIG_SND_SEQ_DUMMY is not set | ||
| 896 | CONFIG_SND_OSSEMUL=y | ||
| 897 | CONFIG_SND_MIXER_OSS=y | ||
| 898 | CONFIG_SND_PCM_OSS=y | ||
| 899 | CONFIG_SND_SEQUENCER_OSS=y | ||
| 900 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
| 901 | # CONFIG_SND_DEBUG is not set | ||
| 902 | |||
| 903 | # | ||
| 904 | # Generic devices | ||
| 905 | # | ||
| 906 | # CONFIG_SND_DUMMY is not set | ||
| 907 | # CONFIG_SND_VIRMIDI is not set | ||
| 908 | # CONFIG_SND_MTPAV is not set | ||
| 909 | # CONFIG_SND_SERIAL_U16550 is not set | ||
| 910 | # CONFIG_SND_MPU401 is not set | ||
| 911 | CONFIG_SND_AC97_CODEC=y | ||
| 912 | CONFIG_SND_AC97_BUS=y | ||
| 913 | |||
| 914 | # | ||
| 915 | # PCI devices | ||
| 916 | # | ||
| 917 | # CONFIG_SND_ALI5451 is not set | ||
| 918 | # CONFIG_SND_ATIIXP is not set | ||
| 919 | # CONFIG_SND_ATIIXP_MODEM is not set | ||
| 920 | # CONFIG_SND_AU8810 is not set | ||
| 921 | # CONFIG_SND_AU8820 is not set | ||
| 922 | # CONFIG_SND_AU8830 is not set | ||
| 923 | # CONFIG_SND_AZT3328 is not set | ||
| 924 | # CONFIG_SND_BT87X is not set | ||
| 925 | # CONFIG_SND_CS46XX is not set | ||
| 926 | # CONFIG_SND_CS4281 is not set | ||
| 927 | # CONFIG_SND_EMU10K1 is not set | ||
| 928 | # CONFIG_SND_EMU10K1X is not set | ||
| 929 | # CONFIG_SND_CA0106 is not set | ||
| 930 | # CONFIG_SND_KORG1212 is not set | ||
| 931 | # CONFIG_SND_MIXART is not set | ||
| 932 | # CONFIG_SND_NM256 is not set | ||
| 933 | # CONFIG_SND_RME32 is not set | ||
| 934 | # CONFIG_SND_RME96 is not set | ||
| 935 | # CONFIG_SND_RME9652 is not set | ||
| 936 | # CONFIG_SND_HDSP is not set | ||
| 937 | # CONFIG_SND_HDSPM is not set | ||
| 938 | # CONFIG_SND_TRIDENT is not set | ||
| 939 | # CONFIG_SND_YMFPCI is not set | ||
| 940 | CONFIG_SND_AD1889=y | ||
| 941 | # CONFIG_SND_AD1889_OPL3 is not set | ||
| 942 | # CONFIG_SND_CMIPCI is not set | ||
| 943 | # CONFIG_SND_ENS1370 is not set | ||
| 944 | # CONFIG_SND_ENS1371 is not set | ||
| 945 | # CONFIG_SND_ES1938 is not set | ||
| 946 | # CONFIG_SND_ES1968 is not set | ||
| 947 | # CONFIG_SND_MAESTRO3 is not set | ||
| 948 | # CONFIG_SND_FM801 is not set | ||
| 949 | # CONFIG_SND_ICE1712 is not set | ||
| 950 | # CONFIG_SND_ICE1724 is not set | ||
| 951 | # CONFIG_SND_INTEL8X0 is not set | ||
| 952 | # CONFIG_SND_INTEL8X0M is not set | ||
| 953 | # CONFIG_SND_SONICVIBES is not set | ||
| 954 | # CONFIG_SND_VIA82XX is not set | ||
| 955 | # CONFIG_SND_VIA82XX_MODEM is not set | ||
| 956 | # CONFIG_SND_VX222 is not set | ||
| 957 | # CONFIG_SND_HDA_INTEL is not set | ||
| 958 | |||
| 959 | # | ||
| 960 | # USB devices | ||
| 961 | # | ||
| 962 | # CONFIG_SND_USB_AUDIO is not set | ||
| 788 | 963 | ||
| 789 | # | 964 | # |
| 790 | # Open Sound System | 965 | # Open Sound System |
| @@ -794,6 +969,8 @@ CONFIG_SOUND=y | |||
| 794 | # | 969 | # |
| 795 | # USB support | 970 | # USB support |
| 796 | # | 971 | # |
| 972 | CONFIG_USB_ARCH_HAS_HCD=y | ||
| 973 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
| 797 | CONFIG_USB=y | 974 | CONFIG_USB=y |
| 798 | CONFIG_USB_DEBUG=y | 975 | CONFIG_USB_DEBUG=y |
| 799 | 976 | ||
| @@ -804,23 +981,23 @@ CONFIG_USB_DEVICEFS=y | |||
| 804 | # CONFIG_USB_BANDWIDTH is not set | 981 | # CONFIG_USB_BANDWIDTH is not set |
| 805 | # CONFIG_USB_DYNAMIC_MINORS is not set | 982 | # CONFIG_USB_DYNAMIC_MINORS is not set |
| 806 | # CONFIG_USB_OTG is not set | 983 | # CONFIG_USB_OTG is not set |
| 807 | CONFIG_USB_ARCH_HAS_HCD=y | ||
| 808 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
| 809 | 984 | ||
| 810 | # | 985 | # |
| 811 | # USB Host Controller Drivers | 986 | # USB Host Controller Drivers |
| 812 | # | 987 | # |
| 813 | # CONFIG_USB_EHCI_HCD is not set | 988 | # CONFIG_USB_EHCI_HCD is not set |
| 989 | # CONFIG_USB_ISP116X_HCD is not set | ||
| 814 | CONFIG_USB_OHCI_HCD=y | 990 | CONFIG_USB_OHCI_HCD=y |
| 991 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | ||
| 992 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
| 815 | # CONFIG_USB_UHCI_HCD is not set | 993 | # CONFIG_USB_UHCI_HCD is not set |
| 816 | # CONFIG_USB_SL811_HCD is not set | 994 | # CONFIG_USB_SL811_HCD is not set |
| 817 | 995 | ||
| 818 | # | 996 | # |
| 819 | # USB Device Class drivers | 997 | # USB Device Class drivers |
| 820 | # | 998 | # |
| 821 | # CONFIG_USB_AUDIO is not set | 999 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set |
| 822 | # CONFIG_USB_BLUETOOTH_TTY is not set | 1000 | # CONFIG_USB_BLUETOOTH_TTY is not set |
| 823 | # CONFIG_USB_MIDI is not set | ||
| 824 | # CONFIG_USB_ACM is not set | 1001 | # CONFIG_USB_ACM is not set |
| 825 | CONFIG_USB_PRINTER=m | 1002 | CONFIG_USB_PRINTER=m |
| 826 | 1003 | ||
| @@ -829,12 +1006,11 @@ CONFIG_USB_PRINTER=m | |||
| 829 | # | 1006 | # |
| 830 | CONFIG_USB_STORAGE=m | 1007 | CONFIG_USB_STORAGE=m |
| 831 | # CONFIG_USB_STORAGE_DEBUG is not set | 1008 | # CONFIG_USB_STORAGE_DEBUG is not set |
| 832 | # CONFIG_USB_STORAGE_RW_DETECT is not set | 1009 | # CONFIG_USB_STORAGE_DATAFAB is not set |
| 833 | CONFIG_USB_STORAGE_DATAFAB=y | 1010 | # CONFIG_USB_STORAGE_FREECOM is not set |
| 834 | CONFIG_USB_STORAGE_FREECOM=y | ||
| 835 | # CONFIG_USB_STORAGE_ISD200 is not set | 1011 | # CONFIG_USB_STORAGE_ISD200 is not set |
| 836 | CONFIG_USB_STORAGE_DPCM=y | 1012 | CONFIG_USB_STORAGE_DPCM=y |
| 837 | CONFIG_USB_STORAGE_HP8200e=y | 1013 | CONFIG_USB_STORAGE_USBAT=y |
| 838 | CONFIG_USB_STORAGE_SDDR09=y | 1014 | CONFIG_USB_STORAGE_SDDR09=y |
| 839 | CONFIG_USB_STORAGE_SDDR55=y | 1015 | CONFIG_USB_STORAGE_SDDR55=y |
| 840 | CONFIG_USB_STORAGE_JUMPSHOT=y | 1016 | CONFIG_USB_STORAGE_JUMPSHOT=y |
| @@ -846,21 +1022,25 @@ CONFIG_USB_HID=y | |||
| 846 | CONFIG_USB_HIDINPUT=y | 1022 | CONFIG_USB_HIDINPUT=y |
| 847 | # CONFIG_HID_FF is not set | 1023 | # CONFIG_HID_FF is not set |
| 848 | CONFIG_USB_HIDDEV=y | 1024 | CONFIG_USB_HIDDEV=y |
| 849 | CONFIG_USB_AIPTEK=m | 1025 | # CONFIG_USB_AIPTEK is not set |
| 850 | CONFIG_USB_WACOM=m | 1026 | # CONFIG_USB_WACOM is not set |
| 851 | CONFIG_USB_KBTAB=m | 1027 | # CONFIG_USB_ACECAD is not set |
| 1028 | # CONFIG_USB_KBTAB is not set | ||
| 852 | # CONFIG_USB_POWERMATE is not set | 1029 | # CONFIG_USB_POWERMATE is not set |
| 853 | # CONFIG_USB_MTOUCH is not set | 1030 | # CONFIG_USB_MTOUCH is not set |
| 1031 | # CONFIG_USB_ITMTOUCH is not set | ||
| 854 | # CONFIG_USB_EGALAX is not set | 1032 | # CONFIG_USB_EGALAX is not set |
| 1033 | # CONFIG_USB_YEALINK is not set | ||
| 855 | # CONFIG_USB_XPAD is not set | 1034 | # CONFIG_USB_XPAD is not set |
| 856 | # CONFIG_USB_ATI_REMOTE is not set | 1035 | # CONFIG_USB_ATI_REMOTE is not set |
| 1036 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
| 1037 | # CONFIG_USB_APPLETOUCH is not set | ||
| 857 | 1038 | ||
| 858 | # | 1039 | # |
| 859 | # USB Imaging devices | 1040 | # USB Imaging devices |
| 860 | # | 1041 | # |
| 861 | CONFIG_USB_MDC800=m | 1042 | CONFIG_USB_MDC800=m |
| 862 | CONFIG_USB_MICROTEK=m | 1043 | CONFIG_USB_MICROTEK=m |
| 863 | CONFIG_USB_HPUSBSCSI=m | ||
| 864 | 1044 | ||
| 865 | # | 1045 | # |
| 866 | # USB Multimedia devices | 1046 | # USB Multimedia devices |
| @@ -879,6 +1059,7 @@ CONFIG_USB_HPUSBSCSI=m | |||
| 879 | # CONFIG_USB_PEGASUS is not set | 1059 | # CONFIG_USB_PEGASUS is not set |
| 880 | # CONFIG_USB_RTL8150 is not set | 1060 | # CONFIG_USB_RTL8150 is not set |
| 881 | # CONFIG_USB_USBNET is not set | 1061 | # CONFIG_USB_USBNET is not set |
| 1062 | # CONFIG_USB_MON is not set | ||
| 882 | 1063 | ||
| 883 | # | 1064 | # |
| 884 | # USB port drivers | 1065 | # USB port drivers |
| @@ -894,7 +1075,6 @@ CONFIG_USB_HPUSBSCSI=m | |||
| 894 | # | 1075 | # |
| 895 | # CONFIG_USB_EMI62 is not set | 1076 | # CONFIG_USB_EMI62 is not set |
| 896 | # CONFIG_USB_EMI26 is not set | 1077 | # CONFIG_USB_EMI26 is not set |
| 897 | # CONFIG_USB_TIGL is not set | ||
| 898 | # CONFIG_USB_AUERSWALD is not set | 1078 | # CONFIG_USB_AUERSWALD is not set |
| 899 | # CONFIG_USB_RIO500 is not set | 1079 | # CONFIG_USB_RIO500 is not set |
| 900 | CONFIG_USB_LEGOTOWER=m | 1080 | CONFIG_USB_LEGOTOWER=m |
| @@ -903,10 +1083,12 @@ CONFIG_USB_LEGOTOWER=m | |||
| 903 | # CONFIG_USB_CYTHERM is not set | 1083 | # CONFIG_USB_CYTHERM is not set |
| 904 | # CONFIG_USB_PHIDGETKIT is not set | 1084 | # CONFIG_USB_PHIDGETKIT is not set |
| 905 | # CONFIG_USB_PHIDGETSERVO is not set | 1085 | # CONFIG_USB_PHIDGETSERVO is not set |
| 1086 | # CONFIG_USB_IDMOUSE is not set | ||
| 1087 | # CONFIG_USB_LD is not set | ||
| 906 | # CONFIG_USB_TEST is not set | 1088 | # CONFIG_USB_TEST is not set |
| 907 | 1089 | ||
| 908 | # | 1090 | # |
| 909 | # USB ATM/DSL drivers | 1091 | # USB DSL modem support |
| 910 | # | 1092 | # |
| 911 | 1093 | ||
| 912 | # | 1094 | # |
| @@ -920,27 +1102,41 @@ CONFIG_USB_LEGOTOWER=m | |||
| 920 | # CONFIG_MMC is not set | 1102 | # CONFIG_MMC is not set |
| 921 | 1103 | ||
| 922 | # | 1104 | # |
| 1105 | # InfiniBand support | ||
| 1106 | # | ||
| 1107 | # CONFIG_INFINIBAND is not set | ||
| 1108 | |||
| 1109 | # | ||
| 1110 | # SN Devices | ||
| 1111 | # | ||
| 1112 | |||
| 1113 | # | ||
| 923 | # File systems | 1114 | # File systems |
| 924 | # | 1115 | # |
| 925 | CONFIG_EXT2_FS=y | 1116 | CONFIG_EXT2_FS=y |
| 926 | # CONFIG_EXT2_FS_XATTR is not set | 1117 | # CONFIG_EXT2_FS_XATTR is not set |
| 1118 | # CONFIG_EXT2_FS_XIP is not set | ||
| 927 | CONFIG_EXT3_FS=y | 1119 | CONFIG_EXT3_FS=y |
| 928 | # CONFIG_EXT3_FS_XATTR is not set | 1120 | # CONFIG_EXT3_FS_XATTR is not set |
| 929 | CONFIG_JBD=y | 1121 | CONFIG_JBD=y |
| 930 | # CONFIG_JBD_DEBUG is not set | 1122 | # CONFIG_JBD_DEBUG is not set |
| 931 | # CONFIG_REISERFS_FS is not set | 1123 | # CONFIG_REISERFS_FS is not set |
| 932 | # CONFIG_JFS_FS is not set | 1124 | # CONFIG_JFS_FS is not set |
| 1125 | # CONFIG_FS_POSIX_ACL is not set | ||
| 933 | CONFIG_XFS_FS=m | 1126 | CONFIG_XFS_FS=m |
| 934 | # CONFIG_XFS_RT is not set | 1127 | CONFIG_XFS_EXPORT=y |
| 935 | # CONFIG_XFS_QUOTA is not set | 1128 | # CONFIG_XFS_QUOTA is not set |
| 936 | # CONFIG_XFS_SECURITY is not set | 1129 | # CONFIG_XFS_SECURITY is not set |
| 937 | # CONFIG_XFS_POSIX_ACL is not set | 1130 | # CONFIG_XFS_POSIX_ACL is not set |
| 1131 | # CONFIG_XFS_RT is not set | ||
| 938 | # CONFIG_MINIX_FS is not set | 1132 | # CONFIG_MINIX_FS is not set |
| 939 | # CONFIG_ROMFS_FS is not set | 1133 | # CONFIG_ROMFS_FS is not set |
| 1134 | CONFIG_INOTIFY=y | ||
| 940 | # CONFIG_QUOTA is not set | 1135 | # CONFIG_QUOTA is not set |
| 941 | CONFIG_DNOTIFY=y | 1136 | CONFIG_DNOTIFY=y |
| 942 | # CONFIG_AUTOFS_FS is not set | 1137 | # CONFIG_AUTOFS_FS is not set |
| 943 | CONFIG_AUTOFS4_FS=y | 1138 | CONFIG_AUTOFS4_FS=y |
| 1139 | # CONFIG_FUSE_FS is not set | ||
| 944 | 1140 | ||
| 945 | # | 1141 | # |
| 946 | # CD-ROM/DVD Filesystems | 1142 | # CD-ROM/DVD Filesystems |
| @@ -966,13 +1162,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 966 | CONFIG_PROC_FS=y | 1162 | CONFIG_PROC_FS=y |
| 967 | CONFIG_PROC_KCORE=y | 1163 | CONFIG_PROC_KCORE=y |
| 968 | CONFIG_SYSFS=y | 1164 | CONFIG_SYSFS=y |
| 969 | # CONFIG_DEVFS_FS is not set | ||
| 970 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
| 971 | CONFIG_TMPFS=y | 1165 | CONFIG_TMPFS=y |
| 972 | # CONFIG_TMPFS_XATTR is not set | ||
| 973 | # CONFIG_HUGETLBFS is not set | 1166 | # CONFIG_HUGETLBFS is not set |
| 974 | # CONFIG_HUGETLB_PAGE is not set | 1167 | # CONFIG_HUGETLB_PAGE is not set |
| 975 | CONFIG_RAMFS=y | 1168 | CONFIG_RAMFS=y |
| 1169 | # CONFIG_RELAYFS_FS is not set | ||
| 976 | 1170 | ||
| 977 | # | 1171 | # |
| 978 | # Miscellaneous filesystems | 1172 | # Miscellaneous filesystems |
| @@ -996,16 +1190,19 @@ CONFIG_RAMFS=y | |||
| 996 | # | 1190 | # |
| 997 | CONFIG_NFS_FS=y | 1191 | CONFIG_NFS_FS=y |
| 998 | CONFIG_NFS_V3=y | 1192 | CONFIG_NFS_V3=y |
| 1193 | # CONFIG_NFS_V3_ACL is not set | ||
| 999 | # CONFIG_NFS_V4 is not set | 1194 | # CONFIG_NFS_V4 is not set |
| 1000 | # CONFIG_NFS_DIRECTIO is not set | 1195 | # CONFIG_NFS_DIRECTIO is not set |
| 1001 | CONFIG_NFSD=y | 1196 | CONFIG_NFSD=y |
| 1002 | CONFIG_NFSD_V3=y | 1197 | CONFIG_NFSD_V3=y |
| 1198 | # CONFIG_NFSD_V3_ACL is not set | ||
| 1003 | # CONFIG_NFSD_V4 is not set | 1199 | # CONFIG_NFSD_V4 is not set |
| 1004 | # CONFIG_NFSD_TCP is not set | 1200 | # CONFIG_NFSD_TCP is not set |
| 1005 | CONFIG_ROOT_NFS=y | 1201 | CONFIG_ROOT_NFS=y |
| 1006 | CONFIG_LOCKD=y | 1202 | CONFIG_LOCKD=y |
| 1007 | CONFIG_LOCKD_V4=y | 1203 | CONFIG_LOCKD_V4=y |
| 1008 | CONFIG_EXPORTFS=y | 1204 | CONFIG_EXPORTFS=y |
| 1205 | CONFIG_NFS_COMMON=y | ||
| 1009 | CONFIG_SUNRPC=y | 1206 | CONFIG_SUNRPC=y |
| 1010 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1207 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
| 1011 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1208 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
| @@ -1014,6 +1211,7 @@ CONFIG_SUNRPC=y | |||
| 1014 | # CONFIG_NCP_FS is not set | 1211 | # CONFIG_NCP_FS is not set |
| 1015 | # CONFIG_CODA_FS is not set | 1212 | # CONFIG_CODA_FS is not set |
| 1016 | # CONFIG_AFS_FS is not set | 1213 | # CONFIG_AFS_FS is not set |
| 1214 | # CONFIG_9P_FS is not set | ||
| 1017 | 1215 | ||
| 1018 | # | 1216 | # |
| 1019 | # Partition Types | 1217 | # Partition Types |
| @@ -1074,13 +1272,19 @@ CONFIG_OPROFILE=m | |||
| 1074 | # | 1272 | # |
| 1075 | # Kernel hacking | 1273 | # Kernel hacking |
| 1076 | # | 1274 | # |
| 1275 | # CONFIG_PRINTK_TIME is not set | ||
| 1077 | CONFIG_DEBUG_KERNEL=y | 1276 | CONFIG_DEBUG_KERNEL=y |
| 1078 | CONFIG_MAGIC_SYSRQ=y | 1277 | CONFIG_MAGIC_SYSRQ=y |
| 1278 | CONFIG_LOG_BUF_SHIFT=16 | ||
| 1279 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 1079 | # CONFIG_SCHEDSTATS is not set | 1280 | # CONFIG_SCHEDSTATS is not set |
| 1080 | # CONFIG_DEBUG_SLAB is not set | 1281 | # CONFIG_DEBUG_SLAB is not set |
| 1081 | # CONFIG_DEBUG_SPINLOCK is not set | 1282 | # CONFIG_DEBUG_SPINLOCK is not set |
| 1283 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 1082 | # CONFIG_DEBUG_KOBJECT is not set | 1284 | # CONFIG_DEBUG_KOBJECT is not set |
| 1083 | # CONFIG_DEBUG_INFO is not set | 1285 | # CONFIG_DEBUG_INFO is not set |
| 1286 | # CONFIG_DEBUG_IOREMAP is not set | ||
| 1287 | # CONFIG_DEBUG_FS is not set | ||
| 1084 | 1288 | ||
| 1085 | # | 1289 | # |
| 1086 | # Security options | 1290 | # Security options |
| @@ -1092,21 +1296,22 @@ CONFIG_MAGIC_SYSRQ=y | |||
| 1092 | # Cryptographic options | 1296 | # Cryptographic options |
| 1093 | # | 1297 | # |
| 1094 | CONFIG_CRYPTO=y | 1298 | CONFIG_CRYPTO=y |
| 1095 | CONFIG_CRYPTO_HMAC=y | 1299 | # CONFIG_CRYPTO_HMAC is not set |
| 1096 | CONFIG_CRYPTO_NULL=m | 1300 | CONFIG_CRYPTO_NULL=m |
| 1097 | CONFIG_CRYPTO_MD4=m | 1301 | # CONFIG_CRYPTO_MD4 is not set |
| 1098 | CONFIG_CRYPTO_MD5=m | 1302 | CONFIG_CRYPTO_MD5=m |
| 1099 | CONFIG_CRYPTO_SHA1=m | 1303 | # CONFIG_CRYPTO_SHA1 is not set |
| 1100 | CONFIG_CRYPTO_SHA256=m | 1304 | # CONFIG_CRYPTO_SHA256 is not set |
| 1101 | # CONFIG_CRYPTO_SHA512 is not set | 1305 | # CONFIG_CRYPTO_SHA512 is not set |
| 1102 | # CONFIG_CRYPTO_WP512 is not set | 1306 | # CONFIG_CRYPTO_WP512 is not set |
| 1307 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 1103 | CONFIG_CRYPTO_DES=m | 1308 | CONFIG_CRYPTO_DES=m |
| 1104 | CONFIG_CRYPTO_BLOWFISH=m | 1309 | CONFIG_CRYPTO_BLOWFISH=m |
| 1105 | CONFIG_CRYPTO_TWOFISH=m | 1310 | # CONFIG_CRYPTO_TWOFISH is not set |
| 1106 | CONFIG_CRYPTO_SERPENT=m | 1311 | # CONFIG_CRYPTO_SERPENT is not set |
| 1107 | CONFIG_CRYPTO_AES=m | 1312 | # CONFIG_CRYPTO_AES is not set |
| 1108 | CONFIG_CRYPTO_CAST5=m | 1313 | # CONFIG_CRYPTO_CAST5 is not set |
| 1109 | CONFIG_CRYPTO_CAST6=m | 1314 | # CONFIG_CRYPTO_CAST6 is not set |
| 1110 | # CONFIG_CRYPTO_TEA is not set | 1315 | # CONFIG_CRYPTO_TEA is not set |
| 1111 | # CONFIG_CRYPTO_ARC4 is not set | 1316 | # CONFIG_CRYPTO_ARC4 is not set |
| 1112 | # CONFIG_CRYPTO_KHAZAD is not set | 1317 | # CONFIG_CRYPTO_KHAZAD is not set |
| @@ -1117,9 +1322,14 @@ CONFIG_CRYPTO_CRC32C=m | |||
| 1117 | CONFIG_CRYPTO_TEST=m | 1322 | CONFIG_CRYPTO_TEST=m |
| 1118 | 1323 | ||
| 1119 | # | 1324 | # |
| 1325 | # Hardware crypto devices | ||
| 1326 | # | ||
| 1327 | |||
| 1328 | # | ||
| 1120 | # Library routines | 1329 | # Library routines |
| 1121 | # | 1330 | # |
| 1122 | CONFIG_CRC_CCITT=m | 1331 | CONFIG_CRC_CCITT=m |
| 1332 | # CONFIG_CRC16 is not set | ||
| 1123 | CONFIG_CRC32=y | 1333 | CONFIG_CRC32=y |
| 1124 | CONFIG_LIBCRC32C=m | 1334 | CONFIG_LIBCRC32C=m |
| 1125 | CONFIG_ZLIB_INFLATE=m | 1335 | CONFIG_ZLIB_INFLATE=m |
diff --git a/arch/parisc/defconfig b/arch/parisc/defconfig index fdae21c503d7..f38a4620d24f 100644 --- a/arch/parisc/defconfig +++ b/arch/parisc/defconfig | |||
| @@ -1,38 +1,56 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.14-rc5-pa1 | ||
| 4 | # Fri Oct 21 23:01:33 2005 | ||
| 3 | # | 5 | # |
| 4 | CONFIG_PARISC=y | 6 | CONFIG_PARISC=y |
| 5 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 6 | CONFIG_STACK_GROWSUP=y | 8 | CONFIG_STACK_GROWSUP=y |
| 7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 11 | CONFIG_GENERIC_HARDIRQS=y | ||
| 12 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 8 | 13 | ||
| 9 | # | 14 | # |
| 10 | # Code maturity level options | 15 | # Code maturity level options |
| 11 | # | 16 | # |
| 12 | CONFIG_EXPERIMENTAL=y | 17 | CONFIG_EXPERIMENTAL=y |
| 13 | CONFIG_CLEAN_COMPILE=y | 18 | CONFIG_CLEAN_COMPILE=y |
| 14 | CONFIG_STANDALONE=y | ||
| 15 | CONFIG_BROKEN_ON_SMP=y | 19 | CONFIG_BROKEN_ON_SMP=y |
| 20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 16 | 21 | ||
| 17 | # | 22 | # |
| 18 | # General setup | 23 | # General setup |
| 19 | # | 24 | # |
| 25 | CONFIG_LOCALVERSION="" | ||
| 26 | # CONFIG_LOCALVERSION_AUTO is not set | ||
| 20 | CONFIG_SWAP=y | 27 | CONFIG_SWAP=y |
| 21 | CONFIG_SYSVIPC=y | 28 | CONFIG_SYSVIPC=y |
| 29 | # CONFIG_POSIX_MQUEUE is not set | ||
| 22 | # CONFIG_BSD_PROCESS_ACCT is not set | 30 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 23 | CONFIG_SYSCTL=y | 31 | CONFIG_SYSCTL=y |
| 24 | CONFIG_LOG_BUF_SHIFT=15 | 32 | # CONFIG_AUDIT is not set |
| 25 | # CONFIG_HOTPLUG is not set | 33 | # CONFIG_HOTPLUG is not set |
| 34 | CONFIG_KOBJECT_UEVENT=y | ||
| 26 | CONFIG_IKCONFIG=y | 35 | CONFIG_IKCONFIG=y |
| 27 | CONFIG_IKCONFIG_PROC=y | 36 | CONFIG_IKCONFIG_PROC=y |
| 37 | CONFIG_INITRAMFS_SOURCE="" | ||
| 28 | # CONFIG_EMBEDDED is not set | 38 | # CONFIG_EMBEDDED is not set |
| 29 | CONFIG_KALLSYMS=y | 39 | CONFIG_KALLSYMS=y |
| 40 | # CONFIG_KALLSYMS_ALL is not set | ||
| 41 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
| 42 | CONFIG_PRINTK=y | ||
| 43 | CONFIG_BUG=y | ||
| 44 | CONFIG_BASE_FULL=y | ||
| 30 | CONFIG_FUTEX=y | 45 | CONFIG_FUTEX=y |
| 31 | CONFIG_EPOLL=y | 46 | CONFIG_EPOLL=y |
| 32 | CONFIG_IOSCHED_NOOP=y | 47 | CONFIG_SHMEM=y |
| 33 | CONFIG_IOSCHED_AS=y | 48 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
| 34 | CONFIG_IOSCHED_DEADLINE=y | 49 | CONFIG_CC_ALIGN_LABELS=0 |
| 35 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 50 | CONFIG_CC_ALIGN_LOOPS=0 |
| 51 | CONFIG_CC_ALIGN_JUMPS=0 | ||
| 52 | # CONFIG_TINY_SHMEM is not set | ||
| 53 | CONFIG_BASE_SMALL=0 | ||
| 36 | 54 | ||
| 37 | # | 55 | # |
| 38 | # Loadable module support | 56 | # Loadable module support |
| @@ -45,10 +63,21 @@ CONFIG_IOSCHED_DEADLINE=y | |||
| 45 | CONFIG_PA7000=y | 63 | CONFIG_PA7000=y |
| 46 | # CONFIG_PA7100LC is not set | 64 | # CONFIG_PA7100LC is not set |
| 47 | # CONFIG_PA7200 is not set | 65 | # CONFIG_PA7200 is not set |
| 66 | # CONFIG_PA7300LC is not set | ||
| 48 | # CONFIG_PA8X00 is not set | 67 | # CONFIG_PA8X00 is not set |
| 49 | CONFIG_PA11=y | 68 | CONFIG_PA11=y |
| 50 | # CONFIG_64BIT is not set | ||
| 51 | # CONFIG_SMP is not set | 69 | # CONFIG_SMP is not set |
| 70 | # CONFIG_HZ_100 is not set | ||
| 71 | CONFIG_HZ_250=y | ||
| 72 | # CONFIG_HZ_1000 is not set | ||
| 73 | CONFIG_HZ=250 | ||
| 74 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 75 | CONFIG_FLATMEM_MANUAL=y | ||
| 76 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 77 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 78 | CONFIG_FLATMEM=y | ||
| 79 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 80 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 52 | # CONFIG_PREEMPT is not set | 81 | # CONFIG_PREEMPT is not set |
| 53 | # CONFIG_HPUX is not set | 82 | # CONFIG_HPUX is not set |
| 54 | 83 | ||
| @@ -65,14 +94,29 @@ CONFIG_EISA_NAMES=y | |||
| 65 | # CONFIG_ISA is not set | 94 | # CONFIG_ISA is not set |
| 66 | CONFIG_PCI=y | 95 | CONFIG_PCI=y |
| 67 | CONFIG_PCI_LEGACY_PROC=y | 96 | CONFIG_PCI_LEGACY_PROC=y |
| 68 | CONFIG_PCI_NAMES=y | 97 | # CONFIG_PCI_DEBUG is not set |
| 69 | CONFIG_GSC_DINO=y | 98 | CONFIG_GSC_DINO=y |
| 70 | CONFIG_PCI_LBA=y | 99 | CONFIG_PCI_LBA=y |
| 71 | CONFIG_IOSAPIC=y | 100 | CONFIG_IOSAPIC=y |
| 72 | CONFIG_IOMMU_SBA=y | 101 | CONFIG_IOMMU_SBA=y |
| 102 | |||
| 103 | # | ||
| 104 | # PCCARD (PCMCIA/CardBus) support | ||
| 105 | # | ||
| 106 | # CONFIG_PCCARD is not set | ||
| 107 | |||
| 108 | # | ||
| 109 | # PCI Hotplug Support | ||
| 110 | # | ||
| 111 | # CONFIG_HOTPLUG_PCI is not set | ||
| 112 | |||
| 113 | # | ||
| 114 | # PA-RISC specific drivers | ||
| 115 | # | ||
| 73 | CONFIG_SUPERIO=y | 116 | CONFIG_SUPERIO=y |
| 74 | CONFIG_CHASSIS_LCD_LED=y | 117 | CONFIG_CHASSIS_LCD_LED=y |
| 75 | CONFIG_PDC_CHASSIS=y | 118 | CONFIG_PDC_CHASSIS=y |
| 119 | CONFIG_PDC_STABLE=y | ||
| 76 | 120 | ||
| 77 | # | 121 | # |
| 78 | # Executable file formats | 122 | # Executable file formats |
| @@ -81,15 +125,97 @@ CONFIG_BINFMT_ELF=y | |||
| 81 | # CONFIG_BINFMT_MISC is not set | 125 | # CONFIG_BINFMT_MISC is not set |
| 82 | 126 | ||
| 83 | # | 127 | # |
| 128 | # Networking | ||
| 129 | # | ||
| 130 | CONFIG_NET=y | ||
| 131 | |||
| 132 | # | ||
| 133 | # Networking options | ||
| 134 | # | ||
| 135 | CONFIG_PACKET=y | ||
| 136 | CONFIG_PACKET_MMAP=y | ||
| 137 | CONFIG_UNIX=y | ||
| 138 | # CONFIG_NET_KEY is not set | ||
| 139 | CONFIG_INET=y | ||
| 140 | CONFIG_IP_MULTICAST=y | ||
| 141 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 142 | CONFIG_IP_FIB_HASH=y | ||
| 143 | CONFIG_IP_PNP=y | ||
| 144 | # CONFIG_IP_PNP_DHCP is not set | ||
| 145 | CONFIG_IP_PNP_BOOTP=y | ||
| 146 | # CONFIG_IP_PNP_RARP is not set | ||
| 147 | # CONFIG_NET_IPIP is not set | ||
| 148 | # CONFIG_NET_IPGRE is not set | ||
| 149 | # CONFIG_IP_MROUTE is not set | ||
| 150 | # CONFIG_ARPD is not set | ||
| 151 | # CONFIG_SYN_COOKIES is not set | ||
| 152 | # CONFIG_INET_AH is not set | ||
| 153 | # CONFIG_INET_ESP is not set | ||
| 154 | # CONFIG_INET_IPCOMP is not set | ||
| 155 | # CONFIG_INET_TUNNEL is not set | ||
| 156 | # CONFIG_INET_DIAG is not set | ||
| 157 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 158 | CONFIG_TCP_CONG_BIC=y | ||
| 159 | CONFIG_IPV6=y | ||
| 160 | # CONFIG_IPV6_PRIVACY is not set | ||
| 161 | # CONFIG_INET6_AH is not set | ||
| 162 | # CONFIG_INET6_ESP is not set | ||
| 163 | # CONFIG_INET6_IPCOMP is not set | ||
| 164 | # CONFIG_INET6_TUNNEL is not set | ||
| 165 | # CONFIG_IPV6_TUNNEL is not set | ||
| 166 | # CONFIG_NETFILTER is not set | ||
| 167 | |||
| 168 | # | ||
| 169 | # DCCP Configuration (EXPERIMENTAL) | ||
| 170 | # | ||
| 171 | # CONFIG_IP_DCCP is not set | ||
| 172 | |||
| 173 | # | ||
| 174 | # SCTP Configuration (EXPERIMENTAL) | ||
| 175 | # | ||
| 176 | # CONFIG_IP_SCTP is not set | ||
| 177 | # CONFIG_ATM is not set | ||
| 178 | # CONFIG_BRIDGE is not set | ||
| 179 | # CONFIG_VLAN_8021Q is not set | ||
| 180 | # CONFIG_DECNET is not set | ||
| 181 | # CONFIG_LLC2 is not set | ||
| 182 | # CONFIG_IPX is not set | ||
| 183 | # CONFIG_ATALK is not set | ||
| 184 | # CONFIG_X25 is not set | ||
| 185 | # CONFIG_LAPB is not set | ||
| 186 | # CONFIG_NET_DIVERT is not set | ||
| 187 | # CONFIG_ECONET is not set | ||
| 188 | # CONFIG_WAN_ROUTER is not set | ||
| 189 | # CONFIG_NET_SCHED is not set | ||
| 190 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 191 | |||
| 192 | # | ||
| 193 | # Network testing | ||
| 194 | # | ||
| 195 | # CONFIG_NET_PKTGEN is not set | ||
| 196 | # CONFIG_HAMRADIO is not set | ||
| 197 | # CONFIG_IRDA is not set | ||
| 198 | # CONFIG_BT is not set | ||
| 199 | # CONFIG_IEEE80211 is not set | ||
| 200 | |||
| 201 | # | ||
| 84 | # Device Drivers | 202 | # Device Drivers |
| 85 | # | 203 | # |
| 86 | 204 | ||
| 87 | # | 205 | # |
| 88 | # Generic Driver Options | 206 | # Generic Driver Options |
| 89 | # | 207 | # |
| 208 | CONFIG_STANDALONE=y | ||
| 209 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
| 210 | # CONFIG_FW_LOADER is not set | ||
| 90 | # CONFIG_DEBUG_DRIVER is not set | 211 | # CONFIG_DEBUG_DRIVER is not set |
| 91 | 212 | ||
| 92 | # | 213 | # |
| 214 | # Connector - unified userspace <-> kernelspace linker | ||
| 215 | # | ||
| 216 | # CONFIG_CONNECTOR is not set | ||
| 217 | |||
| 218 | # | ||
| 93 | # Memory Technology Devices (MTD) | 219 | # Memory Technology Devices (MTD) |
| 94 | # | 220 | # |
| 95 | # CONFIG_MTD is not set | 221 | # CONFIG_MTD is not set |
| @@ -99,12 +225,10 @@ CONFIG_BINFMT_ELF=y | |||
| 99 | # | 225 | # |
| 100 | CONFIG_PARPORT=y | 226 | CONFIG_PARPORT=y |
| 101 | CONFIG_PARPORT_PC=y | 227 | CONFIG_PARPORT_PC=y |
| 102 | CONFIG_PARPORT_PC_CML1=y | ||
| 103 | # CONFIG_PARPORT_SERIAL is not set | 228 | # CONFIG_PARPORT_SERIAL is not set |
| 104 | # CONFIG_PARPORT_PC_FIFO is not set | 229 | # CONFIG_PARPORT_PC_FIFO is not set |
| 105 | # CONFIG_PARPORT_PC_SUPERIO is not set | 230 | # CONFIG_PARPORT_PC_SUPERIO is not set |
| 106 | CONFIG_PARPORT_GSC=y | 231 | CONFIG_PARPORT_GSC=y |
| 107 | # CONFIG_PARPORT_OTHER is not set | ||
| 108 | # CONFIG_PARPORT_1284 is not set | 232 | # CONFIG_PARPORT_1284 is not set |
| 109 | 233 | ||
| 110 | # | 234 | # |
| @@ -114,18 +238,31 @@ CONFIG_PARPORT_GSC=y | |||
| 114 | # | 238 | # |
| 115 | # Block devices | 239 | # Block devices |
| 116 | # | 240 | # |
| 117 | # CONFIG_BLK_DEV_FD is not set | ||
| 118 | # CONFIG_PARIDE is not set | 241 | # CONFIG_PARIDE is not set |
| 119 | # CONFIG_BLK_CPQ_DA is not set | 242 | # CONFIG_BLK_CPQ_DA is not set |
| 120 | # CONFIG_BLK_CPQ_CISS_DA is not set | 243 | # CONFIG_BLK_CPQ_CISS_DA is not set |
| 121 | # CONFIG_BLK_DEV_DAC960 is not set | 244 | # CONFIG_BLK_DEV_DAC960 is not set |
| 122 | # CONFIG_BLK_DEV_UMEM is not set | 245 | # CONFIG_BLK_DEV_UMEM is not set |
| 246 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 123 | CONFIG_BLK_DEV_LOOP=y | 247 | CONFIG_BLK_DEV_LOOP=y |
| 124 | CONFIG_BLK_DEV_CRYPTOLOOP=y | 248 | CONFIG_BLK_DEV_CRYPTOLOOP=y |
| 125 | # CONFIG_BLK_DEV_NBD is not set | 249 | # CONFIG_BLK_DEV_NBD is not set |
| 250 | # CONFIG_BLK_DEV_SX8 is not set | ||
| 251 | # CONFIG_BLK_DEV_UB is not set | ||
| 126 | CONFIG_BLK_DEV_RAM=y | 252 | CONFIG_BLK_DEV_RAM=y |
| 253 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
| 127 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 254 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
| 128 | CONFIG_BLK_DEV_INITRD=y | 255 | CONFIG_BLK_DEV_INITRD=y |
| 256 | # CONFIG_CDROM_PKTCDVD is not set | ||
| 257 | |||
| 258 | # | ||
| 259 | # IO Schedulers | ||
| 260 | # | ||
| 261 | CONFIG_IOSCHED_NOOP=y | ||
| 262 | CONFIG_IOSCHED_AS=y | ||
| 263 | CONFIG_IOSCHED_DEADLINE=y | ||
| 264 | CONFIG_IOSCHED_CFQ=y | ||
| 265 | # CONFIG_ATA_OVER_ETH is not set | ||
| 129 | 266 | ||
| 130 | # | 267 | # |
| 131 | # ATA/ATAPI/MFM/RLL support | 268 | # ATA/ATAPI/MFM/RLL support |
| @@ -135,6 +272,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
| 135 | # | 272 | # |
| 136 | # SCSI device support | 273 | # SCSI device support |
| 137 | # | 274 | # |
| 275 | # CONFIG_RAID_ATTRS is not set | ||
| 138 | CONFIG_SCSI=y | 276 | CONFIG_SCSI=y |
| 139 | CONFIG_SCSI_PROC_FS=y | 277 | CONFIG_SCSI_PROC_FS=y |
| 140 | 278 | ||
| @@ -147,53 +285,59 @@ CONFIG_CHR_DEV_ST=y | |||
| 147 | CONFIG_BLK_DEV_SR=y | 285 | CONFIG_BLK_DEV_SR=y |
| 148 | # CONFIG_BLK_DEV_SR_VENDOR is not set | 286 | # CONFIG_BLK_DEV_SR_VENDOR is not set |
| 149 | CONFIG_CHR_DEV_SG=y | 287 | CONFIG_CHR_DEV_SG=y |
| 288 | # CONFIG_CHR_DEV_SCH is not set | ||
| 150 | 289 | ||
| 151 | # | 290 | # |
| 152 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | 291 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs |
| 153 | # | 292 | # |
| 154 | # CONFIG_SCSI_MULTI_LUN is not set | 293 | # CONFIG_SCSI_MULTI_LUN is not set |
| 155 | # CONFIG_SCSI_REPORT_LUNS is not set | ||
| 156 | # CONFIG_SCSI_CONSTANTS is not set | 294 | # CONFIG_SCSI_CONSTANTS is not set |
| 157 | # CONFIG_SCSI_LOGGING is not set | 295 | # CONFIG_SCSI_LOGGING is not set |
| 158 | 296 | ||
| 159 | # | 297 | # |
| 298 | # SCSI Transport Attributes | ||
| 299 | # | ||
| 300 | CONFIG_SCSI_SPI_ATTRS=y | ||
| 301 | # CONFIG_SCSI_FC_ATTRS is not set | ||
| 302 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
| 303 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
| 304 | |||
| 305 | # | ||
| 160 | # SCSI low-level drivers | 306 | # SCSI low-level drivers |
| 161 | # | 307 | # |
| 162 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 308 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
| 309 | # CONFIG_SCSI_3W_9XXX is not set | ||
| 163 | # CONFIG_SCSI_ACARD is not set | 310 | # CONFIG_SCSI_ACARD is not set |
| 164 | # CONFIG_SCSI_AHA1740 is not set | 311 | # CONFIG_SCSI_AHA1740 is not set |
| 165 | # CONFIG_SCSI_AACRAID is not set | 312 | # CONFIG_SCSI_AACRAID is not set |
| 166 | # CONFIG_SCSI_AIC7XXX is not set | 313 | # CONFIG_SCSI_AIC7XXX is not set |
| 167 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 314 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
| 168 | # CONFIG_SCSI_AIC79XX is not set | 315 | # CONFIG_SCSI_AIC79XX is not set |
| 169 | # CONFIG_SCSI_ADVANSYS is not set | 316 | # CONFIG_SCSI_DPT_I2O is not set |
| 170 | # CONFIG_SCSI_MEGARAID is not set | 317 | # CONFIG_MEGARAID_NEWGEN is not set |
| 318 | # CONFIG_MEGARAID_LEGACY is not set | ||
| 319 | # CONFIG_MEGARAID_SAS is not set | ||
| 171 | # CONFIG_SCSI_SATA is not set | 320 | # CONFIG_SCSI_SATA is not set |
| 172 | # CONFIG_SCSI_BUSLOGIC is not set | ||
| 173 | # CONFIG_SCSI_CPQFCTS is not set | ||
| 174 | # CONFIG_SCSI_DMX3191D is not set | 321 | # CONFIG_SCSI_DMX3191D is not set |
| 175 | # CONFIG_SCSI_EATA is not set | ||
| 176 | # CONFIG_SCSI_EATA_PIO is not set | ||
| 177 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 322 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
| 178 | # CONFIG_SCSI_GDTH is not set | ||
| 179 | # CONFIG_SCSI_IPS is not set | 323 | # CONFIG_SCSI_IPS is not set |
| 324 | # CONFIG_SCSI_INITIO is not set | ||
| 180 | # CONFIG_SCSI_INIA100 is not set | 325 | # CONFIG_SCSI_INIA100 is not set |
| 181 | # CONFIG_SCSI_PPA is not set | 326 | # CONFIG_SCSI_PPA is not set |
| 182 | # CONFIG_SCSI_IMM is not set | 327 | # CONFIG_SCSI_IMM is not set |
| 183 | CONFIG_SCSI_LASI700=y | 328 | CONFIG_SCSI_LASI700=y |
| 184 | CONFIG_53C700_MEM_MAPPED=y | ||
| 185 | CONFIG_53C700_LE_ON_BE=y | 329 | CONFIG_53C700_LE_ON_BE=y |
| 186 | CONFIG_SCSI_SYM53C8XX_2=y | 330 | CONFIG_SCSI_SYM53C8XX_2=y |
| 187 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 | 331 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 |
| 188 | CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | 332 | CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 |
| 189 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | 333 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
| 190 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set | 334 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set |
| 335 | # CONFIG_SCSI_IPR is not set | ||
| 191 | CONFIG_SCSI_ZALON=y | 336 | CONFIG_SCSI_ZALON=y |
| 192 | CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 | 337 | CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 |
| 193 | CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 | 338 | CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 |
| 194 | CONFIG_SCSI_NCR53C8XX_SYNC=20 | 339 | CONFIG_SCSI_NCR53C8XX_SYNC=20 |
| 195 | # CONFIG_SCSI_NCR53C8XX_PROFILE is not set | 340 | # CONFIG_SCSI_NCR53C8XX_PROFILE is not set |
| 196 | # CONFIG_SCSI_QLOGIC_ISP is not set | ||
| 197 | # CONFIG_SCSI_QLOGIC_FC is not set | 341 | # CONFIG_SCSI_QLOGIC_FC is not set |
| 198 | # CONFIG_SCSI_QLOGIC_1280 is not set | 342 | # CONFIG_SCSI_QLOGIC_1280 is not set |
| 199 | CONFIG_SCSI_QLA2XXX=y | 343 | CONFIG_SCSI_QLA2XXX=y |
| @@ -202,7 +346,8 @@ CONFIG_SCSI_QLA2XXX=y | |||
| 202 | # CONFIG_SCSI_QLA2300 is not set | 346 | # CONFIG_SCSI_QLA2300 is not set |
| 203 | # CONFIG_SCSI_QLA2322 is not set | 347 | # CONFIG_SCSI_QLA2322 is not set |
| 204 | # CONFIG_SCSI_QLA6312 is not set | 348 | # CONFIG_SCSI_QLA6312 is not set |
| 205 | # CONFIG_SCSI_QLA6322 is not set | 349 | # CONFIG_SCSI_QLA24XX is not set |
| 350 | # CONFIG_SCSI_LPFC is not set | ||
| 206 | # CONFIG_SCSI_SIM710 is not set | 351 | # CONFIG_SCSI_SIM710 is not set |
| 207 | # CONFIG_SCSI_DC395x is not set | 352 | # CONFIG_SCSI_DC395x is not set |
| 208 | # CONFIG_SCSI_DC390T is not set | 353 | # CONFIG_SCSI_DC390T is not set |
| @@ -217,15 +362,20 @@ CONFIG_BLK_DEV_MD=y | |||
| 217 | CONFIG_MD_LINEAR=y | 362 | CONFIG_MD_LINEAR=y |
| 218 | CONFIG_MD_RAID0=y | 363 | CONFIG_MD_RAID0=y |
| 219 | CONFIG_MD_RAID1=y | 364 | CONFIG_MD_RAID1=y |
| 365 | # CONFIG_MD_RAID10 is not set | ||
| 220 | CONFIG_MD_RAID5=y | 366 | CONFIG_MD_RAID5=y |
| 221 | # CONFIG_MD_RAID6 is not set | 367 | # CONFIG_MD_RAID6 is not set |
| 222 | # CONFIG_MD_MULTIPATH is not set | 368 | # CONFIG_MD_MULTIPATH is not set |
| 369 | # CONFIG_MD_FAULTY is not set | ||
| 223 | # CONFIG_BLK_DEV_DM is not set | 370 | # CONFIG_BLK_DEV_DM is not set |
| 224 | 371 | ||
| 225 | # | 372 | # |
| 226 | # Fusion MPT device support | 373 | # Fusion MPT device support |
| 227 | # | 374 | # |
| 228 | # CONFIG_FUSION is not set | 375 | # CONFIG_FUSION is not set |
| 376 | # CONFIG_FUSION_SPI is not set | ||
| 377 | # CONFIG_FUSION_FC is not set | ||
| 378 | # CONFIG_FUSION_SAS is not set | ||
| 229 | 379 | ||
| 230 | # | 380 | # |
| 231 | # IEEE 1394 (FireWire) support | 381 | # IEEE 1394 (FireWire) support |
| @@ -238,80 +388,23 @@ CONFIG_MD_RAID5=y | |||
| 238 | # CONFIG_I2O is not set | 388 | # CONFIG_I2O is not set |
| 239 | 389 | ||
| 240 | # | 390 | # |
| 241 | # Macintosh device drivers | 391 | # Network device support |
| 242 | # | ||
| 243 | |||
| 244 | # | ||
| 245 | # Networking support | ||
| 246 | # | ||
| 247 | CONFIG_NET=y | ||
| 248 | |||
| 249 | # | ||
| 250 | # Networking options | ||
| 251 | # | ||
| 252 | CONFIG_PACKET=y | ||
| 253 | CONFIG_PACKET_MMAP=y | ||
| 254 | CONFIG_NETLINK_DEV=y | ||
| 255 | CONFIG_UNIX=y | ||
| 256 | # CONFIG_NET_KEY is not set | ||
| 257 | CONFIG_INET=y | ||
| 258 | CONFIG_IP_MULTICAST=y | ||
| 259 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 260 | CONFIG_IP_PNP=y | ||
| 261 | # CONFIG_IP_PNP_DHCP is not set | ||
| 262 | CONFIG_IP_PNP_BOOTP=y | ||
| 263 | # CONFIG_IP_PNP_RARP is not set | ||
| 264 | # CONFIG_NET_IPIP is not set | ||
| 265 | # CONFIG_NET_IPGRE is not set | ||
| 266 | # CONFIG_IP_MROUTE is not set | ||
| 267 | # CONFIG_ARPD is not set | ||
| 268 | # CONFIG_INET_ECN is not set | ||
| 269 | # CONFIG_SYN_COOKIES is not set | ||
| 270 | # CONFIG_INET_AH is not set | ||
| 271 | # CONFIG_INET_ESP is not set | ||
| 272 | # CONFIG_INET_IPCOMP is not set | ||
| 273 | # CONFIG_IPV6 is not set | ||
| 274 | # CONFIG_DECNET is not set | ||
| 275 | # CONFIG_BRIDGE is not set | ||
| 276 | # CONFIG_NETFILTER is not set | ||
| 277 | |||
| 278 | # | ||
| 279 | # SCTP Configuration (EXPERIMENTAL) | ||
| 280 | # | ||
| 281 | CONFIG_IPV6_SCTP__=y | ||
| 282 | # CONFIG_IP_SCTP is not set | ||
| 283 | # CONFIG_ATM is not set | ||
| 284 | # CONFIG_VLAN_8021Q is not set | ||
| 285 | # CONFIG_LLC2 is not set | ||
| 286 | # CONFIG_IPX is not set | ||
| 287 | # CONFIG_ATALK is not set | ||
| 288 | # CONFIG_X25 is not set | ||
| 289 | # CONFIG_LAPB is not set | ||
| 290 | # CONFIG_NET_DIVERT is not set | ||
| 291 | # CONFIG_ECONET is not set | ||
| 292 | # CONFIG_WAN_ROUTER is not set | ||
| 293 | # CONFIG_NET_HW_FLOWCONTROL is not set | ||
| 294 | |||
| 295 | # | ||
| 296 | # QoS and/or fair queueing | ||
| 297 | # | ||
| 298 | # CONFIG_NET_SCHED is not set | ||
| 299 | |||
| 300 | # | ||
| 301 | # Network testing | ||
| 302 | # | 392 | # |
| 303 | # CONFIG_NET_PKTGEN is not set | ||
| 304 | CONFIG_NETDEVICES=y | 393 | CONFIG_NETDEVICES=y |
| 394 | # CONFIG_DUMMY is not set | ||
| 395 | # CONFIG_BONDING is not set | ||
| 396 | # CONFIG_EQUALIZER is not set | ||
| 397 | # CONFIG_TUN is not set | ||
| 305 | 398 | ||
| 306 | # | 399 | # |
| 307 | # ARCnet devices | 400 | # ARCnet devices |
| 308 | # | 401 | # |
| 309 | # CONFIG_ARCNET is not set | 402 | # CONFIG_ARCNET is not set |
| 310 | # CONFIG_DUMMY is not set | 403 | |
| 311 | # CONFIG_BONDING is not set | 404 | # |
| 312 | # CONFIG_EQUALIZER is not set | 405 | # PHY device support |
| 313 | # CONFIG_TUN is not set | 406 | # |
| 314 | # CONFIG_ETHERTAP is not set | 407 | # CONFIG_PHYLIB is not set |
| 315 | 408 | ||
| 316 | # | 409 | # |
| 317 | # Ethernet (10 or 100Mbit) | 410 | # Ethernet (10 or 100Mbit) |
| @@ -321,6 +414,7 @@ CONFIG_NET_ETHERNET=y | |||
| 321 | CONFIG_LASI_82596=y | 414 | CONFIG_LASI_82596=y |
| 322 | # CONFIG_HAPPYMEAL is not set | 415 | # CONFIG_HAPPYMEAL is not set |
| 323 | # CONFIG_SUNGEM is not set | 416 | # CONFIG_SUNGEM is not set |
| 417 | # CONFIG_CASSINI is not set | ||
| 324 | # CONFIG_NET_VENDOR_3COM is not set | 418 | # CONFIG_NET_VENDOR_3COM is not set |
| 325 | # CONFIG_NET_VENDOR_SMC is not set | 419 | # CONFIG_NET_VENDOR_SMC is not set |
| 326 | 420 | ||
| @@ -336,6 +430,7 @@ CONFIG_TULIP=y | |||
| 336 | # CONFIG_DE4X5 is not set | 430 | # CONFIG_DE4X5 is not set |
| 337 | # CONFIG_WINBOND_840 is not set | 431 | # CONFIG_WINBOND_840 is not set |
| 338 | # CONFIG_DM9102 is not set | 432 | # CONFIG_DM9102 is not set |
| 433 | # CONFIG_ULI526X is not set | ||
| 339 | # CONFIG_DEPCA is not set | 434 | # CONFIG_DEPCA is not set |
| 340 | # CONFIG_HP100 is not set | 435 | # CONFIG_HP100 is not set |
| 341 | CONFIG_NET_PCI=y | 436 | CONFIG_NET_PCI=y |
| @@ -361,30 +456,37 @@ CONFIG_NET_PCI=y | |||
| 361 | # CONFIG_SUNDANCE is not set | 456 | # CONFIG_SUNDANCE is not set |
| 362 | # CONFIG_TLAN is not set | 457 | # CONFIG_TLAN is not set |
| 363 | # CONFIG_VIA_RHINE is not set | 458 | # CONFIG_VIA_RHINE is not set |
| 459 | # CONFIG_NET_POCKET is not set | ||
| 364 | 460 | ||
| 365 | # | 461 | # |
| 366 | # Ethernet (1000 Mbit) | 462 | # Ethernet (1000 Mbit) |
| 367 | # | 463 | # |
| 368 | # CONFIG_ACENIC is not set | 464 | CONFIG_ACENIC=y |
| 369 | CONFIG_DL2K=y | 465 | # CONFIG_ACENIC_OMIT_TIGON_I is not set |
| 466 | # CONFIG_DL2K is not set | ||
| 370 | # CONFIG_E1000 is not set | 467 | # CONFIG_E1000 is not set |
| 371 | # CONFIG_NS83820 is not set | 468 | # CONFIG_NS83820 is not set |
| 372 | # CONFIG_HAMACHI is not set | 469 | # CONFIG_HAMACHI is not set |
| 373 | # CONFIG_YELLOWFIN is not set | 470 | # CONFIG_YELLOWFIN is not set |
| 374 | # CONFIG_R8169 is not set | 471 | # CONFIG_R8169 is not set |
| 375 | # CONFIG_SIS190 is not set | 472 | # CONFIG_SIS190 is not set |
| 473 | # CONFIG_SKGE is not set | ||
| 376 | # CONFIG_SK98LIN is not set | 474 | # CONFIG_SK98LIN is not set |
| 377 | # CONFIG_TIGON3 is not set | 475 | # CONFIG_VIA_VELOCITY is not set |
| 476 | CONFIG_TIGON3=y | ||
| 477 | # CONFIG_BNX2 is not set | ||
| 378 | 478 | ||
| 379 | # | 479 | # |
| 380 | # Ethernet (10000 Mbit) | 480 | # Ethernet (10000 Mbit) |
| 381 | # | 481 | # |
| 482 | # CONFIG_CHELSIO_T1 is not set | ||
| 382 | # CONFIG_IXGB is not set | 483 | # CONFIG_IXGB is not set |
| 383 | # CONFIG_FDDI is not set | 484 | # CONFIG_S2IO is not set |
| 384 | # CONFIG_HIPPI is not set | 485 | |
| 385 | # CONFIG_PLIP is not set | 486 | # |
| 386 | # CONFIG_PPP is not set | 487 | # Token Ring devices |
| 387 | # CONFIG_SLIP is not set | 488 | # |
| 489 | # CONFIG_TR is not set | ||
| 388 | 490 | ||
| 389 | # | 491 | # |
| 390 | # Wireless LAN (non-hamradio) | 492 | # Wireless LAN (non-hamradio) |
| @@ -399,38 +501,30 @@ CONFIG_NET_RADIO=y | |||
| 399 | # | 501 | # |
| 400 | # Wireless 802.11b ISA/PCI cards support | 502 | # Wireless 802.11b ISA/PCI cards support |
| 401 | # | 503 | # |
| 402 | CONFIG_AIRO=y | ||
| 403 | # CONFIG_HERMES is not set | 504 | # CONFIG_HERMES is not set |
| 404 | # CONFIG_ATMEL is not set | 505 | # CONFIG_ATMEL is not set |
| 405 | CONFIG_NET_WIRELESS=y | ||
| 406 | 506 | ||
| 407 | # | 507 | # |
| 408 | # Token Ring devices | 508 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support |
| 409 | # | 509 | # |
| 410 | # CONFIG_TR is not set | 510 | # CONFIG_PRISM54 is not set |
| 411 | # CONFIG_NET_FC is not set | 511 | # CONFIG_HOSTAP is not set |
| 412 | # CONFIG_RCPCI is not set | 512 | CONFIG_NET_WIRELESS=y |
| 413 | # CONFIG_SHAPER is not set | ||
| 414 | 513 | ||
| 415 | # | 514 | # |
| 416 | # Wan interfaces | 515 | # Wan interfaces |
| 417 | # | 516 | # |
| 418 | # CONFIG_WAN is not set | 517 | # CONFIG_WAN is not set |
| 419 | 518 | # CONFIG_FDDI is not set | |
| 420 | # | 519 | # CONFIG_HIPPI is not set |
| 421 | # Amateur Radio support | 520 | # CONFIG_PLIP is not set |
| 422 | # | 521 | # CONFIG_PPP is not set |
| 423 | # CONFIG_HAMRADIO is not set | 522 | # CONFIG_SLIP is not set |
| 424 | 523 | # CONFIG_NET_FC is not set | |
| 425 | # | 524 | # CONFIG_SHAPER is not set |
| 426 | # IrDA (infrared) support | 525 | # CONFIG_NETCONSOLE is not set |
| 427 | # | 526 | # CONFIG_NETPOLL is not set |
| 428 | # CONFIG_IRDA is not set | 527 | # CONFIG_NET_POLL_CONTROLLER is not set |
| 429 | |||
| 430 | # | ||
| 431 | # Bluetooth support | ||
| 432 | # | ||
| 433 | # CONFIG_BT is not set | ||
| 434 | 528 | ||
| 435 | # | 529 | # |
| 436 | # ISDN subsystem | 530 | # ISDN subsystem |
| @@ -460,51 +554,67 @@ CONFIG_INPUT_EVDEV=y | |||
| 460 | # CONFIG_INPUT_EVBUG is not set | 554 | # CONFIG_INPUT_EVBUG is not set |
| 461 | 555 | ||
| 462 | # | 556 | # |
| 463 | # Input I/O drivers | ||
| 464 | # | ||
| 465 | # CONFIG_GAMEPORT is not set | ||
| 466 | CONFIG_SOUND_GAMEPORT=y | ||
| 467 | CONFIG_SERIO=y | ||
| 468 | # CONFIG_SERIO_SERPORT is not set | ||
| 469 | # CONFIG_SERIO_PARKBD is not set | ||
| 470 | CONFIG_SERIO_GSCPS2=y | ||
| 471 | CONFIG_HP_SDC=y | ||
| 472 | CONFIG_HIL_MLC=y | ||
| 473 | # CONFIG_SERIO_PCIPS2 is not set | ||
| 474 | |||
| 475 | # | ||
| 476 | # Input Device Drivers | 557 | # Input Device Drivers |
| 477 | # | 558 | # |
| 478 | CONFIG_INPUT_KEYBOARD=y | 559 | CONFIG_INPUT_KEYBOARD=y |
| 479 | # CONFIG_KEYBOARD_ATKBD is not set | 560 | # CONFIG_KEYBOARD_ATKBD is not set |
| 480 | # CONFIG_KEYBOARD_SUNKBD is not set | 561 | # CONFIG_KEYBOARD_SUNKBD is not set |
| 562 | # CONFIG_KEYBOARD_LKKBD is not set | ||
| 481 | # CONFIG_KEYBOARD_XTKBD is not set | 563 | # CONFIG_KEYBOARD_XTKBD is not set |
| 482 | # CONFIG_KEYBOARD_NEWTON is not set | 564 | # CONFIG_KEYBOARD_NEWTON is not set |
| 565 | CONFIG_KEYBOARD_HIL_OLD=y | ||
| 483 | CONFIG_KEYBOARD_HIL=y | 566 | CONFIG_KEYBOARD_HIL=y |
| 484 | CONFIG_INPUT_MOUSE=y | 567 | CONFIG_INPUT_MOUSE=y |
| 485 | # CONFIG_MOUSE_PS2 is not set | 568 | # CONFIG_MOUSE_PS2 is not set |
| 486 | # CONFIG_MOUSE_SERIAL is not set | 569 | # CONFIG_MOUSE_SERIAL is not set |
| 570 | # CONFIG_MOUSE_VSXXXAA is not set | ||
| 487 | # CONFIG_MOUSE_HIL is not set | 571 | # CONFIG_MOUSE_HIL is not set |
| 488 | CONFIG_INPUT_JOYSTICK=y | 572 | CONFIG_INPUT_JOYSTICK=y |
| 573 | # CONFIG_JOYSTICK_ANALOG is not set | ||
| 574 | # CONFIG_JOYSTICK_A3D is not set | ||
| 575 | # CONFIG_JOYSTICK_ADI is not set | ||
| 576 | # CONFIG_JOYSTICK_COBRA is not set | ||
| 577 | # CONFIG_JOYSTICK_GF2K is not set | ||
| 578 | # CONFIG_JOYSTICK_GRIP is not set | ||
| 579 | # CONFIG_JOYSTICK_GRIP_MP is not set | ||
| 580 | # CONFIG_JOYSTICK_GUILLEMOT is not set | ||
| 581 | # CONFIG_JOYSTICK_INTERACT is not set | ||
| 582 | # CONFIG_JOYSTICK_SIDEWINDER is not set | ||
| 583 | # CONFIG_JOYSTICK_TMDC is not set | ||
| 489 | # CONFIG_JOYSTICK_IFORCE is not set | 584 | # CONFIG_JOYSTICK_IFORCE is not set |
| 490 | # CONFIG_JOYSTICK_WARRIOR is not set | 585 | # CONFIG_JOYSTICK_WARRIOR is not set |
| 491 | # CONFIG_JOYSTICK_MAGELLAN is not set | 586 | # CONFIG_JOYSTICK_MAGELLAN is not set |
| 492 | # CONFIG_JOYSTICK_SPACEORB is not set | 587 | # CONFIG_JOYSTICK_SPACEORB is not set |
| 493 | # CONFIG_JOYSTICK_SPACEBALL is not set | 588 | # CONFIG_JOYSTICK_SPACEBALL is not set |
| 494 | # CONFIG_JOYSTICK_STINGER is not set | 589 | # CONFIG_JOYSTICK_STINGER is not set |
| 495 | # CONFIG_JOYSTICK_TWIDDLER is not set | 590 | # CONFIG_JOYSTICK_TWIDJOY is not set |
| 496 | # CONFIG_JOYSTICK_DB9 is not set | 591 | # CONFIG_JOYSTICK_DB9 is not set |
| 497 | # CONFIG_JOYSTICK_GAMECON is not set | 592 | # CONFIG_JOYSTICK_GAMECON is not set |
| 498 | # CONFIG_JOYSTICK_TURBOGRAFX is not set | 593 | # CONFIG_JOYSTICK_TURBOGRAFX is not set |
| 499 | # CONFIG_INPUT_JOYDUMP is not set | 594 | # CONFIG_JOYSTICK_JOYDUMP is not set |
| 500 | CONFIG_INPUT_TOUCHSCREEN=y | 595 | CONFIG_INPUT_TOUCHSCREEN=y |
| 501 | # CONFIG_TOUCHSCREEN_GUNZE is not set | 596 | # CONFIG_TOUCHSCREEN_GUNZE is not set |
| 597 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
| 598 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
| 599 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
| 502 | CONFIG_INPUT_MISC=y | 600 | CONFIG_INPUT_MISC=y |
| 503 | # CONFIG_INPUT_PCSPKR is not set | ||
| 504 | # CONFIG_INPUT_UINPUT is not set | 601 | # CONFIG_INPUT_UINPUT is not set |
| 505 | CONFIG_HP_SDC_RTC=y | 602 | CONFIG_HP_SDC_RTC=y |
| 506 | 603 | ||
| 507 | # | 604 | # |
| 605 | # Hardware I/O ports | ||
| 606 | # | ||
| 607 | CONFIG_SERIO=y | ||
| 608 | # CONFIG_SERIO_SERPORT is not set | ||
| 609 | # CONFIG_SERIO_PARKBD is not set | ||
| 610 | CONFIG_SERIO_GSCPS2=y | ||
| 611 | CONFIG_HP_SDC=y | ||
| 612 | CONFIG_HIL_MLC=y | ||
| 613 | # CONFIG_SERIO_PCIPS2 is not set | ||
| 614 | # CONFIG_SERIO_RAW is not set | ||
| 615 | # CONFIG_GAMEPORT is not set | ||
| 616 | |||
| 617 | # | ||
| 508 | # Character devices | 618 | # Character devices |
| 509 | # | 619 | # |
| 510 | CONFIG_VT=y | 620 | CONFIG_VT=y |
| @@ -522,16 +632,16 @@ CONFIG_SERIAL_8250_EXTENDED=y | |||
| 522 | CONFIG_SERIAL_8250_MANY_PORTS=y | 632 | CONFIG_SERIAL_8250_MANY_PORTS=y |
| 523 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 633 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
| 524 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 634 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
| 525 | # CONFIG_SERIAL_8250_MULTIPORT is not set | ||
| 526 | # CONFIG_SERIAL_8250_RSA is not set | 635 | # CONFIG_SERIAL_8250_RSA is not set |
| 527 | 636 | ||
| 528 | # | 637 | # |
| 529 | # Non-8250 serial port support | 638 | # Non-8250 serial port support |
| 530 | # | 639 | # |
| 531 | # CONFIG_SERIAL_MUX is not set | 640 | CONFIG_SERIAL_MUX=y |
| 532 | # CONFIG_PDC_CONSOLE is not set | 641 | CONFIG_SERIAL_MUX_CONSOLE=y |
| 533 | CONFIG_SERIAL_CORE=y | 642 | CONFIG_SERIAL_CORE=y |
| 534 | CONFIG_SERIAL_CORE_CONSOLE=y | 643 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 644 | # CONFIG_SERIAL_JSM is not set | ||
| 535 | CONFIG_UNIX98_PTYS=y | 645 | CONFIG_UNIX98_PTYS=y |
| 536 | CONFIG_LEGACY_PTYS=y | 646 | CONFIG_LEGACY_PTYS=y |
| 537 | CONFIG_LEGACY_PTY_COUNT=256 | 647 | CONFIG_LEGACY_PTY_COUNT=256 |
| @@ -541,12 +651,6 @@ CONFIG_PRINTER=y | |||
| 541 | # CONFIG_TIPAR is not set | 651 | # CONFIG_TIPAR is not set |
| 542 | 652 | ||
| 543 | # | 653 | # |
| 544 | # Mice | ||
| 545 | # | ||
| 546 | # CONFIG_BUSMOUSE is not set | ||
| 547 | # CONFIG_QIC02_TAPE is not set | ||
| 548 | |||
| 549 | # | ||
| 550 | # IPMI | 654 | # IPMI |
| 551 | # | 655 | # |
| 552 | # CONFIG_IPMI_HANDLER is not set | 656 | # CONFIG_IPMI_HANDLER is not set |
| @@ -555,7 +659,6 @@ CONFIG_PRINTER=y | |||
| 555 | # Watchdog Cards | 659 | # Watchdog Cards |
| 556 | # | 660 | # |
| 557 | # CONFIG_WATCHDOG is not set | 661 | # CONFIG_WATCHDOG is not set |
| 558 | # CONFIG_NVRAM is not set | ||
| 559 | CONFIG_GEN_RTC=y | 662 | CONFIG_GEN_RTC=y |
| 560 | # CONFIG_GEN_RTC_X is not set | 663 | # CONFIG_GEN_RTC_X is not set |
| 561 | # CONFIG_DTLK is not set | 664 | # CONFIG_DTLK is not set |
| @@ -565,21 +668,40 @@ CONFIG_GEN_RTC=y | |||
| 565 | # | 668 | # |
| 566 | # Ftape, the floppy tape device driver | 669 | # Ftape, the floppy tape device driver |
| 567 | # | 670 | # |
| 568 | # CONFIG_FTAPE is not set | ||
| 569 | # CONFIG_AGP is not set | ||
| 570 | # CONFIG_DRM is not set | 671 | # CONFIG_DRM is not set |
| 571 | # CONFIG_RAW_DRIVER is not set | 672 | # CONFIG_RAW_DRIVER is not set |
| 572 | 673 | ||
| 573 | # | 674 | # |
| 675 | # TPM devices | ||
| 676 | # | ||
| 677 | # CONFIG_TCG_TPM is not set | ||
| 678 | |||
| 679 | # | ||
| 574 | # I2C support | 680 | # I2C support |
| 575 | # | 681 | # |
| 576 | # CONFIG_I2C is not set | 682 | # CONFIG_I2C is not set |
| 577 | 683 | ||
| 578 | # | 684 | # |
| 685 | # Dallas's 1-wire bus | ||
| 686 | # | ||
| 687 | # CONFIG_W1 is not set | ||
| 688 | |||
| 689 | # | ||
| 690 | # Hardware Monitoring support | ||
| 691 | # | ||
| 692 | CONFIG_HWMON=y | ||
| 693 | # CONFIG_HWMON_VID is not set | ||
| 694 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
| 695 | |||
| 696 | # | ||
| 579 | # Misc devices | 697 | # Misc devices |
| 580 | # | 698 | # |
| 581 | 699 | ||
| 582 | # | 700 | # |
| 701 | # Multimedia Capabilities Port drivers | ||
| 702 | # | ||
| 703 | |||
| 704 | # | ||
| 583 | # Multimedia devices | 705 | # Multimedia devices |
| 584 | # | 706 | # |
| 585 | # CONFIG_VIDEO_DEV is not set | 707 | # CONFIG_VIDEO_DEV is not set |
| @@ -593,34 +715,45 @@ CONFIG_GEN_RTC=y | |||
| 593 | # Graphics support | 715 | # Graphics support |
| 594 | # | 716 | # |
| 595 | CONFIG_FB=y | 717 | CONFIG_FB=y |
| 718 | CONFIG_FB_CFB_FILLRECT=y | ||
| 719 | CONFIG_FB_CFB_COPYAREA=y | ||
| 720 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 721 | CONFIG_FB_SOFT_CURSOR=y | ||
| 722 | # CONFIG_FB_MACMODES is not set | ||
| 723 | # CONFIG_FB_MODE_HELPERS is not set | ||
| 724 | # CONFIG_FB_TILEBLITTING is not set | ||
| 725 | # CONFIG_FB_CIRRUS is not set | ||
| 596 | # CONFIG_FB_PM2 is not set | 726 | # CONFIG_FB_PM2 is not set |
| 597 | # CONFIG_FB_CYBER2000 is not set | 727 | # CONFIG_FB_CYBER2000 is not set |
| 728 | # CONFIG_FB_ASILIANT is not set | ||
| 598 | # CONFIG_FB_IMSTT is not set | 729 | # CONFIG_FB_IMSTT is not set |
| 599 | CONFIG_FB_STI=y | 730 | CONFIG_FB_STI=y |
| 731 | # CONFIG_FB_NVIDIA is not set | ||
| 600 | # CONFIG_FB_RIVA is not set | 732 | # CONFIG_FB_RIVA is not set |
| 601 | # CONFIG_FB_MATROX is not set | 733 | # CONFIG_FB_MATROX is not set |
| 602 | # CONFIG_FB_RADEON_OLD is not set | 734 | # CONFIG_FB_RADEON_OLD is not set |
| 603 | # CONFIG_FB_RADEON is not set | 735 | # CONFIG_FB_RADEON is not set |
| 604 | # CONFIG_FB_ATY128 is not set | 736 | # CONFIG_FB_ATY128 is not set |
| 605 | # CONFIG_FB_ATY is not set | 737 | # CONFIG_FB_ATY is not set |
| 738 | # CONFIG_FB_SAVAGE is not set | ||
| 606 | # CONFIG_FB_SIS is not set | 739 | # CONFIG_FB_SIS is not set |
| 607 | # CONFIG_FB_NEOMAGIC is not set | 740 | # CONFIG_FB_NEOMAGIC is not set |
| 608 | # CONFIG_FB_KYRO is not set | 741 | # CONFIG_FB_KYRO is not set |
| 609 | # CONFIG_FB_3DFX is not set | 742 | # CONFIG_FB_3DFX is not set |
| 610 | # CONFIG_FB_VOODOO1 is not set | 743 | # CONFIG_FB_VOODOO1 is not set |
| 744 | # CONFIG_FB_CYBLA is not set | ||
| 611 | # CONFIG_FB_TRIDENT is not set | 745 | # CONFIG_FB_TRIDENT is not set |
| 746 | # CONFIG_FB_S1D13XXX is not set | ||
| 612 | # CONFIG_FB_VIRTUAL is not set | 747 | # CONFIG_FB_VIRTUAL is not set |
| 613 | 748 | ||
| 614 | # | 749 | # |
| 615 | # Console display driver support | 750 | # Console display driver support |
| 616 | # | 751 | # |
| 617 | # CONFIG_MDA_CONSOLE is not set | 752 | CONFIG_DUMMY_CONSOLE=y |
| 618 | CONFIG_STI_CONSOLE=y | ||
| 619 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 | 753 | CONFIG_DUMMY_CONSOLE_COLUMNS=160 |
| 620 | CONFIG_DUMMY_CONSOLE_ROWS=64 | 754 | CONFIG_DUMMY_CONSOLE_ROWS=64 |
| 621 | CONFIG_DUMMY_CONSOLE=y | ||
| 622 | CONFIG_FRAMEBUFFER_CONSOLE=y | 755 | CONFIG_FRAMEBUFFER_CONSOLE=y |
| 623 | CONFIG_PCI_CONSOLE=y | 756 | CONFIG_STI_CONSOLE=y |
| 624 | # CONFIG_FONTS is not set | 757 | # CONFIG_FONTS is not set |
| 625 | CONFIG_FONT_8x8=y | 758 | CONFIG_FONT_8x8=y |
| 626 | CONFIG_FONT_8x16=y | 759 | CONFIG_FONT_8x16=y |
| @@ -629,6 +762,7 @@ CONFIG_FONT_8x16=y | |||
| 629 | # Logo configuration | 762 | # Logo configuration |
| 630 | # | 763 | # |
| 631 | # CONFIG_LOGO is not set | 764 | # CONFIG_LOGO is not set |
| 765 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 632 | 766 | ||
| 633 | # | 767 | # |
| 634 | # Sound | 768 | # Sound |
| @@ -638,17 +772,94 @@ CONFIG_SOUND=y | |||
| 638 | # | 772 | # |
| 639 | # Advanced Linux Sound Architecture | 773 | # Advanced Linux Sound Architecture |
| 640 | # | 774 | # |
| 641 | # CONFIG_SND is not set | 775 | CONFIG_SND=y |
| 776 | CONFIG_SND_TIMER=y | ||
| 777 | CONFIG_SND_PCM=y | ||
| 778 | CONFIG_SND_SEQUENCER=y | ||
| 779 | # CONFIG_SND_SEQ_DUMMY is not set | ||
| 780 | CONFIG_SND_OSSEMUL=y | ||
| 781 | CONFIG_SND_MIXER_OSS=y | ||
| 782 | CONFIG_SND_PCM_OSS=y | ||
| 783 | CONFIG_SND_SEQUENCER_OSS=y | ||
| 784 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
| 785 | # CONFIG_SND_DEBUG is not set | ||
| 786 | |||
| 787 | # | ||
| 788 | # Generic devices | ||
| 789 | # | ||
| 790 | # CONFIG_SND_DUMMY is not set | ||
| 791 | # CONFIG_SND_VIRMIDI is not set | ||
| 792 | # CONFIG_SND_MTPAV is not set | ||
| 793 | # CONFIG_SND_SERIAL_U16550 is not set | ||
| 794 | # CONFIG_SND_MPU401 is not set | ||
| 795 | CONFIG_SND_AC97_CODEC=y | ||
| 796 | CONFIG_SND_AC97_BUS=y | ||
| 797 | |||
| 798 | # | ||
| 799 | # PCI devices | ||
| 800 | # | ||
| 801 | # CONFIG_SND_ALI5451 is not set | ||
| 802 | # CONFIG_SND_ATIIXP is not set | ||
| 803 | # CONFIG_SND_ATIIXP_MODEM is not set | ||
| 804 | # CONFIG_SND_AU8810 is not set | ||
| 805 | # CONFIG_SND_AU8820 is not set | ||
| 806 | # CONFIG_SND_AU8830 is not set | ||
| 807 | # CONFIG_SND_AZT3328 is not set | ||
| 808 | # CONFIG_SND_BT87X is not set | ||
| 809 | # CONFIG_SND_CS46XX is not set | ||
| 810 | # CONFIG_SND_CS4281 is not set | ||
| 811 | # CONFIG_SND_EMU10K1 is not set | ||
| 812 | # CONFIG_SND_EMU10K1X is not set | ||
| 813 | # CONFIG_SND_CA0106 is not set | ||
| 814 | # CONFIG_SND_KORG1212 is not set | ||
| 815 | # CONFIG_SND_MIXART is not set | ||
| 816 | # CONFIG_SND_NM256 is not set | ||
| 817 | # CONFIG_SND_RME32 is not set | ||
| 818 | # CONFIG_SND_RME96 is not set | ||
| 819 | # CONFIG_SND_RME9652 is not set | ||
| 820 | # CONFIG_SND_HDSP is not set | ||
| 821 | # CONFIG_SND_HDSPM is not set | ||
| 822 | # CONFIG_SND_TRIDENT is not set | ||
| 823 | # CONFIG_SND_YMFPCI is not set | ||
| 824 | CONFIG_SND_AD1889=y | ||
| 825 | # CONFIG_SND_AD1889_OPL3 is not set | ||
| 826 | # CONFIG_SND_CMIPCI is not set | ||
| 827 | # CONFIG_SND_ENS1370 is not set | ||
| 828 | # CONFIG_SND_ENS1371 is not set | ||
| 829 | # CONFIG_SND_ES1938 is not set | ||
| 830 | # CONFIG_SND_ES1968 is not set | ||
| 831 | # CONFIG_SND_MAESTRO3 is not set | ||
| 832 | # CONFIG_SND_FM801 is not set | ||
| 833 | # CONFIG_SND_ICE1712 is not set | ||
| 834 | # CONFIG_SND_ICE1724 is not set | ||
| 835 | # CONFIG_SND_INTEL8X0 is not set | ||
| 836 | # CONFIG_SND_INTEL8X0M is not set | ||
| 837 | # CONFIG_SND_SONICVIBES is not set | ||
| 838 | # CONFIG_SND_VIA82XX is not set | ||
| 839 | # CONFIG_SND_VIA82XX_MODEM is not set | ||
| 840 | # CONFIG_SND_VX222 is not set | ||
| 841 | # CONFIG_SND_HDA_INTEL is not set | ||
| 842 | |||
| 843 | # | ||
| 844 | # USB devices | ||
| 845 | # | ||
| 846 | # CONFIG_SND_USB_AUDIO is not set | ||
| 847 | |||
| 848 | # | ||
| 849 | # GSC devices | ||
| 850 | # | ||
| 851 | CONFIG_SND_HARMONY=y | ||
| 642 | 852 | ||
| 643 | # | 853 | # |
| 644 | # Open Sound System | 854 | # Open Sound System |
| 645 | # | 855 | # |
| 646 | # CONFIG_SOUND_PRIME is not set | 856 | # CONFIG_SOUND_PRIME is not set |
| 647 | # CONFIG_SOUND_HARMONY is not set | ||
| 648 | 857 | ||
| 649 | # | 858 | # |
| 650 | # USB support | 859 | # USB support |
| 651 | # | 860 | # |
| 861 | CONFIG_USB_ARCH_HAS_HCD=y | ||
| 862 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
| 652 | CONFIG_USB=y | 863 | CONFIG_USB=y |
| 653 | CONFIG_USB_DEBUG=y | 864 | CONFIG_USB_DEBUG=y |
| 654 | 865 | ||
| @@ -658,26 +869,36 @@ CONFIG_USB_DEBUG=y | |||
| 658 | # CONFIG_USB_DEVICEFS is not set | 869 | # CONFIG_USB_DEVICEFS is not set |
| 659 | # CONFIG_USB_BANDWIDTH is not set | 870 | # CONFIG_USB_BANDWIDTH is not set |
| 660 | # CONFIG_USB_DYNAMIC_MINORS is not set | 871 | # CONFIG_USB_DYNAMIC_MINORS is not set |
| 872 | # CONFIG_USB_OTG is not set | ||
| 661 | 873 | ||
| 662 | # | 874 | # |
| 663 | # USB Host Controller Drivers | 875 | # USB Host Controller Drivers |
| 664 | # | 876 | # |
| 665 | CONFIG_USB_EHCI_HCD=y | 877 | CONFIG_USB_EHCI_HCD=y |
| 878 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
| 879 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | ||
| 880 | # CONFIG_USB_ISP116X_HCD is not set | ||
| 666 | CONFIG_USB_OHCI_HCD=y | 881 | CONFIG_USB_OHCI_HCD=y |
| 882 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | ||
| 883 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
| 667 | # CONFIG_USB_UHCI_HCD is not set | 884 | # CONFIG_USB_UHCI_HCD is not set |
| 885 | # CONFIG_USB_SL811_HCD is not set | ||
| 668 | 886 | ||
| 669 | # | 887 | # |
| 670 | # USB Device Class drivers | 888 | # USB Device Class drivers |
| 671 | # | 889 | # |
| 672 | # CONFIG_USB_AUDIO is not set | 890 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set |
| 673 | # CONFIG_USB_BLUETOOTH_TTY is not set | 891 | # CONFIG_USB_BLUETOOTH_TTY is not set |
| 674 | # CONFIG_USB_MIDI is not set | ||
| 675 | # CONFIG_USB_ACM is not set | 892 | # CONFIG_USB_ACM is not set |
| 676 | # CONFIG_USB_PRINTER is not set | 893 | # CONFIG_USB_PRINTER is not set |
| 894 | |||
| 895 | # | ||
| 896 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
| 897 | # | ||
| 677 | # CONFIG_USB_STORAGE is not set | 898 | # CONFIG_USB_STORAGE is not set |
| 678 | 899 | ||
| 679 | # | 900 | # |
| 680 | # USB Human Interface Devices (HID) | 901 | # USB Input Devices |
| 681 | # | 902 | # |
| 682 | # CONFIG_USB_HID is not set | 903 | # CONFIG_USB_HID is not set |
| 683 | 904 | ||
| @@ -688,16 +909,23 @@ CONFIG_USB_OHCI_HCD=y | |||
| 688 | # CONFIG_USB_MOUSE is not set | 909 | # CONFIG_USB_MOUSE is not set |
| 689 | # CONFIG_USB_AIPTEK is not set | 910 | # CONFIG_USB_AIPTEK is not set |
| 690 | # CONFIG_USB_WACOM is not set | 911 | # CONFIG_USB_WACOM is not set |
| 912 | # CONFIG_USB_ACECAD is not set | ||
| 691 | # CONFIG_USB_KBTAB is not set | 913 | # CONFIG_USB_KBTAB is not set |
| 692 | # CONFIG_USB_POWERMATE is not set | 914 | # CONFIG_USB_POWERMATE is not set |
| 915 | # CONFIG_USB_MTOUCH is not set | ||
| 916 | # CONFIG_USB_ITMTOUCH is not set | ||
| 917 | # CONFIG_USB_EGALAX is not set | ||
| 918 | # CONFIG_USB_YEALINK is not set | ||
| 693 | # CONFIG_USB_XPAD is not set | 919 | # CONFIG_USB_XPAD is not set |
| 920 | # CONFIG_USB_ATI_REMOTE is not set | ||
| 921 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
| 922 | # CONFIG_USB_APPLETOUCH is not set | ||
| 694 | 923 | ||
| 695 | # | 924 | # |
| 696 | # USB Imaging devices | 925 | # USB Imaging devices |
| 697 | # | 926 | # |
| 698 | # CONFIG_USB_MDC800 is not set | 927 | # CONFIG_USB_MDC800 is not set |
| 699 | # CONFIG_USB_MICROTEK is not set | 928 | # CONFIG_USB_MICROTEK is not set |
| 700 | # CONFIG_USB_HPUSBSCSI is not set | ||
| 701 | 929 | ||
| 702 | # | 930 | # |
| 703 | # USB Multimedia devices | 931 | # USB Multimedia devices |
| @@ -709,13 +937,15 @@ CONFIG_USB_OHCI_HCD=y | |||
| 709 | # | 937 | # |
| 710 | 938 | ||
| 711 | # | 939 | # |
| 712 | # USB Network adaptors | 940 | # USB Network Adapters |
| 713 | # | 941 | # |
| 714 | # CONFIG_USB_CATC is not set | 942 | # CONFIG_USB_CATC is not set |
| 715 | # CONFIG_USB_KAWETH is not set | 943 | # CONFIG_USB_KAWETH is not set |
| 716 | # CONFIG_USB_PEGASUS is not set | 944 | # CONFIG_USB_PEGASUS is not set |
| 717 | # CONFIG_USB_RTL8150 is not set | 945 | # CONFIG_USB_RTL8150 is not set |
| 718 | # CONFIG_USB_USBNET is not set | 946 | # CONFIG_USB_USBNET is not set |
| 947 | # CONFIG_USB_ZD1201 is not set | ||
| 948 | CONFIG_USB_MON=y | ||
| 719 | 949 | ||
| 720 | # | 950 | # |
| 721 | # USB port drivers | 951 | # USB port drivers |
| @@ -732,12 +962,21 @@ CONFIG_USB_OHCI_HCD=y | |||
| 732 | # | 962 | # |
| 733 | # CONFIG_USB_EMI62 is not set | 963 | # CONFIG_USB_EMI62 is not set |
| 734 | # CONFIG_USB_EMI26 is not set | 964 | # CONFIG_USB_EMI26 is not set |
| 735 | # CONFIG_USB_TIGL is not set | ||
| 736 | # CONFIG_USB_AUERSWALD is not set | 965 | # CONFIG_USB_AUERSWALD is not set |
| 737 | # CONFIG_USB_RIO500 is not set | 966 | # CONFIG_USB_RIO500 is not set |
| 738 | # CONFIG_USB_LEGOTOWER is not set | 967 | # CONFIG_USB_LEGOTOWER is not set |
| 739 | # CONFIG_USB_LCD is not set | 968 | # CONFIG_USB_LCD is not set |
| 740 | # CONFIG_USB_LED is not set | 969 | # CONFIG_USB_LED is not set |
| 970 | # CONFIG_USB_CYTHERM is not set | ||
| 971 | # CONFIG_USB_PHIDGETKIT is not set | ||
| 972 | # CONFIG_USB_PHIDGETSERVO is not set | ||
| 973 | # CONFIG_USB_IDMOUSE is not set | ||
| 974 | # CONFIG_USB_SISUSBVGA is not set | ||
| 975 | # CONFIG_USB_LD is not set | ||
| 976 | |||
| 977 | # | ||
| 978 | # USB DSL modem support | ||
| 979 | # | ||
| 741 | 980 | ||
| 742 | # | 981 | # |
| 743 | # USB Gadget Support | 982 | # USB Gadget Support |
| @@ -745,22 +984,41 @@ CONFIG_USB_OHCI_HCD=y | |||
| 745 | # CONFIG_USB_GADGET is not set | 984 | # CONFIG_USB_GADGET is not set |
| 746 | 985 | ||
| 747 | # | 986 | # |
| 987 | # MMC/SD Card support | ||
| 988 | # | ||
| 989 | # CONFIG_MMC is not set | ||
| 990 | |||
| 991 | # | ||
| 992 | # InfiniBand support | ||
| 993 | # | ||
| 994 | # CONFIG_INFINIBAND is not set | ||
| 995 | |||
| 996 | # | ||
| 997 | # SN Devices | ||
| 998 | # | ||
| 999 | |||
| 1000 | # | ||
| 748 | # File systems | 1001 | # File systems |
| 749 | # | 1002 | # |
| 750 | CONFIG_EXT2_FS=y | 1003 | CONFIG_EXT2_FS=y |
| 751 | # CONFIG_EXT2_FS_XATTR is not set | 1004 | # CONFIG_EXT2_FS_XATTR is not set |
| 1005 | # CONFIG_EXT2_FS_XIP is not set | ||
| 752 | CONFIG_EXT3_FS=y | 1006 | CONFIG_EXT3_FS=y |
| 753 | # CONFIG_EXT3_FS_XATTR is not set | 1007 | # CONFIG_EXT3_FS_XATTR is not set |
| 754 | CONFIG_JBD=y | 1008 | CONFIG_JBD=y |
| 755 | # CONFIG_JBD_DEBUG is not set | 1009 | # CONFIG_JBD_DEBUG is not set |
| 756 | # CONFIG_REISERFS_FS is not set | 1010 | # CONFIG_REISERFS_FS is not set |
| 757 | # CONFIG_JFS_FS is not set | 1011 | # CONFIG_JFS_FS is not set |
| 1012 | # CONFIG_FS_POSIX_ACL is not set | ||
| 758 | # CONFIG_XFS_FS is not set | 1013 | # CONFIG_XFS_FS is not set |
| 759 | # CONFIG_MINIX_FS is not set | 1014 | # CONFIG_MINIX_FS is not set |
| 760 | # CONFIG_ROMFS_FS is not set | 1015 | # CONFIG_ROMFS_FS is not set |
| 1016 | CONFIG_INOTIFY=y | ||
| 761 | # CONFIG_QUOTA is not set | 1017 | # CONFIG_QUOTA is not set |
| 1018 | CONFIG_DNOTIFY=y | ||
| 762 | # CONFIG_AUTOFS_FS is not set | 1019 | # CONFIG_AUTOFS_FS is not set |
| 763 | # CONFIG_AUTOFS4_FS is not set | 1020 | # CONFIG_AUTOFS4_FS is not set |
| 1021 | # CONFIG_FUSE_FS is not set | ||
| 764 | 1022 | ||
| 765 | # | 1023 | # |
| 766 | # CD-ROM/DVD Filesystems | 1024 | # CD-ROM/DVD Filesystems |
| @@ -773,7 +1031,8 @@ CONFIG_JOLIET=y | |||
| 773 | # | 1031 | # |
| 774 | # DOS/FAT/NT Filesystems | 1032 | # DOS/FAT/NT Filesystems |
| 775 | # | 1033 | # |
| 776 | # CONFIG_FAT_FS is not set | 1034 | # CONFIG_MSDOS_FS is not set |
| 1035 | # CONFIG_VFAT_FS is not set | ||
| 777 | # CONFIG_NTFS_FS is not set | 1036 | # CONFIG_NTFS_FS is not set |
| 778 | 1037 | ||
| 779 | # | 1038 | # |
| @@ -781,11 +1040,11 @@ CONFIG_JOLIET=y | |||
| 781 | # | 1040 | # |
| 782 | CONFIG_PROC_FS=y | 1041 | CONFIG_PROC_FS=y |
| 783 | CONFIG_PROC_KCORE=y | 1042 | CONFIG_PROC_KCORE=y |
| 784 | # CONFIG_DEVFS_FS is not set | 1043 | CONFIG_SYSFS=y |
| 785 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
| 786 | CONFIG_TMPFS=y | 1044 | CONFIG_TMPFS=y |
| 787 | # CONFIG_HUGETLB_PAGE is not set | 1045 | # CONFIG_HUGETLB_PAGE is not set |
| 788 | CONFIG_RAMFS=y | 1046 | CONFIG_RAMFS=y |
| 1047 | # CONFIG_RELAYFS_FS is not set | ||
| 789 | 1048 | ||
| 790 | # | 1049 | # |
| 791 | # Miscellaneous filesystems | 1050 | # Miscellaneous filesystems |
| @@ -809,23 +1068,28 @@ CONFIG_RAMFS=y | |||
| 809 | # | 1068 | # |
| 810 | CONFIG_NFS_FS=y | 1069 | CONFIG_NFS_FS=y |
| 811 | CONFIG_NFS_V3=y | 1070 | CONFIG_NFS_V3=y |
| 1071 | # CONFIG_NFS_V3_ACL is not set | ||
| 812 | # CONFIG_NFS_V4 is not set | 1072 | # CONFIG_NFS_V4 is not set |
| 813 | # CONFIG_NFS_DIRECTIO is not set | 1073 | # CONFIG_NFS_DIRECTIO is not set |
| 814 | CONFIG_NFSD=y | 1074 | CONFIG_NFSD=y |
| 815 | CONFIG_NFSD_V3=y | 1075 | CONFIG_NFSD_V3=y |
| 1076 | # CONFIG_NFSD_V3_ACL is not set | ||
| 816 | # CONFIG_NFSD_V4 is not set | 1077 | # CONFIG_NFSD_V4 is not set |
| 817 | CONFIG_NFSD_TCP=y | 1078 | CONFIG_NFSD_TCP=y |
| 818 | CONFIG_ROOT_NFS=y | 1079 | CONFIG_ROOT_NFS=y |
| 819 | CONFIG_LOCKD=y | 1080 | CONFIG_LOCKD=y |
| 820 | CONFIG_LOCKD_V4=y | 1081 | CONFIG_LOCKD_V4=y |
| 821 | CONFIG_EXPORTFS=y | 1082 | CONFIG_EXPORTFS=y |
| 1083 | CONFIG_NFS_COMMON=y | ||
| 822 | CONFIG_SUNRPC=y | 1084 | CONFIG_SUNRPC=y |
| 823 | # CONFIG_SUNRPC_GSS is not set | 1085 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
| 1086 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
| 824 | # CONFIG_SMB_FS is not set | 1087 | # CONFIG_SMB_FS is not set |
| 825 | # CONFIG_CIFS is not set | 1088 | # CONFIG_CIFS is not set |
| 826 | # CONFIG_NCP_FS is not set | 1089 | # CONFIG_NCP_FS is not set |
| 827 | # CONFIG_CODA_FS is not set | 1090 | # CONFIG_CODA_FS is not set |
| 828 | # CONFIG_AFS_FS is not set | 1091 | # CONFIG_AFS_FS is not set |
| 1092 | # CONFIG_9P_FS is not set | ||
| 829 | 1093 | ||
| 830 | # | 1094 | # |
| 831 | # Partition Types | 1095 | # Partition Types |
| @@ -861,6 +1125,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
| 861 | # CONFIG_NLS_ISO8859_8 is not set | 1125 | # CONFIG_NLS_ISO8859_8 is not set |
| 862 | # CONFIG_NLS_CODEPAGE_1250 is not set | 1126 | # CONFIG_NLS_CODEPAGE_1250 is not set |
| 863 | # CONFIG_NLS_CODEPAGE_1251 is not set | 1127 | # CONFIG_NLS_CODEPAGE_1251 is not set |
| 1128 | # CONFIG_NLS_ASCII is not set | ||
| 864 | # CONFIG_NLS_ISO8859_1 is not set | 1129 | # CONFIG_NLS_ISO8859_1 is not set |
| 865 | # CONFIG_NLS_ISO8859_2 is not set | 1130 | # CONFIG_NLS_ISO8859_2 is not set |
| 866 | # CONFIG_NLS_ISO8859_3 is not set | 1131 | # CONFIG_NLS_ISO8859_3 is not set |
| @@ -885,17 +1150,24 @@ CONFIG_OPROFILE=y | |||
| 885 | # | 1150 | # |
| 886 | # Kernel hacking | 1151 | # Kernel hacking |
| 887 | # | 1152 | # |
| 1153 | # CONFIG_PRINTK_TIME is not set | ||
| 888 | CONFIG_DEBUG_KERNEL=y | 1154 | CONFIG_DEBUG_KERNEL=y |
| 889 | # CONFIG_DEBUG_SLAB is not set | ||
| 890 | CONFIG_MAGIC_SYSRQ=y | 1155 | CONFIG_MAGIC_SYSRQ=y |
| 1156 | CONFIG_LOG_BUF_SHIFT=15 | ||
| 1157 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 1158 | # CONFIG_SCHEDSTATS is not set | ||
| 1159 | # CONFIG_DEBUG_SLAB is not set | ||
| 891 | # CONFIG_DEBUG_SPINLOCK is not set | 1160 | # CONFIG_DEBUG_SPINLOCK is not set |
| 892 | # CONFIG_DEBUG_RWLOCK is not set | 1161 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
| 893 | CONFIG_FRAME_POINTER=y | 1162 | # CONFIG_DEBUG_KOBJECT is not set |
| 894 | # CONFIG_DEBUG_INFO is not set | 1163 | # CONFIG_DEBUG_INFO is not set |
| 1164 | # CONFIG_DEBUG_IOREMAP is not set | ||
| 1165 | # CONFIG_DEBUG_FS is not set | ||
| 895 | 1166 | ||
| 896 | # | 1167 | # |
| 897 | # Security options | 1168 | # Security options |
| 898 | # | 1169 | # |
| 1170 | # CONFIG_KEYS is not set | ||
| 899 | # CONFIG_SECURITY is not set | 1171 | # CONFIG_SECURITY is not set |
| 900 | 1172 | ||
| 901 | # | 1173 | # |
| @@ -909,6 +1181,8 @@ CONFIG_CRYPTO=y | |||
| 909 | # CONFIG_CRYPTO_SHA1 is not set | 1181 | # CONFIG_CRYPTO_SHA1 is not set |
| 910 | # CONFIG_CRYPTO_SHA256 is not set | 1182 | # CONFIG_CRYPTO_SHA256 is not set |
| 911 | # CONFIG_CRYPTO_SHA512 is not set | 1183 | # CONFIG_CRYPTO_SHA512 is not set |
| 1184 | # CONFIG_CRYPTO_WP512 is not set | ||
| 1185 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 912 | # CONFIG_CRYPTO_DES is not set | 1186 | # CONFIG_CRYPTO_DES is not set |
| 913 | # CONFIG_CRYPTO_BLOWFISH is not set | 1187 | # CONFIG_CRYPTO_BLOWFISH is not set |
| 914 | # CONFIG_CRYPTO_TWOFISH is not set | 1188 | # CONFIG_CRYPTO_TWOFISH is not set |
| @@ -916,11 +1190,23 @@ CONFIG_CRYPTO=y | |||
| 916 | # CONFIG_CRYPTO_AES is not set | 1190 | # CONFIG_CRYPTO_AES is not set |
| 917 | # CONFIG_CRYPTO_CAST5 is not set | 1191 | # CONFIG_CRYPTO_CAST5 is not set |
| 918 | # CONFIG_CRYPTO_CAST6 is not set | 1192 | # CONFIG_CRYPTO_CAST6 is not set |
| 1193 | # CONFIG_CRYPTO_TEA is not set | ||
| 919 | # CONFIG_CRYPTO_ARC4 is not set | 1194 | # CONFIG_CRYPTO_ARC4 is not set |
| 1195 | # CONFIG_CRYPTO_KHAZAD is not set | ||
| 1196 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 920 | # CONFIG_CRYPTO_DEFLATE is not set | 1197 | # CONFIG_CRYPTO_DEFLATE is not set |
| 1198 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
| 1199 | # CONFIG_CRYPTO_CRC32C is not set | ||
| 921 | # CONFIG_CRYPTO_TEST is not set | 1200 | # CONFIG_CRYPTO_TEST is not set |
| 922 | 1201 | ||
| 923 | # | 1202 | # |
| 1203 | # Hardware crypto devices | ||
| 1204 | # | ||
| 1205 | |||
| 1206 | # | ||
| 924 | # Library routines | 1207 | # Library routines |
| 925 | # | 1208 | # |
| 1209 | # CONFIG_CRC_CCITT is not set | ||
| 1210 | # CONFIG_CRC16 is not set | ||
| 926 | CONFIG_CRC32=y | 1211 | CONFIG_CRC32=y |
| 1212 | # CONFIG_LIBCRC32C is not set | ||
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index f46a07a79218..e15f09eaed12 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <asm/page.h> | 27 | #include <asm/page.h> |
| 28 | #include <asm/pgalloc.h> | 28 | #include <asm/pgalloc.h> |
| 29 | #include <asm/processor.h> | 29 | #include <asm/processor.h> |
| 30 | #include <asm/sections.h> | ||
| 30 | 31 | ||
| 31 | int split_tlb; | 32 | int split_tlb; |
| 32 | int dcache_stride; | 33 | int dcache_stride; |
| @@ -207,6 +208,9 @@ parisc_cache_init(void) | |||
| 207 | 208 | ||
| 208 | /* "New and Improved" version from Jim Hull | 209 | /* "New and Improved" version from Jim Hull |
| 209 | * (1 << (cc_block-1)) * (cc_line << (4 + cnf.cc_shift)) | 210 | * (1 << (cc_block-1)) * (cc_line << (4 + cnf.cc_shift)) |
| 211 | * The following CAFL_STRIDE is an optimized version, see | ||
| 212 | * http://lists.parisc-linux.org/pipermail/parisc-linux/2004-June/023625.html | ||
| 213 | * http://lists.parisc-linux.org/pipermail/parisc-linux/2004-June/023671.html | ||
| 210 | */ | 214 | */ |
| 211 | #define CAFL_STRIDE(cnf) (cnf.cc_line << (3 + cnf.cc_block + cnf.cc_shift)) | 215 | #define CAFL_STRIDE(cnf) (cnf.cc_line << (3 + cnf.cc_block + cnf.cc_shift)) |
| 212 | dcache_stride = CAFL_STRIDE(cache_info.dc_conf); | 216 | dcache_stride = CAFL_STRIDE(cache_info.dc_conf); |
| @@ -339,17 +343,15 @@ int parisc_cache_flush_threshold = FLUSH_THRESHOLD; | |||
| 339 | void parisc_setup_cache_timing(void) | 343 | void parisc_setup_cache_timing(void) |
| 340 | { | 344 | { |
| 341 | unsigned long rangetime, alltime; | 345 | unsigned long rangetime, alltime; |
| 342 | extern char _text; /* start of kernel code, defined by linker */ | ||
| 343 | extern char _end; /* end of BSS, defined by linker */ | ||
| 344 | unsigned long size; | 346 | unsigned long size; |
| 345 | 347 | ||
| 346 | alltime = mfctl(16); | 348 | alltime = mfctl(16); |
| 347 | flush_data_cache(); | 349 | flush_data_cache(); |
| 348 | alltime = mfctl(16) - alltime; | 350 | alltime = mfctl(16) - alltime; |
| 349 | 351 | ||
| 350 | size = (unsigned long)(&_end - _text); | 352 | size = (unsigned long)(_end - _text); |
| 351 | rangetime = mfctl(16); | 353 | rangetime = mfctl(16); |
| 352 | flush_kernel_dcache_range((unsigned long)&_text, size); | 354 | flush_kernel_dcache_range((unsigned long)_text, size); |
| 353 | rangetime = mfctl(16) - rangetime; | 355 | rangetime = mfctl(16) - rangetime; |
| 354 | 356 | ||
| 355 | printk(KERN_DEBUG "Whole cache flush %lu cycles, flushing %lu bytes %lu cycles\n", | 357 | printk(KERN_DEBUG "Whole cache flush %lu cycles, flushing %lu bytes %lu cycles\n", |
diff --git a/arch/parisc/kernel/drivers.c b/arch/parisc/kernel/drivers.c index d34bbe7ae0e3..988844a169e6 100644 --- a/arch/parisc/kernel/drivers.c +++ b/arch/parisc/kernel/drivers.c | |||
| @@ -46,36 +46,51 @@ static struct device root = { | |||
| 46 | .bus_id = "parisc", | 46 | .bus_id = "parisc", |
| 47 | }; | 47 | }; |
| 48 | 48 | ||
| 49 | #define for_each_padev(padev) \ | 49 | static inline int check_dev(struct device *dev) |
| 50 | for (padev = next_dev(&root); padev != NULL; \ | 50 | { |
| 51 | padev = next_dev(&padev->dev)) | 51 | if (dev->bus == &parisc_bus_type) { |
| 52 | struct parisc_device *pdev; | ||
| 53 | pdev = to_parisc_device(dev); | ||
| 54 | return pdev->id.hw_type != HPHW_FAULTY; | ||
| 55 | } | ||
| 56 | return 1; | ||
| 57 | } | ||
| 58 | |||
| 59 | static struct device * | ||
| 60 | parse_tree_node(struct device *parent, int index, struct hardware_path *modpath); | ||
| 52 | 61 | ||
| 53 | #define check_dev(padev) \ | 62 | struct recurse_struct { |
| 54 | (padev->id.hw_type != HPHW_FAULTY) ? padev : next_dev(&padev->dev) | 63 | void * obj; |
| 64 | int (*fn)(struct device *, void *); | ||
| 65 | }; | ||
| 66 | |||
| 67 | static int descend_children(struct device * dev, void * data) | ||
| 68 | { | ||
| 69 | struct recurse_struct * recurse_data = (struct recurse_struct *)data; | ||
| 70 | |||
| 71 | if (recurse_data->fn(dev, recurse_data->obj)) | ||
| 72 | return 1; | ||
| 73 | else | ||
| 74 | return device_for_each_child(dev, recurse_data, descend_children); | ||
| 75 | } | ||
| 55 | 76 | ||
| 56 | /** | 77 | /** |
| 57 | * next_dev - enumerates registered devices | 78 | * for_each_padev - Iterate over all devices in the tree |
| 58 | * @dev: the previous device returned from next_dev | 79 | * @fn: Function to call for each device. |
| 80 | * @data: Data to pass to the called function. | ||
| 59 | * | 81 | * |
| 60 | * next_dev does a depth-first search of the tree, returning parents | 82 | * This performs a depth-first traversal of the tree, calling the |
| 61 | * before children. Returns NULL when there are no more devices. | 83 | * function passed for each node. It calls the function for parents |
| 84 | * before children. | ||
| 62 | */ | 85 | */ |
| 63 | static struct parisc_device *next_dev(struct device *dev) | ||
| 64 | { | ||
| 65 | if (!list_empty(&dev->children)) { | ||
| 66 | dev = list_to_dev(dev->children.next); | ||
| 67 | return check_dev(to_parisc_device(dev)); | ||
| 68 | } | ||
| 69 | 86 | ||
| 70 | while (dev != &root) { | 87 | static int for_each_padev(int (*fn)(struct device *, void *), void * data) |
| 71 | if (dev->node.next != &dev->parent->children) { | 88 | { |
| 72 | dev = list_to_dev(dev->node.next); | 89 | struct recurse_struct recurse_data = { |
| 73 | return to_parisc_device(dev); | 90 | .obj = data, |
| 74 | } | 91 | .fn = fn, |
| 75 | dev = dev->parent; | 92 | }; |
| 76 | } | 93 | return device_for_each_child(&root, &recurse_data, descend_children); |
| 77 | |||
| 78 | return NULL; | ||
| 79 | } | 94 | } |
| 80 | 95 | ||
| 81 | /** | 96 | /** |
| @@ -105,12 +120,6 @@ static int match_device(struct parisc_driver *driver, struct parisc_device *dev) | |||
| 105 | return 0; | 120 | return 0; |
| 106 | } | 121 | } |
| 107 | 122 | ||
| 108 | static void claim_device(struct parisc_driver *driver, struct parisc_device *dev) | ||
| 109 | { | ||
| 110 | dev->driver = driver; | ||
| 111 | request_mem_region(dev->hpa, 0x1000, driver->name); | ||
| 112 | } | ||
| 113 | |||
| 114 | static int parisc_driver_probe(struct device *dev) | 123 | static int parisc_driver_probe(struct device *dev) |
| 115 | { | 124 | { |
| 116 | int rc; | 125 | int rc; |
| @@ -119,8 +128,8 @@ static int parisc_driver_probe(struct device *dev) | |||
| 119 | 128 | ||
| 120 | rc = pa_drv->probe(pa_dev); | 129 | rc = pa_drv->probe(pa_dev); |
| 121 | 130 | ||
| 122 | if(!rc) | 131 | if (!rc) |
| 123 | claim_device(pa_drv, pa_dev); | 132 | pa_dev->driver = pa_drv; |
| 124 | 133 | ||
| 125 | return rc; | 134 | return rc; |
| 126 | } | 135 | } |
| @@ -131,7 +140,6 @@ static int parisc_driver_remove(struct device *dev) | |||
| 131 | struct parisc_driver *pa_drv = to_parisc_driver(dev->driver); | 140 | struct parisc_driver *pa_drv = to_parisc_driver(dev->driver); |
| 132 | if (pa_drv->remove) | 141 | if (pa_drv->remove) |
| 133 | pa_drv->remove(pa_dev); | 142 | pa_drv->remove(pa_dev); |
| 134 | release_mem_region(pa_dev->hpa, 0x1000); | ||
| 135 | 143 | ||
| 136 | return 0; | 144 | return 0; |
| 137 | } | 145 | } |
| @@ -173,6 +181,24 @@ int register_parisc_driver(struct parisc_driver *driver) | |||
| 173 | } | 181 | } |
| 174 | EXPORT_SYMBOL(register_parisc_driver); | 182 | EXPORT_SYMBOL(register_parisc_driver); |
| 175 | 183 | ||
| 184 | |||
| 185 | struct match_count { | ||
| 186 | struct parisc_driver * driver; | ||
| 187 | int count; | ||
| 188 | }; | ||
| 189 | |||
| 190 | static int match_and_count(struct device * dev, void * data) | ||
| 191 | { | ||
| 192 | struct match_count * m = data; | ||
| 193 | struct parisc_device * pdev = to_parisc_device(dev); | ||
| 194 | |||
| 195 | if (check_dev(dev)) { | ||
| 196 | if (match_device(m->driver, pdev)) | ||
| 197 | m->count++; | ||
| 198 | } | ||
| 199 | return 0; | ||
| 200 | } | ||
| 201 | |||
| 176 | /** | 202 | /** |
| 177 | * count_parisc_driver - count # of devices this driver would match | 203 | * count_parisc_driver - count # of devices this driver would match |
| 178 | * @driver: the PA-RISC driver to try | 204 | * @driver: the PA-RISC driver to try |
| @@ -182,15 +208,14 @@ EXPORT_SYMBOL(register_parisc_driver); | |||
| 182 | */ | 208 | */ |
| 183 | int count_parisc_driver(struct parisc_driver *driver) | 209 | int count_parisc_driver(struct parisc_driver *driver) |
| 184 | { | 210 | { |
| 185 | struct parisc_device *device; | 211 | struct match_count m = { |
| 186 | int cnt = 0; | 212 | .driver = driver, |
| 213 | .count = 0, | ||
| 214 | }; | ||
| 187 | 215 | ||
| 188 | for_each_padev(device) { | 216 | for_each_padev(match_and_count, &m); |
| 189 | if (match_device(driver, device)) | ||
| 190 | cnt++; | ||
| 191 | } | ||
| 192 | 217 | ||
| 193 | return cnt; | 218 | return m.count; |
| 194 | } | 219 | } |
| 195 | 220 | ||
| 196 | 221 | ||
| @@ -206,14 +231,34 @@ int unregister_parisc_driver(struct parisc_driver *driver) | |||
| 206 | } | 231 | } |
| 207 | EXPORT_SYMBOL(unregister_parisc_driver); | 232 | EXPORT_SYMBOL(unregister_parisc_driver); |
| 208 | 233 | ||
| 209 | static struct parisc_device *find_device_by_addr(unsigned long hpa) | 234 | struct find_data { |
| 235 | unsigned long hpa; | ||
| 236 | struct parisc_device * dev; | ||
| 237 | }; | ||
| 238 | |||
| 239 | static int find_device(struct device * dev, void * data) | ||
| 210 | { | 240 | { |
| 211 | struct parisc_device *dev; | 241 | struct parisc_device * pdev = to_parisc_device(dev); |
| 212 | for_each_padev(dev) { | 242 | struct find_data * d = (struct find_data*)data; |
| 213 | if (dev->hpa == hpa) | 243 | |
| 214 | return dev; | 244 | if (check_dev(dev)) { |
| 245 | if (pdev->hpa.start == d->hpa) { | ||
| 246 | d->dev = pdev; | ||
| 247 | return 1; | ||
| 248 | } | ||
| 215 | } | 249 | } |
| 216 | return NULL; | 250 | return 0; |
| 251 | } | ||
| 252 | |||
| 253 | static struct parisc_device *find_device_by_addr(unsigned long hpa) | ||
| 254 | { | ||
| 255 | struct find_data d = { | ||
| 256 | .hpa = hpa, | ||
| 257 | }; | ||
| 258 | int ret; | ||
| 259 | |||
| 260 | ret = for_each_padev(find_device, &d); | ||
| 261 | return ret ? d.dev : NULL; | ||
| 217 | } | 262 | } |
| 218 | 263 | ||
| 219 | /** | 264 | /** |
| @@ -387,6 +432,23 @@ struct parisc_device * create_tree_node(char id, struct device *parent) | |||
| 387 | return dev; | 432 | return dev; |
| 388 | } | 433 | } |
| 389 | 434 | ||
| 435 | struct match_id_data { | ||
| 436 | char id; | ||
| 437 | struct parisc_device * dev; | ||
| 438 | }; | ||
| 439 | |||
| 440 | static int match_by_id(struct device * dev, void * data) | ||
| 441 | { | ||
| 442 | struct parisc_device * pdev = to_parisc_device(dev); | ||
| 443 | struct match_id_data * d = data; | ||
| 444 | |||
| 445 | if (pdev->hw_path == d->id) { | ||
| 446 | d->dev = pdev; | ||
| 447 | return 1; | ||
| 448 | } | ||
| 449 | return 0; | ||
| 450 | } | ||
| 451 | |||
| 390 | /** | 452 | /** |
| 391 | * alloc_tree_node - returns a device entry in the iotree | 453 | * alloc_tree_node - returns a device entry in the iotree |
| 392 | * @parent: the parent node in the tree | 454 | * @parent: the parent node in the tree |
| @@ -397,15 +459,13 @@ struct parisc_device * create_tree_node(char id, struct device *parent) | |||
| 397 | */ | 459 | */ |
| 398 | static struct parisc_device * alloc_tree_node(struct device *parent, char id) | 460 | static struct parisc_device * alloc_tree_node(struct device *parent, char id) |
| 399 | { | 461 | { |
| 400 | struct device *dev; | 462 | struct match_id_data d = { |
| 401 | 463 | .id = id, | |
| 402 | list_for_each_entry(dev, &parent->children, node) { | 464 | }; |
| 403 | struct parisc_device *padev = to_parisc_device(dev); | 465 | if (device_for_each_child(parent, &d, match_by_id)) |
| 404 | if (padev->hw_path == id) | 466 | return d.dev; |
| 405 | return padev; | 467 | else |
| 406 | } | 468 | return create_tree_node(id, parent); |
| 407 | |||
| 408 | return create_tree_node(id, parent); | ||
| 409 | } | 469 | } |
| 410 | 470 | ||
| 411 | static struct parisc_device *create_parisc_device(struct hardware_path *modpath) | 471 | static struct parisc_device *create_parisc_device(struct hardware_path *modpath) |
| @@ -439,10 +499,8 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path) | |||
| 439 | 499 | ||
| 440 | dev = create_parisc_device(mod_path); | 500 | dev = create_parisc_device(mod_path); |
| 441 | if (dev->id.hw_type != HPHW_FAULTY) { | 501 | if (dev->id.hw_type != HPHW_FAULTY) { |
| 442 | char p[64]; | ||
| 443 | print_pa_hwpath(dev, p); | ||
| 444 | printk("Two devices have hardware path %s. Please file a bug with HP.\n" | 502 | printk("Two devices have hardware path %s. Please file a bug with HP.\n" |
| 445 | "In the meantime, you could try rearranging your cards.\n", p); | 503 | "In the meantime, you could try rearranging your cards.\n", parisc_pathname(dev)); |
| 446 | return NULL; | 504 | return NULL; |
| 447 | } | 505 | } |
| 448 | 506 | ||
| @@ -451,12 +509,27 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path) | |||
| 451 | dev->id.hversion_rev = iodc_data[1] & 0x0f; | 509 | dev->id.hversion_rev = iodc_data[1] & 0x0f; |
| 452 | dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) | | 510 | dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) | |
| 453 | (iodc_data[5] << 8) | iodc_data[6]; | 511 | (iodc_data[5] << 8) | iodc_data[6]; |
| 454 | dev->hpa = hpa; | 512 | dev->hpa.name = parisc_pathname(dev); |
| 513 | dev->hpa.start = hpa; | ||
| 514 | if (hpa == 0xf4000000 || hpa == 0xf6000000 || | ||
| 515 | hpa == 0xf8000000 || hpa == 0xfa000000) { | ||
| 516 | dev->hpa.end = hpa + 0x01ffffff; | ||
| 517 | } else { | ||
| 518 | dev->hpa.end = hpa + 0xfff; | ||
| 519 | } | ||
| 520 | dev->hpa.flags = IORESOURCE_MEM; | ||
| 455 | name = parisc_hardware_description(&dev->id); | 521 | name = parisc_hardware_description(&dev->id); |
| 456 | if (name) { | 522 | if (name) { |
| 457 | strlcpy(dev->name, name, sizeof(dev->name)); | 523 | strlcpy(dev->name, name, sizeof(dev->name)); |
| 458 | } | 524 | } |
| 459 | 525 | ||
| 526 | /* Silently fail things like mouse ports which are subsumed within | ||
| 527 | * the keyboard controller | ||
| 528 | */ | ||
| 529 | if ((hpa & 0xfff) == 0 && insert_resource(&iomem_resource, &dev->hpa)) | ||
| 530 | printk("Unable to claim HPA %lx for device %s\n", | ||
| 531 | hpa, name); | ||
| 532 | |||
| 460 | return dev; | 533 | return dev; |
| 461 | } | 534 | } |
| 462 | 535 | ||
| @@ -555,6 +628,33 @@ static int match_parisc_device(struct device *dev, int index, | |||
| 555 | return (curr->hw_path == id); | 628 | return (curr->hw_path == id); |
| 556 | } | 629 | } |
| 557 | 630 | ||
| 631 | struct parse_tree_data { | ||
| 632 | int index; | ||
| 633 | struct hardware_path * modpath; | ||
| 634 | struct device * dev; | ||
| 635 | }; | ||
| 636 | |||
| 637 | static int check_parent(struct device * dev, void * data) | ||
| 638 | { | ||
| 639 | struct parse_tree_data * d = data; | ||
| 640 | |||
| 641 | if (check_dev(dev)) { | ||
| 642 | if (dev->bus == &parisc_bus_type) { | ||
| 643 | if (match_parisc_device(dev, d->index, d->modpath)) | ||
| 644 | d->dev = dev; | ||
| 645 | } else if (is_pci_dev(dev)) { | ||
| 646 | if (match_pci_device(dev, d->index, d->modpath)) | ||
| 647 | d->dev = dev; | ||
| 648 | } else if (dev->bus == NULL) { | ||
| 649 | /* we are on a bus bridge */ | ||
| 650 | struct device *new = parse_tree_node(dev, d->index, d->modpath); | ||
| 651 | if (new) | ||
| 652 | d->dev = new; | ||
| 653 | } | ||
| 654 | } | ||
| 655 | return d->dev != NULL; | ||
| 656 | } | ||
| 657 | |||
| 558 | /** | 658 | /** |
| 559 | * parse_tree_node - returns a device entry in the iotree | 659 | * parse_tree_node - returns a device entry in the iotree |
| 560 | * @parent: the parent node in the tree | 660 | * @parent: the parent node in the tree |
| @@ -568,24 +668,18 @@ static int match_parisc_device(struct device *dev, int index, | |||
| 568 | static struct device * | 668 | static struct device * |
| 569 | parse_tree_node(struct device *parent, int index, struct hardware_path *modpath) | 669 | parse_tree_node(struct device *parent, int index, struct hardware_path *modpath) |
| 570 | { | 670 | { |
| 571 | struct device *device; | 671 | struct parse_tree_data d = { |
| 572 | 672 | .index = index, | |
| 573 | list_for_each_entry(device, &parent->children, node) { | 673 | .modpath = modpath, |
| 574 | if (device->bus == &parisc_bus_type) { | 674 | }; |
| 575 | if (match_parisc_device(device, index, modpath)) | ||
| 576 | return device; | ||
| 577 | } else if (is_pci_dev(device)) { | ||
| 578 | if (match_pci_device(device, index, modpath)) | ||
| 579 | return device; | ||
| 580 | } else if (device->bus == NULL) { | ||
| 581 | /* we are on a bus bridge */ | ||
| 582 | struct device *new = parse_tree_node(device, index, modpath); | ||
| 583 | if (new) | ||
| 584 | return new; | ||
| 585 | } | ||
| 586 | } | ||
| 587 | 675 | ||
| 588 | return NULL; | 676 | struct recurse_struct recurse_data = { |
| 677 | .obj = &d, | ||
| 678 | .fn = check_parent, | ||
| 679 | }; | ||
| 680 | |||
| 681 | device_for_each_child(parent, &recurse_data, descend_children); | ||
| 682 | return d.dev; | ||
| 589 | } | 683 | } |
| 590 | 684 | ||
| 591 | /** | 685 | /** |
| @@ -636,7 +730,7 @@ EXPORT_SYMBOL(device_to_hwpath); | |||
| 636 | ((dev->id.hw_type == HPHW_IOA) || (dev->id.hw_type == HPHW_BCPORT)) | 730 | ((dev->id.hw_type == HPHW_IOA) || (dev->id.hw_type == HPHW_BCPORT)) |
| 637 | 731 | ||
| 638 | #define IS_LOWER_PORT(dev) \ | 732 | #define IS_LOWER_PORT(dev) \ |
| 639 | ((gsc_readl(dev->hpa + offsetof(struct bc_module, io_status)) \ | 733 | ((gsc_readl(dev->hpa.start + offsetof(struct bc_module, io_status)) \ |
| 640 | & BC_PORT_MASK) == BC_LOWER_PORT) | 734 | & BC_PORT_MASK) == BC_LOWER_PORT) |
| 641 | 735 | ||
| 642 | #define MAX_NATIVE_DEVICES 64 | 736 | #define MAX_NATIVE_DEVICES 64 |
| @@ -645,8 +739,8 @@ EXPORT_SYMBOL(device_to_hwpath); | |||
| 645 | #define FLEX_MASK F_EXTEND(0xfffc0000) | 739 | #define FLEX_MASK F_EXTEND(0xfffc0000) |
| 646 | #define IO_IO_LOW offsetof(struct bc_module, io_io_low) | 740 | #define IO_IO_LOW offsetof(struct bc_module, io_io_low) |
| 647 | #define IO_IO_HIGH offsetof(struct bc_module, io_io_high) | 741 | #define IO_IO_HIGH offsetof(struct bc_module, io_io_high) |
| 648 | #define READ_IO_IO_LOW(dev) (unsigned long)(signed int)gsc_readl(dev->hpa + IO_IO_LOW) | 742 | #define READ_IO_IO_LOW(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_LOW) |
| 649 | #define READ_IO_IO_HIGH(dev) (unsigned long)(signed int)gsc_readl(dev->hpa + IO_IO_HIGH) | 743 | #define READ_IO_IO_HIGH(dev) (unsigned long)(signed int)gsc_readl(dev->hpa.start + IO_IO_HIGH) |
| 650 | 744 | ||
| 651 | static void walk_native_bus(unsigned long io_io_low, unsigned long io_io_high, | 745 | static void walk_native_bus(unsigned long io_io_low, unsigned long io_io_high, |
| 652 | struct device *parent); | 746 | struct device *parent); |
| @@ -655,10 +749,10 @@ void walk_lower_bus(struct parisc_device *dev) | |||
| 655 | { | 749 | { |
| 656 | unsigned long io_io_low, io_io_high; | 750 | unsigned long io_io_low, io_io_high; |
| 657 | 751 | ||
| 658 | if(!BUS_CONVERTER(dev) || IS_LOWER_PORT(dev)) | 752 | if (!BUS_CONVERTER(dev) || IS_LOWER_PORT(dev)) |
| 659 | return; | 753 | return; |
| 660 | 754 | ||
| 661 | if(dev->id.hw_type == HPHW_IOA) { | 755 | if (dev->id.hw_type == HPHW_IOA) { |
| 662 | io_io_low = (unsigned long)(signed int)(READ_IO_IO_LOW(dev) << 16); | 756 | io_io_low = (unsigned long)(signed int)(READ_IO_IO_LOW(dev) << 16); |
| 663 | io_io_high = io_io_low + MAX_NATIVE_DEVICES * NATIVE_DEVICE_OFFSET; | 757 | io_io_high = io_io_low + MAX_NATIVE_DEVICES * NATIVE_DEVICE_OFFSET; |
| 664 | } else { | 758 | } else { |
| @@ -731,7 +825,7 @@ static void print_parisc_device(struct parisc_device *dev) | |||
| 731 | 825 | ||
| 732 | print_pa_hwpath(dev, hw_path); | 826 | print_pa_hwpath(dev, hw_path); |
| 733 | printk(KERN_INFO "%d. %s at 0x%lx [%s] { %d, 0x%x, 0x%.3x, 0x%.5x }", | 827 | printk(KERN_INFO "%d. %s at 0x%lx [%s] { %d, 0x%x, 0x%.3x, 0x%.5x }", |
| 734 | ++count, dev->name, dev->hpa, hw_path, dev->id.hw_type, | 828 | ++count, dev->name, dev->hpa.start, hw_path, dev->id.hw_type, |
| 735 | dev->id.hversion_rev, dev->id.hversion, dev->id.sversion); | 829 | dev->id.hversion_rev, dev->id.hversion, dev->id.sversion); |
| 736 | 830 | ||
| 737 | if (dev->num_addrs) { | 831 | if (dev->num_addrs) { |
| @@ -753,13 +847,20 @@ void init_parisc_bus(void) | |||
| 753 | get_device(&root); | 847 | get_device(&root); |
| 754 | } | 848 | } |
| 755 | 849 | ||
| 850 | |||
| 851 | static int print_one_device(struct device * dev, void * data) | ||
| 852 | { | ||
| 853 | struct parisc_device * pdev = to_parisc_device(dev); | ||
| 854 | |||
| 855 | if (check_dev(dev)) | ||
| 856 | print_parisc_device(pdev); | ||
| 857 | return 0; | ||
| 858 | } | ||
| 859 | |||
| 756 | /** | 860 | /** |
| 757 | * print_parisc_devices - Print out a list of devices found in this system | 861 | * print_parisc_devices - Print out a list of devices found in this system |
| 758 | */ | 862 | */ |
| 759 | void print_parisc_devices(void) | 863 | void print_parisc_devices(void) |
| 760 | { | 864 | { |
| 761 | struct parisc_device *dev; | 865 | for_each_padev(print_one_device, NULL); |
| 762 | for_each_padev(dev) { | ||
| 763 | print_parisc_device(dev); | ||
| 764 | } | ||
| 765 | } | 866 | } |
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index be0f07f2fa58..c7e66ee5b083 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S | |||
| @@ -30,14 +30,14 @@ | |||
| 30 | * - save registers to kernel stack and handle in assembly or C */ | 30 | * - save registers to kernel stack and handle in assembly or C */ |
| 31 | 31 | ||
| 32 | 32 | ||
| 33 | #include <asm/psw.h> | ||
| 33 | #include <asm/assembly.h> /* for LDREG/STREG defines */ | 34 | #include <asm/assembly.h> /* for LDREG/STREG defines */ |
| 34 | #include <asm/pgtable.h> | 35 | #include <asm/pgtable.h> |
| 35 | #include <asm/psw.h> | ||
| 36 | #include <asm/signal.h> | 36 | #include <asm/signal.h> |
| 37 | #include <asm/unistd.h> | 37 | #include <asm/unistd.h> |
| 38 | #include <asm/thread_info.h> | 38 | #include <asm/thread_info.h> |
| 39 | 39 | ||
| 40 | #ifdef __LP64__ | 40 | #ifdef CONFIG_64BIT |
| 41 | #define CMPIB cmpib,* | 41 | #define CMPIB cmpib,* |
| 42 | #define CMPB cmpb,* | 42 | #define CMPB cmpb,* |
| 43 | #define COND(x) *x | 43 | #define COND(x) *x |
| @@ -67,19 +67,22 @@ | |||
| 67 | 67 | ||
| 68 | /* Switch to virtual mapping, trashing only %r1 */ | 68 | /* Switch to virtual mapping, trashing only %r1 */ |
| 69 | .macro virt_map | 69 | .macro virt_map |
| 70 | rsm PSW_SM_Q,%r0 | 70 | /* pcxt_ssm_bug */ |
| 71 | tovirt_r1 %r29 | 71 | rsm PSW_SM_I, %r0 /* barrier for "Relied upon Translation */ |
| 72 | mfsp %sr7, %r1 | ||
| 73 | or,= %r0,%r1,%r0 /* Only save sr7 in sr3 if sr7 != 0 */ | ||
| 74 | mtsp %r1, %sr3 | ||
| 75 | mtsp %r0, %sr4 | 72 | mtsp %r0, %sr4 |
| 76 | mtsp %r0, %sr5 | 73 | mtsp %r0, %sr5 |
| 74 | mfsp %sr7, %r1 | ||
| 75 | or,= %r0,%r1,%r0 /* Only save sr7 in sr3 if sr7 != 0 */ | ||
| 76 | mtsp %r1, %sr3 | ||
| 77 | tovirt_r1 %r29 | ||
| 78 | load32 KERNEL_PSW, %r1 | ||
| 79 | |||
| 80 | rsm PSW_SM_QUIET,%r0 /* second "heavy weight" ctl op */ | ||
| 77 | mtsp %r0, %sr6 | 81 | mtsp %r0, %sr6 |
| 78 | mtsp %r0, %sr7 | 82 | mtsp %r0, %sr7 |
| 79 | load32 KERNEL_PSW, %r1 | ||
| 80 | mtctl %r1, %cr22 | ||
| 81 | mtctl %r0, %cr17 /* Clear IIASQ tail */ | 83 | mtctl %r0, %cr17 /* Clear IIASQ tail */ |
| 82 | mtctl %r0, %cr17 /* Clear IIASQ head */ | 84 | mtctl %r0, %cr17 /* Clear IIASQ head */ |
| 85 | mtctl %r1, %ipsw | ||
| 83 | load32 4f, %r1 | 86 | load32 4f, %r1 |
| 84 | mtctl %r1, %cr18 /* Set IIAOQ tail */ | 87 | mtctl %r1, %cr18 /* Set IIAOQ tail */ |
| 85 | ldo 4(%r1), %r1 | 88 | ldo 4(%r1), %r1 |
| @@ -214,7 +217,7 @@ | |||
| 214 | va = r8 /* virtual address for which the trap occured */ | 217 | va = r8 /* virtual address for which the trap occured */ |
| 215 | spc = r24 /* space for which the trap occured */ | 218 | spc = r24 /* space for which the trap occured */ |
| 216 | 219 | ||
| 217 | #ifndef __LP64__ | 220 | #ifndef CONFIG_64BIT |
| 218 | 221 | ||
| 219 | /* | 222 | /* |
| 220 | * itlb miss interruption handler (parisc 1.1 - 32 bit) | 223 | * itlb miss interruption handler (parisc 1.1 - 32 bit) |
| @@ -236,7 +239,7 @@ | |||
| 236 | 239 | ||
| 237 | .macro itlb_20 code | 240 | .macro itlb_20 code |
| 238 | mfctl %pcsq, spc | 241 | mfctl %pcsq, spc |
| 239 | #ifdef __LP64__ | 242 | #ifdef CONFIG_64BIT |
| 240 | b itlb_miss_20w | 243 | b itlb_miss_20w |
| 241 | #else | 244 | #else |
| 242 | b itlb_miss_20 | 245 | b itlb_miss_20 |
| @@ -246,7 +249,7 @@ | |||
| 246 | .align 32 | 249 | .align 32 |
| 247 | .endm | 250 | .endm |
| 248 | 251 | ||
| 249 | #ifndef __LP64__ | 252 | #ifndef CONFIG_64BIT |
| 250 | /* | 253 | /* |
| 251 | * naitlb miss interruption handler (parisc 1.1 - 32 bit) | 254 | * naitlb miss interruption handler (parisc 1.1 - 32 bit) |
| 252 | * | 255 | * |
| @@ -283,7 +286,7 @@ | |||
| 283 | .macro naitlb_20 code | 286 | .macro naitlb_20 code |
| 284 | 287 | ||
| 285 | mfctl %isr,spc | 288 | mfctl %isr,spc |
| 286 | #ifdef __LP64__ | 289 | #ifdef CONFIG_64BIT |
| 287 | b itlb_miss_20w | 290 | b itlb_miss_20w |
| 288 | #else | 291 | #else |
| 289 | b itlb_miss_20 | 292 | b itlb_miss_20 |
| @@ -296,7 +299,7 @@ | |||
| 296 | .align 32 | 299 | .align 32 |
| 297 | .endm | 300 | .endm |
| 298 | 301 | ||
| 299 | #ifndef __LP64__ | 302 | #ifndef CONFIG_64BIT |
| 300 | /* | 303 | /* |
| 301 | * dtlb miss interruption handler (parisc 1.1 - 32 bit) | 304 | * dtlb miss interruption handler (parisc 1.1 - 32 bit) |
| 302 | */ | 305 | */ |
| @@ -318,7 +321,7 @@ | |||
| 318 | .macro dtlb_20 code | 321 | .macro dtlb_20 code |
| 319 | 322 | ||
| 320 | mfctl %isr, spc | 323 | mfctl %isr, spc |
| 321 | #ifdef __LP64__ | 324 | #ifdef CONFIG_64BIT |
| 322 | b dtlb_miss_20w | 325 | b dtlb_miss_20w |
| 323 | #else | 326 | #else |
| 324 | b dtlb_miss_20 | 327 | b dtlb_miss_20 |
| @@ -328,7 +331,7 @@ | |||
| 328 | .align 32 | 331 | .align 32 |
| 329 | .endm | 332 | .endm |
| 330 | 333 | ||
| 331 | #ifndef __LP64__ | 334 | #ifndef CONFIG_64BIT |
| 332 | /* nadtlb miss interruption handler (parisc 1.1 - 32 bit) */ | 335 | /* nadtlb miss interruption handler (parisc 1.1 - 32 bit) */ |
| 333 | 336 | ||
| 334 | .macro nadtlb_11 code | 337 | .macro nadtlb_11 code |
| @@ -346,7 +349,7 @@ | |||
| 346 | .macro nadtlb_20 code | 349 | .macro nadtlb_20 code |
| 347 | 350 | ||
| 348 | mfctl %isr,spc | 351 | mfctl %isr,spc |
| 349 | #ifdef __LP64__ | 352 | #ifdef CONFIG_64BIT |
| 350 | b nadtlb_miss_20w | 353 | b nadtlb_miss_20w |
| 351 | #else | 354 | #else |
| 352 | b nadtlb_miss_20 | 355 | b nadtlb_miss_20 |
| @@ -356,7 +359,7 @@ | |||
| 356 | .align 32 | 359 | .align 32 |
| 357 | .endm | 360 | .endm |
| 358 | 361 | ||
| 359 | #ifndef __LP64__ | 362 | #ifndef CONFIG_64BIT |
| 360 | /* | 363 | /* |
| 361 | * dirty bit trap interruption handler (parisc 1.1 - 32 bit) | 364 | * dirty bit trap interruption handler (parisc 1.1 - 32 bit) |
| 362 | */ | 365 | */ |
| @@ -378,7 +381,7 @@ | |||
| 378 | .macro dbit_20 code | 381 | .macro dbit_20 code |
| 379 | 382 | ||
| 380 | mfctl %isr,spc | 383 | mfctl %isr,spc |
| 381 | #ifdef __LP64__ | 384 | #ifdef CONFIG_64BIT |
| 382 | b dbit_trap_20w | 385 | b dbit_trap_20w |
| 383 | #else | 386 | #else |
| 384 | b dbit_trap_20 | 387 | b dbit_trap_20 |
| @@ -391,7 +394,7 @@ | |||
| 391 | /* The following are simple 32 vs 64 bit instruction | 394 | /* The following are simple 32 vs 64 bit instruction |
| 392 | * abstractions for the macros */ | 395 | * abstractions for the macros */ |
| 393 | .macro EXTR reg1,start,length,reg2 | 396 | .macro EXTR reg1,start,length,reg2 |
| 394 | #ifdef __LP64__ | 397 | #ifdef CONFIG_64BIT |
| 395 | extrd,u \reg1,32+\start,\length,\reg2 | 398 | extrd,u \reg1,32+\start,\length,\reg2 |
| 396 | #else | 399 | #else |
| 397 | extrw,u \reg1,\start,\length,\reg2 | 400 | extrw,u \reg1,\start,\length,\reg2 |
| @@ -399,7 +402,7 @@ | |||
| 399 | .endm | 402 | .endm |
| 400 | 403 | ||
| 401 | .macro DEP reg1,start,length,reg2 | 404 | .macro DEP reg1,start,length,reg2 |
| 402 | #ifdef __LP64__ | 405 | #ifdef CONFIG_64BIT |
| 403 | depd \reg1,32+\start,\length,\reg2 | 406 | depd \reg1,32+\start,\length,\reg2 |
| 404 | #else | 407 | #else |
| 405 | depw \reg1,\start,\length,\reg2 | 408 | depw \reg1,\start,\length,\reg2 |
| @@ -407,7 +410,7 @@ | |||
| 407 | .endm | 410 | .endm |
| 408 | 411 | ||
| 409 | .macro DEPI val,start,length,reg | 412 | .macro DEPI val,start,length,reg |
| 410 | #ifdef __LP64__ | 413 | #ifdef CONFIG_64BIT |
| 411 | depdi \val,32+\start,\length,\reg | 414 | depdi \val,32+\start,\length,\reg |
| 412 | #else | 415 | #else |
| 413 | depwi \val,\start,\length,\reg | 416 | depwi \val,\start,\length,\reg |
| @@ -418,7 +421,7 @@ | |||
| 418 | * fault. We have to extract this and place it in the va, | 421 | * fault. We have to extract this and place it in the va, |
| 419 | * zeroing the corresponding bits in the space register */ | 422 | * zeroing the corresponding bits in the space register */ |
| 420 | .macro space_adjust spc,va,tmp | 423 | .macro space_adjust spc,va,tmp |
| 421 | #ifdef __LP64__ | 424 | #ifdef CONFIG_64BIT |
| 422 | extrd,u \spc,63,SPACEID_SHIFT,\tmp | 425 | extrd,u \spc,63,SPACEID_SHIFT,\tmp |
| 423 | depd %r0,63,SPACEID_SHIFT,\spc | 426 | depd %r0,63,SPACEID_SHIFT,\spc |
| 424 | depd \tmp,31,SPACEID_SHIFT,\va | 427 | depd \tmp,31,SPACEID_SHIFT,\va |
| @@ -476,7 +479,7 @@ | |||
| 476 | bb,>=,n \pmd,_PxD_PRESENT_BIT,\fault | 479 | bb,>=,n \pmd,_PxD_PRESENT_BIT,\fault |
| 477 | DEP %r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */ | 480 | DEP %r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */ |
| 478 | copy \pmd,%r9 | 481 | copy \pmd,%r9 |
| 479 | #ifdef __LP64__ | 482 | #ifdef CONFIG_64BIT |
| 480 | shld %r9,PxD_VALUE_SHIFT,\pmd | 483 | shld %r9,PxD_VALUE_SHIFT,\pmd |
| 481 | #else | 484 | #else |
| 482 | shlw %r9,PxD_VALUE_SHIFT,\pmd | 485 | shlw %r9,PxD_VALUE_SHIFT,\pmd |
| @@ -607,7 +610,7 @@ | |||
| 607 | .macro do_alias spc,tmp,tmp1,va,pte,prot,fault | 610 | .macro do_alias spc,tmp,tmp1,va,pte,prot,fault |
| 608 | cmpib,COND(<>),n 0,\spc,\fault | 611 | cmpib,COND(<>),n 0,\spc,\fault |
| 609 | ldil L%(TMPALIAS_MAP_START),\tmp | 612 | ldil L%(TMPALIAS_MAP_START),\tmp |
| 610 | #if defined(__LP64__) && (TMPALIAS_MAP_START >= 0x80000000) | 613 | #if defined(CONFIG_64BIT) && (TMPALIAS_MAP_START >= 0x80000000) |
| 611 | /* on LP64, ldi will sign extend into the upper 32 bits, | 614 | /* on LP64, ldi will sign extend into the upper 32 bits, |
| 612 | * which is behaviour we don't want */ | 615 | * which is behaviour we don't want */ |
| 613 | depdi 0,31,32,\tmp | 616 | depdi 0,31,32,\tmp |
| @@ -621,7 +624,7 @@ | |||
| 621 | * OK, it is in the temp alias region, check whether "from" or "to". | 624 | * OK, it is in the temp alias region, check whether "from" or "to". |
| 622 | * Check "subtle" note in pacache.S re: r23/r26. | 625 | * Check "subtle" note in pacache.S re: r23/r26. |
| 623 | */ | 626 | */ |
| 624 | #ifdef __LP64__ | 627 | #ifdef CONFIG_64BIT |
| 625 | extrd,u,*= \va,41,1,%r0 | 628 | extrd,u,*= \va,41,1,%r0 |
| 626 | #else | 629 | #else |
| 627 | extrw,u,= \va,9,1,%r0 | 630 | extrw,u,= \va,9,1,%r0 |
| @@ -688,7 +691,7 @@ fault_vector_20: | |||
| 688 | def 30 | 691 | def 30 |
| 689 | def 31 | 692 | def 31 |
| 690 | 693 | ||
| 691 | #ifndef __LP64__ | 694 | #ifndef CONFIG_64BIT |
| 692 | 695 | ||
| 693 | .export fault_vector_11 | 696 | .export fault_vector_11 |
| 694 | 697 | ||
| @@ -761,7 +764,7 @@ __kernel_thread: | |||
| 761 | 764 | ||
| 762 | copy %r30, %r1 | 765 | copy %r30, %r1 |
| 763 | ldo PT_SZ_ALGN(%r30),%r30 | 766 | ldo PT_SZ_ALGN(%r30),%r30 |
| 764 | #ifdef __LP64__ | 767 | #ifdef CONFIG_64BIT |
| 765 | /* Yo, function pointers in wide mode are little structs... -PB */ | 768 | /* Yo, function pointers in wide mode are little structs... -PB */ |
| 766 | ldd 24(%r26), %r2 | 769 | ldd 24(%r26), %r2 |
| 767 | STREG %r2, PT_GR27(%r1) /* Store childs %dp */ | 770 | STREG %r2, PT_GR27(%r1) /* Store childs %dp */ |
| @@ -777,7 +780,7 @@ __kernel_thread: | |||
| 777 | or %r26, %r24, %r26 /* will have kernel mappings. */ | 780 | or %r26, %r24, %r26 /* will have kernel mappings. */ |
| 778 | ldi 1, %r25 /* stack_start, signals kernel thread */ | 781 | ldi 1, %r25 /* stack_start, signals kernel thread */ |
| 779 | stw %r0, -52(%r30) /* user_tid */ | 782 | stw %r0, -52(%r30) /* user_tid */ |
| 780 | #ifdef __LP64__ | 783 | #ifdef CONFIG_64BIT |
| 781 | ldo -16(%r30),%r29 /* Reference param save area */ | 784 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 782 | #endif | 785 | #endif |
| 783 | BL do_fork, %r2 | 786 | BL do_fork, %r2 |
| @@ -806,7 +809,7 @@ ret_from_kernel_thread: | |||
| 806 | 809 | ||
| 807 | LDREG TI_TASK-THREAD_SZ_ALGN(%r30), %r1 | 810 | LDREG TI_TASK-THREAD_SZ_ALGN(%r30), %r1 |
| 808 | LDREG TASK_PT_GR25(%r1), %r26 | 811 | LDREG TASK_PT_GR25(%r1), %r26 |
| 809 | #ifdef __LP64__ | 812 | #ifdef CONFIG_64BIT |
| 810 | LDREG TASK_PT_GR27(%r1), %r27 | 813 | LDREG TASK_PT_GR27(%r1), %r27 |
| 811 | LDREG TASK_PT_GR22(%r1), %r22 | 814 | LDREG TASK_PT_GR22(%r1), %r22 |
| 812 | #endif | 815 | #endif |
| @@ -814,11 +817,16 @@ ret_from_kernel_thread: | |||
| 814 | ble 0(%sr7, %r1) | 817 | ble 0(%sr7, %r1) |
| 815 | copy %r31, %r2 | 818 | copy %r31, %r2 |
| 816 | 819 | ||
| 817 | #ifdef __LP64__ | 820 | #ifdef CONFIG_64BIT |
| 818 | ldo -16(%r30),%r29 /* Reference param save area */ | 821 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 819 | loadgp /* Thread could have been in a module */ | 822 | loadgp /* Thread could have been in a module */ |
| 820 | #endif | 823 | #endif |
| 824 | #ifndef CONFIG_64BIT | ||
| 821 | b sys_exit | 825 | b sys_exit |
| 826 | #else | ||
| 827 | load32 sys_exit, %r1 | ||
| 828 | bv %r0(%r1) | ||
| 829 | #endif | ||
| 822 | ldi 0, %r26 | 830 | ldi 0, %r26 |
| 823 | 831 | ||
| 824 | .import sys_execve, code | 832 | .import sys_execve, code |
| @@ -830,7 +838,7 @@ __execve: | |||
| 830 | STREG %r26, PT_GR26(%r16) | 838 | STREG %r26, PT_GR26(%r16) |
| 831 | STREG %r25, PT_GR25(%r16) | 839 | STREG %r25, PT_GR25(%r16) |
| 832 | STREG %r24, PT_GR24(%r16) | 840 | STREG %r24, PT_GR24(%r16) |
| 833 | #ifdef __LP64__ | 841 | #ifdef CONFIG_64BIT |
| 834 | ldo -16(%r30),%r29 /* Reference param save area */ | 842 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 835 | #endif | 843 | #endif |
| 836 | BL sys_execve, %r2 | 844 | BL sys_execve, %r2 |
| @@ -855,6 +863,7 @@ __execve: | |||
| 855 | _switch_to: | 863 | _switch_to: |
| 856 | STREG %r2, -RP_OFFSET(%r30) | 864 | STREG %r2, -RP_OFFSET(%r30) |
| 857 | 865 | ||
| 866 | callee_save_float | ||
| 858 | callee_save | 867 | callee_save |
| 859 | 868 | ||
| 860 | load32 _switch_to_ret, %r2 | 869 | load32 _switch_to_ret, %r2 |
| @@ -871,6 +880,7 @@ _switch_to: | |||
| 871 | _switch_to_ret: | 880 | _switch_to_ret: |
| 872 | mtctl %r0, %cr0 /* Needed for single stepping */ | 881 | mtctl %r0, %cr0 /* Needed for single stepping */ |
| 873 | callee_rest | 882 | callee_rest |
| 883 | callee_rest_float | ||
| 874 | 884 | ||
| 875 | LDREG -RP_OFFSET(%r30), %r2 | 885 | LDREG -RP_OFFSET(%r30), %r2 |
| 876 | bv %r0(%r2) | 886 | bv %r0(%r2) |
| @@ -888,9 +898,6 @@ _switch_to_ret: | |||
| 888 | * this way, then we will need to copy %sr3 in to PT_SR[3..7], and | 898 | * this way, then we will need to copy %sr3 in to PT_SR[3..7], and |
| 889 | * adjust IASQ[0..1]. | 899 | * adjust IASQ[0..1]. |
| 890 | * | 900 | * |
| 891 | * Note that the following code uses a "relied upon translation". | ||
| 892 | * See the parisc ACD for details. The ssm is necessary due to a | ||
| 893 | * PCXT bug. | ||
| 894 | */ | 901 | */ |
| 895 | 902 | ||
| 896 | .align 4096 | 903 | .align 4096 |
| @@ -911,7 +918,7 @@ syscall_exit_rfi: | |||
| 911 | STREG %r19,PT_IAOQ1(%r16) | 918 | STREG %r19,PT_IAOQ1(%r16) |
| 912 | LDREG PT_PSW(%r16),%r19 | 919 | LDREG PT_PSW(%r16),%r19 |
| 913 | load32 USER_PSW_MASK,%r1 | 920 | load32 USER_PSW_MASK,%r1 |
| 914 | #ifdef __LP64__ | 921 | #ifdef CONFIG_64BIT |
| 915 | load32 USER_PSW_HI_MASK,%r20 | 922 | load32 USER_PSW_HI_MASK,%r20 |
| 916 | depd %r20,31,32,%r1 | 923 | depd %r20,31,32,%r1 |
| 917 | #endif | 924 | #endif |
| @@ -955,7 +962,7 @@ intr_return: | |||
| 955 | /* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) amount | 962 | /* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) amount |
| 956 | ** irq_stat[] is defined using ____cacheline_aligned. | 963 | ** irq_stat[] is defined using ____cacheline_aligned. |
| 957 | */ | 964 | */ |
| 958 | #ifdef __LP64__ | 965 | #ifdef CONFIG_64BIT |
| 959 | shld %r1, 6, %r20 | 966 | shld %r1, 6, %r20 |
| 960 | #else | 967 | #else |
| 961 | shlw %r1, 5, %r20 | 968 | shlw %r1, 5, %r20 |
| @@ -963,9 +970,6 @@ intr_return: | |||
| 963 | add %r19,%r20,%r19 /* now have &irq_stat[smp_processor_id()] */ | 970 | add %r19,%r20,%r19 /* now have &irq_stat[smp_processor_id()] */ |
| 964 | #endif /* CONFIG_SMP */ | 971 | #endif /* CONFIG_SMP */ |
| 965 | 972 | ||
| 966 | LDREG IRQSTAT_SIRQ_PEND(%r19),%r20 /* hardirq.h: unsigned long */ | ||
| 967 | cmpib,<>,n 0,%r20,intr_do_softirq /* forward */ | ||
| 968 | |||
| 969 | intr_check_resched: | 973 | intr_check_resched: |
| 970 | 974 | ||
| 971 | /* check for reschedule */ | 975 | /* check for reschedule */ |
| @@ -985,24 +989,19 @@ intr_restore: | |||
| 985 | rest_fp %r1 | 989 | rest_fp %r1 |
| 986 | rest_general %r29 | 990 | rest_general %r29 |
| 987 | 991 | ||
| 988 | /* Create a "relied upon translation" PA 2.0 Arch. F-5 */ | 992 | /* inverse of virt_map */ |
| 989 | ssm 0,%r0 | 993 | pcxt_ssm_bug |
| 990 | nop | 994 | rsm PSW_SM_QUIET,%r0 /* prepare for rfi */ |
| 991 | nop | ||
| 992 | nop | ||
| 993 | nop | ||
| 994 | nop | ||
| 995 | nop | ||
| 996 | nop | ||
| 997 | tophys_r1 %r29 | 995 | tophys_r1 %r29 |
| 998 | rsm (PSW_SM_Q|PSW_SM_P|PSW_SM_D|PSW_SM_I),%r0 | ||
| 999 | 996 | ||
| 1000 | /* Restore space id's and special cr's from PT_REGS | 997 | /* Restore space id's and special cr's from PT_REGS |
| 1001 | * structure pointed to by r29 */ | 998 | * structure pointed to by r29 |
| 999 | */ | ||
| 1002 | rest_specials %r29 | 1000 | rest_specials %r29 |
| 1003 | 1001 | ||
| 1004 | /* Important: Note that rest_stack restores r29 | 1002 | /* IMPORTANT: rest_stack restores r29 last (we are using it)! |
| 1005 | * last (we are using it)! It also restores r1 and r30. */ | 1003 | * It also restores r1 and r30. |
| 1004 | */ | ||
| 1006 | rest_stack | 1005 | rest_stack |
| 1007 | 1006 | ||
| 1008 | rfi | 1007 | rfi |
| @@ -1015,17 +1014,6 @@ intr_restore: | |||
| 1015 | nop | 1014 | nop |
| 1016 | nop | 1015 | nop |
| 1017 | 1016 | ||
| 1018 | .import do_softirq,code | ||
| 1019 | intr_do_softirq: | ||
| 1020 | bl do_softirq,%r2 | ||
| 1021 | #ifdef __LP64__ | ||
| 1022 | ldo -16(%r30),%r29 /* Reference param save area */ | ||
| 1023 | #else | ||
| 1024 | nop | ||
| 1025 | #endif | ||
| 1026 | b intr_check_resched | ||
| 1027 | nop | ||
| 1028 | |||
| 1029 | .import schedule,code | 1017 | .import schedule,code |
| 1030 | intr_do_resched: | 1018 | intr_do_resched: |
| 1031 | /* Only do reschedule if we are returning to user space */ | 1019 | /* Only do reschedule if we are returning to user space */ |
| @@ -1036,12 +1024,17 @@ intr_do_resched: | |||
| 1036 | CMPIB= 0,%r20,intr_restore /* backward */ | 1024 | CMPIB= 0,%r20,intr_restore /* backward */ |
| 1037 | nop | 1025 | nop |
| 1038 | 1026 | ||
| 1039 | #ifdef __LP64__ | 1027 | #ifdef CONFIG_64BIT |
| 1040 | ldo -16(%r30),%r29 /* Reference param save area */ | 1028 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 1041 | #endif | 1029 | #endif |
| 1042 | 1030 | ||
| 1043 | ldil L%intr_check_sig, %r2 | 1031 | ldil L%intr_check_sig, %r2 |
| 1032 | #ifndef CONFIG_64BIT | ||
| 1044 | b schedule | 1033 | b schedule |
| 1034 | #else | ||
| 1035 | load32 schedule, %r20 | ||
| 1036 | bv %r0(%r20) | ||
| 1037 | #endif | ||
| 1045 | ldo R%intr_check_sig(%r2), %r2 | 1038 | ldo R%intr_check_sig(%r2), %r2 |
| 1046 | 1039 | ||
| 1047 | 1040 | ||
| @@ -1064,7 +1057,7 @@ intr_do_signal: | |||
| 1064 | 1057 | ||
| 1065 | copy %r0, %r24 /* unsigned long in_syscall */ | 1058 | copy %r0, %r24 /* unsigned long in_syscall */ |
| 1066 | copy %r16, %r25 /* struct pt_regs *regs */ | 1059 | copy %r16, %r25 /* struct pt_regs *regs */ |
| 1067 | #ifdef __LP64__ | 1060 | #ifdef CONFIG_64BIT |
| 1068 | ldo -16(%r30),%r29 /* Reference param save area */ | 1061 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 1069 | #endif | 1062 | #endif |
| 1070 | 1063 | ||
| @@ -1088,7 +1081,7 @@ intr_extint: | |||
| 1088 | mfctl %cr31,%r1 | 1081 | mfctl %cr31,%r1 |
| 1089 | copy %r30,%r17 | 1082 | copy %r30,%r17 |
| 1090 | /* FIXME! depi below has hardcoded idea of interrupt stack size (32k)*/ | 1083 | /* FIXME! depi below has hardcoded idea of interrupt stack size (32k)*/ |
| 1091 | #ifdef __LP64__ | 1084 | #ifdef CONFIG_64BIT |
| 1092 | depdi 0,63,15,%r17 | 1085 | depdi 0,63,15,%r17 |
| 1093 | #else | 1086 | #else |
| 1094 | depi 0,31,15,%r17 | 1087 | depi 0,31,15,%r17 |
| @@ -1115,7 +1108,7 @@ intr_extint: | |||
| 1115 | 1108 | ||
| 1116 | ldil L%intr_return, %r2 | 1109 | ldil L%intr_return, %r2 |
| 1117 | 1110 | ||
| 1118 | #ifdef __LP64__ | 1111 | #ifdef CONFIG_64BIT |
| 1119 | ldo -16(%r30),%r29 /* Reference param save area */ | 1112 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 1120 | #endif | 1113 | #endif |
| 1121 | 1114 | ||
| @@ -1153,15 +1146,17 @@ intr_save: | |||
| 1153 | 1146 | ||
| 1154 | CMPIB=,n 6,%r26,skip_save_ior | 1147 | CMPIB=,n 6,%r26,skip_save_ior |
| 1155 | 1148 | ||
| 1156 | /* save_specials left ipsw value in r8 for us to test */ | ||
| 1157 | 1149 | ||
| 1158 | mfctl %cr20, %r16 /* isr */ | 1150 | mfctl %cr20, %r16 /* isr */ |
| 1151 | nop /* serialize mfctl on PA 2.0 to avoid 4 cycle penalty */ | ||
| 1159 | mfctl %cr21, %r17 /* ior */ | 1152 | mfctl %cr21, %r17 /* ior */ |
| 1160 | 1153 | ||
| 1161 | #ifdef __LP64__ | 1154 | |
| 1155 | #ifdef CONFIG_64BIT | ||
| 1162 | /* | 1156 | /* |
| 1163 | * If the interrupted code was running with W bit off (32 bit), | 1157 | * If the interrupted code was running with W bit off (32 bit), |
| 1164 | * clear the b bits (bits 0 & 1) in the ior. | 1158 | * clear the b bits (bits 0 & 1) in the ior. |
| 1159 | * save_specials left ipsw value in r8 for us to test. | ||
| 1165 | */ | 1160 | */ |
| 1166 | extrd,u,*<> %r8,PSW_W_BIT,1,%r0 | 1161 | extrd,u,*<> %r8,PSW_W_BIT,1,%r0 |
| 1167 | depdi 0,1,2,%r17 | 1162 | depdi 0,1,2,%r17 |
| @@ -1192,7 +1187,7 @@ skip_save_ior: | |||
| 1192 | loadgp | 1187 | loadgp |
| 1193 | 1188 | ||
| 1194 | copy %r29, %r25 /* arg1 is pt_regs */ | 1189 | copy %r29, %r25 /* arg1 is pt_regs */ |
| 1195 | #ifdef __LP64__ | 1190 | #ifdef CONFIG_64BIT |
| 1196 | ldo -16(%r30),%r29 /* Reference param save area */ | 1191 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 1197 | #endif | 1192 | #endif |
| 1198 | 1193 | ||
| @@ -1230,7 +1225,7 @@ skip_save_ior: | |||
| 1230 | spc = r24 /* space for which the trap occured */ | 1225 | spc = r24 /* space for which the trap occured */ |
| 1231 | ptp = r25 /* page directory/page table pointer */ | 1226 | ptp = r25 /* page directory/page table pointer */ |
| 1232 | 1227 | ||
| 1233 | #ifdef __LP64__ | 1228 | #ifdef CONFIG_64BIT |
| 1234 | 1229 | ||
| 1235 | dtlb_miss_20w: | 1230 | dtlb_miss_20w: |
| 1236 | space_adjust spc,va,t0 | 1231 | space_adjust spc,va,t0 |
| @@ -1487,10 +1482,10 @@ nadtlb_emulate: | |||
| 1487 | add,l %r1,%r24,%r1 /* doesn't affect c/b bits */ | 1482 | add,l %r1,%r24,%r1 /* doesn't affect c/b bits */ |
| 1488 | 1483 | ||
| 1489 | nadtlb_nullify: | 1484 | nadtlb_nullify: |
| 1490 | mfctl %cr22,%r8 /* Get ipsw */ | 1485 | mfctl %ipsw,%r8 |
| 1491 | ldil L%PSW_N,%r9 | 1486 | ldil L%PSW_N,%r9 |
| 1492 | or %r8,%r9,%r8 /* Set PSW_N */ | 1487 | or %r8,%r9,%r8 /* Set PSW_N */ |
| 1493 | mtctl %r8,%cr22 | 1488 | mtctl %r8,%ipsw |
| 1494 | 1489 | ||
| 1495 | rfir | 1490 | rfir |
| 1496 | nop | 1491 | nop |
| @@ -1521,7 +1516,7 @@ nadtlb_probe_check: | |||
| 1521 | nop | 1516 | nop |
| 1522 | 1517 | ||
| 1523 | 1518 | ||
| 1524 | #ifdef __LP64__ | 1519 | #ifdef CONFIG_64BIT |
| 1525 | itlb_miss_20w: | 1520 | itlb_miss_20w: |
| 1526 | 1521 | ||
| 1527 | /* | 1522 | /* |
| @@ -1588,7 +1583,7 @@ itlb_miss_20: | |||
| 1588 | 1583 | ||
| 1589 | #endif | 1584 | #endif |
| 1590 | 1585 | ||
| 1591 | #ifdef __LP64__ | 1586 | #ifdef CONFIG_64BIT |
| 1592 | 1587 | ||
| 1593 | dbit_trap_20w: | 1588 | dbit_trap_20w: |
| 1594 | space_adjust spc,va,t0 | 1589 | space_adjust spc,va,t0 |
| @@ -1797,7 +1792,7 @@ sys_fork_wrapper: | |||
| 1797 | 1792 | ||
| 1798 | STREG %r2,-RP_OFFSET(%r30) | 1793 | STREG %r2,-RP_OFFSET(%r30) |
| 1799 | ldo FRAME_SIZE(%r30),%r30 | 1794 | ldo FRAME_SIZE(%r30),%r30 |
| 1800 | #ifdef __LP64__ | 1795 | #ifdef CONFIG_64BIT |
| 1801 | ldo -16(%r30),%r29 /* Reference param save area */ | 1796 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 1802 | #endif | 1797 | #endif |
| 1803 | 1798 | ||
| @@ -1847,7 +1842,7 @@ sys_clone_wrapper: | |||
| 1847 | 1842 | ||
| 1848 | STREG %r2,-RP_OFFSET(%r30) | 1843 | STREG %r2,-RP_OFFSET(%r30) |
| 1849 | ldo FRAME_SIZE(%r30),%r30 | 1844 | ldo FRAME_SIZE(%r30),%r30 |
| 1850 | #ifdef __LP64__ | 1845 | #ifdef CONFIG_64BIT |
| 1851 | ldo -16(%r30),%r29 /* Reference param save area */ | 1846 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 1852 | #endif | 1847 | #endif |
| 1853 | 1848 | ||
| @@ -1869,7 +1864,7 @@ sys_vfork_wrapper: | |||
| 1869 | 1864 | ||
| 1870 | STREG %r2,-RP_OFFSET(%r30) | 1865 | STREG %r2,-RP_OFFSET(%r30) |
| 1871 | ldo FRAME_SIZE(%r30),%r30 | 1866 | ldo FRAME_SIZE(%r30),%r30 |
| 1872 | #ifdef __LP64__ | 1867 | #ifdef CONFIG_64BIT |
| 1873 | ldo -16(%r30),%r29 /* Reference param save area */ | 1868 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 1874 | #endif | 1869 | #endif |
| 1875 | 1870 | ||
| @@ -1897,10 +1892,10 @@ sys_vfork_wrapper: | |||
| 1897 | 1892 | ||
| 1898 | STREG %r2,-RP_OFFSET(%r30) | 1893 | STREG %r2,-RP_OFFSET(%r30) |
| 1899 | ldo FRAME_SIZE(%r30),%r30 | 1894 | ldo FRAME_SIZE(%r30),%r30 |
| 1900 | #ifdef __LP64__ | 1895 | #ifdef CONFIG_64BIT |
| 1901 | ldo -16(%r30),%r29 /* Reference param save area */ | 1896 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 1902 | #endif | 1897 | #endif |
| 1903 | bl \execve,%r2 | 1898 | BL \execve,%r2 |
| 1904 | copy %r1,%arg0 | 1899 | copy %r1,%arg0 |
| 1905 | 1900 | ||
| 1906 | ldo -FRAME_SIZE(%r30),%r30 | 1901 | ldo -FRAME_SIZE(%r30),%r30 |
| @@ -1923,7 +1918,7 @@ error_\execve: | |||
| 1923 | sys_execve_wrapper: | 1918 | sys_execve_wrapper: |
| 1924 | execve_wrapper sys_execve | 1919 | execve_wrapper sys_execve |
| 1925 | 1920 | ||
| 1926 | #ifdef __LP64__ | 1921 | #ifdef CONFIG_64BIT |
| 1927 | .export sys32_execve_wrapper | 1922 | .export sys32_execve_wrapper |
| 1928 | .import sys32_execve | 1923 | .import sys32_execve |
| 1929 | 1924 | ||
| @@ -1937,7 +1932,7 @@ sys_rt_sigreturn_wrapper: | |||
| 1937 | ldo TASK_REGS(%r26),%r26 /* get pt regs */ | 1932 | ldo TASK_REGS(%r26),%r26 /* get pt regs */ |
| 1938 | /* Don't save regs, we are going to restore them from sigcontext. */ | 1933 | /* Don't save regs, we are going to restore them from sigcontext. */ |
| 1939 | STREG %r2, -RP_OFFSET(%r30) | 1934 | STREG %r2, -RP_OFFSET(%r30) |
| 1940 | #ifdef __LP64__ | 1935 | #ifdef CONFIG_64BIT |
| 1941 | ldo FRAME_SIZE(%r30), %r30 | 1936 | ldo FRAME_SIZE(%r30), %r30 |
| 1942 | BL sys_rt_sigreturn,%r2 | 1937 | BL sys_rt_sigreturn,%r2 |
| 1943 | ldo -16(%r30),%r29 /* Reference param save area */ | 1938 | ldo -16(%r30),%r29 /* Reference param save area */ |
| @@ -1968,7 +1963,7 @@ sys_sigaltstack_wrapper: | |||
| 1968 | ldo TASK_REGS(%r1),%r24 /* get pt regs */ | 1963 | ldo TASK_REGS(%r1),%r24 /* get pt regs */ |
| 1969 | LDREG TASK_PT_GR30(%r24),%r24 | 1964 | LDREG TASK_PT_GR30(%r24),%r24 |
| 1970 | STREG %r2, -RP_OFFSET(%r30) | 1965 | STREG %r2, -RP_OFFSET(%r30) |
| 1971 | #ifdef __LP64__ | 1966 | #ifdef CONFIG_64BIT |
| 1972 | ldo FRAME_SIZE(%r30), %r30 | 1967 | ldo FRAME_SIZE(%r30), %r30 |
| 1973 | b,l do_sigaltstack,%r2 | 1968 | b,l do_sigaltstack,%r2 |
| 1974 | ldo -16(%r30),%r29 /* Reference param save area */ | 1969 | ldo -16(%r30),%r29 /* Reference param save area */ |
| @@ -1982,7 +1977,7 @@ sys_sigaltstack_wrapper: | |||
| 1982 | bv %r0(%r2) | 1977 | bv %r0(%r2) |
| 1983 | nop | 1978 | nop |
| 1984 | 1979 | ||
| 1985 | #ifdef __LP64__ | 1980 | #ifdef CONFIG_64BIT |
| 1986 | .export sys32_sigaltstack_wrapper | 1981 | .export sys32_sigaltstack_wrapper |
| 1987 | sys32_sigaltstack_wrapper: | 1982 | sys32_sigaltstack_wrapper: |
| 1988 | /* Get the user stack pointer */ | 1983 | /* Get the user stack pointer */ |
| @@ -2006,7 +2001,7 @@ sys_rt_sigsuspend_wrapper: | |||
| 2006 | reg_save %r24 | 2001 | reg_save %r24 |
| 2007 | 2002 | ||
| 2008 | STREG %r2, -RP_OFFSET(%r30) | 2003 | STREG %r2, -RP_OFFSET(%r30) |
| 2009 | #ifdef __LP64__ | 2004 | #ifdef CONFIG_64BIT |
| 2010 | ldo FRAME_SIZE(%r30), %r30 | 2005 | ldo FRAME_SIZE(%r30), %r30 |
| 2011 | b,l sys_rt_sigsuspend,%r2 | 2006 | b,l sys_rt_sigsuspend,%r2 |
| 2012 | ldo -16(%r30),%r29 /* Reference param save area */ | 2007 | ldo -16(%r30),%r29 /* Reference param save area */ |
| @@ -2079,7 +2074,7 @@ syscall_check_bh: | |||
| 2079 | ldw TI_CPU-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 /* cpu # */ | 2074 | ldw TI_CPU-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 /* cpu # */ |
| 2080 | 2075 | ||
| 2081 | /* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) bits */ | 2076 | /* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) bits */ |
| 2082 | #ifdef __LP64__ | 2077 | #ifdef CONFIG_64BIT |
| 2083 | shld %r26, 6, %r20 | 2078 | shld %r26, 6, %r20 |
| 2084 | #else | 2079 | #else |
| 2085 | shlw %r26, 5, %r20 | 2080 | shlw %r26, 5, %r20 |
| @@ -2087,9 +2082,6 @@ syscall_check_bh: | |||
| 2087 | add %r19,%r20,%r19 /* now have &irq_stat[smp_processor_id()] */ | 2082 | add %r19,%r20,%r19 /* now have &irq_stat[smp_processor_id()] */ |
| 2088 | #endif /* CONFIG_SMP */ | 2083 | #endif /* CONFIG_SMP */ |
| 2089 | 2084 | ||
| 2090 | LDREG IRQSTAT_SIRQ_PEND(%r19),%r20 /* hardirq.h: unsigned long */ | ||
| 2091 | cmpib,<>,n 0,%r20,syscall_do_softirq /* forward */ | ||
| 2092 | |||
| 2093 | syscall_check_resched: | 2085 | syscall_check_resched: |
| 2094 | 2086 | ||
| 2095 | /* check for reschedule */ | 2087 | /* check for reschedule */ |
| @@ -2144,7 +2136,7 @@ syscall_restore: | |||
| 2144 | 2136 | ||
| 2145 | depi 3,31,2,%r31 /* ensure return to user mode. */ | 2137 | depi 3,31,2,%r31 /* ensure return to user mode. */ |
| 2146 | 2138 | ||
| 2147 | #ifdef __LP64__ | 2139 | #ifdef CONFIG_64BIT |
| 2148 | /* decide whether to reset the wide mode bit | 2140 | /* decide whether to reset the wide mode bit |
| 2149 | * | 2141 | * |
| 2150 | * For a syscall, the W bit is stored in the lowest bit | 2142 | * For a syscall, the W bit is stored in the lowest bit |
| @@ -2227,20 +2219,10 @@ pt_regs_ok: | |||
| 2227 | b intr_restore | 2219 | b intr_restore |
| 2228 | nop | 2220 | nop |
| 2229 | 2221 | ||
| 2230 | .import do_softirq,code | ||
| 2231 | syscall_do_softirq: | ||
| 2232 | bl do_softirq,%r2 | ||
| 2233 | nop | ||
| 2234 | /* NOTE: We enable I-bit incase we schedule later, | ||
| 2235 | * and we might be going back to userspace if we were | ||
| 2236 | * traced. */ | ||
| 2237 | b syscall_check_resched | ||
| 2238 | ssm PSW_SM_I, %r0 /* do_softirq returns with I bit off */ | ||
| 2239 | |||
| 2240 | .import schedule,code | 2222 | .import schedule,code |
| 2241 | syscall_do_resched: | 2223 | syscall_do_resched: |
| 2242 | BL schedule,%r2 | 2224 | BL schedule,%r2 |
| 2243 | #ifdef __LP64__ | 2225 | #ifdef CONFIG_64BIT |
| 2244 | ldo -16(%r30),%r29 /* Reference param save area */ | 2226 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 2245 | #else | 2227 | #else |
| 2246 | nop | 2228 | nop |
| @@ -2260,7 +2242,7 @@ syscall_do_signal: | |||
| 2260 | 2242 | ||
| 2261 | ldi 1, %r24 /* unsigned long in_syscall */ | 2243 | ldi 1, %r24 /* unsigned long in_syscall */ |
| 2262 | 2244 | ||
| 2263 | #ifdef __LP64__ | 2245 | #ifdef CONFIG_64BIT |
| 2264 | ldo -16(%r30),%r29 /* Reference param save area */ | 2246 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 2265 | #endif | 2247 | #endif |
| 2266 | BL do_signal,%r2 | 2248 | BL do_signal,%r2 |
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index f244fb200db1..553f8fe03224 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c | |||
| @@ -83,15 +83,15 @@ static unsigned long pdc_result2[32] __attribute__ ((aligned (8))); | |||
| 83 | int parisc_narrow_firmware = 1; | 83 | int parisc_narrow_firmware = 1; |
| 84 | #endif | 84 | #endif |
| 85 | 85 | ||
| 86 | /* on all currently-supported platforms, IODC I/O calls are always | 86 | /* On most currently-supported platforms, IODC I/O calls are 32-bit calls |
| 87 | * 32-bit calls, and MEM_PDC calls are always the same width as the OS. | 87 | * and MEM_PDC calls are always the same width as the OS. |
| 88 | * This means Cxxx boxes can't run wide kernels right now. -PB | 88 | * Some PAT boxes may have 64-bit IODC I/O. |
| 89 | * | 89 | * |
| 90 | * CONFIG_PDC_NARROW has been added to allow 64-bit kernels to run on | 90 | * Ryan Bradetich added the now obsolete CONFIG_PDC_NARROW to allow |
| 91 | * systems with 32-bit MEM_PDC calls. This will allow wide kernels to | 91 | * 64-bit kernels to run on systems with 32-bit MEM_PDC calls. |
| 92 | * run on Cxxx boxes now. -RB | 92 | * This allowed wide kernels to run on Cxxx boxes. |
| 93 | * | 93 | * We now detect 32-bit-only PDC and dynamically switch to 32-bit mode |
| 94 | * Note that some PAT boxes may have 64-bit IODC I/O... | 94 | * when running a 64-bit kernel on such boxes (e.g. C200 or C360). |
| 95 | */ | 95 | */ |
| 96 | 96 | ||
| 97 | #ifdef __LP64__ | 97 | #ifdef __LP64__ |
diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S index 28405edf8448..0b47afc20690 100644 --- a/arch/parisc/kernel/head.S +++ b/arch/parisc/kernel/head.S | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | * Initial Version 04-23-1999 by Helge Deller <deller@gmx.de> | 12 | * Initial Version 04-23-1999 by Helge Deller <deller@gmx.de> |
| 13 | */ | 13 | */ |
| 14 | 14 | ||
| 15 | #include <linux/autoconf.h> /* for CONFIG_SMP */ | 15 | #include <linux/config.h> /* for CONFIG_SMP */ |
| 16 | 16 | ||
| 17 | #include <asm/asm-offsets.h> | 17 | #include <asm/asm-offsets.h> |
| 18 | #include <asm/psw.h> | 18 | #include <asm/psw.h> |
| @@ -36,10 +36,10 @@ boot_args: | |||
| 36 | .align 4 | 36 | .align 4 |
| 37 | .import init_thread_union,data | 37 | .import init_thread_union,data |
| 38 | .import fault_vector_20,code /* IVA parisc 2.0 32 bit */ | 38 | .import fault_vector_20,code /* IVA parisc 2.0 32 bit */ |
| 39 | #ifndef __LP64__ | 39 | #ifndef CONFIG_64BIT |
| 40 | .import fault_vector_11,code /* IVA parisc 1.1 32 bit */ | 40 | .import fault_vector_11,code /* IVA parisc 1.1 32 bit */ |
| 41 | .import $global$ /* forward declaration */ | 41 | .import $global$ /* forward declaration */ |
| 42 | #endif /*!LP64*/ | 42 | #endif /*!CONFIG_64BIT*/ |
| 43 | .export stext | 43 | .export stext |
| 44 | .export _stext,data /* Kernel want it this way! */ | 44 | .export _stext,data /* Kernel want it this way! */ |
| 45 | _stext: | 45 | _stext: |
| @@ -76,7 +76,7 @@ $bss_loop: | |||
| 76 | mtctl %r4,%cr24 /* Initialize kernel root pointer */ | 76 | mtctl %r4,%cr24 /* Initialize kernel root pointer */ |
| 77 | mtctl %r4,%cr25 /* Initialize user root pointer */ | 77 | mtctl %r4,%cr25 /* Initialize user root pointer */ |
| 78 | 78 | ||
| 79 | #ifdef __LP64__ | 79 | #ifdef CONFIG_64BIT |
| 80 | /* Set pmd in pgd */ | 80 | /* Set pmd in pgd */ |
| 81 | load32 PA(pmd0),%r5 | 81 | load32 PA(pmd0),%r5 |
| 82 | shrd %r5,PxD_VALUE_SHIFT,%r3 | 82 | shrd %r5,PxD_VALUE_SHIFT,%r3 |
| @@ -99,7 +99,7 @@ $bss_loop: | |||
| 99 | stw %r3,0(%r4) | 99 | stw %r3,0(%r4) |
| 100 | ldo (ASM_PAGE_SIZE >> PxD_VALUE_SHIFT)(%r3),%r3 | 100 | ldo (ASM_PAGE_SIZE >> PxD_VALUE_SHIFT)(%r3),%r3 |
| 101 | addib,> -1,%r1,1b | 101 | addib,> -1,%r1,1b |
| 102 | #ifdef __LP64__ | 102 | #ifdef CONFIG_64BIT |
| 103 | ldo ASM_PMD_ENTRY_SIZE(%r4),%r4 | 103 | ldo ASM_PMD_ENTRY_SIZE(%r4),%r4 |
| 104 | #else | 104 | #else |
| 105 | ldo ASM_PGD_ENTRY_SIZE(%r4),%r4 | 105 | ldo ASM_PGD_ENTRY_SIZE(%r4),%r4 |
| @@ -170,7 +170,7 @@ common_stext: | |||
| 170 | stw %r0,0x28(%r0) /* MEM_RENDEZ_HI */ | 170 | stw %r0,0x28(%r0) /* MEM_RENDEZ_HI */ |
| 171 | #endif /*CONFIG_SMP*/ | 171 | #endif /*CONFIG_SMP*/ |
| 172 | 172 | ||
| 173 | #ifdef __LP64__ | 173 | #ifdef CONFIG_64BIT |
| 174 | tophys_r1 %sp | 174 | tophys_r1 %sp |
| 175 | 175 | ||
| 176 | /* Save the rfi target address */ | 176 | /* Save the rfi target address */ |
| @@ -224,8 +224,6 @@ stext_pdc_ret: | |||
| 224 | mtctl %r0,%cr12 | 224 | mtctl %r0,%cr12 |
| 225 | mtctl %r0,%cr13 | 225 | mtctl %r0,%cr13 |
| 226 | 226 | ||
| 227 | /* Prepare to RFI! Man all the cannons! */ | ||
| 228 | |||
| 229 | /* Initialize the global data pointer */ | 227 | /* Initialize the global data pointer */ |
| 230 | loadgp | 228 | loadgp |
| 231 | 229 | ||
| @@ -235,7 +233,7 @@ stext_pdc_ret: | |||
| 235 | * following short sequence of instructions can determine this | 233 | * following short sequence of instructions can determine this |
| 236 | * (without being illegal on a PA1.1 machine). | 234 | * (without being illegal on a PA1.1 machine). |
| 237 | */ | 235 | */ |
| 238 | #ifndef __LP64__ | 236 | #ifndef CONFIG_64BIT |
| 239 | ldi 32,%r10 | 237 | ldi 32,%r10 |
| 240 | mtctl %r10,%cr11 | 238 | mtctl %r10,%cr11 |
| 241 | .level 2.0 | 239 | .level 2.0 |
| @@ -248,52 +246,22 @@ stext_pdc_ret: | |||
| 248 | 246 | ||
| 249 | $is_pa20: | 247 | $is_pa20: |
| 250 | .level LEVEL /* restore 1.1 || 2.0w */ | 248 | .level LEVEL /* restore 1.1 || 2.0w */ |
| 251 | #endif /*!LP64*/ | 249 | #endif /*!CONFIG_64BIT*/ |
| 252 | load32 PA(fault_vector_20),%r10 | 250 | load32 PA(fault_vector_20),%r10 |
| 253 | 251 | ||
| 254 | $install_iva: | 252 | $install_iva: |
| 255 | mtctl %r10,%cr14 | 253 | mtctl %r10,%cr14 |
| 256 | 254 | ||
| 257 | #ifdef __LP64__ | 255 | b aligned_rfi /* Prepare to RFI! Man all the cannons! */ |
| 258 | b aligned_rfi | ||
| 259 | nop | 256 | nop |
| 260 | 257 | ||
| 261 | .align 256 | 258 | .align 128 |
| 262 | aligned_rfi: | 259 | aligned_rfi: |
| 263 | ssm 0,0 | 260 | pcxt_ssm_bug |
| 264 | nop /* 1 */ | ||
| 265 | nop /* 2 */ | ||
| 266 | nop /* 3 */ | ||
| 267 | nop /* 4 */ | ||
| 268 | nop /* 5 */ | ||
| 269 | nop /* 6 */ | ||
| 270 | nop /* 7 */ | ||
| 271 | nop /* 8 */ | ||
| 272 | #endif | ||
| 273 | 261 | ||
| 274 | #ifdef __LP64__ /* move to psw.h? */ | 262 | rsm PSW_SM_QUIET,%r0 /* off troublesome PSW bits */ |
| 275 | #define PSW_BITS PSW_Q+PSW_I+PSW_D+PSW_P+PSW_R | 263 | /* Don't need NOPs, have 8 compliant insn before rfi */ |
| 276 | #else | ||
| 277 | #define PSW_BITS PSW_SM_Q | ||
| 278 | #endif | ||
| 279 | 264 | ||
| 280 | $rfi: | ||
| 281 | /* turn off troublesome PSW bits */ | ||
| 282 | rsm PSW_BITS,%r0 | ||
| 283 | |||
| 284 | /* kernel PSW: | ||
| 285 | * - no interruptions except HPMC and TOC (which are handled by PDC) | ||
| 286 | * - Q bit set (IODC / PDC interruptions) | ||
| 287 | * - big-endian | ||
| 288 | * - virtually mapped | ||
| 289 | */ | ||
| 290 | load32 KERNEL_PSW,%r10 | ||
| 291 | mtctl %r10,%ipsw | ||
| 292 | |||
| 293 | /* Set the space pointers for the post-RFI world | ||
| 294 | ** Clear the two-level IIA Space Queue, effectively setting | ||
| 295 | ** Kernel space. | ||
| 296 | */ | ||
| 297 | mtctl %r0,%cr17 /* Clear IIASQ tail */ | 265 | mtctl %r0,%cr17 /* Clear IIASQ tail */ |
| 298 | mtctl %r0,%cr17 /* Clear IIASQ head */ | 266 | mtctl %r0,%cr17 /* Clear IIASQ head */ |
| 299 | 267 | ||
| @@ -301,8 +269,11 @@ $rfi: | |||
| 301 | mtctl %r11,%cr18 /* IIAOQ head */ | 269 | mtctl %r11,%cr18 /* IIAOQ head */ |
| 302 | ldo 4(%r11),%r11 | 270 | ldo 4(%r11),%r11 |
| 303 | mtctl %r11,%cr18 /* IIAOQ tail */ | 271 | mtctl %r11,%cr18 /* IIAOQ tail */ |
| 272 | |||
| 273 | load32 KERNEL_PSW,%r10 | ||
| 274 | mtctl %r10,%ipsw | ||
| 304 | 275 | ||
| 305 | /* Jump to hyperspace */ | 276 | /* Jump through hyperspace to Virt Mode */ |
| 306 | rfi | 277 | rfi |
| 307 | nop | 278 | nop |
| 308 | 279 | ||
| @@ -313,7 +284,7 @@ $rfi: | |||
| 313 | .import smp_init_current_idle_task,data | 284 | .import smp_init_current_idle_task,data |
| 314 | .import smp_callin,code | 285 | .import smp_callin,code |
| 315 | 286 | ||
| 316 | #ifndef __LP64__ | 287 | #ifndef CONFIG_64BIT |
| 317 | smp_callin_rtn: | 288 | smp_callin_rtn: |
| 318 | .proc | 289 | .proc |
| 319 | .callinfo | 290 | .callinfo |
| @@ -321,7 +292,7 @@ smp_callin_rtn: | |||
| 321 | nop | 292 | nop |
| 322 | nop | 293 | nop |
| 323 | .procend | 294 | .procend |
| 324 | #endif /*!LP64*/ | 295 | #endif /*!CONFIG_64BIT*/ |
| 325 | 296 | ||
| 326 | /*************************************************************************** | 297 | /*************************************************************************** |
| 327 | * smp_slave_stext is executed by all non-monarch Processors when the Monarch | 298 | * smp_slave_stext is executed by all non-monarch Processors when the Monarch |
| @@ -356,7 +327,7 @@ smp_slave_stext: | |||
| 356 | mtctl %r4,%cr24 /* Initialize kernel root pointer */ | 327 | mtctl %r4,%cr24 /* Initialize kernel root pointer */ |
| 357 | mtctl %r4,%cr25 /* Initialize user root pointer */ | 328 | mtctl %r4,%cr25 /* Initialize user root pointer */ |
| 358 | 329 | ||
| 359 | #ifdef __LP64__ | 330 | #ifdef CONFIG_64BIT |
| 360 | /* Setup PDCE_PROC entry */ | 331 | /* Setup PDCE_PROC entry */ |
| 361 | copy %arg0,%r3 | 332 | copy %arg0,%r3 |
| 362 | #else | 333 | #else |
| @@ -373,7 +344,7 @@ smp_slave_stext: | |||
| 373 | 344 | ||
| 374 | .procend | 345 | .procend |
| 375 | #endif /* CONFIG_SMP */ | 346 | #endif /* CONFIG_SMP */ |
| 376 | #ifndef __LP64__ | 347 | #ifndef CONFIG_64BIT |
| 377 | .data | 348 | .data |
| 378 | 349 | ||
| 379 | .align 4 | 350 | .align 4 |
| @@ -383,4 +354,4 @@ smp_slave_stext: | |||
| 383 | .size $global$,4 | 354 | .size $global$,4 |
| 384 | $global$: | 355 | $global$: |
| 385 | .word 0 | 356 | .word 0 |
| 386 | #endif /*!LP64*/ | 357 | #endif /*!CONFIG_64BIT*/ |
diff --git a/arch/parisc/kernel/ioctl32.c b/arch/parisc/kernel/ioctl32.c index 1d3824b670d1..8cad8f004f00 100644 --- a/arch/parisc/kernel/ioctl32.c +++ b/arch/parisc/kernel/ioctl32.c | |||
| @@ -104,12 +104,9 @@ static int drm32_version(unsigned int fd, unsigned int cmd, unsigned long arg) | |||
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | out: | 106 | out: |
| 107 | if (kversion.name) | 107 | kfree(kversion.name); |
| 108 | kfree(kversion.name); | 108 | kfree(kversion.date); |
| 109 | if (kversion.date) | 109 | kfree(kversion.desc); |
| 110 | kfree(kversion.date); | ||
| 111 | if (kversion.desc) | ||
| 112 | kfree(kversion.desc); | ||
| 113 | return ret; | 110 | return ret; |
| 114 | } | 111 | } |
| 115 | 112 | ||
| @@ -166,9 +163,7 @@ static int drm32_getsetunique(unsigned int fd, unsigned int cmd, unsigned long a | |||
| 166 | ret = -EFAULT; | 163 | ret = -EFAULT; |
| 167 | } | 164 | } |
| 168 | 165 | ||
| 169 | if (karg.unique != NULL) | 166 | kfree(karg.unique); |
| 170 | kfree(karg.unique); | ||
| 171 | |||
| 172 | return ret; | 167 | return ret; |
| 173 | } | 168 | } |
| 174 | 169 | ||
| @@ -265,7 +260,6 @@ static int drm32_info_bufs(unsigned int fd, unsigned int cmd, unsigned long arg) | |||
| 265 | } | 260 | } |
| 266 | 261 | ||
| 267 | kfree(karg.list); | 262 | kfree(karg.list); |
| 268 | |||
| 269 | return ret; | 263 | return ret; |
| 270 | } | 264 | } |
| 271 | 265 | ||
| @@ -305,7 +299,6 @@ static int drm32_free_bufs(unsigned int fd, unsigned int cmd, unsigned long arg) | |||
| 305 | 299 | ||
| 306 | out: | 300 | out: |
| 307 | kfree(karg.list); | 301 | kfree(karg.list); |
| 308 | |||
| 309 | return ret; | 302 | return ret; |
| 310 | } | 303 | } |
| 311 | 304 | ||
| @@ -494,15 +487,10 @@ static int drm32_dma(unsigned int fd, unsigned int cmd, unsigned long arg) | |||
| 494 | } | 487 | } |
| 495 | 488 | ||
| 496 | out: | 489 | out: |
| 497 | if (karg.send_indices) | 490 | kfree(karg.send_indices); |
| 498 | kfree(karg.send_indices); | 491 | kfree(karg.send_sizes); |
| 499 | if (karg.send_sizes) | 492 | kfree(karg.request_indices); |
| 500 | kfree(karg.send_sizes); | 493 | kfree(karg.request_sizes); |
| 501 | if (karg.request_indices) | ||
| 502 | kfree(karg.request_indices); | ||
| 503 | if (karg.request_sizes) | ||
| 504 | kfree(karg.request_sizes); | ||
| 505 | |||
| 506 | return ret; | 494 | return ret; |
| 507 | } | 495 | } |
| 508 | 496 | ||
| @@ -555,9 +543,7 @@ static int drm32_res_ctx(unsigned int fd, unsigned int cmd, unsigned long arg) | |||
| 555 | ret = -EFAULT; | 543 | ret = -EFAULT; |
| 556 | } | 544 | } |
| 557 | 545 | ||
| 558 | if (karg.contexts) | 546 | kfree(karg.contexts); |
| 559 | kfree(karg.contexts); | ||
| 560 | |||
| 561 | return ret; | 547 | return ret; |
| 562 | } | 548 | } |
| 563 | 549 | ||
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S index 77e03bc0f935..9534ee17b9be 100644 --- a/arch/parisc/kernel/pacache.S +++ b/arch/parisc/kernel/pacache.S | |||
| @@ -26,7 +26,7 @@ | |||
| 26 | * can be used. | 26 | * can be used. |
| 27 | */ | 27 | */ |
| 28 | 28 | ||
| 29 | #ifdef __LP64__ | 29 | #ifdef CONFIG_64BIT |
| 30 | #define ADDIB addib,* | 30 | #define ADDIB addib,* |
| 31 | #define CMPB cmpb,* | 31 | #define CMPB cmpb,* |
| 32 | #define ANDCM andcm,* | 32 | #define ANDCM andcm,* |
| @@ -40,8 +40,10 @@ | |||
| 40 | .level 2.0 | 40 | .level 2.0 |
| 41 | #endif | 41 | #endif |
| 42 | 42 | ||
| 43 | #include <asm/assembly.h> | 43 | #include <linux/config.h> |
| 44 | |||
| 44 | #include <asm/psw.h> | 45 | #include <asm/psw.h> |
| 46 | #include <asm/assembly.h> | ||
| 45 | #include <asm/pgtable.h> | 47 | #include <asm/pgtable.h> |
| 46 | #include <asm/cache.h> | 48 | #include <asm/cache.h> |
| 47 | 49 | ||
| @@ -62,32 +64,23 @@ flush_tlb_all_local: | |||
| 62 | * to happen in real mode with all interruptions disabled. | 64 | * to happen in real mode with all interruptions disabled. |
| 63 | */ | 65 | */ |
| 64 | 66 | ||
| 65 | /* | 67 | /* pcxt_ssm_bug - relied upon translation! PA 2.0 Arch. F-4 and F-5 */ |
| 66 | * Once again, we do the rfi dance ... some day we need examine | 68 | rsm PSW_SM_I, %r19 /* save I-bit state */ |
| 67 | * all of our uses of this type of code and see what can be | 69 | load32 PA(1f), %r1 |
| 68 | * consolidated. | ||
| 69 | */ | ||
| 70 | |||
| 71 | rsm PSW_SM_I, %r19 /* relied upon translation! PA 2.0 Arch. F-5 */ | ||
| 72 | nop | 70 | nop |
| 73 | nop | 71 | nop |
| 74 | nop | 72 | nop |
| 75 | nop | 73 | nop |
| 76 | nop | 74 | nop |
| 77 | nop | 75 | |
| 78 | nop | 76 | rsm PSW_SM_Q, %r0 /* prep to load iia queue */ |
| 79 | |||
| 80 | rsm PSW_SM_Q, %r0 /* Turn off Q bit to load iia queue */ | ||
| 81 | ldil L%REAL_MODE_PSW, %r1 | ||
| 82 | ldo R%REAL_MODE_PSW(%r1), %r1 | ||
| 83 | mtctl %r1, %cr22 | ||
| 84 | mtctl %r0, %cr17 /* Clear IIASQ tail */ | 77 | mtctl %r0, %cr17 /* Clear IIASQ tail */ |
| 85 | mtctl %r0, %cr17 /* Clear IIASQ head */ | 78 | mtctl %r0, %cr17 /* Clear IIASQ head */ |
| 86 | ldil L%PA(1f), %r1 | ||
| 87 | ldo R%PA(1f)(%r1), %r1 | ||
| 88 | mtctl %r1, %cr18 /* IIAOQ head */ | 79 | mtctl %r1, %cr18 /* IIAOQ head */ |
| 89 | ldo 4(%r1), %r1 | 80 | ldo 4(%r1), %r1 |
| 90 | mtctl %r1, %cr18 /* IIAOQ tail */ | 81 | mtctl %r1, %cr18 /* IIAOQ tail */ |
| 82 | load32 REAL_MODE_PSW, %r1 | ||
| 83 | mtctl %r1, %ipsw | ||
| 91 | rfi | 84 | rfi |
| 92 | nop | 85 | nop |
| 93 | 86 | ||
| @@ -178,29 +171,36 @@ fdtonemiddle: /* Loop if LOOP = 1 */ | |||
| 178 | ADDIB> -1, %r22, fdtoneloop /* Outer loop count decr */ | 171 | ADDIB> -1, %r22, fdtoneloop /* Outer loop count decr */ |
| 179 | add %r21, %r20, %r20 /* increment space */ | 172 | add %r21, %r20, %r20 /* increment space */ |
| 180 | 173 | ||
| 181 | fdtdone: | ||
| 182 | 174 | ||
| 183 | /* Switch back to virtual mode */ | 175 | fdtdone: |
| 176 | /* | ||
| 177 | * Switch back to virtual mode | ||
| 178 | */ | ||
| 179 | /* pcxt_ssm_bug */ | ||
| 180 | rsm PSW_SM_I, %r0 | ||
| 181 | load32 2f, %r1 | ||
| 182 | nop | ||
| 183 | nop | ||
| 184 | nop | ||
| 185 | nop | ||
| 186 | nop | ||
| 184 | 187 | ||
| 185 | rsm PSW_SM_Q, %r0 /* clear Q bit to load iia queue */ | 188 | rsm PSW_SM_Q, %r0 /* prep to load iia queue */ |
| 186 | ldil L%KERNEL_PSW, %r1 | ||
| 187 | ldo R%KERNEL_PSW(%r1), %r1 | ||
| 188 | or %r1, %r19, %r1 /* Set I bit if set on entry */ | ||
| 189 | mtctl %r1, %cr22 | ||
| 190 | mtctl %r0, %cr17 /* Clear IIASQ tail */ | 189 | mtctl %r0, %cr17 /* Clear IIASQ tail */ |
| 191 | mtctl %r0, %cr17 /* Clear IIASQ head */ | 190 | mtctl %r0, %cr17 /* Clear IIASQ head */ |
| 192 | ldil L%(2f), %r1 | ||
| 193 | ldo R%(2f)(%r1), %r1 | ||
| 194 | mtctl %r1, %cr18 /* IIAOQ head */ | 191 | mtctl %r1, %cr18 /* IIAOQ head */ |
| 195 | ldo 4(%r1), %r1 | 192 | ldo 4(%r1), %r1 |
| 196 | mtctl %r1, %cr18 /* IIAOQ tail */ | 193 | mtctl %r1, %cr18 /* IIAOQ tail */ |
| 194 | load32 KERNEL_PSW, %r1 | ||
| 195 | or %r1, %r19, %r1 /* I-bit to state on entry */ | ||
| 196 | mtctl %r1, %ipsw /* restore I-bit (entire PSW) */ | ||
| 197 | rfi | 197 | rfi |
| 198 | nop | 198 | nop |
| 199 | 199 | ||
| 200 | 2: bv %r0(%r2) | 200 | 2: bv %r0(%r2) |
| 201 | nop | 201 | nop |
| 202 | .exit | ||
| 203 | 202 | ||
| 203 | .exit | ||
| 204 | .procend | 204 | .procend |
| 205 | 205 | ||
| 206 | .export flush_instruction_cache_local,code | 206 | .export flush_instruction_cache_local,code |
| @@ -227,7 +227,7 @@ flush_instruction_cache_local: | |||
| 227 | 227 | ||
| 228 | fimanyloop: /* Loop if LOOP >= 2 */ | 228 | fimanyloop: /* Loop if LOOP >= 2 */ |
| 229 | ADDIB> -1, %r31, fimanyloop /* Adjusted inner loop decr */ | 229 | ADDIB> -1, %r31, fimanyloop /* Adjusted inner loop decr */ |
| 230 | fice 0(%sr1, %arg0) | 230 | fice %r0(%sr1, %arg0) |
| 231 | fice,m %arg1(%sr1, %arg0) /* Last fice and addr adjust */ | 231 | fice,m %arg1(%sr1, %arg0) /* Last fice and addr adjust */ |
| 232 | movb,tr %arg3, %r31, fimanyloop /* Re-init inner loop count */ | 232 | movb,tr %arg3, %r31, fimanyloop /* Re-init inner loop count */ |
| 233 | ADDIB<=,n -1, %arg2, fisync /* Outer loop decr */ | 233 | ADDIB<=,n -1, %arg2, fisync /* Outer loop decr */ |
| @@ -238,7 +238,7 @@ fioneloop: /* Loop if LOOP = 1 */ | |||
| 238 | 238 | ||
| 239 | fisync: | 239 | fisync: |
| 240 | sync | 240 | sync |
| 241 | mtsm %r22 | 241 | mtsm %r22 /* restore I-bit */ |
| 242 | bv %r0(%r2) | 242 | bv %r0(%r2) |
| 243 | nop | 243 | nop |
| 244 | .exit | 244 | .exit |
| @@ -269,7 +269,7 @@ flush_data_cache_local: | |||
| 269 | 269 | ||
| 270 | fdmanyloop: /* Loop if LOOP >= 2 */ | 270 | fdmanyloop: /* Loop if LOOP >= 2 */ |
| 271 | ADDIB> -1, %r31, fdmanyloop /* Adjusted inner loop decr */ | 271 | ADDIB> -1, %r31, fdmanyloop /* Adjusted inner loop decr */ |
| 272 | fdce 0(%sr1, %arg0) | 272 | fdce %r0(%sr1, %arg0) |
| 273 | fdce,m %arg1(%sr1, %arg0) /* Last fdce and addr adjust */ | 273 | fdce,m %arg1(%sr1, %arg0) /* Last fdce and addr adjust */ |
| 274 | movb,tr %arg3, %r31, fdmanyloop /* Re-init inner loop count */ | 274 | movb,tr %arg3, %r31, fdmanyloop /* Re-init inner loop count */ |
| 275 | ADDIB<=,n -1, %arg2, fdsync /* Outer loop decr */ | 275 | ADDIB<=,n -1, %arg2, fdsync /* Outer loop decr */ |
| @@ -281,7 +281,7 @@ fdoneloop: /* Loop if LOOP = 1 */ | |||
| 281 | fdsync: | 281 | fdsync: |
| 282 | syncdma | 282 | syncdma |
| 283 | sync | 283 | sync |
| 284 | mtsm %r22 | 284 | mtsm %r22 /* restore I-bit */ |
| 285 | bv %r0(%r2) | 285 | bv %r0(%r2) |
| 286 | nop | 286 | nop |
| 287 | .exit | 287 | .exit |
| @@ -296,7 +296,7 @@ copy_user_page_asm: | |||
| 296 | .callinfo NO_CALLS | 296 | .callinfo NO_CALLS |
| 297 | .entry | 297 | .entry |
| 298 | 298 | ||
| 299 | #ifdef __LP64__ | 299 | #ifdef CONFIG_64BIT |
| 300 | /* PA8x00 CPUs can consume 2 loads or 1 store per cycle. | 300 | /* PA8x00 CPUs can consume 2 loads or 1 store per cycle. |
| 301 | * Unroll the loop by hand and arrange insn appropriately. | 301 | * Unroll the loop by hand and arrange insn appropriately. |
| 302 | * GCC probably can do this just as well. | 302 | * GCC probably can do this just as well. |
| @@ -351,7 +351,11 @@ copy_user_page_asm: | |||
| 351 | std %r22, 120(%r26) | 351 | std %r22, 120(%r26) |
| 352 | ldo 128(%r26), %r26 | 352 | ldo 128(%r26), %r26 |
| 353 | 353 | ||
| 354 | ADDIB> -1, %r1, 1b /* bundle 10 */ | 354 | /* conditional branches nullify on forward taken branch, and on |
| 355 | * non-taken backward branch. Note that .+4 is a backwards branch. | ||
| 356 | * The ldd should only get executed if the branch is taken. | ||
| 357 | */ | ||
| 358 | ADDIB>,n -1, %r1, 1b /* bundle 10 */ | ||
| 355 | ldd 0(%r25), %r19 /* start next loads */ | 359 | ldd 0(%r25), %r19 /* start next loads */ |
| 356 | 360 | ||
| 357 | #else | 361 | #else |
| @@ -363,10 +367,10 @@ copy_user_page_asm: | |||
| 363 | * the full 64 bit register values on interrupt, we can't | 367 | * the full 64 bit register values on interrupt, we can't |
| 364 | * use ldd/std on a 32 bit kernel. | 368 | * use ldd/std on a 32 bit kernel. |
| 365 | */ | 369 | */ |
| 370 | ldw 0(%r25), %r19 | ||
| 366 | ldi 64, %r1 /* PAGE_SIZE/64 == 64 */ | 371 | ldi 64, %r1 /* PAGE_SIZE/64 == 64 */ |
| 367 | 372 | ||
| 368 | 1: | 373 | 1: |
| 369 | ldw 0(%r25), %r19 | ||
| 370 | ldw 4(%r25), %r20 | 374 | ldw 4(%r25), %r20 |
| 371 | ldw 8(%r25), %r21 | 375 | ldw 8(%r25), %r21 |
| 372 | ldw 12(%r25), %r22 | 376 | ldw 12(%r25), %r22 |
| @@ -396,11 +400,12 @@ copy_user_page_asm: | |||
| 396 | ldw 60(%r25), %r22 | 400 | ldw 60(%r25), %r22 |
| 397 | stw %r19, 48(%r26) | 401 | stw %r19, 48(%r26) |
| 398 | stw %r20, 52(%r26) | 402 | stw %r20, 52(%r26) |
| 403 | ldo 64(%r25), %r25 | ||
| 399 | stw %r21, 56(%r26) | 404 | stw %r21, 56(%r26) |
| 400 | stw %r22, 60(%r26) | 405 | stw %r22, 60(%r26) |
| 401 | ldo 64(%r26), %r26 | 406 | ldo 64(%r26), %r26 |
| 402 | ADDIB> -1, %r1, 1b | 407 | ADDIB>,n -1, %r1, 1b |
| 403 | ldo 64(%r25), %r25 | 408 | ldw 0(%r25), %r19 |
| 404 | #endif | 409 | #endif |
| 405 | bv %r0(%r2) | 410 | bv %r0(%r2) |
| 406 | nop | 411 | nop |
| @@ -456,7 +461,7 @@ copy_user_page_asm: | |||
| 456 | sub %r25, %r1, %r23 /* move physical addr into non shadowed reg */ | 461 | sub %r25, %r1, %r23 /* move physical addr into non shadowed reg */ |
| 457 | 462 | ||
| 458 | ldil L%(TMPALIAS_MAP_START), %r28 | 463 | ldil L%(TMPALIAS_MAP_START), %r28 |
| 459 | #ifdef __LP64__ | 464 | #ifdef CONFIG_64BIT |
| 460 | extrd,u %r26,56,32, %r26 /* convert phys addr to tlb insert format */ | 465 | extrd,u %r26,56,32, %r26 /* convert phys addr to tlb insert format */ |
| 461 | extrd,u %r23,56,32, %r23 /* convert phys addr to tlb insert format */ | 466 | extrd,u %r23,56,32, %r23 /* convert phys addr to tlb insert format */ |
| 462 | depd %r24,63,22, %r28 /* Form aliased virtual address 'to' */ | 467 | depd %r24,63,22, %r28 /* Form aliased virtual address 'to' */ |
| @@ -543,7 +548,7 @@ __clear_user_page_asm: | |||
| 543 | tophys_r1 %r26 | 548 | tophys_r1 %r26 |
| 544 | 549 | ||
| 545 | ldil L%(TMPALIAS_MAP_START), %r28 | 550 | ldil L%(TMPALIAS_MAP_START), %r28 |
| 546 | #ifdef __LP64__ | 551 | #ifdef CONFIG_64BIT |
| 547 | #if (TMPALIAS_MAP_START >= 0x80000000) | 552 | #if (TMPALIAS_MAP_START >= 0x80000000) |
| 548 | depdi 0, 31,32, %r28 /* clear any sign extension */ | 553 | depdi 0, 31,32, %r28 /* clear any sign extension */ |
| 549 | #endif | 554 | #endif |
| @@ -560,7 +565,7 @@ __clear_user_page_asm: | |||
| 560 | 565 | ||
| 561 | pdtlb 0(%r28) | 566 | pdtlb 0(%r28) |
| 562 | 567 | ||
| 563 | #ifdef __LP64__ | 568 | #ifdef CONFIG_64BIT |
| 564 | ldi 32, %r1 /* PAGE_SIZE/128 == 32 */ | 569 | ldi 32, %r1 /* PAGE_SIZE/128 == 32 */ |
| 565 | 570 | ||
| 566 | /* PREFETCH (Write) has not (yet) been proven to help here */ | 571 | /* PREFETCH (Write) has not (yet) been proven to help here */ |
| @@ -585,7 +590,7 @@ __clear_user_page_asm: | |||
| 585 | ADDIB> -1, %r1, 1b | 590 | ADDIB> -1, %r1, 1b |
| 586 | ldo 128(%r28), %r28 | 591 | ldo 128(%r28), %r28 |
| 587 | 592 | ||
| 588 | #else /* ! __LP64 */ | 593 | #else /* ! CONFIG_64BIT */ |
| 589 | 594 | ||
| 590 | ldi 64, %r1 /* PAGE_SIZE/64 == 64 */ | 595 | ldi 64, %r1 /* PAGE_SIZE/64 == 64 */ |
| 591 | 596 | ||
| @@ -608,7 +613,7 @@ __clear_user_page_asm: | |||
| 608 | stw %r0, 60(%r28) | 613 | stw %r0, 60(%r28) |
| 609 | ADDIB> -1, %r1, 1b | 614 | ADDIB> -1, %r1, 1b |
| 610 | ldo 64(%r28), %r28 | 615 | ldo 64(%r28), %r28 |
| 611 | #endif /* __LP64 */ | 616 | #endif /* CONFIG_64BIT */ |
| 612 | 617 | ||
| 613 | bv %r0(%r2) | 618 | bv %r0(%r2) |
| 614 | nop | 619 | nop |
| @@ -626,7 +631,7 @@ flush_kernel_dcache_page: | |||
| 626 | ldil L%dcache_stride, %r1 | 631 | ldil L%dcache_stride, %r1 |
| 627 | ldw R%dcache_stride(%r1), %r23 | 632 | ldw R%dcache_stride(%r1), %r23 |
| 628 | 633 | ||
| 629 | #ifdef __LP64__ | 634 | #ifdef CONFIG_64BIT |
| 630 | depdi,z 1, 63-PAGE_SHIFT,1, %r25 | 635 | depdi,z 1, 63-PAGE_SHIFT,1, %r25 |
| 631 | #else | 636 | #else |
| 632 | depwi,z 1, 31-PAGE_SHIFT,1, %r25 | 637 | depwi,z 1, 31-PAGE_SHIFT,1, %r25 |
| @@ -670,7 +675,7 @@ flush_user_dcache_page: | |||
| 670 | ldil L%dcache_stride, %r1 | 675 | ldil L%dcache_stride, %r1 |
| 671 | ldw R%dcache_stride(%r1), %r23 | 676 | ldw R%dcache_stride(%r1), %r23 |
| 672 | 677 | ||
| 673 | #ifdef __LP64__ | 678 | #ifdef CONFIG_64BIT |
| 674 | depdi,z 1,63-PAGE_SHIFT,1, %r25 | 679 | depdi,z 1,63-PAGE_SHIFT,1, %r25 |
| 675 | #else | 680 | #else |
| 676 | depwi,z 1,31-PAGE_SHIFT,1, %r25 | 681 | depwi,z 1,31-PAGE_SHIFT,1, %r25 |
| @@ -714,7 +719,7 @@ flush_user_icache_page: | |||
| 714 | ldil L%dcache_stride, %r1 | 719 | ldil L%dcache_stride, %r1 |
| 715 | ldw R%dcache_stride(%r1), %r23 | 720 | ldw R%dcache_stride(%r1), %r23 |
| 716 | 721 | ||
| 717 | #ifdef __LP64__ | 722 | #ifdef CONFIG_64BIT |
| 718 | depdi,z 1, 63-PAGE_SHIFT,1, %r25 | 723 | depdi,z 1, 63-PAGE_SHIFT,1, %r25 |
| 719 | #else | 724 | #else |
| 720 | depwi,z 1, 31-PAGE_SHIFT,1, %r25 | 725 | depwi,z 1, 31-PAGE_SHIFT,1, %r25 |
| @@ -759,7 +764,7 @@ purge_kernel_dcache_page: | |||
| 759 | ldil L%dcache_stride, %r1 | 764 | ldil L%dcache_stride, %r1 |
| 760 | ldw R%dcache_stride(%r1), %r23 | 765 | ldw R%dcache_stride(%r1), %r23 |
| 761 | 766 | ||
| 762 | #ifdef __LP64__ | 767 | #ifdef CONFIG_64BIT |
| 763 | depdi,z 1, 63-PAGE_SHIFT,1, %r25 | 768 | depdi,z 1, 63-PAGE_SHIFT,1, %r25 |
| 764 | #else | 769 | #else |
| 765 | depwi,z 1, 31-PAGE_SHIFT,1, %r25 | 770 | depwi,z 1, 31-PAGE_SHIFT,1, %r25 |
| @@ -807,7 +812,7 @@ flush_alias_page: | |||
| 807 | tophys_r1 %r26 | 812 | tophys_r1 %r26 |
| 808 | 813 | ||
| 809 | ldil L%(TMPALIAS_MAP_START), %r28 | 814 | ldil L%(TMPALIAS_MAP_START), %r28 |
| 810 | #ifdef __LP64__ | 815 | #ifdef CONFIG_64BIT |
| 811 | extrd,u %r26, 56,32, %r26 /* convert phys addr to tlb insert format */ | 816 | extrd,u %r26, 56,32, %r26 /* convert phys addr to tlb insert format */ |
| 812 | depd %r25, 63,22, %r28 /* Form aliased virtual address 'to' */ | 817 | depd %r25, 63,22, %r28 /* Form aliased virtual address 'to' */ |
| 813 | depdi 0, 63,12, %r28 /* Clear any offset bits */ | 818 | depdi 0, 63,12, %r28 /* Clear any offset bits */ |
| @@ -824,7 +829,7 @@ flush_alias_page: | |||
| 824 | ldil L%dcache_stride, %r1 | 829 | ldil L%dcache_stride, %r1 |
| 825 | ldw R%dcache_stride(%r1), %r23 | 830 | ldw R%dcache_stride(%r1), %r23 |
| 826 | 831 | ||
| 827 | #ifdef __LP64__ | 832 | #ifdef CONFIG_64BIT |
| 828 | depdi,z 1, 63-PAGE_SHIFT,1, %r29 | 833 | depdi,z 1, 63-PAGE_SHIFT,1, %r29 |
| 829 | #else | 834 | #else |
| 830 | depwi,z 1, 31-PAGE_SHIFT,1, %r29 | 835 | depwi,z 1, 31-PAGE_SHIFT,1, %r29 |
| @@ -935,7 +940,7 @@ flush_kernel_icache_page: | |||
| 935 | ldil L%icache_stride, %r1 | 940 | ldil L%icache_stride, %r1 |
| 936 | ldw R%icache_stride(%r1), %r23 | 941 | ldw R%icache_stride(%r1), %r23 |
| 937 | 942 | ||
| 938 | #ifdef __LP64__ | 943 | #ifdef CONFIG_64BIT |
| 939 | depdi,z 1, 63-PAGE_SHIFT,1, %r25 | 944 | depdi,z 1, 63-PAGE_SHIFT,1, %r25 |
| 940 | #else | 945 | #else |
| 941 | depwi,z 1, 31-PAGE_SHIFT,1, %r25 | 946 | depwi,z 1, 31-PAGE_SHIFT,1, %r25 |
| @@ -944,23 +949,23 @@ flush_kernel_icache_page: | |||
| 944 | sub %r25, %r23, %r25 | 949 | sub %r25, %r23, %r25 |
| 945 | 950 | ||
| 946 | 951 | ||
| 947 | 1: fic,m %r23(%r26) | 952 | 1: fic,m %r23(%sr4, %r26) |
| 948 | fic,m %r23(%r26) | 953 | fic,m %r23(%sr4, %r26) |
| 949 | fic,m %r23(%r26) | 954 | fic,m %r23(%sr4, %r26) |
| 950 | fic,m %r23(%r26) | 955 | fic,m %r23(%sr4, %r26) |
| 951 | fic,m %r23(%r26) | 956 | fic,m %r23(%sr4, %r26) |
| 952 | fic,m %r23(%r26) | 957 | fic,m %r23(%sr4, %r26) |
| 953 | fic,m %r23(%r26) | 958 | fic,m %r23(%sr4, %r26) |
| 954 | fic,m %r23(%r26) | 959 | fic,m %r23(%sr4, %r26) |
| 955 | fic,m %r23(%r26) | 960 | fic,m %r23(%sr4, %r26) |
| 956 | fic,m %r23(%r26) | 961 | fic,m %r23(%sr4, %r26) |
| 957 | fic,m %r23(%r26) | 962 | fic,m %r23(%sr4, %r26) |
| 958 | fic,m %r23(%r26) | 963 | fic,m %r23(%sr4, %r26) |
| 959 | fic,m %r23(%r26) | 964 | fic,m %r23(%sr4, %r26) |
| 960 | fic,m %r23(%r26) | 965 | fic,m %r23(%sr4, %r26) |
| 961 | fic,m %r23(%r26) | 966 | fic,m %r23(%sr4, %r26) |
| 962 | CMPB<< %r26, %r25, 1b | 967 | CMPB<< %r26, %r25, 1b |
| 963 | fic,m %r23(%r26) | 968 | fic,m %r23(%sr4, %r26) |
| 964 | 969 | ||
| 965 | sync | 970 | sync |
| 966 | bv %r0(%r2) | 971 | bv %r0(%r2) |
| @@ -982,17 +987,18 @@ flush_kernel_icache_range_asm: | |||
| 982 | ANDCM %r26, %r21, %r26 | 987 | ANDCM %r26, %r21, %r26 |
| 983 | 988 | ||
| 984 | 1: CMPB<<,n %r26, %r25, 1b | 989 | 1: CMPB<<,n %r26, %r25, 1b |
| 985 | fic,m %r23(%r26) | 990 | fic,m %r23(%sr4, %r26) |
| 986 | 991 | ||
| 987 | sync | 992 | sync |
| 988 | bv %r0(%r2) | 993 | bv %r0(%r2) |
| 989 | nop | 994 | nop |
| 990 | .exit | 995 | .exit |
| 991 | |||
| 992 | .procend | 996 | .procend |
| 993 | 997 | ||
| 994 | .align 128 | 998 | /* align should cover use of rfi in disable_sr_hashing_asm and |
| 995 | 999 | * srdis_done. | |
| 1000 | */ | ||
| 1001 | .align 256 | ||
| 996 | .export disable_sr_hashing_asm,code | 1002 | .export disable_sr_hashing_asm,code |
| 997 | 1003 | ||
| 998 | disable_sr_hashing_asm: | 1004 | disable_sr_hashing_asm: |
| @@ -1000,28 +1006,26 @@ disable_sr_hashing_asm: | |||
| 1000 | .callinfo NO_CALLS | 1006 | .callinfo NO_CALLS |
| 1001 | .entry | 1007 | .entry |
| 1002 | 1008 | ||
| 1003 | /* Switch to real mode */ | 1009 | /* |
| 1004 | 1010 | * Switch to real mode | |
| 1005 | ssm 0, %r0 /* relied upon translation! */ | 1011 | */ |
| 1006 | nop | 1012 | /* pcxt_ssm_bug */ |
| 1007 | nop | 1013 | rsm PSW_SM_I, %r0 |
| 1014 | load32 PA(1f), %r1 | ||
| 1008 | nop | 1015 | nop |
| 1009 | nop | 1016 | nop |
| 1010 | nop | 1017 | nop |
| 1011 | nop | 1018 | nop |
| 1012 | nop | 1019 | nop |
| 1013 | 1020 | ||
| 1014 | rsm (PSW_SM_Q|PSW_SM_I), %r0 /* disable Q&I to load the iia queue */ | 1021 | rsm PSW_SM_Q, %r0 /* prep to load iia queue */ |
| 1015 | ldil L%REAL_MODE_PSW, %r1 | ||
| 1016 | ldo R%REAL_MODE_PSW(%r1), %r1 | ||
| 1017 | mtctl %r1, %cr22 | ||
| 1018 | mtctl %r0, %cr17 /* Clear IIASQ tail */ | 1022 | mtctl %r0, %cr17 /* Clear IIASQ tail */ |
| 1019 | mtctl %r0, %cr17 /* Clear IIASQ head */ | 1023 | mtctl %r0, %cr17 /* Clear IIASQ head */ |
| 1020 | ldil L%PA(1f), %r1 | ||
| 1021 | ldo R%PA(1f)(%r1), %r1 | ||
| 1022 | mtctl %r1, %cr18 /* IIAOQ head */ | 1024 | mtctl %r1, %cr18 /* IIAOQ head */ |
| 1023 | ldo 4(%r1), %r1 | 1025 | ldo 4(%r1), %r1 |
| 1024 | mtctl %r1, %cr18 /* IIAOQ tail */ | 1026 | mtctl %r1, %cr18 /* IIAOQ tail */ |
| 1027 | load32 REAL_MODE_PSW, %r1 | ||
| 1028 | mtctl %r1, %ipsw | ||
| 1025 | rfi | 1029 | rfi |
| 1026 | nop | 1030 | nop |
| 1027 | 1031 | ||
| @@ -1053,27 +1057,31 @@ srdis_pcxl: | |||
| 1053 | 1057 | ||
| 1054 | srdis_pa20: | 1058 | srdis_pa20: |
| 1055 | 1059 | ||
| 1056 | /* Disable Space Register Hashing for PCXU,PCXU+,PCXW,PCXW+ */ | 1060 | /* Disable Space Register Hashing for PCXU,PCXU+,PCXW,PCXW+,PCXW2 */ |
| 1057 | 1061 | ||
| 1058 | .word 0x144008bc /* mfdiag %dr2, %r28 */ | 1062 | .word 0x144008bc /* mfdiag %dr2, %r28 */ |
| 1059 | depdi 0, 54,1, %r28 /* clear DIAG_SPHASH_ENAB (bit 54) */ | 1063 | depdi 0, 54,1, %r28 /* clear DIAG_SPHASH_ENAB (bit 54) */ |
| 1060 | .word 0x145c1840 /* mtdiag %r28, %dr2 */ | 1064 | .word 0x145c1840 /* mtdiag %r28, %dr2 */ |
| 1061 | 1065 | ||
| 1062 | srdis_done: | ||
| 1063 | 1066 | ||
| 1067 | srdis_done: | ||
| 1064 | /* Switch back to virtual mode */ | 1068 | /* Switch back to virtual mode */ |
| 1069 | rsm PSW_SM_I, %r0 /* prep to load iia queue */ | ||
| 1070 | load32 2f, %r1 | ||
| 1071 | nop | ||
| 1072 | nop | ||
| 1073 | nop | ||
| 1074 | nop | ||
| 1075 | nop | ||
| 1065 | 1076 | ||
| 1066 | rsm PSW_SM_Q, %r0 /* clear Q bit to load iia queue */ | 1077 | rsm PSW_SM_Q, %r0 /* prep to load iia queue */ |
| 1067 | ldil L%KERNEL_PSW, %r1 | ||
| 1068 | ldo R%KERNEL_PSW(%r1), %r1 | ||
| 1069 | mtctl %r1, %cr22 | ||
| 1070 | mtctl %r0, %cr17 /* Clear IIASQ tail */ | 1078 | mtctl %r0, %cr17 /* Clear IIASQ tail */ |
| 1071 | mtctl %r0, %cr17 /* Clear IIASQ head */ | 1079 | mtctl %r0, %cr17 /* Clear IIASQ head */ |
| 1072 | ldil L%(2f), %r1 | ||
| 1073 | ldo R%(2f)(%r1), %r1 | ||
| 1074 | mtctl %r1, %cr18 /* IIAOQ head */ | 1080 | mtctl %r1, %cr18 /* IIAOQ head */ |
| 1075 | ldo 4(%r1), %r1 | 1081 | ldo 4(%r1), %r1 |
| 1076 | mtctl %r1, %cr18 /* IIAOQ tail */ | 1082 | mtctl %r1, %cr18 /* IIAOQ tail */ |
| 1083 | load32 KERNEL_PSW, %r1 | ||
| 1084 | mtctl %r1, %ipsw | ||
| 1077 | rfi | 1085 | rfi |
| 1078 | nop | 1086 | nop |
| 1079 | 1087 | ||
diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c index 844c2877a2e3..ae6213d71670 100644 --- a/arch/parisc/kernel/pci-dma.c +++ b/arch/parisc/kernel/pci-dma.c | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | #include <asm/page.h> /* get_order */ | 31 | #include <asm/page.h> /* get_order */ |
| 32 | #include <asm/pgalloc.h> | 32 | #include <asm/pgalloc.h> |
| 33 | #include <asm/uaccess.h> | 33 | #include <asm/uaccess.h> |
| 34 | 34 | #include <asm/tlbflush.h> /* for purge_tlb_*() macros */ | |
| 35 | 35 | ||
| 36 | static struct proc_dir_entry * proc_gsc_root = NULL; | 36 | static struct proc_dir_entry * proc_gsc_root = NULL; |
| 37 | static int pcxl_proc_info(char *buffer, char **start, off_t offset, int length); | 37 | static int pcxl_proc_info(char *buffer, char **start, off_t offset, int length); |
| @@ -333,18 +333,28 @@ pcxl_free_range(unsigned long vaddr, size_t size) | |||
| 333 | static int __init | 333 | static int __init |
| 334 | pcxl_dma_init(void) | 334 | pcxl_dma_init(void) |
| 335 | { | 335 | { |
| 336 | if (pcxl_dma_start == 0) | 336 | if (pcxl_dma_start == 0) |
| 337 | return 0; | 337 | return 0; |
| 338 | 338 | ||
| 339 | spin_lock_init(&pcxl_res_lock); | 339 | spin_lock_init(&pcxl_res_lock); |
| 340 | pcxl_res_size = PCXL_DMA_MAP_SIZE >> (PAGE_SHIFT + 3); | 340 | pcxl_res_size = PCXL_DMA_MAP_SIZE >> (PAGE_SHIFT + 3); |
| 341 | pcxl_res_hint = 0; | 341 | pcxl_res_hint = 0; |
| 342 | pcxl_res_map = (char *)__get_free_pages(GFP_KERNEL, | 342 | pcxl_res_map = (char *)__get_free_pages(GFP_KERNEL, |
| 343 | get_order(pcxl_res_size)); | 343 | get_order(pcxl_res_size)); |
| 344 | memset(pcxl_res_map, 0, pcxl_res_size); | 344 | memset(pcxl_res_map, 0, pcxl_res_size); |
| 345 | proc_gsc_root = proc_mkdir("gsc", 0); | 345 | proc_gsc_root = proc_mkdir("gsc", 0); |
| 346 | create_proc_info_entry("dino", 0, proc_gsc_root, pcxl_proc_info); | 346 | if (!proc_gsc_root) |
| 347 | return 0; | 347 | printk(KERN_WARNING |
| 348 | "pcxl_dma_init: Unable to create gsc /proc dir entry\n"); | ||
| 349 | else { | ||
| 350 | struct proc_dir_entry* ent; | ||
| 351 | ent = create_proc_info_entry("pcxl_dma", 0, | ||
| 352 | proc_gsc_root, pcxl_proc_info); | ||
| 353 | if (!ent) | ||
| 354 | printk(KERN_WARNING | ||
| 355 | "pci-dma.c: Unable to create pcxl_dma /proc entry.\n"); | ||
| 356 | } | ||
| 357 | return 0; | ||
| 348 | } | 358 | } |
| 349 | 359 | ||
| 350 | __initcall(pcxl_dma_init); | 360 | __initcall(pcxl_dma_init); |
| @@ -545,16 +555,16 @@ struct hppa_dma_ops pcx_dma_ops = { | |||
| 545 | 555 | ||
| 546 | static int pcxl_proc_info(char *buf, char **start, off_t offset, int len) | 556 | static int pcxl_proc_info(char *buf, char **start, off_t offset, int len) |
| 547 | { | 557 | { |
| 558 | #if 0 | ||
| 548 | u_long i = 0; | 559 | u_long i = 0; |
| 549 | unsigned long *res_ptr = (u_long *)pcxl_res_map; | 560 | unsigned long *res_ptr = (u_long *)pcxl_res_map; |
| 550 | unsigned long total_pages = pcxl_res_size << 3; /* 8 bits per byte */ | 561 | #endif |
| 562 | unsigned long total_pages = pcxl_res_size << 3; /* 8 bits per byte */ | ||
| 551 | 563 | ||
| 552 | sprintf(buf, "\nDMA Mapping Area size : %d bytes (%d pages)\n", | 564 | sprintf(buf, "\nDMA Mapping Area size : %d bytes (%ld pages)\n", |
| 553 | PCXL_DMA_MAP_SIZE, | 565 | PCXL_DMA_MAP_SIZE, total_pages); |
| 554 | (pcxl_res_size << 3) ); /* 1 bit per page */ | ||
| 555 | 566 | ||
| 556 | sprintf(buf, "%sResource bitmap : %d bytes (%d pages)\n", | 567 | sprintf(buf, "%sResource bitmap : %d bytes\n", buf, pcxl_res_size); |
| 557 | buf, pcxl_res_size, pcxl_res_size << 3); /* 8 bits per byte */ | ||
| 558 | 568 | ||
| 559 | strcat(buf, " total: free: used: % used:\n"); | 569 | strcat(buf, " total: free: used: % used:\n"); |
| 560 | sprintf(buf, "%sblocks %8d %8ld %8ld %8ld%%\n", buf, pcxl_res_size, | 570 | sprintf(buf, "%sblocks %8d %8ld %8ld %8ld%%\n", buf, pcxl_res_size, |
| @@ -564,7 +574,8 @@ static int pcxl_proc_info(char *buf, char **start, off_t offset, int len) | |||
| 564 | sprintf(buf, "%spages %8ld %8ld %8ld %8ld%%\n", buf, total_pages, | 574 | sprintf(buf, "%spages %8ld %8ld %8ld %8ld%%\n", buf, total_pages, |
| 565 | total_pages - pcxl_used_pages, pcxl_used_pages, | 575 | total_pages - pcxl_used_pages, pcxl_used_pages, |
| 566 | (pcxl_used_pages * 100 / total_pages)); | 576 | (pcxl_used_pages * 100 / total_pages)); |
| 567 | 577 | ||
| 578 | #if 0 | ||
| 568 | strcat(buf, "\nResource bitmap:"); | 579 | strcat(buf, "\nResource bitmap:"); |
| 569 | 580 | ||
| 570 | for(; i < (pcxl_res_size / sizeof(u_long)); ++i, ++res_ptr) { | 581 | for(; i < (pcxl_res_size / sizeof(u_long)); ++i, ++res_ptr) { |
| @@ -572,6 +583,7 @@ static int pcxl_proc_info(char *buf, char **start, off_t offset, int len) | |||
| 572 | strcat(buf,"\n "); | 583 | strcat(buf,"\n "); |
| 573 | sprintf(buf, "%s %08lx", buf, *res_ptr); | 584 | sprintf(buf, "%s %08lx", buf, *res_ptr); |
| 574 | } | 585 | } |
| 586 | #endif | ||
| 575 | strcat(buf, "\n"); | 587 | strcat(buf, "\n"); |
| 576 | return strlen(buf); | 588 | return strlen(buf); |
| 577 | } | 589 | } |
diff --git a/arch/parisc/kernel/pci.c b/arch/parisc/kernel/pci.c index e6a891a0cad0..88cba49c5301 100644 --- a/arch/parisc/kernel/pci.c +++ b/arch/parisc/kernel/pci.c | |||
| @@ -202,7 +202,8 @@ static void | |||
| 202 | pcibios_link_hba_resources( struct resource *hba_res, struct resource *r) | 202 | pcibios_link_hba_resources( struct resource *hba_res, struct resource *r) |
| 203 | { | 203 | { |
| 204 | if (!r->parent) { | 204 | if (!r->parent) { |
| 205 | printk(KERN_EMERG "PCI: Tell willy he's wrong\n"); | 205 | printk(KERN_EMERG "PCI: resource not parented! [%lx-%lx]\n", |
| 206 | r->start, r->end); | ||
| 206 | r->parent = hba_res; | 207 | r->parent = hba_res; |
| 207 | 208 | ||
| 208 | /* reverse link is harder *sigh* */ | 209 | /* reverse link is harder *sigh* */ |
diff --git a/arch/parisc/kernel/pdc_cons.c b/arch/parisc/kernel/pdc_cons.c index 01f676d1673b..215d78c87bc5 100644 --- a/arch/parisc/kernel/pdc_cons.c +++ b/arch/parisc/kernel/pdc_cons.c | |||
| @@ -41,7 +41,7 @@ | |||
| 41 | 41 | ||
| 42 | /* Define EARLY_BOOTUP_DEBUG to debug kernel related boot problems. | 42 | /* Define EARLY_BOOTUP_DEBUG to debug kernel related boot problems. |
| 43 | * On production kernels EARLY_BOOTUP_DEBUG should be undefined. */ | 43 | * On production kernels EARLY_BOOTUP_DEBUG should be undefined. */ |
| 44 | #undef EARLY_BOOTUP_DEBUG | 44 | #define EARLY_BOOTUP_DEBUG |
| 45 | 45 | ||
| 46 | 46 | ||
| 47 | #include <linux/config.h> | 47 | #include <linux/config.h> |
| @@ -49,14 +49,8 @@ | |||
| 49 | #include <linux/console.h> | 49 | #include <linux/console.h> |
| 50 | #include <linux/string.h> | 50 | #include <linux/string.h> |
| 51 | #include <linux/init.h> | 51 | #include <linux/init.h> |
| 52 | #include <linux/delay.h> | ||
| 53 | #include <linux/sched.h> | ||
| 54 | #include <linux/interrupt.h> | ||
| 55 | #include <linux/major.h> | 52 | #include <linux/major.h> |
| 56 | #include <linux/tty.h> | 53 | #include <linux/tty.h> |
| 57 | #include <asm/page.h> | ||
| 58 | #include <asm/types.h> | ||
| 59 | #include <asm/system.h> | ||
| 60 | #include <asm/pdc.h> /* for iodc_call() proto and friends */ | 54 | #include <asm/pdc.h> /* for iodc_call() proto and friends */ |
| 61 | 55 | ||
| 62 | 56 | ||
| @@ -96,7 +90,6 @@ static int pdc_console_setup(struct console *co, char *options) | |||
| 96 | } | 90 | } |
| 97 | 91 | ||
| 98 | #if defined(CONFIG_PDC_CONSOLE) | 92 | #if defined(CONFIG_PDC_CONSOLE) |
| 99 | #define PDC_CONSOLE_DEVICE pdc_console_device | ||
| 100 | static struct tty_driver * pdc_console_device (struct console *c, int *index) | 93 | static struct tty_driver * pdc_console_device (struct console *c, int *index) |
| 101 | { | 94 | { |
| 102 | extern struct tty_driver console_driver; | 95 | extern struct tty_driver console_driver; |
| @@ -104,22 +97,19 @@ static struct tty_driver * pdc_console_device (struct console *c, int *index) | |||
| 104 | return &console_driver; | 97 | return &console_driver; |
| 105 | } | 98 | } |
| 106 | #else | 99 | #else |
| 107 | #define PDC_CONSOLE_DEVICE NULL | 100 | #define pdc_console_device NULL |
| 108 | #endif | 101 | #endif |
| 109 | 102 | ||
| 110 | static struct console pdc_cons = { | 103 | static struct console pdc_cons = { |
| 111 | .name = "ttyB", | 104 | .name = "ttyB", |
| 112 | .write = pdc_console_write, | 105 | .write = pdc_console_write, |
| 113 | .device = PDC_CONSOLE_DEVICE, | 106 | .device = pdc_console_device, |
| 114 | .setup = pdc_console_setup, | 107 | .setup = pdc_console_setup, |
| 115 | .flags = CON_BOOT|CON_PRINTBUFFER|CON_ENABLED, | 108 | .flags = CON_BOOT | CON_PRINTBUFFER | CON_ENABLED, |
| 116 | .index = -1, | 109 | .index = -1, |
| 117 | }; | 110 | }; |
| 118 | 111 | ||
| 119 | static int pdc_console_initialized; | 112 | static int pdc_console_initialized; |
| 120 | extern unsigned long con_start; /* kernel/printk.c */ | ||
| 121 | extern unsigned long log_end; /* kernel/printk.c */ | ||
| 122 | |||
| 123 | 113 | ||
| 124 | static void pdc_console_init_force(void) | 114 | static void pdc_console_init_force(void) |
| 125 | { | 115 | { |
| @@ -146,27 +136,11 @@ void __init pdc_console_init(void) | |||
| 146 | } | 136 | } |
| 147 | 137 | ||
| 148 | 138 | ||
| 149 | /* Unregister the pdc console with the printk console layer */ | ||
| 150 | void pdc_console_die(void) | ||
| 151 | { | ||
| 152 | if (!pdc_console_initialized) | ||
| 153 | return; | ||
| 154 | --pdc_console_initialized; | ||
| 155 | |||
| 156 | printk(KERN_INFO "Switching from PDC console\n"); | ||
| 157 | |||
| 158 | /* Don't repeat what we've already printed */ | ||
| 159 | con_start = log_end; | ||
| 160 | |||
| 161 | unregister_console(&pdc_cons); | ||
| 162 | } | ||
| 163 | |||
| 164 | |||
| 165 | /* | 139 | /* |
| 166 | * Used for emergencies. Currently only used if an HPMC occurs. If an | 140 | * Used for emergencies. Currently only used if an HPMC occurs. If an |
| 167 | * HPMC occurs, it is possible that the current console may not be | 141 | * HPMC occurs, it is possible that the current console may not be |
| 168 | * properly initialed after the PDC IO reset. This routine unregisters all | 142 | * properly initialised after the PDC IO reset. This routine unregisters |
| 169 | * of the current consoles, reinitializes the pdc console and | 143 | * all of the current consoles, reinitializes the pdc console and |
| 170 | * registers it. | 144 | * registers it. |
| 171 | */ | 145 | */ |
| 172 | 146 | ||
| @@ -177,13 +151,13 @@ void pdc_console_restart(void) | |||
| 177 | if (pdc_console_initialized) | 151 | if (pdc_console_initialized) |
| 178 | return; | 152 | return; |
| 179 | 153 | ||
| 154 | /* If we've already seen the output, don't bother to print it again */ | ||
| 155 | if (console_drivers != NULL) | ||
| 156 | pdc_cons.flags &= ~CON_PRINTBUFFER; | ||
| 157 | |||
| 180 | while ((console = console_drivers) != NULL) | 158 | while ((console = console_drivers) != NULL) |
| 181 | unregister_console(console_drivers); | 159 | unregister_console(console_drivers); |
| 182 | 160 | ||
| 183 | /* Don't repeat what we've already printed */ | ||
| 184 | con_start = log_end; | ||
| 185 | |||
| 186 | /* force registering the pdc console */ | 161 | /* force registering the pdc console */ |
| 187 | pdc_console_init_force(); | 162 | pdc_console_init_force(); |
| 188 | } | 163 | } |
| 189 | |||
diff --git a/arch/parisc/kernel/perf.c b/arch/parisc/kernel/perf.c index b3ad0a505b87..44670d6e06f4 100644 --- a/arch/parisc/kernel/perf.c +++ b/arch/parisc/kernel/perf.c | |||
| @@ -746,7 +746,8 @@ static int perf_write_image(uint64_t *memaddr) | |||
| 746 | uint64_t *bptr; | 746 | uint64_t *bptr; |
| 747 | uint32_t dwords; | 747 | uint32_t dwords; |
| 748 | uint32_t *intrigue_rdr; | 748 | uint32_t *intrigue_rdr; |
| 749 | uint64_t *intrigue_bitmask, tmp64, proc_hpa; | 749 | uint64_t *intrigue_bitmask, tmp64; |
| 750 | void __iomem *runway; | ||
| 750 | struct rdr_tbl_ent *tentry; | 751 | struct rdr_tbl_ent *tentry; |
| 751 | int i; | 752 | int i; |
| 752 | 753 | ||
| @@ -798,15 +799,16 @@ static int perf_write_image(uint64_t *memaddr) | |||
| 798 | return -1; | 799 | return -1; |
| 799 | } | 800 | } |
| 800 | 801 | ||
| 801 | proc_hpa = cpu_device->hpa; | 802 | runway = ioremap(cpu_device->hpa.start, 4096); |
| 802 | 803 | ||
| 803 | /* Merge intrigue bits into Runway STATUS 0 */ | 804 | /* Merge intrigue bits into Runway STATUS 0 */ |
| 804 | tmp64 = __raw_readq(proc_hpa + RUNWAY_STATUS) & 0xffecfffffffffffful; | 805 | tmp64 = __raw_readq(runway + RUNWAY_STATUS) & 0xffecfffffffffffful; |
| 805 | __raw_writeq(tmp64 | (*memaddr++ & 0x0013000000000000ul), proc_hpa + RUNWAY_STATUS); | 806 | __raw_writeq(tmp64 | (*memaddr++ & 0x0013000000000000ul), |
| 807 | runway + RUNWAY_STATUS); | ||
| 806 | 808 | ||
| 807 | /* Write RUNWAY DEBUG registers */ | 809 | /* Write RUNWAY DEBUG registers */ |
| 808 | for (i = 0; i < 8; i++) { | 810 | for (i = 0; i < 8; i++) { |
| 809 | __raw_writeq(*memaddr++, proc_hpa + RUNWAY_DEBUG + i); | 811 | __raw_writeq(*memaddr++, runway + RUNWAY_DEBUG); |
| 810 | } | 812 | } |
| 811 | 813 | ||
| 812 | return 0; | 814 | return 0; |
diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c index 46b759385115..7fdca87ef647 100644 --- a/arch/parisc/kernel/process.c +++ b/arch/parisc/kernel/process.c | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | * Copyright (C) 2000-2003 Paul Bame <bame at parisc-linux.org> | 9 | * Copyright (C) 2000-2003 Paul Bame <bame at parisc-linux.org> |
| 10 | * Copyright (C) 2000 Philipp Rumpf <prumpf with tux.org> | 10 | * Copyright (C) 2000 Philipp Rumpf <prumpf with tux.org> |
| 11 | * Copyright (C) 2000 David Kennedy <dkennedy with linuxcare.com> | 11 | * Copyright (C) 2000 David Kennedy <dkennedy with linuxcare.com> |
| 12 | * Copyright (C) 2000 Richard Hirst <rhirst with parisc-lixux.org> | 12 | * Copyright (C) 2000 Richard Hirst <rhirst with parisc-linux.org> |
| 13 | * Copyright (C) 2000 Grant Grundler <grundler with parisc-linux.org> | 13 | * Copyright (C) 2000 Grant Grundler <grundler with parisc-linux.org> |
| 14 | * Copyright (C) 2001 Alan Modra <amodra at parisc-linux.org> | 14 | * Copyright (C) 2001 Alan Modra <amodra at parisc-linux.org> |
| 15 | * Copyright (C) 2001-2002 Ryan Bradetich <rbrad at parisc-linux.org> | 15 | * Copyright (C) 2001-2002 Ryan Bradetich <rbrad at parisc-linux.org> |
| @@ -245,7 +245,17 @@ int | |||
| 245 | sys_clone(unsigned long clone_flags, unsigned long usp, | 245 | sys_clone(unsigned long clone_flags, unsigned long usp, |
| 246 | struct pt_regs *regs) | 246 | struct pt_regs *regs) |
| 247 | { | 247 | { |
| 248 | int __user *user_tid = (int __user *)regs->gr[26]; | 248 | /* Arugments from userspace are: |
| 249 | r26 = Clone flags. | ||
| 250 | r25 = Child stack. | ||
| 251 | r24 = parent_tidptr. | ||
| 252 | r23 = Is the TLS storage descriptor | ||
| 253 | r22 = child_tidptr | ||
| 254 | |||
| 255 | However, these last 3 args are only examined | ||
| 256 | if the proper flags are set. */ | ||
| 257 | int __user *child_tidptr; | ||
| 258 | int __user *parent_tidptr; | ||
| 249 | 259 | ||
| 250 | /* usp must be word aligned. This also prevents users from | 260 | /* usp must be word aligned. This also prevents users from |
| 251 | * passing in the value 1 (which is the signal for a special | 261 | * passing in the value 1 (which is the signal for a special |
| @@ -253,10 +263,20 @@ sys_clone(unsigned long clone_flags, unsigned long usp, | |||
| 253 | usp = ALIGN(usp, 4); | 263 | usp = ALIGN(usp, 4); |
| 254 | 264 | ||
| 255 | /* A zero value for usp means use the current stack */ | 265 | /* A zero value for usp means use the current stack */ |
| 256 | if(usp == 0) | 266 | if (usp == 0) |
| 257 | usp = regs->gr[30]; | 267 | usp = regs->gr[30]; |
| 258 | 268 | ||
| 259 | return do_fork(clone_flags, usp, regs, 0, user_tid, NULL); | 269 | if (clone_flags & CLONE_PARENT_SETTID) |
| 270 | parent_tidptr = (int __user *)regs->gr[24]; | ||
| 271 | else | ||
| 272 | parent_tidptr = NULL; | ||
| 273 | |||
| 274 | if (clone_flags & (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID)) | ||
| 275 | child_tidptr = (int __user *)regs->gr[22]; | ||
| 276 | else | ||
| 277 | child_tidptr = NULL; | ||
| 278 | |||
| 279 | return do_fork(clone_flags, usp, regs, 0, parent_tidptr, child_tidptr); | ||
| 260 | } | 280 | } |
| 261 | 281 | ||
| 262 | int | 282 | int |
| @@ -332,6 +352,10 @@ copy_thread(int nr, unsigned long clone_flags, unsigned long usp, | |||
| 332 | } else { | 352 | } else { |
| 333 | cregs->kpc = (unsigned long) &child_return; | 353 | cregs->kpc = (unsigned long) &child_return; |
| 334 | } | 354 | } |
| 355 | /* Setup thread TLS area from the 4th parameter in clone */ | ||
| 356 | if (clone_flags & CLONE_SETTLS) | ||
| 357 | cregs->cr27 = pregs->gr[23]; | ||
| 358 | |||
| 335 | } | 359 | } |
| 336 | 360 | ||
| 337 | return 0; | 361 | return 0; |
diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c index 13b721cb9f55..4f5bbcf1f5a4 100644 --- a/arch/parisc/kernel/processor.c +++ b/arch/parisc/kernel/processor.c | |||
| @@ -92,7 +92,7 @@ static int __init processor_probe(struct parisc_device *dev) | |||
| 92 | * May get overwritten by PAT code. | 92 | * May get overwritten by PAT code. |
| 93 | */ | 93 | */ |
| 94 | cpuid = boot_cpu_data.cpu_count; | 94 | cpuid = boot_cpu_data.cpu_count; |
| 95 | txn_addr = dev->hpa; /* for legacy PDC */ | 95 | txn_addr = dev->hpa.start; /* for legacy PDC */ |
| 96 | 96 | ||
| 97 | #ifdef __LP64__ | 97 | #ifdef __LP64__ |
| 98 | if (is_pdc_pat()) { | 98 | if (is_pdc_pat()) { |
| @@ -122,7 +122,7 @@ static int __init processor_probe(struct parisc_device *dev) | |||
| 122 | * boot time (ie shutdown a CPU from an OS perspective). | 122 | * boot time (ie shutdown a CPU from an OS perspective). |
| 123 | */ | 123 | */ |
| 124 | /* get the cpu number */ | 124 | /* get the cpu number */ |
| 125 | status = pdc_pat_cpu_get_number(&cpu_info, dev->hpa); | 125 | status = pdc_pat_cpu_get_number(&cpu_info, dev->hpa.start); |
| 126 | 126 | ||
| 127 | BUG_ON(PDC_OK != status); | 127 | BUG_ON(PDC_OK != status); |
| 128 | 128 | ||
| @@ -130,7 +130,7 @@ static int __init processor_probe(struct parisc_device *dev) | |||
| 130 | printk(KERN_WARNING "IGNORING CPU at 0x%x," | 130 | printk(KERN_WARNING "IGNORING CPU at 0x%x," |
| 131 | " cpu_slot_id > NR_CPUS" | 131 | " cpu_slot_id > NR_CPUS" |
| 132 | " (%ld > %d)\n", | 132 | " (%ld > %d)\n", |
| 133 | dev->hpa, cpu_info.cpu_num, NR_CPUS); | 133 | dev->hpa.start, cpu_info.cpu_num, NR_CPUS); |
| 134 | /* Ignore CPU since it will only crash */ | 134 | /* Ignore CPU since it will only crash */ |
| 135 | boot_cpu_data.cpu_count--; | 135 | boot_cpu_data.cpu_count--; |
| 136 | return 1; | 136 | return 1; |
| @@ -149,7 +149,7 @@ static int __init processor_probe(struct parisc_device *dev) | |||
| 149 | 149 | ||
| 150 | p->loops_per_jiffy = loops_per_jiffy; | 150 | p->loops_per_jiffy = loops_per_jiffy; |
| 151 | p->dev = dev; /* Save IODC data in case we need it */ | 151 | p->dev = dev; /* Save IODC data in case we need it */ |
| 152 | p->hpa = dev->hpa; /* save CPU hpa */ | 152 | p->hpa = dev->hpa.start; /* save CPU hpa */ |
| 153 | p->cpuid = cpuid; /* save CPU id */ | 153 | p->cpuid = cpuid; /* save CPU id */ |
| 154 | p->txn_addr = txn_addr; /* save CPU IRQ address */ | 154 | p->txn_addr = txn_addr; /* save CPU IRQ address */ |
| 155 | #ifdef CONFIG_SMP | 155 | #ifdef CONFIG_SMP |
diff --git a/arch/parisc/kernel/real2.S b/arch/parisc/kernel/real2.S index 8dd5defb7316..8c2859cca77e 100644 --- a/arch/parisc/kernel/real2.S +++ b/arch/parisc/kernel/real2.S | |||
| @@ -7,8 +7,10 @@ | |||
| 7 | * Copyright (C) 2000 Hewlett Packard (Paul Bame bame@puffin.external.hp.com) | 7 | * Copyright (C) 2000 Hewlett Packard (Paul Bame bame@puffin.external.hp.com) |
| 8 | * | 8 | * |
| 9 | */ | 9 | */ |
| 10 | #include <asm/assembly.h> | 10 | #include <linux/config.h> |
| 11 | |||
| 11 | #include <asm/psw.h> | 12 | #include <asm/psw.h> |
| 13 | #include <asm/assembly.h> | ||
| 12 | 14 | ||
| 13 | .section .bss | 15 | .section .bss |
| 14 | .export real_stack | 16 | .export real_stack |
| @@ -20,7 +22,7 @@ real32_stack: | |||
| 20 | real64_stack: | 22 | real64_stack: |
| 21 | .block 8192 | 23 | .block 8192 |
| 22 | 24 | ||
| 23 | #ifdef __LP64__ | 25 | #ifdef CONFIG_64BIT |
| 24 | # define REG_SZ 8 | 26 | # define REG_SZ 8 |
| 25 | #else | 27 | #else |
| 26 | # define REG_SZ 4 | 28 | # define REG_SZ 4 |
| @@ -50,7 +52,7 @@ save_cr_end: | |||
| 50 | 52 | ||
| 51 | real32_call_asm: | 53 | real32_call_asm: |
| 52 | STREG %rp, -RP_OFFSET(%sp) /* save RP */ | 54 | STREG %rp, -RP_OFFSET(%sp) /* save RP */ |
| 53 | #ifdef __LP64__ | 55 | #ifdef CONFIG_64BIT |
| 54 | callee_save | 56 | callee_save |
| 55 | ldo 2*REG_SZ(%sp), %sp /* room for a couple more saves */ | 57 | ldo 2*REG_SZ(%sp), %sp /* room for a couple more saves */ |
| 56 | STREG %r27, -1*REG_SZ(%sp) | 58 | STREG %r27, -1*REG_SZ(%sp) |
| @@ -77,7 +79,7 @@ real32_call_asm: | |||
| 77 | b,l save_control_regs,%r2 /* modifies r1, r2, r28 */ | 79 | b,l save_control_regs,%r2 /* modifies r1, r2, r28 */ |
| 78 | nop | 80 | nop |
| 79 | 81 | ||
| 80 | #ifdef __LP64__ | 82 | #ifdef CONFIG_64BIT |
| 81 | rsm PSW_SM_W, %r0 /* go narrow */ | 83 | rsm PSW_SM_W, %r0 /* go narrow */ |
| 82 | #endif | 84 | #endif |
| 83 | 85 | ||
| @@ -85,7 +87,7 @@ real32_call_asm: | |||
| 85 | bv 0(%r31) | 87 | bv 0(%r31) |
| 86 | nop | 88 | nop |
| 87 | ric_ret: | 89 | ric_ret: |
| 88 | #ifdef __LP64__ | 90 | #ifdef CONFIG_64BIT |
| 89 | ssm PSW_SM_W, %r0 /* go wide */ | 91 | ssm PSW_SM_W, %r0 /* go wide */ |
| 90 | #endif | 92 | #endif |
| 91 | /* restore CRs before going virtual in case we page fault */ | 93 | /* restore CRs before going virtual in case we page fault */ |
| @@ -97,7 +99,7 @@ ric_ret: | |||
| 97 | 99 | ||
| 98 | tovirt_r1 %sp | 100 | tovirt_r1 %sp |
| 99 | LDREG -REG_SZ(%sp), %sp /* restore SP */ | 101 | LDREG -REG_SZ(%sp), %sp /* restore SP */ |
| 100 | #ifdef __LP64__ | 102 | #ifdef CONFIG_64BIT |
| 101 | LDREG -1*REG_SZ(%sp), %r27 | 103 | LDREG -1*REG_SZ(%sp), %r27 |
| 102 | LDREG -2*REG_SZ(%sp), %r29 | 104 | LDREG -2*REG_SZ(%sp), %r29 |
| 103 | ldo -2*REG_SZ(%sp), %sp | 105 | ldo -2*REG_SZ(%sp), %sp |
| @@ -143,24 +145,21 @@ restore_control_regs: | |||
| 143 | /* rfi_virt2real() and rfi_real2virt() could perhaps be adapted for | 145 | /* rfi_virt2real() and rfi_real2virt() could perhaps be adapted for |
| 144 | * more general-purpose use by the several places which need RFIs | 146 | * more general-purpose use by the several places which need RFIs |
| 145 | */ | 147 | */ |
| 146 | .align 128 | ||
| 147 | .text | 148 | .text |
| 149 | .align 128 | ||
| 148 | rfi_virt2real: | 150 | rfi_virt2real: |
| 149 | /* switch to real mode... */ | 151 | /* switch to real mode... */ |
| 150 | ssm 0,0 /* See "relied upon translation" */ | 152 | rsm PSW_SM_I,%r0 |
| 151 | nop /* PA 2.0 Arch. F-5 */ | 153 | load32 PA(rfi_v2r_1), %r1 |
| 152 | nop | ||
| 153 | nop | ||
| 154 | nop | 154 | nop |
| 155 | nop | 155 | nop |
| 156 | nop | 156 | nop |
| 157 | nop | 157 | nop |
| 158 | nop | 158 | nop |
| 159 | 159 | ||
| 160 | rsm (PSW_SM_Q|PSW_SM_I),%r0 /* disable Q & I bits to load iia queue */ | 160 | rsm PSW_SM_Q,%r0 /* disable Q & I bits to load iia queue */ |
| 161 | mtctl %r0, %cr17 /* Clear IIASQ tail */ | 161 | mtctl %r0, %cr17 /* Clear IIASQ tail */ |
| 162 | mtctl %r0, %cr17 /* Clear IIASQ head */ | 162 | mtctl %r0, %cr17 /* Clear IIASQ head */ |
| 163 | load32 PA(rfi_v2r_1), %r1 | ||
| 164 | mtctl %r1, %cr18 /* IIAOQ head */ | 163 | mtctl %r1, %cr18 /* IIAOQ head */ |
| 165 | ldo 4(%r1), %r1 | 164 | ldo 4(%r1), %r1 |
| 166 | mtctl %r1, %cr18 /* IIAOQ tail */ | 165 | mtctl %r1, %cr18 /* IIAOQ tail */ |
| @@ -184,10 +183,8 @@ rfi_v2r_1: | |||
| 184 | .text | 183 | .text |
| 185 | .align 128 | 184 | .align 128 |
| 186 | rfi_real2virt: | 185 | rfi_real2virt: |
| 187 | ssm 0,0 /* See "relied upon translation" */ | 186 | rsm PSW_SM_I,%r0 |
| 188 | nop /* PA 2.0 Arch. F-5 */ | 187 | load32 (rfi_r2v_1), %r1 |
| 189 | nop | ||
| 190 | nop | ||
| 191 | nop | 188 | nop |
| 192 | nop | 189 | nop |
| 193 | nop | 190 | nop |
| @@ -197,7 +194,6 @@ rfi_real2virt: | |||
| 197 | rsm PSW_SM_Q,%r0 /* disable Q bit to load iia queue */ | 194 | rsm PSW_SM_Q,%r0 /* disable Q bit to load iia queue */ |
| 198 | mtctl %r0, %cr17 /* Clear IIASQ tail */ | 195 | mtctl %r0, %cr17 /* Clear IIASQ tail */ |
| 199 | mtctl %r0, %cr17 /* Clear IIASQ head */ | 196 | mtctl %r0, %cr17 /* Clear IIASQ head */ |
| 200 | load32 (rfi_r2v_1), %r1 | ||
| 201 | mtctl %r1, %cr18 /* IIAOQ head */ | 197 | mtctl %r1, %cr18 /* IIAOQ head */ |
| 202 | ldo 4(%r1), %r1 | 198 | ldo 4(%r1), %r1 |
| 203 | mtctl %r1, %cr18 /* IIAOQ tail */ | 199 | mtctl %r1, %cr18 /* IIAOQ tail */ |
| @@ -218,7 +214,7 @@ rfi_r2v_1: | |||
| 218 | bv 0(%r2) | 214 | bv 0(%r2) |
| 219 | nop | 215 | nop |
| 220 | 216 | ||
| 221 | #ifdef __LP64__ | 217 | #ifdef CONFIG_64BIT |
| 222 | 218 | ||
| 223 | /************************ 64-bit real-mode calls ***********************/ | 219 | /************************ 64-bit real-mode calls ***********************/ |
| 224 | /* This is only usable in wide kernels right now and will probably stay so */ | 220 | /* This is only usable in wide kernels right now and will probably stay so */ |
| @@ -296,7 +292,7 @@ pc_in_user_space: | |||
| 296 | ** comparing function pointers. | 292 | ** comparing function pointers. |
| 297 | */ | 293 | */ |
| 298 | __canonicalize_funcptr_for_compare: | 294 | __canonicalize_funcptr_for_compare: |
| 299 | #ifdef __LP64__ | 295 | #ifdef CONFIG_64BIT |
| 300 | bve (%r2) | 296 | bve (%r2) |
| 301 | #else | 297 | #else |
| 302 | bv %r0(%r2) | 298 | bv %r0(%r2) |
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c index 0224651fd8f1..82c24e62ab63 100644 --- a/arch/parisc/kernel/signal.c +++ b/arch/parisc/kernel/signal.c | |||
| @@ -490,15 +490,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
| 490 | 490 | ||
| 491 | give_sigsegv: | 491 | give_sigsegv: |
| 492 | DBG(1,"setup_rt_frame: sending SIGSEGV\n"); | 492 | DBG(1,"setup_rt_frame: sending SIGSEGV\n"); |
| 493 | if (sig == SIGSEGV) | 493 | force_sigsegv(sig, current); |
| 494 | ka->sa.sa_handler = SIG_DFL; | ||
| 495 | si.si_signo = SIGSEGV; | ||
| 496 | si.si_errno = 0; | ||
| 497 | si.si_code = SI_KERNEL; | ||
| 498 | si.si_pid = current->pid; | ||
| 499 | si.si_uid = current->uid; | ||
| 500 | si.si_addr = frame; | ||
| 501 | force_sig_info(SIGSEGV, &si, current); | ||
| 502 | return 0; | 494 | return 0; |
| 503 | } | 495 | } |
| 504 | 496 | ||
| @@ -633,10 +625,14 @@ do_signal(sigset_t *oldset, struct pt_regs *regs, int in_syscall) | |||
| 633 | put_user(0xe0008200, &usp[3]); | 625 | put_user(0xe0008200, &usp[3]); |
| 634 | put_user(0x34140000, &usp[4]); | 626 | put_user(0x34140000, &usp[4]); |
| 635 | 627 | ||
| 636 | /* Stack is 64-byte aligned, and we only | 628 | /* Stack is 64-byte aligned, and we only need |
| 637 | * need to flush 1 cache line */ | 629 | * to flush 1 cache line. |
| 638 | asm("fdc 0(%%sr3, %0)\n" | 630 | * Flushing one cacheline is cheap. |
| 639 | "fic 0(%%sr3, %0)\n" | 631 | * "sync" on bigger (> 4 way) boxes is not. |
| 632 | */ | ||
| 633 | asm("fdc %%r0(%%sr3, %0)\n" | ||
| 634 | "sync\n" | ||
| 635 | "fic %%r0(%%sr3, %0)\n" | ||
| 640 | "sync\n" | 636 | "sync\n" |
| 641 | : : "r"(regs->gr[30])); | 637 | : : "r"(regs->gr[30])); |
| 642 | 638 | ||
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c index bcc7e83f5142..5db3be4e2704 100644 --- a/arch/parisc/kernel/smp.c +++ b/arch/parisc/kernel/smp.c | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | */ | 18 | */ |
| 19 | #undef ENTRY_SYS_CPUS /* syscall support for iCOD-like functionality */ | 19 | #undef ENTRY_SYS_CPUS /* syscall support for iCOD-like functionality */ |
| 20 | 20 | ||
| 21 | #include <linux/autoconf.h> | 21 | #include <linux/config.h> |
| 22 | 22 | ||
| 23 | #include <linux/types.h> | 23 | #include <linux/types.h> |
| 24 | #include <linux/spinlock.h> | 24 | #include <linux/spinlock.h> |
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S index 8c7a7185cd3b..b29b76b42bb7 100644 --- a/arch/parisc/kernel/syscall.S +++ b/arch/parisc/kernel/syscall.S | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | * thanks to Philipp Rumpf, Mike Shaver and various others | 6 | * thanks to Philipp Rumpf, Mike Shaver and various others |
| 7 | * sorry about the wall, puffin.. | 7 | * sorry about the wall, puffin.. |
| 8 | */ | 8 | */ |
| 9 | #include <linux/config.h> /* for CONFIG_SMP */ | ||
| 9 | 10 | ||
| 10 | #include <asm/asm-offsets.h> | 11 | #include <asm/asm-offsets.h> |
| 11 | #include <asm/unistd.h> | 12 | #include <asm/unistd.h> |
| @@ -22,15 +23,13 @@ | |||
| 22 | */ | 23 | */ |
| 23 | #define KILL_INSN break 0,0 | 24 | #define KILL_INSN break 0,0 |
| 24 | 25 | ||
| 25 | #include <linux/config.h> /* for CONFIG_SMP */ | 26 | #ifdef CONFIG_64BIT |
| 26 | |||
| 27 | #ifdef __LP64__ | ||
| 28 | .level 2.0w | 27 | .level 2.0w |
| 29 | #else | 28 | #else |
| 30 | .level 1.1 | 29 | .level 1.1 |
| 31 | #endif | 30 | #endif |
| 32 | 31 | ||
| 33 | #ifndef __LP64__ | 32 | #ifndef CONFIG_64BIT |
| 34 | .macro fixup_branch,lbl | 33 | .macro fixup_branch,lbl |
| 35 | b \lbl | 34 | b \lbl |
| 36 | .endm | 35 | .endm |
| @@ -103,7 +102,7 @@ linux_gateway_entry: | |||
| 103 | mfsp %sr7,%r1 /* save user sr7 */ | 102 | mfsp %sr7,%r1 /* save user sr7 */ |
| 104 | mtsp %r1,%sr3 /* and store it in sr3 */ | 103 | mtsp %r1,%sr3 /* and store it in sr3 */ |
| 105 | 104 | ||
| 106 | #ifdef __LP64__ | 105 | #ifdef CONFIG_64BIT |
| 107 | /* for now we can *always* set the W bit on entry to the syscall | 106 | /* for now we can *always* set the W bit on entry to the syscall |
| 108 | * since we don't support wide userland processes. We could | 107 | * since we don't support wide userland processes. We could |
| 109 | * also save the current SM other than in r0 and restore it on | 108 | * also save the current SM other than in r0 and restore it on |
| @@ -155,7 +154,7 @@ linux_gateway_entry: | |||
| 155 | STREG %r19, TASK_PT_GR19(%r1) | 154 | STREG %r19, TASK_PT_GR19(%r1) |
| 156 | 155 | ||
| 157 | LDREGM -FRAME_SIZE(%r30), %r2 /* get users sp back */ | 156 | LDREGM -FRAME_SIZE(%r30), %r2 /* get users sp back */ |
| 158 | #ifdef __LP64__ | 157 | #ifdef CONFIG_64BIT |
| 159 | extrd,u %r2,63,1,%r19 /* W hidden in bottom bit */ | 158 | extrd,u %r2,63,1,%r19 /* W hidden in bottom bit */ |
| 160 | #if 0 | 159 | #if 0 |
| 161 | xor %r19,%r2,%r2 /* clear bottom bit */ | 160 | xor %r19,%r2,%r2 /* clear bottom bit */ |
| @@ -186,7 +185,7 @@ linux_gateway_entry: | |||
| 186 | 185 | ||
| 187 | loadgp | 186 | loadgp |
| 188 | 187 | ||
| 189 | #ifdef __LP64__ | 188 | #ifdef CONFIG_64BIT |
| 190 | ldo -16(%r30),%r29 /* Reference param save area */ | 189 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 191 | copy %r19,%r2 /* W bit back to r2 */ | 190 | copy %r19,%r2 /* W bit back to r2 */ |
| 192 | #else | 191 | #else |
| @@ -205,7 +204,7 @@ linux_gateway_entry: | |||
| 205 | /* Note! We cannot use the syscall table that is mapped | 204 | /* Note! We cannot use the syscall table that is mapped |
| 206 | nearby since the gateway page is mapped execute-only. */ | 205 | nearby since the gateway page is mapped execute-only. */ |
| 207 | 206 | ||
| 208 | #ifdef __LP64__ | 207 | #ifdef CONFIG_64BIT |
| 209 | ldil L%sys_call_table, %r1 | 208 | ldil L%sys_call_table, %r1 |
| 210 | or,= %r2,%r2,%r2 | 209 | or,= %r2,%r2,%r2 |
| 211 | addil L%(sys_call_table64-sys_call_table), %r1 | 210 | addil L%(sys_call_table64-sys_call_table), %r1 |
| @@ -321,7 +320,7 @@ tracesys_next: | |||
| 321 | LDREG TASK_PT_GR25(%r1), %r25 | 320 | LDREG TASK_PT_GR25(%r1), %r25 |
| 322 | LDREG TASK_PT_GR24(%r1), %r24 | 321 | LDREG TASK_PT_GR24(%r1), %r24 |
| 323 | LDREG TASK_PT_GR23(%r1), %r23 | 322 | LDREG TASK_PT_GR23(%r1), %r23 |
| 324 | #ifdef __LP64__ | 323 | #ifdef CONFIG_64BIT |
| 325 | LDREG TASK_PT_GR22(%r1), %r22 | 324 | LDREG TASK_PT_GR22(%r1), %r22 |
| 326 | LDREG TASK_PT_GR21(%r1), %r21 | 325 | LDREG TASK_PT_GR21(%r1), %r21 |
| 327 | ldo -16(%r30),%r29 /* Reference param save area */ | 326 | ldo -16(%r30),%r29 /* Reference param save area */ |
| @@ -350,7 +349,7 @@ tracesys_next: | |||
| 350 | tracesys_exit: | 349 | tracesys_exit: |
| 351 | ldo -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */ | 350 | ldo -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */ |
| 352 | LDREG TI_TASK(%r1), %r1 | 351 | LDREG TI_TASK(%r1), %r1 |
| 353 | #ifdef __LP64__ | 352 | #ifdef CONFIG_64BIT |
| 354 | ldo -16(%r30),%r29 /* Reference param save area */ | 353 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 355 | #endif | 354 | #endif |
| 356 | bl syscall_trace, %r2 | 355 | bl syscall_trace, %r2 |
| @@ -371,7 +370,7 @@ tracesys_exit: | |||
| 371 | tracesys_sigexit: | 370 | tracesys_sigexit: |
| 372 | ldo -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */ | 371 | ldo -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */ |
| 373 | LDREG 0(%r1), %r1 | 372 | LDREG 0(%r1), %r1 |
| 374 | #ifdef __LP64__ | 373 | #ifdef CONFIG_64BIT |
| 375 | ldo -16(%r30),%r29 /* Reference param save area */ | 374 | ldo -16(%r30),%r29 /* Reference param save area */ |
| 376 | #endif | 375 | #endif |
| 377 | bl syscall_trace, %r2 | 376 | bl syscall_trace, %r2 |
| @@ -404,7 +403,7 @@ lws_start: | |||
| 404 | gate .+8, %r0 | 403 | gate .+8, %r0 |
| 405 | depi 3, 31, 2, %r31 /* Ensure we return to userspace */ | 404 | depi 3, 31, 2, %r31 /* Ensure we return to userspace */ |
| 406 | 405 | ||
| 407 | #ifdef __LP64__ | 406 | #ifdef CONFIG_64BIT |
| 408 | /* FIXME: If we are a 64-bit kernel just | 407 | /* FIXME: If we are a 64-bit kernel just |
| 409 | * turn this on unconditionally. | 408 | * turn this on unconditionally. |
| 410 | */ | 409 | */ |
| @@ -440,7 +439,7 @@ lws_exit_nosys: | |||
| 440 | /* Fall through: Return to userspace */ | 439 | /* Fall through: Return to userspace */ |
| 441 | 440 | ||
| 442 | lws_exit: | 441 | lws_exit: |
| 443 | #ifdef __LP64__ | 442 | #ifdef CONFIG_64BIT |
| 444 | /* decide whether to reset the wide mode bit | 443 | /* decide whether to reset the wide mode bit |
| 445 | * | 444 | * |
| 446 | * For a syscall, the W bit is stored in the lowest bit | 445 | * For a syscall, the W bit is stored in the lowest bit |
| @@ -486,7 +485,7 @@ lws_exit: | |||
| 486 | 485 | ||
| 487 | /* ELF64 Process entry path */ | 486 | /* ELF64 Process entry path */ |
| 488 | lws_compare_and_swap64: | 487 | lws_compare_and_swap64: |
| 489 | #ifdef __LP64__ | 488 | #ifdef CONFIG_64BIT |
| 490 | b,n lws_compare_and_swap | 489 | b,n lws_compare_and_swap |
| 491 | #else | 490 | #else |
| 492 | /* If we are not a 64-bit kernel, then we don't | 491 | /* If we are not a 64-bit kernel, then we don't |
| @@ -497,7 +496,7 @@ lws_compare_and_swap64: | |||
| 497 | 496 | ||
| 498 | /* ELF32 Process entry path */ | 497 | /* ELF32 Process entry path */ |
| 499 | lws_compare_and_swap32: | 498 | lws_compare_and_swap32: |
| 500 | #ifdef __LP64__ | 499 | #ifdef CONFIG_64BIT |
| 501 | /* Clip all the input registers */ | 500 | /* Clip all the input registers */ |
| 502 | depdi 0, 31, 32, %r26 | 501 | depdi 0, 31, 32, %r26 |
| 503 | depdi 0, 31, 32, %r25 | 502 | depdi 0, 31, 32, %r25 |
| @@ -608,7 +607,7 @@ cas_action: | |||
| 608 | the other for the store. Either return -EFAULT. | 607 | the other for the store. Either return -EFAULT. |
| 609 | Each of the entries must be relocated. */ | 608 | Each of the entries must be relocated. */ |
| 610 | .section __ex_table,"aw" | 609 | .section __ex_table,"aw" |
| 611 | #ifdef __LP64__ | 610 | #ifdef CONFIG_64BIT |
| 612 | /* Pad the address calculation */ | 611 | /* Pad the address calculation */ |
| 613 | .word 0,(2b - linux_gateway_page) | 612 | .word 0,(2b - linux_gateway_page) |
| 614 | .word 0,(3b - linux_gateway_page) | 613 | .word 0,(3b - linux_gateway_page) |
| @@ -619,7 +618,7 @@ cas_action: | |||
| 619 | .previous | 618 | .previous |
| 620 | 619 | ||
| 621 | .section __ex_table,"aw" | 620 | .section __ex_table,"aw" |
| 622 | #ifdef __LP64__ | 621 | #ifdef CONFIG_64BIT |
| 623 | /* Pad the address calculation */ | 622 | /* Pad the address calculation */ |
| 624 | .word 0,(1b - linux_gateway_page) | 623 | .word 0,(1b - linux_gateway_page) |
| 625 | .word 0,(3b - linux_gateway_page) | 624 | .word 0,(3b - linux_gateway_page) |
| @@ -638,7 +637,7 @@ end_linux_gateway_page: | |||
| 638 | 637 | ||
| 639 | /* Relocate symbols assuming linux_gateway_page is mapped | 638 | /* Relocate symbols assuming linux_gateway_page is mapped |
| 640 | to virtual address 0x0 */ | 639 | to virtual address 0x0 */ |
| 641 | #ifdef __LP64__ | 640 | #ifdef CONFIG_64BIT |
| 642 | /* FIXME: The code will always be on the gateay page | 641 | /* FIXME: The code will always be on the gateay page |
| 643 | and thus it will be on the first 4k, the | 642 | and thus it will be on the first 4k, the |
| 644 | assembler seems to think that the final | 643 | assembler seems to think that the final |
| @@ -666,7 +665,7 @@ lws_table: | |||
| 666 | sys_call_table: | 665 | sys_call_table: |
| 667 | #include "syscall_table.S" | 666 | #include "syscall_table.S" |
| 668 | 667 | ||
| 669 | #ifdef __LP64__ | 668 | #ifdef CONFIG_64BIT |
| 670 | .align 4096 | 669 | .align 4096 |
| 671 | .export sys_call_table64 | 670 | .export sys_call_table64 |
| 672 | .Lsys_call_table64: | 671 | .Lsys_call_table64: |
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S index dcfa4d3d0e7d..32cbc0489324 100644 --- a/arch/parisc/kernel/syscall_table.S +++ b/arch/parisc/kernel/syscall_table.S | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | #undef ENTRY_UHOH | 35 | #undef ENTRY_UHOH |
| 36 | #undef ENTRY_COMP | 36 | #undef ENTRY_COMP |
| 37 | #undef ENTRY_OURS | 37 | #undef ENTRY_OURS |
| 38 | #if defined(__LP64__) && !defined(SYSCALL_TABLE_64BIT) | 38 | #if defined(CONFIG_64BIT) && !defined(SYSCALL_TABLE_64BIT) |
| 39 | /* Use ENTRY_SAME for 32-bit syscalls which are the same on wide and | 39 | /* Use ENTRY_SAME for 32-bit syscalls which are the same on wide and |
| 40 | * narrow palinux. Use ENTRY_DIFF for those where a 32-bit specific | 40 | * narrow palinux. Use ENTRY_DIFF for those where a 32-bit specific |
| 41 | * implementation is required on wide palinux. Use ENTRY_COMP where | 41 | * implementation is required on wide palinux. Use ENTRY_COMP where |
| @@ -46,7 +46,7 @@ | |||
| 46 | #define ENTRY_UHOH(_name_) .dword sys32_##unimplemented | 46 | #define ENTRY_UHOH(_name_) .dword sys32_##unimplemented |
| 47 | #define ENTRY_OURS(_name_) .dword parisc_##_name_ | 47 | #define ENTRY_OURS(_name_) .dword parisc_##_name_ |
| 48 | #define ENTRY_COMP(_name_) .dword compat_sys_##_name_ | 48 | #define ENTRY_COMP(_name_) .dword compat_sys_##_name_ |
| 49 | #elif defined(__LP64__) && defined(SYSCALL_TABLE_64BIT) | 49 | #elif defined(CONFIG_64BIT) && defined(SYSCALL_TABLE_64BIT) |
| 50 | #define ENTRY_SAME(_name_) .dword sys_##_name_ | 50 | #define ENTRY_SAME(_name_) .dword sys_##_name_ |
| 51 | #define ENTRY_DIFF(_name_) .dword sys_##_name_ | 51 | #define ENTRY_DIFF(_name_) .dword sys_##_name_ |
| 52 | #define ENTRY_UHOH(_name_) .dword sys_##_name_ | 52 | #define ENTRY_UHOH(_name_) .dword sys_##_name_ |
| @@ -368,5 +368,11 @@ | |||
| 368 | ENTRY_COMP(mbind) /* 260 */ | 368 | ENTRY_COMP(mbind) /* 260 */ |
| 369 | ENTRY_COMP(get_mempolicy) | 369 | ENTRY_COMP(get_mempolicy) |
| 370 | ENTRY_COMP(set_mempolicy) | 370 | ENTRY_COMP(set_mempolicy) |
| 371 | ENTRY_SAME(ni_syscall) /* 263: reserved for vserver */ | ||
| 372 | ENTRY_SAME(add_key) | ||
| 373 | ENTRY_SAME(request_key) /* 265 */ | ||
| 374 | ENTRY_SAME(keyctl) | ||
| 375 | ENTRY_SAME(ioprio_set) | ||
| 376 | ENTRY_SAME(ioprio_get) | ||
| 371 | /* Nothing yet */ | 377 | /* Nothing yet */ |
| 372 | 378 | ||
diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c index 7ff67f8e9f8c..bc979e1abdec 100644 --- a/arch/parisc/kernel/time.c +++ b/arch/parisc/kernel/time.c | |||
| @@ -89,14 +89,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 89 | } | 89 | } |
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | #ifdef CONFIG_CHASSIS_LCD_LED | ||
| 93 | /* Only schedule the led tasklet on cpu 0, and only if it | ||
| 94 | * is enabled. | ||
| 95 | */ | ||
| 96 | if (cpu == 0 && !atomic_read(&led_tasklet.count)) | ||
| 97 | tasklet_schedule(&led_tasklet); | ||
| 98 | #endif | ||
| 99 | |||
| 100 | /* check soft power switch status */ | 92 | /* check soft power switch status */ |
| 101 | if (cpu == 0 && !atomic_read(&power_tasklet.count)) | 93 | if (cpu == 0 && !atomic_read(&power_tasklet.count)) |
| 102 | tasklet_schedule(&power_tasklet); | 94 | tasklet_schedule(&power_tasklet); |
| @@ -104,6 +96,24 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 104 | return IRQ_HANDLED; | 96 | return IRQ_HANDLED; |
| 105 | } | 97 | } |
| 106 | 98 | ||
| 99 | |||
| 100 | unsigned long profile_pc(struct pt_regs *regs) | ||
| 101 | { | ||
| 102 | unsigned long pc = instruction_pointer(regs); | ||
| 103 | |||
| 104 | if (regs->gr[0] & PSW_N) | ||
| 105 | pc -= 4; | ||
| 106 | |||
| 107 | #ifdef CONFIG_SMP | ||
| 108 | if (in_lock_functions(pc)) | ||
| 109 | pc = regs->gr[2]; | ||
| 110 | #endif | ||
| 111 | |||
| 112 | return pc; | ||
| 113 | } | ||
| 114 | EXPORT_SYMBOL(profile_pc); | ||
| 115 | |||
| 116 | |||
| 107 | /*** converted from ia64 ***/ | 117 | /*** converted from ia64 ***/ |
| 108 | /* | 118 | /* |
| 109 | * Return the number of micro-seconds that elapsed since the last | 119 | * Return the number of micro-seconds that elapsed since the last |
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index d2e5b229a2f4..15914f0235a0 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c | |||
| @@ -74,7 +74,10 @@ void show_regs(struct pt_regs *regs) | |||
| 74 | char *level; | 74 | char *level; |
| 75 | unsigned long cr30; | 75 | unsigned long cr30; |
| 76 | unsigned long cr31; | 76 | unsigned long cr31; |
| 77 | 77 | /* carlos says that gcc understands better memory in a struct, | |
| 78 | * and it makes our life easier with fpregs -- T-Bone */ | ||
| 79 | struct { u32 sw[2]; } s; | ||
| 80 | |||
| 78 | level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT; | 81 | level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT; |
| 79 | 82 | ||
| 80 | printk("%s\n", level); /* don't want to have that pretty register dump messed up */ | 83 | printk("%s\n", level); /* don't want to have that pretty register dump messed up */ |
| @@ -103,11 +106,33 @@ void show_regs(struct pt_regs *regs) | |||
| 103 | printk("%s\n", buf); | 106 | printk("%s\n", buf); |
| 104 | } | 107 | } |
| 105 | 108 | ||
| 106 | #if RIDICULOUSLY_VERBOSE | 109 | /* FR are 64bit everywhere. Need to use asm to get the content |
| 107 | for (i = 0; i < 32; i += 2) | 110 | * of fpsr/fper1, and we assume that we won't have a FP Identify |
| 108 | printk("%sFR%02d : %016lx FR%2d : %016lx", level, i, | 111 | * in our way, otherwise we're screwed. |
| 109 | regs->fr[i], i+1, regs->fr[i+1]); | 112 | * The fldd is used to restore the T-bit if there was one, as the |
| 110 | #endif | 113 | * store clears it anyway. |
| 114 | * BTW, PA2.0 book says "thou shall not use fstw on FPSR/FPERs". */ | ||
| 115 | __asm__ ( | ||
| 116 | "fstd %%fr0,0(%1) \n\t" | ||
| 117 | "fldd 0(%1),%%fr0 \n\t" | ||
| 118 | : "=m" (s) : "r" (&s) : "%r0" | ||
| 119 | ); | ||
| 120 | |||
| 121 | printk("%s\n", level); | ||
| 122 | printk("%s VZOUICununcqcqcqcqcqcrmunTDVZOUI\n", level); | ||
| 123 | printbinary(buf, s.sw[0], 32); | ||
| 124 | printk("%sFPSR: %s\n", level, buf); | ||
| 125 | printk("%sFPER1: %08x\n", level, s.sw[1]); | ||
| 126 | |||
| 127 | /* here we'll print fr0 again, tho it'll be meaningless */ | ||
| 128 | for (i = 0; i < 32; i += 4) { | ||
| 129 | int j; | ||
| 130 | p = buf; | ||
| 131 | p += sprintf(p, "%sfr%02d-%02d ", level, i, i + 3); | ||
| 132 | for (j = 0; j < 4; j++) | ||
| 133 | p += sprintf(p, " %016llx", (i+j) == 0 ? 0 : regs->fr[i+j]); | ||
| 134 | printk("%s\n", buf); | ||
| 135 | } | ||
| 111 | 136 | ||
| 112 | cr30 = mfctl(30); | 137 | cr30 = mfctl(30); |
| 113 | cr31 = mfctl(31); | 138 | cr31 = mfctl(31); |
diff --git a/arch/parisc/kernel/unaligned.c b/arch/parisc/kernel/unaligned.c index 62eea35bcd69..eaae8a021f9f 100644 --- a/arch/parisc/kernel/unaligned.c +++ b/arch/parisc/kernel/unaligned.c | |||
| @@ -513,15 +513,18 @@ void handle_unaligned(struct pt_regs *regs) | |||
| 513 | register int flop=0; /* true if this is a flop */ | 513 | register int flop=0; /* true if this is a flop */ |
| 514 | 514 | ||
| 515 | /* log a message with pacing */ | 515 | /* log a message with pacing */ |
| 516 | if (user_mode(regs)) | 516 | if (user_mode(regs)) { |
| 517 | { | 517 | if (current->thread.flags & PARISC_UAC_SIGBUS) { |
| 518 | if (unaligned_count > 5 && jiffies - last_time > 5*HZ) | 518 | goto force_sigbus; |
| 519 | { | 519 | } |
| 520 | |||
| 521 | if (unaligned_count > 5 && jiffies - last_time > 5*HZ) { | ||
| 520 | unaligned_count = 0; | 522 | unaligned_count = 0; |
| 521 | last_time = jiffies; | 523 | last_time = jiffies; |
| 522 | } | 524 | } |
| 523 | if (++unaligned_count < 5) | 525 | |
| 524 | { | 526 | if (!(current->thread.flags & PARISC_UAC_NOPRINT) |
| 527 | && ++unaligned_count < 5) { | ||
| 525 | char buf[256]; | 528 | char buf[256]; |
| 526 | sprintf(buf, "%s(%d): unaligned access to 0x" RFMT " at ip=0x" RFMT "\n", | 529 | sprintf(buf, "%s(%d): unaligned access to 0x" RFMT " at ip=0x" RFMT "\n", |
| 527 | current->comm, current->pid, regs->ior, regs->iaoq[0]); | 530 | current->comm, current->pid, regs->ior, regs->iaoq[0]); |
| @@ -530,6 +533,7 @@ void handle_unaligned(struct pt_regs *regs) | |||
| 530 | show_regs(regs); | 533 | show_regs(regs); |
| 531 | #endif | 534 | #endif |
| 532 | } | 535 | } |
| 536 | |||
| 533 | if (!unaligned_enabled) | 537 | if (!unaligned_enabled) |
| 534 | goto force_sigbus; | 538 | goto force_sigbus; |
| 535 | } | 539 | } |
diff --git a/arch/parisc/lib/fixup.S b/arch/parisc/lib/fixup.S index 1b91612ed964..e0661c2978ed 100644 --- a/arch/parisc/lib/fixup.S +++ b/arch/parisc/lib/fixup.S | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | extrd,u \t2,63,32,\t2 | 35 | extrd,u \t2,63,32,\t2 |
| 36 | #endif | 36 | #endif |
| 37 | /* t2 = &__per_cpu_offset[smp_processor_id()]; */ | 37 | /* t2 = &__per_cpu_offset[smp_processor_id()]; */ |
| 38 | LDREG,s \t2(\t1),\t2 | 38 | LDREGX \t2(\t1),\t2 |
| 39 | addil LT%per_cpu__exception_data,%r27 | 39 | addil LT%per_cpu__exception_data,%r27 |
| 40 | LDREG RT%per_cpu__exception_data(%r1),\t1 | 40 | LDREG RT%per_cpu__exception_data(%r1),\t1 |
| 41 | /* t1 = &__get_cpu_var(exception_data) */ | 41 | /* t1 = &__get_cpu_var(exception_data) */ |
| @@ -53,6 +53,8 @@ | |||
| 53 | .endm | 53 | .endm |
| 54 | #endif | 54 | #endif |
| 55 | 55 | ||
| 56 | .level LEVEL | ||
| 57 | |||
| 56 | .text | 58 | .text |
| 57 | .section .fixup, "ax" | 59 | .section .fixup, "ax" |
| 58 | 60 | ||
diff --git a/arch/parisc/lib/memcpy.c b/arch/parisc/lib/memcpy.c index feb1b9f42c2b..b7098035321f 100644 --- a/arch/parisc/lib/memcpy.c +++ b/arch/parisc/lib/memcpy.c | |||
| @@ -339,6 +339,7 @@ unsigned long pa_memcpy(void *dstp, const void *srcp, unsigned long len) | |||
| 339 | pds = (double *)pcs; | 339 | pds = (double *)pcs; |
| 340 | pdd = (double *)pcd; | 340 | pdd = (double *)pcd; |
| 341 | 341 | ||
| 342 | #if 0 | ||
| 342 | /* Copy 8 doubles at a time */ | 343 | /* Copy 8 doubles at a time */ |
| 343 | while (len >= 8*sizeof(double)) { | 344 | while (len >= 8*sizeof(double)) { |
| 344 | register double r1, r2, r3, r4, r5, r6, r7, r8; | 345 | register double r1, r2, r3, r4, r5, r6, r7, r8; |
| @@ -366,6 +367,7 @@ unsigned long pa_memcpy(void *dstp, const void *srcp, unsigned long len) | |||
| 366 | fstdma(d_space, r8, pdd, pmc_store_exc); | 367 | fstdma(d_space, r8, pdd, pmc_store_exc); |
| 367 | len -= 8*sizeof(double); | 368 | len -= 8*sizeof(double); |
| 368 | } | 369 | } |
| 370 | #endif | ||
| 369 | 371 | ||
| 370 | pws = (unsigned int *)pds; | 372 | pws = (unsigned int *)pds; |
| 371 | pwd = (unsigned int *)pdd; | 373 | pwd = (unsigned int *)pdd; |
diff --git a/drivers/input/keyboard/hil_kbd.c b/drivers/input/keyboard/hil_kbd.c index ef78bffed5e7..0a90962c38e7 100644 --- a/drivers/input/keyboard/hil_kbd.c +++ b/drivers/input/keyboard/hil_kbd.c | |||
| @@ -204,7 +204,7 @@ static irqreturn_t hil_kbd_interrupt(struct serio *serio, | |||
| 204 | hil_packet packet; | 204 | hil_packet packet; |
| 205 | int idx; | 205 | int idx; |
| 206 | 206 | ||
| 207 | kbd = (struct hil_kbd *)serio->private; | 207 | kbd = serio_get_drvdata(serio); |
| 208 | if (kbd == NULL) { | 208 | if (kbd == NULL) { |
| 209 | BUG(); | 209 | BUG(); |
| 210 | return IRQ_HANDLED; | 210 | return IRQ_HANDLED; |
| @@ -234,7 +234,7 @@ static void hil_kbd_disconnect(struct serio *serio) | |||
| 234 | { | 234 | { |
| 235 | struct hil_kbd *kbd; | 235 | struct hil_kbd *kbd; |
| 236 | 236 | ||
| 237 | kbd = (struct hil_kbd *)serio->private; | 237 | kbd = serio_get_drvdata(serio); |
| 238 | if (kbd == NULL) { | 238 | if (kbd == NULL) { |
| 239 | BUG(); | 239 | BUG(); |
| 240 | return; | 240 | return; |
| @@ -245,20 +245,20 @@ static void hil_kbd_disconnect(struct serio *serio) | |||
| 245 | kfree(kbd); | 245 | kfree(kbd); |
| 246 | } | 246 | } |
| 247 | 247 | ||
| 248 | static void hil_kbd_connect(struct serio *serio, struct serio_driver *drv) | 248 | static int hil_kbd_connect(struct serio *serio, struct serio_driver *drv) |
| 249 | { | 249 | { |
| 250 | struct hil_kbd *kbd; | 250 | struct hil_kbd *kbd; |
| 251 | uint8_t did, *idd; | 251 | uint8_t did, *idd; |
| 252 | int i; | 252 | int i; |
| 253 | 253 | ||
| 254 | if (serio->type != (SERIO_HIL_MLC | SERIO_HIL)) return; | 254 | kbd = kmalloc(sizeof(*kbd), GFP_KERNEL); |
| 255 | 255 | if (!kbd) | |
| 256 | if (!(kbd = kmalloc(sizeof(struct hil_kbd), GFP_KERNEL))) return; | 256 | return -ENOMEM; |
| 257 | memset(kbd, 0, sizeof(struct hil_kbd)); | 257 | memset(kbd, 0, sizeof(struct hil_kbd)); |
| 258 | 258 | ||
| 259 | if (serio_open(serio, drv)) goto bail0; | 259 | if (serio_open(serio, drv)) goto bail0; |
| 260 | 260 | ||
| 261 | serio->private = kbd; | 261 | serio_set_drvdata(serio, kbd); |
| 262 | kbd->serio = serio; | 262 | kbd->serio = serio; |
| 263 | kbd->dev.private = kbd; | 263 | kbd->dev.private = kbd; |
| 264 | 264 | ||
| @@ -342,19 +342,31 @@ static void hil_kbd_connect(struct serio *serio, struct serio_driver *drv) | |||
| 342 | down(&(kbd->sem)); | 342 | down(&(kbd->sem)); |
| 343 | up(&(kbd->sem)); | 343 | up(&(kbd->sem)); |
| 344 | 344 | ||
| 345 | return; | 345 | return 0; |
| 346 | bail1: | 346 | bail1: |
| 347 | serio_close(serio); | 347 | serio_close(serio); |
| 348 | bail0: | 348 | bail0: |
| 349 | kfree(kbd); | 349 | kfree(kbd); |
| 350 | serio_set_drvdata(serio, NULL); | ||
| 351 | return -EIO; | ||
| 350 | } | 352 | } |
| 351 | 353 | ||
| 354 | static struct serio_device_id hil_kbd_ids[] = { | ||
| 355 | { | ||
| 356 | .type = SERIO_HIL_MLC, | ||
| 357 | .proto = SERIO_HIL, | ||
| 358 | .id = SERIO_ANY, | ||
| 359 | .extra = SERIO_ANY, | ||
| 360 | }, | ||
| 361 | { 0 } | ||
| 362 | }; | ||
| 352 | 363 | ||
| 353 | struct serio_driver hil_kbd_serio_drv = { | 364 | struct serio_driver hil_kbd_serio_drv = { |
| 354 | .driver = { | 365 | .driver = { |
| 355 | .name = "hil_kbd", | 366 | .name = "hil_kbd", |
| 356 | }, | 367 | }, |
| 357 | .description = "HP HIL keyboard driver", | 368 | .description = "HP HIL keyboard driver", |
| 369 | .id_table = hil_kbd_ids, | ||
| 358 | .connect = hil_kbd_connect, | 370 | .connect = hil_kbd_connect, |
| 359 | .disconnect = hil_kbd_disconnect, | 371 | .disconnect = hil_kbd_disconnect, |
| 360 | .interrupt = hil_kbd_interrupt | 372 | .interrupt = hil_kbd_interrupt |
diff --git a/drivers/input/keyboard/hilkbd.c b/drivers/input/keyboard/hilkbd.c index eecb77db0847..e95bc052e32a 100644 --- a/drivers/input/keyboard/hilkbd.c +++ b/drivers/input/keyboard/hilkbd.c | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | #include <linux/errno.h> | 22 | #include <linux/errno.h> |
| 23 | #include <linux/input.h> | 23 | #include <linux/input.h> |
| 24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
| 25 | #include <linux/irq.h> | 25 | #include <linux/interrupt.h> |
| 26 | #include <linux/hil.h> | 26 | #include <linux/hil.h> |
| 27 | #include <linux/spinlock.h> | 27 | #include <linux/spinlock.h> |
| 28 | 28 | ||
| @@ -278,11 +278,11 @@ static int __init | |||
| 278 | hil_init_chip(struct parisc_device *dev) | 278 | hil_init_chip(struct parisc_device *dev) |
| 279 | { | 279 | { |
| 280 | if (!dev->irq) { | 280 | if (!dev->irq) { |
| 281 | printk(KERN_WARNING "HIL: IRQ not found for HIL bus at 0x%08lx\n", dev->hpa); | 281 | printk(KERN_WARNING "HIL: IRQ not found for HIL bus at 0x%08lx\n", dev->hpa.start); |
| 282 | return -ENODEV; | 282 | return -ENODEV; |
| 283 | } | 283 | } |
| 284 | 284 | ||
| 285 | hil_base = dev->hpa; | 285 | hil_base = dev->hpa.start; |
| 286 | hil_irq = dev->irq; | 286 | hil_irq = dev->irq; |
| 287 | hil_dev.dev_id = dev; | 287 | hil_dev.dev_id = dev; |
| 288 | 288 | ||
| @@ -299,7 +299,7 @@ static struct parisc_device_id hil_tbl[] = { | |||
| 299 | MODULE_DEVICE_TABLE(parisc, hil_tbl); | 299 | MODULE_DEVICE_TABLE(parisc, hil_tbl); |
| 300 | 300 | ||
| 301 | static struct parisc_driver hil_driver = { | 301 | static struct parisc_driver hil_driver = { |
| 302 | .name = "HIL", | 302 | .name = "hil", |
| 303 | .id_table = hil_tbl, | 303 | .id_table = hil_tbl, |
| 304 | .probe = hil_init_chip, | 304 | .probe = hil_init_chip, |
| 305 | }; | 305 | }; |
diff --git a/drivers/input/mouse/hil_ptr.c b/drivers/input/mouse/hil_ptr.c index bc22849c6c79..c2bf2ed07dc6 100644 --- a/drivers/input/mouse/hil_ptr.c +++ b/drivers/input/mouse/hil_ptr.c | |||
| @@ -196,7 +196,7 @@ static irqreturn_t hil_ptr_interrupt(struct serio *serio, | |||
| 196 | hil_packet packet; | 196 | hil_packet packet; |
| 197 | int idx; | 197 | int idx; |
| 198 | 198 | ||
| 199 | ptr = (struct hil_ptr *)serio->private; | 199 | ptr = serio_get_drvdata(serio); |
| 200 | if (ptr == NULL) { | 200 | if (ptr == NULL) { |
| 201 | BUG(); | 201 | BUG(); |
| 202 | return IRQ_HANDLED; | 202 | return IRQ_HANDLED; |
| @@ -227,7 +227,7 @@ static void hil_ptr_disconnect(struct serio *serio) | |||
| 227 | { | 227 | { |
| 228 | struct hil_ptr *ptr; | 228 | struct hil_ptr *ptr; |
| 229 | 229 | ||
| 230 | ptr = (struct hil_ptr *)serio->private; | 230 | ptr = serio_get_drvdata(serio); |
| 231 | if (ptr == NULL) { | 231 | if (ptr == NULL) { |
| 232 | BUG(); | 232 | BUG(); |
| 233 | return; | 233 | return; |
| @@ -238,21 +238,19 @@ static void hil_ptr_disconnect(struct serio *serio) | |||
| 238 | kfree(ptr); | 238 | kfree(ptr); |
| 239 | } | 239 | } |
| 240 | 240 | ||
| 241 | static void hil_ptr_connect(struct serio *serio, struct serio_driver *driver) | 241 | static int hil_ptr_connect(struct serio *serio, struct serio_driver *driver) |
| 242 | { | 242 | { |
| 243 | struct hil_ptr *ptr; | 243 | struct hil_ptr *ptr; |
| 244 | char *txt; | 244 | char *txt; |
| 245 | unsigned int i, naxsets, btntype; | 245 | unsigned int i, naxsets, btntype; |
| 246 | uint8_t did, *idd; | 246 | uint8_t did, *idd; |
| 247 | 247 | ||
| 248 | if (serio->type != (SERIO_HIL_MLC | SERIO_HIL)) return; | 248 | if (!(ptr = kmalloc(sizeof(struct hil_ptr), GFP_KERNEL))) return -ENOMEM; |
| 249 | |||
| 250 | if (!(ptr = kmalloc(sizeof(struct hil_ptr), GFP_KERNEL))) return; | ||
| 251 | memset(ptr, 0, sizeof(struct hil_ptr)); | 249 | memset(ptr, 0, sizeof(struct hil_ptr)); |
| 252 | 250 | ||
| 253 | if (serio_open(serio, driver)) goto bail0; | 251 | if (serio_open(serio, driver)) goto bail0; |
| 254 | 252 | ||
| 255 | serio->private = ptr; | 253 | serio_set_drvdata(serio, ptr); |
| 256 | ptr->serio = serio; | 254 | ptr->serio = serio; |
| 257 | ptr->dev.private = ptr; | 255 | ptr->dev.private = ptr; |
| 258 | 256 | ||
| @@ -380,23 +378,34 @@ static void hil_ptr_connect(struct serio *serio, struct serio_driver *driver) | |||
| 380 | (btntype == BTN_MOUSE) ? "HIL mouse":"HIL tablet or touchpad", | 378 | (btntype == BTN_MOUSE) ? "HIL mouse":"HIL tablet or touchpad", |
| 381 | did); | 379 | did); |
| 382 | 380 | ||
| 383 | return; | 381 | return 0; |
| 384 | bail1: | 382 | bail1: |
| 385 | serio_close(serio); | 383 | serio_close(serio); |
| 386 | bail0: | 384 | bail0: |
| 387 | kfree(ptr); | 385 | kfree(ptr); |
| 388 | return; | 386 | serio_set_drvdata(serio, NULL); |
| 387 | return -ENODEV; | ||
| 389 | } | 388 | } |
| 390 | 389 | ||
| 390 | static struct serio_device_id hil_ptr_ids[] = { | ||
| 391 | { | ||
| 392 | .type = SERIO_HIL_MLC, | ||
| 393 | .proto = SERIO_HIL, | ||
| 394 | .id = SERIO_ANY, | ||
| 395 | .extra = SERIO_ANY, | ||
| 396 | }, | ||
| 397 | { 0 } | ||
| 398 | }; | ||
| 391 | 399 | ||
| 392 | static struct serio_driver hil_ptr_serio_driver = { | 400 | static struct serio_driver hil_ptr_serio_driver = { |
| 393 | .driver = { | 401 | .driver = { |
| 394 | .name = "hil_ptr", | 402 | .name = "hil_ptr", |
| 395 | }, | 403 | }, |
| 396 | .description = "HP HIL mouse/tablet driver", | 404 | .description = "HP HIL mouse/tablet driver", |
| 397 | .connect = hil_ptr_connect, | 405 | .id_table = hil_ptr_ids, |
| 398 | .disconnect = hil_ptr_disconnect, | 406 | .connect = hil_ptr_connect, |
| 399 | .interrupt = hil_ptr_interrupt | 407 | .disconnect = hil_ptr_disconnect, |
| 408 | .interrupt = hil_ptr_interrupt | ||
| 400 | }; | 409 | }; |
| 401 | 410 | ||
| 402 | static int __init hil_ptr_init(void) | 411 | static int __init hil_ptr_init(void) |
diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c index 897e4c12b642..a7b0de0f92b2 100644 --- a/drivers/input/serio/gscps2.c +++ b/drivers/input/serio/gscps2.c | |||
| @@ -211,9 +211,6 @@ static void gscps2_reset(struct gscps2port *ps2port) | |||
| 211 | writeb(0xff, addr+GSC_RESET); | 211 | writeb(0xff, addr+GSC_RESET); |
| 212 | gscps2_flush(ps2port); | 212 | gscps2_flush(ps2port); |
| 213 | spin_unlock_irqrestore(&ps2port->lock, flags); | 213 | spin_unlock_irqrestore(&ps2port->lock, flags); |
| 214 | |||
| 215 | /* enable it */ | ||
| 216 | gscps2_enable(ps2port, ENABLE); | ||
| 217 | } | 214 | } |
| 218 | 215 | ||
| 219 | static LIST_HEAD(ps2port_list); | 216 | static LIST_HEAD(ps2port_list); |
| @@ -307,6 +304,9 @@ static int gscps2_open(struct serio *port) | |||
| 307 | 304 | ||
| 308 | gscps2_reset(ps2port); | 305 | gscps2_reset(ps2port); |
| 309 | 306 | ||
| 307 | /* enable it */ | ||
| 308 | gscps2_enable(ps2port, ENABLE); | ||
| 309 | |||
| 310 | gscps2_interrupt(0, NULL, NULL); | 310 | gscps2_interrupt(0, NULL, NULL); |
| 311 | 311 | ||
| 312 | return 0; | 312 | return 0; |
| @@ -331,7 +331,7 @@ static int __init gscps2_probe(struct parisc_device *dev) | |||
| 331 | { | 331 | { |
| 332 | struct gscps2port *ps2port; | 332 | struct gscps2port *ps2port; |
| 333 | struct serio *serio; | 333 | struct serio *serio; |
| 334 | unsigned long hpa = dev->hpa; | 334 | unsigned long hpa = dev->hpa.start; |
| 335 | int ret; | 335 | int ret; |
| 336 | 336 | ||
| 337 | if (!dev->irq) | 337 | if (!dev->irq) |
| @@ -370,8 +370,6 @@ static int __init gscps2_probe(struct parisc_device *dev) | |||
| 370 | serio->port_data = ps2port; | 370 | serio->port_data = ps2port; |
| 371 | serio->dev.parent = &dev->dev; | 371 | serio->dev.parent = &dev->dev; |
| 372 | 372 | ||
| 373 | list_add_tail(&ps2port->node, &ps2port_list); | ||
| 374 | |||
| 375 | ret = -EBUSY; | 373 | ret = -EBUSY; |
| 376 | if (request_irq(dev->irq, gscps2_interrupt, SA_SHIRQ, ps2port->port->name, ps2port)) | 374 | if (request_irq(dev->irq, gscps2_interrupt, SA_SHIRQ, ps2port->port->name, ps2port)) |
| 377 | goto fail_miserably; | 375 | goto fail_miserably; |
| @@ -396,15 +394,16 @@ static int __init gscps2_probe(struct parisc_device *dev) | |||
| 396 | 394 | ||
| 397 | serio_register_port(ps2port->port); | 395 | serio_register_port(ps2port->port); |
| 398 | 396 | ||
| 397 | list_add_tail(&ps2port->node, &ps2port_list); | ||
| 398 | |||
| 399 | return 0; | 399 | return 0; |
| 400 | 400 | ||
| 401 | fail: | 401 | fail: |
| 402 | free_irq(dev->irq, ps2port); | 402 | free_irq(dev->irq, ps2port); |
| 403 | 403 | ||
| 404 | fail_miserably: | 404 | fail_miserably: |
| 405 | list_del(&ps2port->node); | ||
| 406 | iounmap(ps2port->addr); | 405 | iounmap(ps2port->addr); |
| 407 | release_mem_region(dev->hpa, GSC_STATUS + 4); | 406 | release_mem_region(dev->hpa.start, GSC_STATUS + 4); |
| 408 | 407 | ||
| 409 | fail_nomem: | 408 | fail_nomem: |
| 410 | kfree(ps2port); | 409 | kfree(ps2port); |
| @@ -444,7 +443,7 @@ static struct parisc_device_id gscps2_device_tbl[] = { | |||
| 444 | }; | 443 | }; |
| 445 | 444 | ||
| 446 | static struct parisc_driver parisc_ps2_driver = { | 445 | static struct parisc_driver parisc_ps2_driver = { |
| 447 | .name = "GSC PS2", | 446 | .name = "gsc_ps2", |
| 448 | .id_table = gscps2_device_tbl, | 447 | .id_table = gscps2_device_tbl, |
| 449 | .probe = gscps2_probe, | 448 | .probe = gscps2_probe, |
| 450 | .remove = gscps2_remove, | 449 | .remove = gscps2_remove, |
diff --git a/drivers/input/serio/hil_mlc.c b/drivers/input/serio/hil_mlc.c index c243cb6fdfc4..5704204964a3 100644 --- a/drivers/input/serio/hil_mlc.c +++ b/drivers/input/serio/hil_mlc.c | |||
| @@ -801,7 +801,8 @@ static int hil_mlc_serio_open(struct serio *serio) { | |||
| 801 | struct hil_mlc_serio_map *map; | 801 | struct hil_mlc_serio_map *map; |
| 802 | struct hil_mlc *mlc; | 802 | struct hil_mlc *mlc; |
| 803 | 803 | ||
| 804 | if (serio->private != NULL) return -EBUSY; | 804 | if (serio_get_drvdata(serio) != NULL) |
| 805 | return -EBUSY; | ||
| 805 | 806 | ||
| 806 | map = serio->port_data; | 807 | map = serio->port_data; |
| 807 | if (map == NULL) { | 808 | if (map == NULL) { |
| @@ -832,11 +833,18 @@ static void hil_mlc_serio_close(struct serio *serio) { | |||
| 832 | return; | 833 | return; |
| 833 | } | 834 | } |
| 834 | 835 | ||
| 835 | serio->private = NULL; | 836 | serio_set_drvdata(serio, NULL); |
| 836 | serio->drv = NULL; | 837 | serio->drv = NULL; |
| 837 | /* TODO wake up interruptable */ | 838 | /* TODO wake up interruptable */ |
| 838 | } | 839 | } |
| 839 | 840 | ||
| 841 | static struct serio_device_id hil_mlc_serio_id = { | ||
| 842 | .type = SERIO_HIL_MLC, | ||
| 843 | .proto = SERIO_HIL, | ||
| 844 | .extra = SERIO_ANY, | ||
| 845 | .id = SERIO_ANY, | ||
| 846 | }; | ||
| 847 | |||
| 840 | int hil_mlc_register(hil_mlc *mlc) { | 848 | int hil_mlc_register(hil_mlc *mlc) { |
| 841 | int i; | 849 | int i; |
| 842 | unsigned long flags; | 850 | unsigned long flags; |
| @@ -867,7 +875,7 @@ int hil_mlc_register(hil_mlc *mlc) { | |||
| 867 | mlc_serio = kmalloc(sizeof(*mlc_serio), GFP_KERNEL); | 875 | mlc_serio = kmalloc(sizeof(*mlc_serio), GFP_KERNEL); |
| 868 | mlc->serio[i] = mlc_serio; | 876 | mlc->serio[i] = mlc_serio; |
| 869 | memset(mlc_serio, 0, sizeof(*mlc_serio)); | 877 | memset(mlc_serio, 0, sizeof(*mlc_serio)); |
| 870 | mlc_serio->type = SERIO_HIL | SERIO_HIL_MLC; | 878 | mlc_serio->id = hil_mlc_serio_id; |
| 871 | mlc_serio->write = hil_mlc_serio_write; | 879 | mlc_serio->write = hil_mlc_serio_write; |
| 872 | mlc_serio->open = hil_mlc_serio_open; | 880 | mlc_serio->open = hil_mlc_serio_open; |
| 873 | mlc_serio->close = hil_mlc_serio_close; | 881 | mlc_serio->close = hil_mlc_serio_close; |
diff --git a/drivers/input/serio/hp_sdc.c b/drivers/input/serio/hp_sdc.c index 7629452dd64b..a10348bb25e9 100644 --- a/drivers/input/serio/hp_sdc.c +++ b/drivers/input/serio/hp_sdc.c | |||
| @@ -764,7 +764,7 @@ MODULE_DEVICE_TABLE(parisc, hp_sdc_tbl); | |||
| 764 | static int __init hp_sdc_init_hppa(struct parisc_device *d); | 764 | static int __init hp_sdc_init_hppa(struct parisc_device *d); |
| 765 | 765 | ||
| 766 | static struct parisc_driver hp_sdc_driver = { | 766 | static struct parisc_driver hp_sdc_driver = { |
| 767 | .name = "HP SDC", | 767 | .name = "hp_sdc", |
| 768 | .id_table = hp_sdc_tbl, | 768 | .id_table = hp_sdc_tbl, |
| 769 | .probe = hp_sdc_init_hppa, | 769 | .probe = hp_sdc_init_hppa, |
| 770 | }; | 770 | }; |
| @@ -875,9 +875,9 @@ static int __init hp_sdc_init_hppa(struct parisc_device *d) | |||
| 875 | hp_sdc.dev = d; | 875 | hp_sdc.dev = d; |
| 876 | hp_sdc.irq = d->irq; | 876 | hp_sdc.irq = d->irq; |
| 877 | hp_sdc.nmi = d->aux_irq; | 877 | hp_sdc.nmi = d->aux_irq; |
| 878 | hp_sdc.base_io = d->hpa; | 878 | hp_sdc.base_io = d->hpa.start; |
| 879 | hp_sdc.data_io = d->hpa + 0x800; | 879 | hp_sdc.data_io = d->hpa.start + 0x800; |
| 880 | hp_sdc.status_io = d->hpa + 0x801; | 880 | hp_sdc.status_io = d->hpa.start + 0x801; |
| 881 | 881 | ||
| 882 | return hp_sdc_init(); | 882 | return hp_sdc_init(); |
| 883 | } | 883 | } |
diff --git a/drivers/net/lasi_82596.c b/drivers/net/lasi_82596.c index 41bad07ac1ac..f7b7238d8352 100644 --- a/drivers/net/lasi_82596.c +++ b/drivers/net/lasi_82596.c | |||
| @@ -415,6 +415,10 @@ static int rx_ring_size = RX_RING_SIZE; | |||
| 415 | static int ticks_limit = 100; | 415 | static int ticks_limit = 100; |
| 416 | static int max_cmd_backlog = TX_RING_SIZE-1; | 416 | static int max_cmd_backlog = TX_RING_SIZE-1; |
| 417 | 417 | ||
| 418 | #ifdef CONFIG_NET_POLL_CONTROLLER | ||
| 419 | static void i596_poll_controller(struct net_device *dev); | ||
| 420 | #endif | ||
| 421 | |||
| 418 | 422 | ||
| 419 | static inline void CA(struct net_device *dev) | 423 | static inline void CA(struct net_device *dev) |
| 420 | { | 424 | { |
| @@ -636,11 +640,11 @@ static int init_i596_mem(struct net_device *dev) | |||
| 636 | 640 | ||
| 637 | disable_irq(dev->irq); /* disable IRQs from LAN */ | 641 | disable_irq(dev->irq); /* disable IRQs from LAN */ |
| 638 | DEB(DEB_INIT, | 642 | DEB(DEB_INIT, |
| 639 | printk("RESET 82596 port: %p (with IRQ %d disabled)\n", | 643 | printk("RESET 82596 port: %lx (with IRQ %d disabled)\n", |
| 640 | (void*)(dev->base_addr + PA_I82596_RESET), | 644 | (dev->base_addr + PA_I82596_RESET), |
| 641 | dev->irq)); | 645 | dev->irq)); |
| 642 | 646 | ||
| 643 | gsc_writel(0, (void*)(dev->base_addr + PA_I82596_RESET)); /* Hard Reset */ | 647 | gsc_writel(0, (dev->base_addr + PA_I82596_RESET)); /* Hard Reset */ |
| 644 | udelay(100); /* Wait 100us - seems to help */ | 648 | udelay(100); /* Wait 100us - seems to help */ |
| 645 | 649 | ||
| 646 | /* change the scp address */ | 650 | /* change the scp address */ |
| @@ -1209,6 +1213,9 @@ static int __devinit i82596_probe(struct net_device *dev, | |||
| 1209 | dev->set_multicast_list = set_multicast_list; | 1213 | dev->set_multicast_list = set_multicast_list; |
| 1210 | dev->tx_timeout = i596_tx_timeout; | 1214 | dev->tx_timeout = i596_tx_timeout; |
| 1211 | dev->watchdog_timeo = TX_TIMEOUT; | 1215 | dev->watchdog_timeo = TX_TIMEOUT; |
| 1216 | #ifdef CONFIG_NET_POLL_CONTROLLER | ||
| 1217 | dev->poll_controller = i596_poll_controller; | ||
| 1218 | #endif | ||
| 1212 | 1219 | ||
| 1213 | dev->priv = (void *)(dev->mem_start); | 1220 | dev->priv = (void *)(dev->mem_start); |
| 1214 | 1221 | ||
| @@ -1242,6 +1249,14 @@ static int __devinit i82596_probe(struct net_device *dev, | |||
| 1242 | return 0; | 1249 | return 0; |
| 1243 | } | 1250 | } |
| 1244 | 1251 | ||
| 1252 | #ifdef CONFIG_NET_POLL_CONTROLLER | ||
| 1253 | static void i596_poll_controller(struct net_device *dev) | ||
| 1254 | { | ||
| 1255 | disable_irq(dev->irq); | ||
| 1256 | i596_interrupt(dev->irq, dev, NULL); | ||
| 1257 | enable_irq(dev->irq); | ||
| 1258 | } | ||
| 1259 | #endif | ||
| 1245 | 1260 | ||
| 1246 | static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs) | 1261 | static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs) |
| 1247 | { | 1262 | { |
| @@ -1528,17 +1543,18 @@ lan_init_chip(struct parisc_device *dev) | |||
| 1528 | 1543 | ||
| 1529 | if (!dev->irq) { | 1544 | if (!dev->irq) { |
| 1530 | printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n", | 1545 | printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n", |
| 1531 | __FILE__, dev->hpa); | 1546 | __FILE__, dev->hpa.start); |
| 1532 | return -ENODEV; | 1547 | return -ENODEV; |
| 1533 | } | 1548 | } |
| 1534 | 1549 | ||
| 1535 | printk(KERN_INFO "Found i82596 at 0x%lx, IRQ %d\n", dev->hpa, dev->irq); | 1550 | printk(KERN_INFO "Found i82596 at 0x%lx, IRQ %d\n", dev->hpa.start, |
| 1551 | dev->irq); | ||
| 1536 | 1552 | ||
| 1537 | netdevice = alloc_etherdev(0); | 1553 | netdevice = alloc_etherdev(0); |
| 1538 | if (!netdevice) | 1554 | if (!netdevice) |
| 1539 | return -ENOMEM; | 1555 | return -ENOMEM; |
| 1540 | 1556 | ||
| 1541 | netdevice->base_addr = dev->hpa; | 1557 | netdevice->base_addr = dev->hpa.start; |
| 1542 | netdevice->irq = dev->irq; | 1558 | netdevice->irq = dev->irq; |
| 1543 | 1559 | ||
| 1544 | retval = i82596_probe(netdevice, &dev->dev); | 1560 | retval = i82596_probe(netdevice, &dev->dev); |
| @@ -1566,7 +1582,7 @@ static struct parisc_device_id lan_tbl[] = { | |||
| 1566 | MODULE_DEVICE_TABLE(parisc, lan_tbl); | 1582 | MODULE_DEVICE_TABLE(parisc, lan_tbl); |
| 1567 | 1583 | ||
| 1568 | static struct parisc_driver lan_driver = { | 1584 | static struct parisc_driver lan_driver = { |
| 1569 | .name = "Apricot", | 1585 | .name = "lasi_82596", |
| 1570 | .id_table = lan_tbl, | 1586 | .id_table = lan_tbl, |
| 1571 | .probe = lan_init_chip, | 1587 | .probe = lan_init_chip, |
| 1572 | }; | 1588 | }; |
diff --git a/drivers/parisc/asp.c b/drivers/parisc/asp.c index 388609967133..558420bc9f88 100644 --- a/drivers/parisc/asp.c +++ b/drivers/parisc/asp.c | |||
| @@ -77,12 +77,12 @@ asp_init_chip(struct parisc_device *dev) | |||
| 77 | struct gsc_irq gsc_irq; | 77 | struct gsc_irq gsc_irq; |
| 78 | int ret; | 78 | int ret; |
| 79 | 79 | ||
| 80 | asp.version = gsc_readb(dev->hpa + ASP_VER_OFFSET) & 0xf; | 80 | asp.version = gsc_readb(dev->hpa.start + ASP_VER_OFFSET) & 0xf; |
| 81 | asp.name = (asp.version == 1) ? "Asp" : "Cutoff"; | 81 | asp.name = (asp.version == 1) ? "Asp" : "Cutoff"; |
| 82 | asp.hpa = ASP_INTERRUPT_ADDR; | 82 | asp.hpa = ASP_INTERRUPT_ADDR; |
| 83 | 83 | ||
| 84 | printk(KERN_INFO "%s version %d at 0x%lx found.\n", | 84 | printk(KERN_INFO "%s version %d at 0x%lx found.\n", |
| 85 | asp.name, asp.version, dev->hpa); | 85 | asp.name, asp.version, dev->hpa.start); |
| 86 | 86 | ||
| 87 | /* the IRQ ASP should use */ | 87 | /* the IRQ ASP should use */ |
| 88 | ret = -EBUSY; | 88 | ret = -EBUSY; |
| @@ -126,7 +126,7 @@ static struct parisc_device_id asp_tbl[] = { | |||
| 126 | }; | 126 | }; |
| 127 | 127 | ||
| 128 | struct parisc_driver asp_driver = { | 128 | struct parisc_driver asp_driver = { |
| 129 | .name = "Asp", | 129 | .name = "asp", |
| 130 | .id_table = asp_tbl, | 130 | .id_table = asp_tbl, |
| 131 | .probe = asp_init_chip, | 131 | .probe = asp_init_chip, |
| 132 | }; | 132 | }; |
diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c index a3bd91a61827..9e0229f7e25f 100644 --- a/drivers/parisc/ccio-dma.c +++ b/drivers/parisc/ccio-dma.c | |||
| @@ -100,9 +100,9 @@ | |||
| 100 | #define DBG_RUN_SG(x...) | 100 | #define DBG_RUN_SG(x...) |
| 101 | #endif | 101 | #endif |
| 102 | 102 | ||
| 103 | #define CCIO_INLINE /* inline */ | 103 | #define CCIO_INLINE inline |
| 104 | #define WRITE_U32(value, addr) gsc_writel(value, (u32 *)(addr)) | 104 | #define WRITE_U32(value, addr) __raw_writel(value, addr) |
| 105 | #define READ_U32(addr) gsc_readl((u32 *)(addr)) | 105 | #define READ_U32(addr) __raw_readl(addr) |
| 106 | 106 | ||
| 107 | #define U2_IOA_RUNWAY 0x580 | 107 | #define U2_IOA_RUNWAY 0x580 |
| 108 | #define U2_BC_GSC 0x501 | 108 | #define U2_BC_GSC 0x501 |
| @@ -115,28 +115,28 @@ | |||
| 115 | 115 | ||
| 116 | struct ioa_registers { | 116 | struct ioa_registers { |
| 117 | /* Runway Supervisory Set */ | 117 | /* Runway Supervisory Set */ |
| 118 | volatile int32_t unused1[12]; | 118 | int32_t unused1[12]; |
| 119 | volatile uint32_t io_command; /* Offset 12 */ | 119 | uint32_t io_command; /* Offset 12 */ |
| 120 | volatile uint32_t io_status; /* Offset 13 */ | 120 | uint32_t io_status; /* Offset 13 */ |
| 121 | volatile uint32_t io_control; /* Offset 14 */ | 121 | uint32_t io_control; /* Offset 14 */ |
| 122 | volatile int32_t unused2[1]; | 122 | int32_t unused2[1]; |
| 123 | 123 | ||
| 124 | /* Runway Auxiliary Register Set */ | 124 | /* Runway Auxiliary Register Set */ |
| 125 | volatile uint32_t io_err_resp; /* Offset 0 */ | 125 | uint32_t io_err_resp; /* Offset 0 */ |
| 126 | volatile uint32_t io_err_info; /* Offset 1 */ | 126 | uint32_t io_err_info; /* Offset 1 */ |
| 127 | volatile uint32_t io_err_req; /* Offset 2 */ | 127 | uint32_t io_err_req; /* Offset 2 */ |
| 128 | volatile uint32_t io_err_resp_hi; /* Offset 3 */ | 128 | uint32_t io_err_resp_hi; /* Offset 3 */ |
| 129 | volatile uint32_t io_tlb_entry_m; /* Offset 4 */ | 129 | uint32_t io_tlb_entry_m; /* Offset 4 */ |
| 130 | volatile uint32_t io_tlb_entry_l; /* Offset 5 */ | 130 | uint32_t io_tlb_entry_l; /* Offset 5 */ |
| 131 | volatile uint32_t unused3[1]; | 131 | uint32_t unused3[1]; |
| 132 | volatile uint32_t io_pdir_base; /* Offset 7 */ | 132 | uint32_t io_pdir_base; /* Offset 7 */ |
| 133 | volatile uint32_t io_io_low_hv; /* Offset 8 */ | 133 | uint32_t io_io_low_hv; /* Offset 8 */ |
| 134 | volatile uint32_t io_io_high_hv; /* Offset 9 */ | 134 | uint32_t io_io_high_hv; /* Offset 9 */ |
| 135 | volatile uint32_t unused4[1]; | 135 | uint32_t unused4[1]; |
| 136 | volatile uint32_t io_chain_id_mask; /* Offset 11 */ | 136 | uint32_t io_chain_id_mask; /* Offset 11 */ |
| 137 | volatile uint32_t unused5[2]; | 137 | uint32_t unused5[2]; |
| 138 | volatile uint32_t io_io_low; /* Offset 14 */ | 138 | uint32_t io_io_low; /* Offset 14 */ |
| 139 | volatile uint32_t io_io_high; /* Offset 15 */ | 139 | uint32_t io_io_high; /* Offset 15 */ |
| 140 | }; | 140 | }; |
| 141 | 141 | ||
| 142 | /* | 142 | /* |
| @@ -226,7 +226,7 @@ struct ioa_registers { | |||
| 226 | */ | 226 | */ |
| 227 | 227 | ||
| 228 | struct ioc { | 228 | struct ioc { |
| 229 | struct ioa_registers *ioc_hpa; /* I/O MMU base address */ | 229 | struct ioa_registers __iomem *ioc_regs; /* I/O MMU base address */ |
| 230 | u8 *res_map; /* resource map, bit == pdir entry */ | 230 | u8 *res_map; /* resource map, bit == pdir entry */ |
| 231 | u64 *pdir_base; /* physical base address */ | 231 | u64 *pdir_base; /* physical base address */ |
| 232 | u32 pdir_size; /* bytes, function of IOV Space size */ | 232 | u32 pdir_size; /* bytes, function of IOV Space size */ |
| @@ -595,7 +595,7 @@ ccio_io_pdir_entry(u64 *pdir_ptr, space_t sid, unsigned long vba, | |||
| 595 | ** Grab virtual index [0:11] | 595 | ** Grab virtual index [0:11] |
| 596 | ** Deposit virt_idx bits into I/O PDIR word | 596 | ** Deposit virt_idx bits into I/O PDIR word |
| 597 | */ | 597 | */ |
| 598 | asm volatile ("lci 0(%%sr1, %1), %0" : "=r" (ci) : "r" (vba)); | 598 | asm volatile ("lci %%r0(%%sr1, %1), %0" : "=r" (ci) : "r" (vba)); |
| 599 | asm volatile ("extru %1,19,12,%0" : "+r" (ci) : "r" (ci)); | 599 | asm volatile ("extru %1,19,12,%0" : "+r" (ci) : "r" (ci)); |
| 600 | asm volatile ("depw %1,15,12,%0" : "+r" (pa) : "r" (ci)); | 600 | asm volatile ("depw %1,15,12,%0" : "+r" (pa) : "r" (ci)); |
| 601 | 601 | ||
| @@ -613,7 +613,7 @@ ccio_io_pdir_entry(u64 *pdir_ptr, space_t sid, unsigned long vba, | |||
| 613 | ** the real mode coherence index generation of U2, the PDIR entry | 613 | ** the real mode coherence index generation of U2, the PDIR entry |
| 614 | ** must be flushed to memory to retain coherence." | 614 | ** must be flushed to memory to retain coherence." |
| 615 | */ | 615 | */ |
| 616 | asm volatile("fdc 0(%0)" : : "r" (pdir_ptr)); | 616 | asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr)); |
| 617 | asm volatile("sync"); | 617 | asm volatile("sync"); |
| 618 | } | 618 | } |
| 619 | 619 | ||
| @@ -636,7 +636,7 @@ ccio_clear_io_tlb(struct ioc *ioc, dma_addr_t iovp, size_t byte_cnt) | |||
| 636 | byte_cnt += chain_size; | 636 | byte_cnt += chain_size; |
| 637 | 637 | ||
| 638 | while(byte_cnt > chain_size) { | 638 | while(byte_cnt > chain_size) { |
| 639 | WRITE_U32(CMD_TLB_PURGE | iovp, &ioc->ioc_hpa->io_command); | 639 | WRITE_U32(CMD_TLB_PURGE | iovp, &ioc->ioc_regs->io_command); |
| 640 | iovp += chain_size; | 640 | iovp += chain_size; |
| 641 | byte_cnt -= chain_size; | 641 | byte_cnt -= chain_size; |
| 642 | } | 642 | } |
| @@ -684,7 +684,7 @@ ccio_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) | |||
| 684 | ** Hopefully someone figures out how to patch (NOP) the | 684 | ** Hopefully someone figures out how to patch (NOP) the |
| 685 | ** FDC/SYNC out at boot time. | 685 | ** FDC/SYNC out at boot time. |
| 686 | */ | 686 | */ |
| 687 | asm volatile("fdc 0(%0)" : : "r" (pdir_ptr[7])); | 687 | asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr[7])); |
| 688 | 688 | ||
| 689 | iovp += IOVP_SIZE; | 689 | iovp += IOVP_SIZE; |
| 690 | byte_cnt -= IOVP_SIZE; | 690 | byte_cnt -= IOVP_SIZE; |
| @@ -1251,7 +1251,7 @@ static struct parisc_device_id ccio_tbl[] = { | |||
| 1251 | static int ccio_probe(struct parisc_device *dev); | 1251 | static int ccio_probe(struct parisc_device *dev); |
| 1252 | 1252 | ||
| 1253 | static struct parisc_driver ccio_driver = { | 1253 | static struct parisc_driver ccio_driver = { |
| 1254 | .name = "U2:Uturn", | 1254 | .name = "ccio", |
| 1255 | .id_table = ccio_tbl, | 1255 | .id_table = ccio_tbl, |
| 1256 | .probe = ccio_probe, | 1256 | .probe = ccio_probe, |
| 1257 | }; | 1257 | }; |
| @@ -1314,14 +1314,13 @@ ccio_ioc_init(struct ioc *ioc) | |||
| 1314 | 1314 | ||
| 1315 | ioc->pdir_size = (iova_space_size / IOVP_SIZE) * sizeof(u64); | 1315 | ioc->pdir_size = (iova_space_size / IOVP_SIZE) * sizeof(u64); |
| 1316 | 1316 | ||
| 1317 | BUG_ON(ioc->pdir_size >= 4 * 1024 * 1024); /* max pdir size < 4MB */ | 1317 | BUG_ON(ioc->pdir_size > 8 * 1024 * 1024); /* max pdir size <= 8MB */ |
| 1318 | 1318 | ||
| 1319 | /* Verify it's a power of two */ | 1319 | /* Verify it's a power of two */ |
| 1320 | BUG_ON((1 << get_order(ioc->pdir_size)) != (ioc->pdir_size >> PAGE_SHIFT)); | 1320 | BUG_ON((1 << get_order(ioc->pdir_size)) != (ioc->pdir_size >> PAGE_SHIFT)); |
| 1321 | 1321 | ||
| 1322 | DBG_INIT("%s() hpa 0x%lx mem %luMB IOV %dMB (%d bits)\n", | 1322 | DBG_INIT("%s() hpa 0x%p mem %luMB IOV %dMB (%d bits)\n", |
| 1323 | __FUNCTION__, | 1323 | __FUNCTION__, ioc->ioc_regs, |
| 1324 | ioc->ioc_hpa, | ||
| 1325 | (unsigned long) num_physpages >> (20 - PAGE_SHIFT), | 1324 | (unsigned long) num_physpages >> (20 - PAGE_SHIFT), |
| 1326 | iova_space_size>>20, | 1325 | iova_space_size>>20, |
| 1327 | iov_order + PAGE_SHIFT); | 1326 | iov_order + PAGE_SHIFT); |
| @@ -1329,13 +1328,12 @@ ccio_ioc_init(struct ioc *ioc) | |||
| 1329 | ioc->pdir_base = (u64 *)__get_free_pages(GFP_KERNEL, | 1328 | ioc->pdir_base = (u64 *)__get_free_pages(GFP_KERNEL, |
| 1330 | get_order(ioc->pdir_size)); | 1329 | get_order(ioc->pdir_size)); |
| 1331 | if(NULL == ioc->pdir_base) { | 1330 | if(NULL == ioc->pdir_base) { |
| 1332 | panic("%s:%s() could not allocate I/O Page Table\n", __FILE__, | 1331 | panic("%s() could not allocate I/O Page Table\n", __FUNCTION__); |
| 1333 | __FUNCTION__); | ||
| 1334 | } | 1332 | } |
| 1335 | memset(ioc->pdir_base, 0, ioc->pdir_size); | 1333 | memset(ioc->pdir_base, 0, ioc->pdir_size); |
| 1336 | 1334 | ||
| 1337 | BUG_ON((((unsigned long)ioc->pdir_base) & PAGE_MASK) != (unsigned long)ioc->pdir_base); | 1335 | BUG_ON((((unsigned long)ioc->pdir_base) & PAGE_MASK) != (unsigned long)ioc->pdir_base); |
| 1338 | DBG_INIT(" base %p", ioc->pdir_base); | 1336 | DBG_INIT(" base %p\n", ioc->pdir_base); |
| 1339 | 1337 | ||
| 1340 | /* resource map size dictated by pdir_size */ | 1338 | /* resource map size dictated by pdir_size */ |
| 1341 | ioc->res_size = (ioc->pdir_size / sizeof(u64)) >> 3; | 1339 | ioc->res_size = (ioc->pdir_size / sizeof(u64)) >> 3; |
| @@ -1344,8 +1342,7 @@ ccio_ioc_init(struct ioc *ioc) | |||
| 1344 | ioc->res_map = (u8 *)__get_free_pages(GFP_KERNEL, | 1342 | ioc->res_map = (u8 *)__get_free_pages(GFP_KERNEL, |
| 1345 | get_order(ioc->res_size)); | 1343 | get_order(ioc->res_size)); |
| 1346 | if(NULL == ioc->res_map) { | 1344 | if(NULL == ioc->res_map) { |
| 1347 | panic("%s:%s() could not allocate resource map\n", __FILE__, | 1345 | panic("%s() could not allocate resource map\n", __FUNCTION__); |
| 1348 | __FUNCTION__); | ||
| 1349 | } | 1346 | } |
| 1350 | memset(ioc->res_map, 0, ioc->res_size); | 1347 | memset(ioc->res_map, 0, ioc->res_size); |
| 1351 | 1348 | ||
| @@ -1366,44 +1363,58 @@ ccio_ioc_init(struct ioc *ioc) | |||
| 1366 | ** Initialize IOA hardware | 1363 | ** Initialize IOA hardware |
| 1367 | */ | 1364 | */ |
| 1368 | WRITE_U32(CCIO_CHAINID_MASK << ioc->chainid_shift, | 1365 | WRITE_U32(CCIO_CHAINID_MASK << ioc->chainid_shift, |
| 1369 | &ioc->ioc_hpa->io_chain_id_mask); | 1366 | &ioc->ioc_regs->io_chain_id_mask); |
| 1370 | 1367 | ||
| 1371 | WRITE_U32(virt_to_phys(ioc->pdir_base), | 1368 | WRITE_U32(virt_to_phys(ioc->pdir_base), |
| 1372 | &ioc->ioc_hpa->io_pdir_base); | 1369 | &ioc->ioc_regs->io_pdir_base); |
| 1373 | 1370 | ||
| 1374 | /* | 1371 | /* |
| 1375 | ** Go to "Virtual Mode" | 1372 | ** Go to "Virtual Mode" |
| 1376 | */ | 1373 | */ |
| 1377 | WRITE_U32(IOA_NORMAL_MODE, &ioc->ioc_hpa->io_control); | 1374 | WRITE_U32(IOA_NORMAL_MODE, &ioc->ioc_regs->io_control); |
| 1378 | 1375 | ||
| 1379 | /* | 1376 | /* |
| 1380 | ** Initialize all I/O TLB entries to 0 (Valid bit off). | 1377 | ** Initialize all I/O TLB entries to 0 (Valid bit off). |
| 1381 | */ | 1378 | */ |
| 1382 | WRITE_U32(0, &ioc->ioc_hpa->io_tlb_entry_m); | 1379 | WRITE_U32(0, &ioc->ioc_regs->io_tlb_entry_m); |
| 1383 | WRITE_U32(0, &ioc->ioc_hpa->io_tlb_entry_l); | 1380 | WRITE_U32(0, &ioc->ioc_regs->io_tlb_entry_l); |
| 1384 | 1381 | ||
| 1385 | for(i = 1 << CCIO_CHAINID_SHIFT; i ; i--) { | 1382 | for(i = 1 << CCIO_CHAINID_SHIFT; i ; i--) { |
| 1386 | WRITE_U32((CMD_TLB_DIRECT_WRITE | (i << ioc->chainid_shift)), | 1383 | WRITE_U32((CMD_TLB_DIRECT_WRITE | (i << ioc->chainid_shift)), |
| 1387 | &ioc->ioc_hpa->io_command); | 1384 | &ioc->ioc_regs->io_command); |
| 1388 | } | 1385 | } |
| 1389 | } | 1386 | } |
| 1390 | 1387 | ||
| 1391 | static void | 1388 | static void |
| 1392 | ccio_init_resource(struct resource *res, char *name, unsigned long ioaddr) | 1389 | ccio_init_resource(struct resource *res, char *name, void __iomem *ioaddr) |
| 1393 | { | 1390 | { |
| 1394 | int result; | 1391 | int result; |
| 1395 | 1392 | ||
| 1396 | res->parent = NULL; | 1393 | res->parent = NULL; |
| 1397 | res->flags = IORESOURCE_MEM; | 1394 | res->flags = IORESOURCE_MEM; |
| 1398 | res->start = (unsigned long)(signed) __raw_readl(ioaddr) << 16; | 1395 | /* |
| 1399 | res->end = (unsigned long)(signed) (__raw_readl(ioaddr + 4) << 16) - 1; | 1396 | * bracing ((signed) ...) are required for 64bit kernel because |
| 1397 | * we only want to sign extend the lower 16 bits of the register. | ||
| 1398 | * The upper 16-bits of range registers are hardcoded to 0xffff. | ||
| 1399 | */ | ||
| 1400 | res->start = (unsigned long)((signed) READ_U32(ioaddr) << 16); | ||
| 1401 | res->end = (unsigned long)((signed) (READ_U32(ioaddr + 4) << 16) - 1); | ||
| 1400 | res->name = name; | 1402 | res->name = name; |
| 1403 | /* | ||
| 1404 | * Check if this MMIO range is disable | ||
| 1405 | */ | ||
| 1401 | if (res->end + 1 == res->start) | 1406 | if (res->end + 1 == res->start) |
| 1402 | return; | 1407 | return; |
| 1403 | result = request_resource(&iomem_resource, res); | 1408 | |
| 1409 | /* On some platforms (e.g. K-Class), we have already registered | ||
| 1410 | * resources for devices reported by firmware. Some are children | ||
| 1411 | * of ccio. | ||
| 1412 | * "insert" ccio ranges in the mmio hierarchy (/proc/iomem). | ||
| 1413 | */ | ||
| 1414 | result = insert_resource(&iomem_resource, res); | ||
| 1404 | if (result < 0) { | 1415 | if (result < 0) { |
| 1405 | printk(KERN_ERR "%s: failed to claim CCIO bus address space (%08lx,%08lx)\n", | 1416 | printk(KERN_ERR "%s() failed to claim CCIO bus address space (%08lx,%08lx)\n", |
| 1406 | __FILE__, res->start, res->end); | 1417 | __FUNCTION__, res->start, res->end); |
| 1407 | } | 1418 | } |
| 1408 | } | 1419 | } |
| 1409 | 1420 | ||
| @@ -1414,9 +1425,8 @@ static void __init ccio_init_resources(struct ioc *ioc) | |||
| 1414 | 1425 | ||
| 1415 | sprintf(name, "GSC Bus [%d/]", ioc->hw_path); | 1426 | sprintf(name, "GSC Bus [%d/]", ioc->hw_path); |
| 1416 | 1427 | ||
| 1417 | ccio_init_resource(res, name, (unsigned long)&ioc->ioc_hpa->io_io_low); | 1428 | ccio_init_resource(res, name, &ioc->ioc_regs->io_io_low); |
| 1418 | ccio_init_resource(res + 1, name, | 1429 | ccio_init_resource(res + 1, name, &ioc->ioc_regs->io_io_low_hv); |
| 1419 | (unsigned long)&ioc->ioc_hpa->io_io_low_hv); | ||
| 1420 | } | 1430 | } |
| 1421 | 1431 | ||
| 1422 | static int new_ioc_area(struct resource *res, unsigned long size, | 1432 | static int new_ioc_area(struct resource *res, unsigned long size, |
| @@ -1427,7 +1437,12 @@ static int new_ioc_area(struct resource *res, unsigned long size, | |||
| 1427 | 1437 | ||
| 1428 | res->start = (max - size + 1) &~ (align - 1); | 1438 | res->start = (max - size + 1) &~ (align - 1); |
| 1429 | res->end = res->start + size; | 1439 | res->end = res->start + size; |
| 1430 | if (!request_resource(&iomem_resource, res)) | 1440 | |
| 1441 | /* We might be trying to expand the MMIO range to include | ||
| 1442 | * a child device that has already registered it's MMIO space. | ||
| 1443 | * Use "insert" instead of request_resource(). | ||
| 1444 | */ | ||
| 1445 | if (!insert_resource(&iomem_resource, res)) | ||
| 1431 | return 0; | 1446 | return 0; |
| 1432 | 1447 | ||
| 1433 | return new_ioc_area(res, size, min, max - size, align); | 1448 | return new_ioc_area(res, size, min, max - size, align); |
| @@ -1486,15 +1501,15 @@ int ccio_allocate_resource(const struct parisc_device *dev, | |||
| 1486 | 1501 | ||
| 1487 | if (!expand_ioc_area(parent, size, min, max, align)) { | 1502 | if (!expand_ioc_area(parent, size, min, max, align)) { |
| 1488 | __raw_writel(((parent->start)>>16) | 0xffff0000, | 1503 | __raw_writel(((parent->start)>>16) | 0xffff0000, |
| 1489 | (unsigned long)&(ioc->ioc_hpa->io_io_low)); | 1504 | &ioc->ioc_regs->io_io_low); |
| 1490 | __raw_writel(((parent->end)>>16) | 0xffff0000, | 1505 | __raw_writel(((parent->end)>>16) | 0xffff0000, |
| 1491 | (unsigned long)&(ioc->ioc_hpa->io_io_high)); | 1506 | &ioc->ioc_regs->io_io_high); |
| 1492 | } else if (!expand_ioc_area(parent + 1, size, min, max, align)) { | 1507 | } else if (!expand_ioc_area(parent + 1, size, min, max, align)) { |
| 1493 | parent++; | 1508 | parent++; |
| 1494 | __raw_writel(((parent->start)>>16) | 0xffff0000, | 1509 | __raw_writel(((parent->start)>>16) | 0xffff0000, |
| 1495 | (unsigned long)&(ioc->ioc_hpa->io_io_low_hv)); | 1510 | &ioc->ioc_regs->io_io_low_hv); |
| 1496 | __raw_writel(((parent->end)>>16) | 0xffff0000, | 1511 | __raw_writel(((parent->end)>>16) | 0xffff0000, |
| 1497 | (unsigned long)&(ioc->ioc_hpa->io_io_high_hv)); | 1512 | &ioc->ioc_regs->io_io_high_hv); |
| 1498 | } else { | 1513 | } else { |
| 1499 | return -EBUSY; | 1514 | return -EBUSY; |
| 1500 | } | 1515 | } |
| @@ -1521,7 +1536,12 @@ int ccio_request_resource(const struct parisc_device *dev, | |||
| 1521 | return -EBUSY; | 1536 | return -EBUSY; |
| 1522 | } | 1537 | } |
| 1523 | 1538 | ||
| 1524 | return request_resource(parent, res); | 1539 | /* "transparent" bus bridges need to register MMIO resources |
| 1540 | * firmware assigned them. e.g. children of hppb.c (e.g. K-class) | ||
| 1541 | * registered their resources in the PDC "bus walk" (See | ||
| 1542 | * arch/parisc/kernel/inventory.c). | ||
| 1543 | */ | ||
| 1544 | return insert_resource(parent, res); | ||
| 1525 | } | 1545 | } |
| 1526 | 1546 | ||
| 1527 | /** | 1547 | /** |
| @@ -1546,7 +1566,7 @@ static int ccio_probe(struct parisc_device *dev) | |||
| 1546 | 1566 | ||
| 1547 | ioc->name = dev->id.hversion == U2_IOA_RUNWAY ? "U2" : "UTurn"; | 1567 | ioc->name = dev->id.hversion == U2_IOA_RUNWAY ? "U2" : "UTurn"; |
| 1548 | 1568 | ||
| 1549 | printk(KERN_INFO "Found %s at 0x%lx\n", ioc->name, dev->hpa); | 1569 | printk(KERN_INFO "Found %s at 0x%lx\n", ioc->name, dev->hpa.start); |
| 1550 | 1570 | ||
| 1551 | for (i = 0; i < ioc_count; i++) { | 1571 | for (i = 0; i < ioc_count; i++) { |
| 1552 | ioc_p = &(*ioc_p)->next; | 1572 | ioc_p = &(*ioc_p)->next; |
| @@ -1554,7 +1574,7 @@ static int ccio_probe(struct parisc_device *dev) | |||
| 1554 | *ioc_p = ioc; | 1574 | *ioc_p = ioc; |
| 1555 | 1575 | ||
| 1556 | ioc->hw_path = dev->hw_path; | 1576 | ioc->hw_path = dev->hw_path; |
| 1557 | ioc->ioc_hpa = (struct ioa_registers *)dev->hpa; | 1577 | ioc->ioc_regs = ioremap(dev->hpa.start, 4096); |
| 1558 | ccio_ioc_init(ioc); | 1578 | ccio_ioc_init(ioc); |
| 1559 | ccio_init_resources(ioc); | 1579 | ccio_init_resources(ioc); |
| 1560 | hppa_dma_ops = &ccio_ops; | 1580 | hppa_dma_ops = &ccio_ops; |
diff --git a/drivers/parisc/ccio-rm-dma.c b/drivers/parisc/ccio-rm-dma.c index 57e6385976e2..356b8357bccc 100644 --- a/drivers/parisc/ccio-rm-dma.c +++ b/drivers/parisc/ccio-rm-dma.c | |||
| @@ -167,7 +167,7 @@ ccio_probe(struct parisc_device *dev) | |||
| 167 | { | 167 | { |
| 168 | printk(KERN_INFO "%s found %s at 0x%lx\n", MODULE_NAME, | 168 | printk(KERN_INFO "%s found %s at 0x%lx\n", MODULE_NAME, |
| 169 | dev->id.hversion == U2_BC_GSC ? "U2" : "UTurn", | 169 | dev->id.hversion == U2_BC_GSC ? "U2" : "UTurn", |
| 170 | dev->hpa); | 170 | dev->hpa.start); |
| 171 | 171 | ||
| 172 | /* | 172 | /* |
| 173 | ** FIXME - should check U2 registers to verify it's really running | 173 | ** FIXME - should check U2 registers to verify it's really running |
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c index 2f2dbef2c3b7..5ab75334c579 100644 --- a/drivers/parisc/dino.c +++ b/drivers/parisc/dino.c | |||
| @@ -178,6 +178,8 @@ static int dino_cfg_read(struct pci_bus *bus, unsigned int devfn, int where, | |||
| 178 | void __iomem *base_addr = d->hba.base_addr; | 178 | void __iomem *base_addr = d->hba.base_addr; |
| 179 | unsigned long flags; | 179 | unsigned long flags; |
| 180 | 180 | ||
| 181 | DBG("%s: %p, %d, %d, %d\n", __FUNCTION__, base_addr, devfn, where, | ||
| 182 | size); | ||
| 181 | spin_lock_irqsave(&d->dinosaur_pen, flags); | 183 | spin_lock_irqsave(&d->dinosaur_pen, flags); |
| 182 | 184 | ||
| 183 | /* tell HW which CFG address */ | 185 | /* tell HW which CFG address */ |
| @@ -211,6 +213,8 @@ static int dino_cfg_write(struct pci_bus *bus, unsigned int devfn, int where, | |||
| 211 | void __iomem *base_addr = d->hba.base_addr; | 213 | void __iomem *base_addr = d->hba.base_addr; |
| 212 | unsigned long flags; | 214 | unsigned long flags; |
| 213 | 215 | ||
| 216 | DBG("%s: %p, %d, %d, %d\n", __FUNCTION__, base_addr, devfn, where, | ||
| 217 | size); | ||
| 214 | spin_lock_irqsave(&d->dinosaur_pen, flags); | 218 | spin_lock_irqsave(&d->dinosaur_pen, flags); |
| 215 | 219 | ||
| 216 | /* avoid address stepping feature */ | 220 | /* avoid address stepping feature */ |
| @@ -295,7 +299,7 @@ static void dino_disable_irq(unsigned int irq) | |||
| 295 | struct dino_device *dino_dev = irq_desc[irq].handler_data; | 299 | struct dino_device *dino_dev = irq_desc[irq].handler_data; |
| 296 | int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, irq); | 300 | int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, irq); |
| 297 | 301 | ||
| 298 | DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, irq_dev, irq); | 302 | DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, dino_dev, irq); |
| 299 | 303 | ||
| 300 | /* Clear the matching bit in the IMR register */ | 304 | /* Clear the matching bit in the IMR register */ |
| 301 | dino_dev->imr &= ~(DINO_MASK_IRQ(local_irq)); | 305 | dino_dev->imr &= ~(DINO_MASK_IRQ(local_irq)); |
| @@ -308,7 +312,7 @@ static void dino_enable_irq(unsigned int irq) | |||
| 308 | int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, irq); | 312 | int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, irq); |
| 309 | u32 tmp; | 313 | u32 tmp; |
| 310 | 314 | ||
| 311 | DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, irq_dev, irq); | 315 | DBG(KERN_WARNING "%s(0x%p, %d)\n", __FUNCTION__, dino_dev, irq); |
| 312 | 316 | ||
| 313 | /* | 317 | /* |
| 314 | ** clear pending IRQ bits | 318 | ** clear pending IRQ bits |
| @@ -490,7 +494,7 @@ dino_card_setup(struct pci_bus *bus, void __iomem *base_addr) | |||
| 490 | if (res->start == F_EXTEND(0xf0000000UL | (i * _8MB))) | 494 | if (res->start == F_EXTEND(0xf0000000UL | (i * _8MB))) |
| 491 | break; | 495 | break; |
| 492 | } | 496 | } |
| 493 | DBG("DINO GSC WRITE i=%d, start=%lx, dino addr = %lx\n", | 497 | DBG("DINO GSC WRITE i=%d, start=%lx, dino addr = %p\n", |
| 494 | i, res->start, base_addr + DINO_IO_ADDR_EN); | 498 | i, res->start, base_addr + DINO_IO_ADDR_EN); |
| 495 | __raw_writel(1 << i, base_addr + DINO_IO_ADDR_EN); | 499 | __raw_writel(1 << i, base_addr + DINO_IO_ADDR_EN); |
| 496 | } | 500 | } |
| @@ -683,6 +687,14 @@ static void __init | |||
| 683 | dino_card_init(struct dino_device *dino_dev) | 687 | dino_card_init(struct dino_device *dino_dev) |
| 684 | { | 688 | { |
| 685 | u32 brdg_feat = 0x00784e05; | 689 | u32 brdg_feat = 0x00784e05; |
| 690 | unsigned long status; | ||
| 691 | |||
| 692 | status = __raw_readl(dino_dev->hba.base_addr+DINO_IO_STATUS); | ||
| 693 | if (status & 0x0000ff80) { | ||
| 694 | __raw_writel(0x00000005, | ||
| 695 | dino_dev->hba.base_addr+DINO_IO_COMMAND); | ||
| 696 | udelay(1); | ||
| 697 | } | ||
| 686 | 698 | ||
| 687 | __raw_writel(0x00000000, dino_dev->hba.base_addr+DINO_GMASK); | 699 | __raw_writel(0x00000000, dino_dev->hba.base_addr+DINO_GMASK); |
| 688 | __raw_writel(0x00000001, dino_dev->hba.base_addr+DINO_IO_FBB_EN); | 700 | __raw_writel(0x00000001, dino_dev->hba.base_addr+DINO_IO_FBB_EN); |
| @@ -902,15 +914,15 @@ void ccio_cujo20_fixup(struct parisc_device *dev, u32 iovp); | |||
| 902 | ** If so, initialize the chip appropriately (card-mode vs bridge mode). | 914 | ** If so, initialize the chip appropriately (card-mode vs bridge mode). |
| 903 | ** Much of the initialization is common though. | 915 | ** Much of the initialization is common though. |
| 904 | */ | 916 | */ |
| 905 | static int __init | 917 | static int __init dino_probe(struct parisc_device *dev) |
| 906 | dino_driver_callback(struct parisc_device *dev) | ||
| 907 | { | 918 | { |
| 908 | struct dino_device *dino_dev; // Dino specific control struct | 919 | struct dino_device *dino_dev; // Dino specific control struct |
| 909 | const char *version = "unknown"; | 920 | const char *version = "unknown"; |
| 910 | char *name; | 921 | char *name; |
| 911 | int is_cujo = 0; | 922 | int is_cujo = 0; |
| 912 | struct pci_bus *bus; | 923 | struct pci_bus *bus; |
| 913 | 924 | unsigned long hpa = dev->hpa.start; | |
| 925 | |||
| 914 | name = "Dino"; | 926 | name = "Dino"; |
| 915 | if (is_card_dino(&dev->id)) { | 927 | if (is_card_dino(&dev->id)) { |
| 916 | version = "3.x (card mode)"; | 928 | version = "3.x (card mode)"; |
| @@ -928,11 +940,11 @@ dino_driver_callback(struct parisc_device *dev) | |||
| 928 | } | 940 | } |
| 929 | } | 941 | } |
| 930 | 942 | ||
| 931 | printk("%s version %s found at 0x%lx\n", name, version, dev->hpa); | 943 | printk("%s version %s found at 0x%lx\n", name, version, hpa); |
| 932 | 944 | ||
| 933 | if (!request_mem_region(dev->hpa, PAGE_SIZE, name)) { | 945 | if (!request_mem_region(hpa, PAGE_SIZE, name)) { |
| 934 | printk(KERN_ERR "DINO: Hey! Someone took my MMIO space (0x%ld)!\n", | 946 | printk(KERN_ERR "DINO: Hey! Someone took my MMIO space (0x%ld)!\n", |
| 935 | dev->hpa); | 947 | hpa); |
| 936 | return 1; | 948 | return 1; |
| 937 | } | 949 | } |
| 938 | 950 | ||
| @@ -940,12 +952,12 @@ dino_driver_callback(struct parisc_device *dev) | |||
| 940 | if (is_cujo && dev->id.hversion_rev == 1) { | 952 | if (is_cujo && dev->id.hversion_rev == 1) { |
| 941 | #ifdef CONFIG_IOMMU_CCIO | 953 | #ifdef CONFIG_IOMMU_CCIO |
| 942 | printk(KERN_WARNING "Enabling Cujo 2.0 bug workaround\n"); | 954 | printk(KERN_WARNING "Enabling Cujo 2.0 bug workaround\n"); |
| 943 | if (dev->hpa == (unsigned long)CUJO_RAVEN_ADDR) { | 955 | if (hpa == (unsigned long)CUJO_RAVEN_ADDR) { |
| 944 | ccio_cujo20_fixup(dev, CUJO_RAVEN_BADPAGE); | 956 | ccio_cujo20_fixup(dev, CUJO_RAVEN_BADPAGE); |
| 945 | } else if (dev->hpa == (unsigned long)CUJO_FIREHAWK_ADDR) { | 957 | } else if (hpa == (unsigned long)CUJO_FIREHAWK_ADDR) { |
| 946 | ccio_cujo20_fixup(dev, CUJO_FIREHAWK_BADPAGE); | 958 | ccio_cujo20_fixup(dev, CUJO_FIREHAWK_BADPAGE); |
| 947 | } else { | 959 | } else { |
| 948 | printk("Don't recognise Cujo at address 0x%lx, not enabling workaround\n", dev->hpa); | 960 | printk("Don't recognise Cujo at address 0x%lx, not enabling workaround\n", hpa); |
| 949 | } | 961 | } |
| 950 | #endif | 962 | #endif |
| 951 | } else if (!is_cujo && !is_card_dino(&dev->id) && | 963 | } else if (!is_cujo && !is_card_dino(&dev->id) && |
| @@ -970,7 +982,7 @@ dino_driver_callback(struct parisc_device *dev) | |||
| 970 | memset(dino_dev, 0, sizeof(struct dino_device)); | 982 | memset(dino_dev, 0, sizeof(struct dino_device)); |
| 971 | 983 | ||
| 972 | dino_dev->hba.dev = dev; | 984 | dino_dev->hba.dev = dev; |
| 973 | dino_dev->hba.base_addr = ioremap(dev->hpa, 4096); /* faster access */ | 985 | dino_dev->hba.base_addr = ioremap(hpa, 4096); |
| 974 | dino_dev->hba.lmmio_space_offset = 0; /* CPU addrs == bus addrs */ | 986 | dino_dev->hba.lmmio_space_offset = 0; /* CPU addrs == bus addrs */ |
| 975 | spin_lock_init(&dino_dev->dinosaur_pen); | 987 | spin_lock_init(&dino_dev->dinosaur_pen); |
| 976 | dino_dev->hba.iommu = ccio_get_iommu(dev); | 988 | dino_dev->hba.iommu = ccio_get_iommu(dev); |
| @@ -1027,9 +1039,9 @@ static struct parisc_device_id dino_tbl[] = { | |||
| 1027 | }; | 1039 | }; |
| 1028 | 1040 | ||
| 1029 | static struct parisc_driver dino_driver = { | 1041 | static struct parisc_driver dino_driver = { |
| 1030 | .name = "Dino", | 1042 | .name = "dino", |
| 1031 | .id_table = dino_tbl, | 1043 | .id_table = dino_tbl, |
| 1032 | .probe = dino_driver_callback, | 1044 | .probe = dino_probe, |
| 1033 | }; | 1045 | }; |
| 1034 | 1046 | ||
| 1035 | /* | 1047 | /* |
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c index 043d47aea75b..6362bf99eff6 100644 --- a/drivers/parisc/eisa.c +++ b/drivers/parisc/eisa.c | |||
| @@ -315,7 +315,7 @@ static int __devinit eisa_probe(struct parisc_device *dev) | |||
| 315 | char *name = is_mongoose(dev) ? "Mongoose" : "Wax"; | 315 | char *name = is_mongoose(dev) ? "Mongoose" : "Wax"; |
| 316 | 316 | ||
| 317 | printk(KERN_INFO "%s EISA Adapter found at 0x%08lx\n", | 317 | printk(KERN_INFO "%s EISA Adapter found at 0x%08lx\n", |
| 318 | name, dev->hpa); | 318 | name, dev->hpa.start); |
| 319 | 319 | ||
| 320 | eisa_dev.hba.dev = dev; | 320 | eisa_dev.hba.dev = dev; |
| 321 | eisa_dev.hba.iommu = ccio_get_iommu(dev); | 321 | eisa_dev.hba.iommu = ccio_get_iommu(dev); |
| @@ -397,7 +397,7 @@ static struct parisc_device_id eisa_tbl[] = { | |||
| 397 | MODULE_DEVICE_TABLE(parisc, eisa_tbl); | 397 | MODULE_DEVICE_TABLE(parisc, eisa_tbl); |
| 398 | 398 | ||
| 399 | static struct parisc_driver eisa_driver = { | 399 | static struct parisc_driver eisa_driver = { |
| 400 | .name = "EISA Bus Adapter", | 400 | .name = "eisa_ba", |
| 401 | .id_table = eisa_tbl, | 401 | .id_table = eisa_tbl, |
| 402 | .probe = eisa_probe, | 402 | .probe = eisa_probe, |
| 403 | }; | 403 | }; |
diff --git a/drivers/parisc/gsc.c b/drivers/parisc/gsc.c index af5e02526a18..16d40f95978d 100644 --- a/drivers/parisc/gsc.c +++ b/drivers/parisc/gsc.c | |||
| @@ -183,12 +183,20 @@ void gsc_asic_assign_irq(struct gsc_asic *asic, int local_irq, int *irqp) | |||
| 183 | *irqp = irq; | 183 | *irqp = irq; |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | static struct device *next_device(struct klist_iter *i) | ||
| 187 | { | ||
| 188 | struct klist_node * n = klist_next(i); | ||
| 189 | return n ? container_of(n, struct device, knode_parent) : NULL; | ||
| 190 | } | ||
| 191 | |||
| 186 | void gsc_fixup_irqs(struct parisc_device *parent, void *ctrl, | 192 | void gsc_fixup_irqs(struct parisc_device *parent, void *ctrl, |
| 187 | void (*choose_irq)(struct parisc_device *, void *)) | 193 | void (*choose_irq)(struct parisc_device *, void *)) |
| 188 | { | 194 | { |
| 189 | struct device *dev; | 195 | struct device *dev; |
| 196 | struct klist_iter i; | ||
| 190 | 197 | ||
| 191 | list_for_each_entry(dev, &parent->dev.children, node) { | 198 | klist_iter_init(&parent->dev.klist_children, &i); |
| 199 | while ((dev = next_device(&i))) { | ||
| 192 | struct parisc_device *padev = to_parisc_device(dev); | 200 | struct parisc_device *padev = to_parisc_device(dev); |
| 193 | 201 | ||
| 194 | /* work-around for 715/64 and others which have parent | 202 | /* work-around for 715/64 and others which have parent |
| @@ -197,6 +205,7 @@ void gsc_fixup_irqs(struct parisc_device *parent, void *ctrl, | |||
| 197 | return gsc_fixup_irqs(padev, ctrl, choose_irq); | 205 | return gsc_fixup_irqs(padev, ctrl, choose_irq); |
| 198 | choose_irq(padev, ctrl); | 206 | choose_irq(padev, ctrl); |
| 199 | } | 207 | } |
| 208 | klist_iter_exit(&i); | ||
| 200 | } | 209 | } |
| 201 | 210 | ||
| 202 | int gsc_common_setup(struct parisc_device *parent, struct gsc_asic *gsc_asic) | 211 | int gsc_common_setup(struct parisc_device *parent, struct gsc_asic *gsc_asic) |
diff --git a/drivers/parisc/hppb.c b/drivers/parisc/hppb.c index e869c6020370..5edf93f80757 100644 --- a/drivers/parisc/hppb.c +++ b/drivers/parisc/hppb.c | |||
| @@ -68,14 +68,14 @@ static int hppb_probe(struct parisc_device *dev) | |||
| 68 | memset(card->next, '\0', sizeof(struct hppb_card)); | 68 | memset(card->next, '\0', sizeof(struct hppb_card)); |
| 69 | card = card->next; | 69 | card = card->next; |
| 70 | } | 70 | } |
| 71 | printk(KERN_INFO "Found GeckoBoa at 0x%lx\n", dev->hpa); | 71 | printk(KERN_INFO "Found GeckoBoa at 0x%lx\n", dev->hpa.start); |
| 72 | 72 | ||
| 73 | card->hpa = dev->hpa; | 73 | card->hpa = dev->hpa.start; |
| 74 | card->mmio_region.name = "HP-PB Bus"; | 74 | card->mmio_region.name = "HP-PB Bus"; |
| 75 | card->mmio_region.flags = IORESOURCE_MEM; | 75 | card->mmio_region.flags = IORESOURCE_MEM; |
| 76 | 76 | ||
| 77 | card->mmio_region.start = __raw_readl(dev->hpa + IO_IO_LOW); | 77 | card->mmio_region.start = gsc_readl(dev->hpa.start + IO_IO_LOW); |
| 78 | card->mmio_region.end = __raw_readl(dev->hpa + IO_IO_HIGH) - 1; | 78 | card->mmio_region.end = gsc_readl(dev->hpa.start + IO_IO_HIGH) - 1; |
| 79 | 79 | ||
| 80 | status = ccio_request_resource(dev, &card->mmio_region); | 80 | status = ccio_request_resource(dev, &card->mmio_region); |
| 81 | if(status < 0) { | 81 | if(status < 0) { |
| @@ -93,7 +93,7 @@ static struct parisc_device_id hppb_tbl[] = { | |||
| 93 | }; | 93 | }; |
| 94 | 94 | ||
| 95 | static struct parisc_driver hppb_driver = { | 95 | static struct parisc_driver hppb_driver = { |
| 96 | .name = "Gecko Boa", | 96 | .name = "gecko_boa", |
| 97 | .id_table = hppb_tbl, | 97 | .id_table = hppb_tbl, |
| 98 | .probe = hppb_probe, | 98 | .probe = hppb_probe, |
| 99 | }; | 99 | }; |
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index 7a57c1b8373f..a39fbfef789a 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c | |||
| @@ -244,7 +244,7 @@ static struct irt_entry *iosapic_alloc_irt(int num_entries) | |||
| 244 | * 4-byte alignment on 32-bit kernels | 244 | * 4-byte alignment on 32-bit kernels |
| 245 | */ | 245 | */ |
| 246 | a = (unsigned long)kmalloc(sizeof(struct irt_entry) * num_entries + 8, GFP_KERNEL); | 246 | a = (unsigned long)kmalloc(sizeof(struct irt_entry) * num_entries + 8, GFP_KERNEL); |
| 247 | a = (a + 7) & ~7; | 247 | a = (a + 7UL) & ~7UL; |
| 248 | return (struct irt_entry *)a; | 248 | return (struct irt_entry *)a; |
| 249 | } | 249 | } |
| 250 | 250 | ||
diff --git a/drivers/parisc/lasi.c b/drivers/parisc/lasi.c index cb84a4e84a2f..a8c20396ffbe 100644 --- a/drivers/parisc/lasi.c +++ b/drivers/parisc/lasi.c | |||
| @@ -175,7 +175,7 @@ lasi_init_chip(struct parisc_device *dev) | |||
| 175 | return -ENOMEM; | 175 | return -ENOMEM; |
| 176 | 176 | ||
| 177 | lasi->name = "Lasi"; | 177 | lasi->name = "Lasi"; |
| 178 | lasi->hpa = dev->hpa; | 178 | lasi->hpa = dev->hpa.start; |
| 179 | 179 | ||
| 180 | /* Check the 4-bit (yes, only 4) version register */ | 180 | /* Check the 4-bit (yes, only 4) version register */ |
| 181 | lasi->version = gsc_readl(lasi->hpa + LASI_VER) & 0xf; | 181 | lasi->version = gsc_readl(lasi->hpa + LASI_VER) & 0xf; |
| @@ -233,7 +233,7 @@ static struct parisc_device_id lasi_tbl[] = { | |||
| 233 | }; | 233 | }; |
| 234 | 234 | ||
| 235 | struct parisc_driver lasi_driver = { | 235 | struct parisc_driver lasi_driver = { |
| 236 | .name = "Lasi", | 236 | .name = "lasi", |
| 237 | .id_table = lasi_tbl, | 237 | .id_table = lasi_tbl, |
| 238 | .probe = lasi_init_chip, | 238 | .probe = lasi_init_chip, |
| 239 | }; | 239 | }; |
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c index 7fdd80b7eb47..5e495dcbc58a 100644 --- a/drivers/parisc/lba_pci.c +++ b/drivers/parisc/lba_pci.c | |||
| @@ -1288,7 +1288,7 @@ lba_legacy_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev) | |||
| 1288 | ** Adjust "window" for this rope. | 1288 | ** Adjust "window" for this rope. |
| 1289 | */ | 1289 | */ |
| 1290 | rsize /= ROPES_PER_IOC; | 1290 | rsize /= ROPES_PER_IOC; |
| 1291 | r->start += (rsize + 1) * LBA_NUM(pa_dev->hpa); | 1291 | r->start += (rsize + 1) * LBA_NUM(pa_dev->hpa.start); |
| 1292 | r->end = r->start + rsize; | 1292 | r->end = r->start + rsize; |
| 1293 | } else { | 1293 | } else { |
| 1294 | r->end = r->start = 0; /* Not enabled. */ | 1294 | r->end = r->start = 0; /* Not enabled. */ |
| @@ -1458,7 +1458,7 @@ lba_driver_probe(struct parisc_device *dev) | |||
| 1458 | u32 func_class; | 1458 | u32 func_class; |
| 1459 | void *tmp_obj; | 1459 | void *tmp_obj; |
| 1460 | char *version; | 1460 | char *version; |
| 1461 | void __iomem *addr = ioremap(dev->hpa, 4096); | 1461 | void __iomem *addr = ioremap(dev->hpa.start, 4096); |
| 1462 | 1462 | ||
| 1463 | /* Read HW Rev First */ | 1463 | /* Read HW Rev First */ |
| 1464 | func_class = READ_REG32(addr + LBA_FCLASS); | 1464 | func_class = READ_REG32(addr + LBA_FCLASS); |
| @@ -1476,7 +1476,7 @@ lba_driver_probe(struct parisc_device *dev) | |||
| 1476 | } | 1476 | } |
| 1477 | 1477 | ||
| 1478 | printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n", | 1478 | printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n", |
| 1479 | MODULE_NAME, version, func_class & 0xf, dev->hpa); | 1479 | MODULE_NAME, version, func_class & 0xf, dev->hpa.start); |
| 1480 | 1480 | ||
| 1481 | if (func_class < 2) { | 1481 | if (func_class < 2) { |
| 1482 | printk(KERN_WARNING "Can't support LBA older than " | 1482 | printk(KERN_WARNING "Can't support LBA older than " |
| @@ -1503,17 +1503,17 @@ lba_driver_probe(struct parisc_device *dev) | |||
| 1503 | * but for the mask for func_class. | 1503 | * but for the mask for func_class. |
| 1504 | */ | 1504 | */ |
| 1505 | printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n", | 1505 | printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n", |
| 1506 | MODULE_NAME, version, func_class & 0xff, dev->hpa); | 1506 | MODULE_NAME, version, func_class & 0xff, dev->hpa.start); |
| 1507 | cfg_ops = &mercury_cfg_ops; | 1507 | cfg_ops = &mercury_cfg_ops; |
| 1508 | } else { | 1508 | } else { |
| 1509 | printk(KERN_ERR "Unknown LBA found at 0x%lx\n", dev->hpa); | 1509 | printk(KERN_ERR "Unknown LBA found at 0x%lx\n", dev->hpa.start); |
| 1510 | return -ENODEV; | 1510 | return -ENODEV; |
| 1511 | } | 1511 | } |
| 1512 | 1512 | ||
| 1513 | /* | 1513 | /* |
| 1514 | ** Tell I/O SAPIC driver we have a IRQ handler/region. | 1514 | ** Tell I/O SAPIC driver we have a IRQ handler/region. |
| 1515 | */ | 1515 | */ |
| 1516 | tmp_obj = iosapic_register(dev->hpa + LBA_IOSAPIC_BASE); | 1516 | tmp_obj = iosapic_register(dev->hpa.start + LBA_IOSAPIC_BASE); |
| 1517 | 1517 | ||
| 1518 | /* NOTE: PCI devices (e.g. 103c:1005 graphics card) which don't | 1518 | /* NOTE: PCI devices (e.g. 103c:1005 graphics card) which don't |
| 1519 | ** have an IRT entry will get NULL back from iosapic code. | 1519 | ** have an IRT entry will get NULL back from iosapic code. |
| @@ -1635,7 +1635,7 @@ void __init lba_init(void) | |||
| 1635 | */ | 1635 | */ |
| 1636 | void lba_set_iregs(struct parisc_device *lba, u32 ibase, u32 imask) | 1636 | void lba_set_iregs(struct parisc_device *lba, u32 ibase, u32 imask) |
| 1637 | { | 1637 | { |
| 1638 | void __iomem * base_addr = ioremap(lba->hpa, 4096); | 1638 | void __iomem * base_addr = ioremap(lba->hpa.start, 4096); |
| 1639 | 1639 | ||
| 1640 | imask <<= 2; /* adjust for hints - 2 more bits */ | 1640 | imask <<= 2; /* adjust for hints - 2 more bits */ |
| 1641 | 1641 | ||
diff --git a/drivers/parisc/led.c b/drivers/parisc/led.c index 286902298e33..95bd07b8b61b 100644 --- a/drivers/parisc/led.c +++ b/drivers/parisc/led.c | |||
| @@ -18,6 +18,9 @@ | |||
| 18 | * Changes: | 18 | * Changes: |
| 19 | * - Audit copy_from_user in led_proc_write. | 19 | * - Audit copy_from_user in led_proc_write. |
| 20 | * Daniele Bellucci <bellucda@tiscali.it> | 20 | * Daniele Bellucci <bellucda@tiscali.it> |
| 21 | * - Switch from using a tasklet to a work queue, so the led_LCD_driver | ||
| 22 | * can sleep. | ||
| 23 | * David Pye <dmp@davidmpye.dyndns.org> | ||
| 21 | */ | 24 | */ |
| 22 | 25 | ||
| 23 | #include <linux/config.h> | 26 | #include <linux/config.h> |
| @@ -37,6 +40,7 @@ | |||
| 37 | #include <linux/proc_fs.h> | 40 | #include <linux/proc_fs.h> |
| 38 | #include <linux/ctype.h> | 41 | #include <linux/ctype.h> |
| 39 | #include <linux/blkdev.h> | 42 | #include <linux/blkdev.h> |
| 43 | #include <linux/workqueue.h> | ||
| 40 | #include <linux/rcupdate.h> | 44 | #include <linux/rcupdate.h> |
| 41 | #include <asm/io.h> | 45 | #include <asm/io.h> |
| 42 | #include <asm/processor.h> | 46 | #include <asm/processor.h> |
| @@ -47,25 +51,30 @@ | |||
| 47 | #include <asm/uaccess.h> | 51 | #include <asm/uaccess.h> |
| 48 | 52 | ||
| 49 | /* The control of the LEDs and LCDs on PARISC-machines have to be done | 53 | /* The control of the LEDs and LCDs on PARISC-machines have to be done |
| 50 | completely in software. The necessary calculations are done in a tasklet | 54 | completely in software. The necessary calculations are done in a work queue |
| 51 | which is scheduled at every timer interrupt and since the calculations | 55 | task which is scheduled regularly, and since the calculations may consume a |
| 52 | may consume relatively much CPU-time some of the calculations can be | 56 | relatively large amount of CPU time, some of the calculations can be |
| 53 | turned off with the following variables (controlled via procfs) */ | 57 | turned off with the following variables (controlled via procfs) */ |
| 54 | 58 | ||
| 55 | static int led_type = -1; | 59 | static int led_type = -1; |
| 56 | static int led_heartbeat = 1; | 60 | static unsigned char lastleds; /* LED state from most recent update */ |
| 57 | static int led_diskio = 1; | 61 | static unsigned int led_heartbeat = 1; |
| 58 | static int led_lanrxtx = 1; | 62 | static unsigned int led_diskio = 1; |
| 63 | static unsigned int led_lanrxtx = 1; | ||
| 59 | static char lcd_text[32]; | 64 | static char lcd_text[32]; |
| 60 | static char lcd_text_default[32]; | 65 | static char lcd_text_default[32]; |
| 61 | 66 | ||
| 67 | |||
| 68 | static struct workqueue_struct *led_wq; | ||
| 69 | static void led_work_func(void *); | ||
| 70 | static DECLARE_WORK(led_task, led_work_func, NULL); | ||
| 71 | |||
| 62 | #if 0 | 72 | #if 0 |
| 63 | #define DPRINTK(x) printk x | 73 | #define DPRINTK(x) printk x |
| 64 | #else | 74 | #else |
| 65 | #define DPRINTK(x) | 75 | #define DPRINTK(x) |
| 66 | #endif | 76 | #endif |
| 67 | 77 | ||
| 68 | |||
| 69 | struct lcd_block { | 78 | struct lcd_block { |
| 70 | unsigned char command; /* stores the command byte */ | 79 | unsigned char command; /* stores the command byte */ |
| 71 | unsigned char on; /* value for turning LED on */ | 80 | unsigned char on; /* value for turning LED on */ |
| @@ -116,12 +125,27 @@ lcd_info __attribute__((aligned(8))) = | |||
| 116 | #define LCD_DATA_REG lcd_info.lcd_data_reg_addr | 125 | #define LCD_DATA_REG lcd_info.lcd_data_reg_addr |
| 117 | #define LED_DATA_REG lcd_info.lcd_cmd_reg_addr /* LASI & ASP only */ | 126 | #define LED_DATA_REG lcd_info.lcd_cmd_reg_addr /* LASI & ASP only */ |
| 118 | 127 | ||
| 128 | #define LED_HASLCD 1 | ||
| 129 | #define LED_NOLCD 0 | ||
| 130 | |||
| 131 | /* The workqueue must be created at init-time */ | ||
| 132 | static int start_task(void) | ||
| 133 | { | ||
| 134 | /* Display the default text now */ | ||
| 135 | if (led_type == LED_HASLCD) lcd_print( lcd_text_default ); | ||
| 136 | |||
| 137 | /* Create the work queue and queue the LED task */ | ||
| 138 | led_wq = create_singlethread_workqueue("led_wq"); | ||
| 139 | queue_work(led_wq, &led_task); | ||
| 140 | |||
| 141 | return 0; | ||
| 142 | } | ||
| 143 | |||
| 144 | device_initcall(start_task); | ||
| 119 | 145 | ||
| 120 | /* ptr to LCD/LED-specific function */ | 146 | /* ptr to LCD/LED-specific function */ |
| 121 | static void (*led_func_ptr) (unsigned char); | 147 | static void (*led_func_ptr) (unsigned char); |
| 122 | 148 | ||
| 123 | #define LED_HASLCD 1 | ||
| 124 | #define LED_NOLCD 0 | ||
| 125 | #ifdef CONFIG_PROC_FS | 149 | #ifdef CONFIG_PROC_FS |
| 126 | static int led_proc_read(char *page, char **start, off_t off, int count, | 150 | static int led_proc_read(char *page, char **start, off_t off, int count, |
| 127 | int *eof, void *data) | 151 | int *eof, void *data) |
| @@ -286,52 +310,35 @@ static void led_LASI_driver(unsigned char leds) | |||
| 286 | /* | 310 | /* |
| 287 | ** | 311 | ** |
| 288 | ** led_LCD_driver() | 312 | ** led_LCD_driver() |
| 289 | ** | ||
| 290 | ** The logic of the LCD driver is, that we write at every scheduled call | ||
| 291 | ** only to one of LCD_CMD_REG _or_ LCD_DATA_REG - registers. | ||
| 292 | ** That way we don't need to let this tasklet busywait for min_cmd_delay | ||
| 293 | ** milliseconds. | ||
| 294 | ** | ||
| 295 | ** TODO: check the value of "min_cmd_delay" against the value of HZ. | ||
| 296 | ** | 313 | ** |
| 297 | */ | 314 | */ |
| 298 | static void led_LCD_driver(unsigned char leds) | 315 | static void led_LCD_driver(unsigned char leds) |
| 299 | { | 316 | { |
| 300 | static int last_index; /* 0:heartbeat, 1:disk, 2:lan_in, 3:lan_out */ | 317 | static int i; |
| 301 | static int last_was_cmd;/* 0: CMD was written last, 1: DATA was last */ | 318 | static unsigned char mask[4] = { LED_HEARTBEAT, LED_DISK_IO, |
| 302 | struct lcd_block *block_ptr; | 319 | LED_LAN_RCV, LED_LAN_TX }; |
| 303 | int value; | ||
| 304 | |||
| 305 | switch (last_index) { | ||
| 306 | case 0: block_ptr = &lcd_info.heartbeat; | ||
| 307 | value = leds & LED_HEARTBEAT; | ||
| 308 | break; | ||
| 309 | case 1: block_ptr = &lcd_info.disk_io; | ||
| 310 | value = leds & LED_DISK_IO; | ||
| 311 | break; | ||
| 312 | case 2: block_ptr = &lcd_info.lan_rcv; | ||
| 313 | value = leds & LED_LAN_RCV; | ||
| 314 | break; | ||
| 315 | case 3: block_ptr = &lcd_info.lan_tx; | ||
| 316 | value = leds & LED_LAN_TX; | ||
| 317 | break; | ||
| 318 | default: /* should never happen: */ | ||
| 319 | return; | ||
| 320 | } | ||
| 321 | |||
| 322 | if (last_was_cmd) { | ||
| 323 | /* write the value to the LCD data port */ | ||
| 324 | gsc_writeb( value ? block_ptr->on : block_ptr->off, LCD_DATA_REG ); | ||
| 325 | } else { | ||
| 326 | /* write the command-byte to the LCD command register */ | ||
| 327 | gsc_writeb( block_ptr->command, LCD_CMD_REG ); | ||
| 328 | } | ||
| 329 | 320 | ||
| 330 | /* now update the vars for the next interrupt iteration */ | 321 | static struct lcd_block * blockp[4] = { |
| 331 | if (++last_was_cmd == 2) { /* switch between cmd & data */ | 322 | &lcd_info.heartbeat, |
| 332 | last_was_cmd = 0; | 323 | &lcd_info.disk_io, |
| 333 | if (++last_index == 4) | 324 | &lcd_info.lan_rcv, |
| 334 | last_index = 0; /* switch back to heartbeat index */ | 325 | &lcd_info.lan_tx |
| 326 | }; | ||
| 327 | |||
| 328 | /* Convert min_cmd_delay to milliseconds */ | ||
| 329 | unsigned int msec_cmd_delay = 1 + (lcd_info.min_cmd_delay / 1000); | ||
| 330 | |||
| 331 | for (i=0; i<4; ++i) | ||
| 332 | { | ||
| 333 | if ((leds & mask[i]) != (lastleds & mask[i])) | ||
| 334 | { | ||
| 335 | gsc_writeb( blockp[i]->command, LCD_CMD_REG ); | ||
| 336 | msleep(msec_cmd_delay); | ||
| 337 | |||
| 338 | gsc_writeb( leds & mask[i] ? blockp[i]->on : | ||
| 339 | blockp[i]->off, LCD_DATA_REG ); | ||
| 340 | msleep(msec_cmd_delay); | ||
| 341 | } | ||
| 335 | } | 342 | } |
| 336 | } | 343 | } |
| 337 | 344 | ||
| @@ -356,7 +363,7 @@ static __inline__ int led_get_net_activity(void) | |||
| 356 | 363 | ||
| 357 | rx_total = tx_total = 0; | 364 | rx_total = tx_total = 0; |
| 358 | 365 | ||
| 359 | /* we are running as tasklet, so locking dev_base | 366 | /* we are running as a workqueue task, so locking dev_base |
| 360 | * for reading should be OK */ | 367 | * for reading should be OK */ |
| 361 | read_lock(&dev_base_lock); | 368 | read_lock(&dev_base_lock); |
| 362 | rcu_read_lock(); | 369 | rcu_read_lock(); |
| @@ -405,7 +412,7 @@ static __inline__ int led_get_diskio_activity(void) | |||
| 405 | static unsigned long last_pgpgin, last_pgpgout; | 412 | static unsigned long last_pgpgin, last_pgpgout; |
| 406 | struct page_state pgstat; | 413 | struct page_state pgstat; |
| 407 | int changed; | 414 | int changed; |
| 408 | 415 | ||
| 409 | get_full_page_state(&pgstat); /* get no of sectors in & out */ | 416 | get_full_page_state(&pgstat); /* get no of sectors in & out */ |
| 410 | 417 | ||
| 411 | /* Just use a very simple calculation here. Do not care about overflow, | 418 | /* Just use a very simple calculation here. Do not care about overflow, |
| @@ -413,86 +420,70 @@ static __inline__ int led_get_diskio_activity(void) | |||
| 413 | changed = (pgstat.pgpgin != last_pgpgin) || (pgstat.pgpgout != last_pgpgout); | 420 | changed = (pgstat.pgpgin != last_pgpgin) || (pgstat.pgpgout != last_pgpgout); |
| 414 | last_pgpgin = pgstat.pgpgin; | 421 | last_pgpgin = pgstat.pgpgin; |
| 415 | last_pgpgout = pgstat.pgpgout; | 422 | last_pgpgout = pgstat.pgpgout; |
| 416 | 423 | ||
| 417 | return (changed ? LED_DISK_IO : 0); | 424 | return (changed ? LED_DISK_IO : 0); |
| 418 | } | 425 | } |
| 419 | 426 | ||
| 420 | 427 | ||
| 421 | 428 | ||
| 422 | /* | 429 | /* |
| 423 | ** led_tasklet_func() | 430 | ** led_work_func() |
| 424 | ** | 431 | ** |
| 425 | ** is scheduled at every timer interrupt from time.c and | 432 | ** manages when and which chassis LCD/LED gets updated |
| 426 | ** updates the chassis LCD/LED | ||
| 427 | 433 | ||
| 428 | TODO: | 434 | TODO: |
| 429 | - display load average (older machines like 715/64 have 4 "free" LED's for that) | 435 | - display load average (older machines like 715/64 have 4 "free" LED's for that) |
| 430 | - optimizations | 436 | - optimizations |
| 431 | */ | 437 | */ |
| 432 | 438 | ||
| 433 | #define HEARTBEAT_LEN (HZ*6/100) | 439 | #define HEARTBEAT_LEN (HZ*10/100) |
| 434 | #define HEARTBEAT_2ND_RANGE_START (HZ*22/100) | 440 | #define HEARTBEAT_2ND_RANGE_START (HZ*28/100) |
| 435 | #define HEARTBEAT_2ND_RANGE_END (HEARTBEAT_2ND_RANGE_START + HEARTBEAT_LEN) | 441 | #define HEARTBEAT_2ND_RANGE_END (HEARTBEAT_2ND_RANGE_START + HEARTBEAT_LEN) |
| 436 | 442 | ||
| 437 | #define NORMALIZED_COUNT(count) (count/(HZ/100)) | 443 | #define LED_UPDATE_INTERVAL (1 + (HZ*19/1000)) |
| 438 | 444 | ||
| 439 | static void led_tasklet_func(unsigned long unused) | 445 | static void led_work_func (void *unused) |
| 440 | { | 446 | { |
| 441 | static unsigned char lastleds; | 447 | static unsigned long last_jiffies; |
| 442 | unsigned char currentleds; /* stores current value of the LEDs */ | ||
| 443 | static unsigned long count; /* static incremented value, not wrapped */ | ||
| 444 | static unsigned long count_HZ; /* counter in range 0..HZ */ | 448 | static unsigned long count_HZ; /* counter in range 0..HZ */ |
| 449 | unsigned char currentleds = 0; /* stores current value of the LEDs */ | ||
| 445 | 450 | ||
| 446 | /* exit if not initialized */ | 451 | /* exit if not initialized */ |
| 447 | if (!led_func_ptr) | 452 | if (!led_func_ptr) |
| 448 | return; | 453 | return; |
| 449 | 454 | ||
| 450 | /* increment the local counters */ | 455 | /* increment the heartbeat timekeeper */ |
| 451 | ++count; | 456 | count_HZ += jiffies - last_jiffies; |
| 452 | if (++count_HZ == HZ) | 457 | last_jiffies = jiffies; |
| 458 | if (count_HZ >= HZ) | ||
| 453 | count_HZ = 0; | 459 | count_HZ = 0; |
| 454 | 460 | ||
| 455 | currentleds = lastleds; | 461 | if (likely(led_heartbeat)) |
| 456 | |||
| 457 | if (led_heartbeat) | ||
| 458 | { | ||
| 459 | /* flash heartbeat-LED like a real heart (2 x short then a long delay) */ | ||
| 460 | if (count_HZ<HEARTBEAT_LEN || | ||
| 461 | (count_HZ>=HEARTBEAT_2ND_RANGE_START && count_HZ<HEARTBEAT_2ND_RANGE_END)) | ||
| 462 | currentleds |= LED_HEARTBEAT; | ||
| 463 | else | ||
| 464 | currentleds &= ~LED_HEARTBEAT; | ||
| 465 | } | ||
| 466 | |||
| 467 | /* look for network activity and flash LEDs respectively */ | ||
| 468 | if (led_lanrxtx && ((NORMALIZED_COUNT(count)+(8/2)) & 7) == 0) | ||
| 469 | { | 462 | { |
| 470 | currentleds &= ~(LED_LAN_RCV | LED_LAN_TX); | 463 | /* flash heartbeat-LED like a real heart |
| 471 | currentleds |= led_get_net_activity(); | 464 | * (2 x short then a long delay) |
| 465 | */ | ||
| 466 | if (count_HZ < HEARTBEAT_LEN || | ||
| 467 | (count_HZ >= HEARTBEAT_2ND_RANGE_START && | ||
| 468 | count_HZ < HEARTBEAT_2ND_RANGE_END)) | ||
| 469 | currentleds |= LED_HEARTBEAT; | ||
| 472 | } | 470 | } |
| 473 | 471 | ||
| 474 | /* avoid to calculate diskio-stats at same irq as netio-stats */ | 472 | if (likely(led_lanrxtx)) currentleds |= led_get_net_activity(); |
| 475 | if (led_diskio && (NORMALIZED_COUNT(count) & 7) == 0) | 473 | if (likely(led_diskio)) currentleds |= led_get_diskio_activity(); |
| 476 | { | ||
| 477 | currentleds &= ~LED_DISK_IO; | ||
| 478 | currentleds |= led_get_diskio_activity(); | ||
| 479 | } | ||
| 480 | 474 | ||
| 481 | /* blink all LEDs twice a second if we got an Oops (HPMC) */ | 475 | /* blink all LEDs twice a second if we got an Oops (HPMC) */ |
| 482 | if (oops_in_progress) { | 476 | if (unlikely(oops_in_progress)) |
| 483 | currentleds = (count_HZ<=(HZ/2)) ? 0 : 0xff; | 477 | currentleds = (count_HZ<=(HZ/2)) ? 0 : 0xff; |
| 484 | } | ||
| 485 | |||
| 486 | /* update the LCD/LEDs */ | ||
| 487 | if (currentleds != lastleds) { | ||
| 488 | led_func_ptr(currentleds); | ||
| 489 | lastleds = currentleds; | ||
| 490 | } | ||
| 491 | } | ||
| 492 | 478 | ||
| 493 | /* main led tasklet struct (scheduled from time.c) */ | 479 | if (currentleds != lastleds) |
| 494 | DECLARE_TASKLET_DISABLED(led_tasklet, led_tasklet_func, 0); | 480 | { |
| 481 | led_func_ptr(currentleds); /* Update the LCD/LEDs */ | ||
| 482 | lastleds = currentleds; | ||
| 483 | } | ||
| 495 | 484 | ||
| 485 | queue_delayed_work(led_wq, &led_task, LED_UPDATE_INTERVAL); | ||
| 486 | } | ||
| 496 | 487 | ||
| 497 | /* | 488 | /* |
| 498 | ** led_halt() | 489 | ** led_halt() |
| @@ -522,9 +513,13 @@ static int led_halt(struct notifier_block *nb, unsigned long event, void *buf) | |||
| 522 | default: return NOTIFY_DONE; | 513 | default: return NOTIFY_DONE; |
| 523 | } | 514 | } |
| 524 | 515 | ||
| 525 | /* completely stop the LED/LCD tasklet */ | 516 | /* Cancel the work item and delete the queue */ |
| 526 | tasklet_disable(&led_tasklet); | 517 | if (led_wq) { |
| 527 | 518 | cancel_rearming_delayed_workqueue(led_wq, &led_task); | |
| 519 | destroy_workqueue(led_wq); | ||
| 520 | led_wq = NULL; | ||
| 521 | } | ||
| 522 | |||
| 528 | if (lcd_info.model == DISPLAY_MODEL_LCD) | 523 | if (lcd_info.model == DISPLAY_MODEL_LCD) |
| 529 | lcd_print(txt); | 524 | lcd_print(txt); |
| 530 | else | 525 | else |
| @@ -559,7 +554,6 @@ int __init register_led_driver(int model, unsigned long cmd_reg, unsigned long d | |||
| 559 | printk(KERN_INFO "LCD display at %lx,%lx registered\n", | 554 | printk(KERN_INFO "LCD display at %lx,%lx registered\n", |
| 560 | LCD_CMD_REG , LCD_DATA_REG); | 555 | LCD_CMD_REG , LCD_DATA_REG); |
| 561 | led_func_ptr = led_LCD_driver; | 556 | led_func_ptr = led_LCD_driver; |
| 562 | lcd_print( lcd_text_default ); | ||
| 563 | led_type = LED_HASLCD; | 557 | led_type = LED_HASLCD; |
| 564 | break; | 558 | break; |
| 565 | 559 | ||
| @@ -589,9 +583,11 @@ int __init register_led_driver(int model, unsigned long cmd_reg, unsigned long d | |||
| 589 | initialized++; | 583 | initialized++; |
| 590 | register_reboot_notifier(&led_notifier); | 584 | register_reboot_notifier(&led_notifier); |
| 591 | 585 | ||
| 592 | /* start the led tasklet for the first time */ | 586 | /* Ensure the work is queued */ |
| 593 | tasklet_enable(&led_tasklet); | 587 | if (led_wq) { |
| 594 | 588 | queue_work(led_wq, &led_task); | |
| 589 | } | ||
| 590 | |||
| 595 | return 0; | 591 | return 0; |
| 596 | } | 592 | } |
| 597 | 593 | ||
| @@ -626,8 +622,8 @@ void __init register_led_regions(void) | |||
| 626 | ** lcd_print() | 622 | ** lcd_print() |
| 627 | ** | 623 | ** |
| 628 | ** Displays the given string on the LCD-Display of newer machines. | 624 | ** Displays the given string on the LCD-Display of newer machines. |
| 629 | ** lcd_print() disables the timer-based led tasklet during its | 625 | ** lcd_print() disables/enables the timer-based led work queue to |
| 630 | ** execution and enables it afterwards again. | 626 | ** avoid a race condition while writing the CMD/DATA register pair. |
| 631 | ** | 627 | ** |
| 632 | */ | 628 | */ |
| 633 | int lcd_print( char *str ) | 629 | int lcd_print( char *str ) |
| @@ -637,12 +633,13 @@ int lcd_print( char *str ) | |||
| 637 | if (!led_func_ptr || lcd_info.model != DISPLAY_MODEL_LCD) | 633 | if (!led_func_ptr || lcd_info.model != DISPLAY_MODEL_LCD) |
| 638 | return 0; | 634 | return 0; |
| 639 | 635 | ||
| 640 | /* temporarily disable the led tasklet */ | 636 | /* temporarily disable the led work task */ |
| 641 | tasklet_disable(&led_tasklet); | 637 | if (led_wq) |
| 638 | cancel_rearming_delayed_workqueue(led_wq, &led_task); | ||
| 642 | 639 | ||
| 643 | /* copy display string to buffer for procfs */ | 640 | /* copy display string to buffer for procfs */ |
| 644 | strlcpy(lcd_text, str, sizeof(lcd_text)); | 641 | strlcpy(lcd_text, str, sizeof(lcd_text)); |
| 645 | 642 | ||
| 646 | /* Set LCD Cursor to 1st character */ | 643 | /* Set LCD Cursor to 1st character */ |
| 647 | gsc_writeb(lcd_info.reset_cmd1, LCD_CMD_REG); | 644 | gsc_writeb(lcd_info.reset_cmd1, LCD_CMD_REG); |
| 648 | udelay(lcd_info.min_cmd_delay); | 645 | udelay(lcd_info.min_cmd_delay); |
| @@ -656,8 +653,10 @@ int lcd_print( char *str ) | |||
| 656 | udelay(lcd_info.min_cmd_delay); | 653 | udelay(lcd_info.min_cmd_delay); |
| 657 | } | 654 | } |
| 658 | 655 | ||
| 659 | /* re-enable the led tasklet */ | 656 | /* re-queue the work */ |
| 660 | tasklet_enable(&led_tasklet); | 657 | if (led_wq) { |
| 658 | queue_work(led_wq, &led_task); | ||
| 659 | } | ||
| 661 | 660 | ||
| 662 | return lcd_info.lcd_width; | 661 | return lcd_info.lcd_width; |
| 663 | } | 662 | } |
diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c index 67c8f3b44848..273a74179720 100644 --- a/drivers/parisc/pdc_stable.c +++ b/drivers/parisc/pdc_stable.c | |||
| @@ -536,7 +536,7 @@ pdcs_info_read(struct subsystem *entry, char *buf) | |||
| 536 | 536 | ||
| 537 | out += sprintf(out, "Memory tested: "); | 537 | out += sprintf(out, "Memory tested: "); |
| 538 | if ((result & 0x0F) < 0x0E) | 538 | if ((result & 0x0F) < 0x0E) |
| 539 | out += sprintf(out, "%.3f MB", 0.256*(1<<(result & 0x0F))); | 539 | out += sprintf(out, "%d kB", (1<<(result & 0x0F))*256); |
| 540 | else | 540 | else |
| 541 | out += sprintf(out, "All"); | 541 | out += sprintf(out, "All"); |
| 542 | out += sprintf(out, "\n"); | 542 | out += sprintf(out, "\n"); |
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c index bd8b3e5a5cd7..c85653f315aa 100644 --- a/drivers/parisc/sba_iommu.c +++ b/drivers/parisc/sba_iommu.c | |||
| @@ -91,8 +91,8 @@ extern struct proc_dir_entry * proc_mckinley_root; | |||
| 91 | #define DBG_RES(x...) | 91 | #define DBG_RES(x...) |
| 92 | #endif | 92 | #endif |
| 93 | 93 | ||
| 94 | #if defined(__LP64__) && !defined(CONFIG_PDC_NARROW) | 94 | #if defined(CONFIG_64BIT) |
| 95 | /* "low end" PA8800 machines use ZX1 chipset */ | 95 | /* "low end" PA8800 machines use ZX1 chipset: PAT PDC and only run 64-bit */ |
| 96 | #define ZX1_SUPPORT | 96 | #define ZX1_SUPPORT |
| 97 | #endif | 97 | #endif |
| 98 | 98 | ||
| @@ -231,7 +231,7 @@ struct ioc { | |||
| 231 | spinlock_t res_lock; | 231 | spinlock_t res_lock; |
| 232 | unsigned int res_bitshift; /* from the LEFT! */ | 232 | unsigned int res_bitshift; /* from the LEFT! */ |
| 233 | unsigned int res_size; /* size of resource map in bytes */ | 233 | unsigned int res_size; /* size of resource map in bytes */ |
| 234 | #if SBA_HINT_SUPPORT | 234 | #ifdef SBA_HINT_SUPPORT |
| 235 | /* FIXME : DMA HINTs not used */ | 235 | /* FIXME : DMA HINTs not used */ |
| 236 | unsigned long hint_mask_pdir; /* bits used for DMA hints */ | 236 | unsigned long hint_mask_pdir; /* bits used for DMA hints */ |
| 237 | unsigned int hint_shift_pdir; | 237 | unsigned int hint_shift_pdir; |
| @@ -294,7 +294,7 @@ static unsigned long piranha_bad_128k = 0; | |||
| 294 | /* Looks nice and keeps the compiler happy */ | 294 | /* Looks nice and keeps the compiler happy */ |
| 295 | #define SBA_DEV(d) ((struct sba_device *) (d)) | 295 | #define SBA_DEV(d) ((struct sba_device *) (d)) |
| 296 | 296 | ||
| 297 | #if SBA_AGP_SUPPORT | 297 | #ifdef SBA_AGP_SUPPORT |
| 298 | static int reserve_sba_gart = 1; | 298 | static int reserve_sba_gart = 1; |
| 299 | #endif | 299 | #endif |
| 300 | 300 | ||
| @@ -314,7 +314,7 @@ static int reserve_sba_gart = 1; | |||
| 314 | #define WRITE_REG32(val, addr) __raw_writel(cpu_to_le32(val), addr) | 314 | #define WRITE_REG32(val, addr) __raw_writel(cpu_to_le32(val), addr) |
| 315 | #define WRITE_REG64(val, addr) __raw_writeq(cpu_to_le64(val), addr) | 315 | #define WRITE_REG64(val, addr) __raw_writeq(cpu_to_le64(val), addr) |
| 316 | 316 | ||
| 317 | #ifdef __LP64__ | 317 | #ifdef CONFIG_64BIT |
| 318 | #define READ_REG(addr) READ_REG64(addr) | 318 | #define READ_REG(addr) READ_REG64(addr) |
| 319 | #define WRITE_REG(value, addr) WRITE_REG64(value, addr) | 319 | #define WRITE_REG(value, addr) WRITE_REG64(value, addr) |
| 320 | #else | 320 | #else |
| @@ -324,7 +324,7 @@ static int reserve_sba_gart = 1; | |||
| 324 | 324 | ||
| 325 | #ifdef DEBUG_SBA_INIT | 325 | #ifdef DEBUG_SBA_INIT |
| 326 | 326 | ||
| 327 | /* NOTE: When __LP64__ isn't defined, READ_REG64() is two 32-bit reads */ | 327 | /* NOTE: When CONFIG_64BIT isn't defined, READ_REG64() is two 32-bit reads */ |
| 328 | 328 | ||
| 329 | /** | 329 | /** |
| 330 | * sba_dump_ranges - debugging only - print ranges assigned to this IOA | 330 | * sba_dump_ranges - debugging only - print ranges assigned to this IOA |
| @@ -364,7 +364,7 @@ static void sba_dump_tlb(void __iomem *hpa) | |||
| 364 | #else | 364 | #else |
| 365 | #define sba_dump_ranges(x) | 365 | #define sba_dump_ranges(x) |
| 366 | #define sba_dump_tlb(x) | 366 | #define sba_dump_tlb(x) |
| 367 | #endif | 367 | #endif /* DEBUG_SBA_INIT */ |
| 368 | 368 | ||
| 369 | 369 | ||
| 370 | #ifdef ASSERT_PDIR_SANITY | 370 | #ifdef ASSERT_PDIR_SANITY |
| @@ -674,7 +674,7 @@ sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size) | |||
| 674 | * | 674 | * |
| 675 | ***************************************************************/ | 675 | ***************************************************************/ |
| 676 | 676 | ||
| 677 | #if SBA_HINT_SUPPORT | 677 | #ifdef SBA_HINT_SUPPORT |
| 678 | #define SBA_DMA_HINT(ioc, val) ((val) << (ioc)->hint_shift_pdir) | 678 | #define SBA_DMA_HINT(ioc, val) ((val) << (ioc)->hint_shift_pdir) |
| 679 | #endif | 679 | #endif |
| 680 | 680 | ||
| @@ -743,9 +743,8 @@ sba_io_pdir_entry(u64 *pdir_ptr, space_t sid, unsigned long vba, | |||
| 743 | * (bit #61, big endian), we have to flush and sync every time | 743 | * (bit #61, big endian), we have to flush and sync every time |
| 744 | * IO-PDIR is changed in Ike/Astro. | 744 | * IO-PDIR is changed in Ike/Astro. |
| 745 | */ | 745 | */ |
| 746 | if (ioc_needs_fdc) { | 746 | if (ioc_needs_fdc) |
| 747 | asm volatile("fdc 0(%%sr1,%0)\n\tsync" : : "r" (pdir_ptr)); | 747 | asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr)); |
| 748 | } | ||
| 749 | } | 748 | } |
| 750 | 749 | ||
| 751 | 750 | ||
| @@ -769,42 +768,57 @@ static SBA_INLINE void | |||
| 769 | sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) | 768 | sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) |
| 770 | { | 769 | { |
| 771 | u32 iovp = (u32) SBA_IOVP(ioc,iova); | 770 | u32 iovp = (u32) SBA_IOVP(ioc,iova); |
| 772 | 771 | u64 *pdir_ptr = &ioc->pdir_base[PDIR_INDEX(iovp)]; | |
| 773 | /* Even though this is a big-endian machine, the entries | ||
| 774 | ** in the iopdir are little endian. That's why we clear the byte | ||
| 775 | ** at +7 instead of at +0. | ||
| 776 | */ | ||
| 777 | int off = PDIR_INDEX(iovp)*sizeof(u64)+7; | ||
| 778 | 772 | ||
| 779 | #ifdef ASSERT_PDIR_SANITY | 773 | #ifdef ASSERT_PDIR_SANITY |
| 780 | /* Assert first pdir entry is set */ | 774 | /* Assert first pdir entry is set. |
| 781 | if (0x80 != (((u8 *) ioc->pdir_base)[off])) { | 775 | ** |
| 776 | ** Even though this is a big-endian machine, the entries | ||
| 777 | ** in the iopdir are little endian. That's why we look at | ||
| 778 | ** the byte at +7 instead of at +0. | ||
| 779 | */ | ||
| 780 | if (0x80 != (((u8 *) pdir_ptr)[7])) { | ||
| 782 | sba_dump_pdir_entry(ioc,"sba_mark_invalid()", PDIR_INDEX(iovp)); | 781 | sba_dump_pdir_entry(ioc,"sba_mark_invalid()", PDIR_INDEX(iovp)); |
| 783 | } | 782 | } |
| 784 | #endif | 783 | #endif |
| 785 | 784 | ||
| 786 | if (byte_cnt <= IOVP_SIZE) | 785 | if (byte_cnt > IOVP_SIZE) |
| 787 | { | 786 | { |
| 788 | iovp |= IOVP_SHIFT; /* set "size" field for PCOM */ | 787 | #if 0 |
| 788 | unsigned long entries_per_cacheline = ioc_needs_fdc ? | ||
| 789 | L1_CACHE_ALIGN(((unsigned long) pdir_ptr)) | ||
| 790 | - (unsigned long) pdir_ptr; | ||
| 791 | : 262144; | ||
| 792 | #endif | ||
| 789 | 793 | ||
| 790 | /* | 794 | /* set "size" field for PCOM */ |
| 791 | ** clear I/O PDIR entry "valid" bit | 795 | iovp |= get_order(byte_cnt) + PAGE_SHIFT; |
| 792 | ** Do NOT clear the rest - save it for debugging. | ||
| 793 | ** We should only clear bits that have previously | ||
| 794 | ** been enabled. | ||
| 795 | */ | ||
| 796 | ((u8 *)(ioc->pdir_base))[off] = 0; | ||
| 797 | } else { | ||
| 798 | u32 t = get_order(byte_cnt) + PAGE_SHIFT; | ||
| 799 | 796 | ||
| 800 | iovp |= t; | ||
| 801 | do { | 797 | do { |
| 802 | /* clear I/O Pdir entry "valid" bit first */ | 798 | /* clear I/O Pdir entry "valid" bit first */ |
| 803 | ((u8 *)(ioc->pdir_base))[off] = 0; | 799 | ((u8 *) pdir_ptr)[7] = 0; |
| 804 | off += sizeof(u64); | 800 | if (ioc_needs_fdc) { |
| 801 | asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr)); | ||
| 802 | #if 0 | ||
| 803 | entries_per_cacheline = L1_CACHE_SHIFT - 3; | ||
| 804 | #endif | ||
| 805 | } | ||
| 806 | pdir_ptr++; | ||
| 805 | byte_cnt -= IOVP_SIZE; | 807 | byte_cnt -= IOVP_SIZE; |
| 806 | } while (byte_cnt > 0); | 808 | } while (byte_cnt > IOVP_SIZE); |
| 807 | } | 809 | } else |
| 810 | iovp |= IOVP_SHIFT; /* set "size" field for PCOM */ | ||
| 811 | |||
| 812 | /* | ||
| 813 | ** clear I/O PDIR entry "valid" bit. | ||
| 814 | ** We have to R/M/W the cacheline regardless how much of the | ||
| 815 | ** pdir entry that we clobber. | ||
| 816 | ** The rest of the entry would be useful for debugging if we | ||
| 817 | ** could dump core on HPMC. | ||
| 818 | */ | ||
| 819 | ((u8 *) pdir_ptr)[7] = 0; | ||
| 820 | if (ioc_needs_fdc) | ||
| 821 | asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr)); | ||
| 808 | 822 | ||
| 809 | WRITE_REG( SBA_IOVA(ioc, iovp, 0, 0), ioc->ioc_hpa+IOC_PCOM); | 823 | WRITE_REG( SBA_IOVA(ioc, iovp, 0, 0), ioc->ioc_hpa+IOC_PCOM); |
| 810 | } | 824 | } |
| @@ -819,18 +833,29 @@ sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) | |||
| 819 | static int sba_dma_supported( struct device *dev, u64 mask) | 833 | static int sba_dma_supported( struct device *dev, u64 mask) |
| 820 | { | 834 | { |
| 821 | struct ioc *ioc; | 835 | struct ioc *ioc; |
| 836 | |||
| 822 | if (dev == NULL) { | 837 | if (dev == NULL) { |
| 823 | printk(KERN_ERR MODULE_NAME ": EISA/ISA/et al not supported\n"); | 838 | printk(KERN_ERR MODULE_NAME ": EISA/ISA/et al not supported\n"); |
| 824 | BUG(); | 839 | BUG(); |
| 825 | return(0); | 840 | return(0); |
| 826 | } | 841 | } |
| 827 | 842 | ||
| 828 | ioc = GET_IOC(dev); | 843 | /* Documentation/DMA-mapping.txt tells drivers to try 64-bit first, |
| 844 | * then fall back to 32-bit if that fails. | ||
| 845 | * We are just "encouraging" 32-bit DMA masks here since we can | ||
| 846 | * never allow IOMMU bypass unless we add special support for ZX1. | ||
| 847 | */ | ||
| 848 | if (mask > ~0U) | ||
| 849 | return 0; | ||
| 829 | 850 | ||
| 830 | /* check if mask is > than the largest IO Virt Address */ | 851 | ioc = GET_IOC(dev); |
| 831 | 852 | ||
| 832 | return((int) (mask >= (ioc->ibase + | 853 | /* |
| 833 | (ioc->pdir_size / sizeof(u64) * IOVP_SIZE) ))); | 854 | * check if mask is >= than the current max IO Virt Address |
| 855 | * The max IO Virt address will *always* < 30 bits. | ||
| 856 | */ | ||
| 857 | return((int)(mask >= (ioc->ibase - 1 + | ||
| 858 | (ioc->pdir_size / sizeof(u64) * IOVP_SIZE) ))); | ||
| 834 | } | 859 | } |
| 835 | 860 | ||
| 836 | 861 | ||
| @@ -898,11 +923,17 @@ sba_map_single(struct device *dev, void *addr, size_t size, | |||
| 898 | size -= IOVP_SIZE; | 923 | size -= IOVP_SIZE; |
| 899 | pdir_start++; | 924 | pdir_start++; |
| 900 | } | 925 | } |
| 901 | /* form complete address */ | 926 | |
| 927 | /* force FDC ops in io_pdir_entry() to be visible to IOMMU */ | ||
| 928 | if (ioc_needs_fdc) | ||
| 929 | asm volatile("sync" : : ); | ||
| 930 | |||
| 902 | #ifdef ASSERT_PDIR_SANITY | 931 | #ifdef ASSERT_PDIR_SANITY |
| 903 | sba_check_pdir(ioc,"Check after sba_map_single()"); | 932 | sba_check_pdir(ioc,"Check after sba_map_single()"); |
| 904 | #endif | 933 | #endif |
| 905 | spin_unlock_irqrestore(&ioc->res_lock, flags); | 934 | spin_unlock_irqrestore(&ioc->res_lock, flags); |
| 935 | |||
| 936 | /* form complete address */ | ||
| 906 | return SBA_IOVA(ioc, iovp, offset, DEFAULT_DMA_HINT_REG); | 937 | return SBA_IOVA(ioc, iovp, offset, DEFAULT_DMA_HINT_REG); |
| 907 | } | 938 | } |
| 908 | 939 | ||
| @@ -958,12 +989,19 @@ sba_unmap_single(struct device *dev, dma_addr_t iova, size_t size, | |||
| 958 | d--; | 989 | d--; |
| 959 | } | 990 | } |
| 960 | ioc->saved_cnt = 0; | 991 | ioc->saved_cnt = 0; |
| 992 | |||
| 961 | READ_REG(ioc->ioc_hpa+IOC_PCOM); /* flush purges */ | 993 | READ_REG(ioc->ioc_hpa+IOC_PCOM); /* flush purges */ |
| 962 | } | 994 | } |
| 963 | #else /* DELAYED_RESOURCE_CNT == 0 */ | 995 | #else /* DELAYED_RESOURCE_CNT == 0 */ |
| 964 | sba_free_range(ioc, iova, size); | 996 | sba_free_range(ioc, iova, size); |
| 997 | |||
| 998 | /* If fdc's were issued, force fdc's to be visible now */ | ||
| 999 | if (ioc_needs_fdc) | ||
| 1000 | asm volatile("sync" : : ); | ||
| 1001 | |||
| 965 | READ_REG(ioc->ioc_hpa+IOC_PCOM); /* flush purges */ | 1002 | READ_REG(ioc->ioc_hpa+IOC_PCOM); /* flush purges */ |
| 966 | #endif /* DELAYED_RESOURCE_CNT == 0 */ | 1003 | #endif /* DELAYED_RESOURCE_CNT == 0 */ |
| 1004 | |||
| 967 | spin_unlock_irqrestore(&ioc->res_lock, flags); | 1005 | spin_unlock_irqrestore(&ioc->res_lock, flags); |
| 968 | 1006 | ||
| 969 | /* XXX REVISIT for 2.5 Linux - need syncdma for zero-copy support. | 1007 | /* XXX REVISIT for 2.5 Linux - need syncdma for zero-copy support. |
| @@ -1106,6 +1144,10 @@ sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents, | |||
| 1106 | */ | 1144 | */ |
| 1107 | filled = iommu_fill_pdir(ioc, sglist, nents, 0, sba_io_pdir_entry); | 1145 | filled = iommu_fill_pdir(ioc, sglist, nents, 0, sba_io_pdir_entry); |
| 1108 | 1146 | ||
| 1147 | /* force FDC ops in io_pdir_entry() to be visible to IOMMU */ | ||
| 1148 | if (ioc_needs_fdc) | ||
| 1149 | asm volatile("sync" : : ); | ||
| 1150 | |||
| 1109 | #ifdef ASSERT_PDIR_SANITY | 1151 | #ifdef ASSERT_PDIR_SANITY |
| 1110 | if (sba_check_pdir(ioc,"Check after sba_map_sg()")) | 1152 | if (sba_check_pdir(ioc,"Check after sba_map_sg()")) |
| 1111 | { | 1153 | { |
| @@ -1234,8 +1276,10 @@ sba_alloc_pdir(unsigned int pdir_size) | |||
| 1234 | unsigned long pdir_order = get_order(pdir_size); | 1276 | unsigned long pdir_order = get_order(pdir_size); |
| 1235 | 1277 | ||
| 1236 | pdir_base = __get_free_pages(GFP_KERNEL, pdir_order); | 1278 | pdir_base = __get_free_pages(GFP_KERNEL, pdir_order); |
| 1237 | if (NULL == (void *) pdir_base) | 1279 | if (NULL == (void *) pdir_base) { |
| 1238 | panic("sba_ioc_init() could not allocate I/O Page Table\n"); | 1280 | panic("%s() could not allocate I/O Page Table\n", |
| 1281 | __FUNCTION__); | ||
| 1282 | } | ||
| 1239 | 1283 | ||
| 1240 | /* If this is not PA8700 (PCX-W2) | 1284 | /* If this is not PA8700 (PCX-W2) |
| 1241 | ** OR newer than ver 2.2 | 1285 | ** OR newer than ver 2.2 |
| @@ -1322,19 +1366,29 @@ sba_alloc_pdir(unsigned int pdir_size) | |||
| 1322 | return (void *) pdir_base; | 1366 | return (void *) pdir_base; |
| 1323 | } | 1367 | } |
| 1324 | 1368 | ||
| 1369 | static struct device *next_device(struct klist_iter *i) | ||
| 1370 | { | ||
| 1371 | struct klist_node * n = klist_next(i); | ||
| 1372 | return n ? container_of(n, struct device, knode_parent) : NULL; | ||
| 1373 | } | ||
| 1374 | |||
| 1325 | /* setup Mercury or Elroy IBASE/IMASK registers. */ | 1375 | /* setup Mercury or Elroy IBASE/IMASK registers. */ |
| 1326 | static void setup_ibase_imask(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | 1376 | static void |
| 1377 | setup_ibase_imask(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | ||
| 1327 | { | 1378 | { |
| 1328 | /* lba_set_iregs() is in drivers/parisc/lba_pci.c */ | 1379 | /* lba_set_iregs() is in drivers/parisc/lba_pci.c */ |
| 1329 | extern void lba_set_iregs(struct parisc_device *, u32, u32); | 1380 | extern void lba_set_iregs(struct parisc_device *, u32, u32); |
| 1330 | struct device *dev; | 1381 | struct device *dev; |
| 1382 | struct klist_iter i; | ||
| 1331 | 1383 | ||
| 1332 | list_for_each_entry(dev, &sba->dev.children, node) { | 1384 | klist_iter_init(&sba->dev.klist_children, &i); |
| 1385 | while ((dev = next_device(&i))) { | ||
| 1333 | struct parisc_device *lba = to_parisc_device(dev); | 1386 | struct parisc_device *lba = to_parisc_device(dev); |
| 1334 | int rope_num = (lba->hpa >> 13) & 0xf; | 1387 | int rope_num = (lba->hpa.start >> 13) & 0xf; |
| 1335 | if (rope_num >> 3 == ioc_num) | 1388 | if (rope_num >> 3 == ioc_num) |
| 1336 | lba_set_iregs(lba, ioc->ibase, ioc->imask); | 1389 | lba_set_iregs(lba, ioc->ibase, ioc->imask); |
| 1337 | } | 1390 | } |
| 1391 | klist_iter_exit(&i); | ||
| 1338 | } | 1392 | } |
| 1339 | 1393 | ||
| 1340 | static void | 1394 | static void |
| @@ -1343,7 +1397,7 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1343 | u32 iova_space_mask; | 1397 | u32 iova_space_mask; |
| 1344 | u32 iova_space_size; | 1398 | u32 iova_space_size; |
| 1345 | int iov_order, tcnfg; | 1399 | int iov_order, tcnfg; |
| 1346 | #if SBA_AGP_SUPPORT | 1400 | #ifdef SBA_AGP_SUPPORT |
| 1347 | int agp_found = 0; | 1401 | int agp_found = 0; |
| 1348 | #endif | 1402 | #endif |
| 1349 | /* | 1403 | /* |
| @@ -1380,7 +1434,7 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1380 | DBG_INIT("%s() pdir %p size %x\n", | 1434 | DBG_INIT("%s() pdir %p size %x\n", |
| 1381 | __FUNCTION__, ioc->pdir_base, ioc->pdir_size); | 1435 | __FUNCTION__, ioc->pdir_base, ioc->pdir_size); |
| 1382 | 1436 | ||
| 1383 | #if SBA_HINT_SUPPORT | 1437 | #ifdef SBA_HINT_SUPPORT |
| 1384 | ioc->hint_shift_pdir = iov_order + PAGE_SHIFT; | 1438 | ioc->hint_shift_pdir = iov_order + PAGE_SHIFT; |
| 1385 | ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT)); | 1439 | ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT)); |
| 1386 | 1440 | ||
| @@ -1404,7 +1458,7 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1404 | 1458 | ||
| 1405 | WRITE_REG(ioc->imask, ioc->ioc_hpa + IOC_IMASK); | 1459 | WRITE_REG(ioc->imask, ioc->ioc_hpa + IOC_IMASK); |
| 1406 | 1460 | ||
| 1407 | #ifdef __LP64__ | 1461 | #ifdef CONFIG_64BIT |
| 1408 | /* | 1462 | /* |
| 1409 | ** Setting the upper bits makes checking for bypass addresses | 1463 | ** Setting the upper bits makes checking for bypass addresses |
| 1410 | ** a little faster later on. | 1464 | ** a little faster later on. |
| @@ -1437,7 +1491,7 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1437 | */ | 1491 | */ |
| 1438 | WRITE_REG(ioc->ibase | 31, ioc->ioc_hpa + IOC_PCOM); | 1492 | WRITE_REG(ioc->ibase | 31, ioc->ioc_hpa + IOC_PCOM); |
| 1439 | 1493 | ||
| 1440 | #if SBA_AGP_SUPPORT | 1494 | #ifdef SBA_AGP_SUPPORT |
| 1441 | /* | 1495 | /* |
| 1442 | ** If an AGP device is present, only use half of the IOV space | 1496 | ** If an AGP device is present, only use half of the IOV space |
| 1443 | ** for PCI DMA. Unfortunately we can't know ahead of time | 1497 | ** for PCI DMA. Unfortunately we can't know ahead of time |
| @@ -1489,11 +1543,9 @@ sba_ioc_init(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1489 | if (iova_space_size < (1 << (20 - PAGE_SHIFT))) { | 1543 | if (iova_space_size < (1 << (20 - PAGE_SHIFT))) { |
| 1490 | iova_space_size = 1 << (20 - PAGE_SHIFT); | 1544 | iova_space_size = 1 << (20 - PAGE_SHIFT); |
| 1491 | } | 1545 | } |
| 1492 | #ifdef __LP64__ | ||
| 1493 | else if (iova_space_size > (1 << (30 - PAGE_SHIFT))) { | 1546 | else if (iova_space_size > (1 << (30 - PAGE_SHIFT))) { |
| 1494 | iova_space_size = 1 << (30 - PAGE_SHIFT); | 1547 | iova_space_size = 1 << (30 - PAGE_SHIFT); |
| 1495 | } | 1548 | } |
| 1496 | #endif | ||
| 1497 | 1549 | ||
| 1498 | /* | 1550 | /* |
| 1499 | ** iova space must be log2() in size. | 1551 | ** iova space must be log2() in size. |
| @@ -1519,7 +1571,7 @@ sba_ioc_init(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1519 | DBG_INIT("%s() pdir %p size %x\n", | 1571 | DBG_INIT("%s() pdir %p size %x\n", |
| 1520 | __FUNCTION__, ioc->pdir_base, pdir_size); | 1572 | __FUNCTION__, ioc->pdir_base, pdir_size); |
| 1521 | 1573 | ||
| 1522 | #if SBA_HINT_SUPPORT | 1574 | #ifdef SBA_HINT_SUPPORT |
| 1523 | /* FIXME : DMA HINTs not used */ | 1575 | /* FIXME : DMA HINTs not used */ |
| 1524 | ioc->hint_shift_pdir = iov_order + PAGE_SHIFT; | 1576 | ioc->hint_shift_pdir = iov_order + PAGE_SHIFT; |
| 1525 | ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT)); | 1577 | ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT)); |
| @@ -1590,7 +1642,7 @@ sba_ioc_init(struct parisc_device *sba, struct ioc *ioc, int ioc_num) | |||
| 1590 | 1642 | ||
| 1591 | static void __iomem *ioc_remap(struct sba_device *sba_dev, int offset) | 1643 | static void __iomem *ioc_remap(struct sba_device *sba_dev, int offset) |
| 1592 | { | 1644 | { |
| 1593 | return ioremap(sba_dev->dev->hpa + offset, SBA_FUNC_SIZE); | 1645 | return ioremap(sba_dev->dev->hpa.start + offset, SBA_FUNC_SIZE); |
| 1594 | } | 1646 | } |
| 1595 | 1647 | ||
| 1596 | static void sba_hw_init(struct sba_device *sba_dev) | 1648 | static void sba_hw_init(struct sba_device *sba_dev) |
| @@ -1968,7 +2020,7 @@ sba_driver_callback(struct parisc_device *dev) | |||
| 1968 | u32 func_class; | 2020 | u32 func_class; |
| 1969 | int i; | 2021 | int i; |
| 1970 | char *version; | 2022 | char *version; |
| 1971 | void __iomem *sba_addr = ioremap(dev->hpa, SBA_FUNC_SIZE); | 2023 | void __iomem *sba_addr = ioremap(dev->hpa.start, SBA_FUNC_SIZE); |
| 1972 | 2024 | ||
| 1973 | sba_dump_ranges(sba_addr); | 2025 | sba_dump_ranges(sba_addr); |
| 1974 | 2026 | ||
| @@ -2010,7 +2062,7 @@ sba_driver_callback(struct parisc_device *dev) | |||
| 2010 | } | 2062 | } |
| 2011 | 2063 | ||
| 2012 | printk(KERN_INFO "%s found %s at 0x%lx\n", | 2064 | printk(KERN_INFO "%s found %s at 0x%lx\n", |
| 2013 | MODULE_NAME, version, dev->hpa); | 2065 | MODULE_NAME, version, dev->hpa.start); |
| 2014 | 2066 | ||
| 2015 | sba_dev = kmalloc(sizeof(struct sba_device), GFP_KERNEL); | 2067 | sba_dev = kmalloc(sizeof(struct sba_device), GFP_KERNEL); |
| 2016 | if (!sba_dev) { | 2068 | if (!sba_dev) { |
diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c index e0efed796b92..bab3bcabcb6e 100644 --- a/drivers/parisc/superio.c +++ b/drivers/parisc/superio.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | * (C) Copyright 2000 Alex deVries <alex@onefishtwo.ca> | 11 | * (C) Copyright 2000 Alex deVries <alex@onefishtwo.ca> |
| 12 | * (C) Copyright 2001 John Marvin <jsm fc hp com> | 12 | * (C) Copyright 2001 John Marvin <jsm fc hp com> |
| 13 | * (C) Copyright 2003 Grant Grundler <grundler parisc-linux org> | 13 | * (C) Copyright 2003 Grant Grundler <grundler parisc-linux org> |
| 14 | * (C) Copyright 2005 Kyle McMartin <kyle@parisc-linux.org> | ||
| 14 | * | 15 | * |
| 15 | * This program is free software; you can redistribute it and/or | 16 | * This program is free software; you can redistribute it and/or |
| 16 | * modify it under the terms of the GNU General Public License as | 17 | * modify it under the terms of the GNU General Public License as |
| @@ -405,6 +406,7 @@ static void __devinit superio_serial_init(void) | |||
| 405 | 406 | ||
| 406 | serial[0].iobase = sio_dev.sp1_base; | 407 | serial[0].iobase = sio_dev.sp1_base; |
| 407 | serial[0].irq = SP1_IRQ; | 408 | serial[0].irq = SP1_IRQ; |
| 409 | spin_lock_init(&serial[0].lock); | ||
| 408 | 410 | ||
| 409 | retval = early_serial_setup(&serial[0]); | 411 | retval = early_serial_setup(&serial[0]); |
| 410 | if (retval < 0) { | 412 | if (retval < 0) { |
| @@ -414,6 +416,7 @@ static void __devinit superio_serial_init(void) | |||
| 414 | 416 | ||
| 415 | serial[1].iobase = sio_dev.sp2_base; | 417 | serial[1].iobase = sio_dev.sp2_base; |
| 416 | serial[1].irq = SP2_IRQ; | 418 | serial[1].irq = SP2_IRQ; |
| 419 | spin_lock_init(&serial[1].lock); | ||
| 417 | retval = early_serial_setup(&serial[1]); | 420 | retval = early_serial_setup(&serial[1]); |
| 418 | 421 | ||
| 419 | if (retval < 0) | 422 | if (retval < 0) |
diff --git a/drivers/parisc/wax.c b/drivers/parisc/wax.c index e547d7d024d8..17dce2adf7fe 100644 --- a/drivers/parisc/wax.c +++ b/drivers/parisc/wax.c | |||
| @@ -81,7 +81,7 @@ wax_init_chip(struct parisc_device *dev) | |||
| 81 | return -ENOMEM; | 81 | return -ENOMEM; |
| 82 | 82 | ||
| 83 | wax->name = "wax"; | 83 | wax->name = "wax"; |
| 84 | wax->hpa = dev->hpa; | 84 | wax->hpa = dev->hpa.start; |
| 85 | 85 | ||
| 86 | wax->version = 0; /* gsc_readb(wax->hpa+WAX_VER); */ | 86 | wax->version = 0; /* gsc_readb(wax->hpa+WAX_VER); */ |
| 87 | printk(KERN_INFO "%s at 0x%lx found.\n", wax->name, wax->hpa); | 87 | printk(KERN_INFO "%s at 0x%lx found.\n", wax->name, wax->hpa); |
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c index 02d72acd1c89..fde29a75f888 100644 --- a/drivers/parport/parport_gsc.c +++ b/drivers/parport/parport_gsc.c | |||
| @@ -359,11 +359,12 @@ static int __devinit parport_init_chip(struct parisc_device *dev) | |||
| 359 | unsigned long port; | 359 | unsigned long port; |
| 360 | 360 | ||
| 361 | if (!dev->irq) { | 361 | if (!dev->irq) { |
| 362 | printk("IRQ not found for parallel device at 0x%lx\n", dev->hpa); | 362 | printk(KERN_WARNING "IRQ not found for parallel device at 0x%lx\n", |
| 363 | dev->hpa.start); | ||
| 363 | return -ENODEV; | 364 | return -ENODEV; |
| 364 | } | 365 | } |
| 365 | 366 | ||
| 366 | port = dev->hpa + PARPORT_GSC_OFFSET; | 367 | port = dev->hpa.start + PARPORT_GSC_OFFSET; |
| 367 | 368 | ||
| 368 | /* some older machines with ASP-chip don't support | 369 | /* some older machines with ASP-chip don't support |
| 369 | * the enhanced parport modes. | 370 | * the enhanced parport modes. |
diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c index 4cbb6187cc44..459a4daebece 100644 --- a/drivers/scsi/lasi700.c +++ b/drivers/scsi/lasi700.c | |||
| @@ -98,7 +98,7 @@ MODULE_DEVICE_TABLE(parisc, lasi700_ids); | |||
| 98 | static int __init | 98 | static int __init |
| 99 | lasi700_probe(struct parisc_device *dev) | 99 | lasi700_probe(struct parisc_device *dev) |
| 100 | { | 100 | { |
| 101 | unsigned long base = dev->hpa + LASI_SCSI_CORE_OFFSET; | 101 | unsigned long base = dev->hpa.start + LASI_SCSI_CORE_OFFSET; |
| 102 | struct NCR_700_Host_Parameters *hostdata; | 102 | struct NCR_700_Host_Parameters *hostdata; |
| 103 | struct Scsi_Host *host; | 103 | struct Scsi_Host *host; |
| 104 | 104 | ||
| @@ -125,8 +125,6 @@ lasi700_probe(struct parisc_device *dev) | |||
| 125 | hostdata->dmode_extra = DMODE_FC2; | 125 | hostdata->dmode_extra = DMODE_FC2; |
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | NCR_700_set_mem_mapped(hostdata); | ||
| 129 | |||
| 130 | host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev); | 128 | host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev); |
| 131 | if (!host) | 129 | if (!host) |
| 132 | goto out_kfree; | 130 | goto out_kfree; |
| @@ -168,7 +166,7 @@ lasi700_driver_remove(struct parisc_device *dev) | |||
| 168 | } | 166 | } |
| 169 | 167 | ||
| 170 | static struct parisc_driver lasi700_driver = { | 168 | static struct parisc_driver lasi700_driver = { |
| 171 | .name = "Lasi SCSI", | 169 | .name = "lasi_scsi", |
| 172 | .id_table = lasi700_ids, | 170 | .id_table = lasi700_ids, |
| 173 | .probe = lasi700_probe, | 171 | .probe = lasi700_probe, |
| 174 | .remove = __devexit_p(lasi700_driver_remove), | 172 | .remove = __devexit_p(lasi700_driver_remove), |
diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c index 5a51051e31f0..b131432c677d 100644 --- a/drivers/scsi/zalon.c +++ b/drivers/scsi/zalon.c | |||
| @@ -88,7 +88,7 @@ zalon_probe(struct parisc_device *dev) | |||
| 88 | struct gsc_irq gsc_irq; | 88 | struct gsc_irq gsc_irq; |
| 89 | u32 zalon_vers; | 89 | u32 zalon_vers; |
| 90 | int error = -ENODEV; | 90 | int error = -ENODEV; |
| 91 | void __iomem *zalon = ioremap(dev->hpa, 4096); | 91 | void __iomem *zalon = ioremap(dev->hpa.start, 4096); |
| 92 | void __iomem *io_port = zalon + GSC_SCSI_ZALON_OFFSET; | 92 | void __iomem *io_port = zalon + GSC_SCSI_ZALON_OFFSET; |
| 93 | static int unit = 0; | 93 | static int unit = 0; |
| 94 | struct Scsi_Host *host; | 94 | struct Scsi_Host *host; |
| @@ -127,7 +127,7 @@ zalon_probe(struct parisc_device *dev) | |||
| 127 | device.chip = zalon720_chip; | 127 | device.chip = zalon720_chip; |
| 128 | device.host_id = 7; | 128 | device.host_id = 7; |
| 129 | device.dev = &dev->dev; | 129 | device.dev = &dev->dev; |
| 130 | device.slot.base = dev->hpa + GSC_SCSI_ZALON_OFFSET; | 130 | device.slot.base = dev->hpa.start + GSC_SCSI_ZALON_OFFSET; |
| 131 | device.slot.base_v = io_port; | 131 | device.slot.base_v = io_port; |
| 132 | device.slot.irq = dev->irq; | 132 | device.slot.irq = dev->irq; |
| 133 | device.differential = 2; | 133 | device.differential = 2; |
diff --git a/drivers/serial/8250_gsc.c b/drivers/serial/8250_gsc.c index 431aa5761a7a..8b4947933d9b 100644 --- a/drivers/serial/8250_gsc.c +++ b/drivers/serial/8250_gsc.c | |||
| @@ -29,7 +29,6 @@ | |||
| 29 | static int __init | 29 | static int __init |
| 30 | serial_init_chip(struct parisc_device *dev) | 30 | serial_init_chip(struct parisc_device *dev) |
| 31 | { | 31 | { |
| 32 | static int serial_line_nr; | ||
| 33 | struct uart_port port; | 32 | struct uart_port port; |
| 34 | unsigned long address; | 33 | unsigned long address; |
| 35 | int err; | 34 | int err; |
| @@ -42,12 +41,13 @@ serial_init_chip(struct parisc_device *dev) | |||
| 42 | */ | 41 | */ |
| 43 | if (parisc_parent(dev)->id.hw_type != HPHW_IOA) { | 42 | if (parisc_parent(dev)->id.hw_type != HPHW_IOA) { |
| 44 | printk(KERN_INFO "Serial: device 0x%lx not configured.\n" | 43 | printk(KERN_INFO "Serial: device 0x%lx not configured.\n" |
| 45 | "Enable support for Wax, Lasi, Asp or Dino.\n", dev->hpa); | 44 | "Enable support for Wax, Lasi, Asp or Dino.\n", |
| 45 | dev->hpa.start); | ||
| 46 | } | 46 | } |
| 47 | return -ENODEV; | 47 | return -ENODEV; |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | address = dev->hpa; | 50 | address = dev->hpa.start; |
| 51 | if (dev->id.sversion != 0x8d) { | 51 | if (dev->id.sversion != 0x8d) { |
| 52 | address += 0x800; | 52 | address += 0x800; |
| 53 | } | 53 | } |
diff --git a/drivers/serial/mux.c b/drivers/serial/mux.c index 189064607709..660bae5ba179 100644 --- a/drivers/serial/mux.c +++ b/drivers/serial/mux.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/delay.h> /* for udelay */ | 27 | #include <linux/delay.h> /* for udelay */ |
| 28 | #include <linux/device.h> | 28 | #include <linux/device.h> |
| 29 | #include <asm/io.h> | 29 | #include <asm/io.h> |
| 30 | #include <asm/irq.h> | ||
| 30 | #include <asm/parisc-device.h> | 31 | #include <asm/parisc-device.h> |
| 31 | 32 | ||
| 32 | #ifdef CONFIG_MAGIC_SYSRQ | 33 | #ifdef CONFIG_MAGIC_SYSRQ |
| @@ -444,7 +445,7 @@ static int __init mux_probe(struct parisc_device *dev) | |||
| 444 | unsigned long bytecnt; | 445 | unsigned long bytecnt; |
| 445 | struct uart_port *port; | 446 | struct uart_port *port; |
| 446 | 447 | ||
| 447 | status = pdc_iodc_read(&bytecnt, dev->hpa, 0, iodc_data, 32); | 448 | status = pdc_iodc_read(&bytecnt, dev->hpa.start, 0, iodc_data, 32); |
| 448 | if(status != PDC_OK) { | 449 | if(status != PDC_OK) { |
| 449 | printk(KERN_ERR "Serial mux: Unable to read IODC.\n"); | 450 | printk(KERN_ERR "Serial mux: Unable to read IODC.\n"); |
| 450 | return 1; | 451 | return 1; |
| @@ -469,16 +470,18 @@ static int __init mux_probe(struct parisc_device *dev) | |||
| 469 | for(i = 0; i < ports; ++i, ++port_cnt) { | 470 | for(i = 0; i < ports; ++i, ++port_cnt) { |
| 470 | port = &mux_ports[port_cnt]; | 471 | port = &mux_ports[port_cnt]; |
| 471 | port->iobase = 0; | 472 | port->iobase = 0; |
| 472 | port->mapbase = dev->hpa + MUX_OFFSET + (i * MUX_LINE_OFFSET); | 473 | port->mapbase = dev->hpa.start + MUX_OFFSET + |
| 474 | (i * MUX_LINE_OFFSET); | ||
| 473 | port->membase = ioremap(port->mapbase, MUX_LINE_OFFSET); | 475 | port->membase = ioremap(port->mapbase, MUX_LINE_OFFSET); |
| 474 | port->iotype = SERIAL_IO_MEM; | 476 | port->iotype = SERIAL_IO_MEM; |
| 475 | port->type = PORT_MUX; | 477 | port->type = PORT_MUX; |
| 476 | port->irq = SERIAL_IRQ_NONE; | 478 | port->irq = NO_IRQ; |
| 477 | port->uartclk = 0; | 479 | port->uartclk = 0; |
| 478 | port->fifosize = MUX_FIFO_SIZE; | 480 | port->fifosize = MUX_FIFO_SIZE; |
| 479 | port->ops = &mux_pops; | 481 | port->ops = &mux_pops; |
| 480 | port->flags = UPF_BOOT_AUTOCONF; | 482 | port->flags = UPF_BOOT_AUTOCONF; |
| 481 | port->line = port_cnt; | 483 | port->line = port_cnt; |
| 484 | spin_lock_init(&port->lock); | ||
| 482 | status = uart_add_one_port(&mux_driver, port); | 485 | status = uart_add_one_port(&mux_driver, port); |
| 483 | BUG_ON(status); | 486 | BUG_ON(status); |
| 484 | } | 487 | } |
| @@ -497,7 +500,7 @@ static struct parisc_device_id mux_tbl[] = { | |||
| 497 | MODULE_DEVICE_TABLE(parisc, mux_tbl); | 500 | MODULE_DEVICE_TABLE(parisc, mux_tbl); |
| 498 | 501 | ||
| 499 | static struct parisc_driver serial_mux_driver = { | 502 | static struct parisc_driver serial_mux_driver = { |
| 500 | .name = "Serial MUX", | 503 | .name = "serial_mux", |
| 501 | .id_table = mux_tbl, | 504 | .id_table = mux_tbl, |
| 502 | .probe = mux_probe, | 505 | .probe = mux_probe, |
| 503 | }; | 506 | }; |
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig index eb83a7874c71..7e731691e2a9 100644 --- a/drivers/video/console/Kconfig +++ b/drivers/video/console/Kconfig | |||
| @@ -110,7 +110,7 @@ config STI_CONSOLE | |||
| 110 | 110 | ||
| 111 | config FONTS | 111 | config FONTS |
| 112 | bool "Select compiled-in fonts" | 112 | bool "Select compiled-in fonts" |
| 113 | depends on FRAMEBUFFER_CONSOLE | 113 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE |
| 114 | help | 114 | help |
| 115 | Say Y here if you would like to use fonts other than the default | 115 | Say Y here if you would like to use fonts other than the default |
| 116 | your frame buffer console usually use. | 116 | your frame buffer console usually use. |
| @@ -123,7 +123,7 @@ config FONTS | |||
| 123 | 123 | ||
| 124 | config FONT_8x8 | 124 | config FONT_8x8 |
| 125 | bool "VGA 8x8 font" if FONTS | 125 | bool "VGA 8x8 font" if FONTS |
| 126 | depends on FRAMEBUFFER_CONSOLE | 126 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE |
| 127 | default y if !SPARC32 && !SPARC64 && !FONTS | 127 | default y if !SPARC32 && !SPARC64 && !FONTS |
| 128 | help | 128 | help |
| 129 | This is the "high resolution" font for the VGA frame buffer (the one | 129 | This is the "high resolution" font for the VGA frame buffer (the one |
| @@ -137,7 +137,7 @@ config FONT_8x8 | |||
| 137 | 137 | ||
| 138 | config FONT_8x16 | 138 | config FONT_8x16 |
| 139 | bool "VGA 8x16 font" if FONTS | 139 | bool "VGA 8x16 font" if FONTS |
| 140 | depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE=y || USB_SISUSBVGA_CON | 140 | depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE=y || STI_CONSOLE || USB_SISUSBVGA_CON |
| 141 | default y if !SPARC32 && !SPARC64 && !FONTS | 141 | default y if !SPARC32 && !SPARC64 && !FONTS |
| 142 | help | 142 | help |
| 143 | This is the "high resolution" font for the VGA frame buffer (the one | 143 | This is the "high resolution" font for the VGA frame buffer (the one |
| @@ -147,7 +147,7 @@ config FONT_8x16 | |||
| 147 | 147 | ||
| 148 | config FONT_6x11 | 148 | config FONT_6x11 |
| 149 | bool "Mac console 6x11 font (not supported by all drivers)" if FONTS | 149 | bool "Mac console 6x11 font (not supported by all drivers)" if FONTS |
| 150 | depends on FRAMEBUFFER_CONSOLE | 150 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE |
| 151 | default y if !SPARC32 && !SPARC64 && !FONTS && MAC | 151 | default y if !SPARC32 && !SPARC64 && !FONTS && MAC |
| 152 | help | 152 | help |
| 153 | Small console font with Macintosh-style high-half glyphs. Some Mac | 153 | Small console font with Macintosh-style high-half glyphs. Some Mac |
diff --git a/drivers/video/console/sticore.c b/drivers/video/console/sticore.c index d940f605acb6..a7bcd17112c0 100644 --- a/drivers/video/console/sticore.c +++ b/drivers/video/console/sticore.c | |||
| @@ -511,12 +511,12 @@ sti_select_fbfont( struct sti_cooked_rom *cooked_rom, char *fbfont_name ) | |||
| 511 | struct sti_cooked_font *cooked_font; | 511 | struct sti_cooked_font *cooked_font; |
| 512 | 512 | ||
| 513 | if (!fbfont_name || !strlen(fbfont_name)) | 513 | if (!fbfont_name || !strlen(fbfont_name)) |
| 514 | return NULL; | 514 | return NULL; |
| 515 | fbfont = find_font(fbfont_name); | 515 | fbfont = find_font(fbfont_name); |
| 516 | if (!fbfont) | 516 | if (!fbfont) |
| 517 | fbfont = get_default_font(1024,768); | 517 | fbfont = get_default_font(1024,768); |
| 518 | if (!fbfont) | 518 | if (!fbfont) |
| 519 | return NULL; | 519 | return NULL; |
| 520 | 520 | ||
| 521 | DPRINTK((KERN_DEBUG "selected %dx%d fb-font %s\n", | 521 | DPRINTK((KERN_DEBUG "selected %dx%d fb-font %s\n", |
| 522 | fbfont->width, fbfont->height, fbfont->name)); | 522 | fbfont->width, fbfont->height, fbfont->name)); |
| @@ -527,7 +527,7 @@ sti_select_fbfont( struct sti_cooked_rom *cooked_rom, char *fbfont_name ) | |||
| 527 | 527 | ||
| 528 | nf = kmalloc(size, GFP_KERNEL); | 528 | nf = kmalloc(size, GFP_KERNEL); |
| 529 | if (!nf) | 529 | if (!nf) |
| 530 | return NULL; | 530 | return NULL; |
| 531 | memset(nf, 0, size); | 531 | memset(nf, 0, size); |
| 532 | 532 | ||
| 533 | nf->first_char = 0; | 533 | nf->first_char = 0; |
| @@ -546,8 +546,8 @@ sti_select_fbfont( struct sti_cooked_rom *cooked_rom, char *fbfont_name ) | |||
| 546 | 546 | ||
| 547 | cooked_font = kmalloc(sizeof(*cooked_font), GFP_KERNEL); | 547 | cooked_font = kmalloc(sizeof(*cooked_font), GFP_KERNEL); |
| 548 | if (!cooked_font) { | 548 | if (!cooked_font) { |
| 549 | kfree(nf); | 549 | kfree(nf); |
| 550 | return NULL; | 550 | return NULL; |
| 551 | } | 551 | } |
| 552 | 552 | ||
| 553 | cooked_font->raw = nf; | 553 | cooked_font->raw = nf; |
| @@ -595,7 +595,7 @@ sti_select_font(struct sti_cooked_rom *rom, | |||
| 595 | static void __init | 595 | static void __init |
| 596 | sti_dump_rom(struct sti_rom *rom) | 596 | sti_dump_rom(struct sti_rom *rom) |
| 597 | { | 597 | { |
| 598 | printk(KERN_INFO " id %04x-%04x, conforms to spec rev. %d.%02x\n", | 598 | printk(KERN_INFO " id %04x-%04x, conforms to spec rev. %d.%02x\n", |
| 599 | rom->graphics_id[0], | 599 | rom->graphics_id[0], |
| 600 | rom->graphics_id[1], | 600 | rom->graphics_id[1], |
| 601 | rom->revno[0] >> 4, | 601 | rom->revno[0] >> 4, |
| @@ -651,15 +651,16 @@ sti_search_font(struct sti_cooked_rom *rom, int height, int width) | |||
| 651 | struct sti_cooked_font *font; | 651 | struct sti_cooked_font *font; |
| 652 | int i = 0; | 652 | int i = 0; |
| 653 | 653 | ||
| 654 | for(font = rom->font_start; font; font = font->next_font, i++) { | 654 | for (font = rom->font_start; font; font = font->next_font, i++) { |
| 655 | if((font->raw->width == width) && (font->raw->height == height)) | 655 | if ((font->raw->width == width) && |
| 656 | (font->raw->height == height)) | ||
| 656 | return i; | 657 | return i; |
| 657 | } | 658 | } |
| 658 | return 0; | 659 | return 0; |
| 659 | } | 660 | } |
| 660 | 661 | ||
| 661 | #define BMODE_RELOCATE(offset) offset = (offset) / 4; | 662 | #define BMODE_RELOCATE(offset) offset = (offset) / 4; |
| 662 | #define BMODE_LAST_ADDR_OFFS 0x50 | 663 | #define BMODE_LAST_ADDR_OFFS 0x50 |
| 663 | 664 | ||
| 664 | static void * __init | 665 | static void * __init |
| 665 | sti_bmode_font_raw(struct sti_cooked_font *f) | 666 | sti_bmode_font_raw(struct sti_cooked_font *f) |
| @@ -700,35 +701,35 @@ sti_get_bmode_rom (unsigned long address) | |||
| 700 | { | 701 | { |
| 701 | struct sti_rom *raw; | 702 | struct sti_rom *raw; |
| 702 | u32 size; | 703 | u32 size; |
| 703 | struct sti_rom_font *raw_font, *font_start; | 704 | struct sti_rom_font *raw_font, *font_start; |
| 704 | 705 | ||
| 705 | sti_bmode_rom_copy(address + BMODE_LAST_ADDR_OFFS, sizeof(size), &size); | 706 | sti_bmode_rom_copy(address + BMODE_LAST_ADDR_OFFS, sizeof(size), &size); |
| 706 | 707 | ||
| 707 | size = (size+3) / 4; | 708 | size = (size+3) / 4; |
| 708 | raw = kmalloc(size, GFP_KERNEL); | 709 | raw = kmalloc(size, GFP_KERNEL); |
| 709 | if (raw) { | 710 | if (raw) { |
| 710 | sti_bmode_rom_copy(address, size, raw); | 711 | sti_bmode_rom_copy(address, size, raw); |
| 711 | memmove (&raw->res004, &raw->type[0], 0x3c); | 712 | memmove (&raw->res004, &raw->type[0], 0x3c); |
| 712 | raw->type[3] = raw->res004; | 713 | raw->type[3] = raw->res004; |
| 713 | 714 | ||
| 714 | BMODE_RELOCATE (raw->region_list); | 715 | BMODE_RELOCATE (raw->region_list); |
| 715 | BMODE_RELOCATE (raw->font_start); | 716 | BMODE_RELOCATE (raw->font_start); |
| 716 | 717 | ||
| 717 | BMODE_RELOCATE (raw->init_graph); | 718 | BMODE_RELOCATE (raw->init_graph); |
| 718 | BMODE_RELOCATE (raw->state_mgmt); | 719 | BMODE_RELOCATE (raw->state_mgmt); |
| 719 | BMODE_RELOCATE (raw->font_unpmv); | 720 | BMODE_RELOCATE (raw->font_unpmv); |
| 720 | BMODE_RELOCATE (raw->block_move); | 721 | BMODE_RELOCATE (raw->block_move); |
| 721 | BMODE_RELOCATE (raw->inq_conf); | 722 | BMODE_RELOCATE (raw->inq_conf); |
| 722 | 723 | ||
| 723 | raw_font = ((void *)raw) + raw->font_start; | 724 | raw_font = ((void *)raw) + raw->font_start; |
| 724 | font_start = raw_font; | 725 | font_start = raw_font; |
| 725 | 726 | ||
| 726 | while (raw_font->next_font) { | 727 | while (raw_font->next_font) { |
| 727 | BMODE_RELOCATE (raw_font->next_font); | 728 | BMODE_RELOCATE (raw_font->next_font); |
| 728 | raw_font = ((void *)font_start) + raw_font->next_font; | 729 | raw_font = ((void *)font_start) + raw_font->next_font; |
| 729 | } | 730 | } |
| 730 | } | 731 | } |
| 731 | return raw; | 732 | return raw; |
| 732 | } | 733 | } |
| 733 | 734 | ||
| 734 | struct sti_rom * __init | 735 | struct sti_rom * __init |
| @@ -736,15 +737,15 @@ sti_get_wmode_rom (unsigned long address) | |||
| 736 | { | 737 | { |
| 737 | struct sti_rom *raw; | 738 | struct sti_rom *raw; |
| 738 | unsigned long size; | 739 | unsigned long size; |
| 739 | 740 | ||
| 740 | /* read the ROM size directly from the struct in ROM */ | 741 | /* read the ROM size directly from the struct in ROM */ |
| 741 | size = gsc_readl(address + offsetof(struct sti_rom,last_addr)); | 742 | size = gsc_readl(address + offsetof(struct sti_rom,last_addr)); |
| 742 | 743 | ||
| 743 | raw = kmalloc(size, GFP_KERNEL); | 744 | raw = kmalloc(size, GFP_KERNEL); |
| 744 | if(raw) | 745 | if (raw) |
| 745 | sti_rom_copy(address, size, raw); | 746 | sti_rom_copy(address, size, raw); |
| 746 | 747 | ||
| 747 | return raw; | 748 | return raw; |
| 748 | } | 749 | } |
| 749 | 750 | ||
| 750 | int __init | 751 | int __init |
| @@ -757,14 +758,14 @@ sti_read_rom(int wordmode, struct sti_struct *sti, unsigned long address) | |||
| 757 | if (!cooked) | 758 | if (!cooked) |
| 758 | goto out_err; | 759 | goto out_err; |
| 759 | 760 | ||
| 760 | if (wordmode) | 761 | if (wordmode) |
| 761 | raw = sti_get_wmode_rom (address); | 762 | raw = sti_get_wmode_rom (address); |
| 762 | else | 763 | else |
| 763 | raw = sti_get_bmode_rom (address); | 764 | raw = sti_get_bmode_rom (address); |
| 765 | |||
| 766 | if (!raw) | ||
| 767 | goto out_err; | ||
| 764 | 768 | ||
| 765 | if (!raw) | ||
| 766 | goto out_err; | ||
| 767 | |||
| 768 | if (!sti_cook_fonts(cooked, raw)) { | 769 | if (!sti_cook_fonts(cooked, raw)) { |
| 769 | printk(KERN_ERR "No font found for STI at %08lx\n", address); | 770 | printk(KERN_ERR "No font found for STI at %08lx\n", address); |
| 770 | goto out_err; | 771 | goto out_err; |
| @@ -787,7 +788,7 @@ sti_read_rom(int wordmode, struct sti_struct *sti, unsigned long address) | |||
| 787 | sti->font_width = sti->font->raw->width; | 788 | sti->font_width = sti->font->raw->width; |
| 788 | sti->font_height = sti->font->raw->height; | 789 | sti->font_height = sti->font->raw->height; |
| 789 | if (!wordmode) | 790 | if (!wordmode) |
| 790 | sti->font->raw = sti_bmode_font_raw(sti->font); | 791 | sti->font->raw = sti_bmode_font_raw(sti->font); |
| 791 | 792 | ||
| 792 | sti->sti_mem_request = raw->sti_mem_req; | 793 | sti->sti_mem_request = raw->sti_mem_req; |
| 793 | sti->graphics_id[0] = raw->graphics_id[0]; | 794 | sti->graphics_id[0] = raw->graphics_id[0]; |
| @@ -811,16 +812,16 @@ sti_try_rom_generic(unsigned long address, unsigned long hpa, struct pci_dev *pd | |||
| 811 | u32 sig; | 812 | u32 sig; |
| 812 | 813 | ||
| 813 | if (num_sti_roms >= MAX_STI_ROMS) { | 814 | if (num_sti_roms >= MAX_STI_ROMS) { |
| 814 | printk(KERN_WARNING "maximum number of STI ROMS reached !\n"); | 815 | printk(KERN_WARNING "maximum number of STI ROMS reached !\n"); |
| 815 | return NULL; | 816 | return NULL; |
| 816 | } | 817 | } |
| 817 | 818 | ||
| 818 | sti = kmalloc(sizeof(*sti), GFP_KERNEL); | 819 | sti = kmalloc(sizeof(*sti), GFP_KERNEL); |
| 819 | if (!sti) { | 820 | if (!sti) { |
| 820 | printk(KERN_ERR "Not enough memory !\n"); | 821 | printk(KERN_ERR "Not enough memory !\n"); |
| 821 | return NULL; | 822 | return NULL; |
| 822 | } | 823 | } |
| 823 | 824 | ||
| 824 | memset(sti, 0, sizeof(*sti)); | 825 | memset(sti, 0, sizeof(*sti)); |
| 825 | spin_lock_init(&sti->lock); | 826 | spin_lock_init(&sti->lock); |
| 826 | 827 | ||
| @@ -932,28 +933,21 @@ static void __init sticore_check_for_default_sti(struct sti_struct *sti, char *p | |||
| 932 | */ | 933 | */ |
| 933 | static int __init sticore_pa_init(struct parisc_device *dev) | 934 | static int __init sticore_pa_init(struct parisc_device *dev) |
| 934 | { | 935 | { |
| 935 | unsigned long rom = 0; | ||
| 936 | char pa_path[21]; | 936 | char pa_path[21]; |
| 937 | struct sti_struct *sti = NULL; | 937 | struct sti_struct *sti = NULL; |
| 938 | 938 | int hpa = dev->hpa.start; | |
| 939 | if(dev->num_addrs) { | 939 | |
| 940 | rom = dev->addr[0]; | 940 | if (dev->num_addrs && dev->addr[0]) |
| 941 | } | 941 | sti = sti_try_rom_generic(dev->addr[0], hpa, NULL); |
| 942 | if (!rom) { | 942 | if (!sti) |
| 943 | rom = dev->hpa; | 943 | sti = sti_try_rom_generic(hpa, hpa, NULL); |
| 944 | DPRINTK((KERN_DEBUG "Trying STI ROM at %08lx, hpa at %08lx\n", rom, dev->hpa)); | 944 | if (!sti) |
| 945 | sti = sti_try_rom_generic(rom, dev->hpa, NULL); | 945 | sti = sti_try_rom_generic(PAGE0->proc_sti, hpa, NULL); |
| 946 | rom = PAGE0->proc_sti; | ||
| 947 | } | ||
| 948 | if (!sti) { | ||
| 949 | DPRINTK((KERN_DEBUG "Trying STI ROM at %08lx, hpa at %08lx\n", rom, dev->hpa)); | ||
| 950 | sti = sti_try_rom_generic(rom, dev->hpa, NULL); | ||
| 951 | } | ||
| 952 | if (!sti) | 946 | if (!sti) |
| 953 | return 1; | 947 | return 1; |
| 954 | 948 | ||
| 955 | print_pa_hwpath(dev, pa_path); | 949 | print_pa_hwpath(dev, pa_path); |
| 956 | sticore_check_for_default_sti (sti, pa_path); | 950 | sticore_check_for_default_sti(sti, pa_path); |
| 957 | return 0; | 951 | return 0; |
| 958 | } | 952 | } |
| 959 | 953 | ||
diff --git a/include/asm-parisc/assembly.h b/include/asm-parisc/assembly.h index 30b023411fef..3ce3440d1b0c 100644 --- a/include/asm-parisc/assembly.h +++ b/include/asm-parisc/assembly.h | |||
| @@ -21,7 +21,9 @@ | |||
| 21 | #ifndef _PARISC_ASSEMBLY_H | 21 | #ifndef _PARISC_ASSEMBLY_H |
| 22 | #define _PARISC_ASSEMBLY_H | 22 | #define _PARISC_ASSEMBLY_H |
| 23 | 23 | ||
| 24 | #ifdef __LP64__ | 24 | #define CALLEE_FLOAT_FRAME_SIZE 80 |
| 25 | |||
| 26 | #ifdef CONFIG_64BIT | ||
| 25 | #define LDREG ldd | 27 | #define LDREG ldd |
| 26 | #define STREG std | 28 | #define STREG std |
| 27 | #define LDREGX ldd,s | 29 | #define LDREGX ldd,s |
| @@ -30,8 +32,8 @@ | |||
| 30 | #define SHRREG shrd | 32 | #define SHRREG shrd |
| 31 | #define RP_OFFSET 16 | 33 | #define RP_OFFSET 16 |
| 32 | #define FRAME_SIZE 128 | 34 | #define FRAME_SIZE 128 |
| 33 | #define CALLEE_SAVE_FRAME_SIZE 144 | 35 | #define CALLEE_REG_FRAME_SIZE 144 |
| 34 | #else | 36 | #else /* CONFIG_64BIT */ |
| 35 | #define LDREG ldw | 37 | #define LDREG ldw |
| 36 | #define STREG stw | 38 | #define STREG stw |
| 37 | #define LDREGX ldwx,s | 39 | #define LDREGX ldwx,s |
| @@ -40,9 +42,11 @@ | |||
| 40 | #define SHRREG shr | 42 | #define SHRREG shr |
| 41 | #define RP_OFFSET 20 | 43 | #define RP_OFFSET 20 |
| 42 | #define FRAME_SIZE 64 | 44 | #define FRAME_SIZE 64 |
| 43 | #define CALLEE_SAVE_FRAME_SIZE 128 | 45 | #define CALLEE_REG_FRAME_SIZE 128 |
| 44 | #endif | 46 | #endif |
| 45 | 47 | ||
| 48 | #define CALLEE_SAVE_FRAME_SIZE (CALLEE_REG_FRAME_SIZE + CALLEE_FLOAT_FRAME_SIZE) | ||
| 49 | |||
| 46 | #ifdef CONFIG_PA20 | 50 | #ifdef CONFIG_PA20 |
| 47 | #define BL b,l | 51 | #define BL b,l |
| 48 | # ifdef CONFIG_64BIT | 52 | # ifdef CONFIG_64BIT |
| @@ -300,9 +304,35 @@ | |||
| 300 | fldd,mb -8(\regs), %fr0 | 304 | fldd,mb -8(\regs), %fr0 |
| 301 | .endm | 305 | .endm |
| 302 | 306 | ||
| 307 | .macro callee_save_float | ||
| 308 | fstd,ma %fr12, 8(%r30) | ||
| 309 | fstd,ma %fr13, 8(%r30) | ||
| 310 | fstd,ma %fr14, 8(%r30) | ||
| 311 | fstd,ma %fr15, 8(%r30) | ||
| 312 | fstd,ma %fr16, 8(%r30) | ||
| 313 | fstd,ma %fr17, 8(%r30) | ||
| 314 | fstd,ma %fr18, 8(%r30) | ||
| 315 | fstd,ma %fr19, 8(%r30) | ||
| 316 | fstd,ma %fr20, 8(%r30) | ||
| 317 | fstd,ma %fr21, 8(%r30) | ||
| 318 | .endm | ||
| 319 | |||
| 320 | .macro callee_rest_float | ||
| 321 | fldd,mb -8(%r30), %fr21 | ||
| 322 | fldd,mb -8(%r30), %fr20 | ||
| 323 | fldd,mb -8(%r30), %fr19 | ||
| 324 | fldd,mb -8(%r30), %fr18 | ||
| 325 | fldd,mb -8(%r30), %fr17 | ||
| 326 | fldd,mb -8(%r30), %fr16 | ||
| 327 | fldd,mb -8(%r30), %fr15 | ||
| 328 | fldd,mb -8(%r30), %fr14 | ||
| 329 | fldd,mb -8(%r30), %fr13 | ||
| 330 | fldd,mb -8(%r30), %fr12 | ||
| 331 | .endm | ||
| 332 | |||
| 303 | #ifdef __LP64__ | 333 | #ifdef __LP64__ |
| 304 | .macro callee_save | 334 | .macro callee_save |
| 305 | std,ma %r3, CALLEE_SAVE_FRAME_SIZE(%r30) | 335 | std,ma %r3, CALLEE_REG_FRAME_SIZE(%r30) |
| 306 | mfctl %cr27, %r3 | 336 | mfctl %cr27, %r3 |
| 307 | std %r4, -136(%r30) | 337 | std %r4, -136(%r30) |
| 308 | std %r5, -128(%r30) | 338 | std %r5, -128(%r30) |
| @@ -340,13 +370,13 @@ | |||
| 340 | ldd -128(%r30), %r5 | 370 | ldd -128(%r30), %r5 |
| 341 | ldd -136(%r30), %r4 | 371 | ldd -136(%r30), %r4 |
| 342 | mtctl %r3, %cr27 | 372 | mtctl %r3, %cr27 |
| 343 | ldd,mb -CALLEE_SAVE_FRAME_SIZE(%r30), %r3 | 373 | ldd,mb -CALLEE_REG_FRAME_SIZE(%r30), %r3 |
| 344 | .endm | 374 | .endm |
| 345 | 375 | ||
| 346 | #else /* ! __LP64__ */ | 376 | #else /* ! __LP64__ */ |
| 347 | 377 | ||
| 348 | .macro callee_save | 378 | .macro callee_save |
| 349 | stw,ma %r3, CALLEE_SAVE_FRAME_SIZE(%r30) | 379 | stw,ma %r3, CALLEE_REG_FRAME_SIZE(%r30) |
| 350 | mfctl %cr27, %r3 | 380 | mfctl %cr27, %r3 |
| 351 | stw %r4, -124(%r30) | 381 | stw %r4, -124(%r30) |
| 352 | stw %r5, -120(%r30) | 382 | stw %r5, -120(%r30) |
| @@ -384,7 +414,7 @@ | |||
| 384 | ldw -120(%r30), %r5 | 414 | ldw -120(%r30), %r5 |
| 385 | ldw -124(%r30), %r4 | 415 | ldw -124(%r30), %r4 |
| 386 | mtctl %r3, %cr27 | 416 | mtctl %r3, %cr27 |
| 387 | ldw,mb -CALLEE_SAVE_FRAME_SIZE(%r30), %r3 | 417 | ldw,mb -CALLEE_REG_FRAME_SIZE(%r30), %r3 |
| 388 | .endm | 418 | .endm |
| 389 | #endif /* ! __LP64__ */ | 419 | #endif /* ! __LP64__ */ |
| 390 | 420 | ||
| @@ -450,5 +480,30 @@ | |||
| 450 | REST_CR (%cr22, PT_PSW (\regs)) | 480 | REST_CR (%cr22, PT_PSW (\regs)) |
| 451 | .endm | 481 | .endm |
| 452 | 482 | ||
| 483 | |||
| 484 | /* First step to create a "relied upon translation" | ||
| 485 | * See PA 2.0 Arch. page F-4 and F-5. | ||
| 486 | * | ||
| 487 | * The ssm was originally necessary due to a "PCxT bug". | ||
| 488 | * But someone decided it needed to be added to the architecture | ||
| 489 | * and this "feature" went into rev3 of PA-RISC 1.1 Arch Manual. | ||
| 490 | * It's been carried forward into PA 2.0 Arch as well. :^( | ||
| 491 | * | ||
| 492 | * "ssm 0,%r0" is a NOP with side effects (prefetch barrier). | ||
| 493 | * rsm/ssm prevents the ifetch unit from speculatively fetching | ||
| 494 | * instructions past this line in the code stream. | ||
| 495 | * PA 2.0 processor will single step all insn in the same QUAD (4 insn). | ||
| 496 | */ | ||
| 497 | .macro pcxt_ssm_bug | ||
| 498 | rsm PSW_SM_I,%r0 | ||
| 499 | nop /* 1 */ | ||
| 500 | nop /* 2 */ | ||
| 501 | nop /* 3 */ | ||
| 502 | nop /* 4 */ | ||
| 503 | nop /* 5 */ | ||
| 504 | nop /* 6 */ | ||
| 505 | nop /* 7 */ | ||
| 506 | .endm | ||
| 507 | |||
| 453 | #endif /* __ASSEMBLY__ */ | 508 | #endif /* __ASSEMBLY__ */ |
| 454 | #endif | 509 | #endif |
diff --git a/include/asm-parisc/bitops.h b/include/asm-parisc/bitops.h index af7db694b22d..55b98c67fd82 100644 --- a/include/asm-parisc/bitops.h +++ b/include/asm-parisc/bitops.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | #define _PARISC_BITOPS_H | 2 | #define _PARISC_BITOPS_H |
| 3 | 3 | ||
| 4 | #include <linux/compiler.h> | 4 | #include <linux/compiler.h> |
| 5 | #include <asm/spinlock.h> | 5 | #include <asm/types.h> /* for BITS_PER_LONG/SHIFT_PER_LONG */ |
| 6 | #include <asm/byteorder.h> | 6 | #include <asm/byteorder.h> |
| 7 | #include <asm/atomic.h> | 7 | #include <asm/atomic.h> |
| 8 | 8 | ||
| @@ -12,193 +12,157 @@ | |||
| 12 | * to include/asm-i386/bitops.h or kerneldoc | 12 | * to include/asm-i386/bitops.h or kerneldoc |
| 13 | */ | 13 | */ |
| 14 | 14 | ||
| 15 | #ifdef __LP64__ | 15 | #define CHOP_SHIFTCOUNT(x) (((unsigned long) (x)) & (BITS_PER_LONG - 1)) |
| 16 | # define SHIFT_PER_LONG 6 | ||
| 17 | #ifndef BITS_PER_LONG | ||
| 18 | # define BITS_PER_LONG 64 | ||
| 19 | #endif | ||
| 20 | #else | ||
| 21 | # define SHIFT_PER_LONG 5 | ||
| 22 | #ifndef BITS_PER_LONG | ||
| 23 | # define BITS_PER_LONG 32 | ||
| 24 | #endif | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #define CHOP_SHIFTCOUNT(x) ((x) & (BITS_PER_LONG - 1)) | ||
| 28 | 16 | ||
| 29 | 17 | ||
| 30 | #define smp_mb__before_clear_bit() smp_mb() | 18 | #define smp_mb__before_clear_bit() smp_mb() |
| 31 | #define smp_mb__after_clear_bit() smp_mb() | 19 | #define smp_mb__after_clear_bit() smp_mb() |
| 32 | 20 | ||
| 33 | static __inline__ void set_bit(int nr, volatile unsigned long * address) | 21 | /* See http://marc.theaimsgroup.com/?t=108826637900003 for discussion |
| 22 | * on use of volatile and __*_bit() (set/clear/change): | ||
| 23 | * *_bit() want use of volatile. | ||
| 24 | * __*_bit() are "relaxed" and don't use spinlock or volatile. | ||
| 25 | */ | ||
| 26 | |||
| 27 | static __inline__ void set_bit(int nr, volatile unsigned long * addr) | ||
| 34 | { | 28 | { |
| 35 | unsigned long mask; | 29 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 36 | unsigned long *addr = (unsigned long *) address; | ||
| 37 | unsigned long flags; | 30 | unsigned long flags; |
| 38 | 31 | ||
| 39 | addr += (nr >> SHIFT_PER_LONG); | 32 | addr += (nr >> SHIFT_PER_LONG); |
| 40 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 41 | _atomic_spin_lock_irqsave(addr, flags); | 33 | _atomic_spin_lock_irqsave(addr, flags); |
| 42 | *addr |= mask; | 34 | *addr |= mask; |
| 43 | _atomic_spin_unlock_irqrestore(addr, flags); | 35 | _atomic_spin_unlock_irqrestore(addr, flags); |
| 44 | } | 36 | } |
| 45 | 37 | ||
| 46 | static __inline__ void __set_bit(int nr, volatile unsigned long * address) | 38 | static __inline__ void __set_bit(unsigned long nr, volatile unsigned long * addr) |
| 47 | { | 39 | { |
| 48 | unsigned long mask; | 40 | unsigned long *m = (unsigned long *) addr + (nr >> SHIFT_PER_LONG); |
| 49 | unsigned long *addr = (unsigned long *) address; | ||
| 50 | 41 | ||
| 51 | addr += (nr >> SHIFT_PER_LONG); | 42 | *m |= 1UL << CHOP_SHIFTCOUNT(nr); |
| 52 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 53 | *addr |= mask; | ||
| 54 | } | 43 | } |
| 55 | 44 | ||
| 56 | static __inline__ void clear_bit(int nr, volatile unsigned long * address) | 45 | static __inline__ void clear_bit(int nr, volatile unsigned long * addr) |
| 57 | { | 46 | { |
| 58 | unsigned long mask; | 47 | unsigned long mask = ~(1UL << CHOP_SHIFTCOUNT(nr)); |
| 59 | unsigned long *addr = (unsigned long *) address; | ||
| 60 | unsigned long flags; | 48 | unsigned long flags; |
| 61 | 49 | ||
| 62 | addr += (nr >> SHIFT_PER_LONG); | 50 | addr += (nr >> SHIFT_PER_LONG); |
| 63 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 64 | _atomic_spin_lock_irqsave(addr, flags); | 51 | _atomic_spin_lock_irqsave(addr, flags); |
| 65 | *addr &= ~mask; | 52 | *addr &= mask; |
| 66 | _atomic_spin_unlock_irqrestore(addr, flags); | 53 | _atomic_spin_unlock_irqrestore(addr, flags); |
| 67 | } | 54 | } |
| 68 | 55 | ||
| 69 | static __inline__ void __clear_bit(unsigned long nr, volatile unsigned long * address) | 56 | static __inline__ void __clear_bit(unsigned long nr, volatile unsigned long * addr) |
| 70 | { | 57 | { |
| 71 | unsigned long mask; | 58 | unsigned long *m = (unsigned long *) addr + (nr >> SHIFT_PER_LONG); |
| 72 | unsigned long *addr = (unsigned long *) address; | ||
| 73 | 59 | ||
| 74 | addr += (nr >> SHIFT_PER_LONG); | 60 | *m &= ~(1UL << CHOP_SHIFTCOUNT(nr)); |
| 75 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 76 | *addr &= ~mask; | ||
| 77 | } | 61 | } |
| 78 | 62 | ||
| 79 | static __inline__ void change_bit(int nr, volatile unsigned long * address) | 63 | static __inline__ void change_bit(int nr, volatile unsigned long * addr) |
| 80 | { | 64 | { |
| 81 | unsigned long mask; | 65 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 82 | unsigned long *addr = (unsigned long *) address; | ||
| 83 | unsigned long flags; | 66 | unsigned long flags; |
| 84 | 67 | ||
| 85 | addr += (nr >> SHIFT_PER_LONG); | 68 | addr += (nr >> SHIFT_PER_LONG); |
| 86 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 87 | _atomic_spin_lock_irqsave(addr, flags); | 69 | _atomic_spin_lock_irqsave(addr, flags); |
| 88 | *addr ^= mask; | 70 | *addr ^= mask; |
| 89 | _atomic_spin_unlock_irqrestore(addr, flags); | 71 | _atomic_spin_unlock_irqrestore(addr, flags); |
| 90 | } | 72 | } |
| 91 | 73 | ||
| 92 | static __inline__ void __change_bit(int nr, volatile unsigned long * address) | 74 | static __inline__ void __change_bit(unsigned long nr, volatile unsigned long * addr) |
| 93 | { | 75 | { |
| 94 | unsigned long mask; | 76 | unsigned long *m = (unsigned long *) addr + (nr >> SHIFT_PER_LONG); |
| 95 | unsigned long *addr = (unsigned long *) address; | ||
| 96 | 77 | ||
| 97 | addr += (nr >> SHIFT_PER_LONG); | 78 | *m ^= 1UL << CHOP_SHIFTCOUNT(nr); |
| 98 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 99 | *addr ^= mask; | ||
| 100 | } | 79 | } |
| 101 | 80 | ||
| 102 | static __inline__ int test_and_set_bit(int nr, volatile unsigned long * address) | 81 | static __inline__ int test_and_set_bit(int nr, volatile unsigned long * addr) |
| 103 | { | 82 | { |
| 104 | unsigned long mask; | 83 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 105 | unsigned long *addr = (unsigned long *) address; | 84 | unsigned long oldbit; |
| 106 | int oldbit; | ||
| 107 | unsigned long flags; | 85 | unsigned long flags; |
| 108 | 86 | ||
| 109 | addr += (nr >> SHIFT_PER_LONG); | 87 | addr += (nr >> SHIFT_PER_LONG); |
| 110 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 111 | _atomic_spin_lock_irqsave(addr, flags); | 88 | _atomic_spin_lock_irqsave(addr, flags); |
| 112 | oldbit = (*addr & mask) ? 1 : 0; | 89 | oldbit = *addr; |
| 113 | *addr |= mask; | 90 | *addr = oldbit | mask; |
| 114 | _atomic_spin_unlock_irqrestore(addr, flags); | 91 | _atomic_spin_unlock_irqrestore(addr, flags); |
| 115 | 92 | ||
| 116 | return oldbit; | 93 | return (oldbit & mask) ? 1 : 0; |
| 117 | } | 94 | } |
| 118 | 95 | ||
| 119 | static __inline__ int __test_and_set_bit(int nr, volatile unsigned long * address) | 96 | static __inline__ int __test_and_set_bit(int nr, volatile unsigned long * address) |
| 120 | { | 97 | { |
| 121 | unsigned long mask; | 98 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 122 | unsigned long *addr = (unsigned long *) address; | 99 | unsigned long oldbit; |
| 123 | int oldbit; | 100 | unsigned long *addr = (unsigned long *)address + (nr >> SHIFT_PER_LONG); |
| 124 | 101 | ||
| 125 | addr += (nr >> SHIFT_PER_LONG); | 102 | oldbit = *addr; |
| 126 | mask = 1L << CHOP_SHIFTCOUNT(nr); | 103 | *addr = oldbit | mask; |
| 127 | oldbit = (*addr & mask) ? 1 : 0; | ||
| 128 | *addr |= mask; | ||
| 129 | 104 | ||
| 130 | return oldbit; | 105 | return (oldbit & mask) ? 1 : 0; |
| 131 | } | 106 | } |
| 132 | 107 | ||
| 133 | static __inline__ int test_and_clear_bit(int nr, volatile unsigned long * address) | 108 | static __inline__ int test_and_clear_bit(int nr, volatile unsigned long * addr) |
| 134 | { | 109 | { |
| 135 | unsigned long mask; | 110 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 136 | unsigned long *addr = (unsigned long *) address; | 111 | unsigned long oldbit; |
| 137 | int oldbit; | ||
| 138 | unsigned long flags; | 112 | unsigned long flags; |
| 139 | 113 | ||
| 140 | addr += (nr >> SHIFT_PER_LONG); | 114 | addr += (nr >> SHIFT_PER_LONG); |
| 141 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 142 | _atomic_spin_lock_irqsave(addr, flags); | 115 | _atomic_spin_lock_irqsave(addr, flags); |
| 143 | oldbit = (*addr & mask) ? 1 : 0; | 116 | oldbit = *addr; |
| 144 | *addr &= ~mask; | 117 | *addr = oldbit & ~mask; |
| 145 | _atomic_spin_unlock_irqrestore(addr, flags); | 118 | _atomic_spin_unlock_irqrestore(addr, flags); |
| 146 | 119 | ||
| 147 | return oldbit; | 120 | return (oldbit & mask) ? 1 : 0; |
| 148 | } | 121 | } |
| 149 | 122 | ||
| 150 | static __inline__ int __test_and_clear_bit(int nr, volatile unsigned long * address) | 123 | static __inline__ int __test_and_clear_bit(int nr, volatile unsigned long * address) |
| 151 | { | 124 | { |
| 152 | unsigned long mask; | 125 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 153 | unsigned long *addr = (unsigned long *) address; | 126 | unsigned long *addr = (unsigned long *)address + (nr >> SHIFT_PER_LONG); |
| 154 | int oldbit; | 127 | unsigned long oldbit; |
| 155 | 128 | ||
| 156 | addr += (nr >> SHIFT_PER_LONG); | 129 | oldbit = *addr; |
| 157 | mask = 1L << CHOP_SHIFTCOUNT(nr); | 130 | *addr = oldbit & ~mask; |
| 158 | oldbit = (*addr & mask) ? 1 : 0; | ||
| 159 | *addr &= ~mask; | ||
| 160 | 131 | ||
| 161 | return oldbit; | 132 | return (oldbit & mask) ? 1 : 0; |
| 162 | } | 133 | } |
| 163 | 134 | ||
| 164 | static __inline__ int test_and_change_bit(int nr, volatile unsigned long * address) | 135 | static __inline__ int test_and_change_bit(int nr, volatile unsigned long * addr) |
| 165 | { | 136 | { |
| 166 | unsigned long mask; | 137 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 167 | unsigned long *addr = (unsigned long *) address; | 138 | unsigned long oldbit; |
| 168 | int oldbit; | ||
| 169 | unsigned long flags; | 139 | unsigned long flags; |
| 170 | 140 | ||
| 171 | addr += (nr >> SHIFT_PER_LONG); | 141 | addr += (nr >> SHIFT_PER_LONG); |
| 172 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 173 | _atomic_spin_lock_irqsave(addr, flags); | 142 | _atomic_spin_lock_irqsave(addr, flags); |
| 174 | oldbit = (*addr & mask) ? 1 : 0; | 143 | oldbit = *addr; |
| 175 | *addr ^= mask; | 144 | *addr = oldbit ^ mask; |
| 176 | _atomic_spin_unlock_irqrestore(addr, flags); | 145 | _atomic_spin_unlock_irqrestore(addr, flags); |
| 177 | 146 | ||
| 178 | return oldbit; | 147 | return (oldbit & mask) ? 1 : 0; |
| 179 | } | 148 | } |
| 180 | 149 | ||
| 181 | static __inline__ int __test_and_change_bit(int nr, volatile unsigned long * address) | 150 | static __inline__ int __test_and_change_bit(int nr, volatile unsigned long * address) |
| 182 | { | 151 | { |
| 183 | unsigned long mask; | 152 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 184 | unsigned long *addr = (unsigned long *) address; | 153 | unsigned long *addr = (unsigned long *)address + (nr >> SHIFT_PER_LONG); |
| 185 | int oldbit; | 154 | unsigned long oldbit; |
| 186 | 155 | ||
| 187 | addr += (nr >> SHIFT_PER_LONG); | 156 | oldbit = *addr; |
| 188 | mask = 1L << CHOP_SHIFTCOUNT(nr); | 157 | *addr = oldbit ^ mask; |
| 189 | oldbit = (*addr & mask) ? 1 : 0; | ||
| 190 | *addr ^= mask; | ||
| 191 | 158 | ||
| 192 | return oldbit; | 159 | return (oldbit & mask) ? 1 : 0; |
| 193 | } | 160 | } |
| 194 | 161 | ||
| 195 | static __inline__ int test_bit(int nr, const volatile unsigned long *address) | 162 | static __inline__ int test_bit(int nr, const volatile unsigned long *address) |
| 196 | { | 163 | { |
| 197 | unsigned long mask; | 164 | unsigned long mask = 1UL << CHOP_SHIFTCOUNT(nr); |
| 198 | const unsigned long *addr = (const unsigned long *)address; | 165 | const unsigned long *addr = (const unsigned long *)address + (nr >> SHIFT_PER_LONG); |
| 199 | |||
| 200 | addr += (nr >> SHIFT_PER_LONG); | ||
| 201 | mask = 1L << CHOP_SHIFTCOUNT(nr); | ||
| 202 | 166 | ||
| 203 | return !!(*addr & mask); | 167 | return !!(*addr & mask); |
| 204 | } | 168 | } |
| @@ -229,7 +193,7 @@ static __inline__ unsigned long __ffs(unsigned long x) | |||
| 229 | unsigned long ret; | 193 | unsigned long ret; |
| 230 | 194 | ||
| 231 | __asm__( | 195 | __asm__( |
| 232 | #if BITS_PER_LONG > 32 | 196 | #ifdef __LP64__ |
| 233 | " ldi 63,%1\n" | 197 | " ldi 63,%1\n" |
| 234 | " extrd,u,*<> %0,63,32,%%r0\n" | 198 | " extrd,u,*<> %0,63,32,%%r0\n" |
| 235 | " extrd,u,*TR %0,31,32,%0\n" /* move top 32-bits down */ | 199 | " extrd,u,*TR %0,31,32,%0\n" /* move top 32-bits down */ |
| @@ -304,14 +268,7 @@ static __inline__ int fls(int x) | |||
| 304 | * hweightN: returns the hamming weight (i.e. the number | 268 | * hweightN: returns the hamming weight (i.e. the number |
| 305 | * of bits set) of a N-bit word | 269 | * of bits set) of a N-bit word |
| 306 | */ | 270 | */ |
| 307 | #define hweight64(x) \ | 271 | #define hweight64(x) generic_hweight64(x) |
| 308 | ({ \ | ||
| 309 | unsigned long __x = (x); \ | ||
| 310 | unsigned int __w; \ | ||
| 311 | __w = generic_hweight32((unsigned int) __x); \ | ||
| 312 | __w += generic_hweight32((unsigned int) (__x>>32)); \ | ||
| 313 | __w; \ | ||
| 314 | }) | ||
| 315 | #define hweight32(x) generic_hweight32(x) | 272 | #define hweight32(x) generic_hweight32(x) |
| 316 | #define hweight16(x) generic_hweight16(x) | 273 | #define hweight16(x) generic_hweight16(x) |
| 317 | #define hweight8(x) generic_hweight8(x) | 274 | #define hweight8(x) generic_hweight8(x) |
| @@ -324,7 +281,13 @@ static __inline__ int fls(int x) | |||
| 324 | */ | 281 | */ |
| 325 | static inline int sched_find_first_bit(const unsigned long *b) | 282 | static inline int sched_find_first_bit(const unsigned long *b) |
| 326 | { | 283 | { |
| 327 | #ifndef __LP64__ | 284 | #ifdef __LP64__ |
| 285 | if (unlikely(b[0])) | ||
| 286 | return __ffs(b[0]); | ||
| 287 | if (unlikely(b[1])) | ||
| 288 | return __ffs(b[1]) + 64; | ||
| 289 | return __ffs(b[2]) + 128; | ||
| 290 | #else | ||
| 328 | if (unlikely(b[0])) | 291 | if (unlikely(b[0])) |
| 329 | return __ffs(b[0]); | 292 | return __ffs(b[0]); |
| 330 | if (unlikely(b[1])) | 293 | if (unlikely(b[1])) |
| @@ -334,14 +297,6 @@ static inline int sched_find_first_bit(const unsigned long *b) | |||
| 334 | if (b[3]) | 297 | if (b[3]) |
| 335 | return __ffs(b[3]) + 96; | 298 | return __ffs(b[3]) + 96; |
| 336 | return __ffs(b[4]) + 128; | 299 | return __ffs(b[4]) + 128; |
| 337 | #else | ||
| 338 | if (unlikely(b[0])) | ||
| 339 | return __ffs(b[0]); | ||
| 340 | if (unlikely(((unsigned int)b[1]))) | ||
| 341 | return __ffs(b[1]) + 64; | ||
| 342 | if (b[1] >> 32) | ||
| 343 | return __ffs(b[1] >> 32) + 96; | ||
| 344 | return __ffs(b[2]) + 128; | ||
| 345 | #endif | 300 | #endif |
| 346 | } | 301 | } |
| 347 | 302 | ||
| @@ -391,7 +346,7 @@ found_middle: | |||
| 391 | 346 | ||
| 392 | static __inline__ unsigned long find_next_bit(const unsigned long *addr, unsigned long size, unsigned long offset) | 347 | static __inline__ unsigned long find_next_bit(const unsigned long *addr, unsigned long size, unsigned long offset) |
| 393 | { | 348 | { |
| 394 | const unsigned long *p = addr + (offset >> 6); | 349 | const unsigned long *p = addr + (offset >> SHIFT_PER_LONG); |
| 395 | unsigned long result = offset & ~(BITS_PER_LONG-1); | 350 | unsigned long result = offset & ~(BITS_PER_LONG-1); |
| 396 | unsigned long tmp; | 351 | unsigned long tmp; |
| 397 | 352 | ||
| @@ -445,71 +400,90 @@ found_middle: | |||
| 445 | * test_and_{set,clear}_bit guarantee atomicity without | 400 | * test_and_{set,clear}_bit guarantee atomicity without |
| 446 | * disabling interrupts. | 401 | * disabling interrupts. |
| 447 | */ | 402 | */ |
| 448 | #ifdef __LP64__ | ||
| 449 | #define ext2_set_bit(nr, addr) __test_and_set_bit((nr) ^ 0x38, (unsigned long *)addr) | ||
| 450 | #define ext2_set_bit_atomic(l,nr,addr) test_and_set_bit((nr) ^ 0x38, (unsigned long *)addr) | ||
| 451 | #define ext2_clear_bit(nr, addr) __test_and_clear_bit((nr) ^ 0x38, (unsigned long *)addr) | ||
| 452 | #define ext2_clear_bit_atomic(l,nr,addr) test_and_clear_bit((nr) ^ 0x38, (unsigned long *)addr) | ||
| 453 | #else | ||
| 454 | #define ext2_set_bit(nr, addr) __test_and_set_bit((nr) ^ 0x18, (unsigned long *)addr) | ||
| 455 | #define ext2_set_bit_atomic(l,nr,addr) test_and_set_bit((nr) ^ 0x18, (unsigned long *)addr) | ||
| 456 | #define ext2_clear_bit(nr, addr) __test_and_clear_bit((nr) ^ 0x18, (unsigned long *)addr) | ||
| 457 | #define ext2_clear_bit_atomic(l,nr,addr) test_and_clear_bit((nr) ^ 0x18, (unsigned long *)addr) | ||
| 458 | #endif | ||
| 459 | 403 | ||
| 460 | #endif /* __KERNEL__ */ | 404 | /* '3' is bits per byte */ |
| 405 | #define LE_BYTE_ADDR ((sizeof(unsigned long) - 1) << 3) | ||
| 461 | 406 | ||
| 462 | static __inline__ int ext2_test_bit(int nr, __const__ void * addr) | 407 | #define ext2_test_bit(nr, addr) \ |
| 463 | { | 408 | test_bit((nr) ^ LE_BYTE_ADDR, (unsigned long *)addr) |
| 464 | __const__ unsigned char *ADDR = (__const__ unsigned char *) addr; | 409 | #define ext2_set_bit(nr, addr) \ |
| 410 | __test_and_set_bit((nr) ^ LE_BYTE_ADDR, (unsigned long *)addr) | ||
| 411 | #define ext2_clear_bit(nr, addr) \ | ||
| 412 | __test_and_clear_bit((nr) ^ LE_BYTE_ADDR, (unsigned long *)addr) | ||
| 465 | 413 | ||
| 466 | return (ADDR[nr >> 3] >> (nr & 7)) & 1; | 414 | #define ext2_set_bit_atomic(l,nr,addr) \ |
| 467 | } | 415 | test_and_set_bit((nr) ^ LE_BYTE_ADDR, (unsigned long *)addr) |
| 416 | #define ext2_clear_bit_atomic(l,nr,addr) \ | ||
| 417 | test_and_clear_bit( (nr) ^ LE_BYTE_ADDR, (unsigned long *)addr) | ||
| 418 | |||
| 419 | #endif /* __KERNEL__ */ | ||
| 468 | 420 | ||
| 469 | /* | ||
| 470 | * This implementation of ext2_find_{first,next}_zero_bit was stolen from | ||
| 471 | * Linus' asm-alpha/bitops.h and modified for a big-endian machine. | ||
| 472 | */ | ||
| 473 | 421 | ||
| 474 | #define ext2_find_first_zero_bit(addr, size) \ | 422 | #define ext2_find_first_zero_bit(addr, size) \ |
| 475 | ext2_find_next_zero_bit((addr), (size), 0) | 423 | ext2_find_next_zero_bit((addr), (size), 0) |
| 476 | 424 | ||
| 477 | extern __inline__ unsigned long ext2_find_next_zero_bit(void *addr, | 425 | /* include/linux/byteorder does not support "unsigned long" type */ |
| 478 | unsigned long size, unsigned long offset) | 426 | static inline unsigned long ext2_swabp(unsigned long * x) |
| 479 | { | 427 | { |
| 480 | unsigned int *p = ((unsigned int *) addr) + (offset >> 5); | 428 | #ifdef __LP64__ |
| 481 | unsigned int result = offset & ~31UL; | 429 | return (unsigned long) __swab64p((u64 *) x); |
| 482 | unsigned int tmp; | 430 | #else |
| 431 | return (unsigned long) __swab32p((u32 *) x); | ||
| 432 | #endif | ||
| 433 | } | ||
| 434 | |||
| 435 | /* include/linux/byteorder doesn't support "unsigned long" type */ | ||
| 436 | static inline unsigned long ext2_swab(unsigned long y) | ||
| 437 | { | ||
| 438 | #ifdef __LP64__ | ||
| 439 | return (unsigned long) __swab64((u64) y); | ||
| 440 | #else | ||
| 441 | return (unsigned long) __swab32((u32) y); | ||
| 442 | #endif | ||
| 443 | } | ||
| 444 | |||
| 445 | static __inline__ unsigned long ext2_find_next_zero_bit(void *addr, unsigned long size, unsigned long offset) | ||
| 446 | { | ||
| 447 | unsigned long *p = (unsigned long *) addr + (offset >> SHIFT_PER_LONG); | ||
| 448 | unsigned long result = offset & ~(BITS_PER_LONG - 1); | ||
| 449 | unsigned long tmp; | ||
| 483 | 450 | ||
| 484 | if (offset >= size) | 451 | if (offset >= size) |
| 485 | return size; | 452 | return size; |
| 486 | size -= result; | 453 | size -= result; |
| 487 | offset &= 31UL; | 454 | offset &= (BITS_PER_LONG - 1UL); |
| 488 | if (offset) { | 455 | if (offset) { |
| 489 | tmp = cpu_to_le32p(p++); | 456 | tmp = ext2_swabp(p++); |
| 490 | tmp |= ~0UL >> (32-offset); | 457 | tmp |= (~0UL >> (BITS_PER_LONG - offset)); |
| 491 | if (size < 32) | 458 | if (size < BITS_PER_LONG) |
| 492 | goto found_first; | 459 | goto found_first; |
| 493 | if (tmp != ~0U) | 460 | if (~tmp) |
| 494 | goto found_middle; | 461 | goto found_middle; |
| 495 | size -= 32; | 462 | size -= BITS_PER_LONG; |
| 496 | result += 32; | 463 | result += BITS_PER_LONG; |
| 497 | } | 464 | } |
| 498 | while (size >= 32) { | 465 | |
| 499 | if ((tmp = cpu_to_le32p(p++)) != ~0U) | 466 | while (size & ~(BITS_PER_LONG - 1)) { |
| 500 | goto found_middle; | 467 | if (~(tmp = *(p++))) |
| 501 | result += 32; | 468 | goto found_middle_swap; |
| 502 | size -= 32; | 469 | result += BITS_PER_LONG; |
| 470 | size -= BITS_PER_LONG; | ||
| 503 | } | 471 | } |
| 504 | if (!size) | 472 | if (!size) |
| 505 | return result; | 473 | return result; |
| 506 | tmp = cpu_to_le32p(p); | 474 | tmp = ext2_swabp(p); |
| 507 | found_first: | 475 | found_first: |
| 508 | tmp |= ~0U << size; | 476 | tmp |= ~0UL << size; |
| 477 | if (tmp == ~0UL) /* Are any bits zero? */ | ||
| 478 | return result + size; /* Nope. Skip ffz */ | ||
| 509 | found_middle: | 479 | found_middle: |
| 510 | return result + ffz(tmp); | 480 | return result + ffz(tmp); |
| 481 | |||
| 482 | found_middle_swap: | ||
| 483 | return result + ffz(ext2_swab(tmp)); | ||
| 511 | } | 484 | } |
| 512 | 485 | ||
| 486 | |||
| 513 | /* Bitmap functions for the minix filesystem. */ | 487 | /* Bitmap functions for the minix filesystem. */ |
| 514 | #define minix_test_and_set_bit(nr,addr) ext2_set_bit(nr,addr) | 488 | #define minix_test_and_set_bit(nr,addr) ext2_set_bit(nr,addr) |
| 515 | #define minix_set_bit(nr,addr) ((void)ext2_set_bit(nr,addr)) | 489 | #define minix_set_bit(nr,addr) ((void)ext2_set_bit(nr,addr)) |
diff --git a/include/asm-parisc/errno.h b/include/asm-parisc/errno.h index 08464c405471..e2f3ddc796be 100644 --- a/include/asm-parisc/errno.h +++ b/include/asm-parisc/errno.h | |||
| @@ -114,6 +114,7 @@ | |||
| 114 | 114 | ||
| 115 | #define ENOTSUP 252 /* Function not implemented (POSIX.4 / HPUX) */ | 115 | #define ENOTSUP 252 /* Function not implemented (POSIX.4 / HPUX) */ |
| 116 | #define ECANCELLED 253 /* aio request was canceled before complete (POSIX.4 / HPUX) */ | 116 | #define ECANCELLED 253 /* aio request was canceled before complete (POSIX.4 / HPUX) */ |
| 117 | #define ECANCELED ECANCELLED /* SuSv3 and Solaris wants one 'L' */ | ||
| 117 | 118 | ||
| 118 | /* for robust mutexes */ | 119 | /* for robust mutexes */ |
| 119 | #define EOWNERDEAD 254 /* Owner died */ | 120 | #define EOWNERDEAD 254 /* Owner died */ |
diff --git a/include/asm-parisc/grfioctl.h b/include/asm-parisc/grfioctl.h index d3cfc0168fb1..6a910311b56b 100644 --- a/include/asm-parisc/grfioctl.h +++ b/include/asm-parisc/grfioctl.h | |||
| @@ -69,6 +69,8 @@ | |||
| 69 | #define CRT_ID_TVRX S9000_ID_98765 /* TVRX (gto/falcon) */ | 69 | #define CRT_ID_TVRX S9000_ID_98765 /* TVRX (gto/falcon) */ |
| 70 | #define CRT_ID_ARTIST S9000_ID_ARTIST /* Artist */ | 70 | #define CRT_ID_ARTIST S9000_ID_ARTIST /* Artist */ |
| 71 | #define CRT_ID_SUMMIT 0x2FC1066B /* Summit FX2, FX4, FX6 ... */ | 71 | #define CRT_ID_SUMMIT 0x2FC1066B /* Summit FX2, FX4, FX6 ... */ |
| 72 | #define CRT_ID_LEGO 0x35ACDA30 /* Lego FX5, FX10 ... */ | ||
| 73 | #define CRT_ID_PINNACLE 0x35ACDA16 /* Pinnacle FXe */ | ||
| 72 | 74 | ||
| 73 | /* structure for ioctl(GCDESCRIBE) */ | 75 | /* structure for ioctl(GCDESCRIBE) */ |
| 74 | 76 | ||
diff --git a/include/asm-parisc/led.h b/include/asm-parisc/led.h index 1ac8ab6c580d..efadfd543ec6 100644 --- a/include/asm-parisc/led.h +++ b/include/asm-parisc/led.h | |||
| @@ -23,9 +23,6 @@ | |||
| 23 | 23 | ||
| 24 | #define LED_CMD_REG_NONE 0 /* NULL == no addr for the cmd register */ | 24 | #define LED_CMD_REG_NONE 0 /* NULL == no addr for the cmd register */ |
| 25 | 25 | ||
| 26 | /* led tasklet struct */ | ||
| 27 | extern struct tasklet_struct led_tasklet; | ||
| 28 | |||
| 29 | /* register_led_driver() */ | 26 | /* register_led_driver() */ |
| 30 | int __init register_led_driver(int model, unsigned long cmd_reg, unsigned long data_reg); | 27 | int __init register_led_driver(int model, unsigned long cmd_reg, unsigned long data_reg); |
| 31 | 28 | ||
diff --git a/include/asm-parisc/parisc-device.h b/include/asm-parisc/parisc-device.h index ef69ab4b17a9..1d247e32a608 100644 --- a/include/asm-parisc/parisc-device.h +++ b/include/asm-parisc/parisc-device.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #include <linux/device.h> | 1 | #include <linux/device.h> |
| 2 | 2 | ||
| 3 | struct parisc_device { | 3 | struct parisc_device { |
| 4 | unsigned long hpa; /* Hard Physical Address */ | 4 | struct resource hpa; /* Hard Physical Address */ |
| 5 | struct parisc_device_id id; | 5 | struct parisc_device_id id; |
| 6 | struct parisc_driver *driver; /* Driver for this device */ | 6 | struct parisc_driver *driver; /* Driver for this device */ |
| 7 | char name[80]; /* The hardware description */ | 7 | char name[80]; /* The hardware description */ |
| @@ -39,6 +39,11 @@ struct parisc_driver { | |||
| 39 | #define to_parisc_driver(d) container_of(d, struct parisc_driver, drv) | 39 | #define to_parisc_driver(d) container_of(d, struct parisc_driver, drv) |
| 40 | #define parisc_parent(d) to_parisc_device(d->dev.parent) | 40 | #define parisc_parent(d) to_parisc_device(d->dev.parent) |
| 41 | 41 | ||
| 42 | static inline char *parisc_pathname(struct parisc_device *d) | ||
| 43 | { | ||
| 44 | return d->dev.bus_id; | ||
| 45 | } | ||
| 46 | |||
| 42 | static inline void | 47 | static inline void |
| 43 | parisc_set_drvdata(struct parisc_device *d, void *p) | 48 | parisc_set_drvdata(struct parisc_device *d, void *p) |
| 44 | { | 49 | { |
diff --git a/include/asm-parisc/pci.h b/include/asm-parisc/pci.h index d0b761f690b5..fa39d07d49e9 100644 --- a/include/asm-parisc/pci.h +++ b/include/asm-parisc/pci.h | |||
| @@ -69,7 +69,7 @@ struct pci_hba_data { | |||
| 69 | #define PCI_PORT_HBA(a) ((a) >> HBA_PORT_SPACE_BITS) | 69 | #define PCI_PORT_HBA(a) ((a) >> HBA_PORT_SPACE_BITS) |
| 70 | #define PCI_PORT_ADDR(a) ((a) & (HBA_PORT_SPACE_SIZE - 1)) | 70 | #define PCI_PORT_ADDR(a) ((a) & (HBA_PORT_SPACE_SIZE - 1)) |
| 71 | 71 | ||
| 72 | #if CONFIG_64BIT | 72 | #ifdef CONFIG_64BIT |
| 73 | #define PCI_F_EXTEND 0xffffffff00000000UL | 73 | #define PCI_F_EXTEND 0xffffffff00000000UL |
| 74 | #define PCI_IS_LMMIO(hba,a) pci_is_lmmio(hba,a) | 74 | #define PCI_IS_LMMIO(hba,a) pci_is_lmmio(hba,a) |
| 75 | 75 | ||
diff --git a/include/asm-parisc/pgtable.h b/include/asm-parisc/pgtable.h index 820c6e712cd7..c28fb6f48c6c 100644 --- a/include/asm-parisc/pgtable.h +++ b/include/asm-parisc/pgtable.h | |||
| @@ -501,6 +501,8 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, | |||
| 501 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ | 501 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ |
| 502 | remap_pfn_range(vma, vaddr, pfn, size, prot) | 502 | remap_pfn_range(vma, vaddr, pfn, size, prot) |
| 503 | 503 | ||
| 504 | #define pgprot_noncached(prot) __pgprot(pgprot_val(prot) | _PAGE_NO_CACHE) | ||
| 505 | |||
| 504 | #define MK_IOSPACE_PFN(space, pfn) (pfn) | 506 | #define MK_IOSPACE_PFN(space, pfn) (pfn) |
| 505 | #define GET_IOSPACE(pfn) 0 | 507 | #define GET_IOSPACE(pfn) 0 |
| 506 | #define GET_PFN(pfn) (pfn) | 508 | #define GET_PFN(pfn) (pfn) |
diff --git a/include/asm-parisc/processor.h b/include/asm-parisc/processor.h index a9dfadd05658..aae40e8c3aa8 100644 --- a/include/asm-parisc/processor.h +++ b/include/asm-parisc/processor.h | |||
| @@ -122,8 +122,27 @@ struct thread_struct { | |||
| 122 | }; | 122 | }; |
| 123 | 123 | ||
| 124 | /* Thread struct flags. */ | 124 | /* Thread struct flags. */ |
| 125 | #define PARISC_UAC_NOPRINT (1UL << 0) /* see prctl and unaligned.c */ | ||
| 126 | #define PARISC_UAC_SIGBUS (1UL << 1) | ||
| 125 | #define PARISC_KERNEL_DEATH (1UL << 31) /* see die_if_kernel()... */ | 127 | #define PARISC_KERNEL_DEATH (1UL << 31) /* see die_if_kernel()... */ |
| 126 | 128 | ||
| 129 | #define PARISC_UAC_SHIFT 0 | ||
| 130 | #define PARISC_UAC_MASK (PARISC_UAC_NOPRINT|PARISC_UAC_SIGBUS) | ||
| 131 | |||
| 132 | #define SET_UNALIGN_CTL(task,value) \ | ||
| 133 | ({ \ | ||
| 134 | (task)->thread.flags = (((task)->thread.flags & ~PARISC_UAC_MASK) \ | ||
| 135 | | (((value) << PARISC_UAC_SHIFT) & \ | ||
| 136 | PARISC_UAC_MASK)); \ | ||
| 137 | 0; \ | ||
| 138 | }) | ||
| 139 | |||
| 140 | #define GET_UNALIGN_CTL(task,addr) \ | ||
| 141 | ({ \ | ||
| 142 | put_user(((task)->thread.flags & PARISC_UAC_MASK) \ | ||
| 143 | >> PARISC_UAC_SHIFT, (int __user *) (addr)); \ | ||
| 144 | }) | ||
| 145 | |||
| 127 | #define INIT_THREAD { \ | 146 | #define INIT_THREAD { \ |
| 128 | regs: { gr: { 0, }, \ | 147 | regs: { gr: { 0, }, \ |
| 129 | fr: { 0, }, \ | 148 | fr: { 0, }, \ |
diff --git a/include/asm-parisc/psw.h b/include/asm-parisc/psw.h index 51323029f377..4334d6ca2add 100644 --- a/include/asm-parisc/psw.h +++ b/include/asm-parisc/psw.h | |||
| @@ -1,4 +1,7 @@ | |||
| 1 | #ifndef _PARISC_PSW_H | 1 | #ifndef _PARISC_PSW_H |
| 2 | |||
| 3 | #include <linux/config.h> | ||
| 4 | |||
| 2 | #define PSW_I 0x00000001 | 5 | #define PSW_I 0x00000001 |
| 3 | #define PSW_D 0x00000002 | 6 | #define PSW_D 0x00000002 |
| 4 | #define PSW_P 0x00000004 | 7 | #define PSW_P 0x00000004 |
| @@ -9,6 +12,16 @@ | |||
| 9 | #define PSW_G 0x00000040 /* PA1.x only */ | 12 | #define PSW_G 0x00000040 /* PA1.x only */ |
| 10 | #define PSW_O 0x00000080 /* PA2.0 only */ | 13 | #define PSW_O 0x00000080 /* PA2.0 only */ |
| 11 | 14 | ||
| 15 | /* ssm/rsm instructions number PSW_W and PSW_E differently */ | ||
| 16 | #define PSW_SM_I PSW_I /* Enable External Interrupts */ | ||
| 17 | #define PSW_SM_D PSW_D | ||
| 18 | #define PSW_SM_P PSW_P | ||
| 19 | #define PSW_SM_Q PSW_Q /* Enable Interrupt State Collection */ | ||
| 20 | #define PSW_SM_R PSW_R /* Enable Recover Counter Trap */ | ||
| 21 | #define PSW_SM_W 0x200 /* PA2.0 only : Enable Wide Mode */ | ||
| 22 | |||
| 23 | #define PSW_SM_QUIET PSW_SM_R+PSW_SM_Q+PSW_SM_P+PSW_SM_D+PSW_SM_I | ||
| 24 | |||
| 12 | #define PSW_CB 0x0000ff00 | 25 | #define PSW_CB 0x0000ff00 |
| 13 | 26 | ||
| 14 | #define PSW_M 0x00010000 | 27 | #define PSW_M 0x00010000 |
| @@ -30,33 +43,21 @@ | |||
| 30 | #define PSW_Z 0x40000000 /* PA1.x only */ | 43 | #define PSW_Z 0x40000000 /* PA1.x only */ |
| 31 | #define PSW_Y 0x80000000 /* PA1.x only */ | 44 | #define PSW_Y 0x80000000 /* PA1.x only */ |
| 32 | 45 | ||
| 33 | #ifdef __LP64__ | 46 | #ifdef CONFIG_64BIT |
| 34 | #define PSW_HI_CB 0x000000ff /* PA2.0 only */ | 47 | # define PSW_HI_CB 0x000000ff /* PA2.0 only */ |
| 35 | #endif | 48 | #endif |
| 36 | 49 | ||
| 37 | /* PSW bits to be used with ssm/rsm */ | 50 | #ifdef CONFIG_64BIT |
| 38 | #define PSW_SM_I 0x1 | 51 | # define USER_PSW_HI_MASK PSW_HI_CB |
| 39 | #define PSW_SM_D 0x2 | 52 | # define WIDE_PSW PSW_W |
| 40 | #define PSW_SM_P 0x4 | 53 | #else |
| 41 | #define PSW_SM_Q 0x8 | 54 | # define WIDE_PSW 0 |
| 42 | #define PSW_SM_R 0x10 | ||
| 43 | #define PSW_SM_F 0x20 | ||
| 44 | #define PSW_SM_G 0x40 | ||
| 45 | #define PSW_SM_O 0x80 | ||
| 46 | #define PSW_SM_E 0x100 | ||
| 47 | #define PSW_SM_W 0x200 | ||
| 48 | |||
| 49 | #ifdef __LP64__ | ||
| 50 | # define USER_PSW (PSW_C | PSW_Q | PSW_P | PSW_D | PSW_I) | ||
| 51 | # define KERNEL_PSW (PSW_W | PSW_C | PSW_Q | PSW_P | PSW_D) | ||
| 52 | # define REAL_MODE_PSW (PSW_W | PSW_Q) | ||
| 53 | # define USER_PSW_MASK (PSW_W | PSW_T | PSW_N | PSW_X | PSW_B | PSW_V | PSW_CB) | ||
| 54 | # define USER_PSW_HI_MASK (PSW_HI_CB) | ||
| 55 | #else | ||
| 56 | # define USER_PSW (PSW_C | PSW_Q | PSW_P | PSW_D | PSW_I) | ||
| 57 | # define KERNEL_PSW (PSW_C | PSW_Q | PSW_P | PSW_D) | ||
| 58 | # define REAL_MODE_PSW (PSW_Q) | ||
| 59 | # define USER_PSW_MASK (PSW_T | PSW_N | PSW_X | PSW_B | PSW_V | PSW_CB) | ||
| 60 | #endif | 55 | #endif |
| 61 | 56 | ||
| 57 | /* Used when setting up for rfi */ | ||
| 58 | #define KERNEL_PSW (WIDE_PSW | PSW_C | PSW_Q | PSW_P | PSW_D) | ||
| 59 | #define REAL_MODE_PSW (WIDE_PSW | PSW_Q) | ||
| 60 | #define USER_PSW_MASK (WIDE_PSW | PSW_T | PSW_N | PSW_X | PSW_B | PSW_V | PSW_CB) | ||
| 61 | #define USER_PSW (PSW_C | PSW_Q | PSW_P | PSW_D | PSW_I) | ||
| 62 | |||
| 62 | #endif | 63 | #endif |
diff --git a/include/asm-parisc/ptrace.h b/include/asm-parisc/ptrace.h index 3f428aa371a4..93f990e418f1 100644 --- a/include/asm-parisc/ptrace.h +++ b/include/asm-parisc/ptrace.h | |||
| @@ -49,7 +49,7 @@ struct pt_regs { | |||
| 49 | #define user_mode(regs) (((regs)->iaoq[0] & 3) ? 1 : 0) | 49 | #define user_mode(regs) (((regs)->iaoq[0] & 3) ? 1 : 0) |
| 50 | #define user_space(regs) (((regs)->iasq[1] != 0) ? 1 : 0) | 50 | #define user_space(regs) (((regs)->iasq[1] != 0) ? 1 : 0) |
| 51 | #define instruction_pointer(regs) ((regs)->iaoq[0] & ~3) | 51 | #define instruction_pointer(regs) ((regs)->iaoq[0] & ~3) |
| 52 | #define profile_pc(regs) instruction_pointer(regs) | 52 | unsigned long profile_pc(struct pt_regs *); |
| 53 | extern void show_regs(struct pt_regs *); | 53 | extern void show_regs(struct pt_regs *); |
| 54 | #endif | 54 | #endif |
| 55 | 55 | ||
diff --git a/include/asm-parisc/spinlock.h b/include/asm-parisc/spinlock.h index 43eaa6e742e0..7c3f406a746a 100644 --- a/include/asm-parisc/spinlock.h +++ b/include/asm-parisc/spinlock.h | |||
| @@ -5,11 +5,6 @@ | |||
| 5 | #include <asm/processor.h> | 5 | #include <asm/processor.h> |
| 6 | #include <asm/spinlock_types.h> | 6 | #include <asm/spinlock_types.h> |
| 7 | 7 | ||
| 8 | /* Note that PA-RISC has to use `1' to mean unlocked and `0' to mean locked | ||
| 9 | * since it only has load-and-zero. Moreover, at least on some PA processors, | ||
| 10 | * the semaphore address has to be 16-byte aligned. | ||
| 11 | */ | ||
| 12 | |||
| 13 | static inline int __raw_spin_is_locked(raw_spinlock_t *x) | 8 | static inline int __raw_spin_is_locked(raw_spinlock_t *x) |
| 14 | { | 9 | { |
| 15 | volatile unsigned int *a = __ldcw_align(x); | 10 | volatile unsigned int *a = __ldcw_align(x); |
diff --git a/include/asm-parisc/spinlock_types.h b/include/asm-parisc/spinlock_types.h index 785bba822fbf..d6b479bdb886 100644 --- a/include/asm-parisc/spinlock_types.h +++ b/include/asm-parisc/spinlock_types.h | |||
| @@ -6,11 +6,15 @@ | |||
| 6 | #endif | 6 | #endif |
| 7 | 7 | ||
| 8 | typedef struct { | 8 | typedef struct { |
| 9 | #ifdef CONFIG_PA20 | ||
| 10 | volatile unsigned int slock; | ||
| 11 | # define __RAW_SPIN_LOCK_UNLOCKED { 1 } | ||
| 12 | #else | ||
| 9 | volatile unsigned int lock[4]; | 13 | volatile unsigned int lock[4]; |
| 14 | # define __RAW_SPIN_LOCK_UNLOCKED { { 1, 1, 1, 1 } } | ||
| 15 | #endif | ||
| 10 | } raw_spinlock_t; | 16 | } raw_spinlock_t; |
| 11 | 17 | ||
| 12 | #define __RAW_SPIN_LOCK_UNLOCKED { { 1, 1, 1, 1 } } | ||
| 13 | |||
| 14 | typedef struct { | 18 | typedef struct { |
| 15 | raw_spinlock_t lock; | 19 | raw_spinlock_t lock; |
| 16 | volatile int counter; | 20 | volatile int counter; |
diff --git a/include/asm-parisc/system.h b/include/asm-parisc/system.h index 26ff844a21c1..f3928d3a80cb 100644 --- a/include/asm-parisc/system.h +++ b/include/asm-parisc/system.h | |||
| @@ -138,13 +138,7 @@ static inline void set_eiem(unsigned long val) | |||
| 138 | #define set_wmb(var, value) do { var = value; wmb(); } while (0) | 138 | #define set_wmb(var, value) do { var = value; wmb(); } while (0) |
| 139 | 139 | ||
| 140 | 140 | ||
| 141 | /* LDCW, the only atomic read-write operation PA-RISC has. *sigh*. */ | 141 | #ifndef CONFIG_PA20 |
| 142 | #define __ldcw(a) ({ \ | ||
| 143 | unsigned __ret; \ | ||
| 144 | __asm__ __volatile__("ldcw 0(%1),%0" : "=r" (__ret) : "r" (a)); \ | ||
| 145 | __ret; \ | ||
| 146 | }) | ||
| 147 | |||
| 148 | /* Because kmalloc only guarantees 8-byte alignment for kmalloc'd data, | 142 | /* Because kmalloc only guarantees 8-byte alignment for kmalloc'd data, |
| 149 | and GCC only guarantees 8-byte alignment for stack locals, we can't | 143 | and GCC only guarantees 8-byte alignment for stack locals, we can't |
| 150 | be assured of 16-byte alignment for atomic lock data even if we | 144 | be assured of 16-byte alignment for atomic lock data even if we |
| @@ -152,37 +146,41 @@ static inline void set_eiem(unsigned long val) | |||
| 152 | we use a struct containing an array of four ints for the atomic lock | 146 | we use a struct containing an array of four ints for the atomic lock |
| 153 | type and dynamically select the 16-byte aligned int from the array | 147 | type and dynamically select the 16-byte aligned int from the array |
| 154 | for the semaphore. */ | 148 | for the semaphore. */ |
| 149 | |||
| 155 | #define __PA_LDCW_ALIGNMENT 16 | 150 | #define __PA_LDCW_ALIGNMENT 16 |
| 156 | #define __ldcw_align(a) ({ \ | 151 | #define __ldcw_align(a) ({ \ |
| 157 | unsigned long __ret = (unsigned long) &(a)->lock[0]; \ | 152 | unsigned long __ret = (unsigned long) &(a)->lock[0]; \ |
| 158 | __ret = (__ret + __PA_LDCW_ALIGNMENT - 1) & ~(__PA_LDCW_ALIGNMENT - 1); \ | 153 | __ret = (__ret + __PA_LDCW_ALIGNMENT - 1) & ~(__PA_LDCW_ALIGNMENT - 1); \ |
| 159 | (volatile unsigned int *) __ret; \ | 154 | (volatile unsigned int *) __ret; \ |
| 160 | }) | 155 | }) |
| 156 | #define LDCW "ldcw" | ||
| 161 | 157 | ||
| 162 | #ifdef CONFIG_SMP | 158 | #else /*CONFIG_PA20*/ |
| 163 | # define __lock_aligned __attribute__((__section__(".data.lock_aligned"))) | 159 | /* From: "Jim Hull" <jim.hull of hp.com> |
| 164 | #endif | 160 | I've attached a summary of the change, but basically, for PA 2.0, as |
| 161 | long as the ",CO" (coherent operation) completer is specified, then the | ||
| 162 | 16-byte alignment requirement for ldcw and ldcd is relaxed, and instead | ||
| 163 | they only require "natural" alignment (4-byte for ldcw, 8-byte for | ||
| 164 | ldcd). */ | ||
| 165 | 165 | ||
| 166 | #define KERNEL_START (0x10100000 - 0x1000) | 166 | #define __PA_LDCW_ALIGNMENT 4 |
| 167 | #define __ldcw_align(a) ((volatile unsigned int *)a) | ||
| 168 | #define LDCW "ldcw,co" | ||
| 167 | 169 | ||
| 168 | /* This is for the serialisation of PxTLB broadcasts. At least on the | 170 | #endif /*!CONFIG_PA20*/ |
| 169 | * N class systems, only one PxTLB inter processor broadcast can be | ||
| 170 | * active at any one time on the Merced bus. This tlb purge | ||
| 171 | * synchronisation is fairly lightweight and harmless so we activate | ||
| 172 | * it on all SMP systems not just the N class. */ | ||
| 173 | #ifdef CONFIG_SMP | ||
| 174 | extern spinlock_t pa_tlb_lock; | ||
| 175 | 171 | ||
| 176 | #define purge_tlb_start(x) spin_lock(&pa_tlb_lock) | 172 | /* LDCW, the only atomic read-write operation PA-RISC has. *sigh*. */ |
| 177 | #define purge_tlb_end(x) spin_unlock(&pa_tlb_lock) | 173 | #define __ldcw(a) ({ \ |
| 178 | 174 | unsigned __ret; \ | |
| 179 | #else | 175 | __asm__ __volatile__(LDCW " 0(%1),%0" : "=r" (__ret) : "r" (a)); \ |
| 180 | 176 | __ret; \ | |
| 181 | #define purge_tlb_start(x) do { } while(0) | 177 | }) |
| 182 | #define purge_tlb_end(x) do { } while (0) | ||
| 183 | 178 | ||
| 179 | #ifdef CONFIG_SMP | ||
| 180 | # define __lock_aligned __attribute__((__section__(".data.lock_aligned"))) | ||
| 184 | #endif | 181 | #endif |
| 185 | 182 | ||
| 183 | #define KERNEL_START (0x10100000 - 0x1000) | ||
| 186 | #define arch_align_stack(x) (x) | 184 | #define arch_align_stack(x) (x) |
| 187 | 185 | ||
| 188 | #endif | 186 | #endif |
diff --git a/include/asm-parisc/tlbflush.h b/include/asm-parisc/tlbflush.h index eb27b78930e8..84af4ab1fe51 100644 --- a/include/asm-parisc/tlbflush.h +++ b/include/asm-parisc/tlbflush.h | |||
| @@ -7,6 +7,26 @@ | |||
| 7 | #include <linux/mm.h> | 7 | #include <linux/mm.h> |
| 8 | #include <asm/mmu_context.h> | 8 | #include <asm/mmu_context.h> |
| 9 | 9 | ||
| 10 | |||
| 11 | /* This is for the serialisation of PxTLB broadcasts. At least on the | ||
| 12 | * N class systems, only one PxTLB inter processor broadcast can be | ||
| 13 | * active at any one time on the Merced bus. This tlb purge | ||
| 14 | * synchronisation is fairly lightweight and harmless so we activate | ||
| 15 | * it on all SMP systems not just the N class. */ | ||
| 16 | #ifdef CONFIG_SMP | ||
| 17 | extern spinlock_t pa_tlb_lock; | ||
| 18 | |||
| 19 | #define purge_tlb_start(x) spin_lock(&pa_tlb_lock) | ||
| 20 | #define purge_tlb_end(x) spin_unlock(&pa_tlb_lock) | ||
| 21 | |||
| 22 | #else | ||
| 23 | |||
| 24 | #define purge_tlb_start(x) do { } while(0) | ||
| 25 | #define purge_tlb_end(x) do { } while (0) | ||
| 26 | |||
| 27 | #endif | ||
| 28 | |||
| 29 | |||
| 10 | extern void flush_tlb_all(void); | 30 | extern void flush_tlb_all(void); |
| 11 | 31 | ||
| 12 | /* | 32 | /* |
| @@ -64,29 +84,26 @@ static inline void flush_tlb_range(struct vm_area_struct *vma, | |||
| 64 | { | 84 | { |
| 65 | unsigned long npages; | 85 | unsigned long npages; |
| 66 | 86 | ||
| 67 | |||
| 68 | npages = ((end - (start & PAGE_MASK)) + (PAGE_SIZE - 1)) >> PAGE_SHIFT; | 87 | npages = ((end - (start & PAGE_MASK)) + (PAGE_SIZE - 1)) >> PAGE_SHIFT; |
| 69 | if (npages >= 512) /* XXX arbitrary, should be tuned */ | 88 | if (npages >= 512) /* 2MB of space: arbitrary, should be tuned */ |
| 70 | flush_tlb_all(); | 89 | flush_tlb_all(); |
| 71 | else { | 90 | else { |
| 72 | 91 | ||
| 73 | mtsp(vma->vm_mm->context,1); | 92 | mtsp(vma->vm_mm->context,1); |
| 93 | purge_tlb_start(); | ||
| 74 | if (split_tlb) { | 94 | if (split_tlb) { |
| 75 | purge_tlb_start(); | ||
| 76 | while (npages--) { | 95 | while (npages--) { |
| 77 | pdtlb(start); | 96 | pdtlb(start); |
| 78 | pitlb(start); | 97 | pitlb(start); |
| 79 | start += PAGE_SIZE; | 98 | start += PAGE_SIZE; |
| 80 | } | 99 | } |
| 81 | purge_tlb_end(); | ||
| 82 | } else { | 100 | } else { |
| 83 | purge_tlb_start(); | ||
| 84 | while (npages--) { | 101 | while (npages--) { |
| 85 | pdtlb(start); | 102 | pdtlb(start); |
| 86 | start += PAGE_SIZE; | 103 | start += PAGE_SIZE; |
| 87 | } | 104 | } |
| 88 | purge_tlb_end(); | ||
| 89 | } | 105 | } |
| 106 | purge_tlb_end(); | ||
| 90 | } | 107 | } |
| 91 | } | 108 | } |
| 92 | 109 | ||
diff --git a/include/asm-parisc/types.h b/include/asm-parisc/types.h index d21b9d0d63ea..34fdce361a5a 100644 --- a/include/asm-parisc/types.h +++ b/include/asm-parisc/types.h | |||
| @@ -33,8 +33,10 @@ typedef unsigned long long __u64; | |||
| 33 | 33 | ||
| 34 | #ifdef __LP64__ | 34 | #ifdef __LP64__ |
| 35 | #define BITS_PER_LONG 64 | 35 | #define BITS_PER_LONG 64 |
| 36 | #define SHIFT_PER_LONG 6 | ||
| 36 | #else | 37 | #else |
| 37 | #define BITS_PER_LONG 32 | 38 | #define BITS_PER_LONG 32 |
| 39 | #define SHIFT_PER_LONG 5 | ||
| 38 | #endif | 40 | #endif |
| 39 | 41 | ||
| 40 | #ifndef __ASSEMBLY__ | 42 | #ifndef __ASSEMBLY__ |
diff --git a/include/asm-parisc/unistd.h b/include/asm-parisc/unistd.h index 6a9f0cadff58..e7a620c5c5e6 100644 --- a/include/asm-parisc/unistd.h +++ b/include/asm-parisc/unistd.h | |||
| @@ -687,8 +687,8 @@ | |||
| 687 | #define __NR_shmget (__NR_Linux + 194) | 687 | #define __NR_shmget (__NR_Linux + 194) |
| 688 | #define __NR_shmctl (__NR_Linux + 195) | 688 | #define __NR_shmctl (__NR_Linux + 195) |
| 689 | 689 | ||
| 690 | #define __NR_getpmsg (__NR_Linux + 196) /* some people actually want streams */ | 690 | #define __NR_getpmsg (__NR_Linux + 196) /* Somebody *wants* streams? */ |
| 691 | #define __NR_putpmsg (__NR_Linux + 197) /* some people actually want streams */ | 691 | #define __NR_putpmsg (__NR_Linux + 197) |
| 692 | 692 | ||
| 693 | #define __NR_lstat64 (__NR_Linux + 198) | 693 | #define __NR_lstat64 (__NR_Linux + 198) |
| 694 | #define __NR_truncate64 (__NR_Linux + 199) | 694 | #define __NR_truncate64 (__NR_Linux + 199) |
| @@ -755,8 +755,14 @@ | |||
| 755 | #define __NR_mbind (__NR_Linux + 260) | 755 | #define __NR_mbind (__NR_Linux + 260) |
| 756 | #define __NR_get_mempolicy (__NR_Linux + 261) | 756 | #define __NR_get_mempolicy (__NR_Linux + 261) |
| 757 | #define __NR_set_mempolicy (__NR_Linux + 262) | 757 | #define __NR_set_mempolicy (__NR_Linux + 262) |
| 758 | #define __NR_vserver (__NR_Linux + 263) | ||
| 759 | #define __NR_add_key (__NR_Linux + 264) | ||
| 760 | #define __NR_request_key (__NR_Linux + 265) | ||
| 761 | #define __NR_keyctl (__NR_Linux + 266) | ||
| 762 | #define __NR_ioprio_set (__NR_Linux + 267) | ||
| 763 | #define __NR_ioprio_get (__NR_Linux + 268) | ||
| 758 | 764 | ||
| 759 | #define __NR_Linux_syscalls 263 | 765 | #define __NR_Linux_syscalls 269 |
| 760 | 766 | ||
| 761 | #define HPUX_GATEWAY_ADDR 0xC0000004 | 767 | #define HPUX_GATEWAY_ADDR 0xC0000004 |
| 762 | #define LINUX_GATEWAY_ADDR 0x100 | 768 | #define LINUX_GATEWAY_ADDR 0x100 |
| @@ -807,10 +813,10 @@ | |||
| 807 | #define K_INLINE_SYSCALL(name, nr, args...) ({ \ | 813 | #define K_INLINE_SYSCALL(name, nr, args...) ({ \ |
| 808 | long __sys_res; \ | 814 | long __sys_res; \ |
| 809 | { \ | 815 | { \ |
| 810 | register unsigned long __res asm("r28"); \ | 816 | register unsigned long __res __asm__("r28"); \ |
| 811 | K_LOAD_ARGS_##nr(args) \ | 817 | K_LOAD_ARGS_##nr(args) \ |
| 812 | /* FIXME: HACK stw/ldw r19 around syscall */ \ | 818 | /* FIXME: HACK stw/ldw r19 around syscall */ \ |
| 813 | asm volatile( \ | 819 | __asm__ volatile( \ |
| 814 | K_STW_ASM_PIC \ | 820 | K_STW_ASM_PIC \ |
| 815 | " ble 0x100(%%sr2, %%r0)\n" \ | 821 | " ble 0x100(%%sr2, %%r0)\n" \ |
| 816 | " ldi %1, %%r20\n" \ | 822 | " ldi %1, %%r20\n" \ |
diff --git a/include/linux/hil.h b/include/linux/hil.h new file mode 100644 index 000000000000..13352d7d0caf --- /dev/null +++ b/include/linux/hil.h | |||
| @@ -0,0 +1,483 @@ | |||
| 1 | #ifndef _HIL_H_ | ||
| 2 | #define _HIL_H_ | ||
| 3 | |||
| 4 | /* | ||
| 5 | * Hewlett Packard Human Interface Loop (HP-HIL) Protocol -- header. | ||
| 6 | * | ||
| 7 | * Copyright (c) 2001 Brian S. Julin | ||
| 8 | * All rights reserved. | ||
| 9 | * | ||
| 10 | * Redistribution and use in source and binary forms, with or without | ||
| 11 | * modification, are permitted provided that the following conditions | ||
| 12 | * are met: | ||
| 13 | * 1. Redistributions of source code must retain the above copyright | ||
| 14 | * notice, this list of conditions, and the following disclaimer, | ||
| 15 | * without modification. | ||
| 16 | * 2. The name of the author may not be used to endorse or promote products | ||
| 17 | * derived from this software without specific prior written permission. | ||
| 18 | * | ||
| 19 | * Alternatively, this software may be distributed under the terms of the | ||
| 20 | * GNU General Public License ("GPL"). | ||
| 21 | * | ||
| 22 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 23 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 25 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR | ||
| 26 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 28 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 29 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 31 | * | ||
| 32 | * References: | ||
| 33 | * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A | ||
| 34 | * | ||
| 35 | * A note of thanks to HP for providing and shipping reference materials | ||
| 36 | * free of charge to help in the development of HIL support for Linux. | ||
| 37 | * | ||
| 38 | */ | ||
| 39 | |||
| 40 | #include <asm/types.h> | ||
| 41 | |||
| 42 | /* Physical constants relevant to raw loop/device timing. | ||
| 43 | */ | ||
| 44 | |||
| 45 | #define HIL_CLOCK 8MHZ | ||
| 46 | #define HIL_EK1_CLOCK 30HZ | ||
| 47 | #define HIL_EK2_CLOCK 60HZ | ||
| 48 | |||
| 49 | #define HIL_TIMEOUT_DEV 5 /* ms */ | ||
| 50 | #define HIL_TIMEOUT_DEVS 10 /* ms */ | ||
| 51 | #define HIL_TIMEOUT_NORESP 10 /* ms */ | ||
| 52 | #define HIL_TIMEOUT_DEVS_DATA 16 /* ms */ | ||
| 53 | #define HIL_TIMEOUT_SELFTEST 200 /* ms */ | ||
| 54 | |||
| 55 | |||
| 56 | /* Actual wire line coding. These will only be useful if someone is | ||
| 57 | * implementing a software MLC to run HIL devices on a non-parisc machine. | ||
| 58 | */ | ||
| 59 | |||
| 60 | #define HIL_WIRE_PACKET_LEN 15 | ||
| 61 | enum hil_wire_bitpos { | ||
| 62 | HIL_WIRE_START = 0, | ||
| 63 | HIL_WIRE_ADDR2, | ||
| 64 | HIL_WIRE_ADDR1, | ||
| 65 | HIL_WIRE_ADDR0, | ||
| 66 | HIL_WIRE_COMMAND, | ||
| 67 | HIL_WIRE_DATA7, | ||
| 68 | HIL_WIRE_DATA6, | ||
| 69 | HIL_WIRE_DATA5, | ||
| 70 | HIL_WIRE_DATA4, | ||
| 71 | HIL_WIRE_DATA3, | ||
| 72 | HIL_WIRE_DATA2, | ||
| 73 | HIL_WIRE_DATA1, | ||
| 74 | HIL_WIRE_DATA0, | ||
| 75 | HIL_WIRE_PARITY, | ||
| 76 | HIL_WIRE_STOP | ||
| 77 | }; | ||
| 78 | |||
| 79 | /* HP documentation uses these bit positions to refer to commands; | ||
| 80 | * we will call these "packets". | ||
| 81 | */ | ||
| 82 | enum hil_pkt_bitpos { | ||
| 83 | HIL_PKT_CMD = 0x00000800, | ||
| 84 | HIL_PKT_ADDR2 = 0x00000400, | ||
| 85 | HIL_PKT_ADDR1 = 0x00000200, | ||
| 86 | HIL_PKT_ADDR0 = 0x00000100, | ||
| 87 | HIL_PKT_ADDR_MASK = 0x00000700, | ||
| 88 | HIL_PKT_ADDR_SHIFT = 8, | ||
| 89 | HIL_PKT_DATA7 = 0x00000080, | ||
| 90 | HIL_PKT_DATA6 = 0x00000040, | ||
| 91 | HIL_PKT_DATA5 = 0x00000020, | ||
| 92 | HIL_PKT_DATA4 = 0x00000010, | ||
| 93 | HIL_PKT_DATA3 = 0x00000008, | ||
| 94 | HIL_PKT_DATA2 = 0x00000004, | ||
| 95 | HIL_PKT_DATA1 = 0x00000002, | ||
| 96 | HIL_PKT_DATA0 = 0x00000001, | ||
| 97 | HIL_PKT_DATA_MASK = 0x000000FF, | ||
| 98 | HIL_PKT_DATA_SHIFT = 0 | ||
| 99 | }; | ||
| 100 | |||
| 101 | /* The HIL MLC also has several error/status/control bits. We extend the | ||
| 102 | * "packet" to include these when direct access to the MLC is available, | ||
| 103 | * or emulate them in cases where they are not available. | ||
| 104 | * | ||
| 105 | * This way the device driver knows that the underlying MLC driver | ||
| 106 | * has had to deal with loop errors. | ||
| 107 | */ | ||
| 108 | enum hil_error_bitpos { | ||
| 109 | HIL_ERR_OB = 0x00000800, /* MLC is busy sending an auto-poll, | ||
| 110 | or we have filled up the output | ||
| 111 | buffer and must wait. */ | ||
| 112 | HIL_ERR_INT = 0x00010000, /* A normal interrupt has occurred. */ | ||
| 113 | HIL_ERR_NMI = 0x00020000, /* An NMI has occurred. */ | ||
| 114 | HIL_ERR_LERR = 0x00040000, /* A poll didn't come back. */ | ||
| 115 | HIL_ERR_PERR = 0x01000000, /* There was a Parity Error. */ | ||
| 116 | HIL_ERR_FERR = 0x02000000, /* There was a Framing Error. */ | ||
| 117 | HIL_ERR_FOF = 0x04000000 /* Input FIFO Overflowed. */ | ||
| 118 | }; | ||
| 119 | |||
| 120 | enum hil_control_bitpos { | ||
| 121 | HIL_CTRL_TEST = 0x00010000, | ||
| 122 | HIL_CTRL_IPF = 0x00040000, | ||
| 123 | HIL_CTRL_APE = 0x02000000 | ||
| 124 | }; | ||
| 125 | |||
| 126 | /* Bits 30,31 are unused, we use them to control write behavior. */ | ||
| 127 | #define HIL_DO_ALTER_CTRL 0x40000000 /* Write MSW of packet to control | ||
| 128 | before writing LSW to loop */ | ||
| 129 | #define HIL_CTRL_ONLY 0xc0000000 /* *Only* alter the control registers */ | ||
| 130 | |||
| 131 | /* This gives us a 32-bit "packet" | ||
| 132 | */ | ||
| 133 | typedef u32 hil_packet; | ||
| 134 | |||
| 135 | |||
| 136 | /* HIL Loop commands | ||
| 137 | */ | ||
| 138 | enum hil_command { | ||
| 139 | HIL_CMD_IFC = 0x00, /* Interface Clear */ | ||
| 140 | HIL_CMD_EPT = 0x01, /* Enter Pass-Thru Mode */ | ||
| 141 | HIL_CMD_ELB = 0x02, /* Enter Loop-Back Mode */ | ||
| 142 | HIL_CMD_IDD = 0x03, /* Identify and Describe */ | ||
| 143 | HIL_CMD_DSR = 0x04, /* Device Soft Reset */ | ||
| 144 | HIL_CMD_PST = 0x05, /* Perform Self Test */ | ||
| 145 | HIL_CMD_RRG = 0x06, /* Read Register */ | ||
| 146 | HIL_CMD_WRG = 0x07, /* Write Register */ | ||
| 147 | HIL_CMD_ACF = 0x08, /* Auto Configure */ | ||
| 148 | HIL_CMDID_ACF = 0x07, /* Auto Configure bits with incremented ID */ | ||
| 149 | HIL_CMD_POL = 0x10, /* Poll */ | ||
| 150 | HIL_CMDCT_POL = 0x0f, /* Poll command bits with item count */ | ||
| 151 | HIL_CMD_RPL = 0x20, /* RePoll */ | ||
| 152 | HIL_CMDCT_RPL = 0x0f, /* RePoll command bits with item count */ | ||
| 153 | HIL_CMD_RNM = 0x30, /* Report Name */ | ||
| 154 | HIL_CMD_RST = 0x31, /* Report Status */ | ||
| 155 | HIL_CMD_EXD = 0x32, /* Extended Describe */ | ||
| 156 | HIL_CMD_RSC = 0x33, /* Report Security Code */ | ||
| 157 | |||
| 158 | /* 0x34 to 0x3c reserved for future use */ | ||
| 159 | |||
| 160 | HIL_CMD_DKA = 0x3d, /* Disable Keyswitch Autorepeat */ | ||
| 161 | HIL_CMD_EK1 = 0x3e, /* Enable Keyswitch Autorepeat 1 */ | ||
| 162 | HIL_CMD_EK2 = 0x3f, /* Enable Keyswitch Autorepeat 2 */ | ||
| 163 | HIL_CMD_PR1 = 0x40, /* Prompt1 */ | ||
| 164 | HIL_CMD_PR2 = 0x41, /* Prompt2 */ | ||
| 165 | HIL_CMD_PR3 = 0x42, /* Prompt3 */ | ||
| 166 | HIL_CMD_PR4 = 0x43, /* Prompt4 */ | ||
| 167 | HIL_CMD_PR5 = 0x44, /* Prompt5 */ | ||
| 168 | HIL_CMD_PR6 = 0x45, /* Prompt6 */ | ||
| 169 | HIL_CMD_PR7 = 0x46, /* Prompt7 */ | ||
| 170 | HIL_CMD_PRM = 0x47, /* Prompt (General Purpose) */ | ||
| 171 | HIL_CMD_AK1 = 0x48, /* Acknowlege1 */ | ||
| 172 | HIL_CMD_AK2 = 0x49, /* Acknowlege2 */ | ||
| 173 | HIL_CMD_AK3 = 0x4a, /* Acknowlege3 */ | ||
| 174 | HIL_CMD_AK4 = 0x4b, /* Acknowlege4 */ | ||
| 175 | HIL_CMD_AK5 = 0x4c, /* Acknowlege5 */ | ||
| 176 | HIL_CMD_AK6 = 0x4d, /* Acknowlege6 */ | ||
| 177 | HIL_CMD_AK7 = 0x4e, /* Acknowlege7 */ | ||
| 178 | HIL_CMD_ACK = 0x4f, /* Acknowlege (General Purpose) */ | ||
| 179 | |||
| 180 | /* 0x50 to 0x78 reserved for future use */ | ||
| 181 | /* 0x80 to 0xEF device-specific commands */ | ||
| 182 | /* 0xf0 to 0xf9 reserved for future use */ | ||
| 183 | |||
| 184 | HIL_CMD_RIO = 0xfa, /* Register I/O Error */ | ||
| 185 | HIL_CMD_SHR = 0xfb, /* System Hard Reset */ | ||
| 186 | HIL_CMD_TER = 0xfc, /* Transmission Error */ | ||
| 187 | HIL_CMD_CAE = 0xfd, /* Configuration Address Error */ | ||
| 188 | HIL_CMD_DHR = 0xfe, /* Device Hard Reset */ | ||
| 189 | |||
| 190 | /* 0xff is prohibited from use. */ | ||
| 191 | }; | ||
| 192 | |||
| 193 | |||
| 194 | /* | ||
| 195 | * Response "records" to HIL commands | ||
| 196 | */ | ||
| 197 | |||
| 198 | /* Device ID byte | ||
| 199 | */ | ||
| 200 | #define HIL_IDD_DID_TYPE_MASK 0xe0 /* Primary type bits */ | ||
| 201 | #define HIL_IDD_DID_TYPE_KB_INTEGRAL 0xa0 /* Integral keyboard */ | ||
| 202 | #define HIL_IDD_DID_TYPE_KB_ITF 0xc0 /* ITD keyboard */ | ||
| 203 | #define HIL_IDD_DID_TYPE_KB_RSVD 0xe0 /* Reserved keyboard type */ | ||
| 204 | #define HIL_IDD_DID_TYPE_KB_LANG_MASK 0x1f /* Keyboard locale bits */ | ||
| 205 | #define HIL_IDD_DID_KBLANG_USE_ESD 0x00 /* Use ESD Locale instead */ | ||
| 206 | #define HIL_IDD_DID_TYPE_ABS 0x80 /* Absolute Positioners */ | ||
| 207 | #define HIL_IDD_DID_ABS_RSVD1_MASK 0xf8 /* Reserved */ | ||
| 208 | #define HIL_IDD_DID_ABS_RSVD1 0x98 | ||
| 209 | #define HIL_IDD_DID_ABS_TABLET_MASK 0xf8 /* Tablets and digitizers */ | ||
| 210 | #define HIL_IDD_DID_ABS_TABLET 0x90 | ||
| 211 | #define HIL_IDD_DID_ABS_TSCREEN_MASK 0xfc /* Touch screens */ | ||
| 212 | #define HIL_IDD_DID_ABS_TSCREEN 0x8c | ||
| 213 | #define HIL_IDD_DID_ABS_RSVD2_MASK 0xfc /* Reserved */ | ||
| 214 | #define HIL_IDD_DID_ABS_RSVD2 0x88 | ||
| 215 | #define HIL_IDD_DID_ABS_RSVD3_MASK 0xfc /* Reserved */ | ||
| 216 | #define HIL_IDD_DID_ABS_RSVD3 0x80 | ||
| 217 | #define HIL_IDD_DID_TYPE_REL 0x60 /* Relative Positioners */ | ||
| 218 | #define HIL_IDD_DID_REL_RSVD1_MASK 0xf0 /* Reserved */ | ||
| 219 | #define HIL_IDD_DID_REL_RSVD1 0x70 | ||
| 220 | #define HIL_IDD_DID_REL_RSVD2_MASK 0xfc /* Reserved */ | ||
| 221 | #define HIL_IDD_DID_REL_RSVD2 0x6c | ||
| 222 | #define HIL_IDD_DID_REL_MOUSE_MASK 0xfc /* Mouse */ | ||
| 223 | #define HIL_IDD_DID_REL_MOUSE 0x68 | ||
| 224 | #define HIL_IDD_DID_REL_QUAD_MASK 0xf8 /* Other Quadrature Devices */ | ||
| 225 | #define HIL_IDD_DID_REL_QUAD 0x60 | ||
| 226 | #define HIL_IDD_DID_TYPE_CHAR 0x40 /* Character Entry */ | ||
| 227 | #define HIL_IDD_DID_CHAR_BARCODE_MASK 0xfc /* Barcode Reader */ | ||
| 228 | #define HIL_IDD_DID_CHAR_BARCODE 0x5c | ||
| 229 | #define HIL_IDD_DID_CHAR_RSVD1_MASK 0xfc /* Reserved */ | ||
| 230 | #define HIL_IDD_DID_CHAR_RSVD1 0x58 | ||
| 231 | #define HIL_IDD_DID_CHAR_RSVD2_MASK 0xf8 /* Reserved */ | ||
| 232 | #define HIL_IDD_DID_CHAR_RSVD2 0x50 | ||
| 233 | #define HIL_IDD_DID_CHAR_RSVD3_MASK 0xf0 /* Reserved */ | ||
| 234 | #define HIL_IDD_DID_CHAR_RSVD3 0x40 | ||
| 235 | #define HIL_IDD_DID_TYPE_OTHER 0x20 /* Miscellaneous */ | ||
| 236 | #define HIL_IDD_DID_OTHER_RSVD1_MASK 0xf0 /* Reserved */ | ||
| 237 | #define HIL_IDD_DID_OTHER_RSVD1 0x30 | ||
| 238 | #define HIL_IDD_DID_OTHER_BARCODE_MASK 0xfc /* Tone Generator */ | ||
| 239 | #define HIL_IDD_DID_OTHER_BARCODE 0x2c | ||
| 240 | #define HIL_IDD_DID_OTHER_RSVD2_MASK 0xfc /* Reserved */ | ||
| 241 | #define HIL_IDD_DID_OTHER_RSVD2 0x28 | ||
| 242 | #define HIL_IDD_DID_OTHER_RSVD3_MASK 0xf8 /* Reserved */ | ||
| 243 | #define HIL_IDD_DID_OTHER_RSVD3 0x20 | ||
| 244 | #define HIL_IDD_DID_TYPE_KEYPAD 0x00 /* Vectra Keyboard */ | ||
| 245 | |||
| 246 | /* IDD record header | ||
| 247 | */ | ||
| 248 | #define HIL_IDD_HEADER_AXSET_MASK 0x03 /* Number of axis in a set */ | ||
| 249 | #define HIL_IDD_HEADER_RSC 0x04 /* Supports RSC command */ | ||
| 250 | #define HIL_IDD_HEADER_EXD 0x08 /* Supports EXD command */ | ||
| 251 | #define HIL_IDD_HEADER_IOD 0x10 /* IOD byte to follow */ | ||
| 252 | #define HIL_IDD_HEADER_16BIT 0x20 /* 16 (vs. 8) bit resolution */ | ||
| 253 | #define HIL_IDD_HEADER_ABS 0x40 /* Reports Absolute Position */ | ||
| 254 | #define HIL_IDD_HEADER_2X_AXIS 0x80 /* Two sets of 1-3 axis */ | ||
| 255 | |||
| 256 | /* I/O Descriptor | ||
| 257 | */ | ||
| 258 | #define HIL_IDD_IOD_NBUTTON_MASK 0x07 /* Number of buttons */ | ||
| 259 | #define HIL_IDD_IOD_PROXIMITY 0x08 /* Proximity in/out events */ | ||
| 260 | #define HIL_IDD_IOD_PROMPT_MASK 0x70 /* Number of prompts/acks */ | ||
| 261 | #define HIL_IDD_IOD_PROMPT_SHIFT 4 | ||
| 262 | #define HIL_IDD_IOD_PROMPT 0x80 /* Generic prompt/ack */ | ||
| 263 | |||
| 264 | #define HIL_IDD_NUM_AXES_PER_SET(header_packet) \ | ||
| 265 | ((header_packet) & HIL_IDD_HEADER_AXSET_MASK) | ||
| 266 | |||
| 267 | #define HIL_IDD_NUM_AXSETS(header_packet) \ | ||
| 268 | (2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS)) | ||
| 269 | |||
| 270 | #define HIL_IDD_LEN(header_packet) \ | ||
| 271 | ((4 - !(header_packet & HIL_IDD_HEADER_IOD) - \ | ||
| 272 | 2 * !(HIL_IDD_NUM_AXES_PER_SET(header_packet))) + \ | ||
| 273 | 2 * HIL_IDD_NUM_AXES_PER_SET(header_packet) * \ | ||
| 274 | !!((header_packet) & HIL_IDD_HEADER_ABS)) | ||
| 275 | |||
| 276 | /* The following HIL_IDD_* macros assume you have an array of | ||
| 277 | * packets and/or unpacked 8-bit data in the order that they | ||
| 278 | * were received. | ||
| 279 | */ | ||
| 280 | |||
| 281 | #define HIL_IDD_AXIS_COUNTS_PER_M(header_ptr) \ | ||
| 282 | (!(HIL_IDD_NUM_AXSETS(*(header_ptr))) ? -1 : \ | ||
| 283 | (((*(header_ptr + 1) & HIL_PKT_DATA_MASK) + \ | ||
| 284 | ((*(header_ptr + 2) & HIL_PKT_DATA_MASK)) << 8) \ | ||
| 285 | * ((*(header_ptr) & HIL_IDD_HEADER_16BIT) ? 100 : 1))) | ||
| 286 | |||
| 287 | #define HIL_IDD_AXIS_MAX(header_ptr, __axnum) \ | ||
| 288 | ((!(*(header_ptr) & HIL_IDD_HEADER_ABS) || \ | ||
| 289 | (HIL_IDD_NUM_AXES_PER_SET(*(header_ptr)) <= __axnum)) ? 0 : \ | ||
| 290 | ((HIL_PKT_DATA_MASK & *((header_ptr) + 3 + 2 * __axnum)) + \ | ||
| 291 | ((HIL_PKT_DATA_MASK & *((header_ptr) + 4 + 2 * __axnum)) << 8))) | ||
| 292 | |||
| 293 | #define HIL_IDD_IOD(header_ptr) \ | ||
| 294 | (*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1)) | ||
| 295 | |||
| 296 | #define HIL_IDD_HAS_GEN_PROMPT(header_ptr) \ | ||
| 297 | ((*header_ptr & HIL_IDD_HEADER_IOD) && \ | ||
| 298 | (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT)) | ||
| 299 | |||
| 300 | #define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr) \ | ||
| 301 | ((*header_ptr & HIL_IDD_HEADER_IOD) && \ | ||
| 302 | (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY)) | ||
| 303 | |||
| 304 | #define HIL_IDD_NUM_BUTTONS(header_ptr) \ | ||
| 305 | ((*header_ptr & HIL_IDD_HEADER_IOD) ? \ | ||
| 306 | (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0) | ||
| 307 | |||
| 308 | #define HIL_IDD_NUM_PROMPTS(header_ptr) \ | ||
| 309 | ((*header_ptr & HIL_IDD_HEADER_IOD) ? \ | ||
| 310 | ((HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NPROMPT_MASK) \ | ||
| 311 | >> HIL_IDD_IOD_PROMPT_SHIFT) : 0) | ||
| 312 | |||
| 313 | /* The response to HIL EXD commands -- the "extended describe record" */ | ||
| 314 | #define HIL_EXD_HEADER_WRG 0x03 /* Supports type2 WRG */ | ||
| 315 | #define HIL_EXD_HEADER_WRG_TYPE1 0x01 /* Supports type1 WRG */ | ||
| 316 | #define HIL_EXD_HEADER_WRG_TYPE2 0x02 /* Supports type2 WRG */ | ||
| 317 | #define HIL_EXD_HEADER_RRG 0x04 /* Supports RRG command */ | ||
| 318 | #define HIL_EXD_HEADER_RNM 0x10 /* Supports RNM command */ | ||
| 319 | #define HIL_EXD_HEADER_RST 0x20 /* Supports RST command */ | ||
| 320 | #define HIL_EXD_HEADER_LOCALE 0x40 /* Contains locale code */ | ||
| 321 | |||
| 322 | #define HIL_EXD_NUM_RRG(header_ptr) \ | ||
| 323 | ((*header_ptr & HIL_EXD_HEADER_RRG) ? \ | ||
| 324 | (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0) | ||
| 325 | |||
| 326 | #define HIL_EXD_NUM_WWG(header_ptr) \ | ||
| 327 | ((*header_ptr & HIL_EXD_HEADER_WRG) ? \ | ||
| 328 | (*(header_ptr + 2 - !(*header_ptr & HIL_EXD_HEADER_RRG)) & \ | ||
| 329 | HIL_PKT_DATA_MASK) : 0) | ||
| 330 | |||
| 331 | #define HIL_EXD_LEN(header_ptr) \ | ||
| 332 | (!!(*header_ptr & HIL_EXD_HEADER_RRG) + \ | ||
| 333 | !!(*header_ptr & HIL_EXD_HEADER_WRG) + \ | ||
| 334 | !!(*header_ptr & HIL_EXD_HEADER_LOCALE) + \ | ||
| 335 | 2 * !!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) + 1) | ||
| 336 | |||
| 337 | #define HIL_EXD_LOCALE(header_ptr) \ | ||
| 338 | (!(*header_ptr & HIL_EXD_HEADER_LOCALE) ? -1 : \ | ||
| 339 | (*(header_ptr + HIL_EXD_LEN(header_ptr) - 1) & HIL_PKT_DATA_MASK)) | ||
| 340 | |||
| 341 | #define HIL_EXD_WRG_TYPE2_LEN(header_ptr) \ | ||
| 342 | (!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) ? -1 : \ | ||
| 343 | (*(header_ptr + HIL_EXD_LEN(header_ptr) - 2 - \ | ||
| 344 | !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) + \ | ||
| 345 | ((*(header_ptr + HIL_EXD_LEN(header_ptr) - 1 - \ | ||
| 346 | !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) << 8)) | ||
| 347 | |||
| 348 | /* Device locale codes. */ | ||
| 349 | |||
| 350 | /* Last defined locale code. Everything above this is "Reserved", | ||
| 351 | and note that this same table applies to the Device ID Byte where | ||
| 352 | keyboards may have a nationality code which is only 5 bits. */ | ||
| 353 | #define HIL_LOCALE_MAX 0x1f | ||
| 354 | |||
| 355 | /* Map to hopefully useful strings. I was trying to make these look | ||
| 356 | like locale.aliases strings do; maybe that isn't the right table to | ||
| 357 | emulate. In either case, I didn't have much to work on. */ | ||
| 358 | #define HIL_LOCALE_MAP \ | ||
| 359 | "", /* 0x00 Reserved */ \ | ||
| 360 | "", /* 0x01 Reserved */ \ | ||
| 361 | "", /* 0x02 Reserved */ \ | ||
| 362 | "swiss.french", /* 0x03 Swiss/French */ \ | ||
| 363 | "portuguese", /* 0x04 Portuguese */ \ | ||
| 364 | "arabic", /* 0x05 Arabic */ \ | ||
| 365 | "hebrew", /* 0x06 Hebrew */ \ | ||
| 366 | "english.canadian", /* 0x07 Canadian English */ \ | ||
| 367 | "turkish", /* 0x08 Turkish */ \ | ||
| 368 | "greek", /* 0x09 Greek */ \ | ||
| 369 | "thai", /* 0x0a Thai (Thailand) */ \ | ||
| 370 | "italian", /* 0x0b Italian */ \ | ||
| 371 | "korean", /* 0x0c Hangul (Korea) */ \ | ||
| 372 | "dutch", /* 0x0d Dutch */ \ | ||
| 373 | "swedish", /* 0x0e Swedish */ \ | ||
| 374 | "german", /* 0x0f German */ \ | ||
| 375 | "chinese", /* 0x10 Chinese-PRC */ \ | ||
| 376 | "chinese", /* 0x11 Chinese-ROC */ \ | ||
| 377 | "swiss.french", /* 0x12 Swiss/French II */ \ | ||
| 378 | "spanish", /* 0x13 Spanish */ \ | ||
| 379 | "swiss.german", /* 0x14 Swiss/German II */ \ | ||
| 380 | "flemish", /* 0x15 Belgian (Flemish) */ \ | ||
| 381 | "finnish", /* 0x16 Finnish */ \ | ||
| 382 | "english.uk", /* 0x17 United Kingdom */ \ | ||
| 383 | "french.canadian", /* 0x18 French/Canadian */ \ | ||
| 384 | "swiss.german", /* 0x19 Swiss/German */ \ | ||
| 385 | "norwegian", /* 0x1a Norwegian */ \ | ||
| 386 | "french", /* 0x1b French */ \ | ||
| 387 | "danish", /* 0x1c Danish */ \ | ||
| 388 | "japanese", /* 0x1d Katakana */ \ | ||
| 389 | "spanish", /* 0x1e Latin American/Spanish*/\ | ||
| 390 | "english.us" /* 0x1f United States */ \ | ||
| 391 | |||
| 392 | |||
| 393 | /* HIL keycodes */ | ||
| 394 | #define HIL_KEYCODES_SET1_TBLSIZE 128 | ||
| 395 | #define HIL_KEYCODES_SET1 \ | ||
| 396 | KEY_5, KEY_RESERVED, KEY_RIGHTALT, KEY_LEFTALT, \ | ||
| 397 | KEY_RIGHTSHIFT, KEY_LEFTSHIFT, KEY_LEFTCTRL, KEY_SYSRQ, \ | ||
| 398 | KEY_KP4, KEY_KP8, KEY_KP5, KEY_KP9, \ | ||
| 399 | KEY_KP6, KEY_KP7, KEY_KPCOMMA, KEY_KPENTER, \ | ||
| 400 | KEY_KP1, KEY_KPSLASH, KEY_KP2, KEY_KPPLUS, \ | ||
| 401 | KEY_KP3, KEY_KPASTERISK, KEY_KP0, KEY_KPMINUS, \ | ||
| 402 | KEY_B, KEY_V, KEY_C, KEY_X, \ | ||
| 403 | KEY_Z, KEY_RESERVED, KEY_RESERVED, KEY_ESC, \ | ||
| 404 | KEY_6, KEY_F10, KEY_3, KEY_F11, \ | ||
| 405 | KEY_KPDOT, KEY_F9, KEY_TAB /*KP*/, KEY_F12, \ | ||
| 406 | KEY_H, KEY_G, KEY_F, KEY_D, \ | ||
| 407 | KEY_S, KEY_A, KEY_RESERVED, KEY_CAPSLOCK, \ | ||
| 408 | KEY_U, KEY_Y, KEY_T, KEY_R, \ | ||
| 409 | KEY_E, KEY_W, KEY_Q, KEY_TAB, \ | ||
| 410 | KEY_7, KEY_6, KEY_5, KEY_4, \ | ||
| 411 | KEY_3, KEY_2, KEY_1, KEY_GRAVE, \ | ||
| 412 | KEY_F13, KEY_F14, KEY_F15, KEY_F16, \ | ||
| 413 | KEY_F17, KEY_F18, KEY_F19, KEY_F20, \ | ||
| 414 | KEY_MENU, KEY_F4, KEY_F3, KEY_F2, \ | ||
| 415 | KEY_F1, KEY_VOLUMEUP, KEY_STOP, KEY_SENDFILE, \ | ||
| 416 | KEY_SYSRQ, KEY_F5, KEY_F6, KEY_F7, \ | ||
| 417 | KEY_F8, KEY_VOLUMEDOWN, KEY_DEL_EOL, KEY_DEL_EOS, \ | ||
| 418 | KEY_8, KEY_9, KEY_0, KEY_MINUS, \ | ||
| 419 | KEY_EQUAL, KEY_BACKSPACE, KEY_INS_LINE, KEY_DEL_LINE, \ | ||
| 420 | KEY_I, KEY_O, KEY_P, KEY_LEFTBRACE, \ | ||
| 421 | KEY_RIGHTBRACE, KEY_BACKSLASH, KEY_INSERT, KEY_DELETE, \ | ||
| 422 | KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, \ | ||
| 423 | KEY_APOSTROPHE, KEY_ENTER, KEY_HOME, KEY_PAGEUP, \ | ||
| 424 | KEY_M, KEY_COMMA, KEY_DOT, KEY_SLASH, \ | ||
| 425 | KEY_BACKSLASH, KEY_SELECT, KEY_102ND, KEY_PAGEDOWN, \ | ||
| 426 | KEY_N, KEY_SPACE, KEY_NEXT, KEY_RESERVED, \ | ||
| 427 | KEY_LEFT, KEY_DOWN, KEY_UP, KEY_RIGHT | ||
| 428 | |||
| 429 | |||
| 430 | #define HIL_KEYCODES_SET3_TBLSIZE 128 | ||
| 431 | #define HIL_KEYCODES_SET3 \ | ||
| 432 | KEY_RESERVED, KEY_ESC, KEY_1, KEY_2, \ | ||
| 433 | KEY_3, KEY_4, KEY_5, KEY_6, \ | ||
| 434 | KEY_7, KEY_8, KEY_9, KEY_0, \ | ||
| 435 | KEY_MINUS, KEY_EQUAL, KEY_BACKSPACE, KEY_TAB, \ | ||
| 436 | KEY_Q, KEY_W, KEY_E, KEY_R, \ | ||
| 437 | KEY_T, KEY_Y, KEY_U, KEY_I, \ | ||
| 438 | KEY_O, KEY_P, KEY_LEFTBRACE, KEY_RIGHTBRACE, \ | ||
| 439 | KEY_ENTER, KEY_LEFTCTRL, KEY_A, KEY_S, \ | ||
| 440 | KEY_D, KEY_F, KEY_G, KEY_H, \ | ||
| 441 | KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, \ | ||
| 442 | KEY_APOSTROPHE,KEY_GRAVE, KEY_LEFTSHIFT, KEY_BACKSLASH, \ | ||
| 443 | KEY_Z, KEY_X, KEY_C, KEY_V, \ | ||
| 444 | KEY_B, KEY_N, KEY_M, KEY_COMMA, \ | ||
| 445 | KEY_DOT, KEY_SLASH, KEY_RIGHTSHIFT, KEY_KPASTERISK, \ | ||
| 446 | KEY_LEFTALT, KEY_SPACE, KEY_CAPSLOCK, KEY_F1, \ | ||
| 447 | KEY_F2, KEY_F3, KEY_F4, KEY_F5, \ | ||
| 448 | KEY_F6, KEY_F7, KEY_F8, KEY_F9, \ | ||
| 449 | KEY_F10, KEY_NUMLOCK, KEY_SCROLLLOCK, KEY_KP7, \ | ||
| 450 | KEY_KP8, KEY_KP9, KEY_KPMINUS, KEY_KP4, \ | ||
| 451 | KEY_KP5, KEY_KP6, KEY_KPPLUS, KEY_KP1, \ | ||
| 452 | KEY_KP2, KEY_KP3, KEY_KP0, KEY_KPDOT, \ | ||
| 453 | KEY_SYSRQ, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
| 454 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
| 455 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
| 456 | KEY_UP, KEY_LEFT, KEY_DOWN, KEY_RIGHT, \ | ||
| 457 | KEY_HOME, KEY_PAGEUP, KEY_END, KEY_PAGEDOWN, \ | ||
| 458 | KEY_INSERT, KEY_DELETE, KEY_102ND, KEY_RESERVED, \ | ||
| 459 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
| 460 | KEY_F1, KEY_F2, KEY_F3, KEY_F4, \ | ||
| 461 | KEY_F5, KEY_F6, KEY_F7, KEY_F8, \ | ||
| 462 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
| 463 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED | ||
| 464 | |||
| 465 | |||
| 466 | /* Response to POL command, the "poll record header" */ | ||
| 467 | |||
| 468 | #define HIL_POL_NUM_AXES_MASK 0x03 /* Number of axis reported */ | ||
| 469 | #define HIL_POL_CTS 0x04 /* Device ready to receive data */ | ||
| 470 | #define HIL_POL_STATUS_PENDING 0x08 /* Device has status to report */ | ||
| 471 | #define HIL_POL_CHARTYPE_MASK 0x70 /* Type of character data to follow */ | ||
| 472 | #define HIL_POL_CHARTYPE_NONE 0x00 /* No character data to follow */ | ||
| 473 | #define HIL_POL_CHARTYPE_RSVD1 0x10 /* Reserved Set 1 */ | ||
| 474 | #define HIL_POL_CHARTYPE_ASCII 0x20 /* U.S. ASCII */ | ||
| 475 | #define HIL_POL_CHARTYPE_BINARY 0x30 /* Binary data */ | ||
| 476 | #define HIL_POL_CHARTYPE_SET1 0x40 /* Keycode Set 1 */ | ||
| 477 | #define HIL_POL_CHARTYPE_RSVD2 0x50 /* Reserved Set 2 */ | ||
| 478 | #define HIL_POL_CHARTYPE_SET2 0x60 /* Keycode Set 2 */ | ||
| 479 | #define HIL_POL_CHARTYPE_SET3 0x70 /* Keycode Set 3 */ | ||
| 480 | #define HIL_POL_AXIS_ALT 0x80 /* Data is from axis set 2 */ | ||
| 481 | |||
| 482 | |||
| 483 | #endif /* _HIL_H_ */ | ||
diff --git a/include/linux/hil_mlc.h b/include/linux/hil_mlc.h new file mode 100644 index 000000000000..8df29ca48a13 --- /dev/null +++ b/include/linux/hil_mlc.h | |||
| @@ -0,0 +1,168 @@ | |||
| 1 | /* | ||
| 2 | * HP Human Interface Loop Master Link Controller driver. | ||
| 3 | * | ||
| 4 | * Copyright (c) 2001 Brian S. Julin | ||
| 5 | * All rights reserved. | ||
| 6 | * | ||
| 7 | * Redistribution and use in source and binary forms, with or without | ||
| 8 | * modification, are permitted provided that the following conditions | ||
| 9 | * are met: | ||
| 10 | * 1. Redistributions of source code must retain the above copyright | ||
| 11 | * notice, this list of conditions, and the following disclaimer, | ||
| 12 | * without modification. | ||
| 13 | * 2. The name of the author may not be used to endorse or promote products | ||
| 14 | * derived from this software without specific prior written permission. | ||
| 15 | * | ||
| 16 | * Alternatively, this software may be distributed under the terms of the | ||
| 17 | * GNU General Public License ("GPL"). | ||
| 18 | * | ||
| 19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 20 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 22 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR | ||
| 23 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 28 | * | ||
| 29 | * References: | ||
| 30 | * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A | ||
| 31 | * | ||
| 32 | */ | ||
| 33 | |||
| 34 | #include <linux/hil.h> | ||
| 35 | #include <linux/time.h> | ||
| 36 | #include <linux/interrupt.h> | ||
| 37 | #include <asm/semaphore.h> | ||
| 38 | #include <linux/serio.h> | ||
| 39 | #include <linux/list.h> | ||
| 40 | |||
| 41 | typedef struct hil_mlc hil_mlc; | ||
| 42 | |||
| 43 | /* The HIL has a complicated state engine. | ||
| 44 | * We define the structure of nodes in the state engine here. | ||
| 45 | */ | ||
| 46 | enum hilse_act { | ||
| 47 | /* HILSE_OUT prepares to receive input if the next node | ||
| 48 | * is an IN or EXPECT, and then sends the given packet. | ||
| 49 | */ | ||
| 50 | HILSE_OUT = 0, | ||
| 51 | |||
| 52 | /* HILSE_CTS checks if the loop is busy. */ | ||
| 53 | HILSE_CTS, | ||
| 54 | |||
| 55 | /* HILSE_OUT_LAST sends the given command packet to | ||
| 56 | * the last configured/running device on the loop. | ||
| 57 | */ | ||
| 58 | HILSE_OUT_LAST, | ||
| 59 | |||
| 60 | /* HILSE_OUT_DISC sends the given command packet to | ||
| 61 | * the next device past the last configured/running one. | ||
| 62 | */ | ||
| 63 | HILSE_OUT_DISC, | ||
| 64 | |||
| 65 | /* HILSE_FUNC runs a callback function with given arguments. | ||
| 66 | * a positive return value causes the "ugly" branch to be taken. | ||
| 67 | */ | ||
| 68 | HILSE_FUNC, | ||
| 69 | |||
| 70 | /* HILSE_IN simply expects any non-errored packet to arrive | ||
| 71 | * within arg usecs. | ||
| 72 | */ | ||
| 73 | HILSE_IN = 0x100, | ||
| 74 | |||
| 75 | /* HILSE_EXPECT expects a particular packet to arrive | ||
| 76 | * within arg usecs, any other packet is considered an error. | ||
| 77 | */ | ||
| 78 | HILSE_EXPECT, | ||
| 79 | |||
| 80 | /* HILSE_EXPECT_LAST as above but dev field should be last | ||
| 81 | * discovered/operational device. | ||
| 82 | */ | ||
| 83 | HILSE_EXPECT_LAST, | ||
| 84 | |||
| 85 | /* HILSE_EXPECT_LAST as above but dev field should be first | ||
| 86 | * undiscovered/inoperational device. | ||
| 87 | */ | ||
| 88 | HILSE_EXPECT_DISC | ||
| 89 | }; | ||
| 90 | |||
| 91 | typedef int (hilse_func) (hil_mlc *mlc, int arg); | ||
| 92 | struct hilse_node { | ||
| 93 | enum hilse_act act; /* How to process this node */ | ||
| 94 | union { | ||
| 95 | hilse_func *func; /* Function to call if HILSE_FUNC */ | ||
| 96 | hil_packet packet; /* Packet to send or to compare */ | ||
| 97 | } object; | ||
| 98 | int arg; /* Timeout in usec or parm for func */ | ||
| 99 | int good; /* Node to jump to on success */ | ||
| 100 | int bad; /* Node to jump to on error */ | ||
| 101 | int ugly; /* Node to jump to on timeout */ | ||
| 102 | }; | ||
| 103 | |||
| 104 | /* Methods for back-end drivers, e.g. hp_sdc_mlc */ | ||
| 105 | typedef int (hil_mlc_cts) (hil_mlc *mlc); | ||
| 106 | typedef void (hil_mlc_out) (hil_mlc *mlc); | ||
| 107 | typedef int (hil_mlc_in) (hil_mlc *mlc, suseconds_t timeout); | ||
| 108 | |||
| 109 | struct hil_mlc_devinfo { | ||
| 110 | uint8_t idd[16]; /* Device ID Byte and Describe Record */ | ||
| 111 | uint8_t rsc[16]; /* Security Code Header and Record */ | ||
| 112 | uint8_t exd[16]; /* Extended Describe Record */ | ||
| 113 | uint8_t rnm[16]; /* Device name as returned by RNM command */ | ||
| 114 | }; | ||
| 115 | |||
| 116 | struct hil_mlc_serio_map { | ||
| 117 | hil_mlc *mlc; | ||
| 118 | int di_revmap; | ||
| 119 | int didx; | ||
| 120 | }; | ||
| 121 | |||
| 122 | /* How many (possibly old/detached) devices the we try to keep track of */ | ||
| 123 | #define HIL_MLC_DEVMEM 16 | ||
| 124 | |||
| 125 | struct hil_mlc { | ||
| 126 | struct list_head list; /* hil_mlc is organized as linked list */ | ||
| 127 | |||
| 128 | rwlock_t lock; | ||
| 129 | |||
| 130 | void *priv; /* Data specific to a particular type of MLC */ | ||
| 131 | |||
| 132 | int seidx; /* Current node in state engine */ | ||
| 133 | int istarted, ostarted; | ||
| 134 | |||
| 135 | hil_mlc_cts *cts; | ||
| 136 | struct semaphore csem; /* Raised when loop idle */ | ||
| 137 | |||
| 138 | hil_mlc_out *out; | ||
| 139 | struct semaphore osem; /* Raised when outpacket dispatched */ | ||
| 140 | hil_packet opacket; | ||
| 141 | |||
| 142 | hil_mlc_in *in; | ||
| 143 | struct semaphore isem; /* Raised when a packet arrives */ | ||
| 144 | hil_packet ipacket[16]; | ||
| 145 | hil_packet imatch; | ||
| 146 | int icount; | ||
| 147 | struct timeval instart; | ||
| 148 | suseconds_t intimeout; | ||
| 149 | |||
| 150 | int ddi; /* Last operational device id */ | ||
| 151 | int lcv; /* LCV to throttle loops */ | ||
| 152 | struct timeval lcv_tv; /* Time loop was started */ | ||
| 153 | |||
| 154 | int di_map[7]; /* Maps below items to live devs */ | ||
| 155 | struct hil_mlc_devinfo di[HIL_MLC_DEVMEM]; | ||
| 156 | struct serio *serio[HIL_MLC_DEVMEM]; | ||
| 157 | struct hil_mlc_serio_map serio_map[HIL_MLC_DEVMEM]; | ||
| 158 | hil_packet serio_opacket[HIL_MLC_DEVMEM]; | ||
| 159 | int serio_oidx[HIL_MLC_DEVMEM]; | ||
| 160 | struct hil_mlc_devinfo di_scratch; /* Temporary area */ | ||
| 161 | |||
| 162 | int opercnt; | ||
| 163 | |||
| 164 | struct tasklet_struct *tasklet; | ||
| 165 | }; | ||
| 166 | |||
| 167 | int hil_mlc_register(hil_mlc *mlc); | ||
| 168 | int hil_mlc_unregister(hil_mlc *mlc); | ||
diff --git a/include/linux/hp_sdc.h b/include/linux/hp_sdc.h new file mode 100644 index 000000000000..debd71515312 --- /dev/null +++ b/include/linux/hp_sdc.h | |||
| @@ -0,0 +1,300 @@ | |||
| 1 | /* | ||
| 2 | * HP i8042 System Device Controller -- header | ||
| 3 | * | ||
| 4 | * Copyright (c) 2001 Brian S. Julin | ||
| 5 | * All rights reserved. | ||
| 6 | * | ||
| 7 | * Redistribution and use in source and binary forms, with or without | ||
| 8 | * modification, are permitted provided that the following conditions | ||
| 9 | * are met: | ||
| 10 | * 1. Redistributions of source code must retain the above copyright | ||
| 11 | * notice, this list of conditions, and the following disclaimer, | ||
| 12 | * without modification. | ||
| 13 | * 2. The name of the author may not be used to endorse or promote products | ||
| 14 | * derived from this software without specific prior written permission. | ||
| 15 | * | ||
| 16 | * Alternatively, this software may be distributed under the terms of the | ||
| 17 | * GNU General Public License ("GPL"). | ||
| 18 | * | ||
| 19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
| 20 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 22 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR | ||
| 23 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 28 | * | ||
| 29 | * References: | ||
| 30 | * | ||
| 31 | * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A | ||
| 32 | * | ||
| 33 | * System Device Controller Microprocessor Firmware Theory of Operation | ||
| 34 | * for Part Number 1820-4784 Revision B. Dwg No. A-1820-4784-2 | ||
| 35 | * | ||
| 36 | */ | ||
| 37 | |||
| 38 | #ifndef _LINUX_HP_SDC_H | ||
| 39 | #define _LINUX_HP_SDC_H | ||
| 40 | |||
| 41 | #include <linux/interrupt.h> | ||
| 42 | #include <linux/types.h> | ||
| 43 | #include <linux/time.h> | ||
| 44 | #include <linux/timer.h> | ||
| 45 | #if defined(__hppa__) | ||
| 46 | #include <asm/hardware.h> | ||
| 47 | #endif | ||
| 48 | |||
| 49 | |||
| 50 | /* No 4X status reads take longer than this (in usec). | ||
| 51 | */ | ||
| 52 | #define HP_SDC_MAX_REG_DELAY 20000 | ||
| 53 | |||
| 54 | typedef void (hp_sdc_irqhook) (int irq, void *dev_id, | ||
| 55 | uint8_t status, uint8_t data); | ||
| 56 | |||
| 57 | int hp_sdc_request_timer_irq(hp_sdc_irqhook *callback); | ||
| 58 | int hp_sdc_request_hil_irq(hp_sdc_irqhook *callback); | ||
| 59 | int hp_sdc_request_cooked_irq(hp_sdc_irqhook *callback); | ||
| 60 | int hp_sdc_release_timer_irq(hp_sdc_irqhook *callback); | ||
| 61 | int hp_sdc_release_hil_irq(hp_sdc_irqhook *callback); | ||
| 62 | int hp_sdc_release_cooked_irq(hp_sdc_irqhook *callback); | ||
| 63 | |||
| 64 | typedef struct { | ||
| 65 | int actidx; /* Start of act. Acts are atomic WRT I/O to SDC */ | ||
| 66 | int idx; /* Index within the act */ | ||
| 67 | int endidx; /* transaction is over and done if idx == endidx */ | ||
| 68 | uint8_t *seq; /* commands/data for the transaction */ | ||
| 69 | union { | ||
| 70 | hp_sdc_irqhook *irqhook; /* Callback, isr or tasklet context */ | ||
| 71 | struct semaphore *semaphore; /* Semaphore to sleep on. */ | ||
| 72 | } act; | ||
| 73 | } hp_sdc_transaction; | ||
| 74 | int hp_sdc_enqueue_transaction(hp_sdc_transaction *this); | ||
| 75 | int hp_sdc_dequeue_transaction(hp_sdc_transaction *this); | ||
| 76 | |||
| 77 | /* The HP_SDC_ACT* values are peculiar to this driver. | ||
| 78 | * Nuance: never HP_SDC_ACT_DATAIN | HP_SDC_ACT_DEALLOC, use another | ||
| 79 | * act to perform the dealloc. | ||
| 80 | */ | ||
| 81 | #define HP_SDC_ACT_PRECMD 0x01 /* Send a command first */ | ||
| 82 | #define HP_SDC_ACT_DATAREG 0x02 /* Set data registers */ | ||
| 83 | #define HP_SDC_ACT_DATAOUT 0x04 /* Send data bytes */ | ||
| 84 | #define HP_SDC_ACT_POSTCMD 0x08 /* Send command after */ | ||
| 85 | #define HP_SDC_ACT_DATAIN 0x10 /* Collect data after */ | ||
| 86 | #define HP_SDC_ACT_DURING 0x1f | ||
| 87 | #define HP_SDC_ACT_SEMAPHORE 0x20 /* Raise semaphore after */ | ||
| 88 | #define HP_SDC_ACT_CALLBACK 0x40 /* Pass data to IRQ handler */ | ||
| 89 | #define HP_SDC_ACT_DEALLOC 0x80 /* Destroy transaction after */ | ||
| 90 | #define HP_SDC_ACT_AFTER 0xe0 | ||
| 91 | #define HP_SDC_ACT_DEAD 0x60 /* Act timed out. */ | ||
| 92 | |||
| 93 | /* Rest of the flags are straightforward representation of the SDC interface */ | ||
| 94 | #define HP_SDC_STATUS_IBF 0x02 /* Input buffer full */ | ||
| 95 | |||
| 96 | #define HP_SDC_STATUS_IRQMASK 0xf0 /* Bits containing "level 1" irq */ | ||
| 97 | #define HP_SDC_STATUS_PERIODIC 0x10 /* Periodic 10ms timer */ | ||
| 98 | #define HP_SDC_STATUS_USERTIMER 0x20 /* "Special purpose" timer */ | ||
| 99 | #define HP_SDC_STATUS_TIMER 0x30 /* Both PERIODIC and USERTIMER */ | ||
| 100 | #define HP_SDC_STATUS_REG 0x40 /* Data from an i8042 register */ | ||
| 101 | #define HP_SDC_STATUS_HILCMD 0x50 /* Command from HIL MLC */ | ||
| 102 | #define HP_SDC_STATUS_HILDATA 0x60 /* Data from HIL MLC */ | ||
| 103 | #define HP_SDC_STATUS_PUP 0x70 /* Sucessful power-up self test */ | ||
| 104 | #define HP_SDC_STATUS_KCOOKED 0x80 /* Key from cooked kbd */ | ||
| 105 | #define HP_SDC_STATUS_KRPG 0xc0 /* Key from Repeat Gen */ | ||
| 106 | #define HP_SDC_STATUS_KMOD_SUP 0x10 /* Shift key is up */ | ||
| 107 | #define HP_SDC_STATUS_KMOD_CUP 0x20 /* Control key is up */ | ||
| 108 | |||
| 109 | #define HP_SDC_NMISTATUS_FHS 0x40 /* NMI is a fast handshake irq */ | ||
| 110 | |||
| 111 | /* Internal i8042 registers (there are more, but they are not too useful). */ | ||
| 112 | |||
| 113 | #define HP_SDC_USE 0x02 /* Resource usage (including OB bit) */ | ||
| 114 | #define HP_SDC_IM 0x04 /* Interrupt mask */ | ||
| 115 | #define HP_SDC_CFG 0x11 /* Configuration register */ | ||
| 116 | #define HP_SDC_KBLANGUAGE 0x12 /* Keyboard language */ | ||
| 117 | |||
| 118 | #define HP_SDC_D0 0x70 /* General purpose data buffer 0 */ | ||
| 119 | #define HP_SDC_D1 0x71 /* General purpose data buffer 1 */ | ||
| 120 | #define HP_SDC_D2 0x72 /* General purpose data buffer 2 */ | ||
| 121 | #define HP_SDC_D3 0x73 /* General purpose data buffer 3 */ | ||
| 122 | #define HP_SDC_VT1 0x74 /* Timer for voice 1 */ | ||
| 123 | #define HP_SDC_VT2 0x75 /* Timer for voice 2 */ | ||
| 124 | #define HP_SDC_VT3 0x76 /* Timer for voice 3 */ | ||
| 125 | #define HP_SDC_VT4 0x77 /* Timer for voice 4 */ | ||
| 126 | #define HP_SDC_KBN 0x78 /* Which HIL devs are Nimitz */ | ||
| 127 | #define HP_SDC_KBC 0x79 /* Which HIL devs are cooked kbds */ | ||
| 128 | #define HP_SDC_LPS 0x7a /* i8042's view of HIL status */ | ||
| 129 | #define HP_SDC_LPC 0x7b /* i8042's view of HIL "control" */ | ||
| 130 | #define HP_SDC_RSV 0x7c /* Reserved "for testing" */ | ||
| 131 | #define HP_SDC_LPR 0x7d /* i8042 count of HIL reconfigs */ | ||
| 132 | #define HP_SDC_XTD 0x7e /* "Extended Configuration" register */ | ||
| 133 | #define HP_SDC_STR 0x7f /* i8042 self-test result */ | ||
| 134 | |||
| 135 | /* Bitfields for above registers */ | ||
| 136 | #define HP_SDC_USE_LOOP 0x04 /* Command is currently on the loop. */ | ||
| 137 | |||
| 138 | #define HP_SDC_IM_MASK 0x1f /* these bits not part of cmd/status */ | ||
| 139 | #define HP_SDC_IM_FH 0x10 /* Mask the fast handshake irq */ | ||
| 140 | #define HP_SDC_IM_PT 0x08 /* Mask the periodic timer irq */ | ||
| 141 | #define HP_SDC_IM_TIMERS 0x04 /* Mask the MT/DT/CT irq */ | ||
| 142 | #define HP_SDC_IM_RESET 0x02 /* Mask the reset key irq */ | ||
| 143 | #define HP_SDC_IM_HIL 0x01 /* Mask the HIL MLC irq */ | ||
| 144 | |||
| 145 | #define HP_SDC_CFG_ROLLOVER 0x08 /* WTF is "N-key rollover"? */ | ||
| 146 | #define HP_SDC_CFG_KBD 0x10 /* There is a keyboard */ | ||
| 147 | #define HP_SDC_CFG_NEW 0x20 /* Supports/uses HIL MLC */ | ||
| 148 | #define HP_SDC_CFG_KBD_OLD 0x03 /* keyboard code for non-HIL */ | ||
| 149 | #define HP_SDC_CFG_KBD_NEW 0x07 /* keyboard code from HIL autoconfig */ | ||
| 150 | #define HP_SDC_CFG_REV 0x40 /* Code revision bit */ | ||
| 151 | #define HP_SDC_CFG_IDPROM 0x80 /* IDPROM present in kbd (not HIL) */ | ||
| 152 | |||
| 153 | #define HP_SDC_LPS_NDEV 0x07 /* # devices autoconfigured on HIL */ | ||
| 154 | #define HP_SDC_LPS_ACSUCC 0x08 /* loop autoconfigured successfully */ | ||
| 155 | #define HP_SDC_LPS_ACFAIL 0x80 /* last loop autoconfigure failed */ | ||
| 156 | |||
| 157 | #define HP_SDC_LPC_APE_IPF 0x01 /* HIL MLC APE/IPF (autopoll) set */ | ||
| 158 | #define HP_SDC_LPC_ARCONERR 0x02 /* i8042 autoreconfigs loop on err */ | ||
| 159 | #define HP_SDC_LPC_ARCQUIET 0x03 /* i8042 doesn't report autoreconfigs*/ | ||
| 160 | #define HP_SDC_LPC_COOK 0x10 /* i8042 cooks devices in _KBN */ | ||
| 161 | #define HP_SDC_LPC_RC 0x80 /* causes autoreconfig */ | ||
| 162 | |||
| 163 | #define HP_SDC_XTD_REV 0x07 /* contains revision code */ | ||
| 164 | #define HP_SDC_XTD_REV_STRINGS(val, str) \ | ||
| 165 | switch (val) { \ | ||
| 166 | case 0x1: str = "1820-3712"; break; \ | ||
| 167 | case 0x2: str = "1820-4379"; break; \ | ||
| 168 | case 0x3: str = "1820-4784"; break; \ | ||
| 169 | default: str = "unknown"; \ | ||
| 170 | }; | ||
| 171 | #define HP_SDC_XTD_BEEPER 0x08 /* TI SN76494 beeper available */ | ||
| 172 | #define HP_SDC_XTD_BBRTC 0x20 /* OKI MSM-58321 BBRTC present */ | ||
| 173 | |||
| 174 | #define HP_SDC_CMD_LOAD_RT 0x31 /* Load real time (from 8042) */ | ||
| 175 | #define HP_SDC_CMD_LOAD_FHS 0x36 /* Load the fast handshake timer */ | ||
| 176 | #define HP_SDC_CMD_LOAD_MT 0x38 /* Load the match timer */ | ||
| 177 | #define HP_SDC_CMD_LOAD_DT 0x3B /* Load the delay timer */ | ||
| 178 | #define HP_SDC_CMD_LOAD_CT 0x3E /* Load the cycle timer */ | ||
| 179 | |||
| 180 | #define HP_SDC_CMD_SET_IM 0x40 /* 010xxxxx == set irq mask */ | ||
| 181 | |||
| 182 | /* The documents provided do not explicitly state that all registers betweem | ||
| 183 | * 0x01 and 0x1f inclusive can be read by sending their register index as a | ||
| 184 | * command, but this is implied and appears to be the case. | ||
| 185 | */ | ||
| 186 | #define HP_SDC_CMD_READ_RAM 0x00 /* Load from i8042 RAM (autoinc) */ | ||
| 187 | #define HP_SDC_CMD_READ_USE 0x02 /* Undocumented! Load from usage reg */ | ||
| 188 | #define HP_SDC_CMD_READ_IM 0x04 /* Load current interrupt mask */ | ||
| 189 | #define HP_SDC_CMD_READ_KCC 0x11 /* Load primary kbd config code */ | ||
| 190 | #define HP_SDC_CMD_READ_KLC 0x12 /* Load primary kbd language code */ | ||
| 191 | #define HP_SDC_CMD_READ_T1 0x13 /* Load timer output buffer byte 1 */ | ||
| 192 | #define HP_SDC_CMD_READ_T2 0x14 /* Load timer output buffer byte 1 */ | ||
| 193 | #define HP_SDC_CMD_READ_T3 0x15 /* Load timer output buffer byte 1 */ | ||
| 194 | #define HP_SDC_CMD_READ_T4 0x16 /* Load timer output buffer byte 1 */ | ||
| 195 | #define HP_SDC_CMD_READ_T5 0x17 /* Load timer output buffer byte 1 */ | ||
| 196 | #define HP_SDC_CMD_READ_D0 0xf0 /* Load from i8042 RAM location 0x70 */ | ||
| 197 | #define HP_SDC_CMD_READ_D1 0xf1 /* Load from i8042 RAM location 0x71 */ | ||
| 198 | #define HP_SDC_CMD_READ_D2 0xf2 /* Load from i8042 RAM location 0x72 */ | ||
| 199 | #define HP_SDC_CMD_READ_D3 0xf3 /* Load from i8042 RAM location 0x73 */ | ||
| 200 | #define HP_SDC_CMD_READ_VT1 0xf4 /* Load from i8042 RAM location 0x74 */ | ||
| 201 | #define HP_SDC_CMD_READ_VT2 0xf5 /* Load from i8042 RAM location 0x75 */ | ||
| 202 | #define HP_SDC_CMD_READ_VT3 0xf6 /* Load from i8042 RAM location 0x76 */ | ||
| 203 | #define HP_SDC_CMD_READ_VT4 0xf7 /* Load from i8042 RAM location 0x77 */ | ||
| 204 | #define HP_SDC_CMD_READ_KBN 0xf8 /* Load from i8042 RAM location 0x78 */ | ||
| 205 | #define HP_SDC_CMD_READ_KBC 0xf9 /* Load from i8042 RAM location 0x79 */ | ||
| 206 | #define HP_SDC_CMD_READ_LPS 0xfa /* Load from i8042 RAM location 0x7a */ | ||
| 207 | #define HP_SDC_CMD_READ_LPC 0xfb /* Load from i8042 RAM location 0x7b */ | ||
| 208 | #define HP_SDC_CMD_READ_RSV 0xfc /* Load from i8042 RAM location 0x7c */ | ||
| 209 | #define HP_SDC_CMD_READ_LPR 0xfd /* Load from i8042 RAM location 0x7d */ | ||
| 210 | #define HP_SDC_CMD_READ_XTD 0xfe /* Load from i8042 RAM location 0x7e */ | ||
| 211 | #define HP_SDC_CMD_READ_STR 0xff /* Load from i8042 RAM location 0x7f */ | ||
| 212 | |||
| 213 | #define HP_SDC_CMD_SET_ARD 0xA0 /* Set emulated autorepeat delay */ | ||
| 214 | #define HP_SDC_CMD_SET_ARR 0xA2 /* Set emulated autorepeat rate */ | ||
| 215 | #define HP_SDC_CMD_SET_BELL 0xA3 /* Set voice 3 params for "beep" cmd */ | ||
| 216 | #define HP_SDC_CMD_SET_RPGR 0xA6 /* Set "RPG" irq rate (doesn't work) */ | ||
| 217 | #define HP_SDC_CMD_SET_RTMS 0xAD /* Set the RTC time (milliseconds) */ | ||
| 218 | #define HP_SDC_CMD_SET_RTD 0xAF /* Set the RTC time (days) */ | ||
| 219 | #define HP_SDC_CMD_SET_FHS 0xB2 /* Set fast handshake timer */ | ||
| 220 | #define HP_SDC_CMD_SET_MT 0xB4 /* Set match timer */ | ||
| 221 | #define HP_SDC_CMD_SET_DT 0xB7 /* Set delay timer */ | ||
| 222 | #define HP_SDC_CMD_SET_CT 0xBA /* Set cycle timer */ | ||
| 223 | #define HP_SDC_CMD_SET_RAMP 0xC1 /* Reset READ_RAM autoinc counter */ | ||
| 224 | #define HP_SDC_CMD_SET_D0 0xe0 /* Load to i8042 RAM location 0x70 */ | ||
| 225 | #define HP_SDC_CMD_SET_D1 0xe1 /* Load to i8042 RAM location 0x71 */ | ||
| 226 | #define HP_SDC_CMD_SET_D2 0xe2 /* Load to i8042 RAM location 0x72 */ | ||
| 227 | #define HP_SDC_CMD_SET_D3 0xe3 /* Load to i8042 RAM location 0x73 */ | ||
| 228 | #define HP_SDC_CMD_SET_VT1 0xe4 /* Load to i8042 RAM location 0x74 */ | ||
| 229 | #define HP_SDC_CMD_SET_VT2 0xe5 /* Load to i8042 RAM location 0x75 */ | ||
| 230 | #define HP_SDC_CMD_SET_VT3 0xe6 /* Load to i8042 RAM location 0x76 */ | ||
| 231 | #define HP_SDC_CMD_SET_VT4 0xe7 /* Load to i8042 RAM location 0x77 */ | ||
| 232 | #define HP_SDC_CMD_SET_KBN 0xe8 /* Load to i8042 RAM location 0x78 */ | ||
| 233 | #define HP_SDC_CMD_SET_KBC 0xe9 /* Load to i8042 RAM location 0x79 */ | ||
| 234 | #define HP_SDC_CMD_SET_LPS 0xea /* Load to i8042 RAM location 0x7a */ | ||
| 235 | #define HP_SDC_CMD_SET_LPC 0xeb /* Load to i8042 RAM location 0x7b */ | ||
| 236 | #define HP_SDC_CMD_SET_RSV 0xec /* Load to i8042 RAM location 0x7c */ | ||
| 237 | #define HP_SDC_CMD_SET_LPR 0xed /* Load to i8042 RAM location 0x7d */ | ||
| 238 | #define HP_SDC_CMD_SET_XTD 0xee /* Load to i8042 RAM location 0x7e */ | ||
| 239 | #define HP_SDC_CMD_SET_STR 0xef /* Load to i8042 RAM location 0x7f */ | ||
| 240 | |||
| 241 | #define HP_SDC_CMD_DO_RTCW 0xc2 /* i8042 RAM 0x70 --> RTC */ | ||
| 242 | #define HP_SDC_CMD_DO_RTCR 0xc3 /* RTC[0x70 0:3] --> irq/status/data */ | ||
| 243 | #define HP_SDC_CMD_DO_BEEP 0xc4 /* i8042 RAM 0x70-74 --> beeper,VT3 */ | ||
| 244 | #define HP_SDC_CMD_DO_HIL 0xc5 /* i8042 RAM 0x70-73 --> | ||
| 245 | HIL MLC R0,R1 i8042 HIL watchdog */ | ||
| 246 | |||
| 247 | /* Values used to (de)mangle input/output to/from the HIL MLC */ | ||
| 248 | #define HP_SDC_DATA 0x40 /* Data from an 8042 register */ | ||
| 249 | #define HP_SDC_HIL_CMD 0x50 /* Data from HIL MLC R1/8042 */ | ||
| 250 | #define HP_SDC_HIL_R1MASK 0x0f /* Contents of HIL MLC R1 0:3 */ | ||
| 251 | #define HP_SDC_HIL_AUTO 0x10 /* Set if POL results from i8042 */ | ||
| 252 | #define HP_SDC_HIL_ISERR 0x80 /* Has meaning as in next 4 values */ | ||
| 253 | #define HP_SDC_HIL_RC_DONE 0x80 /* i8042 auto-configured loop */ | ||
| 254 | #define HP_SDC_HIL_ERR 0x81 /* HIL MLC R2 had a bit set */ | ||
| 255 | #define HP_SDC_HIL_TO 0x82 /* i8042 HIL watchdog expired */ | ||
| 256 | #define HP_SDC_HIL_RC 0x84 /* i8042 is auto-configuring loop */ | ||
| 257 | #define HP_SDC_HIL_DAT 0x60 /* Data from HIL MLC R0 */ | ||
| 258 | |||
| 259 | |||
| 260 | typedef struct { | ||
| 261 | rwlock_t ibf_lock; | ||
| 262 | rwlock_t lock; /* user/tasklet lock */ | ||
| 263 | rwlock_t rtq_lock; /* isr/tasklet lock */ | ||
| 264 | rwlock_t hook_lock; /* isr/user lock for handler add/del */ | ||
| 265 | |||
| 266 | unsigned int irq, nmi; /* Our IRQ lines */ | ||
| 267 | unsigned long base_io, status_io, data_io; /* Our IO ports */ | ||
| 268 | |||
| 269 | uint8_t im; /* Interrupt mask */ | ||
| 270 | int set_im; /* Interrupt mask needs to be set. */ | ||
| 271 | |||
| 272 | int ibf; /* Last known status of IBF flag */ | ||
| 273 | uint8_t wi; /* current i8042 write index */ | ||
| 274 | uint8_t r7[4]; /* current i8042[0x70 - 0x74] values */ | ||
| 275 | uint8_t r11, r7e; /* Values from version/revision regs */ | ||
| 276 | |||
| 277 | hp_sdc_irqhook *timer, *reg, *hil, *pup, *cooked; | ||
| 278 | |||
| 279 | #define HP_SDC_QUEUE_LEN 16 | ||
| 280 | hp_sdc_transaction *tq[HP_SDC_QUEUE_LEN]; /* All pending read/writes */ | ||
| 281 | |||
| 282 | int rcurr, rqty; /* Current read transact in process */ | ||
| 283 | struct timeval rtv; /* Time when current read started */ | ||
| 284 | int wcurr; /* Current write transact in process */ | ||
| 285 | |||
| 286 | int dev_err; /* carries status from registration */ | ||
| 287 | #if defined(__hppa__) | ||
| 288 | struct parisc_device *dev; | ||
| 289 | #elif defined(__mc68000__) | ||
| 290 | void *dev; | ||
| 291 | #else | ||
| 292 | #error No support for device registration on this arch yet. | ||
| 293 | #endif | ||
| 294 | |||
| 295 | struct timer_list kicker; /* Keeps below task alive */ | ||
| 296 | struct tasklet_struct task; | ||
| 297 | |||
| 298 | } hp_i8042_sdc; | ||
| 299 | |||
| 300 | #endif /* _LINUX_HP_SDC_H */ | ||
diff --git a/include/linux/input.h b/include/linux/input.h index e8c296ff6257..d7836311ada9 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
| @@ -644,6 +644,7 @@ struct input_absinfo { | |||
| 644 | #define BUS_ADB 0x17 | 644 | #define BUS_ADB 0x17 |
| 645 | #define BUS_I2C 0x18 | 645 | #define BUS_I2C 0x18 |
| 646 | #define BUS_HOST 0x19 | 646 | #define BUS_HOST 0x19 |
| 647 | #define BUS_GSC 0x1A | ||
| 647 | 648 | ||
| 648 | /* | 649 | /* |
| 649 | * Values describing the status of an effect | 650 | * Values describing the status of an effect |
diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c index f560dd8cdb90..d833349ed518 100644 --- a/sound/parisc/harmony.c +++ b/sound/parisc/harmony.c | |||
| @@ -197,7 +197,7 @@ snd_harmony_interrupt(int irq, void *dev, struct pt_regs *regs) | |||
| 197 | spin_unlock(&h->lock); | 197 | spin_unlock(&h->lock); |
| 198 | 198 | ||
| 199 | if (dstatus & HARMONY_DSTATUS_PN) { | 199 | if (dstatus & HARMONY_DSTATUS_PN) { |
| 200 | if (h->psubs) { | 200 | if (h->psubs && h->st.playing) { |
| 201 | spin_lock(&h->lock); | 201 | spin_lock(&h->lock); |
| 202 | h->pbuf.buf += h->pbuf.count; /* PAGE_SIZE */ | 202 | h->pbuf.buf += h->pbuf.count; /* PAGE_SIZE */ |
| 203 | h->pbuf.buf %= h->pbuf.size; /* MAX_BUFS*PAGE_SIZE */ | 203 | h->pbuf.buf %= h->pbuf.size; /* MAX_BUFS*PAGE_SIZE */ |
| @@ -216,7 +216,7 @@ snd_harmony_interrupt(int irq, void *dev, struct pt_regs *regs) | |||
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | if (dstatus & HARMONY_DSTATUS_RN) { | 218 | if (dstatus & HARMONY_DSTATUS_RN) { |
| 219 | if (h->csubs) { | 219 | if (h->csubs && h->st.capturing) { |
| 220 | spin_lock(&h->lock); | 220 | spin_lock(&h->lock); |
| 221 | h->cbuf.buf += h->cbuf.count; | 221 | h->cbuf.buf += h->cbuf.count; |
| 222 | h->cbuf.buf %= h->cbuf.size; | 222 | h->cbuf.buf %= h->cbuf.size; |
| @@ -316,6 +316,7 @@ snd_harmony_playback_trigger(snd_pcm_substream_t *ss, int cmd) | |||
| 316 | case SNDRV_PCM_TRIGGER_STOP: | 316 | case SNDRV_PCM_TRIGGER_STOP: |
| 317 | h->st.playing = 0; | 317 | h->st.playing = 0; |
| 318 | harmony_mute(h); | 318 | harmony_mute(h); |
| 319 | harmony_write(h, HARMONY_PNXTADD, h->sdma.addr); | ||
| 319 | harmony_disable_interrupts(h); | 320 | harmony_disable_interrupts(h); |
| 320 | break; | 321 | break; |
| 321 | case SNDRV_PCM_TRIGGER_PAUSE_PUSH: | 322 | case SNDRV_PCM_TRIGGER_PAUSE_PUSH: |
| @@ -351,8 +352,9 @@ snd_harmony_capture_trigger(snd_pcm_substream_t *ss, int cmd) | |||
| 351 | break; | 352 | break; |
| 352 | case SNDRV_PCM_TRIGGER_STOP: | 353 | case SNDRV_PCM_TRIGGER_STOP: |
| 353 | h->st.capturing = 0; | 354 | h->st.capturing = 0; |
| 354 | harmony_mute(h); | 355 | harmony_mute(h); |
| 355 | harmony_disable_interrupts(h); | 356 | harmony_write(h, HARMONY_RNXTADD, h->gdma.addr); |
| 357 | harmony_disable_interrupts(h); | ||
| 356 | break; | 358 | break; |
| 357 | case SNDRV_PCM_TRIGGER_PAUSE_PUSH: | 359 | case SNDRV_PCM_TRIGGER_PAUSE_PUSH: |
| 358 | case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: | 360 | case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: |
| @@ -408,7 +410,8 @@ snd_harmony_playback_prepare(snd_pcm_substream_t *ss) | |||
| 408 | 410 | ||
| 409 | h->pbuf.size = snd_pcm_lib_buffer_bytes(ss); | 411 | h->pbuf.size = snd_pcm_lib_buffer_bytes(ss); |
| 410 | h->pbuf.count = snd_pcm_lib_period_bytes(ss); | 412 | h->pbuf.count = snd_pcm_lib_period_bytes(ss); |
| 411 | h->pbuf.buf = 0; | 413 | if (h->pbuf.buf >= h->pbuf.size) |
| 414 | h->pbuf.buf = 0; | ||
| 412 | h->st.playing = 0; | 415 | h->st.playing = 0; |
| 413 | 416 | ||
| 414 | h->st.rate = snd_harmony_rate_bits(rt->rate); | 417 | h->st.rate = snd_harmony_rate_bits(rt->rate); |
| @@ -437,7 +440,8 @@ snd_harmony_capture_prepare(snd_pcm_substream_t *ss) | |||
| 437 | 440 | ||
| 438 | h->cbuf.size = snd_pcm_lib_buffer_bytes(ss); | 441 | h->cbuf.size = snd_pcm_lib_buffer_bytes(ss); |
| 439 | h->cbuf.count = snd_pcm_lib_period_bytes(ss); | 442 | h->cbuf.count = snd_pcm_lib_period_bytes(ss); |
| 440 | h->cbuf.buf = 0; | 443 | if (h->cbuf.buf >= h->cbuf.size) |
| 444 | h->cbuf.buf = 0; | ||
| 441 | h->st.capturing = 0; | 445 | h->st.capturing = 0; |
| 442 | 446 | ||
| 443 | h->st.rate = snd_harmony_rate_bits(rt->rate); | 447 | h->st.rate = snd_harmony_rate_bits(rt->rate); |
| @@ -712,13 +716,14 @@ snd_harmony_volume_get(snd_kcontrol_t *kc, | |||
| 712 | 716 | ||
| 713 | left = (h->st.gain >> shift_left) & mask; | 717 | left = (h->st.gain >> shift_left) & mask; |
| 714 | right = (h->st.gain >> shift_right) & mask; | 718 | right = (h->st.gain >> shift_right) & mask; |
| 715 | |||
| 716 | if (invert) { | 719 | if (invert) { |
| 717 | left = mask - left; | 720 | left = mask - left; |
| 718 | right = mask - right; | 721 | right = mask - right; |
| 719 | } | 722 | } |
| 723 | |||
| 720 | ucontrol->value.integer.value[0] = left; | 724 | ucontrol->value.integer.value[0] = left; |
| 721 | ucontrol->value.integer.value[1] = right; | 725 | if (shift_left != shift_right) |
| 726 | ucontrol->value.integer.value[1] = right; | ||
| 722 | 727 | ||
| 723 | spin_unlock_irqrestore(&h->mixer_lock, flags); | 728 | spin_unlock_irqrestore(&h->mixer_lock, flags); |
| 724 | 729 | ||
| @@ -738,22 +743,82 @@ snd_harmony_volume_put(snd_kcontrol_t *kc, | |||
| 738 | int old_gain = h->st.gain; | 743 | int old_gain = h->st.gain; |
| 739 | unsigned long flags; | 744 | unsigned long flags; |
| 740 | 745 | ||
| 746 | spin_lock_irqsave(&h->mixer_lock, flags); | ||
| 747 | |||
| 741 | left = ucontrol->value.integer.value[0] & mask; | 748 | left = ucontrol->value.integer.value[0] & mask; |
| 742 | right = ucontrol->value.integer.value[1] & mask; | 749 | if (invert) |
| 743 | if (invert) { | ||
| 744 | left = mask - left; | 750 | left = mask - left; |
| 745 | right = mask - right; | 751 | h->st.gain &= ~( (mask << shift_left ) ); |
| 752 | h->st.gain |= (left << shift_left); | ||
| 753 | |||
| 754 | if (shift_left != shift_right) { | ||
| 755 | right = ucontrol->value.integer.value[1] & mask; | ||
| 756 | if (invert) | ||
| 757 | right = mask - right; | ||
| 758 | h->st.gain &= ~( (mask << shift_right) ); | ||
| 759 | h->st.gain |= (right << shift_right); | ||
| 746 | } | 760 | } |
| 761 | |||
| 762 | snd_harmony_set_new_gain(h); | ||
| 763 | |||
| 764 | spin_unlock_irqrestore(&h->mixer_lock, flags); | ||
| 765 | |||
| 766 | return h->st.gain != old_gain; | ||
| 767 | } | ||
| 768 | |||
| 769 | static int | ||
| 770 | snd_harmony_captureroute_info(snd_kcontrol_t *kc, | ||
| 771 | snd_ctl_elem_info_t *uinfo) | ||
| 772 | { | ||
| 773 | static char *texts[2] = { "Line", "Mic" }; | ||
| 774 | uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; | ||
| 775 | uinfo->count = 1; | ||
| 776 | uinfo->value.enumerated.items = 2; | ||
| 777 | if (uinfo->value.enumerated.item > 1) | ||
| 778 | uinfo->value.enumerated.item = 1; | ||
| 779 | strcpy(uinfo->value.enumerated.name, | ||
| 780 | texts[uinfo->value.enumerated.item]); | ||
| 781 | return 0; | ||
| 782 | } | ||
| 783 | |||
| 784 | static int | ||
| 785 | snd_harmony_captureroute_get(snd_kcontrol_t *kc, | ||
| 786 | snd_ctl_elem_value_t *ucontrol) | ||
| 787 | { | ||
| 788 | harmony_t *h = snd_kcontrol_chip(kc); | ||
| 789 | int value; | ||
| 790 | unsigned long flags; | ||
| 791 | |||
| 792 | spin_lock_irqsave(&h->mixer_lock, flags); | ||
| 793 | |||
| 794 | value = (h->st.gain >> HARMONY_GAIN_IS_SHIFT) & 1; | ||
| 795 | ucontrol->value.enumerated.item[0] = value; | ||
| 796 | |||
| 797 | spin_unlock_irqrestore(&h->mixer_lock, flags); | ||
| 798 | |||
| 799 | return 0; | ||
| 800 | } | ||
| 801 | |||
| 802 | static int | ||
| 803 | snd_harmony_captureroute_put(snd_kcontrol_t *kc, | ||
| 804 | snd_ctl_elem_value_t *ucontrol) | ||
| 805 | { | ||
| 806 | harmony_t *h = snd_kcontrol_chip(kc); | ||
| 807 | int value; | ||
| 808 | int old_gain = h->st.gain; | ||
| 809 | unsigned long flags; | ||
| 747 | 810 | ||
| 748 | spin_lock_irqsave(&h->mixer_lock, flags); | 811 | spin_lock_irqsave(&h->mixer_lock, flags); |
| 749 | 812 | ||
| 750 | h->st.gain &= ~( (mask << shift_right) | (mask << shift_left) ); | 813 | value = ucontrol->value.enumerated.item[0] & 1; |
| 751 | h->st.gain |= ( (left << shift_left) | (right << shift_right) ); | 814 | h->st.gain &= ~HARMONY_GAIN_IS_MASK; |
| 815 | h->st.gain |= value << HARMONY_GAIN_IS_SHIFT; | ||
| 816 | |||
| 752 | snd_harmony_set_new_gain(h); | 817 | snd_harmony_set_new_gain(h); |
| 753 | 818 | ||
| 754 | spin_unlock_irqrestore(&h->mixer_lock, flags); | 819 | spin_unlock_irqrestore(&h->mixer_lock, flags); |
| 755 | 820 | ||
| 756 | return (old_gain - h->st.gain); | 821 | return h->st.gain != old_gain; |
| 757 | } | 822 | } |
| 758 | 823 | ||
| 759 | #define HARMONY_CONTROLS (sizeof(snd_harmony_controls)/ \ | 824 | #define HARMONY_CONTROLS (sizeof(snd_harmony_controls)/ \ |
| @@ -767,10 +832,25 @@ snd_harmony_volume_put(snd_kcontrol_t *kc, | |||
| 767 | ((mask) << 16) | ((invert) << 24)) } | 832 | ((mask) << 16) | ((invert) << 24)) } |
| 768 | 833 | ||
| 769 | static snd_kcontrol_new_t snd_harmony_controls[] = { | 834 | static snd_kcontrol_new_t snd_harmony_controls[] = { |
| 770 | HARMONY_VOLUME("Playback Volume", HARMONY_GAIN_LO_SHIFT, | 835 | HARMONY_VOLUME("Master Playback Volume", HARMONY_GAIN_LO_SHIFT, |
| 771 | HARMONY_GAIN_RO_SHIFT, HARMONY_GAIN_OUT, 1), | 836 | HARMONY_GAIN_RO_SHIFT, HARMONY_GAIN_OUT, 1), |
| 772 | HARMONY_VOLUME("Capture Volume", HARMONY_GAIN_LI_SHIFT, | 837 | HARMONY_VOLUME("Capture Volume", HARMONY_GAIN_LI_SHIFT, |
| 773 | HARMONY_GAIN_RI_SHIFT, HARMONY_GAIN_IN, 0), | 838 | HARMONY_GAIN_RI_SHIFT, HARMONY_GAIN_IN, 0), |
| 839 | HARMONY_VOLUME("Monitor Volume", HARMONY_GAIN_MA_SHIFT, | ||
| 840 | HARMONY_GAIN_MA_SHIFT, HARMONY_GAIN_MA, 1), | ||
| 841 | { | ||
| 842 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | ||
| 843 | .name = "Input Route", | ||
| 844 | .info = snd_harmony_captureroute_info, | ||
| 845 | .get = snd_harmony_captureroute_get, | ||
| 846 | .put = snd_harmony_captureroute_put | ||
| 847 | }, | ||
| 848 | HARMONY_VOLUME("Internal Speaker Switch", HARMONY_GAIN_SE_SHIFT, | ||
| 849 | HARMONY_GAIN_SE_SHIFT, 1, 0), | ||
| 850 | HARMONY_VOLUME("Line-Out Switch", HARMONY_GAIN_LE_SHIFT, | ||
| 851 | HARMONY_GAIN_LE_SHIFT, 1, 0), | ||
| 852 | HARMONY_VOLUME("Headphones Switch", HARMONY_GAIN_HE_SHIFT, | ||
| 853 | HARMONY_GAIN_HE_SHIFT, 1, 0), | ||
| 774 | }; | 854 | }; |
| 775 | 855 | ||
| 776 | static void __init | 856 | static void __init |
| @@ -852,14 +932,14 @@ snd_harmony_create(snd_card_t *card, | |||
| 852 | memset(&h->pbuf, 0, sizeof(h->pbuf)); | 932 | memset(&h->pbuf, 0, sizeof(h->pbuf)); |
| 853 | memset(&h->cbuf, 0, sizeof(h->cbuf)); | 933 | memset(&h->cbuf, 0, sizeof(h->cbuf)); |
| 854 | 934 | ||
| 855 | h->hpa = padev->hpa; | 935 | h->hpa = padev->hpa.start; |
| 856 | h->card = card; | 936 | h->card = card; |
| 857 | h->dev = padev; | 937 | h->dev = padev; |
| 858 | h->irq = padev->irq; | 938 | h->irq = padev->irq; |
| 859 | h->iobase = ioremap_nocache(padev->hpa, HARMONY_SIZE); | 939 | h->iobase = ioremap_nocache(padev->hpa.start, HARMONY_SIZE); |
| 860 | if (h->iobase == NULL) { | 940 | if (h->iobase == NULL) { |
| 861 | printk(KERN_ERR PFX "unable to remap hpa 0x%lx\n", | 941 | printk(KERN_ERR PFX "unable to remap hpa 0x%lx\n", |
| 862 | padev->hpa); | 942 | padev->hpa.start); |
| 863 | err = -EBUSY; | 943 | err = -EBUSY; |
| 864 | goto free_and_ret; | 944 | goto free_and_ret; |
| 865 | } | 945 | } |
diff --git a/sound/parisc/harmony.h b/sound/parisc/harmony.h index ef77f9a577d5..526c52389de2 100644 --- a/sound/parisc/harmony.h +++ b/sound/parisc/harmony.h | |||
| @@ -61,7 +61,7 @@ typedef struct snd_card_harmony { | |||
| 61 | #define HARMONY_SIZE 64 | 61 | #define HARMONY_SIZE 64 |
| 62 | 62 | ||
| 63 | #define BUF_SIZE PAGE_SIZE | 63 | #define BUF_SIZE PAGE_SIZE |
| 64 | #define MAX_BUFS 10 | 64 | #define MAX_BUFS 16 |
| 65 | #define MAX_BUF_SIZE (MAX_BUFS * BUF_SIZE) | 65 | #define MAX_BUF_SIZE (MAX_BUFS * BUF_SIZE) |
| 66 | 66 | ||
| 67 | #define PLAYBACK_BUFS MAX_BUFS | 67 | #define PLAYBACK_BUFS MAX_BUFS |
| @@ -101,28 +101,31 @@ typedef struct snd_card_harmony { | |||
| 101 | #define HARMONY_SS_MONO 0x00000000 | 101 | #define HARMONY_SS_MONO 0x00000000 |
| 102 | #define HARMONY_SS_STEREO 0x00000001 | 102 | #define HARMONY_SS_STEREO 0x00000001 |
| 103 | 103 | ||
| 104 | #define HARMONY_GAIN_SILENCE 0x00F00FFF | 104 | #define HARMONY_GAIN_SILENCE 0x01F00FFF |
| 105 | #define HARMONY_GAIN_DEFAULT 0x0FF00000 | 105 | #define HARMONY_GAIN_DEFAULT 0x01F00FFF |
| 106 | 106 | ||
| 107 | #define HARMONY_GAIN_HE_SHIFT 27 | 107 | #define HARMONY_GAIN_HE_SHIFT 27 /* headphones enabled */ |
| 108 | #define HARMONY_GAIN_HE_MASK (1 << HARMONY_GAIN_HE_SHIFT) | 108 | #define HARMONY_GAIN_HE_MASK (1 << HARMONY_GAIN_HE_SHIFT) |
| 109 | #define HARMONY_GAIN_LE_SHIFT 26 | 109 | #define HARMONY_GAIN_LE_SHIFT 26 /* line-out enabled */ |
| 110 | #define HARMONY_GAIN_LE_MASK (1 << HARMONY_GAIN_LE_SHIFT) | 110 | #define HARMONY_GAIN_LE_MASK (1 << HARMONY_GAIN_LE_SHIFT) |
| 111 | #define HARMONY_GAIN_SE_SHIFT 25 | 111 | #define HARMONY_GAIN_SE_SHIFT 25 /* internal-speaker enabled */ |
| 112 | #define HARMONY_GAIN_SE_MASK (1 << HARMONY_GAIN_SE_SHIFT) | 112 | #define HARMONY_GAIN_SE_MASK (1 << HARMONY_GAIN_SE_SHIFT) |
| 113 | #define HARMONY_GAIN_IS_SHIFT 24 | 113 | #define HARMONY_GAIN_IS_SHIFT 24 /* input select - 0 for line, 1 for mic */ |
| 114 | #define HARMONY_GAIN_IS_MASK (1 << HARMONY_GAIN_IS_SHIFT) | 114 | #define HARMONY_GAIN_IS_MASK (1 << HARMONY_GAIN_IS_SHIFT) |
| 115 | 115 | ||
| 116 | /* monitor attenuation */ | ||
| 116 | #define HARMONY_GAIN_MA 0x0f | 117 | #define HARMONY_GAIN_MA 0x0f |
| 117 | #define HARMONY_GAIN_MA_SHIFT 20 | 118 | #define HARMONY_GAIN_MA_SHIFT 20 |
| 118 | #define HARMONY_GAIN_MA_MASK (HARMONY_GAIN_MA << HARMONY_GAIN_MA_SHIFT) | 119 | #define HARMONY_GAIN_MA_MASK (HARMONY_GAIN_MA << HARMONY_GAIN_MA_SHIFT) |
| 119 | 120 | ||
| 121 | /* input gain */ | ||
| 120 | #define HARMONY_GAIN_IN 0x0f | 122 | #define HARMONY_GAIN_IN 0x0f |
| 121 | #define HARMONY_GAIN_LI_SHIFT 16 | 123 | #define HARMONY_GAIN_LI_SHIFT 16 |
| 122 | #define HARMONY_GAIN_LI_MASK (HARMONY_GAIN_IN << HARMONY_GAIN_LI_SHIFT) | 124 | #define HARMONY_GAIN_LI_MASK (HARMONY_GAIN_IN << HARMONY_GAIN_LI_SHIFT) |
| 123 | #define HARMONY_GAIN_RI_SHIFT 12 | 125 | #define HARMONY_GAIN_RI_SHIFT 12 |
| 124 | #define HARMONY_GAIN_RI_MASK (HARMONY_GAIN_IN << HARMONY_GAIN_RI_SHIFT) | 126 | #define HARMONY_GAIN_RI_MASK (HARMONY_GAIN_IN << HARMONY_GAIN_RI_SHIFT) |
| 125 | 127 | ||
| 128 | /* output gain (master volume) */ | ||
| 126 | #define HARMONY_GAIN_OUT 0x3f | 129 | #define HARMONY_GAIN_OUT 0x3f |
| 127 | #define HARMONY_GAIN_LO_SHIFT 6 | 130 | #define HARMONY_GAIN_LO_SHIFT 6 |
| 128 | #define HARMONY_GAIN_LO_MASK (HARMONY_GAIN_OUT << HARMONY_GAIN_LO_SHIFT) | 131 | #define HARMONY_GAIN_LO_MASK (HARMONY_GAIN_OUT << HARMONY_GAIN_LO_SHIFT) |
