Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
33cc912c
Commit
33cc912c
authored
Mar 20, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://linux-scsi.bkbits.net/scsi-for-linus-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
4ad1e20a
67bfb5a7
Changes
30
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
915 additions
and
932 deletions
+915
-932
CREDITS
CREDITS
+7
-0
Documentation/x86_64/boot-options.txt
Documentation/x86_64/boot-options.txt
+5
-1
arch/alpha/Kconfig
arch/alpha/Kconfig
+3
-14
arch/alpha/defconfig
arch/alpha/defconfig
+308
-137
arch/alpha/kernel/alpha_ksyms.c
arch/alpha/kernel/alpha_ksyms.c
+3
-0
arch/alpha/kernel/time.c
arch/alpha/kernel/time.c
+6
-4
arch/alpha/kernel/traps.c
arch/alpha/kernel/traps.c
+36
-41
arch/x86_64/defconfig
arch/x86_64/defconfig
+89
-392
arch/x86_64/kernel/acpi/boot.c
arch/x86_64/kernel/acpi/boot.c
+11
-0
arch/x86_64/kernel/entry.S
arch/x86_64/kernel/entry.S
+9
-5
arch/x86_64/kernel/mce.c
arch/x86_64/kernel/mce.c
+37
-26
arch/x86_64/kernel/mpparse.c
arch/x86_64/kernel/mpparse.c
+40
-44
arch/x86_64/kernel/pci-gart.c
arch/x86_64/kernel/pci-gart.c
+36
-21
arch/x86_64/kernel/process.c
arch/x86_64/kernel/process.c
+3
-1
arch/x86_64/kernel/setup.c
arch/x86_64/kernel/setup.c
+2
-4
arch/x86_64/mm/init.c
arch/x86_64/mm/init.c
+3
-3
arch/x86_64/pci/mmconfig.c
arch/x86_64/pci/mmconfig.c
+1
-1
drivers/char/rtc.c
drivers/char/rtc.c
+2
-0
drivers/char/vt.c
drivers/char/vt.c
+10
-11
drivers/i2c/busses/i2c-keywest.c
drivers/i2c/busses/i2c-keywest.c
+1
-1
drivers/macintosh/Kconfig
drivers/macintosh/Kconfig
+2
-2
drivers/macintosh/Makefile
drivers/macintosh/Makefile
+1
-1
drivers/macintosh/therm_adt746x.c
drivers/macintosh/therm_adt746x.c
+2
-5
drivers/macintosh/therm_windtunnel.c
drivers/macintosh/therm_windtunnel.c
+276
-196
drivers/scsi/scsi_transport_spi.c
drivers/scsi/scsi_transport_spi.c
+1
-1
include/asm-x86_64/acpi.h
include/asm-x86_64/acpi.h
+2
-0
include/asm-x86_64/calling.h
include/asm-x86_64/calling.h
+15
-15
include/asm-x86_64/hardirq.h
include/asm-x86_64/hardirq.h
+1
-0
include/asm-x86_64/hpet.h
include/asm-x86_64/hpet.h
+0
-3
include/asm-x86_64/mpspec.h
include/asm-x86_64/mpspec.h
+3
-3
No files found.
CREDITS
View file @
33cc912c
...
@@ -1864,6 +1864,13 @@ S: Am Muehlenweg 38
...
@@ -1864,6 +1864,13 @@ S: Am Muehlenweg 38
S: D53424 Remagen
S: D53424 Remagen
S: Germany
S: Germany
N: Colin Leroy
E: colin@colino.net
W: http://www.geekounet.org/
D: PowerMac adt7467 fan driver
S: Toulouse
S: France
N: Achim Leubner
N: Achim Leubner
E: achim_leubner@adaptec.com
E: achim_leubner@adaptec.com
D: GDT Disk Array Controller/Storage RAID controller driver
D: GDT Disk Array Controller/Storage RAID controller driver
...
...
Documentation/x86_64/boot-options.txt
View file @
33cc912c
...
@@ -136,7 +136,7 @@ PCI
...
@@ -136,7 +136,7 @@ PCI
IOMMU
IOMMU
iommu=[size][,noagp][,off][,force][,noforce][,leak][,memaper[=order]]
iommu=[size][,noagp][,off][,force][,noforce][,leak][,memaper[=order]]
[,soft]
size set size of iommu (in bytes)
size set size of iommu (in bytes)
noagp don't initialize the AGP driver and use full aperture.
noagp don't initialize the AGP driver and use full aperture.
off don't use the IOMMU
off don't use the IOMMU
...
@@ -144,5 +144,9 @@ IOMMU
...
@@ -144,5 +144,9 @@ IOMMU
memaper[=order] allocate an own aperture over RAM with size 32MB^order.
memaper[=order] allocate an own aperture over RAM with size 32MB^order.
noforce don't force IOMMU usage. Default.
noforce don't force IOMMU usage. Default.
force Force IOMMU
force Force IOMMU
soft Use software bounce buffering for non 32bit IO. Default on Intel
machines.
swiotlb=pages
Prereserve that many 4K pages for the software IO bounce buffering.
arch/alpha/Kconfig
View file @
33cc912c
...
@@ -188,7 +188,7 @@ config ALPHA_MIATA
...
@@ -188,7 +188,7 @@ config ALPHA_MIATA
help
help
The Digital PersonalWorkStation (PWS 433a, 433au, 500a, 500au, 600a,
The Digital PersonalWorkStation (PWS 433a, 433au, 500a, 500au, 600a,
or 600au). There is an Installation HOWTO for this hardware at
or 600au). There is an Installation HOWTO for this hardware at
<http://
members.brabant.chello.nl/~s.vandereijk
/miata.html>.
<http://
eijk.homelinux.org/~stefan
/miata.html>.
config ALPHA_MIKASA
config ALPHA_MIKASA
bool "Mikasa"
bool "Mikasa"
...
@@ -486,19 +486,8 @@ config SMP
...
@@ -486,19 +486,8 @@ config SMP
singleprocessor machines. On a singleprocessor machine, the kernel
singleprocessor machines. On a singleprocessor machine, the kernel
will run faster if you say N here.
will run faster if you say N here.
Note that if you say Y here and choose architecture "586" or
See also the <file:Documentation/smp.tex>, and the SMP-HOWTO
"Pentium" under "Processor family", the kernel will not work on 486
available at <http://www.tldp.org/docs.html#howto>.
architectures. Similarly, multiprocessor kernels for the "PPro"
architecture may not work on all Pentium based boards.
People using multiprocessor machines who say Y here should also say
Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
Management" code will be disabled if you say Y here.
See also the <file:Documentation/smp.txt>,
<file:Documentation/i386/IO-APIC.txt>,
<file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
<http://www.tldp.org/docs.html#howto>.
If you don't know what to do here, say N.
If you don't know what to do here, say N.
...
...
arch/alpha/defconfig
View file @
33cc912c
...
@@ -2,8 +2,8 @@
...
@@ -2,8 +2,8 @@
# Automatically generated make config: don't edit
# Automatically generated make config: don't edit
#
#
CONFIG_ALPHA=y
CONFIG_ALPHA=y
CONFIG_64BIT=y
CONFIG_MMU=y
CONFIG_MMU=y
CONFIG_SWAP=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_ISA_DMA=y
...
@@ -11,14 +11,28 @@ CONFIG_GENERIC_ISA_DMA=y
...
@@ -11,14 +11,28 @@ CONFIG_GENERIC_ISA_DMA=y
# Code maturity level options
# Code maturity level options
#
#
CONFIG_EXPERIMENTAL=y
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_STANDALONE=y
CONFIG_BROKEN_ON_SMP=y
#
#
# General setup
# General setup
#
#
CONFIG_
NET
=y
CONFIG_
SWAP
=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_HOTPLUG is not set
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
#
#
# Loadable module support
# Loadable module support
...
@@ -26,6 +40,8 @@ CONFIG_SYSCTL=y
...
@@ -26,6 +40,8 @@ CONFIG_SYSCTL=y
CONFIG_MODULES=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
CONFIG_KMOD=y
#
#
...
@@ -45,6 +61,8 @@ CONFIG_ALPHA_GENERIC=y
...
@@ -45,6 +61,8 @@ CONFIG_ALPHA_GENERIC=y
# CONFIG_ALPHA_EIGER is not set
# CONFIG_ALPHA_EIGER is not set
# CONFIG_ALPHA_JENSEN is not set
# CONFIG_ALPHA_JENSEN is not set
# CONFIG_ALPHA_LX164 is not set
# CONFIG_ALPHA_LX164 is not set
# CONFIG_ALPHA_LYNX is not set
# CONFIG_ALPHA_MARVEL is not set
# CONFIG_ALPHA_MIATA is not set
# CONFIG_ALPHA_MIATA is not set
# CONFIG_ALPHA_MIKASA is not set
# CONFIG_ALPHA_MIKASA is not set
# CONFIG_ALPHA_NAUTILUS is not set
# CONFIG_ALPHA_NAUTILUS is not set
...
@@ -62,26 +80,35 @@ CONFIG_ALPHA_GENERIC=y
...
@@ -62,26 +80,35 @@ CONFIG_ALPHA_GENERIC=y
# CONFIG_ALPHA_TITAN is not set
# CONFIG_ALPHA_TITAN is not set
# CONFIG_ALPHA_WILDFIRE is not set
# CONFIG_ALPHA_WILDFIRE is not set
CONFIG_ISA=y
CONFIG_ISA=y
CONFIG_EISA=y
CONFIG_PCI=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_ALPHA_CORE_AGP=y
CONFIG_ALPHA_BROKEN_IRQ_MASK=y
CONFIG_ALPHA_BROKEN_IRQ_MASK=y
CONFIG_EARLY_PRINTK=y
CONFIG_EISA=y
# CONFIG_SMP is not set
# CONFIG_SMP is not set
# CONFIG_DISCONTIGMEM is not set
# CONFIG_DISCONTIGMEM is not set
CONFIG_VERBOSE_MCHECK=y
CONFIG_VERBOSE_MCHECK=y
CONFIG_VERBOSE_MCHECK_ON=1
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
CONFIG_PCI_NAMES=y
# CONFIG_HOTPLUG is not set
CONFIG_EISA_PCI_EISA=y
CONFIG_
KCORE_ELF
=y
CONFIG_
EISA_VIRTUAL_ROOT
=y
# CONFIG_KCORE_AOUT is not set
CONFIG_EISA_NAMES=y
CONFIG_SRM_ENV=m
CONFIG_SRM_ENV=m
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_
MISC
is not set
# CONFIG_BINFMT_
AOUT
is not set
# CONFIG_BINFMT_EM86 is not set
# CONFIG_BINFMT_EM86 is not set
# CONFIG_BINFMT_MISC is not set
#
#
#
Parallel port support
#
Device Drivers
#
#
# CONFIG_PARPORT is not set
#
# Generic Driver Options
#
# CONFIG_DEBUG_DRIVER is not set
#
#
# Memory Technology Devices (MTD)
# Memory Technology Devices (MTD)
...
@@ -89,10 +116,14 @@ CONFIG_BINFMT_ELF=y
...
@@ -89,10 +116,14 @@ CONFIG_BINFMT_ELF=y
# CONFIG_MTD is not set
# CONFIG_MTD is not set
#
#
# Plug and Play configuration
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
#
CONFIG_PNP=y
CONFIG_PNP=y
# CONFIG_PNP_NAMES is not set
# CONFIG_PNP_DEBUG is not set
# CONFIG_PNP_DEBUG is not set
#
#
...
@@ -111,63 +142,60 @@ CONFIG_BLK_DEV_FD=y
...
@@ -111,63 +142,60 @@ CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_CARMEL is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_RAM is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
#
# ATA/ATAPI/MFM/RLL support
# ATA/ATAPI/MFM/RLL support
#
#
CONFIG_IDE=y
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=4
#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDE=y
#
#
# Please see Documentation/ide.txt for help/info on IDE drives
# Please see Documentation/ide.txt for help/info on IDE drives
#
#
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_IDEDISK_STROKE is not set
# CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
#
# IDE chipset support/bugfixes
# IDE chipset support/bugfixes
#
#
# CONFIG_BLK_DEV_ISAPNP is not set
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_IDEPCI_SHARE_IRQ is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDE_TCQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_ADMA=y
CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_AEC62XX is not set
CONFIG_BLK_DEV_ALI15X3=y
CONFIG_BLK_DEV_ALI15X3=y
# CONFIG_WDC_ALI15X3 is not set
# CONFIG_WDC_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_AMD74XX is not set
CONFIG_BLK_DEV_CMD64X=y
CONFIG_BLK_DEV_CMD64X=y
# CONFIG_BLK_DEV_TRIFLEX is not set
CONFIG_BLK_DEV_CY82C693=y
CONFIG_BLK_DEV_CY82C693=y
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SVWKS is not set
...
@@ -176,13 +204,17 @@ CONFIG_BLK_DEV_CY82C693=y
...
@@ -176,13 +204,17 @@ CONFIG_BLK_DEV_CY82C693=y
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_CHIPSETS is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_
IDEDMA_AUTO
=y
CONFIG_
BLK_DEV_IDEDMA
=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_DMA_NONPCI is not set
# CONFIG_BLK_DEV_HD is not set
#
#
# SCSI support
# SCSI
device
support
#
#
CONFIG_SCSI=y
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
#
#
# SCSI support type (disk, tape, CD-ROM)
# SCSI support type (disk, tape, CD-ROM)
...
@@ -202,86 +234,105 @@ CONFIG_BLK_DEV_SR_VENDOR=y
...
@@ -202,86 +234,105 @@ CONFIG_BLK_DEV_SR_VENDOR=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_LOGGING is not set
#
# SCSI Transport Attributes
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
#
#
# SCSI low-level drivers
# SCSI low-level drivers
#
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AHA1740 is not set
# CONFIG_SCSI_AHA1740 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AACRAID is not set
CONFIG_SCSI_AIC7XXX=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
CONFIG_AIC7XXX_RESET_DELAY_MS=5000
CONFIG_AIC7XXX_RESET_DELAY_MS=5000
# CONFIG_AIC7XXX_PROBE_EISA_VL is not set
# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_
DPT_I2O
is not set
# CONFIG_SCSI_
AIC79XX
is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_DMA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_I
NITIO
is not set
# CONFIG_SCSI_I
PS
is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_NCR53C7xx is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
CONFIG_SCSI_NCR53C8XX=y
CONFIG_SCSI_SYM53C8XX=y
CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
CONFIG_SCSI_NCR53C8XX_SYNC=20
# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set
# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PCI2000 is not set
# CONFIG_SCSI_PCI2220I is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA21XX is not set
# CONFIG_SCSI_QLA22XX is not set
# CONFIG_SCSI_QLA2300 is not set
# CONFIG_SCSI_QLA2322 is not set
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA6322 is not set
# CONFIG_SCSI_SIM710 is not set
# CONFIG_SCSI_SIM710 is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DEBUG is not set
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
#
# Fusion MPT device support
# Fusion MPT device support
#
#
# CONFIG_FUSION is not set
# CONFIG_FUSION is not set
#
#
# IEEE 1394 (FireWire) support
(EXPERIMENTAL)
# IEEE 1394 (FireWire) support
#
#
# CONFIG_IEEE1394 is not set
# CONFIG_IEEE1394 is not set
#
# I2O device support
#
#
# Networking support
#
CONFIG_NET=y
#
#
# Networking options
# Networking options
#
#
CONFIG_PACKET=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_PACKET_MMAP is not set
CONFIG_NETLINK_DEV=y
CONFIG_NETLINK_DEV=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_UNIX=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY=m
CONFIG_INET=y
CONFIG_INET=y
...
@@ -296,7 +347,17 @@ CONFIG_INET_ECN=y
...
@@ -296,7 +347,17 @@ CONFIG_INET_ECN=y
# CONFIG_SYN_COOKIES is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_INET_AH=m
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_ESP=m
CONFIG_XFRM_USER=m
# CONFIG_INET_IPCOMP is not set
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
#
# IP: Netfilter Configuration
# IP: Netfilter Configuration
...
@@ -304,14 +365,18 @@ CONFIG_XFRM_USER=m
...
@@ -304,14 +365,18 @@ CONFIG_XFRM_USER=m
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_IRC=m
# CONFIG_IP_NF_TFTP is not set
# CONFIG_IP_NF_AMANDA is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_LIMIT is not set
# CONFIG_IP_NF_MATCH_LIMIT is not set
# CONFIG_IP_NF_MATCH_IPRANGE is not set
# CONFIG_IP_NF_MATCH_MAC is not set
# CONFIG_IP_NF_MATCH_MAC is not set
# CONFIG_IP_NF_MATCH_PKTTYPE is not set
# CONFIG_IP_NF_MATCH_PKTTYPE is not set
# CONFIG_IP_NF_MATCH_MARK is not set
# CONFIG_IP_NF_MATCH_MARK is not set
# CONFIG_IP_NF_MATCH_MULTIPORT is not set
# CONFIG_IP_NF_MATCH_MULTIPORT is not set
# CONFIG_IP_NF_MATCH_TOS is not set
# CONFIG_IP_NF_MATCH_TOS is not set
# CONFIG_IP_NF_MATCH_RECENT is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_DSCP is not set
# CONFIG_IP_NF_MATCH_DSCP is not set
# CONFIG_IP_NF_MATCH_AH_ESP is not set
# CONFIG_IP_NF_MATCH_AH_ESP is not set
...
@@ -321,15 +386,15 @@ CONFIG_IP_NF_IPTABLES=m
...
@@ -321,15 +386,15 @@ CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_HELPER is not set
# CONFIG_IP_NF_MATCH_HELPER is not set
# CONFIG_IP_NF_MATCH_STATE is not set
# CONFIG_IP_NF_MATCH_STATE is not set
# CONFIG_IP_NF_MATCH_CONNTRACK is not set
# CONFIG_IP_NF_MATCH_CONNTRACK is not set
# CONFIG_IP_NF_MATCH_UNCLEAN is not set
# CONFIG_IP_NF_MATCH_OWNER is not set
# CONFIG_IP_NF_MATCH_OWNER is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_FILTER=m
# CONFIG_IP_NF_TARGET_REJECT is not set
# CONFIG_IP_NF_TARGET_REJECT is not set
# CONFIG_IP_NF_TARGET_MIRROR is not set
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_SAME is not set
# CONFIG_IP_NF_NAT_LOCAL is not set
# CONFIG_IP_NF_NAT_LOCAL is not set
# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_IRC=m
...
@@ -340,7 +405,8 @@ CONFIG_IP_NF_NAT_FTP=m
...
@@ -340,7 +405,8 @@ CONFIG_IP_NF_NAT_FTP=m
# CONFIG_IP_NF_TARGET_TCPMSS is not set
# CONFIG_IP_NF_TARGET_TCPMSS is not set
# CONFIG_IP_NF_ARPTABLES is not set
# CONFIG_IP_NF_ARPTABLES is not set
CONFIG_IP_NF_COMPAT_IPCHAINS=y
CONFIG_IP_NF_COMPAT_IPCHAINS=y
# CONFIG_IPV6 is not set
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
#
#
# SCTP Configuration (EXPERIMENTAL)
# SCTP Configuration (EXPERIMENTAL)
...
@@ -349,9 +415,9 @@ CONFIG_IPV6_SCTP__=y
...
@@ -349,9 +415,9 @@ CONFIG_IPV6_SCTP__=y
# CONFIG_IP_SCTP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_ATM is not set
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q=m
# CONFIG_LLC is not set
# CONFIG_LLC
2
is not set
# CONFIG_
DECNET
is not set
# CONFIG_
IPX
is not set
# CONFIG_
BRIDGE
is not set
# CONFIG_
ATALK
is not set
# CONFIG_X25 is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_NET_DIVERT is not set
...
@@ -369,10 +435,6 @@ CONFIG_VLAN_8021Q=m
...
@@ -369,10 +435,6 @@ CONFIG_VLAN_8021Q=m
# Network testing
# Network testing
#
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_PKTGEN is not set
#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_NETDEVICES=y
#
#
...
@@ -390,6 +452,7 @@ CONFIG_DUMMY=m
...
@@ -390,6 +452,7 @@ CONFIG_DUMMY=m
# Ethernet (10 or 100Mbit)
# Ethernet (10 or 100Mbit)
#
#
CONFIG_NET_ETHERNET=y
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_SUNGEM is not set
CONFIG_NET_VENDOR_3COM=y
CONFIG_NET_VENDOR_3COM=y
...
@@ -400,6 +463,7 @@ CONFIG_NET_VENDOR_3COM=y
...
@@ -400,6 +463,7 @@ CONFIG_NET_VENDOR_3COM=y
# CONFIG_EL3 is not set
# CONFIG_EL3 is not set
# CONFIG_3C515 is not set
# CONFIG_3C515 is not set
CONFIG_VORTEX=y
CONFIG_VORTEX=y
# CONFIG_TYPHOON is not set
# CONFIG_LANCE is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_NET_VENDOR_RACAL is not set
...
@@ -412,6 +476,7 @@ CONFIG_DE2104X=m
...
@@ -412,6 +476,7 @@ CONFIG_DE2104X=m
CONFIG_TULIP=y
CONFIG_TULIP=y
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MWI is not set
CONFIG_TULIP_MMIO=y
CONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not set
# CONFIG_DE4X5 is not set
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_DM9102 is not set
...
@@ -421,10 +486,12 @@ CONFIG_TULIP_MMIO=y
...
@@ -421,10 +486,12 @@ CONFIG_TULIP_MMIO=y
# CONFIG_NET_ISA is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
# CONFIG_CS89x0 is not set
# CONFIG_DGRS is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_EEPRO100 is not set
...
@@ -440,7 +507,6 @@ CONFIG_NET_PCI=y
...
@@ -440,7 +507,6 @@ CONFIG_NET_PCI=y
# CONFIG_SIS900 is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_NET_POCKET is not set
# CONFIG_NET_POCKET is not set
...
@@ -448,13 +514,20 @@ CONFIG_NET_PCI=y
...
@@ -448,13 +514,20 @@ CONFIG_NET_PCI=y
# Ethernet (1000 Mbit)
# Ethernet (1000 Mbit)
#
#
# CONFIG_ACENIC is not set
# CONFIG_ACENIC is not set
CONFIG_DL2K=m
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_E1000 is not set
CONFIG_NS83820=m
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_HAMACHI is not set
CONFIG_YELLOWFIN=y
CONFIG_YELLOWFIN=y
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SK98LIN is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
# CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_PPP is not set
...
@@ -470,8 +543,8 @@ CONFIG_YELLOWFIN=y
...
@@ -470,8 +543,8 @@ CONFIG_YELLOWFIN=y
#
#
# CONFIG_TR is not set
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
#
# Wan interfaces
# Wan interfaces
...
@@ -483,35 +556,75 @@ CONFIG_YELLOWFIN=y
...
@@ -483,35 +556,75 @@ CONFIG_YELLOWFIN=y
#
#
# CONFIG_HAMRADIO is not set
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# Bluetooth support
#
# CONFIG_BT is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
#
#
# ISDN subsystem
# ISDN subsystem
#
#
# CONFIG_ISDN
_BOOL
is not set
# CONFIG_ISDN is not set
#
#
#
Old CD-ROM drivers (not SCSI, not IDE)
#
Telephony Support
#
#
# CONFIG_
CD_NO_IDESCSI
is not set
# CONFIG_
PHONE
is not set
#
#
# Input device support
# Input device support
#
#
# CONFIG_INPUT is not set
CONFIG_INPUT=y
#
#
# Userland interfaces
# Userland interfaces
#
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
#
# Input I/O drivers
# Input I/O drivers
#
#
# CONFIG_GAMEPORT is not set
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SOUND_GAMEPORT=y
# CONFIG_SERIO is not set
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
#
#
# Input Device Drivers
# Input Device Drivers
#
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
#
# Character devices
# Character devices
...
@@ -524,32 +637,30 @@ CONFIG_HW_CONSOLE=y
...
@@ -524,32 +637,30 @@ CONFIG_HW_CONSOLE=y
#
#
# Serial drivers
# Serial drivers
#
#
CONFIG_SERIAL_8250=m
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
# CONFIG_SERIAL_8250_EXTENDED is not set
#
#
# Non-8250 serial port support
# Non-8250 serial port support
#
#
CONFIG_SERIAL_CORE=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
#
# CONFIG_QIC02_TAPE is not set
# I2C support
#
# CONFIG_I2C is not set
#
#
#
Mice
#
IPMI
#
#
# CONFIG_BUSMOUSE is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_QIC02_TAPE is not set
#
#
# Watchdog Cards
# Watchdog Cards
#
#
# CONFIG_WATCHDOG is not set
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=y
CONFIG_RTC=y
# CONFIG_DTLK is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_R3964 is not set
...
@@ -563,73 +674,135 @@ CONFIG_RTC=y
...
@@ -563,73 +674,135 @@ CONFIG_RTC=y
# CONFIG_DRM is not set
# CONFIG_DRM is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_RAW_DRIVER is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
# Misc devices
#
#
#
# Multimedia devices
# Multimedia devices
#
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# Graphics support
#
# CONFIG_FB is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
# CONFIG_SOUND is not set
#
# USB support
#
# CONFIG_USB is not set
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
#
# File systems
# File systems
#
#
# CONFIG_QUOTA is not set
CONFIG_EXT2_FS=y
CONFIG_AUTOFS_FS=m
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_JBD is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=m
# CONFIG_AUTOFS4_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_JBD is not set
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
# CONFIG_EFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_CRAMFS is not set
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_JFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_SYSV_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_XFS_FS is not set
#
#
# Network File Systems
# Network File Systems
#
#
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=m
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=m
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V4 is not set
# CONFIG_NFSD_V4 is not set
# CONFIG_NFSD_TCP is not set
# CONFIG_NFSD_TCP is not set
CONFIG_SUNRPC=m
CONFIG_LOCKD=m
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_EXPORTFS=m
# CONFIG_CIFS is not set
CONFIG_SUNRPC=m
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_SMB_FS is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_AFS_FS is not set
#
#
...
@@ -638,11 +811,11 @@ CONFIG_EXPORTFS=m
...
@@ -638,11 +811,11 @@ CONFIG_EXPORTFS=m
# CONFIG_PARTITION_ADVANCED is not set
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_OSF_PARTITION=y
CONFIG_OSF_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
#
#
# Native Language Support
# Native Language Support
#
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
...
@@ -683,29 +856,9 @@ CONFIG_NLS_CODEPAGE_437=y
...
@@ -683,29 +856,9 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_UTF8 is not set
# CONFIG_NLS_UTF8 is not set
#
#
# Console drivers
# Profiling support
#
CONFIG_VGA_CONSOLE=y
#
# Frame-buffer support
#
# CONFIG_FB is not set
#
#
# Sound
# CONFIG_PROFILING is not set
#
# CONFIG_SOUND is not set
#
# USB support
#
# CONFIG_USB is not set
#
# Bluetooth support
#
# CONFIG_BT is not set
#
#
# Kernel hacking
# Kernel hacking
...
@@ -718,16 +871,34 @@ CONFIG_MAGIC_SYSRQ=y
...
@@ -718,16 +871,34 @@ CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_RWLOCK is not set
# CONFIG_DEBUG_RWLOCK is not set
# CONFIG_DEBUG_SEMAPHORE is not set
# CONFIG_DEBUG_SEMAPHORE is not set
CONFIG_DEBUG_INFO=y
#
#
# Security options
# Security options
#
#
CONFIG_SECURITY_CAPABILITIES=y
# CONFIG_SECURITY is not set
#
#
# Cryptographic options
# Cryptographic options
#
#
# CONFIG_CRYPTO is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=m
CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_TEST is not set
#
#
# Library routines
# Library routines
...
...
arch/alpha/kernel/alpha_ksyms.c
View file @
33cc912c
...
@@ -35,6 +35,9 @@
...
@@ -35,6 +35,9 @@
#include <asm/cacheflush.h>
#include <asm/cacheflush.h>
#include <asm/vga.h>
#include <asm/vga.h>
#define __KERNEL_SYSCALLS__
#include <asm/unistd.h>
extern
struct
hwrpb_struct
*
hwrpb
;
extern
struct
hwrpb_struct
*
hwrpb
;
extern
void
dump_thread
(
struct
pt_regs
*
,
struct
user
*
);
extern
void
dump_thread
(
struct
pt_regs
*
,
struct
user
*
);
extern
spinlock_t
rtc_lock
;
extern
spinlock_t
rtc_lock
;
...
...
arch/alpha/kernel/time.c
View file @
33cc912c
...
@@ -24,6 +24,8 @@
...
@@ -24,6 +24,8 @@
* 2000-08-13 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* 2000-08-13 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* Fixed time_init to be aware of epoches != 1900. This prevents
* Fixed time_init to be aware of epoches != 1900. This prevents
* booting up in 2048 for me;) Code is stolen from rtc.c.
* booting up in 2048 for me;) Code is stolen from rtc.c.
* 2003-06-03 R. Scott Bailey <scott.bailey@eds.com>
* Tighten sanity in time_init from 1% (10,000 PPM) to 250 PPM
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/errno.h>
...
@@ -306,7 +308,7 @@ void __init
...
@@ -306,7 +308,7 @@ void __init
time_init
(
void
)
time_init
(
void
)
{
{
unsigned
int
year
,
mon
,
day
,
hour
,
min
,
sec
,
cc1
,
cc2
,
epoch
;
unsigned
int
year
,
mon
,
day
,
hour
,
min
,
sec
,
cc1
,
cc2
,
epoch
;
unsigned
long
cycle_freq
,
one_percent
;
unsigned
long
cycle_freq
,
tolerance
;
long
diff
;
long
diff
;
/* Calibrate CPU clock -- attempt #1. */
/* Calibrate CPU clock -- attempt #1. */
...
@@ -324,13 +326,13 @@ time_init(void)
...
@@ -324,13 +326,13 @@ time_init(void)
cycle_freq
=
hwrpb
->
cycle_freq
;
cycle_freq
=
hwrpb
->
cycle_freq
;
if
(
est_cycle_freq
)
{
if
(
est_cycle_freq
)
{
/* If the given value is within
1% of what we calculated,
/* If the given value is within
250 PPM of what we calculated,
accept it. Otherwise, use what we found. */
accept it. Otherwise, use what we found. */
one_percent
=
cycle_freq
/
1
00
;
tolerance
=
cycle_freq
/
40
00
;
diff
=
cycle_freq
-
est_cycle_freq
;
diff
=
cycle_freq
-
est_cycle_freq
;
if
(
diff
<
0
)
if
(
diff
<
0
)
diff
=
-
diff
;
diff
=
-
diff
;
if
((
unsigned
long
)
diff
>
one_percent
)
{
if
((
unsigned
long
)
diff
>
tolerance
)
{
cycle_freq
=
est_cycle_freq
;
cycle_freq
=
est_cycle_freq
;
printk
(
"HWRPB cycle frequency bogus. "
printk
(
"HWRPB cycle frequency bogus. "
"Estimated %lu Hz
\n
"
,
cycle_freq
);
"Estimated %lu Hz
\n
"
,
cycle_freq
);
...
...
arch/alpha/kernel/traps.c
View file @
33cc912c
...
@@ -15,6 +15,7 @@
...
@@ -15,6 +15,7 @@
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/smp_lock.h>
#include <linux/smp_lock.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/init.h>
#include <asm/gentrap.h>
#include <asm/gentrap.h>
#include <asm/uaccess.h>
#include <asm/uaccess.h>
...
@@ -25,35 +26,37 @@
...
@@ -25,35 +26,37 @@
#include "proto.h"
#include "proto.h"
/* data/code implementing a work-around for some SRMs which
/* Work-around for some SRMs which mishandle opDEC faults. */
mishandle opDEC faults
*/
static
int
opDEC_testing
=
0
;
static
int
opDEC_fix
=
0
;
static
int
opDEC_checked
=
0
;
static
unsigned
long
opDEC_test_pc
=
0
;
static
void
static
int
opDEC_fix
;
static
void
__init
opDEC_check
(
void
)
opDEC_check
(
void
)
{
{
unsigned
long
test_pc
;
__asm__
__volatile__
(
/* Load the address of... */
if
(
opDEC_checked
)
return
;
" br $16, 1f
\n
"
/* A stub instruction fault handler. Just add 4 to the
lock_kernel
();
pc and continue. */
opDEC_testing
=
1
;
" ldq $16, 8($sp)
\n
"
" addq $16, 4, $16
\n
"
__asm__
__volatile__
(
" stq $16, 8($sp)
\n
"
" br %0,1f
\n
"
" call_pal %[rti]
\n
"
"1: addq %0,8,%0
\n
"
/* Install the instruction fault handler. */
" stq %0,%1
\n
"
"1: lda $17, 3
\n
"
" call_pal %[wrent]
\n
"
/* With that in place, the fault from the round-to-minf fp
insn will arrive either at the "lda 4" insn (bad) or one
past that (good). This places the correct fixup in %0. */
" lda %[fix], 0
\n
"
" cvttq/svm $f31,$f31
\n
"
" cvttq/svm $f31,$f31
\n
"
:
"=&r"
(
test_pc
),
"=m"
(
opDEC_test_pc
)
" lda %[fix], 4"
:
);
:
[
fix
]
"=r"
(
opDEC_fix
)
:
[
rti
]
"n"
(
PAL_rti
),
[
wrent
]
"n"
(
PAL_wrent
)
:
"$0"
,
"$1"
,
"$16"
,
"$17"
,
"$22"
,
"$23"
,
"$24"
,
"$25"
);
opDEC_testing
=
0
;
if
(
opDEC_fix
)
opDEC_checked
=
1
;
printk
(
"opDEC fixup enabled.
\n
"
);
unlock_kernel
();
}
}
void
void
...
@@ -244,7 +247,7 @@ do_entIF(unsigned long type, struct pt_regs *regs)
...
@@ -244,7 +247,7 @@ do_entIF(unsigned long type, struct pt_regs *regs)
siginfo_t
info
;
siginfo_t
info
;
int
signo
,
code
;
int
signo
,
code
;
if
(
!
opDEC_testing
||
type
!=
4
)
{
if
(
regs
->
ps
==
0
)
{
if
(
type
==
1
)
{
if
(
type
==
1
)
{
const
unsigned
int
*
data
const
unsigned
int
*
data
=
(
const
unsigned
int
*
)
regs
->
pc
;
=
(
const
unsigned
int
*
)
regs
->
pc
;
...
@@ -359,14 +362,6 @@ do_entIF(unsigned long type, struct pt_regs *regs)
...
@@ -359,14 +362,6 @@ do_entIF(unsigned long type, struct pt_regs *regs)
fault during the boot sequence and testing if
fault during the boot sequence and testing if
we get the correct PC. If not, we set a flag
we get the correct PC. If not, we set a flag
to correct it every time through. */
to correct it every time through. */
if
(
opDEC_testing
)
{
if
(
regs
->
pc
==
opDEC_test_pc
)
{
opDEC_fix
=
4
;
regs
->
pc
+=
4
;
printk
(
"opDEC fixup enabled.
\n
"
);
}
return
;
}
regs
->
pc
+=
opDEC_fix
;
regs
->
pc
+=
opDEC_fix
;
/* EV4 does not implement anything except normal
/* EV4 does not implement anything except normal
...
@@ -1083,22 +1078,22 @@ do_entUnaUser(void * va, unsigned long opcode,
...
@@ -1083,22 +1078,22 @@ do_entUnaUser(void * va, unsigned long opcode,
return
;
return
;
}
}
void
void
__init
trap_init
(
void
)
trap_init
(
void
)
{
{
/* Tell PAL-code what global pointer we want in the kernel. */
/* Tell PAL-code what global pointer we want in the kernel. */
register
unsigned
long
gptr
__asm__
(
"$29"
);
register
unsigned
long
gptr
__asm__
(
"$29"
);
wrkgp
(
gptr
);
wrkgp
(
gptr
);
/* Hack for Multia (UDB) and JENSEN: some of their SRMs have
a bug in the handling of the opDEC fault. Fix it up if so. */
if
(
implver
()
==
IMPLVER_EV4
)
opDEC_check
();
wrent
(
entArith
,
1
);
wrent
(
entArith
,
1
);
wrent
(
entMM
,
2
);
wrent
(
entMM
,
2
);
wrent
(
entIF
,
3
);
wrent
(
entIF
,
3
);
wrent
(
entUna
,
4
);
wrent
(
entUna
,
4
);
wrent
(
entSys
,
5
);
wrent
(
entSys
,
5
);
wrent
(
entDbg
,
6
);
wrent
(
entDbg
,
6
);
/* Hack for Multia (UDB) and JENSEN: some of their SRMs have
a bug in the handling of the opDEC fault. Fix it up if so. */
if
(
implver
()
==
IMPLVER_EV4
)
opDEC_check
();
}
}
arch/x86_64/defconfig
View file @
33cc912c
...
@@ -26,7 +26,7 @@ CONFIG_SWAP=y
...
@@ -26,7 +26,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=1
7
CONFIG_LOG_BUF_SHIFT=1
8
# CONFIG_HOTPLUG is not set
# CONFIG_HOTPLUG is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_IKCONFIG_PROC=y
...
@@ -47,7 +47,7 @@ CONFIG_MODULE_UNLOAD=y
...
@@ -47,7 +47,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
# CONFIG_KMOD is not set
CONFIG_STOP_MACHINE=y
CONFIG_STOP_MACHINE=y
#
#
...
@@ -94,14 +94,14 @@ CONFIG_ACPI_INTERPRETER=y
...
@@ -94,14 +94,14 @@ CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
CONFIG_ACPI_SLEEP_PROC_FS=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_AC=y
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_TOSHIBA=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_BUS=y
CONFIG_ACPI_BUS=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_POWER=y
...
@@ -120,17 +120,18 @@ CONFIG_ACPI_SYSTEM=y
...
@@ -120,17 +120,18 @@ CONFIG_ACPI_SYSTEM=y
CONFIG_PCI=y
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_LEGACY_PROC=y
# CONFIG_PCI_LEGACY_PROC is not set
# CONFIG_PCI_NAMES is not set
# CONFIG_PCI_NAMES is not set
#
#
# Executable file formats / Emulations
# Executable file formats / Emulations
#
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
# CONFIG_BINFMT_MISC is not set
CONFIG_IA32_EMULATION=y
CONFIG_IA32_EMULATION=y
CONFIG_IA32_AOUT=y
CONFIG_IA32_AOUT=y
CONFIG_COMPAT=y
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_UID16=y
CONFIG_UID16=y
#
#
...
@@ -150,14 +151,7 @@ CONFIG_UID16=y
...
@@ -150,14 +151,7 @@ CONFIG_UID16=y
#
#
# Parallel port support
# Parallel port support
#
#
CONFIG_PARPORT=y
# CONFIG_PARPORT is not set
CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_CML1=y
# CONFIG_PARPORT_SERIAL is not set
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
# CONFIG_PARPORT_OTHER is not set
CONFIG_PARPORT_1284=y
#
#
# Plug and Play support
# Plug and Play support
...
@@ -167,7 +161,6 @@ CONFIG_PARPORT_1284=y
...
@@ -167,7 +161,6 @@ CONFIG_PARPORT_1284=y
# Block devices
# Block devices
#
#
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_FD=y
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_DAC960 is not set
...
@@ -175,8 +168,11 @@ CONFIG_BLK_DEV_FD=y
...
@@ -175,8 +168,11 @@ CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_CARMEL is not set
# CONFIG_LBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_LBD=y
#
#
# ATA/ATAPI/MFM/RLL support
# ATA/ATAPI/MFM/RLL support
...
@@ -194,7 +190,7 @@ CONFIG_IDEDISK_MULTI_MODE=y
...
@@ -194,7 +190,7 @@ CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
# CONFIG_IDE_TASKFILE_IO is not set
...
@@ -202,12 +198,11 @@ CONFIG_BLK_DEV_IDESCSI=m
...
@@ -202,12 +198,11 @@ CONFIG_BLK_DEV_IDESCSI=m
# IDE chipset support/bugfixes
# IDE chipset support/bugfixes
#
#
CONFIG_IDE_GENERIC=y
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
...
@@ -218,6 +213,7 @@ CONFIG_BLK_DEV_ADMA=y
...
@@ -218,6 +213,7 @@ CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
CONFIG_BLK_DEV_AMD74XX=y
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CY82C693 is not set
...
@@ -226,16 +222,16 @@ CONFIG_BLK_DEV_AMD74XX=y
...
@@ -226,16 +222,16 @@ CONFIG_BLK_DEV_AMD74XX=y
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
CONFIG_BLK_DEV_SIS5513=y
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_BLK_DEV_VIA82CXXX is not set
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
CONFIG_IDEDMA_AUTO=y
...
@@ -254,9 +250,8 @@ CONFIG_SCSI=y
...
@@ -254,9 +250,8 @@ CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR is not set
# CONFIG_BLK_DEV_SR_VENDOR is not set
# CONFIG_CHR_DEV_SG is not set
CONFIG_CHR_DEV_SG=m
#
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
...
@@ -266,6 +261,12 @@ CONFIG_CHR_DEV_SG=m
...
@@ -266,6 +261,12 @@ CONFIG_CHR_DEV_SG=m
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_LOGGING is not set
#
# SCSI Transport Attributes
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
#
#
# SCSI low-level drivers
# SCSI low-level drivers
#
#
...
@@ -282,6 +283,7 @@ CONFIG_SCSI_SATA=y
...
@@ -282,6 +283,7 @@ CONFIG_SCSI_SATA=y
CONFIG_SCSI_ATA_PIIX=y
CONFIG_SCSI_ATA_PIIX=y
# CONFIG_SCSI_SATA_PROMISE is not set
# CONFIG_SCSI_SATA_PROMISE is not set
CONFIG_SCSI_SATA_VIA=y
CONFIG_SCSI_SATA_VIA=y
# CONFIG_SCSI_SATA_VITESSE is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DMX3191D is not set
...
@@ -291,8 +293,6 @@ CONFIG_SCSI_SATA_VIA=y
...
@@ -291,8 +293,6 @@ CONFIG_SCSI_SATA_VIA=y
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_FC is not set
...
@@ -317,7 +317,6 @@ CONFIG_SCSI_QLA2XXX=y
...
@@ -317,7 +317,6 @@ CONFIG_SCSI_QLA2XXX=y
# Fusion MPT device support
# Fusion MPT device support
#
#
CONFIG_FUSION=y
CONFIG_FUSION=y
CONFIG_FUSION_BOOT=y
CONFIG_FUSION_MAX_SGE=40
CONFIG_FUSION_MAX_SGE=40
# CONFIG_FUSION_ISENSE is not set
# CONFIG_FUSION_ISENSE is not set
# CONFIG_FUSION_CTL is not set
# CONFIG_FUSION_CTL is not set
...
@@ -331,10 +330,6 @@ CONFIG_FUSION_MAX_SGE=40
...
@@ -331,10 +330,6 @@ CONFIG_FUSION_MAX_SGE=40
# I2O device support
# I2O device support
#
#
#
# Macintosh device drivers
#
#
#
# Networking support
# Networking support
#
#
...
@@ -345,111 +340,37 @@ CONFIG_NET=y
...
@@ -345,111 +340,37 @@ CONFIG_NET=y
#
#
CONFIG_PACKET=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_PACKET_MMAP is not set
CONFIG_NETLINK_DEV=y
# CONFIG_NETLINK_DEV is not set
CONFIG_UNIX=y
CONFIG_UNIX=y
CONFIG_NET_KEY=m
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_NET_IPGRE is not set
CONFIG_IP_MROUTE=y
# CONFIG_IP_MROUTE is not set
# CONFIG_IP_PIMSM_V1 is not set
# CONFIG_IP_PIMSM_V2 is not set
# CONFIG_ARPD is not set
# CONFIG_ARPD is not set
# CONFIG_INET_ECN is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_INET_AH=m
# CONFIG_INET_AH is not set
CONFIG_INET_ESP=m
# CONFIG_INET_ESP is not set
CONFIG_INET_IPCOMP=m
# CONFIG_INET_IPCOMP is not set
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
CONFIG_IPV6=y
CONFIG_IPV6=y
CONFIG_IPV6_PRIVACY=y
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_AH is not set
CONFIG_INET6_ESP=m
# CONFIG_INET6_ESP is not set
CONFIG_INET6_IPCOMP=m
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_DECNET is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_BRIDGE is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER is not set
# CONFIG_NETFILTER_DEBUG is not set
#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
# CONFIG_IP_NF_TFTP is not set
# CONFIG_IP_NF_AMANDA is not set
# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_LIMIT is not set
# CONFIG_IP_NF_MATCH_IPRANGE is not set
# CONFIG_IP_NF_MATCH_MAC is not set
# CONFIG_IP_NF_MATCH_PKTTYPE is not set
# CONFIG_IP_NF_MATCH_MARK is not set
# CONFIG_IP_NF_MATCH_MULTIPORT is not set
# CONFIG_IP_NF_MATCH_TOS is not set
# CONFIG_IP_NF_MATCH_RECENT is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_DSCP is not set
# CONFIG_IP_NF_MATCH_AH_ESP is not set
# CONFIG_IP_NF_MATCH_LENGTH is not set
# CONFIG_IP_NF_MATCH_TTL is not set
# CONFIG_IP_NF_MATCH_TCPMSS is not set
# CONFIG_IP_NF_MATCH_HELPER is not set
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
# CONFIG_IP_NF_MATCH_OWNER is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_SAME is not set
# CONFIG_IP_NF_NAT_LOCAL is not set
# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=m
CONFIG_IP_NF_MANGLE=m
# CONFIG_IP_NF_TARGET_TOS is not set
# CONFIG_IP_NF_TARGET_ECN is not set
# CONFIG_IP_NF_TARGET_DSCP is not set
CONFIG_IP_NF_TARGET_MARK=m
# CONFIG_IP_NF_TARGET_CLASSIFY is not set
CONFIG_IP_NF_TARGET_LOG=m
# CONFIG_IP_NF_TARGET_ULOG is not set
CONFIG_IP_NF_TARGET_TCPMSS=m
# CONFIG_IP_NF_ARPTABLES is not set
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
#
# IPv6: Netfilter Configuration
#
# CONFIG_IP6_NF_QUEUE is not set
# CONFIG_IP6_NF_IPTABLES is not set
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
#
#
# SCTP Configuration (EXPERIMENTAL)
# SCTP Configuration (EXPERIMENTAL)
#
#
CONFIG_IPV6_SCTP__=y
CONFIG_IPV6_SCTP__=y
CONFIG_IP_SCTP=m
# CONFIG_IP_SCTP is not set
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
CONFIG_SCTP_HMAC_NONE=y
# CONFIG_SCTP_HMAC_SHA1 is not set
# CONFIG_SCTP_HMAC_MD5 is not set
# CONFIG_ATM is not set
# CONFIG_ATM is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_LLC2 is not set
# CONFIG_LLC2 is not set
...
@@ -478,11 +399,10 @@ CONFIG_NETDEVICES=y
...
@@ -478,11 +399,10 @@ CONFIG_NETDEVICES=y
# ARCnet devices
# ARCnet devices
#
#
# CONFIG_ARCNET is not set
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_TUN is not set
CONFIG_ETHERTAP=m
#
#
# Ethernet (10 or 100Mbit)
# Ethernet (10 or 100Mbit)
...
@@ -491,9 +411,7 @@ CONFIG_NET_ETHERNET=y
...
@@ -491,9 +411,7 @@ CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_SUNGEM is not set
CONFIG_NET_VENDOR_3COM=y
# CONFIG_NET_VENDOR_3COM is not set
CONFIG_VORTEX=m
# CONFIG_TYPHOON is not set
#
#
# Tulip family network device support
# Tulip family network device support
...
@@ -501,25 +419,25 @@ CONFIG_VORTEX=m
...
@@ -501,25 +419,25 @@ CONFIG_VORTEX=m
# CONFIG_NET_TULIP is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
CONFIG_NET_PCI=y
CONFIG_PCNET32=y
# CONFIG_PCNET32 is not set
CONFIG_AMD8111_ETH=
m
CONFIG_AMD8111_ETH=
y
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
CONFIG_FORCEDETH=y
# CONFIG_DGRS is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
CONFIG_8139CP=m
CONFIG_8139TOO=
y
CONFIG_8139TOO=
m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_8139_RXBUF_IDX=2
CONFIG_8139_RXBUF_IDX=2
CONFIG_SIS900=m
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_SUNDANCE is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_RHINE is not set
...
@@ -529,7 +447,7 @@ CONFIG_SIS900=m
...
@@ -529,7 +447,7 @@ CONFIG_SIS900=m
#
#
# CONFIG_ACENIC is not set
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_DL2K is not set
CONFIG_E1000=
m
CONFIG_E1000=
y
# CONFIG_E1000_NAPI is not set
# CONFIG_E1000_NAPI is not set
# CONFIG_NS83820 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_HAMACHI is not set
...
@@ -545,15 +463,7 @@ CONFIG_TIGON3=y
...
@@ -545,15 +463,7 @@ CONFIG_TIGON3=y
# CONFIG_IXGB is not set
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
# CONFIG_PPP is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
# CONFIG_PPP_ASYNC is not set
# CONFIG_PPP_SYNC_TTY is not set
# CONFIG_PPP_DEFLATE is not set
# CONFIG_PPP_BSDCOMP is not set
CONFIG_PPPOE=m
# CONFIG_SLIP is not set
# CONFIG_SLIP is not set
#
#
...
@@ -567,6 +477,7 @@ CONFIG_PPPOE=m
...
@@ -567,6 +477,7 @@ CONFIG_PPPOE=m
# CONFIG_TR is not set
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
#
#
# Wan interfaces
# Wan interfaces
...
@@ -587,6 +498,10 @@ CONFIG_PPPOE=m
...
@@ -587,6 +498,10 @@ CONFIG_PPPOE=m
# Bluetooth support
# Bluetooth support
#
#
# CONFIG_BT is not set
# CONFIG_BT is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
#
#
# ISDN subsystem
# ISDN subsystem
...
@@ -612,7 +527,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
...
@@ -612,7 +527,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
# CONFIG_INPUT_EVBUG is not set
#
#
...
@@ -624,7 +539,6 @@ CONFIG_SERIO=y
...
@@ -624,7 +539,6 @@ CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_PCIPS2 is not set
#
#
...
@@ -633,11 +547,13 @@ CONFIG_SERIO_I8042=y
...
@@ -633,11 +547,13 @@ CONFIG_SERIO_I8042=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
# CONFIG_INPUT_MISC is not set
...
@@ -648,12 +564,7 @@ CONFIG_MOUSE_PS2=y
...
@@ -648,12 +564,7 @@ CONFIG_MOUSE_PS2=y
CONFIG_VT=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_ROCKETPORT=m
# CONFIG_SYNCLINK is not set
# CONFIG_SYNCLINKMP is not set
# CONFIG_N_HDLC is not set
# CONFIG_STALDRV is not set
#
#
# Serial drivers
# Serial drivers
...
@@ -670,16 +581,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
...
@@ -670,16 +581,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_LEGACY_PTYS=y
CONFIG_PRINTER=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set
#
# Mice
#
CONFIG_BUSMOUSE=y
# CONFIG_QIC02_TAPE is not set
# CONFIG_QIC02_TAPE is not set
#
#
...
@@ -703,17 +606,12 @@ CONFIG_RTC=y
...
@@ -703,17 +606,12 @@ CONFIG_RTC=y
#
#
CONFIG_AGP=y
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_AMD64=y
# CONFIG_AGP_INTEL is not set
CONFIG_AGP_INTEL=y
CONFIG_DRM=y
# CONFIG_DRM is not set
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_GAMMA is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
# CONFIG_DRM_SIS is not set
# CONFIG_MWAVE is not set
# CONFIG_MWAVE is not set
CONFIG_RAW_DRIVER=
m
CONFIG_RAW_DRIVER=
y
CONFIG_MAX_RAW_DEVS=256
CONFIG_MAX_RAW_DEVS=256
# CONFIG_HANGCHECK_TIMER is not set
CONFIG_HANGCHECK_TIMER=y
#
#
# I2C support
# I2C support
...
@@ -761,11 +659,10 @@ CONFIG_SOUND=y
...
@@ -761,11 +659,10 @@ CONFIG_SOUND=y
#
#
# Open Sound System
# Open Sound System
#
#
CONFIG_SOUND_PRIME=
m
CONFIG_SOUND_PRIME=
y
# CONFIG_SOUND_BT878 is not set
# CONFIG_SOUND_BT878 is not set
# CONFIG_SOUND_CMPCI is not set
# CONFIG_SOUND_CMPCI is not set
CONFIG_SOUND_EMU10K1=m
# CONFIG_SOUND_EMU10K1 is not set
# CONFIG_MIDI_EMU10K1 is not set
# CONFIG_SOUND_FUSION is not set
# CONFIG_SOUND_FUSION is not set
# CONFIG_SOUND_CS4281 is not set
# CONFIG_SOUND_CS4281 is not set
# CONFIG_SOUND_ES1370 is not set
# CONFIG_SOUND_ES1370 is not set
...
@@ -773,13 +670,12 @@ CONFIG_SOUND_EMU10K1=m
...
@@ -773,13 +670,12 @@ CONFIG_SOUND_EMU10K1=m
# CONFIG_SOUND_ESSSOLO1 is not set
# CONFIG_SOUND_ESSSOLO1 is not set
# CONFIG_SOUND_MAESTRO is not set
# CONFIG_SOUND_MAESTRO is not set
# CONFIG_SOUND_MAESTRO3 is not set
# CONFIG_SOUND_MAESTRO3 is not set
CONFIG_SOUND_ICH=
m
CONFIG_SOUND_ICH=
y
# CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_MSNDPIN is not set
CONFIG_SOUND_VIA82CXXX=m
# CONFIG_SOUND_VIA82CXXX is not set
# CONFIG_MIDI_VIA82CXXX is not set
# CONFIG_SOUND_OSS is not set
# CONFIG_SOUND_OSS is not set
# CONFIG_SOUND_ALI5455 is not set
# CONFIG_SOUND_ALI5455 is not set
# CONFIG_SOUND_FORTE is not set
# CONFIG_SOUND_FORTE is not set
...
@@ -789,151 +685,7 @@ CONFIG_SOUND_VIA82CXXX=m
...
@@ -789,151 +685,7 @@ CONFIG_SOUND_VIA82CXXX=m
#
#
# USB support
# USB support
#
#
CONFIG_USB=m
# CONFIG_USB is not set
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y
# CONFIG_USB_DYNAMIC_MINORS is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_UHCI_HCD=m
#
# USB Device Class drivers
#
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_MIDI is not set
# CONFIG_USB_ACM is not set
CONFIG_USB_PRINTER=m
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_HP8200e is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
#
# USB Human Interface Devices (HID)
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_XPAD is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_HPUSBSCSI is not set
#
# USB Multimedia devices
#
# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
#
#
# USB Network adaptors
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
CONFIG_USB_USBNET=m
#
# USB Host-to-Host Cables
#
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_GENESYS=y
CONFIG_USB_NET1080=y
CONFIG_USB_PL2301=y
#
# Intelligent USB Devices/Gadgets
#
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ZAURUS is not set
# CONFIG_USB_CDCETHER is not set
#
# USB Network Adapters
#
CONFIG_USB_AX8817X=y
#
# USB port drivers
#
# CONFIG_USB_USS720 is not set
#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_BELKIN=m
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_EMPEG is not set
# CONFIG_USB_SERIAL_FTDI_SIO is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OMNINET is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_BRLVGER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_TEST is not set
#
#
# USB Gadget Support
# USB Gadget Support
...
@@ -945,17 +697,20 @@ CONFIG_USB_SERIAL_BELKIN=m
...
@@ -945,17 +697,20 @@ CONFIG_USB_SERIAL_BELKIN=m
#
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_EXT2_FS_SECURITY is not set
# CONFIG_EXT2_FS_SECURITY is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS=y
# CONFIG_EXT3_FS_XATTR is not set
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=y
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_PROC_INFO=y
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_JFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_ROMFS_FS is not set
...
@@ -967,16 +722,14 @@ CONFIG_AUTOFS_FS=y
...
@@ -967,16 +722,14 @@ CONFIG_AUTOFS_FS=y
# CD-ROM/DVD Filesystems
# CD-ROM/DVD Filesystems
#
#
CONFIG_ISO9660_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_ZISOFS is not set
CONFIG_UDF_FS=m
# CONFIG_UDF_FS is not set
#
#
# DOS/FAT/NT Filesystems
# DOS/FAT/NT Filesystems
#
#
CONFIG_FAT_FS=y
# CONFIG_FAT_FS is not set
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=m
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS_FS is not set
#
#
...
@@ -987,8 +740,8 @@ CONFIG_PROC_KCORE=y
...
@@ -987,8 +740,8 @@ CONFIG_PROC_KCORE=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_TMPFS=y
# CONFIG_HUGETLBFS is not set
CONFIG_HUGETLBFS=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
CONFIG_RAMFS=y
#
#
...
@@ -1014,7 +767,7 @@ CONFIG_RAMFS=y
...
@@ -1014,7 +767,7 @@ CONFIG_RAMFS=y
CONFIG_NFS_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_V4 is not set
CONFIG_NFS_DIRECTIO=y
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V4 is not set
# CONFIG_NFSD_V4 is not set
...
@@ -1023,11 +776,12 @@ CONFIG_LOCKD=y
...
@@ -1023,11 +776,12 @@ CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_EXPORTFS=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC=y
# CONFIG_
SUNRPC_GSS
is not set
# CONFIG_
RPCSEC_GSS_KRB5
is not set
# CONFIG_SMB_FS is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_AFS_FS is not set
#
#
...
@@ -1039,45 +793,7 @@ CONFIG_MSDOS_PARTITION=y
...
@@ -1039,45 +793,7 @@ CONFIG_MSDOS_PARTITION=y
#
#
# Native Language Support
# Native Language Support
#
#
CONFIG_NLS=y
# CONFIG_NLS is not set
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
#
# Profiling support
# Profiling support
...
@@ -1105,28 +821,9 @@ CONFIG_MAGIC_SYSRQ=y
...
@@ -1105,28 +821,9 @@ CONFIG_MAGIC_SYSRQ=y
#
#
# Cryptographic options
# Cryptographic options
#
#
CONFIG_CRYPTO=y
# CONFIG_CRYPTO is not set
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_ARC4 is not set
CONFIG_CRYPTO_DEFLATE=m
# CONFIG_CRYPTO_TEST is not set
#
#
# Library routines
# Library routines
#
#
CONFIG_CRC32=y
CONFIG_CRC32=y
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
arch/x86_64/kernel/acpi/boot.c
View file @
33cc912c
...
@@ -366,6 +366,17 @@ __setup("acpi_pic_sci=", acpi_pic_sci_setup);
...
@@ -366,6 +366,17 @@ __setup("acpi_pic_sci=", acpi_pic_sci_setup);
#endif
/* CONFIG_ACPI_BUS */
#endif
/* CONFIG_ACPI_BUS */
int
acpi_gsi_to_irq
(
u32
gsi
,
unsigned
int
*
irq
)
{
#ifdef CONFIG_X86_IO_APIC
if
(
use_pci_vector
()
&&
!
platform_legacy_irq
(
gsi
))
*
irq
=
IO_APIC_VECTOR
(
gsi
);
else
#endif
*
irq
=
gsi
;
return
0
;
}
static
unsigned
long
__init
static
unsigned
long
__init
acpi_scan_rsdp
(
acpi_scan_rsdp
(
unsigned
long
start
,
unsigned
long
start
,
...
...
arch/x86_64/kernel/entry.S
View file @
33cc912c
...
@@ -402,9 +402,9 @@ ENTRY(stub_rt_sigreturn)
...
@@ -402,9 +402,9 @@ ENTRY(stub_rt_sigreturn)
/*
0(%
rsp
):
interrupt
number
*/
/*
0(%
rsp
):
interrupt
number
*/
.
macro
interrupt
func
.
macro
interrupt
func
CFI_STARTPROC
simple
CFI_STARTPROC
simple
CFI_DEF_CFA
rsp
,(
SS
-
ORIG_RAX
)
CFI_DEF_CFA
rsp
,(
SS
-
RDI
)
CFI_
OFFSET
rsp
,(
RSP
-
SS
)
CFI_
REL_OFFSET
rsp
,(
RSP
-
ORIG_RAX
)
CFI_
OFFSET
rip
,(
RIP
-
SS
)
CFI_
REL_OFFSET
rip
,(
RIP
-
ORIG_RAX
)
cld
cld
#ifdef CONFIG_DEBUG_INFO
#ifdef CONFIG_DEBUG_INFO
SAVE_ALL
SAVE_ALL
...
@@ -805,6 +805,8 @@ ENTRY(debug)
...
@@ -805,6 +805,8 @@ ENTRY(debug)
paranoidentry
do_debug
paranoidentry
do_debug
/
*
switch
back
to
process
stack
to
restore
the
state
ptrace
touched
*/
/
*
switch
back
to
process
stack
to
restore
the
state
ptrace
touched
*/
movq
%
rax
,%
rsp
movq
%
rax
,%
rsp
testl
$
3
,
CS
(%
rsp
)
jnz
paranoid_userspace
jmp
paranoid_exit
jmp
paranoid_exit
CFI_ENDPROC
CFI_ENDPROC
...
@@ -816,8 +818,6 @@ ENTRY(nmi)
...
@@ -816,8 +818,6 @@ ENTRY(nmi)
paranoidentry
do_nmi
paranoidentry
do_nmi
/
*
ebx
:
no
swapgs
flag
*/
/
*
ebx
:
no
swapgs
flag
*/
paranoid_exit
:
paranoid_exit
:
testl
$
3
,
CS
(%
rsp
)
jnz
paranoid_userspace
testl
%
ebx
,%
ebx
/*
swapgs
needed
?
*/
testl
%
ebx
,%
ebx
/*
swapgs
needed
?
*/
jnz
paranoid_restore
jnz
paranoid_restore
paranoid_swapgs
:
paranoid_swapgs
:
...
@@ -870,6 +870,8 @@ ENTRY(double_fault)
...
@@ -870,6 +870,8 @@ ENTRY(double_fault)
CFI_STARTPROC
CFI_STARTPROC
paranoidentry
do_double_fault
paranoidentry
do_double_fault
movq
%
rax
,%
rsp
movq
%
rax
,%
rsp
testl
$
3
,
CS
(%
rsp
)
jnz
paranoid_userspace
jmp
paranoid_exit
jmp
paranoid_exit
CFI_ENDPROC
CFI_ENDPROC
...
@@ -884,6 +886,8 @@ ENTRY(stack_segment)
...
@@ -884,6 +886,8 @@ ENTRY(stack_segment)
CFI_STARTPROC
CFI_STARTPROC
paranoidentry
do_stack_segment
paranoidentry
do_stack_segment
movq
%
rax
,%
rsp
movq
%
rax
,%
rsp
testl
$
3
,
CS
(%
rsp
)
jnz
paranoid_userspace
jmp
paranoid_exit
jmp
paranoid_exit
CFI_ENDPROC
CFI_ENDPROC
...
...
arch/x86_64/kernel/mce.c
View file @
33cc912c
...
@@ -22,12 +22,13 @@
...
@@ -22,12 +22,13 @@
#include <asm/uaccess.h>
#include <asm/uaccess.h>
#define MISC_MCELOG_MINOR 227
#define MISC_MCELOG_MINOR 227
#define NR_BANKS 5
static
int
mce_disabled
__initdata
;
static
int
mce_disabled
__initdata
;
/* 0: always panic, 1: panic if deadlock possible, 2: try to avoid panic */
/* 0: always panic, 1: panic if deadlock possible, 2: try to avoid panic */
static
int
tolerant
=
2
;
static
int
tolerant
=
2
;
static
int
banks
;
static
int
banks
;
static
unsigned
long
disabled_banks
;
static
unsigned
long
bank
[
NR_BANKS
]
=
{
[
0
...
NR_BANKS
-
1
]
=
~
0UL
}
;
/*
/*
* Lockless MCE logging infrastructure.
* Lockless MCE logging infrastructure.
...
@@ -144,7 +145,7 @@ void do_machine_check(struct pt_regs * regs, long error_code)
...
@@ -144,7 +145,7 @@ void do_machine_check(struct pt_regs * regs, long error_code)
mb
();
mb
();
for
(
i
=
0
;
i
<
banks
;
i
++
)
{
for
(
i
=
0
;
i
<
banks
;
i
++
)
{
if
(
test_bit
(
i
,
&
disabled_banks
)
)
if
(
!
bank
[
i
]
)
continue
;
continue
;
rdmsrl
(
MSR_IA32_MC0_STATUS
+
i
*
4
,
m
.
status
);
rdmsrl
(
MSR_IA32_MC0_STATUS
+
i
*
4
,
m
.
status
);
...
@@ -179,7 +180,7 @@ void do_machine_check(struct pt_regs * regs, long error_code)
...
@@ -179,7 +180,7 @@ void do_machine_check(struct pt_regs * regs, long error_code)
confused it's normally not necessary to panic, unless you are
confused it's normally not necessary to panic, unless you are
paranoid (tolerant == 0) */
paranoid (tolerant == 0) */
if
(
!
user_space
&&
(
panic_on_oops
||
tolerant
<
2
))
if
(
!
user_space
&&
(
panic_on_oops
||
tolerant
<
2
))
mce_panic
(
"Uncorrected machine check
in kernel
"
,
&
m
,
mcestart
);
mce_panic
(
"Uncorrected machine check"
,
&
m
,
mcestart
);
/* do_exit takes an awful lot of locks and has as slight risk
/* do_exit takes an awful lot of locks and has as slight risk
of deadlocking. If you don't want that don't set tolerant >= 2 */
of deadlocking. If you don't want that don't set tolerant >= 2 */
...
@@ -238,17 +239,31 @@ static void mce_init(void *dummy)
...
@@ -238,17 +239,31 @@ static void mce_init(void *dummy)
wrmsr
(
MSR_IA32_MCG_CTL
,
0xffffffff
,
0xffffffff
);
wrmsr
(
MSR_IA32_MCG_CTL
,
0xffffffff
,
0xffffffff
);
banks
=
cap
&
0xff
;
banks
=
cap
&
0xff
;
if
(
banks
>
NR_BANKS
)
{
printk
(
KERN_INFO
"MCE: warning: using only %d banks
\n
"
,
banks
);
banks
=
NR_BANKS
;
}
mce_clear_all
();
mce_clear_all
();
for
(
i
=
0
;
i
<
banks
;
i
++
)
{
for
(
i
=
0
;
i
<
banks
;
i
++
)
{
u64
val
=
test_bit
(
i
,
&
disabled_banks
)
?
0
:
~
0UL
;
wrmsrl
(
MSR_IA32_MC0_CTL
+
4
*
i
,
bank
[
i
]);
wrmsrl
(
MSR_IA32_MC0_CTL
+
4
*
i
,
val
);
wrmsrl
(
MSR_IA32_MC0_STATUS
+
4
*
i
,
0
);
wrmsrl
(
MSR_IA32_MC0_STATUS
+
4
*
i
,
0
);
}
}
set_in_cr4
(
X86_CR4_MCE
);
set_in_cr4
(
X86_CR4_MCE
);
}
}
/* Add per CPU specific workarounds here */
static
void
__init
mce_cpu_quirks
(
struct
cpuinfo_x86
*
c
)
{
/* This should be disabled by the BIOS, but isn't always */
if
(
c
->
x86_vendor
==
X86_VENDOR_AMD
&&
c
->
x86
==
15
)
{
/* disable GART TBL walk error reporting, which trips off
incorrectly with the IOMMU & 3ware & Cerberus. */
clear_bit
(
10
,
&
bank
[
4
]);
}
}
/*
/*
* Called for each booted CPU to set up machine checks.
* Called for each booted CPU to set up machine checks.
* Must be called with preempt off.
* Must be called with preempt off.
...
@@ -257,6 +272,8 @@ void __init mcheck_init(struct cpuinfo_x86 *c)
...
@@ -257,6 +272,8 @@ void __init mcheck_init(struct cpuinfo_x86 *c)
{
{
static
unsigned
long
mce_cpus
__initdata
=
0
;
static
unsigned
long
mce_cpus
__initdata
=
0
;
mce_cpu_quirks
(
c
);
if
(
test_and_set_bit
(
smp_processor_id
(),
&
mce_cpus
)
||
!
mce_available
(
c
))
if
(
test_and_set_bit
(
smp_processor_id
(),
&
mce_cpus
)
||
!
mce_available
(
c
))
return
;
return
;
...
@@ -343,23 +360,9 @@ static int mce_ioctl(struct inode *i, struct file *f,unsigned int cmd, unsigned
...
@@ -343,23 +360,9 @@ static int mce_ioctl(struct inode *i, struct file *f,unsigned int cmd, unsigned
}
}
}
}
#if 0 /* for testing */
static ssize_t mce_write(struct file *f, const char __user *buf, size_t sz, loff_t *off)
{
struct mce m;
if (sz != sizeof(struct mce))
return -EINVAL;
copy_from_user(&m, buf, sizeof(struct mce));
m.finished = 0;
mce_log(&m);
return sizeof(struct mce);
}
#endif
static
struct
file_operations
mce_chrdev_ops
=
{
static
struct
file_operations
mce_chrdev_ops
=
{
.
read
=
mce_read
,
.
read
=
mce_read
,
.
ioctl
=
mce_ioctl
,
.
ioctl
=
mce_ioctl
,
//.write = mce_write
};
};
static
struct
miscdevice
mce_log_device
=
{
static
struct
miscdevice
mce_log_device
=
{
...
@@ -425,23 +428,27 @@ static struct sys_device device_mce = {
...
@@ -425,23 +428,27 @@ static struct sys_device device_mce = {
};
};
/* Why are there no generic functions for this? */
/* Why are there no generic functions for this? */
#define ACCESSOR(name, start) \
#define ACCESSOR(name,
var,
start) \
static ssize_t show_ ## name(struct sys_device *s, char *buf) { \
static ssize_t show_ ## name(struct sys_device *s, char *buf) { \
return sprintf(buf, "%lu\n", (unsigned long)
name
); \
return sprintf(buf, "%lu\n", (unsigned long)
var
); \
} \
} \
static ssize_t set_ ## name(struct sys_device *s,const char *buf,size_t siz) { \
static ssize_t set_ ## name(struct sys_device *s,const char *buf,size_t siz) { \
char *end; \
char *end; \
unsigned long new = simple_strtoul(buf, &end, 0); \
unsigned long new = simple_strtoul(buf, &end, 0); \
if (end == buf) return -EINVAL; \
if (end == buf) return -EINVAL; \
name
= new; \
var
= new; \
start; \
start; \
return end-buf; \
return end-buf; \
} \
} \
static SYSDEV_ATTR(name, 0644, show_ ## name, set_ ## name);
static SYSDEV_ATTR(name, 0644, show_ ## name, set_ ## name);
ACCESSOR
(
disabled_banks
,
mce_restart
())
ACCESSOR
(
bank0ctl
,
bank
[
0
],
mce_restart
())
ACCESSOR
(
tolerant
,)
ACCESSOR
(
bank1ctl
,
bank
[
1
],
mce_restart
())
ACCESSOR
(
check_interval
,
mce_restart
())
ACCESSOR
(
bank2ctl
,
bank
[
2
],
mce_restart
())
ACCESSOR
(
bank3ctl
,
bank
[
3
],
mce_restart
())
ACCESSOR
(
bank4ctl
,
bank
[
4
],
mce_restart
())
ACCESSOR
(
tolerant
,
tolerant
,)
ACCESSOR
(
check_interval
,
check_interval
,
mce_restart
())
static
__init
int
mce_init_device
(
void
)
static
__init
int
mce_init_device
(
void
)
{
{
...
@@ -453,7 +460,11 @@ static __init int mce_init_device(void)
...
@@ -453,7 +460,11 @@ static __init int mce_init_device(void)
err
=
sysdev_register
(
&
device_mce
);
err
=
sysdev_register
(
&
device_mce
);
if
(
!
err
)
{
if
(
!
err
)
{
/* could create per CPU objects, but is not worth it. */
/* could create per CPU objects, but is not worth it. */
sysdev_create_file
(
&
device_mce
,
&
attr_disabled_banks
);
sysdev_create_file
(
&
device_mce
,
&
attr_bank0ctl
);
sysdev_create_file
(
&
device_mce
,
&
attr_bank1ctl
);
sysdev_create_file
(
&
device_mce
,
&
attr_bank2ctl
);
sysdev_create_file
(
&
device_mce
,
&
attr_bank3ctl
);
sysdev_create_file
(
&
device_mce
,
&
attr_bank4ctl
);
sysdev_create_file
(
&
device_mce
,
&
attr_tolerant
);
sysdev_create_file
(
&
device_mce
,
&
attr_tolerant
);
sysdev_create_file
(
&
device_mce
,
&
attr_check_interval
);
sysdev_create_file
(
&
device_mce
,
&
attr_check_interval
);
}
}
...
...
arch/x86_64/kernel/mpparse.c
View file @
33cc912c
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* Erich Boleyn : MP v1.4 and additional changes.
* Erich Boleyn : MP v1.4 and additional changes.
* Alan Cox : Added EBDA scanning
* Alan Cox : Added EBDA scanning
* Ingo Molnar : various cleanups and rewrites
* Ingo Molnar : various cleanups and rewrites
*
Maciej W. Rozycki
: Bits for default MP configurations
*
Maciej W. Rozycki
: Bits for default MP configurations
* Paul Diefenbaugh: Added full ACPI support
* Paul Diefenbaugh: Added full ACPI support
*/
*/
...
@@ -690,25 +690,25 @@ void __init mp_register_lapic (
...
@@ -690,25 +690,25 @@ void __init mp_register_lapic (
struct
mp_ioapic_routing
{
struct
mp_ioapic_routing
{
int
apic_id
;
int
apic_id
;
int
irq
_start
;
int
gsi
_start
;
int
irq
_end
;
int
gsi
_end
;
u32
pin_programmed
[
4
];
u32
pin_programmed
[
4
];
}
mp_ioapic_routing
[
MAX_IO_APICS
];
}
mp_ioapic_routing
[
MAX_IO_APICS
];
static
int
__init
mp_find_ioapic
(
static
int
__init
mp_find_ioapic
(
int
irq
)
int
gsi
)
{
{
int
i
=
0
;
int
i
=
0
;
/* Find the IOAPIC that manages this
IRQ
. */
/* Find the IOAPIC that manages this
GSI
. */
for
(
i
=
0
;
i
<
nr_ioapics
;
i
++
)
{
for
(
i
=
0
;
i
<
nr_ioapics
;
i
++
)
{
if
((
irq
>=
mp_ioapic_routing
[
i
].
irq
_start
)
if
((
gsi
>=
mp_ioapic_routing
[
i
].
gsi
_start
)
&&
(
irq
<=
mp_ioapic_routing
[
i
].
irq
_end
))
&&
(
gsi
<=
mp_ioapic_routing
[
i
].
gsi
_end
))
return
i
;
return
i
;
}
}
printk
(
KERN_ERR
"ERROR: Unable to locate IOAPIC for
IRQ %d
\n
"
,
irq
);
printk
(
KERN_ERR
"ERROR: Unable to locate IOAPIC for
GSI %d
\n
"
,
gsi
);
return
-
1
;
return
-
1
;
}
}
...
@@ -717,7 +717,7 @@ static int __init mp_find_ioapic (
...
@@ -717,7 +717,7 @@ static int __init mp_find_ioapic (
void
__init
mp_register_ioapic
(
void
__init
mp_register_ioapic
(
u8
id
,
u8
id
,
u32
address
,
u32
address
,
u32
irq
_base
)
u32
gsi
_base
)
{
{
int
idx
=
0
;
int
idx
=
0
;
...
@@ -743,19 +743,19 @@ void __init mp_register_ioapic (
...
@@ -743,19 +743,19 @@ void __init mp_register_ioapic (
mp_ioapics
[
idx
].
mpc_apicver
=
io_apic_get_version
(
idx
);
mp_ioapics
[
idx
].
mpc_apicver
=
io_apic_get_version
(
idx
);
/*
/*
* Build basic IRQ lookup table to facilitate
irq
->io_apic lookups
* Build basic IRQ lookup table to facilitate
gsi
->io_apic lookups
* and to prevent reprogramming of IOAPIC pins (PCI IRQs).
* and to prevent reprogramming of IOAPIC pins (PCI IRQs).
*/
*/
mp_ioapic_routing
[
idx
].
apic_id
=
mp_ioapics
[
idx
].
mpc_apicid
;
mp_ioapic_routing
[
idx
].
apic_id
=
mp_ioapics
[
idx
].
mpc_apicid
;
mp_ioapic_routing
[
idx
].
irq_start
=
irq
_base
;
mp_ioapic_routing
[
idx
].
gsi_start
=
gsi
_base
;
mp_ioapic_routing
[
idx
].
irq_end
=
irq
_base
+
mp_ioapic_routing
[
idx
].
gsi_end
=
gsi
_base
+
io_apic_get_redir_entries
(
idx
);
io_apic_get_redir_entries
(
idx
);
printk
(
KERN_INFO
"IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
printk
(
KERN_INFO
"IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
"
IRQ
%d-%d
\n
"
,
idx
,
mp_ioapics
[
idx
].
mpc_apicid
,
"
GSI
%d-%d
\n
"
,
idx
,
mp_ioapics
[
idx
].
mpc_apicid
,
mp_ioapics
[
idx
].
mpc_apicver
,
mp_ioapics
[
idx
].
mpc_apicaddr
,
mp_ioapics
[
idx
].
mpc_apicver
,
mp_ioapics
[
idx
].
mpc_apicaddr
,
mp_ioapic_routing
[
idx
].
irq
_start
,
mp_ioapic_routing
[
idx
].
gsi
_start
,
mp_ioapic_routing
[
idx
].
irq
_end
);
mp_ioapic_routing
[
idx
].
gsi
_end
);
return
;
return
;
}
}
...
@@ -765,7 +765,7 @@ void __init mp_override_legacy_irq (
...
@@ -765,7 +765,7 @@ void __init mp_override_legacy_irq (
u8
bus_irq
,
u8
bus_irq
,
u8
polarity
,
u8
polarity
,
u8
trigger
,
u8
trigger
,
u32
g
lobal_irq
)
u32
g
si
)
{
{
struct
mpc_config_intsrc
intsrc
;
struct
mpc_config_intsrc
intsrc
;
int
i
=
0
;
int
i
=
0
;
...
@@ -774,12 +774,12 @@ void __init mp_override_legacy_irq (
...
@@ -774,12 +774,12 @@ void __init mp_override_legacy_irq (
int
pin
=
-
1
;
int
pin
=
-
1
;
/*
/*
* Convert 'g
lobal_irq
' to 'ioapic.pin'.
* Convert 'g
si
' to 'ioapic.pin'.
*/
*/
ioapic
=
mp_find_ioapic
(
g
lobal_irq
);
ioapic
=
mp_find_ioapic
(
g
si
);
if
(
ioapic
<
0
)
if
(
ioapic
<
0
)
return
;
return
;
pin
=
g
lobal_irq
-
mp_ioapic_routing
[
ioapic
].
irq
_start
;
pin
=
g
si
-
mp_ioapic_routing
[
ioapic
].
gsi
_start
;
/*
/*
* TBD: This check is for faulty timer entries, where the override
* TBD: This check is for faulty timer entries, where the override
...
@@ -804,7 +804,7 @@ void __init mp_override_legacy_irq (
...
@@ -804,7 +804,7 @@ void __init mp_override_legacy_irq (
/*
/*
* If an existing [IOAPIC.PIN -> IRQ] routing entry exists we override it.
* If an existing [IOAPIC.PIN -> IRQ] routing entry exists we override it.
* Otherwise create a new entry (e.g. g
lobal_irq
== 2).
* Otherwise create a new entry (e.g. g
si
== 2).
*/
*/
for
(
i
=
0
;
i
<
mp_irq_entries
;
i
++
)
{
for
(
i
=
0
;
i
<
mp_irq_entries
;
i
++
)
{
if
((
mp_irqs
[
i
].
mpc_srcbus
==
intsrc
.
mpc_srcbus
)
if
((
mp_irqs
[
i
].
mpc_srcbus
==
intsrc
.
mpc_srcbus
)
...
@@ -878,7 +878,7 @@ void __init mp_config_acpi_legacy_irqs (void)
...
@@ -878,7 +878,7 @@ void __init mp_config_acpi_legacy_irqs (void)
extern
FADT_DESCRIPTOR
acpi_fadt
;
extern
FADT_DESCRIPTOR
acpi_fadt
;
void
__init
mp_config_ioapic_for_sci
(
int
irq
)
void
__init
mp_config_ioapic_for_sci
(
u32
gsi
)
{
{
#ifdef CONFIG_ACPI_INTERPRETER
#ifdef CONFIG_ACPI_INTERPRETER
int
ioapic
;
int
ioapic
;
...
@@ -926,11 +926,11 @@ void __init mp_config_ioapic_for_sci(int irq)
...
@@ -926,11 +926,11 @@ void __init mp_config_ioapic_for_sci(int irq)
*/
*/
flags
=
entry
->
flags
;
flags
=
entry
->
flags
;
acpi_fadt
.
sci_int
=
entry
->
global_irq
;
acpi_fadt
.
sci_int
=
entry
->
global_irq
;
irq
=
entry
->
global_irq
;
gsi
=
entry
->
global_irq
;
ioapic
=
mp_find_ioapic
(
irq
);
ioapic
=
mp_find_ioapic
(
gsi
);
ioapic_pin
=
irq
-
mp_ioapic_routing
[
ioapic
].
irq
_start
;
ioapic_pin
=
gsi
-
mp_ioapic_routing
[
ioapic
].
gsi
_start
;
/*
/*
* MPS INTI flags:
* MPS INTI flags:
...
@@ -938,7 +938,7 @@ void __init mp_config_ioapic_for_sci(int irq)
...
@@ -938,7 +938,7 @@ void __init mp_config_ioapic_for_sci(int irq)
* polarity: 0=default, 1=high, 3=low
* polarity: 0=default, 1=high, 3=low
* Per ACPI spec, default for SCI means level/low.
* Per ACPI spec, default for SCI means level/low.
*/
*/
io_apic_set_pci_routing
(
ioapic
,
ioapic_pin
,
irq
,
io_apic_set_pci_routing
(
ioapic
,
ioapic_pin
,
gsi
,
(
flags
.
trigger
==
1
?
0
:
1
),
(
flags
.
polarity
==
1
?
0
:
1
));
(
flags
.
trigger
==
1
?
0
:
1
),
(
flags
.
polarity
==
1
?
0
:
1
));
#endif
#endif
}
}
...
@@ -951,7 +951,7 @@ void __init mp_parse_prt (void)
...
@@ -951,7 +951,7 @@ void __init mp_parse_prt (void)
struct
acpi_prt_entry
*
entry
=
NULL
;
struct
acpi_prt_entry
*
entry
=
NULL
;
int
ioapic
=
-
1
;
int
ioapic
=
-
1
;
int
ioapic_pin
=
0
;
int
ioapic_pin
=
0
;
int
irq
=
0
;
int
gsi
=
0
;
int
idx
,
bit
=
0
;
int
idx
,
bit
=
0
;
int
edge_level
=
0
;
int
edge_level
=
0
;
int
active_high_low
=
0
;
int
active_high_low
=
0
;
...
@@ -963,30 +963,30 @@ void __init mp_parse_prt (void)
...
@@ -963,30 +963,30 @@ void __init mp_parse_prt (void)
list_for_each
(
node
,
&
acpi_prt
.
entries
)
{
list_for_each
(
node
,
&
acpi_prt
.
entries
)
{
entry
=
list_entry
(
node
,
struct
acpi_prt_entry
,
node
);
entry
=
list_entry
(
node
,
struct
acpi_prt_entry
,
node
);
/* Need to get
irq
for dynamic entry */
/* Need to get
gsi
for dynamic entry */
if
(
entry
->
link
.
handle
)
{
if
(
entry
->
link
.
handle
)
{
irq
=
acpi_pci_link_get_irq
(
entry
->
link
.
handle
,
entry
->
link
.
index
,
&
edge_level
,
&
active_high_low
);
gsi
=
acpi_pci_link_get_irq
(
entry
->
link
.
handle
,
entry
->
link
.
index
,
&
edge_level
,
&
active_high_low
);
if
(
!
irq
)
if
(
!
gsi
)
continue
;
continue
;
}
else
{
}
else
{
/* Hardwired
IRQ
. Assume PCI standard settings */
/* Hardwired
GSI
. Assume PCI standard settings */
irq
=
entry
->
link
.
index
;
gsi
=
entry
->
link
.
index
;
edge_level
=
1
;
edge_level
=
1
;
active_high_low
=
1
;
active_high_low
=
1
;
}
}
/* Don't set up the ACPI SCI because it's already set up */
/* Don't set up the ACPI SCI because it's already set up */
if
(
acpi_fadt
.
sci_int
==
irq
)
if
(
acpi_fadt
.
sci_int
==
gsi
)
continue
;
continue
;
ioapic
=
mp_find_ioapic
(
irq
);
ioapic
=
mp_find_ioapic
(
gsi
);
if
(
ioapic
<
0
)
if
(
ioapic
<
0
)
continue
;
continue
;
ioapic_pin
=
irq
-
mp_ioapic_routing
[
ioapic
].
irq
_start
;
ioapic_pin
=
gsi
-
mp_ioapic_routing
[
ioapic
].
gsi
_start
;
/*
/*
* Avoid pin reprogramming. PRTs typically include entries
* Avoid pin reprogramming. PRTs typically include entries
* with redundant pin->
irq
mappings (but unique PCI devices);
* with redundant pin->
gsi
mappings (but unique PCI devices);
* we only only program the IOAPIC on the first.
* we only only program the IOAPIC on the first.
*/
*/
bit
=
ioapic_pin
%
32
;
bit
=
ioapic_pin
%
32
;
...
@@ -1000,20 +1000,16 @@ void __init mp_parse_prt (void)
...
@@ -1000,20 +1000,16 @@ void __init mp_parse_prt (void)
if
((
1
<<
bit
)
&
mp_ioapic_routing
[
ioapic
].
pin_programmed
[
idx
])
{
if
((
1
<<
bit
)
&
mp_ioapic_routing
[
ioapic
].
pin_programmed
[
idx
])
{
Dprintk
(
KERN_DEBUG
"Pin %d-%d already programmed
\n
"
,
Dprintk
(
KERN_DEBUG
"Pin %d-%d already programmed
\n
"
,
mp_ioapic_routing
[
ioapic
].
apic_id
,
ioapic_pin
);
mp_ioapic_routing
[
ioapic
].
apic_id
,
ioapic_pin
);
if
(
use_pci_vector
()
&&
!
platform_legacy_irq
(
irq
))
acpi_gsi_to_irq
(
gsi
,
&
entry
->
irq
);
irq
=
IO_APIC_VECTOR
(
irq
);
entry
->
irq
=
irq
;
continue
;
continue
;
}
}
mp_ioapic_routing
[
ioapic
].
pin_programmed
[
idx
]
|=
(
1
<<
bit
);
mp_ioapic_routing
[
ioapic
].
pin_programmed
[
idx
]
|=
(
1
<<
bit
);
if
(
!
io_apic_set_pci_routing
(
ioapic
,
ioapic_pin
,
irq
,
edge_level
,
active_high_low
))
{
if
(
!
io_apic_set_pci_routing
(
ioapic
,
ioapic_pin
,
gsi
,
edge_level
,
active_high_low
))
{
if
(
use_pci_vector
()
&&
!
platform_legacy_irq
(
irq
))
acpi_gsi_to_irq
(
gsi
,
&
entry
->
irq
);
irq
=
IO_APIC_VECTOR
(
irq
);
entry
->
irq
=
irq
;
}
}
printk
(
KERN_DEBUG
"%02x:%02x:%02x[%c] -> %d-%d
"
printk
(
KERN_DEBUG
"%02x:%02x:%02x[%c] -> %d-%d
-> IRQ %d
\n
"
,
" -> IRQ %d
\n
"
,
entry
->
id
.
segment
,
entry
->
id
.
bus
,
entry
->
id
.
segment
,
entry
->
id
.
bus
,
entry
->
id
.
device
,
(
'A'
+
entry
->
pin
),
entry
->
id
.
device
,
(
'A'
+
entry
->
pin
),
mp_ioapic_routing
[
ioapic
].
apic_id
,
ioapic_pin
,
mp_ioapic_routing
[
ioapic
].
apic_id
,
ioapic_pin
,
entry
->
irq
);
entry
->
irq
);
...
...
arch/x86_64/kernel/pci-gart.c
View file @
33cc912c
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include <linux/pci.h>
#include <linux/pci.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/topology.h>
#include <linux/topology.h>
#include <linux/interrupt.h>
#include <asm/atomic.h>
#include <asm/atomic.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/mtrr.h>
#include <asm/mtrr.h>
...
@@ -31,6 +32,12 @@
...
@@ -31,6 +32,12 @@
#include <asm/kdebug.h>
#include <asm/kdebug.h>
#include <asm/proto.h>
#include <asm/proto.h>
#ifdef CONFIG_PREEMPT
#define preempt_atomic() in_atomic()
#else
#define preempt_atomic() 1
#endif
dma_addr_t
bad_dma_address
;
dma_addr_t
bad_dma_address
;
unsigned
long
iommu_bus_base
;
/* GART remapping area (physical) */
unsigned
long
iommu_bus_base
;
/* GART remapping area (physical) */
...
@@ -96,6 +103,8 @@ AGPEXTERN __u32 *agp_gatt_table;
...
@@ -96,6 +103,8 @@ AGPEXTERN __u32 *agp_gatt_table;
static
unsigned
long
next_bit
;
/* protected by iommu_bitmap_lock */
static
unsigned
long
next_bit
;
/* protected by iommu_bitmap_lock */
static
int
need_flush
;
/* global flush state. set for each gart wrap */
static
int
need_flush
;
/* global flush state. set for each gart wrap */
static
dma_addr_t
pci_map_area
(
struct
pci_dev
*
dev
,
unsigned
long
phys_mem
,
size_t
size
,
int
dir
);
static
unsigned
long
alloc_iommu
(
int
size
)
static
unsigned
long
alloc_iommu
(
int
size
)
{
{
...
@@ -169,43 +178,44 @@ static void flush_gart(struct pci_dev *dev)
...
@@ -169,43 +178,44 @@ static void flush_gart(struct pci_dev *dev)
/*
/*
* Allocate memory for a consistent mapping.
* Allocate memory for a consistent mapping.
* All mappings are consistent here, so this is just a wrapper around
* pci_map_single.
*/
*/
void
*
pci_alloc_consistent
(
struct
pci_dev
*
hwdev
,
size_t
size
,
void
*
pci_alloc_consistent
(
struct
pci_dev
*
hwdev
,
size_t
size
,
dma_addr_t
*
dma_handle
)
dma_addr_t
*
dma_handle
)
{
{
void
*
memory
;
void
*
memory
;
int
gfp
=
GFP_ATOMIC
;
int
gfp
=
preempt_atomic
()
?
GFP_ATOMIC
:
GFP_KERNEL
;
unsigned
long
dma_mask
;
unsigned
long
dma_mask
=
0
;
u64
bus
;
if
(
hwdev
==
NULL
)
{
if
(
hwdev
)
gfp
|=
GFP_DMA
;
dma_mask
=
0xffffffff
;
}
else
{
dma_mask
=
hwdev
->
dev
.
coherent_dma_mask
;
dma_mask
=
hwdev
->
dev
.
coherent_dma_mask
;
}
if
(
dma_mask
==
0
)
if
(
dma_mask
==
0
)
dma_mask
=
0xffffffff
;
dma_mask
=
0xffffffff
;
if
(
dma_mask
<
0xffffffff
||
no_iommu
)
gfp
|=
GFP_DMA
;
/* Kludge to make it bug-to-bug compatible with i386. i386
/* Kludge to make it bug-to-bug compatible with i386. i386
uses the normal dma_mask for alloc_consistent. */
uses the normal dma_mask for alloc_consistent. */
dma_mask
&=
hwdev
->
dma_mask
;
dma_mask
&=
hwdev
->
dma_mask
;
again:
memory
=
(
void
*
)
__get_free_pages
(
gfp
,
get_order
(
size
));
memory
=
(
void
*
)
__get_free_pages
(
gfp
,
get_order
(
size
));
if
(
memory
==
NULL
)
{
if
(
memory
==
NULL
)
return
NULL
;
return
NULL
;
}
else
{
{
int
high
,
mmu
;
int
high
,
mmu
;
high
=
((
unsigned
long
)
virt_to_bus
(
memory
)
+
size
)
>=
dma_mask
;
bus
=
virt_to_bus
(
memory
);
high
=
(
bus
+
size
)
>=
dma_mask
;
mmu
=
high
;
mmu
=
high
;
if
(
force_iommu
&&
!
(
gfp
&
GFP_DMA
))
if
(
force_iommu
&&
!
(
gfp
&
GFP_DMA
))
mmu
=
1
;
mmu
=
1
;
if
(
no_iommu
)
{
if
(
no_iommu
||
dma_mask
<
0xffffffffUL
)
{
if
(
high
)
goto
error
;
if
(
high
)
{
if
(
!
(
gfp
&
GFP_DMA
))
{
gfp
|=
GFP_DMA
;
goto
again
;
}
goto
free
;
}
mmu
=
0
;
mmu
=
0
;
}
}
memset
(
memory
,
0
,
size
);
memset
(
memory
,
0
,
size
);
...
@@ -215,15 +225,16 @@ void *pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
...
@@ -215,15 +225,16 @@ void *pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
}
}
}
}
*
dma_handle
=
pci_map_
single
(
hwdev
,
memory
,
size
,
0
);
*
dma_handle
=
pci_map_
area
(
hwdev
,
bus
,
size
,
PCI_DMA_BIDIRECTIONAL
);
if
(
*
dma_handle
==
bad_dma_address
)
if
(
*
dma_handle
==
bad_dma_address
)
goto
error
;
goto
error
;
flush_gart
(
hwdev
);
return
memory
;
return
memory
;
error:
error:
if
(
panic_on_overflow
)
if
(
panic_on_overflow
)
panic
(
"pci_map_single: overflow %lu bytes
\n
"
,
size
);
panic
(
"pci_alloc_consistent: overflow %lu bytes
\n
"
,
size
);
free:
free_pages
((
unsigned
long
)
memory
,
get_order
(
size
));
free_pages
((
unsigned
long
)
memory
,
get_order
(
size
));
return
NULL
;
return
NULL
;
}
}
...
@@ -608,6 +619,7 @@ EXPORT_SYMBOL(pci_unmap_single);
...
@@ -608,6 +619,7 @@ EXPORT_SYMBOL(pci_unmap_single);
EXPORT_SYMBOL
(
pci_dma_supported
);
EXPORT_SYMBOL
(
pci_dma_supported
);
EXPORT_SYMBOL
(
no_iommu
);
EXPORT_SYMBOL
(
no_iommu
);
EXPORT_SYMBOL
(
force_iommu
);
EXPORT_SYMBOL
(
force_iommu
);
EXPORT_SYMBOL
(
bad_dma_address
);
static
__init
unsigned
long
check_iommu_size
(
unsigned
long
aper
,
u64
aper_size
)
static
__init
unsigned
long
check_iommu_size
(
unsigned
long
aper
,
u64
aper_size
)
{
{
...
@@ -733,7 +745,7 @@ static int __init pci_iommu_init(void)
...
@@ -733,7 +745,7 @@ static int __init pci_iommu_init(void)
if
(
swiotlb
)
{
if
(
swiotlb
)
{
no_iommu
=
1
;
no_iommu
=
1
;
printk
(
KERN_INFO
"PCI-DMA: Using
SWIOTLB :-(
\n
"
);
printk
(
KERN_INFO
"PCI-DMA: Using
software bounce buffering for IO (SWIOTLB)
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -837,6 +849,7 @@ fs_initcall(pci_iommu_init);
...
@@ -837,6 +849,7 @@ fs_initcall(pci_iommu_init);
forcesac For SAC mode for masks <40bits (experimental)
forcesac For SAC mode for masks <40bits (experimental)
fullflush Flush IOMMU on each allocation (default)
fullflush Flush IOMMU on each allocation (default)
nofullflush Don't use IOMMU fullflush
nofullflush Don't use IOMMU fullflush
soft Use software bounce buffering (default for Intel machines)
*/
*/
__init
int
iommu_setup
(
char
*
opt
)
__init
int
iommu_setup
(
char
*
opt
)
{
{
...
@@ -876,6 +889,8 @@ __init int iommu_setup(char *opt)
...
@@ -876,6 +889,8 @@ __init int iommu_setup(char *opt)
iommu_fullflush
=
1
;
iommu_fullflush
=
1
;
if
(
!
memcmp
(
p
,
"nofullflush"
,
11
))
if
(
!
memcmp
(
p
,
"nofullflush"
,
11
))
iommu_fullflush
=
0
;
iommu_fullflush
=
0
;
if
(
!
memcmp
(
p
,
"soft"
,
4
))
swiotlb
=
1
;
#ifdef CONFIG_IOMMU_LEAK
#ifdef CONFIG_IOMMU_LEAK
if
(
!
memcmp
(
p
,
"leak"
,
4
))
{
if
(
!
memcmp
(
p
,
"leak"
,
4
))
{
leak_trace
=
1
;
leak_trace
=
1
;
...
...
arch/x86_64/kernel/process.c
View file @
33cc912c
...
@@ -32,6 +32,7 @@
...
@@ -32,6 +32,7 @@
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <linux/irq.h>
#include <linux/ptrace.h>
#include <linux/ptrace.h>
#include <linux/version.h>
#include <asm/uaccess.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
#include <asm/pgtable.h>
...
@@ -205,7 +206,8 @@ void __show_regs(struct pt_regs * regs)
...
@@ -205,7 +206,8 @@ void __show_regs(struct pt_regs * regs)
printk
(
"
\n
"
);
printk
(
"
\n
"
);
print_modules
();
print_modules
();
printk
(
"Pid: %d, comm: %.20s %s
\n
"
,
current
->
pid
,
current
->
comm
,
print_tainted
());
printk
(
"Pid: %d, comm: %.20s %s %s
\n
"
,
current
->
pid
,
current
->
comm
,
print_tainted
(),
UTS_RELEASE
);
printk
(
"RIP: %04lx:[<%016lx>] "
,
regs
->
cs
&
0xffff
,
regs
->
rip
);
printk
(
"RIP: %04lx:[<%016lx>] "
,
regs
->
cs
&
0xffff
,
regs
->
rip
);
printk_address
(
regs
->
rip
);
printk_address
(
regs
->
rip
);
printk
(
"
\n
RSP: %04lx:%016lx EFLAGS: %08lx
\n
"
,
regs
->
ss
,
regs
->
rsp
,
regs
->
eflags
);
printk
(
"
\n
RSP: %04lx:%016lx EFLAGS: %08lx
\n
"
,
regs
->
ss
,
regs
->
rsp
,
regs
->
eflags
);
...
...
arch/x86_64/kernel/setup.c
View file @
33cc912c
...
@@ -232,7 +232,7 @@ static __init void parse_cmdline_early (char ** cmdline_p)
...
@@ -232,7 +232,7 @@ static __init void parse_cmdline_early (char ** cmdline_p)
if
(
!
memcmp
(
from
,
"noapic"
,
6
))
if
(
!
memcmp
(
from
,
"noapic"
,
6
))
skip_ioapic_setup
=
1
;
skip_ioapic_setup
=
1
;
if
(
!
memcmp
(
from
,
"apic"
,
6
))
{
if
(
!
memcmp
(
from
,
"apic"
,
4
))
{
skip_ioapic_setup
=
0
;
skip_ioapic_setup
=
0
;
ioapic_force
=
1
;
ioapic_force
=
1
;
}
}
...
@@ -453,9 +453,7 @@ void __init setup_arch(char **cmdline_p)
...
@@ -453,9 +453,7 @@ void __init setup_arch(char **cmdline_p)
paging_init
();
paging_init
();
#ifndef CONFIG_SMP
#ifndef CONFIG_SMP
/* Temporary hack: disable the IO-APIC for UP Nvidia and
/* Temporary hack: disable the IO-APIC for UP Nvidia and VIA. */
This is until we sort out the ACPI problems. */
if
(
!
acpi_disabled
)
check_ioapic
();
check_ioapic
();
#endif
#endif
#ifdef CONFIG_ACPI_BOOT
#ifdef CONFIG_ACPI_BOOT
...
...
arch/x86_64/mm/init.c
View file @
33cc912c
...
@@ -405,10 +405,10 @@ void __init mem_init(void)
...
@@ -405,10 +405,10 @@ void __init mem_init(void)
int
tmp
;
int
tmp
;
#ifdef CONFIG_SWIOTLB
#ifdef CONFIG_SWIOTLB
if
(
!
iommu_aperture
&&
end_pfn
>=
0xffffffff
>>
PAGE_SHIFT
)
{
if
(
!
iommu_aperture
&&
end_pfn
>=
0xffffffff
>>
PAGE_SHIFT
)
swiotlb_init
();
swiotlb
=
1
;
swiotlb
=
1
;
}
if
(
swiotlb
)
swiotlb_init
();
#endif
#endif
/* How many end-of-memory variables you have, grandma! */
/* How many end-of-memory variables you have, grandma! */
...
...
arch/x86_64/pci/mmconfig.c
View file @
33cc912c
...
@@ -88,7 +88,7 @@ static int __init pci_mmcfg_init(void)
...
@@ -88,7 +88,7 @@ static int __init pci_mmcfg_init(void)
return
0
;
return
0
;
}
}
printk
(
KERN_INFO
"PCI: Using MMCONFIG at %
l
x
\n
"
,
pci_mmcfg_base_addr
);
printk
(
KERN_INFO
"PCI: Using MMCONFIG at %x
\n
"
,
pci_mmcfg_base_addr
);
raw_pci_ops
=
&
pci_mmcfg
;
raw_pci_ops
=
&
pci_mmcfg
;
pci_probe
=
(
pci_probe
&
~
PCI_PROBE_MASK
)
|
PCI_PROBE_MMCONF
;
pci_probe
=
(
pci_probe
&
~
PCI_PROBE_MASK
)
|
PCI_PROBE_MMCONF
;
...
...
drivers/char/rtc.c
View file @
33cc912c
...
@@ -110,6 +110,8 @@ static int rtc_has_irq = 1;
...
@@ -110,6 +110,8 @@ static int rtc_has_irq = 1;
#define hpet_rtc_timer_init() do { } while (0)
#define hpet_rtc_timer_init() do { } while (0)
#define hpet_rtc_dropped_irq() 0
#define hpet_rtc_dropped_irq() 0
static
inline
irqreturn_t
hpet_rtc_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
return
0
;}
static
inline
irqreturn_t
hpet_rtc_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
return
0
;}
#else
extern
irqreturn_t
hpet_rtc_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
#endif
#endif
/*
/*
...
...
drivers/char/vt.c
View file @
33cc912c
...
@@ -2481,19 +2481,18 @@ static int con_open(struct tty_struct *tty, struct file * filp)
...
@@ -2481,19 +2481,18 @@ static int con_open(struct tty_struct *tty, struct file * filp)
return
0
;
return
0
;
}
}
static
void
con_close
(
struct
tty_struct
*
tty
,
struct
file
*
filp
)
static
void
con_close
(
struct
tty_struct
*
tty
,
struct
file
*
filp
)
{
{
acquire_console_sem
();
if
(
tty
&&
tty
->
count
==
1
)
{
struct
vt_struct
*
vt
;
struct
vt_struct
*
vt
;
if
(
!
tty
||
tty
->
count
!=
1
)
return
;
vcs_remove_devfs
(
tty
);
vcs_remove_devfs
(
tty
);
acquire_console_sem
();
vt
=
tty
->
driver_data
;
vt
=
(
struct
vt_struct
*
)
tty
->
driver_data
;
if
(
vt
)
if
(
vt
)
vc_cons
[
vt
->
vc_num
].
d
->
vc_tty
=
NULL
;
vc_cons
[
vt
->
vc_num
].
d
->
vc_tty
=
NULL
;
tty
->
driver_data
=
0
;
tty
->
driver_data
=
0
;
}
release_console_sem
();
release_console_sem
();
}
}
...
...
drivers/i2c/busses/i2c-keywest.c
View file @
33cc912c
...
@@ -608,6 +608,7 @@ create_iface(struct device_node *np, struct device *dev)
...
@@ -608,6 +608,7 @@ create_iface(struct device_node *np, struct device *dev)
}
}
#endif
/* POLLED_MODE */
#endif
/* POLLED_MODE */
pmac_low_i2c_unlock
(
np
);
dev_set_drvdata
(
dev
,
iface
);
dev_set_drvdata
(
dev
,
iface
);
for
(
i
=
0
;
i
<
nchan
;
i
++
)
{
for
(
i
=
0
;
i
<
nchan
;
i
++
)
{
...
@@ -645,7 +646,6 @@ create_iface(struct device_node *np, struct device *dev)
...
@@ -645,7 +646,6 @@ create_iface(struct device_node *np, struct device *dev)
printk
(
KERN_INFO
"Found KeyWest i2c on
\"
%s
\"
, %d channel%s, stepping: %d bits
\n
"
,
printk
(
KERN_INFO
"Found KeyWest i2c on
\"
%s
\"
, %d channel%s, stepping: %d bits
\n
"
,
np
->
parent
->
name
,
nchan
,
nchan
>
1
?
"s"
:
""
,
bsteps
);
np
->
parent
->
name
,
nchan
,
nchan
>
1
?
"s"
:
""
,
bsteps
);
pmac_low_i2c_unlock
(
np
);
return
0
;
return
0
;
}
}
...
...
drivers/macintosh/Kconfig
View file @
33cc912c
...
@@ -175,8 +175,8 @@ config THERM_WINDTUNNEL
...
@@ -175,8 +175,8 @@ config THERM_WINDTUNNEL
This driver provides some thermostat and fan control for the desktop
This driver provides some thermostat and fan control for the desktop
G4 "Windtunnel"
G4 "Windtunnel"
config THERM_ADT746
7
config THERM_ADT746
X
tristate "Support for thermal mgmnt on laptops with ADT 746
7
chipset"
tristate "Support for thermal mgmnt on laptops with ADT 746
x
chipset"
depends on I2C && I2C_KEYWEST && PPC_PMAC && !PPC_PMAC64
depends on I2C && I2C_KEYWEST && PPC_PMAC && !PPC_PMAC64
help
help
This driver provides some thermostat and fan control for the
This driver provides some thermostat and fan control for the
...
...
drivers/macintosh/Makefile
View file @
33cc912c
...
@@ -25,4 +25,4 @@ obj-$(CONFIG_ADB_MACIO) += macio-adb.o
...
@@ -25,4 +25,4 @@ obj-$(CONFIG_ADB_MACIO) += macio-adb.o
obj-$(CONFIG_THERM_PM72)
+=
therm_pm72.o
obj-$(CONFIG_THERM_PM72)
+=
therm_pm72.o
obj-$(CONFIG_THERM_WINDTUNNEL)
+=
therm_windtunnel.o
obj-$(CONFIG_THERM_WINDTUNNEL)
+=
therm_windtunnel.o
obj-$(CONFIG_THERM_ADT746
7)
+=
therm_adt7467
.o
obj-$(CONFIG_THERM_ADT746
X)
+=
therm_adt746x
.o
drivers/macintosh/therm_adt746
7
.c
→
drivers/macintosh/therm_adt746
x
.c
View file @
33cc912c
...
@@ -49,7 +49,7 @@ static int limit_adjust = 0;
...
@@ -49,7 +49,7 @@ static int limit_adjust = 0;
static
int
fan_speed
=
-
1
;
static
int
fan_speed
=
-
1
;
MODULE_AUTHOR
(
"Colin Leroy <colin@colino.net>"
);
MODULE_AUTHOR
(
"Colin Leroy <colin@colino.net>"
);
MODULE_DESCRIPTION
(
"Driver for ADT746
7 thermostat in iBook G4
"
);
MODULE_DESCRIPTION
(
"Driver for ADT746
x thermostat in iBook G4 and Powerbook G4 Alu
"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_PARM
(
limit_adjust
,
"i"
);
MODULE_PARM
(
limit_adjust
,
"i"
);
...
@@ -161,7 +161,7 @@ detach_thermostat(struct i2c_adapter *adapter)
...
@@ -161,7 +161,7 @@ detach_thermostat(struct i2c_adapter *adapter)
}
}
static
struct
i2c_driver
thermostat_driver
=
{
static
struct
i2c_driver
thermostat_driver
=
{
.
name
=
"Apple Thermostat ADT746
7
"
,
.
name
=
"Apple Thermostat ADT746
x
"
,
.
id
=
0xDEAD7467
,
.
id
=
0xDEAD7467
,
.
flags
=
I2C_DF_NOTIFY
,
.
flags
=
I2C_DF_NOTIFY
,
.
attach_adapter
=&
attach_thermostat
,
.
attach_adapter
=&
attach_thermostat
,
...
@@ -494,9 +494,6 @@ thermostat_init(void)
...
@@ -494,9 +494,6 @@ thermostat_init(void)
struct
device_node
*
np
;
struct
device_node
*
np
;
u32
*
prop
;
u32
*
prop
;
/* Currently, we only deal with the iBook G4, we will support
* all "2003" powerbooks later on
*/
np
=
of_find_node_by_name
(
NULL
,
"fan"
);
np
=
of_find_node_by_name
(
NULL
,
"fan"
);
if
(
!
np
)
if
(
!
np
)
return
-
ENODEV
;
return
-
ENODEV
;
...
...
drivers/macintosh/therm_windtunnel.c
View file @
33cc912c
/*
/*
* Creation Date: <2003/03/14 20:54:13 samuel>
* Creation Date: <2003/03/14 20:54:13 samuel>
* Time-stamp: <200
3/03/15 18:55:53
samuel>
* Time-stamp: <200
4/03/20 14:20:59
samuel>
*
*
* <therm_windtunnel.c>
* <therm_windtunnel.c>
*
*
* The G4 "windtunnel" has a single fan controlled by a
* The G4 "windtunnel" has a single fan controlled by a
n
*
DS1775 fan controller and an ADM1030
thermostat.
*
ADM1030 fan controller and a DS1775
thermostat.
*
*
* The fan controller is equipped with a temperature sensor
* The fan controller is equipped with a temperature sensor
* which measures the case temperature. The
ADM c
ensor
* which measures the case temperature. The
DS1775 s
ensor
* measures the CPU temperature. This driver tunes the
* measures the CPU temperature. This driver tunes the
* behavior of the fan. It is based upon empirical observations
* behavior of the fan. It is based upon empirical observations
* of the 'AppleFan' driver under
OS
X.
* of the 'AppleFan' driver under
Mac OS
X.
*
*
* WARNING: This driver has only been testen on Apple's
* WARNING: This driver has only been testen on Apple's
* 1.25 MHz Dual G4 (March 03). Other machines might have
* 1.25 MHz Dual G4 (March 03). It is tuned for a CPU
* a different thermal design. It is tuned for a CPU
* temperatur around 57 C.
* temperatur around 57 C.
*
*
* Copyright (C) 2003 Samuel Rydh (samuel@ibrium.se)
* Copyright (C) 2003
, 2004
Samuel Rydh (samuel@ibrium.se)
*
*
* Loosely based upon 'thermostat.c' written by Benjamin Herrenschmidt
* Loosely based upon 'thermostat.c' written by Benjamin Herrenschmidt
*
*
...
@@ -38,50 +37,37 @@
...
@@ -38,50 +37,37 @@
#include <linux/i2c.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/workqueue.h>
#include <asm/prom.h>
#include <asm/prom.h>
#include <asm/machdep.h>
#include <asm/machdep.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/system.h>
#include <asm/system.h>
#include <asm/sections.h>
#include <asm/sections.h>
#include <asm/of_device.h>
MODULE_AUTHOR
(
"Samuel Rydh <samuel@ibrium.se>"
);
MODULE_DESCRIPTION
(
"Apple G4 (windtunnel) fan driver"
);
MODULE_LICENSE
(
"GPL"
);
#define LOG_TEMP 0
/* continously log temperature */
#define LOG_TEMP 0
/* continously log temperature */
#define I2C_DRIVERID_G4FAN 0x9001
/* fixme */
#define THERMOSTAT_CLIENT_ID 1
#define FAN_CLIENT_ID 2
static
int
do_probe
(
struct
i2c_adapter
*
adapter
,
int
addr
,
int
kind
);
/* scan 0x48-0x4f (DS1775) and 0x2c-2x2f (ADM1030) */
/* scan 0x48-0x4f (DS1775) and 0x2c-2x2f (ADM1030) */
static
unsigned
short
normal_i2c
[]
=
{
0x49
,
0x2c
,
I2C_CLIENT_END
};
static
unsigned
short
normal_i2c
[]
=
{
0x49
,
0x2c
,
I2C_CLIENT_END
};
static
unsigned
short
normal_i2c_range
[]
=
{
0x48
,
0x4f
,
0x2c
,
0x2f
,
I2C_CLIENT_END
};
static
unsigned
short
normal_i2c_range
[]
=
{
0x48
,
0x4f
,
0x2c
,
0x2f
,
I2C_CLIENT_END
};
static
struct
work_struct
poll_work
;
I2C_CLIENT_INSMOD
;
I2C_CLIENT_INSMOD
;
#define I2C_DRIVERID_G4FAN 0x9001
/* fixme */
static
struct
{
volatile
int
running
;
#define THERMOSTAT_CLIENT_ID 1
struct
completion
completion
;
#define FAN_CLIENT_ID 2
pid_t
poll_task
;
struct
temp_range
{
u8
high
;
/* start the fan */
u8
low
;
/* stop the fan */
};
struct
apple_thermal_info
{
u8
id
;
/* implementation ID */
u8
fan_count
;
/* number of fans */
u8
thermostat_count
;
/* number of thermostats */
u8
unused
[
5
];
struct
temp_range
ranges
[
4
];
/* temperature ranges (may be [])*/
};
static
int
do_detect
(
struct
i2c_adapter
*
adapter
,
int
addr
,
int
kind
);
struct
semaphore
lock
;
struct
of_device
*
of_dev
;
static
struct
{
struct
i2c_client
*
thermostat
;
struct
i2c_client
*
thermostat
;
struct
i2c_client
*
fan
;
struct
i2c_client
*
fan
;
int
error
;
struct
timer_list
timer
;
int
overheat_temp
;
/* 100% fan at this temp */
int
overheat_temp
;
/* 100% fan at this temp */
int
overheat_hyst
;
int
overheat_hyst
;
...
@@ -95,37 +81,54 @@ static struct {
...
@@ -95,37 +81,54 @@ static struct {
int
r0
,
r1
,
r20
,
r23
,
r25
;
/* saved register */
int
r0
,
r1
,
r20
,
r23
,
r25
;
/* saved register */
}
x
;
}
x
;
#define T(x,y) (((x)<<8) | (y)*0x100/10 )
static
struct
{
static
struct
{
int
fan_down_setting
;
int
temp
;
int
temp
;
int
fan_setting
;
int
fan_up_setting
;
}
fan_up_table
[]
=
{
}
fan_table
[]
=
{
{
0x0000
,
11
},
/* min fan */
{
11
,
T
(
0
,
0
),
11
},
/* min fan */
{
0x3900
,
8
},
/* 57.0 C */
{
11
,
T
(
55
,
0
),
11
},
{
0x3a4a
,
7
},
/* 58.3 C */
{
6
,
T
(
55
,
3
),
11
},
{
0x3ad3
,
6
},
/* 58.8 C */
{
7
,
T
(
56
,
0
),
11
},
{
0x3b3c
,
5
},
/* 59.2 C */
{
8
,
T
(
57
,
0
),
8
},
{
0x3b94
,
4
},
/* 59.6 C */
{
7
,
T
(
58
,
3
),
7
},
{
0x3be3
,
3
},
/* 58.9 C */
{
6
,
T
(
58
,
8
),
6
},
{
0x3c29
,
2
},
/* 59.2 C */
{
5
,
T
(
59
,
2
),
5
},
{
0xffff
,
1
}
/* on fire */
{
4
,
T
(
59
,
6
),
4
},
};
{
3
,
T
(
59
,
9
),
3
},
static
struct
{
{
2
,
T
(
60
,
1
),
2
},
int
temp
;
{
1
,
0xfffff
,
1
}
/* on fire */
int
fan_setting
;
}
fan_down_table
[]
=
{
{
0x3700
,
11
},
/* 55.0 C */
{
0x374a
,
6
},
{
0x3800
,
7
},
/* 56.0 C */
{
0x3900
,
8
},
/* 57.0 C */
{
0x3a4a
,
7
},
/* 58.3 C */
{
0x3ad3
,
6
},
/* 58.8 C */
{
0x3b3c
,
5
},
/* 59.2 C */
{
0x3b94
,
4
},
/* 58.9 C */
{
0x3be3
,
3
},
/* 58.9 C */
{
0x3c29
,
2
},
/* 59.2 C */
{
0xffff
,
1
}
};
};
static
void
print_temp
(
const
char
*
s
,
int
temp
)
{
printk
(
"%s%d.%d C"
,
s
?
s
:
""
,
temp
>>
8
,
(
temp
&
255
)
*
10
/
256
);
}
static
ssize_t
show_cpu_temperature
(
struct
device
*
dev
,
char
*
buf
)
{
return
sprintf
(
buf
,
"%d.%d
\n
"
,
x
.
temp
>>
8
,
(
x
.
temp
&
255
)
*
10
/
256
);
}
static
ssize_t
show_case_temperature
(
struct
device
*
dev
,
char
*
buf
)
{
return
sprintf
(
buf
,
"%d.%d
\n
"
,
x
.
casetemp
>>
8
,
(
x
.
casetemp
&
255
)
*
10
/
256
);
}
static
DEVICE_ATTR
(
cpu_temperature
,
S_IRUGO
,
show_cpu_temperature
,
NULL
);
static
DEVICE_ATTR
(
case_temperature
,
S_IRUGO
,
show_case_temperature
,
NULL
);
/************************************************************************/
/* controller thread */
/************************************************************************/
static
int
static
int
write_reg
(
struct
i2c_client
*
cl
,
int
reg
,
int
data
,
int
len
)
write_reg
(
struct
i2c_client
*
cl
,
int
reg
,
int
data
,
int
len
)
{
{
...
@@ -159,37 +162,32 @@ read_reg( struct i2c_client *cl, int reg, int len )
...
@@ -159,37 +162,32 @@ read_reg( struct i2c_client *cl, int reg, int len )
return
(
len
==
2
)
?
((
unsigned
int
)
buf
[
0
]
<<
8
)
|
buf
[
1
]
:
buf
[
0
];
return
(
len
==
2
)
?
((
unsigned
int
)
buf
[
0
]
<<
8
)
|
buf
[
1
]
:
buf
[
0
];
}
}
static
void
print_temp
(
const
char
*
s
,
int
temp
)
{
printk
(
"%s%d.%d C"
,
s
?
s
:
""
,
temp
>>
8
,
(
temp
&
255
)
*
10
/
256
);
}
static
void
static
void
tune_fan
(
int
fan_setting
)
tune_fan
(
int
fan_setting
)
{
{
int
val
=
(
fan_setting
<<
3
)
|
7
;
int
val
=
(
fan_setting
<<
3
)
|
7
;
x
.
fan_level
=
fan_setting
;
/
/write_reg( x.fan, 0x24, val, 1 );
/
* write_reg( x.fan, 0x24, val, 1 ); */
write_reg
(
x
.
fan
,
0x25
,
val
,
1
);
write_reg
(
x
.
fan
,
0x25
,
val
,
1
);
write_reg
(
x
.
fan
,
0x20
,
0
,
1
);
write_reg
(
x
.
fan
,
0x20
,
0
,
1
);
print_temp
(
"CPU-temp: "
,
x
.
temp
);
print_temp
(
"CPU-temp: "
,
x
.
temp
);
if
(
x
.
casetemp
)
if
(
x
.
casetemp
)
print_temp
(
", Case: "
,
x
.
casetemp
);
print_temp
(
", Case: "
,
x
.
casetemp
);
printk
(
" Tuning fan: %d (%02x)
\n
"
,
fan_setting
,
val
);
printk
(
", Fan: %d (tuned %+d)
\n
"
,
11
-
fan_setting
,
x
.
fan_level
-
fan_setting
);
x
.
fan_level
=
fan_setting
;
}
}
static
void
static
void
poll_temp
(
void
*
param
)
poll_temp
(
void
)
{
{
int
temp
=
read_reg
(
x
.
thermostat
,
0
,
2
);
int
temp
,
i
,
level
,
casetemp
;
int
i
,
level
,
casetemp
;
temp
=
read_reg
(
x
.
thermostat
,
0
,
2
);
/* this actually occurs when the computer is loaded */
/* this actually occurs when the computer is loaded */
if
(
temp
<
0
)
if
(
temp
<
0
)
goto
out
;
return
;
casetemp
=
read_reg
(
x
.
fan
,
0x0b
,
1
)
<<
8
;
casetemp
=
read_reg
(
x
.
fan
,
0x0b
,
1
)
<<
8
;
casetemp
|=
(
read_reg
(
x
.
fan
,
0x06
,
1
)
&
0x7
)
<<
5
;
casetemp
|=
(
read_reg
(
x
.
fan
,
0x06
,
1
)
&
0x7
)
<<
5
;
...
@@ -197,37 +195,117 @@ poll_temp( void *param )
...
@@ -197,37 +195,117 @@ poll_temp( void *param )
if
(
LOG_TEMP
&&
x
.
temp
!=
temp
)
{
if
(
LOG_TEMP
&&
x
.
temp
!=
temp
)
{
print_temp
(
"CPU-temp: "
,
temp
);
print_temp
(
"CPU-temp: "
,
temp
);
print_temp
(
", Case: "
,
casetemp
);
print_temp
(
", Case: "
,
casetemp
);
printk
(
", Fan: %d
\n
"
,
x
.
fan_level
);
printk
(
", Fan: %d
\n
"
,
11
-
x
.
fan_level
);
}
}
x
.
temp
=
temp
;
x
.
temp
=
temp
;
x
.
casetemp
=
casetemp
;
x
.
casetemp
=
casetemp
;
level
=
-
1
;
level
=
-
1
;
for
(
i
=
0
;
(
temp
&
0xffff
)
>
fan_
down_
table
[
i
].
temp
;
i
++
)
for
(
i
=
0
;
(
temp
&
0xffff
)
>
fan_table
[
i
].
temp
;
i
++
)
;
;
if
(
i
<
x
.
downind
)
if
(
i
<
x
.
downind
)
level
=
fan_
down_table
[
i
].
fa
n_setting
;
level
=
fan_
table
[
i
].
fan_dow
n_setting
;
x
.
downind
=
i
;
x
.
downind
=
i
;
for
(
i
=
0
;
(
temp
&
0xfff
e
)
>=
fan_up
_table
[
i
+
1
].
temp
;
i
++
)
for
(
i
=
0
;
(
temp
&
0xfff
f
)
>=
fan
_table
[
i
+
1
].
temp
;
i
++
)
;
;
if
(
x
.
upind
<
i
)
if
(
x
.
upind
<
i
)
level
=
fan_
up_table
[
i
].
fan
_setting
;
level
=
fan_
table
[
i
].
fan_up
_setting
;
x
.
upind
=
i
;
x
.
upind
=
i
;
if
(
level
>=
0
)
if
(
level
>=
0
)
tune_fan
(
level
);
tune_fan
(
level
);
out:
}
x
.
timer
.
expires
=
jiffies
+
8
*
HZ
;
add_timer
(
&
x
.
timer
);
static
void
setup_hardware
(
void
)
{
int
val
;
/* save registers (if we unload the module) */
x
.
r0
=
read_reg
(
x
.
fan
,
0x00
,
1
);
x
.
r1
=
read_reg
(
x
.
fan
,
0x01
,
1
);
x
.
r20
=
read_reg
(
x
.
fan
,
0x20
,
1
);
x
.
r23
=
read_reg
(
x
.
fan
,
0x23
,
1
);
x
.
r25
=
read_reg
(
x
.
fan
,
0x25
,
1
);
/* improve measurement resolution (convergence time 1.5s) */
if
(
(
val
=
read_reg
(
x
.
thermostat
,
1
,
1
))
>=
0
)
{
val
|=
0x60
;
if
(
write_reg
(
x
.
thermostat
,
1
,
val
,
1
)
)
printk
(
"Failed writing config register
\n
"
);
}
/* disable interrupts and TAC input */
write_reg
(
x
.
fan
,
0x01
,
0x01
,
1
);
/* enable filter */
write_reg
(
x
.
fan
,
0x23
,
0x91
,
1
);
/* remote temp. controls fan */
write_reg
(
x
.
fan
,
0x00
,
0x95
,
1
);
/* The thermostat (which besides measureing temperature controls
* has a THERM output which puts the fan on 100%) is usually
* set to kick in at 80 C (chip default). We reduce this a bit
* to be on the safe side (OSX doesn't)...
*/
if
(
x
.
overheat_temp
==
(
80
<<
8
)
)
{
x
.
overheat_temp
=
65
<<
8
;
x
.
overheat_hyst
=
60
<<
8
;
write_reg
(
x
.
thermostat
,
2
,
x
.
overheat_hyst
,
2
);
write_reg
(
x
.
thermostat
,
3
,
x
.
overheat_temp
,
2
);
print_temp
(
"Reducing overheating limit to "
,
x
.
overheat_temp
);
print_temp
(
" (Hyst: "
,
x
.
overheat_hyst
);
printk
(
")
\n
"
);
}
/* set an initial fan setting */
x
.
downind
=
0xffff
;
x
.
upind
=
-
1
;
/* tune_fan( fan_up_table[x.upind].fan_setting ); */
device_create_file
(
&
x
.
of_dev
->
dev
,
&
dev_attr_cpu_temperature
);
device_create_file
(
&
x
.
of_dev
->
dev
,
&
dev_attr_case_temperature
);
}
}
static
void
static
void
schedule_poll
(
unsigned
long
t
)
restore_regs
(
void
)
{
device_remove_file
(
&
x
.
of_dev
->
dev
,
&
dev_attr_cpu_temperature
);
device_remove_file
(
&
x
.
of_dev
->
dev
,
&
dev_attr_case_temperature
);
write_reg
(
x
.
fan
,
0x01
,
x
.
r1
,
1
);
write_reg
(
x
.
fan
,
0x20
,
x
.
r20
,
1
);
write_reg
(
x
.
fan
,
0x23
,
x
.
r23
,
1
);
write_reg
(
x
.
fan
,
0x25
,
x
.
r25
,
1
);
write_reg
(
x
.
fan
,
0x00
,
x
.
r0
,
1
);
}
static
int
control_loop
(
void
*
dummy
)
{
{
schedule_work
(
&
poll_work
);
daemonize
(
"g4fand"
);
down
(
&
x
.
lock
);
setup_hardware
();
while
(
x
.
running
)
{
up
(
&
x
.
lock
);
set_current_state
(
TASK_INTERRUPTIBLE
);
schedule_timeout
(
8
*
HZ
);
down
(
&
x
.
lock
);
poll_temp
();
}
restore_regs
();
up
(
&
x
.
lock
);
complete_and_exit
(
&
x
.
completion
,
0
);
}
}
/************************************************************************/
/************************************************************************/
/* i2c probing and setup */
/* i2c probing and setup */
/************************************************************************/
/************************************************************************/
...
@@ -235,7 +313,20 @@ schedule_poll( unsigned long t )
...
@@ -235,7 +313,20 @@ schedule_poll( unsigned long t )
static
int
static
int
do_attach
(
struct
i2c_adapter
*
adapter
)
do_attach
(
struct
i2c_adapter
*
adapter
)
{
{
return
i2c_probe
(
adapter
,
&
addr_data
,
&
do_detect
);
int
ret
=
0
;
if
(
strncmp
(
adapter
->
name
,
"uni-n"
,
5
)
)
return
0
;
if
(
!
x
.
running
)
{
ret
=
i2c_probe
(
adapter
,
&
addr_data
,
&
do_probe
);
if
(
x
.
thermostat
&&
x
.
fan
)
{
x
.
running
=
1
;
init_completion
(
&
x
.
completion
);
x
.
poll_task
=
kernel_thread
(
control_loop
,
NULL
,
SIGCHLD
|
CLONE_KERNEL
);
}
}
return
ret
;
}
}
static
int
static
int
...
@@ -243,13 +334,23 @@ do_detach( struct i2c_client *client )
...
@@ -243,13 +334,23 @@ do_detach( struct i2c_client *client )
{
{
int
err
;
int
err
;
printk
(
"do_detach: id %d
\n
"
,
client
->
id
);
if
(
(
err
=
i2c_detach_client
(
client
))
)
if
(
(
err
=
i2c_detach_client
(
client
))
)
{
printk
(
KERN_ERR
"failed to detach thermostat client
\n
"
);
printk
(
"failed to detach thermostat client
\n
"
);
else
{
return
err
;
if
(
x
.
running
)
{
x
.
running
=
0
;
wait_for_completion
(
&
x
.
completion
);
}
if
(
client
==
x
.
thermostat
)
x
.
thermostat
=
NULL
;
else
if
(
client
==
x
.
fan
)
x
.
fan
=
NULL
;
else
{
printk
(
KERN_ERR
"g4fan: bad client
\n
"
);
}
}
kfree
(
client
);
kfree
(
client
);
return
0
;
}
return
err
;
}
}
static
struct
i2c_driver
g4fan_driver
=
{
static
struct
i2c_driver
g4fan_driver
=
{
...
@@ -262,24 +363,21 @@ static struct i2c_driver g4fan_driver = {
...
@@ -262,24 +363,21 @@ static struct i2c_driver g4fan_driver = {
};
};
static
int
static
int
detect
_fan
(
struct
i2c_client
*
cl
)
attach
_fan
(
struct
i2c_client
*
cl
)
{
{
if
(
x
.
fan
)
goto
out
;
/* check that this is an ADM1030 */
/* check that this is an ADM1030 */
if
(
read_reg
(
cl
,
0x3d
,
1
)
!=
0x30
||
read_reg
(
cl
,
0x3e
,
1
)
!=
0x41
)
if
(
read_reg
(
cl
,
0x3d
,
1
)
!=
0x30
||
read_reg
(
cl
,
0x3e
,
1
)
!=
0x41
)
goto
out
;
goto
out
;
printk
(
"ADM1030 fan controller
detected at %02x
\n
"
,
cl
->
addr
);
printk
(
"ADM1030 fan controller
[@%02x]
\n
"
,
cl
->
addr
);
if
(
x
.
fan
)
{
x
.
error
|=
2
;
goto
out
;
}
x
.
fan
=
cl
;
cl
->
id
=
FAN_CLIENT_ID
;
cl
->
id
=
FAN_CLIENT_ID
;
str
n
cpy
(
cl
->
name
,
"ADM1030 fan controller"
,
sizeof
(
cl
->
name
)
);
str
l
cpy
(
cl
->
name
,
"ADM1030 fan controller"
,
sizeof
(
cl
->
name
)
);
if
(
i2c_attach_client
(
cl
)
)
if
(
!
i2c_attach_client
(
cl
)
)
goto
out
;
x
.
fan
=
cl
;
return
0
;
out:
out:
if
(
cl
!=
x
.
fan
)
if
(
cl
!=
x
.
fan
)
kfree
(
cl
);
kfree
(
cl
);
...
@@ -287,10 +385,13 @@ detect_fan( struct i2c_client *cl )
...
@@ -287,10 +385,13 @@ detect_fan( struct i2c_client *cl )
}
}
static
int
static
int
detect
_thermostat
(
struct
i2c_client
*
cl
)
attach
_thermostat
(
struct
i2c_client
*
cl
)
{
{
int
hyst_temp
,
os_temp
,
temp
;
int
hyst_temp
,
os_temp
,
temp
;
if
(
x
.
thermostat
)
goto
out
;
if
(
(
temp
=
read_reg
(
cl
,
0
,
2
))
<
0
)
if
(
(
temp
=
read_reg
(
cl
,
0
,
2
))
<
0
)
goto
out
;
goto
out
;
...
@@ -302,44 +403,37 @@ detect_thermostat( struct i2c_client *cl )
...
@@ -302,44 +403,37 @@ detect_thermostat( struct i2c_client *cl )
if
(
hyst_temp
<
0
||
os_temp
<
0
)
if
(
hyst_temp
<
0
||
os_temp
<
0
)
goto
out
;
goto
out
;
printk
(
"DS1775 digital thermometer
detected at %02x
\n
"
,
cl
->
addr
);
printk
(
"DS1775 digital thermometer
[@%02x]
\n
"
,
cl
->
addr
);
print_temp
(
"Temp: "
,
temp
);
print_temp
(
"Temp: "
,
temp
);
print_temp
(
" Hyst: "
,
hyst_temp
);
print_temp
(
" Hyst: "
,
hyst_temp
);
print_temp
(
" OS: "
,
os_temp
);
print_temp
(
" OS: "
,
os_temp
);
printk
(
"
\n
"
);
printk
(
"
\n
"
);
if
(
x
.
thermostat
)
{
x
.
error
|=
1
;
goto
out
;
}
x
.
temp
=
temp
;
x
.
temp
=
temp
;
x
.
thermostat
=
cl
;
x
.
overheat_temp
=
os_temp
;
x
.
overheat_temp
=
os_temp
;
x
.
overheat_hyst
=
hyst_temp
;
x
.
overheat_hyst
=
hyst_temp
;
cl
->
id
=
THERMOSTAT_CLIENT_ID
;
cl
->
id
=
THERMOSTAT_CLIENT_ID
;
str
n
cpy
(
cl
->
name
,
"DS1775 thermostat"
,
sizeof
(
cl
->
name
)
);
str
l
cpy
(
cl
->
name
,
"DS1775 thermostat"
,
sizeof
(
cl
->
name
)
);
if
(
i2c_attach_client
(
cl
)
)
if
(
!
i2c_attach_client
(
cl
)
)
goto
out
;
x
.
thermostat
=
cl
;
return
0
;
out:
out:
if
(
cl
!=
x
.
thermostat
)
kfree
(
cl
);
kfree
(
cl
);
return
0
;
return
0
;
}
}
static
int
static
int
do_
detect
(
struct
i2c_adapter
*
adapter
,
int
addr
,
int
kind
)
do_
probe
(
struct
i2c_adapter
*
adapter
,
int
addr
,
int
kind
)
{
{
struct
i2c_client
*
cl
;
struct
i2c_client
*
cl
;
if
(
strncmp
(
adapter
->
name
,
"uni-n"
,
5
)
)
return
0
;
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_WORD_DATA
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_WORD_DATA
|
I2C_FUNC_SMBUS_WRITE_BYTE
)
)
|
I2C_FUNC_SMBUS_WRITE_BYTE
)
)
return
0
;
return
0
;
if
(
!
(
cl
=
kmalloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
))
)
if
(
!
(
cl
=
kmalloc
(
sizeof
(
*
cl
),
GFP_KERNEL
))
)
return
-
ENOMEM
;
return
-
ENOMEM
;
memset
(
cl
,
0
,
sizeof
(
struct
i2c_client
)
);
memset
(
cl
,
0
,
sizeof
(
struct
i2c_client
)
);
...
@@ -349,108 +443,94 @@ do_detect( struct i2c_adapter *adapter, int addr, int kind )
...
@@ -349,108 +443,94 @@ do_detect( struct i2c_adapter *adapter, int addr, int kind )
cl
->
flags
=
0
;
cl
->
flags
=
0
;
if
(
addr
<
0x48
)
if
(
addr
<
0x48
)
return
detect
_fan
(
cl
);
return
attach
_fan
(
cl
);
return
detect
_thermostat
(
cl
);
return
attach
_thermostat
(
cl
);
}
}
#define PRINT_REG( r ) printk("reg %02x = %02x\n", r, read_reg(x.fan, r, 1) )
/************************************************************************/
/* initialization / cleanup */
/************************************************************************/
static
int
therm_of_probe
(
struct
of_device
*
dev
,
const
struct
of_match
*
match
)
{
return
i2c_add_driver
(
&
g4fan_driver
);
}
static
int
therm_of_remove
(
struct
of_device
*
dev
)
{
return
i2c_del_driver
(
&
g4fan_driver
);
}
static
struct
of_match
therm_of_match
[]
=
{{
.
name
=
"fan"
,
.
type
=
OF_ANY_MATCH
,
.
compatible
=
"adm1030"
},
{}
};
static
struct
of_platform_driver
therm_of_driver
=
{
.
name
=
"temperature"
,
.
match_table
=
therm_of_match
,
.
probe
=
therm_of_probe
,
.
remove
=
therm_of_remove
,
};
struct
apple_thermal_info
{
u8
id
;
/* implementation ID */
u8
fan_count
;
/* number of fans */
u8
thermostat_count
;
/* number of thermostats */
u8
unused
;
};
static
int
__init
static
int
__init
g4fan_init
(
void
)
g4fan_init
(
void
)
{
{
struct
apple_thermal_info
*
info
;
struct
apple_thermal_info
*
info
;
struct
device_node
*
np
;
struct
device_node
*
np
;
int
ret
,
val
;
np
=
of_find_node_by_name
(
NULL
,
"power-mgt"
);
init_MUTEX
(
&
x
.
lock
);
if
(
np
==
NULL
)
if
(
!
(
np
=
of_find_node_by_name
(
NULL
,
"power-mgt"
))
)
return
-
ENODEV
;
return
-
ENODEV
;
info
=
(
struct
apple_thermal_info
*
)
get_property
(
np
,
"thermal-info"
,
NULL
);
info
=
(
struct
apple_thermal_info
*
)
get_property
(
np
,
"thermal-info"
,
NULL
);
of_node_put
(
np
);
of_node_put
(
np
);
if
(
info
==
NULL
)
if
(
!
info
||
!
machine_is_compatible
(
"PowerMac3,6"
)
)
return
-
ENODEV
;
return
-
ENODEV
;
/* check for G4 "Windtunnel" SMP */
if
(
machine_is_compatible
(
"PowerMac3,6"
)
)
{
if
(
info
->
id
!=
3
)
{
if
(
info
->
id
!=
3
)
{
printk
(
KERN_ERR
"g4fan: design id %d unknown
\n
"
,
info
->
id
);
printk
(
KERN_ERR
"therm_windtunnel: unsupported thermal design %d
\n
"
,
info
->
id
);
return
-
ENODEV
;
return
-
ENODEV
;
}
}
}
else
{
if
(
!
(
np
=
of_find_node_by_name
(
NULL
,
"fan"
))
)
printk
(
KERN_ERR
"g4fan: unsupported machine type
\n
"
);
return
-
ENODEV
;
return
-
ENODEV
;
}
x
.
of_dev
=
of_platform_device_create
(
np
,
"temperature"
);
if
(
(
ret
=
i2c_add_driver
(
&
g4fan_driver
))
)
of_node_put
(
np
);
return
ret
;
if
(
!
x
.
thermostat
||
!
x
.
fan
)
{
if
(
!
x
.
of_dev
)
{
i2c_del_driver
(
&
g4fan_driver
);
printk
(
KERN_ERR
"Can't register fan controller!
\n
"
);
return
-
ENODEV
;
return
-
ENODEV
;
}
}
/* save registers (if we unload the module) */
of_register_driver
(
&
therm_of_driver
);
x
.
r0
=
read_reg
(
x
.
fan
,
0x00
,
1
);
x
.
r1
=
read_reg
(
x
.
fan
,
0x01
,
1
);
x
.
r20
=
read_reg
(
x
.
fan
,
0x20
,
1
);
x
.
r23
=
read_reg
(
x
.
fan
,
0x23
,
1
);
x
.
r25
=
read_reg
(
x
.
fan
,
0x25
,
1
);
/* improve measurement resolution (convergence time 1.5s) */
if
(
(
val
=
read_reg
(
x
.
thermostat
,
1
,
1
))
>=
0
)
{
val
|=
0x60
;
if
(
write_reg
(
x
.
thermostat
,
1
,
val
,
1
)
)
printk
(
"Failed writing config register
\n
"
);
}
/* disable interrupts and TAC input */
write_reg
(
x
.
fan
,
0x01
,
0x01
,
1
);
/* enable filter */
write_reg
(
x
.
fan
,
0x23
,
0x91
,
1
);
/* remote temp. controls fan */
write_reg
(
x
.
fan
,
0x00
,
0x95
,
1
);
/* The thermostat (which besides measureing temperature controls
* has a THERM output which puts the fan on 100%) is usually
* set to kick in at 80 C (chip default). We reduce this a bit
* to be on the safe side (OSX doesn't)...
*/
if
(
x
.
overheat_temp
==
(
80
<<
8
)
)
{
x
.
overheat_temp
=
65
<<
8
;
x
.
overheat_hyst
=
60
<<
8
;
write_reg
(
x
.
thermostat
,
2
,
x
.
overheat_hyst
,
2
);
write_reg
(
x
.
thermostat
,
3
,
x
.
overheat_temp
,
2
);
print_temp
(
"Reducing overheating limit to "
,
x
.
overheat_temp
);
print_temp
(
" (Hyst: "
,
x
.
overheat_hyst
);
printk
(
")
\n
"
);
}
/* set an initial fan setting */
x
.
upind
=
x
.
downind
=
1
;
tune_fan
(
fan_up_table
[
x
.
upind
].
fan_setting
);
INIT_WORK
(
&
poll_work
,
poll_temp
,
NULL
);
init_timer
(
&
x
.
timer
);
x
.
timer
.
expires
=
jiffies
+
8
*
HZ
;
x
.
timer
.
function
=
schedule_poll
;
add_timer
(
&
x
.
timer
);
return
0
;
return
0
;
}
}
static
void
__exit
static
void
__exit
g4fan_exit
(
void
)
g4fan_exit
(
void
)
{
{
del_timer
(
&
x
.
tim
er
);
of_unregister_driver
(
&
therm_of_driv
er
);
write_reg
(
x
.
fan
,
0x01
,
x
.
r1
,
1
);
if
(
x
.
of_dev
)
write_reg
(
x
.
fan
,
0x20
,
x
.
r20
,
1
);
of_device_unregister
(
x
.
of_dev
);
write_reg
(
x
.
fan
,
0x23
,
x
.
r23
,
1
);
write_reg
(
x
.
fan
,
0x25
,
x
.
r25
,
1
);
write_reg
(
x
.
fan
,
0x00
,
x
.
r0
,
1
);
i2c_del_driver
(
&
g4fan_driver
);
}
}
module_init
(
g4fan_init
);
module_init
(
g4fan_init
);
module_exit
(
g4fan_exit
);
module_exit
(
g4fan_exit
);
MODULE_AUTHOR
(
"Samuel Rydh <samuel@ibrium.se>"
);
MODULE_DESCRIPTION
(
"Apple G4 (windtunnel) fan controller"
);
MODULE_LICENSE
(
"GPL"
);
drivers/scsi/scsi_transport_spi.c
View file @
33cc912c
...
@@ -33,7 +33,7 @@
...
@@ -33,7 +33,7 @@
#include <scsi/scsi_transport.h>
#include <scsi/scsi_transport.h>
#include <scsi/scsi_transport_spi.h>
#include <scsi/scsi_transport_spi.h>
#define SPI_PRINTK(x, l, f, a...) printk(l "scsi(%d:%d:%d:%d): " f, (x)->host->host_no, (x)->channel, (x)->id, (x)->lun, ##a)
#define SPI_PRINTK(x, l, f, a...) printk(l "scsi(%d:%d:%d:%d): " f, (x)->host->host_no, (x)->channel, (x)->id, (x)->lun
, ##a)
static
void
transport_class_release
(
struct
class_device
*
class_dev
);
static
void
transport_class_release
(
struct
class_device
*
class_dev
);
...
...
include/asm-x86_64/acpi.h
View file @
33cc912c
...
@@ -109,6 +109,8 @@ extern int acpi_strict;
...
@@ -109,6 +109,8 @@ extern int acpi_strict;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#define FIX_ACPI_PAGES 4
#define FIX_ACPI_PAGES 4
extern
int
acpi_gsi_to_irq
(
u32
gsi
,
unsigned
int
*
irq
);
#else
/* !CONFIG_ACPI_BOOT */
#else
/* !CONFIG_ACPI_BOOT */
#define acpi_lapic 0
#define acpi_lapic 0
#define acpi_ioapic 0
#define acpi_ioapic 0
...
...
include/asm-x86_64/calling.h
View file @
33cc912c
...
@@ -35,28 +35,28 @@
...
@@ -35,28 +35,28 @@
subq
$
9
*
8
+
\
addskip
,
%
rsp
subq
$
9
*
8
+
\
addskip
,
%
rsp
CFI_ADJUST_CFA_OFFSET
9
*
8
+
\
addskip
CFI_ADJUST_CFA_OFFSET
9
*
8
+
\
addskip
movq
%
rdi
,
8
*
8
(
%
rsp
)
movq
%
rdi
,
8
*
8
(
%
rsp
)
CFI_
OFFSET
rdi
,
8
*
8
-
(
9
*
8
+
\
addskip
)
CFI_
REL_OFFSET
rdi
,
8
*
8
movq
%
rsi
,
7
*
8
(
%
rsp
)
movq
%
rsi
,
7
*
8
(
%
rsp
)
CFI_
OFFSET
rsi
,
7
*
8
-
(
9
*
8
+
\
addskip
)
CFI_
REL_OFFSET
rsi
,
7
*
8
movq
%
rdx
,
6
*
8
(
%
rsp
)
movq
%
rdx
,
6
*
8
(
%
rsp
)
CFI_
OFFSET
rdx
,
6
*
8
-
(
9
*
8
+
\
addskip
)
CFI_
REL_OFFSET
rdx
,
6
*
8
.
if
\
norcx
.
if
\
norcx
.
else
.
else
movq
%
rcx
,
5
*
8
(
%
rsp
)
movq
%
rcx
,
5
*
8
(
%
rsp
)
CFI_
OFFSET
rcx
,
5
*
8
-
(
9
*
8
+
\
addskip
)
CFI_
REL_OFFSET
rcx
,
5
*
8
.
endif
.
endif
movq
%
rax
,
4
*
8
(
%
rsp
)
movq
%
rax
,
4
*
8
(
%
rsp
)
CFI_
OFFSET
rax
,
4
*
8
-
(
9
*
8
+
\
addskip
)
CFI_
REL_OFFSET
rax
,
4
*
8
.
if
\
nor891011
.
if
\
nor891011
.
else
.
else
movq
%
r8
,
3
*
8
(
%
rsp
)
movq
%
r8
,
3
*
8
(
%
rsp
)
CFI_
OFFSET
r8
,
3
*
8
-
(
9
*
8
+
\
addskip
)
CFI_
REL_OFFSET
r8
,
3
*
8
movq
%
r9
,
2
*
8
(
%
rsp
)
movq
%
r9
,
2
*
8
(
%
rsp
)
CFI_
OFFSET
r9
,
2
*
8
-
(
9
*
8
+
\
addskip
)
CFI_
REL_OFFSET
r9
,
2
*
8
movq
%
r10
,
1
*
8
(
%
rsp
)
movq
%
r10
,
1
*
8
(
%
rsp
)
CFI_
OFFSET
r10
,
1
*
8
-
(
9
*
8
+
\
addskip
)
CFI_
REL_OFFSET
r10
,
1
*
8
movq
%
r11
,(
%
rsp
)
movq
%
r11
,(
%
rsp
)
CFI_OFFSET
r11
,
-
(
9
*
8
+
\
addskip
)
CFI_OFFSET
r11
.
endif
.
endif
.
endm
.
endm
...
@@ -109,17 +109,17 @@
...
@@ -109,17 +109,17 @@
subq
$
REST_SKIP
,
%
rsp
subq
$
REST_SKIP
,
%
rsp
CFI_ADJUST_CFA_OFFSET
REST_SKIP
CFI_ADJUST_CFA_OFFSET
REST_SKIP
movq
%
rbx
,
5
*
8
(
%
rsp
)
movq
%
rbx
,
5
*
8
(
%
rsp
)
CFI_
OFFSET
rbx
,
5
*
8
-
(
REST_SKIP
)
CFI_
REL_OFFSET
rbx
,
5
*
8
movq
%
rbp
,
4
*
8
(
%
rsp
)
movq
%
rbp
,
4
*
8
(
%
rsp
)
CFI_
OFFSET
rbp
,
4
*
8
-
(
REST_SKIP
)
CFI_
REL_OFFSET
rbp
,
4
*
8
movq
%
r12
,
3
*
8
(
%
rsp
)
movq
%
r12
,
3
*
8
(
%
rsp
)
CFI_
OFFSET
r12
,
3
*
8
-
(
REST_SKIP
)
CFI_
REL_OFFSET
r12
,
3
*
8
movq
%
r13
,
2
*
8
(
%
rsp
)
movq
%
r13
,
2
*
8
(
%
rsp
)
CFI_
OFFSET
r13
,
2
*
8
-
(
REST_SKIP
)
CFI_
REL_OFFSET
r13
,
2
*
8
movq
%
r14
,
1
*
8
(
%
rsp
)
movq
%
r14
,
1
*
8
(
%
rsp
)
CFI_
OFFSET
r14
,
1
*
8
-
(
REST_SKIP
)
CFI_
REL_OFFSET
r14
,
1
*
8
movq
%
r15
,(
%
rsp
)
movq
%
r15
,(
%
rsp
)
CFI_
OFFSET
r15
,
0
*
8
-
(
REST_SKIP
)
CFI_
REL_OFFSET
r15
,
0
*
8
.
endm
.
endm
.
macro
RESTORE_REST
.
macro
RESTORE_REST
...
...
include/asm-x86_64/hardirq.h
View file @
33cc912c
...
@@ -78,6 +78,7 @@
...
@@ -78,6 +78,7 @@
#ifdef CONFIG_PREEMPT
#ifdef CONFIG_PREEMPT
# include <linux/smp_lock.h>
# define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != kernel_locked())
# define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != kernel_locked())
# define IRQ_EXIT_OFFSET (HARDIRQ_OFFSET-1)
# define IRQ_EXIT_OFFSET (HARDIRQ_OFFSET-1)
#else
#else
...
...
include/asm-x86_64/hpet.h
View file @
33cc912c
#ifndef _ASM_X8664_HPET_H
#ifndef _ASM_X8664_HPET_H
#define _ASM_X8664_HPET_H 1
#define _ASM_X8664_HPET_H 1
#include <linux/interrupt.h>
/*
/*
* Documentation on HPET can be found at:
* Documentation on HPET can be found at:
* http://www.intel.com/ial/home/sp/pcmmspec.htm
* http://www.intel.com/ial/home/sp/pcmmspec.htm
...
@@ -53,7 +51,6 @@ extern int hpet_set_alarm_time(unsigned char hrs, unsigned char min, unsigned ch
...
@@ -53,7 +51,6 @@ extern int hpet_set_alarm_time(unsigned char hrs, unsigned char min, unsigned ch
extern
int
hpet_set_periodic_freq
(
unsigned
long
freq
);
extern
int
hpet_set_periodic_freq
(
unsigned
long
freq
);
extern
int
hpet_rtc_dropped_irq
(
void
);
extern
int
hpet_rtc_dropped_irq
(
void
);
extern
int
hpet_rtc_timer_init
(
void
);
extern
int
hpet_rtc_timer_init
(
void
);
extern
irqreturn_t
hpet_rtc_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
#endif
/* CONFIG_HPET_EMULATE_RTC */
#endif
/* CONFIG_HPET_EMULATE_RTC */
#endif
#endif
include/asm-x86_64/mpspec.h
View file @
33cc912c
...
@@ -186,14 +186,14 @@ extern void mp_register_lapic (u8 id, u8 enabled);
...
@@ -186,14 +186,14 @@ extern void mp_register_lapic (u8 id, u8 enabled);
extern
void
mp_register_lapic_address
(
u64
address
);
extern
void
mp_register_lapic_address
(
u64
address
);
#ifdef CONFIG_X86_IO_APIC
#ifdef CONFIG_X86_IO_APIC
extern
void
mp_register_ioapic
(
u8
id
,
u32
address
,
u32
irq
_base
);
extern
void
mp_register_ioapic
(
u8
id
,
u32
address
,
u32
gsi
_base
);
extern
void
mp_override_legacy_irq
(
u8
bus_irq
,
u8
polarity
,
u8
trigger
,
u32
g
lobal_irq
);
extern
void
mp_override_legacy_irq
(
u8
bus_irq
,
u8
polarity
,
u8
trigger
,
u32
g
si
);
extern
void
mp_config_acpi_legacy_irqs
(
void
);
extern
void
mp_config_acpi_legacy_irqs
(
void
);
extern
void
mp_parse_prt
(
void
);
extern
void
mp_parse_prt
(
void
);
#endif
/*CONFIG_X86_IO_APIC*/
#endif
/*CONFIG_X86_IO_APIC*/
#endif
#endif
extern
void
mp_config_ioapic_for_sci
(
int
irq
);
extern
void
mp_config_ioapic_for_sci
(
u32
gsi
);
extern
int
using_apic_timer
;
extern
int
using_apic_timer
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment