提交 ba00003a 编写于 作者: L Linus Torvalds

Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
  [POWERPC] PReP fixup after irq changes
  [POWERPC] SPU fixup after irq changes
  [POWERPC] Fix up after irq changes
  [POWERPC] Fix iseries/smp.c for irq breakage
  [POWERPC] Fix viocons for irq breakage
  [POWERPC] Update iseries_defconfig
  [POWERPC] Fix fsl_soc build breaks
  [POWERPC] Minor fix for bootargs property
  [POWERPC] Update MTFSF_L() comment
  [POWERPC] Update pSeries defconfig for SATA
  [POWERPC] Don't get PCI IRQ from OF for devices with no IRQ
  [POWERPC] Fix zImage decompress location
  [POWERPC] linux,tce-size property is 32 bits
  [POWERPC] Add DTS for MPC8349E-mITX board
  [POWERPC] Fix harmless typo
  [PPC] Fix some irq breakage with ARCH=ppc
/*
* MPC8349E-mITX Device Tree Source
*
* Copyright 2006 Freescale Semiconductor Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
/ {
model = "MPC8349EMITX";
compatible = "MPC834xMITX";
#address-cells = <1>;
#size-cells = <1>;
cpus {
#cpus = <1>;
#address-cells = <1>;
#size-cells = <0>;
PowerPC,8349@0 {
device_type = "cpu";
reg = <0>;
d-cache-line-size = <20>;
i-cache-line-size = <20>;
d-cache-size = <8000>;
i-cache-size = <8000>;
timebase-frequency = <0>; // from bootloader
bus-frequency = <0>; // from bootloader
clock-frequency = <0>; // from bootloader
32-bit;
};
};
memory {
device_type = "memory";
reg = <00000000 10000000>;
};
soc8349@e0000000 {
#address-cells = <1>;
#size-cells = <1>;
#interrupt-cells = <2>;
device_type = "soc";
ranges = <0 e0000000 00100000>;
reg = <e0000000 00000200>;
bus-frequency = <0>; // from bootloader
wdt@200 {
device_type = "watchdog";
compatible = "mpc83xx_wdt";
reg = <200 100>;
};
i2c@3000 {
device_type = "i2c";
compatible = "fsl-i2c";
reg = <3000 100>;
interrupts = <e 8>;
interrupt-parent = <700>;
dfsrr;
};
i2c@3100 {
device_type = "i2c";
compatible = "fsl-i2c";
reg = <3100 100>;
interrupts = <f 8>;
interrupt-parent = <700>;
dfsrr;
};
spi@7000 {
device_type = "spi";
compatible = "mpc83xx_spi";
reg = <7000 1000>;
interrupts = <10 8>;
interrupt-parent = <700>;
mode = <0>;
};
usb@22000 {
device_type = "usb";
compatible = "fsl-usb2-mph";
reg = <22000 1000>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <700>;
interrupts = <27 2>;
phy_type = "ulpi";
port1;
};
usb@23000 {
device_type = "usb";
compatible = "fsl-usb2-dr";
reg = <23000 1000>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <700>;
interrupts = <26 2>;
phy_type = "ulpi";
};
mdio@24520 {
device_type = "mdio";
compatible = "gianfar";
reg = <24520 20>;
#address-cells = <1>;
#size-cells = <0>;
linux,phandle = <24520>;
/* Vitesse 8201 */
ethernet-phy@1c {
linux,phandle = <245201c>;
interrupt-parent = <700>;
interrupts = <12 2>;
reg = <1c>;
device_type = "ethernet-phy";
};
/* Vitesse 7385 */
ethernet-phy@1f {
linux,phandle = <245201f>;
interrupt-parent = <700>;
interrupts = <12 2>;
reg = <1f>;
device_type = "ethernet-phy";
};
};
ethernet@24000 {
device_type = "network";
model = "TSEC";
compatible = "gianfar";
reg = <24000 1000>;
address = [ 00 00 00 00 00 00 ];
local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <20 8 21 8 22 8>;
interrupt-parent = <700>;
phy-handle = <245201c>;
};
ethernet@25000 {
#address-cells = <1>;
#size-cells = <0>;
device_type = "network";
model = "TSEC";
compatible = "gianfar";
reg = <25000 1000>;
address = [ 00 00 00 00 00 00 ];
local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <23 8 24 8 25 8>;
interrupt-parent = <700>;
phy-handle = <245201f>;
};
serial@4500 {
device_type = "serial";
compatible = "ns16550";
reg = <4500 100>;
clock-frequency = <0>; // from bootloader
interrupts = <9 8>;
interrupt-parent = <700>;
};
serial@4600 {
device_type = "serial";
compatible = "ns16550";
reg = <4600 100>;
clock-frequency = <0>; // from bootloader
interrupts = <a 8>;
interrupt-parent = <700>;
};
pci@8500 {
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
/* IDSEL 0x10 - SATA */
8000 0 0 1 700 16 8 /* SATA_INTA */
>;
interrupt-parent = <700>;
interrupts = <42 8>;
bus-range = <0 0>;
ranges = <42000000 0 80000000 80000000 0 10000000
02000000 0 90000000 90000000 0 10000000
01000000 0 00000000 e2000000 0 01000000>;
clock-frequency = <3f940aa>;
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
reg = <8500 100>;
compatible = "83xx";
device_type = "pci";
};
pci@8600 {
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
/* IDSEL 0x0E - MiniPCI Slot */
7000 0 0 1 700 15 8 /* PCI_INTA */
/* IDSEL 0x0F - PCI Slot */
7800 0 0 1 700 14 8 /* PCI_INTA */
7800 0 0 2 700 15 8 /* PCI_INTB */
>;
interrupt-parent = <700>;
interrupts = <43 8>;
bus-range = <1 1>;
ranges = <42000000 0 a0000000 a0000000 0 10000000
02000000 0 b0000000 b0000000 0 10000000
01000000 0 00000000 e3000000 0 01000000>;
clock-frequency = <3f940aa>;
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
reg = <8600 100>;
compatible = "83xx";
device_type = "pci";
};
crypto@30000 {
device_type = "crypto";
model = "SEC2";
compatible = "talitos";
reg = <30000 10000>;
interrupts = <b 8>;
interrupt-parent = <700>;
num-channels = <4>;
channel-fifo-len = <18>;
exec-units-mask = <0000007e>;
descriptor-types-mask = <01010ebf>;
};
pic@700 {
linux,phandle = <700>;
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <2>;
reg = <700 100>;
built-in;
device_type = "ipic";
};
};
};
...@@ -176,12 +176,9 @@ static void *claim(unsigned long virt, unsigned long size, unsigned long align) ...@@ -176,12 +176,9 @@ static void *claim(unsigned long virt, unsigned long size, unsigned long align)
static void *of_try_claim(u32 size) static void *of_try_claim(u32 size)
{ {
unsigned long addr = 0; unsigned long addr = 0;
static u8 first_time = 1;
if (first_time) { if (claim_base == 0)
claim_base = _ALIGN_UP((unsigned long)_end, ONE_MB); claim_base = _ALIGN_UP((unsigned long)_end, ONE_MB);
first_time = 0;
}
for(; claim_base < RAM_END; claim_base += ONE_MB) { for(; claim_base < RAM_END; claim_base += ONE_MB) {
#ifdef DEBUG #ifdef DEBUG
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.18-rc6 # Linux kernel version: 2.6.19-rc1
# Sun Sep 10 10:22:57 2006 # Fri Oct 6 13:25:04 2006
# #
CONFIG_PPC64=y CONFIG_PPC64=y
CONFIG_64BIT=y CONFIG_64BIT=y
...@@ -22,6 +22,7 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y ...@@ -22,6 +22,7 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_PPC_OF=y CONFIG_PPC_OF=y
# CONFIG_PPC_UDBG_16550 is not set # CONFIG_PPC_UDBG_16550 is not set
# CONFIG_GENERIC_TBSYNC is not set # CONFIG_GENERIC_TBSYNC is not set
CONFIG_AUDIT_ARCH=y
# CONFIG_DEFAULT_UIMAGE is not set # CONFIG_DEFAULT_UIMAGE is not set
# #
...@@ -52,10 +53,11 @@ CONFIG_LOCALVERSION="" ...@@ -52,10 +53,11 @@ CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y CONFIG_SWAP=y
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set # CONFIG_TASKSTATS is not set
CONFIG_SYSCTL=y # CONFIG_UTS_NS is not set
CONFIG_AUDIT=y CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y CONFIG_AUDITSYSCALL=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
...@@ -64,7 +66,9 @@ CONFIG_IKCONFIG_PROC=y ...@@ -64,7 +66,9 @@ CONFIG_IKCONFIG_PROC=y
# CONFIG_RELAY is not set # CONFIG_RELAY is not set
CONFIG_INITRAMFS_SOURCE="" CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set # CONFIG_EMBEDDED is not set
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set
...@@ -73,12 +77,12 @@ CONFIG_PRINTK=y ...@@ -73,12 +77,12 @@ CONFIG_PRINTK=y
CONFIG_BUG=y CONFIG_BUG=y
CONFIG_ELF_CORE=y CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y CONFIG_BASE_FULL=y
CONFIG_RT_MUTEXES=y
CONFIG_FUTEX=y CONFIG_FUTEX=y
CONFIG_EPOLL=y CONFIG_EPOLL=y
CONFIG_SHMEM=y CONFIG_SHMEM=y
CONFIG_SLAB=y CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set # CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0 CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set # CONFIG_SLOB is not set
...@@ -97,6 +101,7 @@ CONFIG_STOP_MACHINE=y ...@@ -97,6 +101,7 @@ CONFIG_STOP_MACHINE=y
# #
# Block layer # Block layer
# #
CONFIG_BLOCK=y
# CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_BLK_DEV_IO_TRACE is not set
# #
...@@ -115,13 +120,18 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" ...@@ -115,13 +120,18 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# #
# Platform support # Platform support
# #
# CONFIG_PPC_MULTIPLATFORM is not set CONFIG_PPC_MULTIPLATFORM=y
CONFIG_PPC_ISERIES=y
# CONFIG_EMBEDDED6xx is not set # CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set # CONFIG_APUS is not set
# CONFIG_PPC_PSERIES is not set
CONFIG_PPC_ISERIES=y
# CONFIG_PPC_PMAC is not set
# CONFIG_PPC_MAPLE is not set
# CONFIG_PPC_PASEMI is not set
# CONFIG_PPC_CELL is not set # CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set # CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_UDBG_RTAS_CONSOLE is not set # CONFIG_PPC_IBM_CELL_BLADE is not set
# CONFIG_U3_DART is not set
# CONFIG_PPC_RTAS is not set # CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set # CONFIG_MMIO_NVRAM is not set
CONFIG_IBMVIO=y CONFIG_IBMVIO=y
...@@ -147,12 +157,15 @@ CONFIG_BINFMT_ELF=y ...@@ -147,12 +157,15 @@ CONFIG_BINFMT_ELF=y
CONFIG_FORCE_MAX_ZONEORDER=13 CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y CONFIG_IOMMU_VMERGE=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_IRQ_ALL_CPUS=y CONFIG_IRQ_ALL_CPUS=y
CONFIG_LPARCFG=y CONFIG_LPARCFG=y
# CONFIG_NUMA is not set # CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_DISCONTIGMEM_MANUAL is not set
...@@ -179,6 +192,7 @@ CONFIG_GENERIC_ISA_DMA=y ...@@ -179,6 +192,7 @@ CONFIG_GENERIC_ISA_DMA=y
CONFIG_PCI=y CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y
# CONFIG_PCIEPORTBUS is not set # CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_MULTITHREAD_PROBE is not set
# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_DEBUG is not set
# #
...@@ -206,6 +220,7 @@ CONFIG_PACKET=y ...@@ -206,6 +220,7 @@ CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_XFRM=y CONFIG_XFRM=y
CONFIG_XFRM_USER=m CONFIG_XFRM_USER=m
CONFIG_XFRM_SUB_POLICY=y
CONFIG_NET_KEY=m CONFIG_NET_KEY=m
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
...@@ -224,10 +239,12 @@ CONFIG_INET_XFRM_TUNNEL=m ...@@ -224,10 +239,12 @@ CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=y CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_DIAG=y CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set # CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# #
# IP: Virtual Server Configuration # IP: Virtual Server Configuration
...@@ -247,6 +264,7 @@ CONFIG_NETFILTER=y ...@@ -247,6 +264,7 @@ CONFIG_NETFILTER=y
CONFIG_NETFILTER_XTABLES=m CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
...@@ -255,6 +273,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m ...@@ -255,6 +273,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set # CONFIG_NETFILTER_XT_MATCH_DCCP is not set
CONFIG_NETFILTER_XT_MATCH_DSCP=m
# CONFIG_NETFILTER_XT_MATCH_ESP is not set # CONFIG_NETFILTER_XT_MATCH_ESP is not set
CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m
...@@ -294,7 +313,6 @@ CONFIG_IP_NF_MATCH_IPRANGE=m ...@@ -294,7 +313,6 @@ CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
# CONFIG_IP_NF_MATCH_AH is not set # CONFIG_IP_NF_MATCH_AH is not set
CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m CONFIG_IP_NF_MATCH_OWNER=m
...@@ -319,7 +337,6 @@ CONFIG_IP_NF_NAT_AMANDA=m ...@@ -319,7 +337,6 @@ CONFIG_IP_NF_NAT_AMANDA=m
CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m CONFIG_IP_NF_RAW=m
...@@ -351,7 +368,6 @@ CONFIG_LLC=y ...@@ -351,7 +368,6 @@ CONFIG_LLC=y
# CONFIG_ATALK 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_ECONET is not set # CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
...@@ -433,6 +449,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -433,6 +449,7 @@ CONFIG_BLK_DEV_INITRD=y
# #
# CONFIG_RAID_ATTRS is not set # CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y CONFIG_SCSI=y
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y CONFIG_SCSI_PROC_FS=y
# #
...@@ -454,12 +471,14 @@ CONFIG_SCSI_CONSTANTS=y ...@@ -454,12 +471,14 @@ CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set # CONFIG_SCSI_LOGGING is not set
# #
# SCSI Transport Attributes # SCSI Transports
# #
CONFIG_SCSI_SPI_ATTRS=y CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set CONFIG_SCSI_SAS_ATTRS=m
CONFIG_SCSI_SAS_LIBSAS=m
CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
# #
# SCSI low-level drivers # SCSI low-level drivers
...@@ -472,10 +491,11 @@ CONFIG_SCSI_FC_ATTRS=y ...@@ -472,10 +491,11 @@ CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set # CONFIG_MEGARAID_SAS is not set
# CONFIG_ATA is not set
# CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DMX3191D is not set
...@@ -486,15 +506,21 @@ CONFIG_SCSI_FC_ATTRS=y ...@@ -486,15 +506,21 @@ CONFIG_SCSI_FC_ATTRS=y
CONFIG_SCSI_IBMVSCSI=m CONFIG_SCSI_IBMVSCSI=m
# CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_DEBUG is not set
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
# CONFIG_ATA is not set
# #
# Multi-device support (RAID and LVM) # Multi-device support (RAID and LVM)
# #
...@@ -508,6 +534,7 @@ CONFIG_MD_RAID10=m ...@@ -508,6 +534,7 @@ CONFIG_MD_RAID10=m
CONFIG_MD_MULTIPATH=m CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=y CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
CONFIG_DM_CRYPT=m CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
...@@ -573,6 +600,7 @@ CONFIG_MII=y ...@@ -573,6 +600,7 @@ CONFIG_MII=y
# CONFIG_HP100 is not set # CONFIG_HP100 is not set
CONFIG_NET_PCI=y CONFIG_NET_PCI=y
CONFIG_PCNET32=y CONFIG_PCNET32=y
CONFIG_PCNET32_NAPI=y
# CONFIG_AMD8111_ETH is not set # CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set # CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set # CONFIG_B44 is not set
...@@ -610,6 +638,7 @@ CONFIG_E1000=m ...@@ -610,6 +638,7 @@ CONFIG_E1000=m
# CONFIG_VIA_VELOCITY is not set # CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set # CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set # CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# #
# Ethernet (10000 Mbit) # Ethernet (10000 Mbit)
...@@ -649,6 +678,7 @@ CONFIG_PPP_BSDCOMP=m ...@@ -649,6 +678,7 @@ CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set # CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m CONFIG_PPPOE=m
# CONFIG_SLIP is not set # CONFIG_SLIP is not set
CONFIG_SLHC=m
# 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 CONFIG_NETCONSOLE=y
...@@ -671,6 +701,7 @@ CONFIG_NET_POLL_CONTROLLER=y ...@@ -671,6 +701,7 @@ CONFIG_NET_POLL_CONTROLLER=y
# Input device support # Input device support
# #
CONFIG_INPUT=y CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# #
# Userland interfaces # Userland interfaces
...@@ -774,12 +805,12 @@ CONFIG_MAX_RAW_DEVS=256 ...@@ -774,12 +805,12 @@ CONFIG_MAX_RAW_DEVS=256
# #
# Misc devices # Misc devices
# #
# CONFIG_TIFM_CORE is not set
# #
# Multimedia devices # Multimedia devices
# #
# CONFIG_VIDEO_DEV is not set # CONFIG_VIDEO_DEV is not set
CONFIG_VIDEO_V4L2=y
# #
# Digital Video Broadcasting Devices # Digital Video Broadcasting Devices
...@@ -893,6 +924,9 @@ CONFIG_XFS_FS=m ...@@ -893,6 +924,9 @@ CONFIG_XFS_FS=m
CONFIG_XFS_SECURITY=y CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set # CONFIG_XFS_RT is not set
CONFIG_GFS2_FS=m
CONFIG_GFS2_FS_LOCKING_NOLOCK=m
CONFIG_GFS2_FS_LOCKING_DLM=m
# CONFIG_OCFS2_FS is not set # CONFIG_OCFS2_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
...@@ -929,12 +963,14 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" ...@@ -929,12 +963,14 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# #
CONFIG_PROC_FS=y CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y CONFIG_SYSFS=y
CONFIG_TMPFS=y CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLBFS is not set # CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set # CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set CONFIG_CONFIGFS_FS=m
# #
# Miscellaneous filesystems # Miscellaneous filesystems
...@@ -988,6 +1024,7 @@ CONFIG_CIFS_POSIX=y ...@@ -988,6 +1024,7 @@ CONFIG_CIFS_POSIX=y
# CONFIG_CODA_FS is not set # CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set # CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set # CONFIG_9P_FS is not set
CONFIG_GENERIC_ACL=y
# #
# Partition Types # Partition Types
...@@ -1039,6 +1076,12 @@ CONFIG_NLS_ISO8859_1=y ...@@ -1039,6 +1076,12 @@ CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_KOI8_U is not set # CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set # CONFIG_NLS_UTF8 is not set
#
# Distributed Lock Manager
#
CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set
# #
# iSeries device drivers # iSeries device drivers
# #
...@@ -1073,6 +1116,7 @@ CONFIG_PLIST=y ...@@ -1073,6 +1116,7 @@ CONFIG_PLIST=y
# Kernel hacking # Kernel hacking
# #
# CONFIG_PRINTK_TIME is not set # CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set # CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
...@@ -1091,6 +1135,7 @@ CONFIG_DETECT_SOFTLOCKUP=y ...@@ -1091,6 +1135,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_FORCED_INLINING is not set # CONFIG_FORCED_INLINING is not set
# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set
CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y
...@@ -1109,6 +1154,10 @@ CONFIG_IRQSTACKS=y ...@@ -1109,6 +1154,10 @@ CONFIG_IRQSTACKS=y
# Cryptographic options # Cryptographic options
# #
CONFIG_CRYPTO=y CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD4=m
...@@ -1118,9 +1167,12 @@ CONFIG_CRYPTO_SHA256=m ...@@ -1118,9 +1167,12 @@ CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5=m
......
...@@ -506,7 +506,7 @@ CONFIG_SCSI_SAS_ATTRS=m ...@@ -506,7 +506,7 @@ CONFIG_SCSI_SAS_ATTRS=m
# CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set # CONFIG_MEGARAID_SAS is not set
# CONFIG_ATA is not set CONFIG_ATA=y
# CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DMX3191D is not set
......
...@@ -319,7 +319,7 @@ EXPORT_SYMBOL(ibmebus_unregister_driver); ...@@ -319,7 +319,7 @@ EXPORT_SYMBOL(ibmebus_unregister_driver);
int ibmebus_request_irq(struct ibmebus_dev *dev, int ibmebus_request_irq(struct ibmebus_dev *dev,
u32 ist, u32 ist,
irqreturn_t (*handler)(int, void*, struct pt_regs *), irqreturn_t (*handler)(int, void*),
unsigned long irq_flags, const char * devname, unsigned long irq_flags, const char * devname,
void *dev_id) void *dev_id)
{ {
......
...@@ -75,7 +75,7 @@ static unsigned long iommu_range_alloc(struct iommu_table *tbl, ...@@ -75,7 +75,7 @@ static unsigned long iommu_range_alloc(struct iommu_table *tbl,
/* This allocator was derived from x86_64's bit string search */ /* This allocator was derived from x86_64's bit string search */
/* Sanity check */ /* Sanity check */
if (unlikely(npages) == 0) { if (unlikely(npages == 0)) {
if (printk_ratelimit()) if (printk_ratelimit())
WARN_ON(1); WARN_ON(1);
return DMA_ERROR_CODE; return DMA_ERROR_CODE;
......
...@@ -217,7 +217,7 @@ void do_IRQ(struct pt_regs *regs) ...@@ -217,7 +217,7 @@ void do_IRQ(struct pt_regs *regs)
* The value -2 is for buggy hardware and means that this IRQ * The value -2 is for buggy hardware and means that this IRQ
* has already been handled. -- Tom * has already been handled. -- Tom
*/ */
irq = ppc_md.get_irq(regs); irq = ppc_md.get_irq();
if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) { if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) {
#ifdef CONFIG_IRQSTACKS #ifdef CONFIG_IRQSTACKS
......
...@@ -724,7 +724,7 @@ static int __init early_init_dt_scan_chosen(unsigned long node, ...@@ -724,7 +724,7 @@ static int __init early_init_dt_scan_chosen(unsigned long node,
strlcpy(cmd_line, p, min((int)l, COMMAND_LINE_SIZE)); strlcpy(cmd_line, p, min((int)l, COMMAND_LINE_SIZE));
#ifdef CONFIG_CMDLINE #ifdef CONFIG_CMDLINE
if (l == 0 || (l == 1 && (*p) == 0)) if (p == NULL || l == 0 || (l == 1 && (*p) == 0))
strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
#endif /* CONFIG_CMDLINE */ #endif /* CONFIG_CMDLINE */
......
...@@ -914,6 +914,17 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq) ...@@ -914,6 +914,17 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
u8 pin; u8 pin;
int rc; int rc;
/* We need to first check if the PCI device has a PCI interrupt at all
* since we have cases where the device-node might expose non-PCI
* interrupts, but the device has no PCI interrupt to it
*/
rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin);
if (rc != 0)
return rc;
/* No pin, exit */
if (pin == 0)
return -ENODEV;
/* Check if we have a device node, if yes, fallback to standard OF /* Check if we have a device node, if yes, fallback to standard OF
* parsing * parsing
*/ */
...@@ -925,12 +936,6 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq) ...@@ -925,12 +936,6 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
* interrupt spec. we assume #interrupt-cells is 1, which is standard * interrupt spec. we assume #interrupt-cells is 1, which is standard
* for PCI. If you do different, then don't use that routine. * for PCI. If you do different, then don't use that routine.
*/ */
rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin);
if (rc != 0)
return rc;
/* No pin, exit */
if (pin == 0)
return -ENODEV;
/* Now we walk up the PCI tree */ /* Now we walk up the PCI tree */
lspec = pin; lspec = pin;
......
...@@ -706,7 +706,7 @@ void timer_interrupt(struct pt_regs * regs) ...@@ -706,7 +706,7 @@ void timer_interrupt(struct pt_regs * regs)
#ifdef CONFIG_PPC_ISERIES #ifdef CONFIG_PPC_ISERIES
if (hvlpevent_is_pending()) if (hvlpevent_is_pending())
process_hvlpevents(regs); process_hvlpevents();
#endif #endif
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
......
...@@ -384,8 +384,7 @@ struct hw_interrupt_type m82xx_pci_ic = { ...@@ -384,8 +384,7 @@ struct hw_interrupt_type m82xx_pci_ic = {
}; };
static void static void
m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc, m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc)
struct pt_regs *regs)
{ {
unsigned long stat, mask, pend; unsigned long stat, mask, pend;
int bit; int bit;
...@@ -398,7 +397,7 @@ m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc, ...@@ -398,7 +397,7 @@ m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc,
break; break;
for (bit = 0; pend != 0; ++bit, pend <<= 1) { for (bit = 0; pend != 0; ++bit, pend <<= 1) {
if (pend & 0x80000000) if (pend & 0x80000000)
__do_IRQ(pci_int_base + bit, regs); __do_IRQ(pci_int_base + bit);
} }
} }
} }
......
...@@ -66,12 +66,11 @@ mpc85xx_pcibios_fixup(void) ...@@ -66,12 +66,11 @@ mpc85xx_pcibios_fixup(void)
#ifdef CONFIG_CPM2 #ifdef CONFIG_CPM2
static void cpm2_cascade(unsigned int irq, struct irq_desc *desc, static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
struct pt_regs *regs)
{ {
int cascade_irq; int cascade_irq;
while ((cascade_irq = cpm2_get_irq(regs)) >= 0) { while ((cascade_irq = cpm2_get_irq()) >= 0) {
generic_handle_irq(cascade_irq); generic_handle_irq(cascade_irq);
} }
desc->chip->eoi(irq); desc->chip->eoi(irq);
......
...@@ -132,10 +132,9 @@ mpc85xx_cds_pcibios_fixup(void) ...@@ -132,10 +132,9 @@ mpc85xx_cds_pcibios_fixup(void)
#ifdef CONFIG_PPC_I8259 #ifdef CONFIG_PPC_I8259
#warning The i8259 PIC support is currently broken #warning The i8259 PIC support is currently broken
static void mpc85xx_8259_cascade(unsigned int irq, struct static void mpc85xx_8259_cascade(unsigned int irq, struct irq_desc *desc)
irq_desc *desc, struct pt_regs *regs)
{ {
unsigned int cascade_irq = i8259_irq(regs); unsigned int cascade_irq = i8259_irq();
if (cascade_irq != NO_IRQ) if (cascade_irq != NO_IRQ)
generic_handle_irq(cascade_irq); generic_handle_irq(cascade_irq);
...@@ -150,8 +149,10 @@ void __init mpc85xx_cds_pic_init(void) ...@@ -150,8 +149,10 @@ void __init mpc85xx_cds_pic_init(void)
struct mpic *mpic; struct mpic *mpic;
struct resource r; struct resource r;
struct device_node *np = NULL; struct device_node *np = NULL;
#ifdef CONFIG_PPC_I8259
struct device_node *cascade_node = NULL; struct device_node *cascade_node = NULL;
int cascade_irq; int cascade_irq;
#endif
np = of_find_node_by_type(np, "open-pic"); np = of_find_node_by_type(np, "open-pic");
......
...@@ -53,10 +53,9 @@ unsigned long pci_dram_offset = 0; ...@@ -53,10 +53,9 @@ unsigned long pci_dram_offset = 0;
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc, static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc)
struct pt_regs *regs)
{ {
unsigned int cascade_irq = i8259_irq(regs); unsigned int cascade_irq = i8259_irq();
if (cascade_irq != NO_IRQ) if (cascade_irq != NO_IRQ)
generic_handle_irq(cascade_irq); generic_handle_irq(cascade_irq);
desc->chip->eoi(irq); desc->chip->eoi(irq);
......
...@@ -98,8 +98,7 @@ static void iic_ioexc_eoi(unsigned int irq) ...@@ -98,8 +98,7 @@ static void iic_ioexc_eoi(unsigned int irq)
{ {
} }
static void iic_ioexc_cascade(unsigned int irq, struct irq_desc *desc, static void iic_ioexc_cascade(unsigned int irq, struct irq_desc *desc)
struct pt_regs *regs)
{ {
struct cbe_iic_regs __iomem *node_iic = (void __iomem *)desc->handler_data; struct cbe_iic_regs __iomem *node_iic = (void __iomem *)desc->handler_data;
unsigned int base = (irq & 0xffffff00) | IIC_IRQ_TYPE_IOEXC; unsigned int base = (irq & 0xffffff00) | IIC_IRQ_TYPE_IOEXC;
...@@ -140,7 +139,7 @@ static struct irq_chip iic_ioexc_chip = { ...@@ -140,7 +139,7 @@ static struct irq_chip iic_ioexc_chip = {
}; };
/* Get an IRQ number from the pending state register of the IIC */ /* Get an IRQ number from the pending state register of the IIC */
static unsigned int iic_get_irq(struct pt_regs *regs) static unsigned int iic_get_irq(void)
{ {
struct cbe_iic_pending_bits pending; struct cbe_iic_pending_bits pending;
struct iic *iic; struct iic *iic;
......
...@@ -147,7 +147,7 @@ static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr) ...@@ -147,7 +147,7 @@ static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr)
} }
static irqreturn_t static irqreturn_t
spu_irq_class_0(int irq, void *data, struct pt_regs *regs) spu_irq_class_0(int irq, void *data)
{ {
struct spu *spu; struct spu *spu;
...@@ -186,7 +186,7 @@ spu_irq_class_0_bottom(struct spu *spu) ...@@ -186,7 +186,7 @@ spu_irq_class_0_bottom(struct spu *spu)
EXPORT_SYMBOL_GPL(spu_irq_class_0_bottom); EXPORT_SYMBOL_GPL(spu_irq_class_0_bottom);
static irqreturn_t static irqreturn_t
spu_irq_class_1(int irq, void *data, struct pt_regs *regs) spu_irq_class_1(int irq, void *data)
{ {
struct spu *spu; struct spu *spu;
unsigned long stat, mask, dar, dsisr; unsigned long stat, mask, dar, dsisr;
...@@ -224,7 +224,7 @@ spu_irq_class_1(int irq, void *data, struct pt_regs *regs) ...@@ -224,7 +224,7 @@ spu_irq_class_1(int irq, void *data, struct pt_regs *regs)
EXPORT_SYMBOL_GPL(spu_irq_class_1_bottom); EXPORT_SYMBOL_GPL(spu_irq_class_1_bottom);
static irqreturn_t static irqreturn_t
spu_irq_class_2(int irq, void *data, struct pt_regs *regs) spu_irq_class_2(int irq, void *data)
{ {
struct spu *spu; struct spu *spu;
unsigned long stat; unsigned long stat;
......
...@@ -70,7 +70,7 @@ unsigned long event_scan_interval; ...@@ -70,7 +70,7 @@ unsigned long event_scan_interval;
* has to include <linux/interrupt.h> (to get irqreturn_t), which * has to include <linux/interrupt.h> (to get irqreturn_t), which
* causes all sorts of problems. -- paulus * causes all sorts of problems. -- paulus
*/ */
extern irqreturn_t xmon_irq(int, void *, struct pt_regs *); extern irqreturn_t xmon_irq(int, void *);
extern unsigned long loops_per_jiffy; extern unsigned long loops_per_jiffy;
...@@ -335,10 +335,9 @@ chrp_event_scan(unsigned long unused) ...@@ -335,10 +335,9 @@ chrp_event_scan(unsigned long unused)
jiffies + event_scan_interval); jiffies + event_scan_interval);
} }
static void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc, static void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc)
struct pt_regs *regs)
{ {
unsigned int cascade_irq = i8259_irq(regs); unsigned int cascade_irq = i8259_irq();
if (cascade_irq != NO_IRQ) if (cascade_irq != NO_IRQ)
generic_handle_irq(cascade_irq); generic_handle_irq(cascade_irq);
desc->chip->eoi(irq); desc->chip->eoi(irq);
......
...@@ -61,8 +61,7 @@ pci_dram_offset = MPC7448_HPC2_PCI_MEM_OFFSET; ...@@ -61,8 +61,7 @@ pci_dram_offset = MPC7448_HPC2_PCI_MEM_OFFSET;
extern int tsi108_setup_pci(struct device_node *dev); extern int tsi108_setup_pci(struct device_node *dev);
extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);
extern void tsi108_pci_int_init(void); extern void tsi108_pci_int_init(void);
extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc, extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc);
struct pt_regs *regs);
int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn) int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn)
{ {
...@@ -200,7 +199,7 @@ static void __init mpc7448_hpc2_init_IRQ(void) ...@@ -200,7 +199,7 @@ static void __init mpc7448_hpc2_init_IRQ(void)
tsi_pic = of_find_node_by_type(NULL, "open-pic"); tsi_pic = of_find_node_by_type(NULL, "open-pic");
if (tsi_pic) { if (tsi_pic) {
unsigned int size; unsigned int size;
void *prop = get_property(tsi_pic, "reg", &size); const void *prop = get_property(tsi_pic, "reg", &size);
mpic_paddr = of_translate_address(tsi_pic, prop); mpic_paddr = of_translate_address(tsi_pic, prop);
} }
......
...@@ -43,10 +43,7 @@ ...@@ -43,10 +43,7 @@
#include "irq.h" #include "irq.h"
#include "pci.h" #include "pci.h"
#include "call_pci.h" #include "call_pci.h"
#include "smp.h"
#if defined(CONFIG_SMP)
extern void iSeries_smp_message_recv(struct pt_regs *);
#endif
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
...@@ -88,7 +85,7 @@ static DEFINE_SPINLOCK(pending_irqs_lock); ...@@ -88,7 +85,7 @@ static DEFINE_SPINLOCK(pending_irqs_lock);
static int num_pending_irqs; static int num_pending_irqs;
static int pending_irqs[NR_IRQS]; static int pending_irqs[NR_IRQS];
static void int_received(struct pci_event *event, struct pt_regs *regs) static void int_received(struct pci_event *event)
{ {
int irq; int irq;
...@@ -146,11 +143,11 @@ static void int_received(struct pci_event *event, struct pt_regs *regs) ...@@ -146,11 +143,11 @@ static void int_received(struct pci_event *event, struct pt_regs *regs)
} }
} }
static void pci_event_handler(struct HvLpEvent *event, struct pt_regs *regs) static void pci_event_handler(struct HvLpEvent *event)
{ {
if (event && (event->xType == HvLpEvent_Type_PciIo)) { if (event && (event->xType == HvLpEvent_Type_PciIo)) {
if (hvlpevent_is_int(event)) if (hvlpevent_is_int(event))
int_received((struct pci_event *)event, regs); int_received((struct pci_event *)event);
else else
printk(KERN_ERR printk(KERN_ERR
"pci_event_handler: unexpected ack received\n"); "pci_event_handler: unexpected ack received\n");
...@@ -308,18 +305,18 @@ int __init iSeries_allocate_IRQ(HvBusNumber bus, ...@@ -308,18 +305,18 @@ int __init iSeries_allocate_IRQ(HvBusNumber bus,
/* /*
* Get the next pending IRQ. * Get the next pending IRQ.
*/ */
unsigned int iSeries_get_irq(struct pt_regs *regs) unsigned int iSeries_get_irq(void)
{ {
int irq = NO_IRQ_IGNORE; int irq = NO_IRQ_IGNORE;
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
if (get_lppaca()->int_dword.fields.ipi_cnt) { if (get_lppaca()->int_dword.fields.ipi_cnt) {
get_lppaca()->int_dword.fields.ipi_cnt = 0; get_lppaca()->int_dword.fields.ipi_cnt = 0;
iSeries_smp_message_recv(regs); iSeries_smp_message_recv();
} }
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
if (hvlpevent_is_pending()) if (hvlpevent_is_pending())
process_hvlpevents(regs); process_hvlpevents();
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
if (num_pending_irqs) { if (num_pending_irqs) {
......
...@@ -4,6 +4,6 @@ ...@@ -4,6 +4,6 @@
extern void iSeries_init_IRQ(void); extern void iSeries_init_IRQ(void);
extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32); extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32);
extern void iSeries_activate_IRQs(void); extern void iSeries_activate_IRQs(void);
extern unsigned int iSeries_get_irq(struct pt_regs *); extern unsigned int iSeries_get_irq(void);
#endif /* _ISERIES_IRQ_H */ #endif /* _ISERIES_IRQ_H */
...@@ -116,7 +116,7 @@ static void hvlpevent_clear_valid(struct HvLpEvent * event) ...@@ -116,7 +116,7 @@ static void hvlpevent_clear_valid(struct HvLpEvent * event)
hvlpevent_invalidate(event); hvlpevent_invalidate(event);
} }
void process_hvlpevents(struct pt_regs *regs) void process_hvlpevents(void)
{ {
struct HvLpEvent * event; struct HvLpEvent * event;
...@@ -144,7 +144,7 @@ void process_hvlpevents(struct pt_regs *regs) ...@@ -144,7 +144,7 @@ void process_hvlpevents(struct pt_regs *regs)
__get_cpu_var(hvlpevent_counts)[event->xType]++; __get_cpu_var(hvlpevent_counts)[event->xType]++;
if (event->xType < HvLpEvent_Type_NumTypes && if (event->xType < HvLpEvent_Type_NumTypes &&
lpEventHandler[event->xType]) lpEventHandler[event->xType])
lpEventHandler[event->xType](event, regs); lpEventHandler[event->xType](event);
else else
printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType ); printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType );
......
...@@ -513,7 +513,7 @@ static void handle_ack(struct io_mf_lp_event *event) ...@@ -513,7 +513,7 @@ static void handle_ack(struct io_mf_lp_event *event)
* parse it enough to know if it is an interrupt or an * parse it enough to know if it is an interrupt or an
* acknowledge. * acknowledge.
*/ */
static void hv_handler(struct HvLpEvent *event, struct pt_regs *regs) static void hv_handler(struct HvLpEvent *event)
{ {
if ((event != NULL) && (event->xType == HvLpEvent_Type_MachineFac)) { if ((event != NULL) && (event->xType == HvLpEvent_Type_MachineFac)) {
if (hvlpevent_is_ack(event)) if (hvlpevent_is_ack(event))
...@@ -847,7 +847,7 @@ static int mf_get_boot_rtc(struct rtc_time *tm) ...@@ -847,7 +847,7 @@ static int mf_get_boot_rtc(struct rtc_time *tm)
/* We need to poll here as we are not yet taking interrupts */ /* We need to poll here as we are not yet taking interrupts */
while (rtc_data.busy) { while (rtc_data.busy) {
if (hvlpevent_is_pending()) if (hvlpevent_is_pending())
process_hvlpevents(NULL); process_hvlpevents();
} }
return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm); return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm);
} }
......
...@@ -43,9 +43,11 @@ ...@@ -43,9 +43,11 @@
#include <asm/cputable.h> #include <asm/cputable.h>
#include <asm/system.h> #include <asm/system.h>
#include "smp.h"
static unsigned long iSeries_smp_message[NR_CPUS]; static unsigned long iSeries_smp_message[NR_CPUS];
void iSeries_smp_message_recv(struct pt_regs *regs) void iSeries_smp_message_recv(void)
{ {
int cpu = smp_processor_id(); int cpu = smp_processor_id();
int msg; int msg;
...@@ -55,7 +57,7 @@ void iSeries_smp_message_recv(struct pt_regs *regs) ...@@ -55,7 +57,7 @@ void iSeries_smp_message_recv(struct pt_regs *regs)
for (msg = 0; msg < 4; msg++) for (msg = 0; msg < 4; msg++)
if (test_and_clear_bit(msg, &iSeries_smp_message[cpu])) if (test_and_clear_bit(msg, &iSeries_smp_message[cpu]))
smp_message_recv(msg, regs); smp_message_recv(msg);
} }
static inline void smp_iSeries_do_message(int cpu, int msg) static inline void smp_iSeries_do_message(int cpu, int msg)
......
#ifndef _PLATFORMS_ISERIES_SMP_H
#define _PLATFORMS_ISERIES_SMP_H
extern void iSeries_smp_message_recv(void);
#endif /* _PLATFORMS_ISERIES_SMP_H */
...@@ -378,7 +378,7 @@ void vio_set_hostlp(void) ...@@ -378,7 +378,7 @@ void vio_set_hostlp(void)
} }
EXPORT_SYMBOL(vio_set_hostlp); EXPORT_SYMBOL(vio_set_hostlp);
static void vio_handleEvent(struct HvLpEvent *event, struct pt_regs *regs) static void vio_handleEvent(struct HvLpEvent *event)
{ {
HvLpIndex remoteLp; HvLpIndex remoteLp;
int subtype = (event->xSubtype & VIOMAJOR_SUBTYPE_MASK) int subtype = (event->xSubtype & VIOMAJOR_SUBTYPE_MASK)
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
* has to include <linux/interrupt.h> (to get irqreturn_t), which * has to include <linux/interrupt.h> (to get irqreturn_t), which
* causes all sorts of problems. -- paulus * causes all sorts of problems. -- paulus
*/ */
extern irqreturn_t xmon_irq(int, void *, struct pt_regs *); extern irqreturn_t xmon_irq(int, void *);
#ifdef CONFIG_PPC32 #ifdef CONFIG_PPC32
struct pmac_irq_hw { struct pmac_irq_hw {
...@@ -210,7 +210,7 @@ static struct irq_chip pmac_pic = { ...@@ -210,7 +210,7 @@ static struct irq_chip pmac_pic = {
.retrigger = pmac_retrigger, .retrigger = pmac_retrigger,
}; };
static irqreturn_t gatwick_action(int cpl, void *dev_id, struct pt_regs *regs) static irqreturn_t gatwick_action(int cpl, void *dev_id)
{ {
unsigned long flags; unsigned long flags;
int irq, bits; int irq, bits;
...@@ -235,18 +235,18 @@ static irqreturn_t gatwick_action(int cpl, void *dev_id, struct pt_regs *regs) ...@@ -235,18 +235,18 @@ static irqreturn_t gatwick_action(int cpl, void *dev_id, struct pt_regs *regs)
return rc; return rc;
} }
static unsigned int pmac_pic_get_irq(struct pt_regs *regs) static unsigned int pmac_pic_get_irq(void)
{ {
int irq; int irq;
unsigned long bits = 0; unsigned long bits = 0;
unsigned long flags; unsigned long flags;
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
void psurge_smp_message_recv(struct pt_regs *); void psurge_smp_message_recv(void);
/* IPI's are a hack on the powersurge -- Cort */ /* IPI's are a hack on the powersurge -- Cort */
if ( smp_processor_id() != 0 ) { if ( smp_processor_id() != 0 ) {
psurge_smp_message_recv(regs); psurge_smp_message_recv();
return NO_IRQ_IGNORE; /* ignore, already handled */ return NO_IRQ_IGNORE; /* ignore, already handled */
} }
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
...@@ -444,7 +444,7 @@ static void pmac_u3_cascade(unsigned int irq, struct irq_desc *desc) ...@@ -444,7 +444,7 @@ static void pmac_u3_cascade(unsigned int irq, struct irq_desc *desc)
{ {
struct mpic *mpic = desc->handler_data; struct mpic *mpic = desc->handler_data;
unsigned int cascade_irq = mpic_get_one_irq(mpic, get_irq_regs()); unsigned int cascade_irq = mpic_get_one_irq(mpic);
if (cascade_irq != NO_IRQ) if (cascade_irq != NO_IRQ)
generic_handle_irq(cascade_irq); generic_handle_irq(cascade_irq);
desc->chip->eoi(irq); desc->chip->eoi(irq);
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
extern struct hw_interrupt_type pmac_pic; extern struct hw_interrupt_type pmac_pic;
void pmac_pic_init(void); extern void pmac_pic_init(void);
int pmac_get_irq(struct pt_regs *regs); extern int pmac_get_irq(void);
#endif /* __PPC_PLATFORMS_PMAC_PIC_H */ #endif /* __PPC_PLATFORMS_PMAC_PIC_H */
...@@ -160,7 +160,7 @@ static inline void psurge_clr_ipi(int cpu) ...@@ -160,7 +160,7 @@ static inline void psurge_clr_ipi(int cpu)
*/ */
static unsigned long psurge_smp_message[NR_CPUS]; static unsigned long psurge_smp_message[NR_CPUS];
void psurge_smp_message_recv(struct pt_regs *regs) void psurge_smp_message_recv(void)
{ {
int cpu = smp_processor_id(); int cpu = smp_processor_id();
int msg; int msg;
...@@ -174,12 +174,12 @@ void psurge_smp_message_recv(struct pt_regs *regs) ...@@ -174,12 +174,12 @@ void psurge_smp_message_recv(struct pt_regs *regs)
/* make sure there is a message there */ /* make sure there is a message there */
for (msg = 0; msg < 4; msg++) for (msg = 0; msg < 4; msg++)
if (test_and_clear_bit(msg, &psurge_smp_message[cpu])) if (test_and_clear_bit(msg, &psurge_smp_message[cpu]))
smp_message_recv(msg, regs); smp_message_recv(msg);
} }
irqreturn_t psurge_primary_intr(int irq, void *d, struct pt_regs *regs) irqreturn_t psurge_primary_intr(int irq, void *d)
{ {
psurge_smp_message_recv(regs); psurge_smp_message_recv();
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -267,7 +267,8 @@ static void iommu_table_setparms(struct pci_controller *phb, ...@@ -267,7 +267,8 @@ static void iommu_table_setparms(struct pci_controller *phb,
struct iommu_table *tbl) struct iommu_table *tbl)
{ {
struct device_node *node; struct device_node *node;
const unsigned long *basep, *sizep; const unsigned long *basep;
const u32 *sizep;
node = (struct device_node *)phb->arch_data; node = (struct device_node *)phb->arch_data;
......
...@@ -123,7 +123,7 @@ static void __init fwnmi_init(void) ...@@ -123,7 +123,7 @@ static void __init fwnmi_init(void)
void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc) void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc)
{ {
unsigned int cascade_irq = i8259_irq(get_irq_regs()); unsigned int cascade_irq = i8259_irq();
if (cascade_irq != NO_IRQ) if (cascade_irq != NO_IRQ)
generic_handle_irq(cascade_irq); generic_handle_irq(cascade_irq);
desc->chip->eoi(irq); desc->chip->eoi(irq);
......
...@@ -308,14 +308,14 @@ static inline unsigned int xics_remap_irq(unsigned int vec) ...@@ -308,14 +308,14 @@ static inline unsigned int xics_remap_irq(unsigned int vec)
return NO_IRQ; return NO_IRQ;
} }
static unsigned int xics_get_irq_direct(struct pt_regs *regs) static unsigned int xics_get_irq_direct(void)
{ {
unsigned int cpu = smp_processor_id(); unsigned int cpu = smp_processor_id();
return xics_remap_irq(direct_xirr_info_get(cpu)); return xics_remap_irq(direct_xirr_info_get(cpu));
} }
static unsigned int xics_get_irq_lpar(struct pt_regs *regs) static unsigned int xics_get_irq_lpar(void)
{ {
unsigned int cpu = smp_processor_id(); unsigned int cpu = smp_processor_id();
......
...@@ -147,7 +147,7 @@ static struct irq_chip cpm2_pic = { ...@@ -147,7 +147,7 @@ static struct irq_chip cpm2_pic = {
.end = cpm2_end_irq, .end = cpm2_end_irq,
}; };
unsigned int cpm2_get_irq(struct pt_regs *regs) unsigned int cpm2_get_irq(void)
{ {
int irq; int irq;
unsigned long bits; unsigned long bits;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
extern intctl_cpm2_t *cpm2_intctl; extern intctl_cpm2_t *cpm2_intctl;
extern unsigned int cpm2_get_irq(struct pt_regs *regs); extern unsigned int cpm2_get_irq(void);
extern void cpm2_pic_init(struct device_node*); extern void cpm2_pic_init(struct device_node*);
......
...@@ -567,7 +567,7 @@ static int __init fs_enet_of_init(void) ...@@ -567,7 +567,7 @@ static int __init fs_enet_of_init(void)
struct resource r[4]; struct resource r[4];
struct device_node *phy, *mdio; struct device_node *phy, *mdio;
struct fs_platform_info fs_enet_data; struct fs_platform_info fs_enet_data;
const unsigned int *id, *phy_addr, phy_irq; const unsigned int *id, *phy_addr, *phy_irq;
const void *mac_addr; const void *mac_addr;
const phandle *ph; const phandle *ph;
const char *model; const char *model;
...@@ -641,7 +641,7 @@ static int __init fs_enet_of_init(void) ...@@ -641,7 +641,7 @@ static int __init fs_enet_of_init(void)
if (strstr(model, "FCC")) { if (strstr(model, "FCC")) {
int fcc_index = *id - 1; int fcc_index = *id - 1;
unsigned char* mdio_bb_prop; const unsigned char *mdio_bb_prop;
fs_enet_data.dpram_offset = (u32)cpm_dpram_addr(0); fs_enet_data.dpram_offset = (u32)cpm_dpram_addr(0);
fs_enet_data.rx_ring = 32; fs_enet_data.rx_ring = 32;
...@@ -708,8 +708,9 @@ static int __init fs_enet_of_init(void) ...@@ -708,8 +708,9 @@ static int __init fs_enet_of_init(void)
ret = platform_device_add_data(fs_enet_dev, &fs_enet_data, ret = platform_device_add_data(fs_enet_dev, &fs_enet_data,
sizeof(struct sizeof(struct
fs_platform_info)); fs_platform_info));
if (ret) if (ret)
goto unreg; goto unreg;
}
} }
return 0; return 0;
......
...@@ -34,7 +34,7 @@ static struct irq_host *i8259_host; ...@@ -34,7 +34,7 @@ static struct irq_host *i8259_host;
* which is called. It should be noted that polling is broken on some * which is called. It should be noted that polling is broken on some
* IBM and Motorola PReP boxes so we must use the int-ack feature on them. * IBM and Motorola PReP boxes so we must use the int-ack feature on them.
*/ */
unsigned int i8259_irq(struct pt_regs *regs) unsigned int i8259_irq(void)
{ {
int irq; int irq;
int lock = 0; int lock = 0;
......
...@@ -709,7 +709,7 @@ void ipic_clear_mcp_status(u32 mask) ...@@ -709,7 +709,7 @@ void ipic_clear_mcp_status(u32 mask)
} }
/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */
unsigned int ipic_get_irq(struct pt_regs *regs) unsigned int ipic_get_irq(void)
{ {
int irq; int irq;
......
...@@ -1217,7 +1217,7 @@ void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask) ...@@ -1217,7 +1217,7 @@ void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask)
mpic_physmask(cpu_mask & cpus_addr(cpu_online_map)[0])); mpic_physmask(cpu_mask & cpus_addr(cpu_online_map)[0]));
} }
unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs) unsigned int mpic_get_one_irq(struct mpic *mpic)
{ {
u32 src; u32 src;
...@@ -1230,13 +1230,13 @@ unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs) ...@@ -1230,13 +1230,13 @@ unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs)
return irq_linear_revmap(mpic->irqhost, src); return irq_linear_revmap(mpic->irqhost, src);
} }
unsigned int mpic_get_irq(struct pt_regs *regs) unsigned int mpic_get_irq(void)
{ {
struct mpic *mpic = mpic_primary; struct mpic *mpic = mpic_primary;
BUG_ON(mpic == NULL); BUG_ON(mpic == NULL);
return mpic_get_one_irq(mpic, regs); return mpic_get_one_irq(mpic);
} }
......
...@@ -300,7 +300,7 @@ static struct irq_host_ops qe_ic_host_ops = { ...@@ -300,7 +300,7 @@ static struct irq_host_ops qe_ic_host_ops = {
}; };
/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */
unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic, struct pt_regs *regs) unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic)
{ {
int irq; int irq;
...@@ -316,7 +316,7 @@ unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic, struct pt_regs *regs) ...@@ -316,7 +316,7 @@ unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic, struct pt_regs *regs)
} }
/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */
unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic, struct pt_regs *regs) unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic)
{ {
int irq; int irq;
...@@ -333,13 +333,12 @@ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic, struct pt_regs *regs) ...@@ -333,13 +333,12 @@ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic, struct pt_regs *regs)
/* FIXME: We mask all the QE Low interrupts while handling. We should /* FIXME: We mask all the QE Low interrupts while handling. We should
* let other interrupt come in, but BAD interrupts are generated */ * let other interrupt come in, but BAD interrupts are generated */
void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc, void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc)
struct pt_regs *regs)
{ {
struct qe_ic *qe_ic = desc->handler_data; struct qe_ic *qe_ic = desc->handler_data;
struct irq_chip *chip = irq_desc[irq].chip; struct irq_chip *chip = irq_desc[irq].chip;
unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic, regs); unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic);
chip->mask_ack(irq); chip->mask_ack(irq);
if (cascade_irq != NO_IRQ) if (cascade_irq != NO_IRQ)
...@@ -349,13 +348,12 @@ void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc, ...@@ -349,13 +348,12 @@ void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc,
/* FIXME: We mask all the QE High interrupts while handling. We should /* FIXME: We mask all the QE High interrupts while handling. We should
* let other interrupt come in, but BAD interrupts are generated */ * let other interrupt come in, but BAD interrupts are generated */
void fastcall qe_ic_cascade_high(unsigned int irq, struct irq_desc *desc, void fastcall qe_ic_cascade_high(unsigned int irq, struct irq_desc *desc)
struct pt_regs *regs)
{ {
struct qe_ic *qe_ic = desc->handler_data; struct qe_ic *qe_ic = desc->handler_data;
struct irq_chip *chip = irq_desc[irq].chip; struct irq_chip *chip = irq_desc[irq].chip;
unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic, regs); unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic);
chip->mask_ack(irq); chip->mask_ack(irq);
if (cascade_irq != NO_IRQ) if (cascade_irq != NO_IRQ)
......
...@@ -405,8 +405,7 @@ void __init tsi108_pci_int_init(void) ...@@ -405,8 +405,7 @@ void __init tsi108_pci_int_init(void)
init_pci_source(); init_pci_source();
} }
void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc, void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc)
struct pt_regs *regs)
{ {
unsigned int cascade_irq = get_pci_source(); unsigned int cascade_irq = get_pci_source();
if (cascade_irq != NO_IRQ) if (cascade_irq != NO_IRQ)
......
...@@ -142,7 +142,7 @@ void timer_interrupt(struct pt_regs * regs) ...@@ -142,7 +142,7 @@ void timer_interrupt(struct pt_regs * regs)
while ((next_dec = tb_ticks_per_jiffy - tb_delta(&jiffy_stamp)) <= 0) { while ((next_dec = tb_ticks_per_jiffy - tb_delta(&jiffy_stamp)) <= 0) {
jiffy_stamp += tb_ticks_per_jiffy; jiffy_stamp += tb_ticks_per_jiffy;
profile_tick(CPU_PROFILING, regs); profile_tick(CPU_PROFILING);
update_process_times(user_mode(regs)); update_process_times(user_mode(regs));
if (smp_processor_id()) if (smp_processor_id())
......
...@@ -211,10 +211,10 @@ mpc8560ads_setup_arch(void) ...@@ -211,10 +211,10 @@ mpc8560ads_setup_arch(void)
#endif #endif
} }
static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t cpm2_cascade(int irq, void *dev_id)
{ {
while ((irq = cpm2_get_irq(regs)) >= 0) while ((irq = cpm2_get_irq()) >= 0)
__do_IRQ(irq, regs); __do_IRQ(irq);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -127,10 +127,10 @@ mpc85xx_cds_show_cpuinfo(struct seq_file *m) ...@@ -127,10 +127,10 @@ mpc85xx_cds_show_cpuinfo(struct seq_file *m)
} }
#ifdef CONFIG_CPM2 #ifdef CONFIG_CPM2
static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t cpm2_cascade(int irq, void *dev_id)
{ {
while((irq = cpm2_get_irq(regs)) >= 0) while((irq = cpm2_get_irq()) >= 0)
__do_IRQ(irq, regs); __do_IRQ(irq);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -156,10 +156,10 @@ gp3_setup_arch(void) ...@@ -156,10 +156,10 @@ gp3_setup_arch(void)
printk ("bi_immr_base = %8.8lx\n", binfo->bi_immr_base); printk ("bi_immr_base = %8.8lx\n", binfo->bi_immr_base);
} }
static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t cpm2_cascade(int irq, void *dev_id)
{ {
while ((irq = cpm2_get_irq(regs)) >= 0) while ((irq = cpm2_get_irq()) >= 0)
__do_IRQ(irq, regs); __do_IRQ(irq);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -181,10 +181,10 @@ tqm85xx_setup_arch(void) ...@@ -181,10 +181,10 @@ tqm85xx_setup_arch(void)
} }
#ifdef CONFIG_MPC8560 #ifdef CONFIG_MPC8560
static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t cpm2_cascade(int irq, void *dev_id)
{ {
while ((irq = cpm2_get_irq(regs)) >= 0) while ((irq = cpm2_get_irq()) >= 0)
__do_IRQ(irq, regs); __do_IRQ(irq);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -28,7 +28,7 @@ static int i8259_pic_irq_offset; ...@@ -28,7 +28,7 @@ static int i8259_pic_irq_offset;
* which is called. It should be noted that polling is broken on some * which is called. It should be noted that polling is broken on some
* IBM and Motorola PReP boxes so we must use the int-ack feature on them. * IBM and Motorola PReP boxes so we must use the int-ack feature on them.
*/ */
int i8259_irq(struct pt_regs *regs) int i8259_irq(void)
{ {
int irq; int irq;
......
...@@ -45,7 +45,7 @@ static u_int NumSources; ...@@ -45,7 +45,7 @@ static u_int NumSources;
static int open_pic_irq_offset; static int open_pic_irq_offset;
static volatile OpenPIC_Source __iomem *ISR[NR_IRQS]; static volatile OpenPIC_Source __iomem *ISR[NR_IRQS];
static int openpic_cascade_irq = -1; static int openpic_cascade_irq = -1;
static int (*openpic_cascade_fn)(struct pt_regs *); static int (*openpic_cascade_fn)(void);
/* Global Operations */ /* Global Operations */
static void openpic_disable_8259_pass_through(void); static void openpic_disable_8259_pass_through(void);
...@@ -54,7 +54,7 @@ static void openpic_set_spurious(u_int vector); ...@@ -54,7 +54,7 @@ static void openpic_set_spurious(u_int vector);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/* Interprocessor Interrupts */ /* Interprocessor Interrupts */
static void openpic_initipi(u_int ipi, u_int pri, u_int vector); static void openpic_initipi(u_int ipi, u_int pri, u_int vector);
static irqreturn_t openpic_ipi_action(int cpl, void *dev_id, struct pt_regs *); static irqreturn_t openpic_ipi_action(int cpl, void *dev_id);
#endif #endif
/* Timer Interrupts */ /* Timer Interrupts */
...@@ -700,7 +700,7 @@ static struct irqaction openpic_cascade_irqaction = { ...@@ -700,7 +700,7 @@ static struct irqaction openpic_cascade_irqaction = {
void __init void __init
openpic_hookup_cascade(u_int irq, char *name, openpic_hookup_cascade(u_int irq, char *name,
int (*cascade_fn)(struct pt_regs *)) int (*cascade_fn)(void))
{ {
openpic_cascade_irq = irq; openpic_cascade_irq = irq;
openpic_cascade_fn = cascade_fn; openpic_cascade_fn = cascade_fn;
...@@ -857,16 +857,16 @@ static void openpic_end_ipi(unsigned int irq_nr) ...@@ -857,16 +857,16 @@ static void openpic_end_ipi(unsigned int irq_nr)
{ {
} }
static irqreturn_t openpic_ipi_action(int cpl, void *dev_id, struct pt_regs *regs) static irqreturn_t openpic_ipi_action(int cpl, void *dev_id)
{ {
smp_message_recv(cpl-OPENPIC_VEC_IPI-open_pic_irq_offset, regs); smp_message_recv(cpl-OPENPIC_VEC_IPI-open_pic_irq_offset);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
int int
openpic_get_irq(struct pt_regs *regs) openpic_get_irq(void)
{ {
int irq = openpic_irq(); int irq = openpic_irq();
...@@ -876,7 +876,7 @@ openpic_get_irq(struct pt_regs *regs) ...@@ -876,7 +876,7 @@ openpic_get_irq(struct pt_regs *regs)
* This should move to irq.c eventually. -- paulus * This should move to irq.c eventually. -- paulus
*/ */
if (irq == openpic_cascade_irq && openpic_cascade_fn != NULL) { if (irq == openpic_cascade_irq && openpic_cascade_fn != NULL) {
int cirq = openpic_cascade_fn(regs); int cirq = openpic_cascade_fn();
/* Allow for the cascade being shared with other devices */ /* Allow for the cascade being shared with other devices */
if (cirq != -1) { if (cirq != -1) {
......
...@@ -947,7 +947,7 @@ static void vioHandleData(struct HvLpEvent *event) ...@@ -947,7 +947,7 @@ static void vioHandleData(struct HvLpEvent *event)
*/ */
continue; continue;
} else if (vio_sysrq_pressed) { } else if (vio_sysrq_pressed) {
handle_sysrq(cevent->data[index], NULL, tty); handle_sysrq(cevent->data[index], tty);
vio_sysrq_pressed = 0; vio_sysrq_pressed = 0;
/* /*
* continue because we don't want to add * continue because we don't want to add
......
...@@ -6,10 +6,10 @@ ...@@ -6,10 +6,10 @@
#ifdef CONFIG_PPC_MERGE #ifdef CONFIG_PPC_MERGE
extern void i8259_init(struct device_node *node, unsigned long intack_addr); extern void i8259_init(struct device_node *node, unsigned long intack_addr);
extern unsigned int i8259_irq(struct pt_regs *regs); extern unsigned int i8259_irq(void);
#else #else
extern void i8259_init(unsigned long intack_addr, int offset); extern void i8259_init(unsigned long intack_addr, int offset);
extern int i8259_irq(struct pt_regs *regs); extern int i8259_irq(void);
#endif #endif
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
...@@ -65,7 +65,7 @@ void ibmebus_unregister_driver(struct ibmebus_driver *drv); ...@@ -65,7 +65,7 @@ void ibmebus_unregister_driver(struct ibmebus_driver *drv);
int ibmebus_request_irq(struct ibmebus_dev *dev, int ibmebus_request_irq(struct ibmebus_dev *dev,
u32 ist, u32 ist,
irqreturn_t (*handler)(int, void*, struct pt_regs *), irqreturn_t (*handler)(int, void*),
unsigned long irq_flags, const char * devname, unsigned long irq_flags, const char * devname,
void *dev_id); void *dev_id);
void ibmebus_free_irq(struct ibmebus_dev *dev, u32 ist, void *dev_id); void ibmebus_free_irq(struct ibmebus_dev *dev, u32 ist, void *dev_id);
......
...@@ -79,12 +79,12 @@ extern void ipic_clear_mcp_status(u32 mask); ...@@ -79,12 +79,12 @@ extern void ipic_clear_mcp_status(u32 mask);
#ifdef CONFIG_PPC_MERGE #ifdef CONFIG_PPC_MERGE
extern void ipic_init(struct device_node *node, unsigned int flags); extern void ipic_init(struct device_node *node, unsigned int flags);
extern unsigned int ipic_get_irq(struct pt_regs *regs); extern unsigned int ipic_get_irq(void);
#else #else
extern void ipic_init(phys_addr_t phys_addr, unsigned int flags, extern void ipic_init(phys_addr_t phys_addr, unsigned int flags,
unsigned int irq_offset, unsigned int irq_offset,
unsigned char *senses, unsigned int senses_count); unsigned char *senses, unsigned int senses_count);
extern int ipic_get_irq(struct pt_regs *regs); extern int ipic_get_irq(void);
#endif #endif
#endif /* __ASM_IPIC_H__ */ #endif /* __ASM_IPIC_H__ */
......
...@@ -50,7 +50,7 @@ struct HvLpEvent { ...@@ -50,7 +50,7 @@ struct HvLpEvent {
u64 xCorrelationToken; /* Unique value for source/type x10-x17 */ u64 xCorrelationToken; /* Unique value for source/type x10-x17 */
}; };
typedef void (*LpEventHandler)(struct HvLpEvent *, struct pt_regs *); typedef void (*LpEventHandler)(struct HvLpEvent *);
/* Register a handler for an event type - returns 0 on success */ /* Register a handler for an event type - returns 0 on success */
extern int HvLpEvent_registerHandler(HvLpEvent_Type eventType, extern int HvLpEvent_registerHandler(HvLpEvent_Type eventType,
......
...@@ -72,7 +72,7 @@ struct hvlpevent_queue { ...@@ -72,7 +72,7 @@ struct hvlpevent_queue {
extern struct hvlpevent_queue hvlpevent_queue; extern struct hvlpevent_queue hvlpevent_queue;
extern int hvlpevent_is_pending(void); extern int hvlpevent_is_pending(void);
extern void process_hvlpevents(struct pt_regs *); extern void process_hvlpevents(void);
extern void setup_hvlpevent_queue(void); extern void setup_hvlpevent_queue(void);
#endif /* _ASM_POWERPC_ISERIES_IT_LP_QUEUE_H */ #endif /* _ASM_POWERPC_ISERIES_IT_LP_QUEUE_H */
...@@ -97,7 +97,7 @@ struct machdep_calls { ...@@ -97,7 +97,7 @@ struct machdep_calls {
void (*show_percpuinfo)(struct seq_file *m, int i); void (*show_percpuinfo)(struct seq_file *m, int i);
void (*init_IRQ)(void); void (*init_IRQ)(void);
unsigned int (*get_irq)(struct pt_regs *); unsigned int (*get_irq)(void);
#ifdef CONFIG_KEXEC #ifdef CONFIG_KEXEC
void (*kexec_cpu_down)(int crash_shutdown, int secondary); void (*kexec_cpu_down)(int crash_shutdown, int secondary);
#endif #endif
......
...@@ -409,9 +409,9 @@ extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask); ...@@ -409,9 +409,9 @@ extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask);
void smp_mpic_message_pass(int target, int msg); void smp_mpic_message_pass(int target, int msg);
/* Fetch interrupt from a given mpic */ /* Fetch interrupt from a given mpic */
extern unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs); extern unsigned int mpic_get_one_irq(struct mpic *mpic);
/* This one gets to the primary mpic */ /* This one gets to the primary mpic */
extern unsigned int mpic_get_irq(struct pt_regs *regs); extern unsigned int mpic_get_irq(void);
/* Set the EPIC clock ratio */ /* Set the EPIC clock ratio */
void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio); void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio);
......
...@@ -503,7 +503,7 @@ ...@@ -503,7 +503,7 @@
/* /*
* An mtfsf instruction with the L bit set. On CPUs that support this a * An mtfsf instruction with the L bit set. On CPUs that support this a
* full 64bits of FPSCR is restored and on other CPUs it is ignored. * full 64bits of FPSCR is restored and on other CPUs the L bit is ignored.
* *
* Until binutils gets the new form of mtfsf, hardwire the instruction. * Until binutils gets the new form of mtfsf, hardwire the instruction.
*/ */
......
...@@ -38,14 +38,14 @@ static int virtual_dma_mode; ...@@ -38,14 +38,14 @@ static int virtual_dma_mode;
static int doing_vdma; static int doing_vdma;
static struct fd_dma_ops *fd_ops; static struct fd_dma_ops *fd_ops;
static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) static irqreturn_t floppy_hardint(int irq, void *dev_id)
{ {
unsigned char st; unsigned char st;
int lcount; int lcount;
char *lptr; char *lptr;
if (!doing_vdma) if (!doing_vdma)
return floppy_interrupt(irq, dev_id, regs); return floppy_interrupt(irq, dev_id);
st = 1; st = 1;
...@@ -69,7 +69,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) ...@@ -69,7 +69,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
virtual_dma_residue += virtual_dma_count; virtual_dma_residue += virtual_dma_count;
virtual_dma_count=0; virtual_dma_count=0;
doing_vdma = 0; doing_vdma = 0;
floppy_interrupt(irq, dev_id, regs); floppy_interrupt(irq, dev_id);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
return IRQ_HANDLED; return IRQ_HANDLED;
......
...@@ -43,7 +43,7 @@ struct machdep_calls { ...@@ -43,7 +43,7 @@ struct machdep_calls {
/* Optional, may be NULL. */ /* Optional, may be NULL. */
unsigned int (*irq_canonicalize)(unsigned int irq); unsigned int (*irq_canonicalize)(unsigned int irq);
void (*init_IRQ)(void); void (*init_IRQ)(void);
int (*get_irq)(struct pt_regs *); int (*get_irq)(void);
/* A general init function, called by ppc_init in init/main.c. /* A general init function, called by ppc_init in init/main.c.
May be NULL. DEPRECATED ! */ May be NULL. DEPRECATED ! */
......
...@@ -48,12 +48,12 @@ extern void openpic_init(int linux_irq_offset); ...@@ -48,12 +48,12 @@ extern void openpic_init(int linux_irq_offset);
extern void openpic_init_nmi_irq(u_int irq); extern void openpic_init_nmi_irq(u_int irq);
extern void openpic_set_irq_priority(u_int irq, u_int pri); extern void openpic_set_irq_priority(u_int irq, u_int pri);
extern void openpic_hookup_cascade(u_int irq, char *name, extern void openpic_hookup_cascade(u_int irq, char *name,
int (*cascade_fn)(struct pt_regs *)); int (*cascade_fn)(void));
extern u_int openpic_irq(void); extern u_int openpic_irq(void);
extern void openpic_eoi(void); extern void openpic_eoi(void);
extern void openpic_request_IPIs(void); extern void openpic_request_IPIs(void);
extern void do_openpic_setup_cpu(void); extern void do_openpic_setup_cpu(void);
extern int openpic_get_irq(struct pt_regs *regs); extern int openpic_get_irq(void);
extern void openpic_reset_processor_phys(u_int cpumask); extern void openpic_reset_processor_phys(u_int cpumask);
extern void openpic_setup_ISU(int isu_num, unsigned long addr); extern void openpic_setup_ISU(int isu_num, unsigned long addr);
extern void openpic_cause_IPI(u_int ipi, cpumask_t cpumask); extern void openpic_cause_IPI(u_int ipi, cpumask_t cpumask);
...@@ -93,6 +93,6 @@ extern void openpic2_init(int linux_irq_offset); ...@@ -93,6 +93,6 @@ extern void openpic2_init(int linux_irq_offset);
extern void openpic2_init_nmi_irq(u_int irq); extern void openpic2_init_nmi_irq(u_int irq);
extern u_int openpic2_irq(void); extern u_int openpic2_irq(void);
extern void openpic2_eoi(void); extern void openpic2_eoi(void);
extern int openpic2_get_irq(struct pt_regs *regs); extern int openpic2_get_irq(void);
extern void openpic2_setup_ISU(int isu_num, unsigned long addr); extern void openpic2_setup_ISU(int isu_num, unsigned long addr);
#endif /* _PPC_KERNEL_OPEN_PIC_H */ #endif /* _PPC_KERNEL_OPEN_PIC_H */
...@@ -39,7 +39,7 @@ extern struct smp_ops_t *smp_ops; ...@@ -39,7 +39,7 @@ extern struct smp_ops_t *smp_ops;
extern void smp_send_tlb_invalidate(int); extern void smp_send_tlb_invalidate(int);
extern void smp_send_xmon_break(int cpu); extern void smp_send_xmon_break(int cpu);
struct pt_regs; struct pt_regs;
extern void smp_message_recv(int, struct pt_regs *); extern void smp_message_recv(int);
extern int __cpu_disable(void); extern int __cpu_disable(void);
extern void __cpu_die(unsigned int cpu); extern void __cpu_die(unsigned int cpu);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册