Commit 3c693024 authored by Linus Torvalds's avatar 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] Fix windfarm platform device usage
  [POWERPC] Fix i2c-powermac platform device usage
  [POWERPC] Fix secondary CPU startup on old "powersurge" SMP powermacs
  [POWERPC] ARCH=ppc pt_regs fixes
  [POWERPC] Update maple defconfig
  [POWERPC] Fix Maple secondary IDE interrupt
  [POWERPC] Make U4 PCIe work on maple
  [POWERPC] cell: fix default zImage build target
  [POWERPC] Fix boot wrapper invocation if CROSS_COMPILE contains spaces
  [POWERPC] Fix xmon IRQ handler for pt_regs removal
parents 107c3a73 10270613
...@@ -105,10 +105,10 @@ wrapperbits := $(extra-y) $(addprefix $(obj)/,addnote hack-coff) ...@@ -105,10 +105,10 @@ wrapperbits := $(extra-y) $(addprefix $(obj)/,addnote hack-coff)
# Bits for building various flavours of zImage # Bits for building various flavours of zImage
ifneq ($(CROSS32_COMPILE),) ifneq ($(CROSS32_COMPILE),)
CROSSWRAP := -C $(CROSS32_COMPILE) CROSSWRAP := -C "$(CROSS32_COMPILE)"
else else
ifneq ($(CROSS_COMPILE),) ifneq ($(CROSS_COMPILE),)
CROSSWRAP := -C $(CROSS_COMPILE) CROSSWRAP := -C "$(CROSS_COMPILE)"
endif endif
endif endif
...@@ -153,7 +153,7 @@ $(obj)/uImage: vmlinux $(wrapperbits) ...@@ -153,7 +153,7 @@ $(obj)/uImage: vmlinux $(wrapperbits)
image-$(CONFIG_PPC_PSERIES) += zImage.pseries image-$(CONFIG_PPC_PSERIES) += zImage.pseries
image-$(CONFIG_PPC_MAPLE) += zImage.pseries image-$(CONFIG_PPC_MAPLE) += zImage.pseries
image-$(CONFIG_PPC_CELL) += zImage.pseries image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries
image-$(CONFIG_PPC_CHRP) += zImage.chrp image-$(CONFIG_PPC_CHRP) += zImage.chrp
image-$(CONFIG_PPC_PMAC) += zImage.pmac image-$(CONFIG_PPC_PMAC) += zImage.pmac
image-$(CONFIG_DEFAULT_UIMAGE) += uImage image-$(CONFIG_DEFAULT_UIMAGE) += uImage
......
# #
# 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.18
# Sun Sep 10 10:24:55 2006 # Mon Oct 9 11:59:34 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=y CONFIG_PPC_UDBG_16550=y
CONFIG_GENERIC_TBSYNC=y CONFIG_GENERIC_TBSYNC=y
CONFIG_AUDIT_ARCH=y
# CONFIG_DEFAULT_UIMAGE is not set # CONFIG_DEFAULT_UIMAGE is not set
# #
...@@ -34,7 +35,7 @@ CONFIG_PPC_FPU=y ...@@ -34,7 +35,7 @@ CONFIG_PPC_FPU=y
CONFIG_PPC_STD_MMU=y CONFIG_PPC_STD_MMU=y
CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_NR_CPUS=2 CONFIG_NR_CPUS=4
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
# #
...@@ -51,10 +52,11 @@ CONFIG_LOCALVERSION="" ...@@ -51,10 +52,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 is not set # CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
...@@ -62,7 +64,9 @@ CONFIG_IKCONFIG_PROC=y ...@@ -62,7 +64,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=y CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set
...@@ -71,12 +75,12 @@ CONFIG_PRINTK=y ...@@ -71,12 +75,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
...@@ -95,6 +99,7 @@ CONFIG_STOP_MACHINE=y ...@@ -95,6 +99,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
# #
...@@ -114,16 +119,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" ...@@ -114,16 +119,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# Platform support # Platform support
# #
CONFIG_PPC_MULTIPLATFORM=y CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_PPC_ISERIES is not set
# 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_PSERIES is not set
# CONFIG_PPC_ISERIES is not set
# CONFIG_PPC_PMAC is not set # CONFIG_PPC_PMAC is not set
CONFIG_PPC_MAPLE=y CONFIG_PPC_MAPLE=y
# 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_PPC_IBM_CELL_BLADE is not set # CONFIG_PPC_IBM_CELL_BLADE is not set
# CONFIG_UDBG_RTAS_CONSOLE is not set
CONFIG_U3_DART=y CONFIG_U3_DART=y
# CONFIG_PPC_RTAS is not set # CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set # CONFIG_MMIO_NVRAM is not set
...@@ -157,6 +162,7 @@ CONFIG_IRQ_ALL_CPUS=y ...@@ -157,6 +162,7 @@ CONFIG_IRQ_ALL_CPUS=y
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
...@@ -184,6 +190,7 @@ CONFIG_GENERIC_ISA_DMA=y ...@@ -184,6 +190,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
# #
...@@ -211,6 +218,7 @@ CONFIG_PACKET_MMAP=y ...@@ -211,6 +218,7 @@ CONFIG_PACKET_MMAP=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 is not set
# CONFIG_NET_KEY is not set # CONFIG_NET_KEY is not set
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
...@@ -232,10 +240,12 @@ CONFIG_IP_PNP_DHCP=y ...@@ -232,10 +240,12 @@ CONFIG_IP_PNP_DHCP=y
# CONFIG_INET_TUNNEL is not set # CONFIG_INET_TUNNEL is not set
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=y
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"
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set
...@@ -265,7 +275,6 @@ CONFIG_TCP_CONG_BIC=y ...@@ -265,7 +275,6 @@ CONFIG_TCP_CONG_BIC=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
...@@ -377,6 +386,7 @@ CONFIG_BLK_DEV_AMD74XX=y ...@@ -377,6 +386,7 @@ CONFIG_BLK_DEV_AMD74XX=y
# 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_JMICRON 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 is not set
# CONFIG_BLK_DEV_IT821X is not set # CONFIG_BLK_DEV_IT821X is not set
...@@ -399,6 +409,12 @@ CONFIG_IDEDMA_AUTO=y ...@@ -399,6 +409,12 @@ CONFIG_IDEDMA_AUTO=y
# #
# CONFIG_RAID_ATTRS is not set # CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set # CONFIG_SCSI is not set
# CONFIG_SCSI_NETLINK 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)
...@@ -498,7 +514,7 @@ CONFIG_E1000=y ...@@ -498,7 +514,7 @@ CONFIG_E1000=y
# CONFIG_VIA_VELOCITY is not set # CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=y CONFIG_TIGON3=y
# CONFIG_BNX2 is not set # CONFIG_BNX2 is not set
# CONFIG_MV643XX_ETH is not set # CONFIG_QLA3XXX is not set
# #
# Ethernet (10000 Mbit) # Ethernet (10000 Mbit)
...@@ -545,6 +561,7 @@ CONFIG_TIGON3=y ...@@ -545,6 +561,7 @@ CONFIG_TIGON3=y
# Input device support # Input device support
# #
CONFIG_INPUT=y CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# #
# Userland interfaces # Userland interfaces
...@@ -704,6 +721,7 @@ CONFIG_I2C_AMD8111=y ...@@ -704,6 +721,7 @@ CONFIG_I2C_AMD8111=y
# #
# Misc devices # Misc devices
# #
# CONFIG_TIFM_CORE is not set
# #
# Multimedia devices # Multimedia devices
...@@ -779,7 +797,6 @@ CONFIG_USB_UHCI_HCD=y ...@@ -779,7 +797,6 @@ CONFIG_USB_UHCI_HCD=y
# #
# may also be needed; see USB_STORAGE Help for more information # may also be needed; see USB_STORAGE Help for more information
# #
# CONFIG_USB_STORAGE is not set
# CONFIG_USB_LIBUSUAL is not set # CONFIG_USB_LIBUSUAL is not set
# #
...@@ -802,6 +819,7 @@ CONFIG_USB_HIDINPUT=y ...@@ -802,6 +819,7 @@ CONFIG_USB_HIDINPUT=y
# CONFIG_USB_ATI_REMOTE2 is not set # CONFIG_USB_ATI_REMOTE2 is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set # CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set # CONFIG_USB_APPLETOUCH is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# #
# USB Imaging devices # USB Imaging devices
...@@ -828,6 +846,7 @@ CONFIG_USB_MON=y ...@@ -828,6 +846,7 @@ CONFIG_USB_MON=y
CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL=y
# CONFIG_USB_SERIAL_CONSOLE is not set # CONFIG_USB_SERIAL_CONSOLE is not set
CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_AIRPRIME is not set # CONFIG_USB_SERIAL_AIRPRIME is not set
# CONFIG_USB_SERIAL_ARK3116 is not set # CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set # CONFIG_USB_SERIAL_BELKIN is not set
...@@ -862,6 +881,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y ...@@ -862,6 +881,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
# CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set # CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_NAVMAN is not set # CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_PL2303 is not set # CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_HP4X is not set # CONFIG_USB_SERIAL_HP4X is not set
...@@ -879,6 +899,7 @@ CONFIG_USB_EZUSB=y ...@@ -879,6 +899,7 @@ CONFIG_USB_EZUSB=y
# #
# CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set # CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_AUERSWALD is not set # CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set # CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LEGOTOWER is not set
...@@ -886,9 +907,9 @@ CONFIG_USB_EZUSB=y ...@@ -886,9 +907,9 @@ CONFIG_USB_EZUSB=y
# CONFIG_USB_LED is not set # CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set # CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set # CONFIG_USB_PHIDGET is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set # CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set # CONFIG_USB_LD is not set
...@@ -995,8 +1016,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" ...@@ -995,8 +1016,10 @@ 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 is not set
CONFIG_HUGETLBFS=y CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y CONFIG_RAMFS=y
...@@ -1129,6 +1152,7 @@ CONFIG_PLIST=y ...@@ -1129,6 +1152,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
...@@ -1148,6 +1172,7 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y ...@@ -1148,6 +1172,7 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=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
...@@ -1169,6 +1194,9 @@ CONFIG_BOOTX_TEXT=y ...@@ -1169,6 +1194,9 @@ CONFIG_BOOTX_TEXT=y
# Cryptographic options # Cryptographic options
# #
CONFIG_CRYPTO=y CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_MANAGER=m
# CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD4 is not set
...@@ -1178,6 +1206,8 @@ CONFIG_CRYPTO_MD5=y ...@@ -1178,6 +1206,8 @@ CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_TGR192 is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_TWOFISH is not set
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
#define DEBUG #undef DEBUG
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/pci.h> #include <linux/pci.h>
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/string.h> #include <linux/string.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/bootmem.h> #include <linux/bootmem.h>
#include <linux/irq.h>
#include <asm/sections.h> #include <asm/sections.h>
#include <asm/io.h> #include <asm/io.h>
...@@ -33,7 +34,7 @@ ...@@ -33,7 +34,7 @@
#define DBG(x...) #define DBG(x...)
#endif #endif
static struct pci_controller *u3_agp, *u3_ht; static struct pci_controller *u3_agp, *u3_ht, *u4_pcie;
static int __init fixup_one_level_bus_range(struct device_node *node, int higher) static int __init fixup_one_level_bus_range(struct device_node *node, int higher)
{ {
...@@ -287,6 +288,114 @@ static struct pci_ops u3_ht_pci_ops = ...@@ -287,6 +288,114 @@ static struct pci_ops u3_ht_pci_ops =
u3_ht_write_config u3_ht_write_config
}; };
static unsigned int u4_pcie_cfa0(unsigned int devfn, unsigned int off)
{
return (1 << PCI_SLOT(devfn)) |
(PCI_FUNC(devfn) << 8) |
((off >> 8) << 28) |
(off & 0xfcu);
}
static unsigned int u4_pcie_cfa1(unsigned int bus, unsigned int devfn,
unsigned int off)
{
return (bus << 16) |
(devfn << 8) |
((off >> 8) << 28) |
(off & 0xfcu) | 1u;
}
static volatile void __iomem *u4_pcie_cfg_access(struct pci_controller* hose,
u8 bus, u8 dev_fn, int offset)
{
unsigned int caddr;
if (bus == hose->first_busno)
caddr = u4_pcie_cfa0(dev_fn, offset);
else
caddr = u4_pcie_cfa1(bus, dev_fn, offset);
/* Uninorth will return garbage if we don't read back the value ! */
do {
out_le32(hose->cfg_addr, caddr);
} while (in_le32(hose->cfg_addr) != caddr);
offset &= 0x03;
return hose->cfg_data + offset;
}
static int u4_pcie_read_config(struct pci_bus *bus, unsigned int devfn,
int offset, int len, u32 *val)
{
struct pci_controller *hose;
volatile void __iomem *addr;
hose = pci_bus_to_host(bus);
if (hose == NULL)
return PCIBIOS_DEVICE_NOT_FOUND;
if (offset >= 0x1000)
return PCIBIOS_BAD_REGISTER_NUMBER;
addr = u4_pcie_cfg_access(hose, bus->number, devfn, offset);
if (!addr)
return PCIBIOS_DEVICE_NOT_FOUND;
/*
* Note: the caller has already checked that offset is
* suitably aligned and that len is 1, 2 or 4.
*/
switch (len) {
case 1:
*val = in_8(addr);
break;
case 2:
*val = in_le16(addr);
break;
default:
*val = in_le32(addr);
break;
}
return PCIBIOS_SUCCESSFUL;
}
static int u4_pcie_write_config(struct pci_bus *bus, unsigned int devfn,
int offset, int len, u32 val)
{
struct pci_controller *hose;
volatile void __iomem *addr;
hose = pci_bus_to_host(bus);
if (hose == NULL)
return PCIBIOS_DEVICE_NOT_FOUND;
if (offset >= 0x1000)
return PCIBIOS_BAD_REGISTER_NUMBER;
addr = u4_pcie_cfg_access(hose, bus->number, devfn, offset);
if (!addr)
return PCIBIOS_DEVICE_NOT_FOUND;
/*
* Note: the caller has already checked that offset is
* suitably aligned and that len is 1, 2 or 4.
*/
switch (len) {
case 1:
out_8(addr, val);
(void) in_8(addr);
break;
case 2:
out_le16(addr, val);
(void) in_le16(addr);
break;
default:
out_le32(addr, val);
(void) in_le32(addr);
break;
}
return PCIBIOS_SUCCESSFUL;
}
static struct pci_ops u4_pcie_pci_ops =
{
u4_pcie_read_config,
u4_pcie_write_config
};
static void __init setup_u3_agp(struct pci_controller* hose) static void __init setup_u3_agp(struct pci_controller* hose)
{ {
/* On G5, we move AGP up to high bus number so we don't need /* On G5, we move AGP up to high bus number so we don't need
...@@ -307,6 +416,26 @@ static void __init setup_u3_agp(struct pci_controller* hose) ...@@ -307,6 +416,26 @@ static void __init setup_u3_agp(struct pci_controller* hose)
u3_agp = hose; u3_agp = hose;
} }
static void __init setup_u4_pcie(struct pci_controller* hose)
{
/* We currently only implement the "non-atomic" config space, to
* be optimised later.
*/
hose->ops = &u4_pcie_pci_ops;
hose->cfg_addr = ioremap(0xf0000000 + 0x800000, 0x1000);
hose->cfg_data = ioremap(0xf0000000 + 0xc00000, 0x1000);
/* The bus contains a bridge from root -> device, we need to
* make it visible on bus 0 so that we pick the right type
* of config cycles. If we didn't, we would have to force all
* config cycles to be type 1. So we override the "bus-range"
* property here
*/
hose->first_busno = 0x00;
hose->last_busno = 0xff;
u4_pcie = hose;
}
static void __init setup_u3_ht(struct pci_controller* hose) static void __init setup_u3_ht(struct pci_controller* hose)
{ {
hose->ops = &u3_ht_pci_ops; hose->ops = &u3_ht_pci_ops;
...@@ -354,6 +483,10 @@ static int __init add_bridge(struct device_node *dev) ...@@ -354,6 +483,10 @@ static int __init add_bridge(struct device_node *dev)
setup_u3_ht(hose); setup_u3_ht(hose);
disp_name = "U3-HT"; disp_name = "U3-HT";
primary = 1; primary = 1;
} else if (device_is_compatible(dev, "u4-pcie")) {
setup_u4_pcie(hose);
disp_name = "U4-PCIE";
primary = 0;
} }
printk(KERN_INFO "Found %s PCI host bridge. Firmware bus number: %d->%d\n", printk(KERN_INFO "Found %s PCI host bridge. Firmware bus number: %d->%d\n",
disp_name, hose->first_busno, hose->last_busno); disp_name, hose->first_busno, hose->last_busno);
...@@ -361,7 +494,6 @@ static int __init add_bridge(struct device_node *dev) ...@@ -361,7 +494,6 @@ static int __init add_bridge(struct device_node *dev)
/* Interpret the "ranges" property */ /* Interpret the "ranges" property */
/* This also maps the I/O region and sets isa_io/mem_base */ /* This also maps the I/O region and sets isa_io/mem_base */
pci_process_bridge_OF_ranges(hose, dev, primary); pci_process_bridge_OF_ranges(hose, dev, primary);
pci_setup_phb_io(hose, primary);
/* Fixup "bus-range" OF property */ /* Fixup "bus-range" OF property */
fixup_bus_range(dev); fixup_bus_range(dev);
...@@ -376,8 +508,30 @@ void __init maple_pcibios_fixup(void) ...@@ -376,8 +508,30 @@ void __init maple_pcibios_fixup(void)
DBG(" -> maple_pcibios_fixup\n"); DBG(" -> maple_pcibios_fixup\n");
for_each_pci_dev(dev) for_each_pci_dev(dev) {
/* Fixup IRQ for PCIe host */
if (u4_pcie != NULL && dev->bus->number == 0 &&
pci_bus_to_host(dev->bus) == u4_pcie) {
printk(KERN_DEBUG "Fixup U4 PCIe IRQ\n");
dev->irq = irq_create_mapping(NULL, 1);
if (dev->irq != NO_IRQ)
set_irq_type(dev->irq, IRQ_TYPE_LEVEL_LOW);
continue;
}
/* Hide AMD8111 IDE interrupt when in legacy mode so
* the driver calls pci_get_legacy_ide_irq()
*/
if (dev->vendor == PCI_VENDOR_ID_AMD &&
dev->device == PCI_DEVICE_ID_AMD_8111_IDE &&
(dev->class & 5) != 5) {
dev->irq = NO_IRQ;
continue;
}
/* For all others, map the interrupt from the device-tree */
pci_read_irq_line(dev); pci_read_irq_line(dev);
}
DBG(" <- maple_pcibios_fixup\n"); DBG(" <- maple_pcibios_fixup\n");
} }
...@@ -388,8 +542,10 @@ static void __init maple_fixup_phb_resources(void) ...@@ -388,8 +542,10 @@ static void __init maple_fixup_phb_resources(void)
list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
unsigned long offset = (unsigned long)hose->io_base_virt - pci_io_base; unsigned long offset = (unsigned long)hose->io_base_virt - pci_io_base;
hose->io_resource.start += offset; hose->io_resource.start += offset;
hose->io_resource.end += offset; hose->io_resource.end += offset;
printk(KERN_INFO "PCI Host %d, io start: %llx; io end: %llx\n", printk(KERN_INFO "PCI Host %d, io start: %llx; io end: %llx\n",
hose->global_number, hose->global_number,
(unsigned long long)hose->io_resource.start, (unsigned long long)hose->io_resource.start,
...@@ -431,6 +587,19 @@ void __init maple_pci_init(void) ...@@ -431,6 +587,19 @@ void __init maple_pci_init(void)
if (ht && add_bridge(ht) != 0) if (ht && add_bridge(ht) != 0)
of_node_put(ht); of_node_put(ht);
/*
* We need to call pci_setup_phb_io for the HT bridge first
* so it gets the I/O port numbers starting at 0, and we
* need to call it for the AGP bridge after that so it gets
* small positive I/O port numbers.
*/
if (u3_ht)
pci_setup_phb_io(u3_ht, 1);
if (u3_agp)
pci_setup_phb_io(u3_agp, 0);
if (u4_pcie)
pci_setup_phb_io(u4_pcie, 0);
/* Fixup the IO resources on our host bridges as the common code /* Fixup the IO resources on our host bridges as the common code
* does it only for childs of the host bridges * does it only for childs of the host bridges
*/ */
...@@ -465,8 +634,11 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel) ...@@ -465,8 +634,11 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel)
return defirq; return defirq;
np = pci_device_to_OF_node(pdev); np = pci_device_to_OF_node(pdev);
if (np == NULL) if (np == NULL) {
printk("Failed to locate OF node for IDE %s\n",
pci_name(pdev));
return defirq; return defirq;
}
irq = irq_of_parse_and_map(np, channel & 0x1); irq = irq_of_parse_and_map(np, channel & 0x1);
if (irq == NO_IRQ) { if (irq == NO_IRQ) {
printk("Failed to map onboard IDE interrupt for channel %d\n", printk("Failed to map onboard IDE interrupt for channel %d\n",
...@@ -479,6 +651,9 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel) ...@@ -479,6 +651,9 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel)
/* XXX: To remove once all firmwares are ok */ /* XXX: To remove once all firmwares are ok */
static void fixup_maple_ide(struct pci_dev* dev) static void fixup_maple_ide(struct pci_dev* dev)
{ {
if (!machine_is(maple))
return;
#if 0 /* Enable this to enable IDE port 0 */ #if 0 /* Enable this to enable IDE port 0 */
{ {
u8 v; u8 v;
...@@ -495,7 +670,7 @@ static void fixup_maple_ide(struct pci_dev* dev) ...@@ -495,7 +670,7 @@ static void fixup_maple_ide(struct pci_dev* dev)
dev->resource[4].start = 0xcc00; dev->resource[4].start = 0xcc00;
dev->resource[4].end = 0xcc10; dev->resource[4].end = 0xcc10;
#endif #endif
#if 1 /* Enable this to fixup IDE sense/polarity of irqs in IO-APICs */ #if 0 /* Enable this to fixup IDE sense/polarity of irqs in IO-APICs */
{ {
struct pci_dev *apicdev; struct pci_dev *apicdev;
u32 v; u32 v;
......
...@@ -328,6 +328,7 @@ static void __init smp_psurge_kick_cpu(int nr) ...@@ -328,6 +328,7 @@ static void __init smp_psurge_kick_cpu(int nr)
{ {
unsigned long start = __pa(__secondary_start_pmac_0) + nr * 8; unsigned long start = __pa(__secondary_start_pmac_0) + nr * 8;
unsigned long a; unsigned long a;
int i;
/* may need to flush here if secondary bats aren't setup */ /* may need to flush here if secondary bats aren't setup */
for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32) for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32)
...@@ -340,7 +341,11 @@ static void __init smp_psurge_kick_cpu(int nr) ...@@ -340,7 +341,11 @@ static void __init smp_psurge_kick_cpu(int nr)
mb(); mb();
psurge_set_ipi(nr); psurge_set_ipi(nr);
udelay(10); /*
* We can't use udelay here because the timebase is now frozen.
*/
for (i = 0; i < 2000; ++i)
barrier();
psurge_clr_ipi(nr); psurge_clr_ipi(nr);
if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354); if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354);
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <asm/rtas.h> #include <asm/rtas.h>
#include <asm/sstep.h> #include <asm/sstep.h>
#include <asm/bug.h> #include <asm/bug.h>
#include <asm/irq_regs.h>
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
#include <asm/hvcall.h> #include <asm/hvcall.h>
...@@ -521,13 +522,12 @@ int xmon(struct pt_regs *excp) ...@@ -521,13 +522,12 @@ int xmon(struct pt_regs *excp)
} }
EXPORT_SYMBOL(xmon); EXPORT_SYMBOL(xmon);
irqreturn_t irqreturn_t xmon_irq(int irq, void *d)
xmon_irq(int irq, void *d, struct pt_regs *regs)
{ {
unsigned long flags; unsigned long flags;
local_irq_save(flags); local_irq_save(flags);
printf("Keyboard interrupt\n"); printf("Keyboard interrupt\n");
xmon(regs); xmon(get_irq_regs());
local_irq_restore(flags); local_irq_restore(flags);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -414,7 +414,7 @@ static void siccuart_event(struct SICC_info *info, int event) ...@@ -414,7 +414,7 @@ static void siccuart_event(struct SICC_info *info, int event)
} }
static void static void
siccuart_rx_chars(struct SICC_info *info, struct pt_regs *regs) siccuart_rx_chars(struct SICC_info *info)
{ {
struct tty_struct *tty = info->tty; struct tty_struct *tty = info->tty;
unsigned int status, ch, rsr, flg, ignored = 0; unsigned int status, ch, rsr, flg, ignored = 0;
...@@ -553,15 +553,15 @@ static void siccuart_tx_chars(struct SICC_info *info) ...@@ -553,15 +553,15 @@ static void siccuart_tx_chars(struct SICC_info *info)
} }
static irqreturn_t siccuart_int_rx(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t siccuart_int_rx(int irq, void *dev_id)
{ {
struct SICC_info *info = dev_id; struct SICC_info *info = dev_id;
siccuart_rx_chars(info, regs); siccuart_rx_chars(info)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static irqreturn_t siccuart_int_tx(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t siccuart_int_tx(int irq, void *dev_id)
{ {
struct SICC_info *info = dev_id; struct SICC_info *info = dev_id;
siccuart_tx_chars(info); siccuart_tx_chars(info);
......
...@@ -122,7 +122,7 @@ struct scc_enet_private { ...@@ -122,7 +122,7 @@ struct scc_enet_private {
static int scc_enet_open(struct net_device *dev); static int scc_enet_open(struct net_device *dev);
static int scc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); static int scc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
static int scc_enet_rx(struct net_device *dev); static int scc_enet_rx(struct net_device *dev);
static irqreturn_t scc_enet_interrupt(int irq, void *dev_id, struct pt_regs *); static irqreturn_t scc_enet_interrupt(int irq, void *dev_id);
static int scc_enet_close(struct net_device *dev); static int scc_enet_close(struct net_device *dev);
static struct net_device_stats *scc_enet_get_stats(struct net_device *dev); static struct net_device_stats *scc_enet_get_stats(struct net_device *dev);
static void set_multicast_list(struct net_device *dev); static void set_multicast_list(struct net_device *dev);
...@@ -273,7 +273,7 @@ scc_enet_timeout(struct net_device *dev) ...@@ -273,7 +273,7 @@ scc_enet_timeout(struct net_device *dev)
* This is called from the CPM handler, not the MPC core interrupt. * This is called from the CPM handler, not the MPC core interrupt.
*/ */
static irqreturn_t static irqreturn_t
scc_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs) scc_enet_interrupt(int irq, void * dev_id)
{ {
struct net_device *dev = dev_id; struct net_device *dev = dev_id;
volatile struct scc_enet_private *cep; volatile struct scc_enet_private *cep;
......
...@@ -140,7 +140,7 @@ typedef struct { ...@@ -140,7 +140,7 @@ typedef struct {
static int fcc_enet_open(struct net_device *dev); static int fcc_enet_open(struct net_device *dev);
static int fcc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); static int fcc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
static int fcc_enet_rx(struct net_device *dev); static int fcc_enet_rx(struct net_device *dev);
static irqreturn_t fcc_enet_interrupt(int irq, void *dev_id, struct pt_regs *); static irqreturn_t fcc_enet_interrupt(int irq, void *dev_id);
static int fcc_enet_close(struct net_device *dev); static int fcc_enet_close(struct net_device *dev);
static struct net_device_stats *fcc_enet_get_stats(struct net_device *dev); static struct net_device_stats *fcc_enet_get_stats(struct net_device *dev);
/* static void set_multicast_list(struct net_device *dev); */ /* static void set_multicast_list(struct net_device *dev); */
...@@ -524,7 +524,7 @@ fcc_enet_timeout(struct net_device *dev) ...@@ -524,7 +524,7 @@ fcc_enet_timeout(struct net_device *dev)
/* The interrupt handler. */ /* The interrupt handler. */
static irqreturn_t static irqreturn_t
fcc_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs) fcc_enet_interrupt(int irq, void * dev_id)
{ {
struct net_device *dev = dev_id; struct net_device *dev = dev_id;
volatile struct fcc_enet_private *cep; volatile struct fcc_enet_private *cep;
...@@ -1563,7 +1563,7 @@ mii_discover_phy(uint mii_reg, struct net_device *dev) ...@@ -1563,7 +1563,7 @@ mii_discover_phy(uint mii_reg, struct net_device *dev)
#ifdef PHY_INTERRUPT #ifdef PHY_INTERRUPT
/* This interrupt occurs when the PHY detects a link change. */ /* This interrupt occurs when the PHY detects a link change. */
static irqreturn_t static irqreturn_t
mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs) mii_link_interrupt(int irq, void * dev_id)
{ {
struct net_device *dev = dev_id; struct net_device *dev = dev_id;
struct fcc_enet_private *fep = dev->priv; struct fcc_enet_private *fep = dev->priv;
......
...@@ -47,12 +47,12 @@ cpm8xx_t *cpmp; /* Pointer to comm processor space */ ...@@ -47,12 +47,12 @@ cpm8xx_t *cpmp; /* Pointer to comm processor space */
/* CPM interrupt vector functions. /* CPM interrupt vector functions.
*/ */
struct cpm_action { struct cpm_action {
void (*handler)(void *, struct pt_regs * regs); void (*handler)(void *);
void *dev_id; void *dev_id;
}; };
static struct cpm_action cpm_vecs[CPMVEC_NR]; static struct cpm_action cpm_vecs[CPMVEC_NR];
static irqreturn_t cpm_interrupt(int irq, void * dev, struct pt_regs * regs); static irqreturn_t cpm_interrupt(int irq, void * dev);
static irqreturn_t cpm_error_interrupt(int irq, void *dev, struct pt_regs * regs); static irqreturn_t cpm_error_interrupt(int irq, void *dev);
static void alloc_host_memory(void); static void alloc_host_memory(void);
/* Define a table of names to identify CPM interrupt handlers in /* Define a table of names to identify CPM interrupt handlers in
* /proc/interrupts. * /proc/interrupts.
...@@ -205,7 +205,7 @@ cpm_interrupt_init(void) ...@@ -205,7 +205,7 @@ cpm_interrupt_init(void)
* Get the CPM interrupt vector. * Get the CPM interrupt vector.
*/ */
int int
cpm_get_irq(struct pt_regs *regs) cpm_get_irq(void)
{ {
int cpm_vec; int cpm_vec;
...@@ -222,7 +222,7 @@ cpm_get_irq(struct pt_regs *regs) ...@@ -222,7 +222,7 @@ cpm_get_irq(struct pt_regs *regs)
/* CPM interrupt controller cascade interrupt. /* CPM interrupt controller cascade interrupt.
*/ */
static irqreturn_t static irqreturn_t
cpm_interrupt(int irq, void * dev, struct pt_regs * regs) cpm_interrupt(int irq, void * dev)
{ {
/* This interrupt handler never actually gets called. It is /* This interrupt handler never actually gets called. It is
* installed only to unmask the CPM cascade interrupt in the SIU * installed only to unmask the CPM cascade interrupt in the SIU
...@@ -237,7 +237,7 @@ cpm_interrupt(int irq, void * dev, struct pt_regs * regs) ...@@ -237,7 +237,7 @@ cpm_interrupt(int irq, void * dev, struct pt_regs * regs)
* tests in the interrupt handler. * tests in the interrupt handler.
*/ */
static irqreturn_t static irqreturn_t
cpm_error_interrupt(int irq, void *dev, struct pt_regs *regs) cpm_error_interrupt(int irq, void *dev)
{ {
return IRQ_HANDLED; return IRQ_HANDLED;
} }
...@@ -246,11 +246,11 @@ cpm_error_interrupt(int irq, void *dev, struct pt_regs *regs) ...@@ -246,11 +246,11 @@ cpm_error_interrupt(int irq, void *dev, struct pt_regs *regs)
* request_irq() to the handler prototype required by cpm_install_handler(). * request_irq() to the handler prototype required by cpm_install_handler().
*/ */
static irqreturn_t static irqreturn_t
cpm_handler_helper(int irq, void *dev_id, struct pt_regs *regs) cpm_handler_helper(int irq, void *dev_id)
{ {
int cpm_vec = irq - CPM_IRQ_OFFSET; int cpm_vec = irq - CPM_IRQ_OFFSET;
(*cpm_vecs[cpm_vec].handler)(dev_id, regs); (*cpm_vecs[cpm_vec].handler)(dev_id);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
...@@ -267,8 +267,7 @@ cpm_handler_helper(int irq, void *dev_id, struct pt_regs *regs) ...@@ -267,8 +267,7 @@ cpm_handler_helper(int irq, void *dev_id, struct pt_regs *regs)
* request_irq() or cpm_install_handler(). * request_irq() or cpm_install_handler().
*/ */
void void
cpm_install_handler(int cpm_vec, void (*handler)(void *, struct pt_regs *regs), cpm_install_handler(int cpm_vec, void (*handler)(void *), void *dev_id)
void *dev_id)
{ {
int err; int err;
......
...@@ -331,7 +331,7 @@ static int CS_SetFormat(int format); ...@@ -331,7 +331,7 @@ static int CS_SetFormat(int format);
static int CS_SetVolume(int volume); static int CS_SetVolume(int volume);
static void cs4218_tdm_tx_intr(void *devid); static void cs4218_tdm_tx_intr(void *devid);
static void cs4218_tdm_rx_intr(void *devid); static void cs4218_tdm_rx_intr(void *devid);
static void cs4218_intr(void *devid, struct pt_regs *regs); static void cs4218_intr(void *devid);
static int cs_get_volume(uint reg); static int cs_get_volume(uint reg);
static int cs_volume_setter(int volume, int mute); static int cs_volume_setter(int volume, int mute);
static int cs_get_gain(uint reg); static int cs_get_gain(uint reg);
...@@ -2646,7 +2646,7 @@ int __init tdm8xx_sound_init(void) ...@@ -2646,7 +2646,7 @@ int __init tdm8xx_sound_init(void)
* full duplex operation. * full duplex operation.
*/ */
static void static void
cs4218_intr(void *dev_id, struct pt_regs *regs) cs4218_intr(void *dev_id)
{ {
volatile smc_t *sp; volatile smc_t *sp;
volatile cpm8xx_t *cp; volatile cpm8xx_t *cp;
......
...@@ -149,7 +149,7 @@ struct scc_enet_private { ...@@ -149,7 +149,7 @@ struct scc_enet_private {
static int scc_enet_open(struct net_device *dev); static int scc_enet_open(struct net_device *dev);
static int scc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); static int scc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
static int scc_enet_rx(struct net_device *dev); static int scc_enet_rx(struct net_device *dev);
static void scc_enet_interrupt(void *dev_id, struct pt_regs *regs); static void scc_enet_interrupt(void *dev_id);
static int scc_enet_close(struct net_device *dev); static int scc_enet_close(struct net_device *dev);
static struct net_device_stats *scc_enet_get_stats(struct net_device *dev); static struct net_device_stats *scc_enet_get_stats(struct net_device *dev);
static void set_multicast_list(struct net_device *dev); static void set_multicast_list(struct net_device *dev);
...@@ -305,7 +305,7 @@ scc_enet_timeout(struct net_device *dev) ...@@ -305,7 +305,7 @@ scc_enet_timeout(struct net_device *dev)
* This is called from the CPM handler, not the MPC core interrupt. * This is called from the CPM handler, not the MPC core interrupt.
*/ */
static void static void
scc_enet_interrupt(void *dev_id, struct pt_regs *regs) scc_enet_interrupt(void *dev_id)
{ {
struct net_device *dev = dev_id; struct net_device *dev = dev_id;
volatile struct scc_enet_private *cep; volatile struct scc_enet_private *cep;
......
...@@ -198,8 +198,7 @@ static int fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); ...@@ -198,8 +198,7 @@ static int fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
#ifdef CONFIG_USE_MDIO #ifdef CONFIG_USE_MDIO
static void fec_enet_mii(struct net_device *dev); static void fec_enet_mii(struct net_device *dev);
#endif /* CONFIG_USE_MDIO */ #endif /* CONFIG_USE_MDIO */
static irqreturn_t fec_enet_interrupt(int irq, void * dev_id, static irqreturn_t fec_enet_interrupt(int irq, void * dev_id);
struct pt_regs * regs);
#ifdef CONFIG_FEC_PACKETHOOK #ifdef CONFIG_FEC_PACKETHOOK
static void fec_enet_tx(struct net_device *dev, __u32 regval); static void fec_enet_tx(struct net_device *dev, __u32 regval);
static void fec_enet_rx(struct net_device *dev, __u32 regval); static void fec_enet_rx(struct net_device *dev, __u32 regval);
...@@ -472,7 +471,7 @@ fec_timeout(struct net_device *dev) ...@@ -472,7 +471,7 @@ fec_timeout(struct net_device *dev)
* This is called from the MPC core interrupt. * This is called from the MPC core interrupt.
*/ */
static irqreturn_t static irqreturn_t
fec_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs) fec_enet_interrupt(int irq, void * dev_id)
{ {
struct net_device *dev = dev_id; struct net_device *dev = dev_id;
volatile fec_t *fecp; volatile fec_t *fecp;
...@@ -1408,7 +1407,7 @@ static ...@@ -1408,7 +1407,7 @@ static
#ifdef CONFIG_RPXCLASSIC #ifdef CONFIG_RPXCLASSIC
void mii_link_interrupt(void *dev_id) void mii_link_interrupt(void *dev_id)
#else #else
irqreturn_t mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs) irqreturn_t mii_link_interrupt(int irq, void * dev_id)
#endif #endif
{ {
#ifdef CONFIG_USE_MDIO #ifdef CONFIG_USE_MDIO
......
...@@ -84,7 +84,7 @@ smp_message_pass(int target, int msg) ...@@ -84,7 +84,7 @@ smp_message_pass(int target, int msg)
/* /*
* Common functions * Common functions
*/ */
void smp_message_recv(int msg, struct pt_regs *regs) void smp_message_recv(int msg)
{ {
atomic_inc(&ipi_recv); atomic_inc(&ipi_recv);
...@@ -100,7 +100,7 @@ void smp_message_recv(int msg, struct pt_regs *regs) ...@@ -100,7 +100,7 @@ void smp_message_recv(int msg, struct pt_regs *regs)
break; break;
#ifdef CONFIG_XMON #ifdef CONFIG_XMON
case PPC_MSG_XMON_BREAK: case PPC_MSG_XMON_BREAK:
xmon(regs); xmon(get_irq_regs());
break; break;
#endif /* CONFIG_XMON */ #endif /* CONFIG_XMON */
default: default:
......
...@@ -492,7 +492,7 @@ apus_halt(void) ...@@ -492,7 +492,7 @@ apus_halt(void)
static unsigned char last_ipl[8]; static unsigned char last_ipl[8];
int apus_get_irq(struct pt_regs* regs) int apus_get_irq(void)
{ {
unsigned char ipl_emu, mask; unsigned char ipl_emu, mask;
unsigned int level; unsigned int level;
......
...@@ -659,8 +659,7 @@ static void __init hdpu_map_io(void) ...@@ -659,8 +659,7 @@ static void __init hdpu_map_io(void)
char hdpu_smp0[] = "SMP Cpu #0"; char hdpu_smp0[] = "SMP Cpu #0";
char hdpu_smp1[] = "SMP Cpu #1"; char hdpu_smp1[] = "SMP Cpu #1";
static irqreturn_t hdpu_smp_cpu0_int_handler(int irq, void *dev_id, static irqreturn_t hdpu_smp_cpu0_int_handler(int irq, void *dev_id)
struct pt_regs *regs)
{ {
volatile unsigned int doorbell; volatile unsigned int doorbell;
...@@ -670,22 +669,21 @@ static irqreturn_t hdpu_smp_cpu0_int_handler(int irq, void *dev_id, ...@@ -670,22 +669,21 @@ static irqreturn_t hdpu_smp_cpu0_int_handler(int irq, void *dev_id,
mv64x60_write(&bh, MV64360_CPU0_DOORBELL_CLR, doorbell); mv64x60_write(&bh, MV64360_CPU0_DOORBELL_CLR, doorbell);
if (doorbell & 1) { if (doorbell & 1) {
smp_message_recv(0, regs); smp_message_recv(0);
} }
if (doorbell & 2) { if (doorbell & 2) {
smp_message_recv(1, regs); smp_message_recv(1);
} }
if (doorbell & 4) { if (doorbell & 4) {
smp_message_recv(2, regs); smp_message_recv(2);
} }
if (doorbell & 8) { if (doorbell & 8) {
smp_message_recv(3, regs); smp_message_recv(3);
} }
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static irqreturn_t hdpu_smp_cpu1_int_handler(int irq, void *dev_id, static irqreturn_t hdpu_smp_cpu1_int_handler(int irq, void *dev_id)
struct pt_regs *regs)
{ {
volatile unsigned int doorbell; volatile unsigned int doorbell;
...@@ -695,16 +693,16 @@ static irqreturn_t hdpu_smp_cpu1_int_handler(int irq, void *dev_id, ...@@ -695,16 +693,16 @@ static irqreturn_t hdpu_smp_cpu1_int_handler(int irq, void *dev_id,
mv64x60_write(&bh, MV64360_CPU1_DOORBELL_CLR, doorbell); mv64x60_write(&bh, MV64360_CPU1_DOORBELL_CLR, doorbell);
if (doorbell & 1) { if (doorbell & 1) {
smp_message_recv(0, regs); smp_message_recv(0);
} }
if (doorbell & 2) { if (doorbell & 2) {
smp_message_recv(1, regs); smp_message_recv(1);
} }
if (doorbell & 4) { if (doorbell & 4) {
smp_message_recv(2, regs); smp_message_recv(2);
} }
if (doorbell & 8) { if (doorbell & 8) {
smp_message_recv(3, regs); smp_message_recv(3);
} }
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -451,11 +451,11 @@ static void __init ppc7d_calibrate_decr(void) ...@@ -451,11 +451,11 @@ static void __init ppc7d_calibrate_decr(void)
* Interrupt stuff * Interrupt stuff
*****************************************************************************/ *****************************************************************************/
static irqreturn_t ppc7d_i8259_intr(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t ppc7d_i8259_intr(int irq, void *dev_id)
{ {
u32 temp = mv64x60_read(&bh, MV64x60_GPP_INTR_CAUSE); u32 temp = mv64x60_read(&bh, MV64x60_GPP_INTR_CAUSE);
if (temp & (1 << 28)) { if (temp & (1 << 28)) {
i8259_irq(regs); i8259_irq();
mv64x60_write(&bh, MV64x60_GPP_INTR_CAUSE, temp & (~(1 << 28))); mv64x60_write(&bh, MV64x60_GPP_INTR_CAUSE, temp & (~(1 << 28)));
return IRQ_HANDLED; return IRQ_HANDLED;
} }
...@@ -536,13 +536,13 @@ static u32 ppc7d_irq_canonicalize(u32 irq) ...@@ -536,13 +536,13 @@ static u32 ppc7d_irq_canonicalize(u32 irq)
return irq; return irq;
} }
static int ppc7d_get_irq(struct pt_regs *regs) static int ppc7d_get_irq(void)
{ {
int irq; int irq;
irq = mv64360_get_irq(regs); irq = mv64360_get_irq();
if (irq == (mv64360_irq_base + MV64x60_IRQ_GPP28)) if (irq == (mv64360_irq_base + MV64x60_IRQ_GPP28))
irq = i8259_irq(regs); irq = i8259_irq();
return irq; return irq;
} }
......
...@@ -121,7 +121,7 @@ struct hw_interrupt_type sbc82xx_i8259_ic = { ...@@ -121,7 +121,7 @@ struct hw_interrupt_type sbc82xx_i8259_ic = {
.end = sbc82xx_i8259_end_irq, .end = sbc82xx_i8259_end_irq,
}; };
static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id)
{ {
spin_lock(&sbc82xx_i8259_lock); spin_lock(&sbc82xx_i8259_lock);
...@@ -139,7 +139,7 @@ static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id, struct pt_regs *re ...@@ -139,7 +139,7 @@ static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id, struct pt_regs *re
return IRQ_HANDLED; return IRQ_HANDLED;
} }
} }
__do_IRQ(NR_SIU_INTS + irq, regs); __do_IRQ(NR_SIU_INTS + irq);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -91,6 +91,6 @@ extern struct hw_interrupt_type cpc700_pic; ...@@ -91,6 +91,6 @@ extern struct hw_interrupt_type cpc700_pic;
extern unsigned int cpc700_irq_assigns[32][2]; extern unsigned int cpc700_irq_assigns[32][2];
extern void __init cpc700_init_IRQ(void); extern void __init cpc700_init_IRQ(void);
extern int cpc700_get_irq(struct pt_regs *); extern int cpc700_get_irq(void);
#endif /* __PPC_SYSLIB_CPC700_H__ */ #endif /* __PPC_SYSLIB_CPC700_H__ */
...@@ -158,7 +158,7 @@ cpc700_init_IRQ(void) ...@@ -158,7 +158,7 @@ cpc700_init_IRQ(void)
* Find the highest IRQ that generating an interrupt, if any. * Find the highest IRQ that generating an interrupt, if any.
*/ */
int int
cpc700_get_irq(struct pt_regs *regs) cpc700_get_irq(void)
{ {
int irq = 0; int irq = 0;
u_int irq_status, irq_test = 1; u_int irq_status, irq_test = 1;
......
...@@ -123,7 +123,7 @@ static struct hw_interrupt_type cpm2_pic = { ...@@ -123,7 +123,7 @@ static struct hw_interrupt_type cpm2_pic = {
.end = cpm2_end_irq, .end = cpm2_end_irq,
}; };
int cpm2_get_irq(struct pt_regs *regs) int cpm2_get_irq(void)
{ {
int irq; int irq;
unsigned long bits; unsigned long bits;
......
#ifndef _PPC_KERNEL_CPM2_H #ifndef _PPC_KERNEL_CPM2_H
#define _PPC_KERNEL_CPM2_H #define _PPC_KERNEL_CPM2_H
extern int cpm2_get_irq(struct pt_regs *regs); extern int cpm2_get_irq(void);
extern void cpm2_init_IRQ(void); extern void cpm2_init_IRQ(void);
......
...@@ -110,9 +110,6 @@ gt64260_init_irq(void) ...@@ -110,9 +110,6 @@ gt64260_init_irq(void)
* This function returns the lowest interrupt number of all interrupts that * This function returns the lowest interrupt number of all interrupts that
* are currently asserted. * are currently asserted.
* *
* Input Variable(s):
* struct pt_regs* not used
*
* Output Variable(s): * Output Variable(s):
* None. * None.
* *
...@@ -120,7 +117,7 @@ gt64260_init_irq(void) ...@@ -120,7 +117,7 @@ gt64260_init_irq(void)
* int <interrupt number> or -2 (bogus interrupt) * int <interrupt number> or -2 (bogus interrupt)
*/ */
int int
gt64260_get_irq(struct pt_regs *regs) gt64260_get_irq(void)
{ {
int irq; int irq;
int irq_gpp; int irq_gpp;
...@@ -229,7 +226,7 @@ gt64260_mask_irq(unsigned int irq) ...@@ -229,7 +226,7 @@ gt64260_mask_irq(unsigned int irq)
} }
static irqreturn_t static irqreturn_t
gt64260_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) gt64260_cpu_error_int_handler(int irq, void *dev_id)
{ {
printk(KERN_ERR "gt64260_cpu_error_int_handler: %s 0x%08x\n", printk(KERN_ERR "gt64260_cpu_error_int_handler: %s 0x%08x\n",
"Error on CPU interface - Cause regiser", "Error on CPU interface - Cause regiser",
...@@ -250,7 +247,7 @@ gt64260_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) ...@@ -250,7 +247,7 @@ gt64260_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs)
} }
static irqreturn_t static irqreturn_t
gt64260_pci_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) gt64260_pci_error_int_handler(int irq, void *dev_id)
{ {
u32 val; u32 val;
unsigned int pci_bus = (unsigned int)dev_id; unsigned int pci_bus = (unsigned int)dev_id;
......
...@@ -119,7 +119,7 @@ static inline u32 l2c_diag(u32 addr) ...@@ -119,7 +119,7 @@ static inline u32 l2c_diag(u32 addr)
return mfdcr(DCRN_L2C0_DATA); return mfdcr(DCRN_L2C0_DATA);
} }
static irqreturn_t l2c_error_handler(int irq, void* dev, struct pt_regs* regs) static irqreturn_t l2c_error_handler(int irq, void* dev)
{ {
u32 sr = mfdcr(DCRN_L2C0_SR); u32 sr = mfdcr(DCRN_L2C0_SR);
if (sr & L2C_SR_CPE){ if (sr & L2C_SR_CPE){
......
...@@ -601,7 +601,7 @@ void ipic_clear_mcp_status(u32 mask) ...@@ -601,7 +601,7 @@ void ipic_clear_mcp_status(u32 mask)
} }
/* Return an interrupt vector or -1 if no interrupt is pending. */ /* Return an interrupt vector or -1 if no interrupt is pending. */
int ipic_get_irq(struct pt_regs *regs) int ipic_get_irq(void)
{ {
int irq; int irq;
......
...@@ -117,7 +117,7 @@ struct hw_interrupt_type pq2pci_ic = { ...@@ -117,7 +117,7 @@ struct hw_interrupt_type pq2pci_ic = {
}; };
static irqreturn_t static irqreturn_t
pq2pci_irq_demux(int irq, void *dev_id, struct pt_regs *regs) pq2pci_irq_demux(int irq, void *dev_id)
{ {
unsigned long stat, mask, pend; unsigned long stat, mask, pend;
int bit; int bit;
...@@ -130,7 +130,7 @@ pq2pci_irq_demux(int irq, void *dev_id, struct pt_regs *regs) ...@@ -130,7 +130,7 @@ pq2pci_irq_demux(int irq, void *dev_id, struct pt_regs *regs)
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(NR_CPM_INTS + bit, regs); __do_IRQ(NR_CPM_INTS + bit);
} }
} }
......
...@@ -169,7 +169,7 @@ abort(void) ...@@ -169,7 +169,7 @@ abort(void)
} }
/* A place holder for time base interrupts, if they are ever enabled. */ /* A place holder for time base interrupts, if they are ever enabled. */
irqreturn_t timebase_interrupt(int irq, void * dev, struct pt_regs * regs) irqreturn_t timebase_interrupt(int irq, void * dev)
{ {
printk ("timebase_interrupt()\n"); printk ("timebase_interrupt()\n");
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
static int wdt_timeout; static int wdt_timeout;
int m8xx_has_internal_rtc = 0; int m8xx_has_internal_rtc = 0;
static irqreturn_t m8xx_wdt_interrupt(int, void *, struct pt_regs *); static irqreturn_t m8xx_wdt_interrupt(int, void *);
static struct irqaction m8xx_wdt_irqaction = { static struct irqaction m8xx_wdt_irqaction = {
.handler = m8xx_wdt_interrupt, .handler = m8xx_wdt_interrupt,
.name = "watchdog", .name = "watchdog",
...@@ -35,7 +35,7 @@ void m8xx_wdt_reset(void) ...@@ -35,7 +35,7 @@ void m8xx_wdt_reset(void)
out_be16(&imap->im_siu_conf.sc_swsr, 0xaa39); /* write magic2 */ out_be16(&imap->im_siu_conf.sc_swsr, 0xaa39); /* write magic2 */
} }
static irqreturn_t m8xx_wdt_interrupt(int irq, void *dev, struct pt_regs *regs) static irqreturn_t m8xx_wdt_interrupt(int irq, void *dev)
{ {
volatile immap_t *imap = (volatile immap_t *)IMAP_ADDR; volatile immap_t *imap = (volatile immap_t *)IMAP_ADDR;
......
...@@ -220,7 +220,7 @@ mpc52xx_init_irq(void) ...@@ -220,7 +220,7 @@ mpc52xx_init_irq(void)
} }
int int
mpc52xx_get_irq(struct pt_regs *regs) mpc52xx_get_irq(void)
{ {
u32 status; u32 status;
int irq = -1; int irq = -1;
......
...@@ -55,10 +55,9 @@ ...@@ -55,10 +55,9 @@
static void mv64360_unmask_irq(unsigned int); static void mv64360_unmask_irq(unsigned int);
static void mv64360_mask_irq(unsigned int); static void mv64360_mask_irq(unsigned int);
static irqreturn_t mv64360_cpu_error_int_handler(int, void *, struct pt_regs *); static irqreturn_t mv64360_cpu_error_int_handler(int, void *);
static irqreturn_t mv64360_sram_error_int_handler(int, void *, static irqreturn_t mv64360_sram_error_int_handler(int, void *);
struct pt_regs *); static irqreturn_t mv64360_pci_error_int_handler(int, void *);
static irqreturn_t mv64360_pci_error_int_handler(int, void *, struct pt_regs *);
/* ========================== local declarations =========================== */ /* ========================== local declarations =========================== */
...@@ -131,9 +130,6 @@ mv64360_init_irq(void) ...@@ -131,9 +130,6 @@ mv64360_init_irq(void)
* This function returns the lowest interrupt number of all interrupts that * This function returns the lowest interrupt number of all interrupts that
* are currently asserted. * are currently asserted.
* *
* Input Variable(s):
* struct pt_regs* not used
*
* Output Variable(s): * Output Variable(s):
* None. * None.
* *
...@@ -142,7 +138,7 @@ mv64360_init_irq(void) ...@@ -142,7 +138,7 @@ mv64360_init_irq(void)
* *
*/ */
int int
mv64360_get_irq(struct pt_regs *regs) mv64360_get_irq(void)
{ {
int irq; int irq;
int irq_gpp; int irq_gpp;
...@@ -283,7 +279,7 @@ mv64360_mask_irq(unsigned int irq) ...@@ -283,7 +279,7 @@ mv64360_mask_irq(unsigned int irq)
} }
static irqreturn_t static irqreturn_t
mv64360_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) mv64360_cpu_error_int_handler(int irq, void *dev_id)
{ {
printk(KERN_ERR "mv64360_cpu_error_int_handler: %s 0x%08x\n", printk(KERN_ERR "mv64360_cpu_error_int_handler: %s 0x%08x\n",
"Error on CPU interface - Cause regiser", "Error on CPU interface - Cause regiser",
...@@ -304,7 +300,7 @@ mv64360_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) ...@@ -304,7 +300,7 @@ mv64360_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs)
} }
static irqreturn_t static irqreturn_t
mv64360_sram_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) mv64360_sram_error_int_handler(int irq, void *dev_id)
{ {
printk(KERN_ERR "mv64360_sram_error_int_handler: %s 0x%08x\n", printk(KERN_ERR "mv64360_sram_error_int_handler: %s 0x%08x\n",
"Error in internal SRAM - Cause register", "Error in internal SRAM - Cause register",
...@@ -325,7 +321,7 @@ mv64360_sram_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) ...@@ -325,7 +321,7 @@ mv64360_sram_error_int_handler(int irq, void *dev_id, struct pt_regs *regs)
} }
static irqreturn_t static irqreturn_t
mv64360_pci_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) mv64360_pci_error_int_handler(int irq, void *dev_id)
{ {
u32 val; u32 val;
unsigned int pci_bus = (unsigned int)dev_id; unsigned int pci_bus = (unsigned int)dev_id;
......
...@@ -529,7 +529,7 @@ static void openpic2_end_irq(unsigned int irq_nr) ...@@ -529,7 +529,7 @@ static void openpic2_end_irq(unsigned int irq_nr)
} }
int int
openpic2_get_irq(struct pt_regs *regs) openpic2_get_irq(void)
{ {
int irq = openpic2_irq(); int irq = openpic2_irq();
......
...@@ -42,7 +42,7 @@ static struct hw_interrupt_type ppc403_aic = { ...@@ -42,7 +42,7 @@ static struct hw_interrupt_type ppc403_aic = {
}; };
int int
ppc403_pic_get_irq(struct pt_regs *regs) ppc403_pic_get_irq(void)
{ {
int irq; int irq;
unsigned long bits; unsigned long bits;
......
...@@ -96,7 +96,7 @@ UIC_HANDLERS(1); ...@@ -96,7 +96,7 @@ UIC_HANDLERS(1);
UIC_HANDLERS(2); UIC_HANDLERS(2);
UIC_HANDLERS(3); UIC_HANDLERS(3);
static int ppc4xx_pic_get_irq(struct pt_regs *regs) static int ppc4xx_pic_get_irq(void)
{ {
u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0)); u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0));
if (uic0 & UIC0_UIC1NC) if (uic0 & UIC0_UIC1NC)
...@@ -125,7 +125,7 @@ UIC_HANDLERS(0); ...@@ -125,7 +125,7 @@ UIC_HANDLERS(0);
UIC_HANDLERS(1); UIC_HANDLERS(1);
UIC_HANDLERS(2); UIC_HANDLERS(2);
static int ppc4xx_pic_get_irq(struct pt_regs *regs) static int ppc4xx_pic_get_irq(void)
{ {
u32 uicb = mfdcr(DCRN_UIC_MSR(UICB)); u32 uicb = mfdcr(DCRN_UIC_MSR(UICB));
if (uicb & UICB_UIC0NC) if (uicb & UICB_UIC0NC)
...@@ -158,7 +158,7 @@ static void __init ppc4xx_pic_impl_init(void) ...@@ -158,7 +158,7 @@ static void __init ppc4xx_pic_impl_init(void)
UIC_HANDLERS(0); UIC_HANDLERS(0);
UIC_HANDLERS(1); UIC_HANDLERS(1);
static int ppc4xx_pic_get_irq(struct pt_regs *regs) static int ppc4xx_pic_get_irq(void)
{ {
u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0)); u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0));
if (uic0 & UIC0_UIC1NC) if (uic0 & UIC0_UIC1NC)
...@@ -179,7 +179,7 @@ static void __init ppc4xx_pic_impl_init(void) ...@@ -179,7 +179,7 @@ static void __init ppc4xx_pic_impl_init(void)
#define ACK_UIC0_PARENT #define ACK_UIC0_PARENT
UIC_HANDLERS(0); UIC_HANDLERS(0);
static int ppc4xx_pic_get_irq(struct pt_regs *regs) static int ppc4xx_pic_get_irq(void)
{ {
u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0)); u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0));
return uic0 ? 32 - ffs(uic0) : -1; return uic0 ? 32 - ffs(uic0) : -1;
......
...@@ -349,13 +349,12 @@ EXPORT_SYMBOL_GPL(rio_hw_add_outb_message); ...@@ -349,13 +349,12 @@ EXPORT_SYMBOL_GPL(rio_hw_add_outb_message);
* mpc85xx_rio_tx_handler - MPC85xx outbound message interrupt handler * mpc85xx_rio_tx_handler - MPC85xx outbound message interrupt handler
* @irq: Linux interrupt number * @irq: Linux interrupt number
* @dev_instance: Pointer to interrupt-specific data * @dev_instance: Pointer to interrupt-specific data
* @regs: Register context
* *
* Handles outbound message interrupts. Executes a register outbound * Handles outbound message interrupts. Executes a register outbound
* mailbox event handler and acks the interrupt occurence. * mailbox event handler and acks the interrupt occurence.
*/ */
static irqreturn_t static irqreturn_t
mpc85xx_rio_tx_handler(int irq, void *dev_instance, struct pt_regs *regs) mpc85xx_rio_tx_handler(int irq, void *dev_instance)
{ {
int osr; int osr;
struct rio_mport *port = (struct rio_mport *)dev_instance; struct rio_mport *port = (struct rio_mport *)dev_instance;
...@@ -517,13 +516,12 @@ void rio_close_outb_mbox(struct rio_mport *mport, int mbox) ...@@ -517,13 +516,12 @@ void rio_close_outb_mbox(struct rio_mport *mport, int mbox)
* mpc85xx_rio_rx_handler - MPC85xx inbound message interrupt handler * mpc85xx_rio_rx_handler - MPC85xx inbound message interrupt handler
* @irq: Linux interrupt number * @irq: Linux interrupt number
* @dev_instance: Pointer to interrupt-specific data * @dev_instance: Pointer to interrupt-specific data
* @regs: Register context
* *
* Handles inbound message interrupts. Executes a registered inbound * Handles inbound message interrupts. Executes a registered inbound
* mailbox event handler and acks the interrupt occurence. * mailbox event handler and acks the interrupt occurence.
*/ */
static irqreturn_t static irqreturn_t
mpc85xx_rio_rx_handler(int irq, void *dev_instance, struct pt_regs *regs) mpc85xx_rio_rx_handler(int irq, void *dev_instance)
{ {
int isr; int isr;
struct rio_mport *port = (struct rio_mport *)dev_instance; struct rio_mport *port = (struct rio_mport *)dev_instance;
...@@ -736,13 +734,12 @@ EXPORT_SYMBOL_GPL(rio_hw_get_inb_message); ...@@ -736,13 +734,12 @@ EXPORT_SYMBOL_GPL(rio_hw_get_inb_message);
* mpc85xx_rio_dbell_handler - MPC85xx doorbell interrupt handler * mpc85xx_rio_dbell_handler - MPC85xx doorbell interrupt handler
* @irq: Linux interrupt number * @irq: Linux interrupt number
* @dev_instance: Pointer to interrupt-specific data * @dev_instance: Pointer to interrupt-specific data
* @regs: Register context
* *
* Handles doorbell interrupts. Parses a list of registered * Handles doorbell interrupts. Parses a list of registered
* doorbell event handlers and executes a matching event handler. * doorbell event handlers and executes a matching event handler.
*/ */
static irqreturn_t static irqreturn_t
mpc85xx_rio_dbell_handler(int irq, void *dev_instance, struct pt_regs *regs) mpc85xx_rio_dbell_handler(int irq, void *dev_instance)
{ {
int dsr; int dsr;
struct rio_mport *port = (struct rio_mport *)dev_instance; struct rio_mport *port = (struct rio_mport *)dev_instance;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include <asm/mpc8xx.h> #include <asm/mpc8xx.h>
#include "ppc8xx_pic.h" #include "ppc8xx_pic.h"
extern int cpm_get_irq(struct pt_regs *regs); extern int cpm_get_irq(void);
/* The 8xx internal interrupt controller. It is usually /* The 8xx internal interrupt controller. It is usually
* the only interrupt controller. Some boards, like the MBX and * the only interrupt controller. Some boards, like the MBX and
...@@ -96,7 +96,7 @@ m8xx_get_irq(struct pt_regs *regs) ...@@ -96,7 +96,7 @@ m8xx_get_irq(struct pt_regs *regs)
* get back SIU_LEVEL7. In this case, return -1 * get back SIU_LEVEL7. In this case, return -1
*/ */
if (irq == CPM_INTERRUPT) if (irq == CPM_INTERRUPT)
irq = CPM_IRQ_OFFSET + cpm_get_irq(regs); irq = CPM_IRQ_OFFSET + cpm_get_irq();
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
else if (irq == ISA_BRIDGE_INT) { else if (irq == ISA_BRIDGE_INT) {
int isa_irq; int isa_irq;
......
...@@ -86,7 +86,7 @@ static struct hw_interrupt_type xilinx_intc = { ...@@ -86,7 +86,7 @@ static struct hw_interrupt_type xilinx_intc = {
}; };
int int
xilinx_pic_get_irq(struct pt_regs *regs) xilinx_pic_get_irq(void)
{ {
int irq; int irq;
......
...@@ -182,9 +182,9 @@ static const struct i2c_algorithm i2c_powermac_algorithm = { ...@@ -182,9 +182,9 @@ static const struct i2c_algorithm i2c_powermac_algorithm = {
}; };
static int i2c_powermac_remove(struct device *dev) static int i2c_powermac_remove(struct platform_device *dev)
{ {
struct i2c_adapter *adapter = dev_get_drvdata(dev); struct i2c_adapter *adapter = platform_get_drvdata(dev);
struct pmac_i2c_bus *bus = i2c_get_adapdata(adapter); struct pmac_i2c_bus *bus = i2c_get_adapdata(adapter);
int rc; int rc;
...@@ -195,16 +195,16 @@ static int i2c_powermac_remove(struct device *dev) ...@@ -195,16 +195,16 @@ static int i2c_powermac_remove(struct device *dev)
if (rc) if (rc)
printk("i2c-powermac.c: Failed to remove bus %s !\n", printk("i2c-powermac.c: Failed to remove bus %s !\n",
adapter->name); adapter->name);
dev_set_drvdata(dev, NULL); platform_set_drvdata(dev, NULL);
kfree(adapter); kfree(adapter);
return 0; return 0;
} }
static int i2c_powermac_probe(struct device *dev) static int __devexit i2c_powermac_probe(struct platform_device *dev)
{ {
struct pmac_i2c_bus *bus = dev->platform_data; struct pmac_i2c_bus *bus = dev->dev.platform_data;
struct device_node *parent = NULL; struct device_node *parent = NULL;
struct i2c_adapter *adapter; struct i2c_adapter *adapter;
char name[32]; char name[32];
...@@ -246,11 +246,11 @@ static int i2c_powermac_probe(struct device *dev) ...@@ -246,11 +246,11 @@ static int i2c_powermac_probe(struct device *dev)
printk(KERN_ERR "i2c-powermac: can't allocate inteface !\n"); printk(KERN_ERR "i2c-powermac: can't allocate inteface !\n");
return -ENOMEM; return -ENOMEM;
} }
dev_set_drvdata(dev, adapter); platform_set_drvdata(dev, adapter);
strcpy(adapter->name, name); strcpy(adapter->name, name);
adapter->algo = &i2c_powermac_algorithm; adapter->algo = &i2c_powermac_algorithm;
i2c_set_adapdata(adapter, bus); i2c_set_adapdata(adapter, bus);
adapter->dev.parent = dev; adapter->dev.parent = &dev->dev;
pmac_i2c_attach_adapter(bus, adapter); pmac_i2c_attach_adapter(bus, adapter);
rc = i2c_add_adapter(adapter); rc = i2c_add_adapter(adapter);
if (rc) { if (rc) {
...@@ -265,23 +265,25 @@ static int i2c_powermac_probe(struct device *dev) ...@@ -265,23 +265,25 @@ static int i2c_powermac_probe(struct device *dev)
} }
static struct device_driver i2c_powermac_driver = { static struct platform_driver i2c_powermac_driver = {
.probe = i2c_powermac_probe,
.remove = __devexit_p(i2c_powermac_remove),
.driver = {
.name = "i2c-powermac", .name = "i2c-powermac",
.bus = &platform_bus_type, .bus = &platform_bus_type,
.probe = i2c_powermac_probe, },
.remove = i2c_powermac_remove,
}; };
static int __init i2c_powermac_init(void) static int __init i2c_powermac_init(void)
{ {
driver_register(&i2c_powermac_driver); platform_driver_register(&i2c_powermac_driver);
return 0; return 0;
} }
static void __exit i2c_powermac_cleanup(void) static void __exit i2c_powermac_cleanup(void)
{ {
driver_unregister(&i2c_powermac_driver); platform_driver_unregister(&i2c_powermac_driver);
} }
module_init(i2c_powermac_init); module_init(i2c_powermac_init);
......
...@@ -650,24 +650,26 @@ static struct notifier_block pm112_events = { ...@@ -650,24 +650,26 @@ static struct notifier_block pm112_events = {
.notifier_call = pm112_wf_notify, .notifier_call = pm112_wf_notify,
}; };
static int wf_pm112_probe(struct device *dev) static int wf_pm112_probe(struct platform_device *dev)
{ {
wf_register_client(&pm112_events); wf_register_client(&pm112_events);
return 0; return 0;
} }
static int wf_pm112_remove(struct device *dev) static int __devexit wf_pm112_remove(struct platform_device *dev)
{ {
wf_unregister_client(&pm112_events); wf_unregister_client(&pm112_events);
/* should release all sensors and controls */ /* should release all sensors and controls */
return 0; return 0;
} }
static struct device_driver wf_pm112_driver = { static struct platform_driver wf_pm112_driver = {
.probe = wf_pm112_probe,
.remove = __devexit_p(wf_pm112_remove),
.driver = {
.name = "windfarm", .name = "windfarm",
.bus = &platform_bus_type, .bus = &platform_bus_type,
.probe = wf_pm112_probe, },
.remove = wf_pm112_remove,
}; };
static int __init wf_pm112_init(void) static int __init wf_pm112_init(void)
...@@ -683,13 +685,13 @@ static int __init wf_pm112_init(void) ...@@ -683,13 +685,13 @@ static int __init wf_pm112_init(void)
++nr_cores; ++nr_cores;
printk(KERN_INFO "windfarm: initializing for dual-core desktop G5\n"); printk(KERN_INFO "windfarm: initializing for dual-core desktop G5\n");
driver_register(&wf_pm112_driver); platform_driver_register(&wf_pm112_driver);
return 0; return 0;
} }
static void __exit wf_pm112_exit(void) static void __exit wf_pm112_exit(void)
{ {
driver_unregister(&wf_pm112_driver); platform_driver_unregister(&wf_pm112_driver);
} }
module_init(wf_pm112_init); module_init(wf_pm112_init);
......
...@@ -131,8 +131,6 @@ ...@@ -131,8 +131,6 @@
static int wf_smu_mach_model; /* machine model id */ static int wf_smu_mach_model; /* machine model id */
static struct device *wf_smu_dev;
/* Controls & sensors */ /* Controls & sensors */
static struct wf_sensor *sensor_cpu_power; static struct wf_sensor *sensor_cpu_power;
static struct wf_sensor *sensor_cpu_temp; static struct wf_sensor *sensor_cpu_temp;
...@@ -717,16 +715,14 @@ static int wf_init_pm(void) ...@@ -717,16 +715,14 @@ static int wf_init_pm(void)
return 0; return 0;
} }
static int wf_smu_probe(struct device *ddev) static int wf_smu_probe(struct platform_device *ddev)
{ {
wf_smu_dev = ddev;
wf_register_client(&wf_smu_events); wf_register_client(&wf_smu_events);
return 0; return 0;
} }
static int wf_smu_remove(struct device *ddev) static int __devexit wf_smu_remove(struct platform_device *ddev)
{ {
wf_unregister_client(&wf_smu_events); wf_unregister_client(&wf_smu_events);
...@@ -766,16 +762,16 @@ static int wf_smu_remove(struct device *ddev) ...@@ -766,16 +762,16 @@ static int wf_smu_remove(struct device *ddev)
if (wf_smu_cpu_fans) if (wf_smu_cpu_fans)
kfree(wf_smu_cpu_fans); kfree(wf_smu_cpu_fans);
wf_smu_dev = NULL;
return 0; return 0;
} }
static struct device_driver wf_smu_driver = { static struct platform_driver wf_smu_driver = {
.probe = wf_smu_probe,
.remove = __devexit_p(wf_smu_remove),
.driver = {
.name = "windfarm", .name = "windfarm",
.bus = &platform_bus_type, .bus = &platform_bus_type,
.probe = wf_smu_probe, },
.remove = wf_smu_remove,
}; };
...@@ -794,7 +790,7 @@ static int __init wf_smu_init(void) ...@@ -794,7 +790,7 @@ static int __init wf_smu_init(void)
request_module("windfarm_lm75_sensor"); request_module("windfarm_lm75_sensor");
#endif /* MODULE */ #endif /* MODULE */
driver_register(&wf_smu_driver); platform_driver_register(&wf_smu_driver);
} }
return rc; return rc;
...@@ -803,7 +799,7 @@ static int __init wf_smu_init(void) ...@@ -803,7 +799,7 @@ static int __init wf_smu_init(void)
static void __exit wf_smu_exit(void) static void __exit wf_smu_exit(void)
{ {
driver_unregister(&wf_smu_driver); platform_driver_unregister(&wf_smu_driver);
} }
......
...@@ -63,8 +63,6 @@ ...@@ -63,8 +63,6 @@
*/ */
#undef HACKED_OVERTEMP #undef HACKED_OVERTEMP
static struct device *wf_smu_dev;
/* Controls & sensors */ /* Controls & sensors */
static struct wf_sensor *sensor_cpu_power; static struct wf_sensor *sensor_cpu_power;
static struct wf_sensor *sensor_cpu_temp; static struct wf_sensor *sensor_cpu_temp;
...@@ -641,16 +639,14 @@ static int wf_init_pm(void) ...@@ -641,16 +639,14 @@ static int wf_init_pm(void)
return 0; return 0;
} }
static int wf_smu_probe(struct device *ddev) static int wf_smu_probe(struct platform_device *ddev)
{ {
wf_smu_dev = ddev;
wf_register_client(&wf_smu_events); wf_register_client(&wf_smu_events);
return 0; return 0;
} }
static int wf_smu_remove(struct device *ddev) static int __devexit wf_smu_remove(struct platform_device *ddev)
{ {
wf_unregister_client(&wf_smu_events); wf_unregister_client(&wf_smu_events);
...@@ -698,16 +694,16 @@ static int wf_smu_remove(struct device *ddev) ...@@ -698,16 +694,16 @@ static int wf_smu_remove(struct device *ddev)
if (wf_smu_cpu_fans) if (wf_smu_cpu_fans)
kfree(wf_smu_cpu_fans); kfree(wf_smu_cpu_fans);
wf_smu_dev = NULL;
return 0; return 0;
} }
static struct device_driver wf_smu_driver = { static struct platform_driver wf_smu_driver = {
.probe = wf_smu_probe,
.remove = __devexit_p(wf_smu_remove),
.driver = {
.name = "windfarm", .name = "windfarm",
.bus = &platform_bus_type, .bus = &platform_bus_type,
.probe = wf_smu_probe, },
.remove = wf_smu_remove,
}; };
...@@ -725,7 +721,7 @@ static int __init wf_smu_init(void) ...@@ -725,7 +721,7 @@ static int __init wf_smu_init(void)
request_module("windfarm_lm75_sensor"); request_module("windfarm_lm75_sensor");
#endif /* MODULE */ #endif /* MODULE */
driver_register(&wf_smu_driver); platform_driver_register(&wf_smu_driver);
} }
return rc; return rc;
...@@ -734,7 +730,7 @@ static int __init wf_smu_init(void) ...@@ -734,7 +730,7 @@ static int __init wf_smu_init(void)
static void __exit wf_smu_exit(void) static void __exit wf_smu_exit(void)
{ {
driver_unregister(&wf_smu_driver); platform_driver_unregister(&wf_smu_driver);
} }
......
...@@ -690,8 +690,7 @@ typedef struct risc_timer_pram { ...@@ -690,8 +690,7 @@ typedef struct risc_timer_pram {
#define CICR_IEN ((uint)0x00000080) /* Int. enable */ #define CICR_IEN ((uint)0x00000080) /* Int. enable */
#define CICR_SPS ((uint)0x00000001) /* SCC Spread */ #define CICR_SPS ((uint)0x00000001) /* SCC Spread */
extern void cpm_install_handler(int vec, extern void cpm_install_handler(int vec, void (*handler)(void *), void *dev_id);
void (*handler)(void *, struct pt_regs *regs), void *dev_id);
extern void cpm_free_handler(int vec); extern void cpm_free_handler(int vec);
#endif /* __CPM_8XX__ */ #endif /* __CPM_8XX__ */
...@@ -315,7 +315,7 @@ int gt64260_get_base(u32 *base); ...@@ -315,7 +315,7 @@ int gt64260_get_base(u32 *base);
int gt64260_pci_exclude_device(u8 bus, u8 devfn); int gt64260_pci_exclude_device(u8 bus, u8 devfn);
void gt64260_init_irq(void); void gt64260_init_irq(void);
int gt64260_get_irq(struct pt_regs *regs); int gt64260_get_irq(void);
void gt64260_mpsc_progress(char *s, unsigned short hex); void gt64260_mpsc_progress(char *s, unsigned short hex);
......
...@@ -415,7 +415,7 @@ struct mpc52xx_cdm { ...@@ -415,7 +415,7 @@ struct mpc52xx_cdm {
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
extern void mpc52xx_init_irq(void); extern void mpc52xx_init_irq(void);
extern int mpc52xx_get_irq(struct pt_regs *regs); extern int mpc52xx_get_irq(void);
extern unsigned long mpc52xx_find_end_of_memory(void); extern unsigned long mpc52xx_find_end_of_memory(void);
extern void mpc52xx_set_bat(void); extern void mpc52xx_set_bat(void);
......
...@@ -336,9 +336,9 @@ int mv64x60_pci_exclude_device(u8 bus, u8 devfn); ...@@ -336,9 +336,9 @@ int mv64x60_pci_exclude_device(u8 bus, u8 devfn);
void gt64260_init_irq(void); void gt64260_init_irq(void);
int gt64260_get_irq(struct pt_regs *regs); int gt64260_get_irq(void);
void mv64360_init_irq(void); void mv64360_init_irq(void);
int mv64360_get_irq(struct pt_regs *regs); int mv64360_get_irq(void);
u32 mv64x60_mask(u32 val, u32 num_bits); u32 mv64x60_mask(u32 val, u32 num_bits);
u32 mv64x60_shift_left(u32 val, u32 num_bits); u32 mv64x60_shift_left(u32 val, u32 num_bits);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment