-Index: linux-2.6.24.7/Documentation/kernel-parameters.txt
-===================================================================
---- linux-2.6.24.7.orig/Documentation/kernel-parameters.txt
-+++ linux-2.6.24.7/Documentation/kernel-parameters.txt
-@@ -686,6 +686,7 @@ and is between 256 and 4096 characters.
+--- a/Documentation/kernel-parameters.txt
++++ b/Documentation/kernel-parameters.txt
+@@ -686,6 +686,7 @@
See Documentation/isdn/README.HiSax.
hugepages= [HW,X86-32,IA-64] Maximal number of HugeTLB pages.
i8042.direct [HW] Put keyboard port into non-translated mode
i8042.dumbkbd [HW] Pretend that controller can only read data from
-Index: linux-2.6.24.7/Documentation/powerpc/00-INDEX
-===================================================================
---- linux-2.6.24.7.orig/Documentation/powerpc/00-INDEX
-+++ linux-2.6.24.7/Documentation/powerpc/00-INDEX
-@@ -28,3 +28,6 @@ sound.txt
+--- a/Documentation/powerpc/00-INDEX
++++ b/Documentation/powerpc/00-INDEX
+@@ -28,3 +28,6 @@
- info on sound support under Linux/PPC
zImage_layout.txt
- info on the kernel images for Linux/PPC
+qe_firmware.txt
+ - describes the layout of firmware binaries for the Freescale QUICC
+ Engine and the code that parses and uploads the microcode therein.
-Index: linux-2.6.24.7/Documentation/powerpc/booting-without-of.txt
-===================================================================
---- linux-2.6.24.7.orig/Documentation/powerpc/booting-without-of.txt
-+++ linux-2.6.24.7/Documentation/powerpc/booting-without-of.txt
-@@ -52,7 +52,11 @@ Table of Contents
+--- a/Documentation/powerpc/booting-without-of.txt
++++ b/Documentation/powerpc/booting-without-of.txt
+@@ -52,7 +52,11 @@
i) Freescale QUICC Engine module (QE)
j) CFI or JEDEC memory-mapped NOR flash
k) Global Utilities Block
VII - Specifying interrupt information for devices
1) interrupts property
-@@ -671,10 +675,10 @@ device or bus to be described by the dev
+@@ -671,10 +675,10 @@
In general, the format of an address for a device is defined by the
parent bus type, based on the #address-cells and #size-cells
Those 2 properties define 'cells' for representing an address and a
size. A "cell" is a 32-bit number. For example, if both contain 2
-@@ -711,13 +715,14 @@ define a bus type with a more complex ad
+@@ -711,13 +715,14 @@
like address space bits, you'll have to add a bus translator to the
prom_parse.c file of the recent kernels for your bus type.
bus address, parent bus address, size
-@@ -735,6 +740,10 @@ fit in a single 32-bit word. New 32-bi
+@@ -735,6 +740,10 @@
1/1 format, unless the processor supports physical addresses greater
than 32-bits, in which case a 2/1 format is recommended.
2) Note about "compatible" properties
-------------------------------------
-@@ -1218,16 +1227,14 @@ platforms are moved over to use the flat
+@@ -1218,16 +1227,14 @@
Required properties:
- reg : Offset and length of the register set for the device
ethernet-phy@0 {
......
-@@ -1254,6 +1261,10 @@ platforms are moved over to use the flat
+@@ -1254,6 +1261,10 @@
services interrupts for this device.
- phy-handle : The phandle for the PHY connected to this ethernet
controller.
Recommended properties:
-@@ -1408,7 +1419,6 @@ platforms are moved over to use the flat
+@@ -1408,7 +1419,6 @@
Example multi port host USB controller device node :
usb@22000 {
compatible = "fsl-usb2-mph";
reg = <22000 1000>;
#address-cells = <1>;
-@@ -1422,7 +1432,6 @@ platforms are moved over to use the flat
+@@ -1422,7 +1432,6 @@
Example dual role USB controller device node :
usb@23000 {
compatible = "fsl-usb2-dr";
reg = <23000 1000>;
#address-cells = <1>;
-@@ -1586,7 +1595,6 @@ platforms are moved over to use the flat
+@@ -1586,7 +1595,6 @@
iii) USB (Universal Serial Bus Controller)
Required properties:
- compatible : could be "qe_udc" or "fhci-hcd".
- mode : the could be "host" or "slave".
- reg : Offset and length of the register set for the device
-@@ -1600,7 +1608,6 @@ platforms are moved over to use the flat
+@@ -1600,7 +1608,6 @@
Example(slave):
usb@6c0 {
compatible = "qe_udc";
reg = <6c0 40>;
interrupts = <8b 0>;
-@@ -1613,7 +1620,7 @@ platforms are moved over to use the flat
+@@ -1613,7 +1620,7 @@
Required properties:
- device_type : should be "network", "hldc", "uart", "transparent"
- compatible : could be "ucc_geth" or "fsl_atm" and so on.
- model : should be "UCC".
- device-id : the ucc number(1-8), corresponding to UCCx in UM.
-@@ -1626,6 +1633,26 @@ platforms are moved over to use the flat
+@@ -1626,6 +1633,26 @@
- interrupt-parent : the phandle for the interrupt controller that
services interrupts for this device.
- pio-handle : The phandle for the Parallel I/O port configuration.
- rx-clock : represents the UCC receive clock source.
0x00 : clock source is disabled;
0x1~0x10 : clock source is BRG1~BRG16 respectively;
-@@ -1772,6 +1799,32 @@ platforms are moved over to use the flat
+@@ -1772,6 +1799,32 @@
};
};
j) CFI or JEDEC memory-mapped NOR flash
Flash chips (Memory Technology Devices) are often used for solid state
-@@ -2075,8 +2128,7 @@ platforms are moved over to use the flat
+@@ -2075,8 +2128,7 @@
Example:
localbus@f0010100 {
"fsl,pq2-localbus";
#address-cells = <2>;
#size-cells = <1>;
-@@ -2254,7 +2306,7 @@ platforms are moved over to use the flat
+@@ -2254,7 +2306,7 @@
available.
For Axon: 0x0000012a
The Xilinx EDK toolchain ships with a set of IP cores (devices) for use
in Xilinx Spartan and Virtex FPGAs. The devices cover the whole range
-@@ -2276,7 +2328,7 @@ platforms are moved over to use the flat
+@@ -2276,7 +2328,7 @@
properties of the device node. In general, device nodes for IP-cores
will take the following form:
compatible = "xlnx,(ip-core-name)-(HW_VER)"
[, (list of compatible devices), ...];
reg = <(baseaddr) (size)>;
-@@ -2286,6 +2338,9 @@ platforms are moved over to use the flat
+@@ -2286,6 +2338,9 @@
xlnx,(parameter2) = <(int-value)>;
};
(ip-core-name): the name of the ip block (given after the BEGIN
directive in system.mhs). Should be in lowercase
and all underscores '_' converted to dashes '-'.
-@@ -2294,9 +2349,9 @@ platforms are moved over to use the flat
+@@ -2294,9 +2349,9 @@
dropped from the parameter name, the name is converted
to lowercase and all underscore '_' characters are
converted to dashes '-'.
Typically, the compatible list will include the exact IP core version
followed by an older IP core version which implements the same
-@@ -2326,11 +2381,11 @@ platforms are moved over to use the flat
+@@ -2326,11 +2381,11 @@
becomes the following device tree node:
interrupts = <1 0>; // got this from the opb_intc parameters
current-speed = <d#115200>; // standard serial device prop
clock-frequency = <d#50000000>; // standard serial device prop
-@@ -2339,16 +2394,19 @@ platforms are moved over to use the flat
+@@ -2339,16 +2394,19 @@
xlnx,use-parity = <0>;
};
BEGIN opb_ps2_dual_ref
PARAMETER INSTANCE = opb_ps2_dual_ref_0
-@@ -2370,21 +2428,24 @@ platforms are moved over to use the flat
+@@ -2370,21 +2428,24 @@
It would result in the following device tree nodes:
interrupts = <3 0>;
cell-index = <0>;
};
-@@ -2447,17 +2508,18 @@ platforms are moved over to use the flat
+@@ -2447,17 +2508,18 @@
Gives this device tree (some properties removed for clarity):
#address-cells = <1>;
#size-cells = <1>;
ranges = <20000000 20000000 20000000
-@@ -2465,11 +2527,11 @@ platforms are moved over to use the flat
+@@ -2465,11 +2527,11 @@
80000000 80000000 40000000
c0000000 c0000000 20000000>;
reg = <d1000fc0 20>;
};
};
-@@ -2514,6 +2576,46 @@ platforms are moved over to use the flat
+@@ -2514,6 +2576,46 @@
Requred properties:
- current-speed : Baud rate of uartlite
More devices will be defined as this spec matures.
VII - Specifying interrupt information for devices
-Index: linux-2.6.24.7/Documentation/powerpc/qe_firmware.txt
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/Documentation/powerpc/qe_firmware.txt
++++ b/Documentation/powerpc/qe_firmware.txt
@@ -0,0 +1,295 @@
+ Freescale QUICC Engine Firmware Uploading
+ -----------------------------------------
+
+A Python program that creates firmware binaries from the header files normally
+distributed by Freescale can be found on http://opensource.freescale.com.
-Index: linux-2.6.24.7/arch/powerpc/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/Kconfig
-@@ -140,6 +140,9 @@ config DEFAULT_UIMAGE
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -140,6 +140,9 @@
Used to allow a board to specify it wants a uImage built by default
default n
config PPC64_SWSUSP
bool
depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
-@@ -160,11 +163,13 @@ config PPC_DCR
+@@ -160,11 +163,13 @@
config PPC_OF_PLATFORM_PCI
bool
source "arch/powerpc/platforms/Kconfig"
menu "Kernel options"
-@@ -417,7 +422,7 @@ endmenu
+@@ -417,7 +422,7 @@
config ISA_DMA_API
bool
menu "Bus options"
-@@ -467,7 +472,7 @@ config MCA
+@@ -467,7 +472,7 @@
config PCI
bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
default y if !40x && !CPM2 && !8xx && !PPC_83xx \
&& !PPC_85xx && !PPC_86xx
default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
-Index: linux-2.6.24.7/arch/powerpc/Kconfig.debug
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/Kconfig.debug
-+++ linux-2.6.24.7/arch/powerpc/Kconfig.debug
-@@ -151,6 +151,13 @@ config BOOTX_TEXT
+--- a/arch/powerpc/Kconfig.debug
++++ b/arch/powerpc/Kconfig.debug
+@@ -151,6 +151,13 @@
config PPC_EARLY_DEBUG
bool "Early debugging (dangerous)"
choice
prompt "Early debugging console"
-@@ -218,7 +225,16 @@ config PPC_EARLY_DEBUG_44x
+@@ -218,7 +225,16 @@
depends on 44x
help
Select this to enable early debugging for IBM 44x chips via the
config PPC_EARLY_DEBUG_CPM
bool "Early serial debugging for Freescale CPM-based serial ports"
-@@ -235,12 +251,20 @@ config PPC_EARLY_DEBUG_44x_PHYSLOW
+@@ -235,12 +251,20 @@
hex "Low 32 bits of early debug UART physical address"
depends on PPC_EARLY_DEBUG_44x
default "0x40000200"
config PPC_EARLY_DEBUG_CPM_ADDR
hex "CPM UART early debug transmit descriptor address"
depends on PPC_EARLY_DEBUG_CPM
-Index: linux-2.6.24.7/arch/powerpc/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/Makefile
-+++ linux-2.6.24.7/arch/powerpc/Makefile
-@@ -167,6 +167,9 @@ boot := arch/$(ARCH)/boot
+--- a/arch/powerpc/Makefile
++++ b/arch/powerpc/Makefile
+@@ -167,6 +167,9 @@
$(BOOT_TARGETS): vmlinux
$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
define archhelp
@echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)'
@echo ' install - Install kernel using'
-Index: linux-2.6.24.7/arch/powerpc/boot/4xx.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/4xx.c
-+++ linux-2.6.24.7/arch/powerpc/boot/4xx.c
+--- a/arch/powerpc/boot/4xx.c
++++ b/arch/powerpc/boot/4xx.c
@@ -22,16 +22,14 @@
#include "dcr.h"
if (bank_config & SDRAM_CONFIG_BANK_ENABLE)
memsize += SDRAM_CONFIG_BANK_SIZE(bank_config);
}
-@@ -39,6 +37,69 @@ void ibm4xx_fixup_memsize(void)
+@@ -39,6 +37,69 @@
dt_fixup_memory(0, memsize);
}
/* 4xx DDR1/2 Denali memory controller support */
/* DDR0 registers */
#define DDR0_02 2
-@@ -77,19 +138,13 @@ void ibm4xx_fixup_memsize(void)
+@@ -77,19 +138,13 @@
#define DDR_GET_VAL(val, mask, shift) (((val) >> (shift)) & (mask))
if (!DDR_GET_VAL(val, DDR_START, DDR_START_SHIFT))
fatal("DDR controller is not initialized\n");
-@@ -99,12 +154,12 @@ void ibm4xx_denali_fixup_memsize(void)
+@@ -99,12 +154,12 @@
max_row = DDR_GET_VAL(val, DDR_MAX_ROW_REG, DDR_MAX_ROW_REG_SHIFT);
/* get CS value */
cs++;
val = val >> 1;
}
-@@ -115,15 +170,15 @@ void ibm4xx_denali_fixup_memsize(void)
+@@ -115,15 +170,15 @@
fatal("DDR wrong CS configuration\n");
/* get data path bytes */
row = DDR_GET_VAL(val, DDR_APIN, DDR_APIN_SHIFT);
if (row > max_row)
-@@ -131,7 +186,7 @@ void ibm4xx_denali_fixup_memsize(void)
+@@ -131,7 +186,7 @@
row = max_row - row;
/* get collomn size and banks */
col = DDR_GET_VAL(val, DDR_COL_SZ, DDR_COL_SZ_SHIFT);
if (col > max_col)
-@@ -179,13 +234,17 @@ void ibm40x_dbcr_reset(void)
+@@ -179,13 +234,17 @@
#define EMAC_RESET 0x20000000
void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1)
{
}
/* Read 4xx EBC bus bridge registers to get mappings of the peripheral
-@@ -217,84 +276,335 @@ void ibm4xx_fixup_ebc_ranges(const char
+@@ -217,84 +276,335 @@
setprop(devp, "ranges", ranges, (p - ranges) * sizeof(u32));
}
- dt_fixup_clock("/plb/opb/serial@ef600600", uart0);
+ dt_fixup_clock("/plb/opb/serial@ef600400", uart1);
}
-Index: linux-2.6.24.7/arch/powerpc/boot/4xx.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/4xx.h
-+++ linux-2.6.24.7/arch/powerpc/boot/4xx.h
+--- a/arch/powerpc/boot/4xx.h
++++ b/arch/powerpc/boot/4xx.h
@@ -11,12 +11,22 @@
#ifndef _POWERPC_BOOT_4XX_H_
#define _POWERPC_BOOT_4XX_H_
+ unsigned int tmr_clk);
#endif /* _POWERPC_BOOT_4XX_H_ */
-Index: linux-2.6.24.7/arch/powerpc/boot/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/Makefile
-+++ linux-2.6.24.7/arch/powerpc/boot/Makefile
-@@ -33,12 +33,15 @@ ifeq ($(call cc-option-yn, -fstack-prote
+--- a/arch/powerpc/boot/Makefile
++++ b/arch/powerpc/boot/Makefile
+@@ -33,12 +33,15 @@
BOOTCFLAGS += -fno-stack-protector
endif
zlib := inffast.c inflate.c inftrees.c
zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h
zliblinuxheader := zlib.h zconf.h zutil.h
-@@ -46,17 +49,21 @@ zliblinuxheader := zlib.h zconf.h zutil.
+@@ -46,17 +49,21 @@
$(addprefix $(obj)/,$(zlib) gunzip_util.o main.o): \
$(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))
src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot))
-@@ -101,24 +108,61 @@ quiet_cmd_bootar = BOOTAR $@
+@@ -101,24 +108,61 @@
cmd_bootar = $(CROSS32AR) -cr $@.$$$$ $(filter-out FORCE,$^); mv $@.$$$$ $@
$(patsubst %.c,%.o, $(filter %.c, $(src-boot))): %.o: %.c FORCE
# Bits for building various flavours of zImage
ifneq ($(CROSS32_COMPILE),)
-@@ -150,15 +194,26 @@ image-$(CONFIG_DEFAULT_UIMAGE) += uImag
+@@ -150,15 +194,26 @@
ifneq ($(CONFIG_DEVICE_TREE),"")
image-$(CONFIG_PPC_8xx) += cuImage.8xx
image-$(CONFIG_PPC_EP88XC) += zImage.ep88xc
endif
# For 32-bit powermacs, build the COFF and miboot images
-@@ -243,3 +298,51 @@ clean-kernel := vmlinux.strip vmlinux.bi
+@@ -243,3 +298,51 @@
clean-kernel += $(addsuffix .gz,$(clean-kernel))
# If not absolute clean-files are relative to $(obj).
clean-files += $(addprefix $(objtree)/, $(clean-kernel))
+
+$(obj)/bootwrapper_install: $(all-installed)
+
-Index: linux-2.6.24.7/arch/powerpc/boot/bamboo.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/bamboo.c
-+++ linux-2.6.24.7/arch/powerpc/boot/bamboo.c
-@@ -30,8 +30,8 @@ static void bamboo_fixups(void)
+--- a/arch/powerpc/boot/bamboo.c
++++ b/arch/powerpc/boot/bamboo.c
+@@ -30,8 +30,8 @@
{
unsigned long sysclk = 33333333;
ibm4xx_quiesce_eth((u32 *)0xef600e00, (u32 *)0xef600f00);
dt_fixup_mac_addresses(bamboo_mac0, bamboo_mac1);
}
-@@ -42,6 +42,6 @@ void bamboo_init(void *mac0, void *mac1)
+@@ -42,6 +42,6 @@
platform_ops.exit = ibm44x_dbcr_reset;
bamboo_mac0 = mac0;
bamboo_mac1 = mac1;
+ fdt_init(_dtb_start);
serial_console_init();
}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-52xx.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/cuboot-52xx.c
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-52xx.c
-@@ -53,7 +53,7 @@ void platform_init(unsigned long r3, uns
+--- a/arch/powerpc/boot/cuboot-52xx.c
++++ b/arch/powerpc/boot/cuboot-52xx.c
+@@ -53,7 +53,7 @@
unsigned long r6, unsigned long r7)
{
CUBOOT_INIT();
serial_console_init();
platform_ops.fixups = platform_fixups;
}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-824x.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-824x.c
++++ b/arch/powerpc/boot/cuboot-824x.c
@@ -0,0 +1,53 @@
+/*
+ * Old U-boot compatibility for 824x
+ serial_console_init();
+ platform_ops.fixups = platform_fixups;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-83xx.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/cuboot-83xx.c
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-83xx.c
-@@ -24,7 +24,8 @@ static void platform_fixups(void)
+--- a/arch/powerpc/boot/cuboot-83xx.c
++++ b/arch/powerpc/boot/cuboot-83xx.c
+@@ -24,7 +24,8 @@
void *soc;
dt_fixup_memory(bd.bi_memstart, bd.bi_memsize);
dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 4, bd.bi_busfreq);
/* Unfortunately, the specific model number is encoded in the
-@@ -52,7 +53,7 @@ void platform_init(unsigned long r3, uns
+@@ -52,7 +53,7 @@
unsigned long r6, unsigned long r7)
{
CUBOOT_INIT();
serial_console_init();
platform_ops.fixups = platform_fixups;
}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-85xx.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/cuboot-85xx.c
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-85xx.c
-@@ -24,8 +24,9 @@ static void platform_fixups(void)
+--- a/arch/powerpc/boot/cuboot-85xx.c
++++ b/arch/powerpc/boot/cuboot-85xx.c
+@@ -24,8 +24,9 @@
void *soc;
dt_fixup_memory(bd.bi_memstart, bd.bi_memsize);
dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 8, bd.bi_busfreq);
/* Unfortunately, the specific model number is encoded in the
-@@ -53,7 +54,7 @@ void platform_init(unsigned long r3, uns
+@@ -53,7 +54,7 @@
unsigned long r6, unsigned long r7)
{
CUBOOT_INIT();
serial_console_init();
platform_ops.fixups = platform_fixups;
}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-8xx.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/cuboot-8xx.c
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-8xx.c
-@@ -41,7 +41,7 @@ void platform_init(unsigned long r3, uns
+--- a/arch/powerpc/boot/cuboot-8xx.c
++++ b/arch/powerpc/boot/cuboot-8xx.c
+@@ -41,7 +41,7 @@
unsigned long r6, unsigned long r7)
{
CUBOOT_INIT();
serial_console_init();
platform_ops.fixups = platform_fixups;
}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-hpc2.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/cuboot-hpc2.c
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-hpc2.c
-@@ -42,7 +42,7 @@ void platform_init(unsigned long r3, uns
+--- a/arch/powerpc/boot/cuboot-hpc2.c
++++ b/arch/powerpc/boot/cuboot-hpc2.c
+@@ -42,7 +42,7 @@
unsigned long r6, unsigned long r7)
{
CUBOOT_INIT();
serial_console_init();
platform_ops.fixups = platform_fixups;
}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-katmai.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-katmai.c
++++ b/arch/powerpc/boot/cuboot-katmai.c
@@ -0,0 +1,56 @@
+/*
+ * Old U-boot compatibility for Katmai
+ fdt_init(_dtb_start);
+ serial_console_init();
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-pq2.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/cuboot-pq2.c
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-pq2.c
-@@ -255,7 +255,7 @@ void platform_init(unsigned long r3, uns
+--- a/arch/powerpc/boot/cuboot-pq2.c
++++ b/arch/powerpc/boot/cuboot-pq2.c
+@@ -255,7 +255,7 @@
unsigned long r6, unsigned long r7)
{
CUBOOT_INIT();
serial_console_init();
platform_ops.fixups = pq2_platform_fixups;
}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-rainier.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-rainier.c
++++ b/arch/powerpc/boot/cuboot-rainier.c
@@ -0,0 +1,56 @@
+/*
+ * Old U-boot compatibility for Rainier
+ fdt_init(_dtb_start);
+ serial_console_init();
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-sequoia.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/cuboot-sequoia.c
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-sequoia.c
-@@ -39,7 +39,7 @@ static void sequoia_fixups(void)
+--- a/arch/powerpc/boot/cuboot-sequoia.c
++++ b/arch/powerpc/boot/cuboot-sequoia.c
+@@ -39,7 +39,7 @@
{
unsigned long sysclk = 33333333;
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
ibm4xx_denali_fixup_memsize();
dt_fixup_mac_addresses(&bd.bi_enetaddr, &bd.bi_enet1addr);
-@@ -51,6 +51,6 @@ void platform_init(unsigned long r3, uns
+@@ -51,6 +51,6 @@
CUBOOT_INIT();
platform_ops.fixups = sequoia_fixups;
platform_ops.exit = ibm44x_dbcr_reset;
+ fdt_init(_dtb_start);
serial_console_init();
}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-taishan.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-taishan.c
++++ b/arch/powerpc/boot/cuboot-taishan.c
@@ -0,0 +1,54 @@
+/*
+ * Old U-boot compatibility for Taishan
+ fdt_init(_dtb_start);
+ serial_console_init();
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/cuboot-warp.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/cuboot-warp.c
++++ b/arch/powerpc/boot/cuboot-warp.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2008 PIKA Technologies
+ fdt_init(_dtb_start);
+ serial_console_init();
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dcr.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dcr.h
-+++ linux-2.6.24.7/arch/powerpc/boot/dcr.h
+--- a/arch/powerpc/boot/dcr.h
++++ b/arch/powerpc/boot/dcr.h
@@ -14,12 +14,20 @@
#define DCRN_SDRAM0_CFGADDR 0x010
#define DCRN_SDRAM0_CFGDATA 0x011
#define SDRAM_CONFIG_BANK_ENABLE 0x00000001
#define SDRAM_CONFIG_SIZE_MASK 0x000e0000
-@@ -138,5 +146,54 @@ static const unsigned long sdram_bxcr[]
+@@ -138,5 +146,54 @@
#define DCRN_CPC0_PLLMR 0xb0
#define DCRN_405_CPC0_CR0 0xb1
#define DCRN_405_CPC0_CR1 0xb2
+
#endif /* _PPC_BOOT_DCR_H_ */
-Index: linux-2.6.24.7/arch/powerpc/boot/devtree.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/devtree.c
-+++ linux-2.6.24.7/arch/powerpc/boot/devtree.c
-@@ -88,6 +88,20 @@ void dt_fixup_clock(const char *path, u3
+--- a/arch/powerpc/boot/devtree.c
++++ b/arch/powerpc/boot/devtree.c
+@@ -88,6 +88,20 @@
}
}
void dt_fixup_mac_address(u32 index, const u8 *addr)
{
void *devp = find_node_by_prop_value(NULL, "linux,network-index",
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/Makefile.dtc
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/Makefile.dtc
++++ b/arch/powerpc/boot/dtc-src/Makefile.dtc
@@ -0,0 +1,25 @@
+# Makefile.dtc
+#
+# things, but we supply the dependencies on generated header files explicitly
+
+$(addprefix $(DTC_objdir)/,$(DTC_GEN_SRCS:%.c=%.o)): $(addprefix $(DTC_objdir)/,$(DTC_BISON_INCLUDES))
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/checks.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/checks.c
++++ b/arch/powerpc/boot/dtc-src/checks.c
@@ -0,0 +1,750 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2007.
+
+ return 1;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/data.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/data.c
++++ b/arch/powerpc/boot/dtc-src/data.c
@@ -0,0 +1,321 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
+
+ return 1;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-lexer.l
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-lexer.l
++++ b/arch/powerpc/boot/dtc-src/dtc-lexer.l
@@ -0,0 +1,328 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
+
+ return 1;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-lexer.lex.c_shipped
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-lexer.lex.c_shipped
++++ b/arch/powerpc/boot/dtc-src/dtc-lexer.lex.c_shipped
@@ -0,0 +1,2174 @@
+#line 2 "dtc-lexer.lex.c"
+
+ return 1;
+}
+
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-parser.tab.c_shipped
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-parser.tab.c_shipped
++++ b/arch/powerpc/boot/dtc-src/dtc-parser.tab.c_shipped
@@ -0,0 +1,1983 @@
+/* A Bison parser, made by GNU Bison 2.3. */
+
+ return val;
+}
+
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-parser.tab.h_shipped
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-parser.tab.h_shipped
++++ b/arch/powerpc/boot/dtc-src/dtc-parser.tab.h_shipped
@@ -0,0 +1,111 @@
+/* A Bison parser, made by GNU Bison 2.3. */
+
+#endif
+
+extern YYLTYPE yylloc;
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-parser.y
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc-parser.y
++++ b/arch/powerpc/boot/dtc-src/dtc-parser.y
@@ -0,0 +1,336 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
+ yyerror("bad literal");
+ return val;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc.c
++++ b/arch/powerpc/boot/dtc-src/dtc.c
@@ -0,0 +1,231 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
+
+ exit(0);
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/dtc.h
++++ b/arch/powerpc/boot/dtc-src/dtc.h
@@ -0,0 +1,269 @@
+#ifndef _DTC_H
+#define _DTC_H
+void fill_fullpaths(struct node *tree, const char *prefix);
+
+#endif /* _DTC_H */
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/flattree.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/flattree.c
++++ b/arch/powerpc/boot/dtc-src/flattree.c
@@ -0,0 +1,968 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
+
+ return build_boot_info(reservelist, tree);
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/fstree.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/fstree.c
++++ b/arch/powerpc/boot/dtc-src/fstree.c
@@ -0,0 +1,94 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
+ return build_boot_info(NULL, tree);
+}
+
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/livetree.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/livetree.c
++++ b/arch/powerpc/boot/dtc-src/livetree.c
@@ -0,0 +1,305 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
+
+ return node->phandle;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/srcpos.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/srcpos.c
++++ b/arch/powerpc/boot/dtc-src/srcpos.c
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2007 Jon Loeliger, Freescale Semiconductor, Inc.
+{
+ return srcpos_filename_for_num(srcpos_filenum);
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/srcpos.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/srcpos.h
++++ b/arch/powerpc/boot/dtc-src/srcpos.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2007 Jon Loeliger, Freescale Semiconductor, Inc.
+extern int lookup_file_name(const char *fname, int add_it);
+extern const char *srcpos_filename_for_num(int filenum);
+const char *srcpos_get_filename(void);
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/treesource.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/treesource.c
++++ b/arch/powerpc/boot/dtc-src/treesource.c
@@ -0,0 +1,275 @@
+/*
+ * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
+ write_tree_source_node(f, bi->dt, 0);
+}
+
-Index: linux-2.6.24.7/arch/powerpc/boot/dtc-src/version_gen.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dtc-src/version_gen.h
++++ b/arch/powerpc/boot/dtc-src/version_gen.h
@@ -0,0 +1 @@
+#define DTC_VERSION "DTC 1.0.0-gd6f9b62f"
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/adder875-redboot.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/adder875-redboot.dts
++++ b/arch/powerpc/boot/dts/adder875-redboot.dts
@@ -0,0 +1,184 @@
+/*
+ * Device Tree Source for MPC885 ADS running RedBoot
+ linux,stdout-path = &console;
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/adder875-uboot.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/adder875-uboot.dts
++++ b/arch/powerpc/boot/dts/adder875-uboot.dts
@@ -0,0 +1,183 @@
+/*
+ * Device Tree Source for MPC885 ADS running U-Boot
+ linux,stdout-path = &console;
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/bamboo.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/bamboo.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/bamboo.dts
+--- a/arch/powerpc/boot/dts/bamboo.dts
++++ b/arch/powerpc/boot/dts/bamboo.dts
@@ -16,14 +16,24 @@
#size-cells = <1>;
model = "amcc,bamboo";
- bootargs = "console=ttyS0,115200";
};
};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/cm5200.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/cm5200.dts
++++ b/arch/powerpc/boot/dts/cm5200.dts
@@ -0,0 +1,236 @@
+/*
+ * CM5200 board Device Tree Source
+ };
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/ebony.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/ebony.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/ebony.dts
+--- a/arch/powerpc/boot/dts/ebony.dts
++++ b/arch/powerpc/boot/dts/ebony.dts
@@ -16,14 +16,22 @@
#size-cells = <1>;
model = "ibm,ebony";
};
};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/ep405.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/ep405.dts
++++ b/arch/powerpc/boot/dts/ep405.dts
@@ -0,0 +1,228 @@
+/*
+ * Device Tree Source for EP405
+ linux,stdout-path = "/plb/opb/serial@ef600300";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/ep8248e.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/ep8248e.dts
++++ b/arch/powerpc/boot/dts/ep8248e.dts
@@ -0,0 +1,207 @@
+/*
+ * Device Tree for the Embedded Planet EP8248E board running PlanetCore.
+ };
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/haleakala.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/haleakala.dts
++++ b/arch/powerpc/boot/dts/haleakala.dts
@@ -0,0 +1,274 @@
+/*
+ * Device Tree Source for AMCC Haleakala (405EXr)
+ };
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/katmai.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/katmai.dts
++++ b/arch/powerpc/boot/dts/katmai.dts
@@ -0,0 +1,400 @@
+/*
+ * Device Tree Source for AMCC Katmai eval board
+ linux,stdout-path = "/plb/opb/serial@10000200";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/kilauea.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/kilauea.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/kilauea.dts
+--- a/arch/powerpc/boot/dts/kilauea.dts
++++ b/arch/powerpc/boot/dts/kilauea.dts
@@ -13,14 +13,22 @@
#size-cells = <1>;
model = "amcc,kilauea";
+ };
};
};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/kuroboxHD.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/kuroboxHD.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/kuroboxHD.dts
-@@ -23,6 +23,12 @@ XXXX add flash parts, rtc, ??
+--- a/arch/powerpc/boot/dts/kuroboxHD.dts
++++ b/arch/powerpc/boot/dts/kuroboxHD.dts
+@@ -23,6 +23,12 @@
#address-cells = <1>;
#size-cells = <1>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
-@@ -60,7 +66,7 @@ XXXX add flash parts, rtc, ??
+@@ -60,7 +66,7 @@
i2c@80003000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl-i2c";
reg = <80003000 1000>;
interrupts = <5 2>;
-@@ -73,7 +79,8 @@ XXXX add flash parts, rtc, ??
+@@ -73,7 +79,8 @@
};
};
device_type = "serial";
compatible = "ns16550";
reg = <80004500 8>;
-@@ -83,7 +90,8 @@ XXXX add flash parts, rtc, ??
+@@ -83,7 +90,8 @@
interrupt-parent = <&mpic>;
};
device_type = "serial";
compatible = "ns16550";
reg = <80004600 8>;
-@@ -102,7 +110,7 @@ XXXX add flash parts, rtc, ??
+@@ -102,7 +110,7 @@
reg = <80040000 40000>;
};
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/kuroboxHG.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/kuroboxHG.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/kuroboxHG.dts
-@@ -23,6 +23,12 @@ XXXX add flash parts, rtc, ??
+--- a/arch/powerpc/boot/dts/kuroboxHG.dts
++++ b/arch/powerpc/boot/dts/kuroboxHG.dts
+@@ -23,6 +23,12 @@
#address-cells = <1>;
#size-cells = <1>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
-@@ -60,7 +66,7 @@ XXXX add flash parts, rtc, ??
+@@ -60,7 +66,7 @@
i2c@80003000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl-i2c";
reg = <80003000 1000>;
interrupts = <5 2>;
-@@ -73,7 +79,8 @@ XXXX add flash parts, rtc, ??
+@@ -73,7 +79,8 @@
};
};
device_type = "serial";
compatible = "ns16550";
reg = <80004500 8>;
-@@ -83,7 +90,8 @@ XXXX add flash parts, rtc, ??
+@@ -83,7 +90,8 @@
interrupt-parent = <&mpic>;
};
device_type = "serial";
compatible = "ns16550";
reg = <80004600 8>;
-@@ -102,7 +110,7 @@ XXXX add flash parts, rtc, ??
+@@ -102,7 +110,7 @@
reg = <80040000 40000>;
};
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/lite5200.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/lite5200.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/lite5200.dts
+--- a/arch/powerpc/boot/dts/lite5200.dts
++++ b/arch/powerpc/boot/dts/lite5200.dts
@@ -19,7 +19,7 @@
/ {
model = "fsl,lite5200";
compatible = "mpc5200-i2c","fsl-i2c";
cell-index = <1>;
reg = <3d40 40>;
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/lite5200b.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/lite5200b.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/lite5200b.dts
+--- a/arch/powerpc/boot/dts/lite5200b.dts
++++ b/arch/powerpc/boot/dts/lite5200b.dts
@@ -19,7 +19,7 @@
/ {
model = "fsl,lite5200b";
compatible = "mpc5200b-i2c","mpc5200-i2c","fsl-i2c";
cell-index = <1>;
reg = <3d40 40>;
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/makalu.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/makalu.dts
++++ b/arch/powerpc/boot/dts/makalu.dts
@@ -0,0 +1,347 @@
+/*
+ * Device Tree Source for AMCC Makalu (405EX)
+ };
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/motionpro.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/motionpro.dts
++++ b/arch/powerpc/boot/dts/motionpro.dts
@@ -0,0 +1,309 @@
+/*
+ * Motion-PRO board Device Tree Source
+ 01000000 0 00000000 b0000000 0 01000000>;
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8313erdb.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8313erdb.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8313erdb.dts
+--- a/arch/powerpc/boot/dts/mpc8313erdb.dts
++++ b/arch/powerpc/boot/dts/mpc8313erdb.dts
@@ -15,6 +15,14 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc832x_mds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc832x_mds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc832x_mds.dts
+--- a/arch/powerpc/boot/dts/mpc832x_mds.dts
++++ b/arch/powerpc/boot/dts/mpc832x_mds.dts
@@ -7,6 +7,18 @@
* 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
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
/* IDSEL 0x11 AD17 */
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc832x_rdb.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc832x_rdb.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc832x_rdb.dts
+--- a/arch/powerpc/boot/dts/mpc832x_rdb.dts
++++ b/arch/powerpc/boot/dts/mpc832x_rdb.dts
@@ -15,6 +15,14 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
/* IDSEL 0x10 AD16 (USB) */
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8349emitx.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8349emitx.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8349emitx.dts
+--- a/arch/powerpc/boot/dts/mpc8349emitx.dts
++++ b/arch/powerpc/boot/dts/mpc8349emitx.dts
@@ -14,6 +14,15 @@
#address-cells = <1>;
#size-cells = <1>;
+ };
+ };
};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8349emitxgp.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8349emitxgp.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8349emitxgp.dts
+--- a/arch/powerpc/boot/dts/mpc8349emitxgp.dts
++++ b/arch/powerpc/boot/dts/mpc8349emitxgp.dts
@@ -14,6 +14,13 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
/* IDSEL 0x0F - PCI Slot */
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc834x_mds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc834x_mds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc834x_mds.dts
+--- a/arch/powerpc/boot/dts/mpc834x_mds.dts
++++ b/arch/powerpc/boot/dts/mpc834x_mds.dts
@@ -15,6 +15,15 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc836x_mds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc836x_mds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc836x_mds.dts
+--- a/arch/powerpc/boot/dts/mpc836x_mds.dts
++++ b/arch/powerpc/boot/dts/mpc836x_mds.dts
@@ -20,6 +20,14 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8377_mds.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8377_mds.dts
++++ b/arch/powerpc/boot/dts/mpc8377_mds.dts
@@ -0,0 +1,279 @@
+/*
+ * MPC8377E MDS Device Tree Source
+ device_type = "pci";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8378_mds.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8378_mds.dts
++++ b/arch/powerpc/boot/dts/mpc8378_mds.dts
@@ -0,0 +1,265 @@
+/*
+ * MPC8378E MDS Device Tree Source
+ device_type = "pci";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8379_mds.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8379_mds.dts
++++ b/arch/powerpc/boot/dts/mpc8379_mds.dts
@@ -0,0 +1,293 @@
+/*
+ * MPC8379E MDS Device Tree Source
+ device_type = "pci";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8540ads.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8540ads.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8540ads.dts
+--- a/arch/powerpc/boot/dts/mpc8540ads.dts
++++ b/arch/powerpc/boot/dts/mpc8540ads.dts
@@ -16,6 +16,15 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8541cds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8541cds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8541cds.dts
+--- a/arch/powerpc/boot/dts/mpc8541cds.dts
++++ b/arch/powerpc/boot/dts/mpc8541cds.dts
@@ -16,6 +16,15 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8544ds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8544ds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8544ds.dts
+--- a/arch/powerpc/boot/dts/mpc8544ds.dts
++++ b/arch/powerpc/boot/dts/mpc8544ds.dts
@@ -15,6 +15,17 @@
#address-cells = <1>;
#size-cells = <1>;
-
};
};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8548cds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8548cds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8548cds.dts
+--- a/arch/powerpc/boot/dts/mpc8548cds.dts
++++ b/arch/powerpc/boot/dts/mpc8548cds.dts
@@ -16,6 +16,20 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8555cds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8555cds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8555cds.dts
+--- a/arch/powerpc/boot/dts/mpc8555cds.dts
++++ b/arch/powerpc/boot/dts/mpc8555cds.dts
@@ -16,6 +16,15 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8560ads.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8560ads.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8560ads.dts
+--- a/arch/powerpc/boot/dts/mpc8560ads.dts
++++ b/arch/powerpc/boot/dts/mpc8560ads.dts
@@ -16,6 +16,16 @@
#address-cells = <1>;
#size-cells = <1>;
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8568mds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8568mds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8568mds.dts
+--- a/arch/powerpc/boot/dts/mpc8568mds.dts
++++ b/arch/powerpc/boot/dts/mpc8568mds.dts
@@ -20,6 +20,17 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8572ds.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8572ds.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8572ds.dts
+--- a/arch/powerpc/boot/dts/mpc8572ds.dts
++++ b/arch/powerpc/boot/dts/mpc8572ds.dts
@@ -15,6 +15,18 @@
#address-cells = <1>;
#size-cells = <1>;
interrupt-map = <
/* IDSEL 0x0 */
0000 0 0 1 &mpic 0 1
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8610_hpcd.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8610_hpcd.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+--- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts
++++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -1,7 +1,7 @@
/*
* MPC8610 HPCD Device Tree Source
compatible = "fsl,mpc8641-pcie";
device_type = "pci";
#interrupt-cells = <1>;
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc8641_hpcn.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc8641_hpcn.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc8641_hpcn.dts
+--- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts
++++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
@@ -16,6 +16,17 @@
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,mpc8641-pcie";
device_type = "pci";
#interrupt-cells = <1>;
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/mpc866ads.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/mpc866ads.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/mpc866ads.dts
+--- a/arch/powerpc/boot/dts/mpc866ads.dts
++++ b/arch/powerpc/boot/dts/mpc866ads.dts
@@ -12,7 +12,7 @@
/ {
+ linux,stdout-path = "/soc/cpm/serial@a80";
+ };
};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/rainier.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/rainier.dts
++++ b/arch/powerpc/boot/dts/rainier.dts
@@ -0,0 +1,353 @@
+/*
+ * Device Tree Source for AMCC Rainier
+ bootargs = "console=ttyS0,115200";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/sequoia.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/sequoia.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/sequoia.dts
+--- a/arch/powerpc/boot/dts/sequoia.dts
++++ b/arch/powerpc/boot/dts/sequoia.dts
@@ -17,14 +17,24 @@
#size-cells = <1>;
model = "amcc,sequoia";
};
chosen {
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/storcenter.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/storcenter.dts
++++ b/arch/powerpc/boot/dts/storcenter.dts
@@ -0,0 +1,138 @@
+/*
+ * Device Tree Source for IOMEGA StorCenter
+ linux,stdout-path = "/soc/serial@4500";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/taishan.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/taishan.dts
++++ b/arch/powerpc/boot/dts/taishan.dts
@@ -0,0 +1,383 @@
+/*
+ * Device Tree Source for IBM/AMCC Taishan
+ linux,stdout-path = "/plb/opb/serial@40000300";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/tqm5200.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/tqm5200.dts
++++ b/arch/powerpc/boot/dts/tqm5200.dts
@@ -0,0 +1,184 @@
+/*
+ * TQM5200 board Device Tree Source
+ 01000000 0 00000000 a0000000 0 01000000>;
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/walnut.dts
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/dts/walnut.dts
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/walnut.dts
+--- a/arch/powerpc/boot/dts/walnut.dts
++++ b/arch/powerpc/boot/dts/walnut.dts
@@ -14,14 +14,21 @@
#size-cells = <1>;
model = "ibm,walnut";
};
chosen {
-Index: linux-2.6.24.7/arch/powerpc/boot/dts/warp.dts
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/dts/warp.dts
++++ b/arch/powerpc/boot/dts/warp.dts
@@ -0,0 +1,239 @@
+/*
+ * Device Tree Source for PIKA Warp
+ linux,stdout-path = "/plb/opb/serial@ef600300";
+ };
+};
-Index: linux-2.6.24.7/arch/powerpc/boot/ebony.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/ebony.c
-+++ linux-2.6.24.7/arch/powerpc/boot/ebony.c
+--- a/arch/powerpc/boot/ebony.c
++++ b/arch/powerpc/boot/ebony.c
@@ -31,66 +31,6 @@
static u8 *ebony_mac0, *ebony_mac1;
#define EBONY_FPGA_PATH "/plb/opb/ebc/fpga"
#define EBONY_FPGA_FLASH_SEL 0x01
#define EBONY_SMALL_FLASH_PATH "/plb/opb/ebc/small-flash"
-@@ -134,7 +74,7 @@ static void ebony_fixups(void)
+@@ -134,7 +74,7 @@
unsigned long sysclk = 33000000;
ibm440gp_fixup_clocks(sysclk, 6 * 1843200);
dt_fixup_mac_addresses(ebony_mac0, ebony_mac1);
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
ebony_flashsel_fixup();
-@@ -146,6 +86,6 @@ void ebony_init(void *mac0, void *mac1)
+@@ -146,6 +86,6 @@
platform_ops.exit = ibm44x_dbcr_reset;
ebony_mac0 = mac0;
ebony_mac1 = mac1;
+ fdt_init(_dtb_start);
serial_console_init();
}
-Index: linux-2.6.24.7/arch/powerpc/boot/ep405.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/ep405.c
++++ b/arch/powerpc/boot/ep405.c
@@ -0,0 +1,74 @@
+/*
+ * Embedded Planet EP405 with PlanetCore firmware
+ serial_console_init();
+ platform_ops.fixups = platform_fixups;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/ep8248e.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/ep8248e.c
++++ b/arch/powerpc/boot/ep8248e.c
@@ -0,0 +1,55 @@
+/*
+ * Embedded Planet EP8248E with PlanetCore firmware
+ serial_console_init();
+ platform_ops.fixups = platform_fixups;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/ep88xc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/ep88xc.c
-+++ linux-2.6.24.7/arch/powerpc/boot/ep88xc.c
-@@ -45,7 +45,7 @@ void platform_init(unsigned long r3, uns
+--- a/arch/powerpc/boot/ep88xc.c
++++ b/arch/powerpc/boot/ep88xc.c
+@@ -45,7 +45,7 @@
mem_size *= 1024 * 1024;
simple_alloc_init(_end, mem_size - (unsigned long)_end, 32, 64);
planetcore_set_stdout_path(table);
-Index: linux-2.6.24.7/arch/powerpc/boot/flatdevtree.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/flatdevtree.c
+--- a/arch/powerpc/boot/flatdevtree.c
+++ /dev/null
@@ -1,1036 +0,0 @@
-/*
-
- return buf;
-}
-Index: linux-2.6.24.7/arch/powerpc/boot/flatdevtree.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/flatdevtree.h
+--- a/arch/powerpc/boot/flatdevtree.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
-char *ft_get_path(struct ft_cxt *cxt, const void *phandle, char *buf, int len);
-
-#endif /* FLATDEVTREE_H */
-Index: linux-2.6.24.7/arch/powerpc/boot/flatdevtree_misc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/flatdevtree_misc.c
+--- a/arch/powerpc/boot/flatdevtree_misc.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- return ft_open(&cxt, dt_blob, max_size, max_find_device,
- platform_ops.realloc);
-}
-Index: linux-2.6.24.7/arch/powerpc/boot/holly.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/holly.c
-+++ linux-2.6.24.7/arch/powerpc/boot/holly.c
-@@ -28,6 +28,6 @@ void platform_init(unsigned long r3, uns
+--- a/arch/powerpc/boot/holly.c
++++ b/arch/powerpc/boot/holly.c
+@@ -28,6 +28,6 @@
u32 heapsize = 0x8000000 - (u32)_end; /* 128M */
simple_alloc_init(_end, heapsize, 32, 64);
+ fdt_init(_dtb_start);
serial_console_init();
}
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/Makefile.libfdt
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/Makefile.libfdt
++++ b/arch/powerpc/boot/libfdt/Makefile.libfdt
@@ -0,0 +1,14 @@
+# Makefile.libfdt
+#
+
+$(LIBFDT_objdir)/$(LIBFDT_LIB): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS))
+
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt.c
++++ b/arch/powerpc/boot/libfdt/fdt.c
@@ -0,0 +1,156 @@
+/*
+ * libfdt - Flat Device Tree manipulation
+ memmove(buf, fdt, fdt_totalsize(fdt));
+ return 0;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt.h
++++ b/arch/powerpc/boot/libfdt/fdt.h
@@ -0,0 +1,60 @@
+#ifndef _FDT_H
+#define _FDT_H
+#define FDT_V17_SIZE (FDT_V16_SIZE + sizeof(uint32_t))
+
+#endif /* _FDT_H */
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_ro.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_ro.c
++++ b/arch/powerpc/boot/libfdt/fdt_ro.c
@@ -0,0 +1,583 @@
+/*
+ * libfdt - Flat Device Tree manipulation
+
+ return -FDT_ERR_NOTFOUND;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_rw.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_rw.c
++++ b/arch/powerpc/boot/libfdt/fdt_rw.c
@@ -0,0 +1,447 @@
+/*
+ * libfdt - Flat Device Tree manipulation
+
+ return 0;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_strerror.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_strerror.c
++++ b/arch/powerpc/boot/libfdt/fdt_strerror.c
@@ -0,0 +1,96 @@
+/*
+ * libfdt - Flat Device Tree manipulation
+
+ return "<unknown error>";
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_sw.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_sw.c
++++ b/arch/powerpc/boot/libfdt/fdt_sw.c
@@ -0,0 +1,258 @@
+/*
+ * libfdt - Flat Device Tree manipulation
+ fdt_set_magic(fdt, FDT_MAGIC);
+ return 0;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_wip.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/fdt_wip.c
++++ b/arch/powerpc/boot/libfdt/fdt_wip.c
@@ -0,0 +1,144 @@
+/*
+ * libfdt - Flat Device Tree manipulation
+ nop_region(fdt_offset_ptr_w(fdt, nodeoffset, 0), endoffset - nodeoffset);
+ return 0;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/libfdt.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/libfdt.h
++++ b/arch/powerpc/boot/libfdt/libfdt.h
@@ -0,0 +1,721 @@
+#ifndef _LIBFDT_H
+#define _LIBFDT_H
+const char *fdt_strerror(int errval);
+
+#endif /* _LIBFDT_H */
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt/libfdt_internal.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt/libfdt_internal.h
++++ b/arch/powerpc/boot/libfdt/libfdt_internal.h
@@ -0,0 +1,89 @@
+#ifndef _LIBFDT_INTERNAL_H
+#define _LIBFDT_INTERNAL_H
+#define SW_MAGIC (~FDT_MAGIC)
+
+#endif /* _LIBFDT_INTERNAL_H */
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt-wrapper.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt-wrapper.c
++++ b/arch/powerpc/boot/libfdt-wrapper.c
@@ -0,0 +1,184 @@
+/*
+ * This file does the necessary interface mapping between the bootwrapper
+ if (buf)
+ fdt = buf;
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/libfdt_env.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/libfdt_env.h
++++ b/arch/powerpc/boot/libfdt_env.h
@@ -0,0 +1,17 @@
+#ifndef _ARCH_POWERPC_BOOT_LIBFDT_ENV_H
+#define _ARCH_POWERPC_BOOT_LIBFDT_ENV_H
+#define cpu_to_fdt64(x) (x)
+
+#endif /* _ARCH_POWERPC_BOOT_LIBFDT_ENV_H */
-Index: linux-2.6.24.7/arch/powerpc/boot/main.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/main.c
-+++ linux-2.6.24.7/arch/powerpc/boot/main.c
+--- a/arch/powerpc/boot/main.c
++++ b/arch/powerpc/boot/main.c
@@ -16,7 +16,6 @@
#include "stdio.h"
#include "ops.h"
#include "reg.h"
static struct gunzip_state gzstate;
-Index: linux-2.6.24.7/arch/powerpc/boot/ops.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/ops.h
-+++ linux-2.6.24.7/arch/powerpc/boot/ops.h
-@@ -79,7 +79,7 @@ struct loader_info {
+--- a/arch/powerpc/boot/ops.h
++++ b/arch/powerpc/boot/ops.h
+@@ -79,7 +79,7 @@
extern struct loader_info loader_info;
void start(void);
int serial_console_init(void);
int ns16550_console_init(void *devp, struct serial_console_data *scdp);
int mpsc_console_init(void *devp, struct serial_console_data *scdp);
-@@ -159,9 +159,23 @@ static inline void *find_node_by_devtype
+@@ -159,9 +159,23 @@
return find_node_by_prop_value_str(prev, "device_type", type);
}
void dt_fixup_mac_address(u32 index, const u8 *addr);
void __dt_fixup_mac_addresses(u32 startindex, ...);
#define dt_fixup_mac_addresses(...) \
-Index: linux-2.6.24.7/arch/powerpc/boot/prpmc2800.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/prpmc2800.c
-+++ linux-2.6.24.7/arch/powerpc/boot/prpmc2800.c
-@@ -547,8 +547,7 @@ void platform_init(unsigned long r3, uns
+--- a/arch/powerpc/boot/prpmc2800.c
++++ b/arch/powerpc/boot/prpmc2800.c
+@@ -547,8 +547,7 @@
if (!dtb)
exit();
memmove(dtb, _dtb_start, dt_size);
bridge_base = mv64x60_get_bridge_base();
-Index: linux-2.6.24.7/arch/powerpc/boot/ps3.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/ps3.c
-+++ linux-2.6.24.7/arch/powerpc/boot/ps3.c
-@@ -131,7 +131,7 @@ void platform_init(void)
+--- a/arch/powerpc/boot/ps3.c
++++ b/arch/powerpc/boot/ps3.c
+@@ -131,7 +131,7 @@
printf("\n-- PS3 bootwrapper --\n");
simple_alloc_init(_end, heapsize, 32, 64);
chosen = finddevice("/chosen");
-Index: linux-2.6.24.7/arch/powerpc/boot/redboot-8xx.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/redboot-8xx.c
++++ b/arch/powerpc/boot/redboot-8xx.c
@@ -0,0 +1,58 @@
+/*
+ * RedBoot firmware support
+ loader_info.cmdline = (char *)bd.bi_cmdline;
+ loader_info.cmdline_len = strlen((char *)bd.bi_cmdline);
+}
-Index: linux-2.6.24.7/arch/powerpc/boot/redboot.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/boot/redboot.h
++++ b/arch/powerpc/boot/redboot.h
@@ -0,0 +1,56 @@
+#ifndef _PPC_REDBOOT_H
+#define _PPC_REDBOOT_H
+#define bi_pci_busfreq bi_pci_freq
+#define bi_immr_base bi_immr
+#endif
-Index: linux-2.6.24.7/arch/powerpc/boot/reg.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/reg.h
-+++ linux-2.6.24.7/arch/powerpc/boot/reg.h
-@@ -16,6 +16,14 @@ static inline u32 mfpvr(void)
+--- a/arch/powerpc/boot/reg.h
++++ b/arch/powerpc/boot/reg.h
+@@ -16,6 +16,14 @@
return pvr;
}
register void *__stack_pointer asm("r1");
#define get_sp() (__stack_pointer)
-Index: linux-2.6.24.7/arch/powerpc/boot/serial.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/serial.c
-+++ linux-2.6.24.7/arch/powerpc/boot/serial.c
-@@ -128,7 +128,8 @@ int serial_console_init(void)
+--- a/arch/powerpc/boot/serial.c
++++ b/arch/powerpc/boot/serial.c
+@@ -128,7 +128,8 @@
rc = cpm_console_init(devp, &serial_cd);
else if (dt_is_compatible(devp, "mpc5200-psc-uart"))
rc = mpc5200_psc_console_init(devp, &serial_cd);
rc = uartlite_console_init(devp, &serial_cd);
/* Add other serial console driver calls here */
-Index: linux-2.6.24.7/arch/powerpc/boot/treeboot-walnut.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/treeboot-walnut.c
-+++ linux-2.6.24.7/arch/powerpc/boot/treeboot-walnut.c
+--- a/arch/powerpc/boot/treeboot-walnut.c
++++ b/arch/powerpc/boot/treeboot-walnut.c
@@ -20,55 +20,6 @@
BSS_STACK(4096);
static void walnut_flashsel_fixup(void)
{
void *devp, *sram;
-@@ -112,7 +63,7 @@ static void walnut_flashsel_fixup(void)
+@@ -112,7 +63,7 @@
#define WALNUT_OPENBIOS_MAC_OFF 0xfffffe0b
static void walnut_fixups(void)
{
ibm405gp_fixup_clocks(33330000, 0xa8c000);
ibm4xx_quiesce_eth((u32 *)0xef600800, NULL);
ibm4xx_fixup_ebc_ranges("/plb/ebc");
-@@ -128,6 +79,6 @@ void platform_init(void)
+@@ -128,6 +79,6 @@
simple_alloc_init(_end, avail_ram, 32, 32);
platform_ops.fixups = walnut_fixups;
platform_ops.exit = ibm40x_dbcr_reset;
+ fdt_init(_dtb_start);
serial_console_init();
}
-Index: linux-2.6.24.7/arch/powerpc/boot/wrapper
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/boot/wrapper
-+++ linux-2.6.24.7/arch/powerpc/boot/wrapper
-@@ -45,6 +45,7 @@ CROSS=
+--- a/arch/powerpc/boot/wrapper
++++ b/arch/powerpc/boot/wrapper
+@@ -45,6 +45,7 @@
# directory for object and other files used by this script
object=arch/powerpc/boot
# directory for working files
tmpdir=.
-@@ -95,6 +96,7 @@ while [ "$#" -gt 0 ]; do
+@@ -95,6 +96,7 @@
shift
[ "$#" -gt 0 ] || usage
object="$1"
;;
-W)
shift
-@@ -116,10 +118,13 @@ while [ "$#" -gt 0 ]; do
+@@ -116,10 +118,13 @@
done
if [ -n "$dts" ]; then
fi
if [ -z "$kernel" ]; then
-@@ -163,7 +168,7 @@ ps3)
+@@ -163,7 +168,7 @@
ksection=.kernel:vmlinux.bin
isection=.kernel:initrd
;;
platformo="$object/fixed-head.o $object/$platform.o"
binary=y
;;
-@@ -246,11 +251,11 @@ fi
+@@ -246,11 +251,11 @@
# post-processing needed for some platforms
case "$platform" in
pseries|chrp)
;;
cuboot*)
gzip -f -9 "$ofile"
-@@ -259,7 +264,7 @@ cuboot*)
+@@ -259,7 +264,7 @@
;;
treeboot*)
mv "$ofile" "$ofile.elf"
if [ -z "$cacheit" ]; then
rm -f "$ofile.elf"
fi
-@@ -287,8 +292,6 @@ ps3)
+@@ -287,8 +292,6 @@
overlay_dest="256"
overlay_size="256"
${CROSS}objcopy -O binary "$ofile" "$ofile.bin"
dd if="$ofile.bin" of="$ofile.bin" conv=notrunc \
-@@ -299,6 +302,8 @@ ps3)
+@@ -299,6 +302,8 @@
skip=$system_reset_overlay seek=$overlay_dest \
count=$overlay_size bs=1
+ gzip --force -9 --stdout "$ofile.bin" > "$odir/otheros.bld"
;;
esac
-Index: linux-2.6.24.7/arch/powerpc/configs/adder875-redboot_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/adder875-redboot_defconfig
++++ b/arch/powerpc/configs/adder875-redboot_defconfig
@@ -0,0 +1,798 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO is not set
+# CONFIG_PPC_CLOCK is not set
+CONFIG_PPC_LIB_RHEAP=y
-Index: linux-2.6.24.7/arch/powerpc/configs/adder875-uboot_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/adder875-uboot_defconfig
++++ b/arch/powerpc/configs/adder875-uboot_defconfig
@@ -0,0 +1,798 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO is not set
+# CONFIG_PPC_CLOCK is not set
+CONFIG_PPC_LIB_RHEAP=y
-Index: linux-2.6.24.7/arch/powerpc/configs/bamboo_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/bamboo_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/bamboo_defconfig
+--- a/arch/powerpc/configs/bamboo_defconfig
++++ b/arch/powerpc/configs/bamboo_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
# CONFIG_PPC64 is not set
-@@ -131,6 +131,7 @@ CONFIG_DEFAULT_AS=y
+@@ -131,6 +131,7 @@
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
-@@ -143,6 +144,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
+@@ -143,6 +144,9 @@
CONFIG_BAMBOO=y
# CONFIG_EBONY is not set
# CONFIG_SEQUOIA is not set
CONFIG_440EP=y
CONFIG_IBM440EP_ERR42=y
# CONFIG_MPIC is not set
-@@ -372,9 +376,7 @@ CONFIG_MISC_DEVICES=y
+@@ -372,9 +376,7 @@
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
# CONFIG_I2O is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
-@@ -736,19 +738,7 @@ CONFIG_DEBUGGER=y
+@@ -736,19 +738,7 @@
# CONFIG_KGDB is not set
# CONFIG_XMON is not set
# CONFIG_BDI_SWITCH is not set
#
# Security options
-Index: linux-2.6.24.7/arch/powerpc/configs/celleb_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/celleb_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/celleb_defconfig
-@@ -50,7 +50,8 @@ CONFIG_AUDIT_ARCH=y
+--- a/arch/powerpc/configs/celleb_defconfig
++++ b/arch/powerpc/configs/celleb_defconfig
+@@ -50,7 +50,8 @@
CONFIG_GENERIC_BUG=y
# CONFIG_DEFAULT_UIMAGE is not set
# CONFIG_PPC_DCR_NATIVE is not set
CONFIG_PPC_OF_PLATFORM_PCI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-@@ -148,7 +149,7 @@ CONFIG_PPC_MULTIPLATFORM=y
+@@ -148,7 +149,7 @@
CONFIG_PPC_CELLEB=y
# CONFIG_PPC_PS3 is not set
CONFIG_PPC_CELL=y
# CONFIG_PPC_IBM_CELL_BLADE is not set
#
-@@ -157,13 +158,19 @@ CONFIG_PPC_CELL=y
+@@ -157,13 +158,19 @@
CONFIG_SPU_FS=y
CONFIG_SPU_FS_64K_LS=y
CONFIG_SPU_BASE=y
# CONFIG_MMIO_NVRAM is not set
# CONFIG_PPC_MPC106 is not set
# CONFIG_PPC_970_NAP is not set
-@@ -593,10 +600,11 @@ CONFIG_MII=y
+@@ -593,10 +600,11 @@
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_NET_PCI is not set
# CONFIG_B44 is not set
CONFIG_NETDEV_1000=y
-@@ -741,6 +749,7 @@ CONFIG_SERIAL_TXX9_CONSOLE=y
+@@ -741,6 +749,7 @@
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_HVC_DRIVER=y
CONFIG_HVC_BEAT=y
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
-@@ -822,6 +831,7 @@ CONFIG_WATCHDOG=y
+@@ -822,6 +831,7 @@
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
#
# PCI-based Watchdog Cards
-@@ -1245,17 +1255,7 @@ CONFIG_XMON_DISASSEMBLY=y
+@@ -1245,17 +1255,7 @@
CONFIG_IRQSTACKS=y
# CONFIG_VIRQ_DEBUG is not set
# CONFIG_BOOTX_TEXT is not set
#
# Security options
-Index: linux-2.6.24.7/arch/powerpc/configs/ebony_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/ebony_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/ebony_defconfig
+--- a/arch/powerpc/configs/ebony_defconfig
++++ b/arch/powerpc/configs/ebony_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
# CONFIG_PPC64 is not set
-@@ -130,6 +130,7 @@ CONFIG_DEFAULT_AS=y
+@@ -130,6 +130,7 @@
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
-@@ -142,6 +143,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
+@@ -142,6 +143,9 @@
# CONFIG_BAMBOO is not set
CONFIG_EBONY=y
# CONFIG_SEQUOIA is not set
CONFIG_440GP=y
# CONFIG_MPIC is not set
# CONFIG_MPIC_WEIRD is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/ep405_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/ep405_defconfig
++++ b/arch/powerpc/configs/ep405_defconfig
@@ -0,0 +1,952 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_PPC_CLOCK is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/ep8248e_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/ep8248e_defconfig
++++ b/arch/powerpc/configs/ep8248e_defconfig
@@ -0,0 +1,821 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_PPC_CLOCK is not set
+CONFIG_PPC_LIB_RHEAP=y
-Index: linux-2.6.24.7/arch/powerpc/configs/katmai_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/katmai_defconfig
++++ b/arch/powerpc/configs/katmai_defconfig
@@ -0,0 +1,790 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_PPC_CLOCK is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/kilauea_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/kilauea_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/kilauea_defconfig
+--- a/arch/powerpc/configs/kilauea_defconfig
++++ b/arch/powerpc/configs/kilauea_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
# CONFIG_PPC64 is not set
-@@ -40,7 +40,7 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+@@ -40,7 +40,7 @@
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_PPC_OF=y
CONFIG_OF=y
# CONFIG_GENERIC_TBSYNC is not set
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
-@@ -125,6 +125,7 @@ CONFIG_DEFAULT_AS=y
+@@ -125,6 +125,7 @@
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
-@@ -134,9 +135,12 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
+@@ -134,9 +135,12 @@
# CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_PQ2ADS is not set
# CONFIG_MPIC is not set
# CONFIG_MPIC_WEIRD is not set
# CONFIG_PPC_I8259 is not set
-@@ -199,11 +203,17 @@ CONFIG_ISA_DMA_API=y
+@@ -199,11 +203,17 @@
# Bus options
#
CONFIG_ZONE_DMA=y
#
# Advanced setup
-@@ -368,11 +378,13 @@ CONFIG_MTD_CFI_UTIL=y
+@@ -368,11 +378,13 @@
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
-@@ -395,9 +407,14 @@ CONFIG_OF_DEVICE=y
+@@ -395,9 +407,14 @@
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=35000
-@@ -417,6 +434,14 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+@@ -417,6 +434,14 @@
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
-@@ -426,9 +451,33 @@ CONFIG_NETDEVICES=y
+@@ -426,9 +451,33 @@
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
#
# Wireless LAN
-@@ -436,6 +485,8 @@ CONFIG_NETDEVICES=y
+@@ -436,6 +485,8 @@
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
-@@ -467,6 +518,7 @@ CONFIG_NETDEVICES=y
+@@ -467,6 +518,7 @@
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
-@@ -481,6 +533,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
+@@ -481,6 +533,7 @@
# CONFIG_SERIAL_UARTLITE is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
-@@ -490,8 +543,10 @@ CONFIG_LEGACY_PTY_COUNT=256
+@@ -490,8 +543,10 @@
# CONFIG_NVRAM is not set
# CONFIG_GEN_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_I2C is not set
#
-@@ -525,6 +580,8 @@ CONFIG_SSB_POSSIBLE=y
+@@ -525,6 +580,8 @@
#
# Graphics support
#
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
# CONFIG_FB is not set
-@@ -542,6 +599,7 @@ CONFIG_SSB_POSSIBLE=y
+@@ -542,6 +599,7 @@
# CONFIG_USB_SUPPORT is not set
# CONFIG_MMC is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/lite5200_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/lite5200_defconfig
+--- a/arch/powerpc/configs/lite5200_defconfig
+++ /dev/null
@@ -1,847 +0,0 @@
-#
-# CONFIG_CRYPTO is not set
-CONFIG_PPC_CLOCK=y
-CONFIG_PPC_LIB_RHEAP=y
-Index: linux-2.6.24.7/arch/powerpc/configs/makalu_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/makalu_defconfig
++++ b/arch/powerpc/configs/makalu_defconfig
@@ -0,0 +1,812 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_PPC_CLOCK is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/mpc5200_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/mpc5200_defconfig
++++ b/arch/powerpc/configs/mpc5200_defconfig
@@ -0,0 +1,1286 @@
+#
+# Automatically generated make config: don't edit
+CONFIG_CRYPTO_HW=y
+CONFIG_PPC_CLOCK=y
+CONFIG_PPC_LIB_RHEAP=y
-Index: linux-2.6.24.7/arch/powerpc/configs/mpc8313_rdb_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/mpc8313_rdb_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/mpc8313_rdb_defconfig
+--- a/arch/powerpc/configs/mpc8313_rdb_defconfig
++++ b/arch/powerpc/configs/mpc8313_rdb_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
# CONFIG_PPC64 is not set
-@@ -144,6 +144,7 @@ CONFIG_MPC8313_RDB=y
+@@ -144,6 +144,7 @@
# CONFIG_MPC834x_MDS is not set
# CONFIG_MPC834x_ITX is not set
# CONFIG_MPC836x_MDS is not set
CONFIG_PPC_MPC831x=y
# CONFIG_MPIC is not set
# CONFIG_MPIC_WEIRD is not set
-@@ -336,15 +337,16 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
+@@ -336,15 +337,16 @@
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
-@@ -381,11 +383,8 @@ CONFIG_MTD_CFI_UTIL=y
+@@ -381,11 +383,8 @@
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_PLATRAM is not set
-@@ -406,7 +405,16 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+@@ -406,7 +405,16 @@
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_ONENAND is not set
#
-@@ -1178,7 +1186,17 @@ CONFIG_TMPFS=y
+@@ -1178,7 +1186,17 @@
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
-@@ -1242,6 +1260,8 @@ CONFIG_BITREVERSE=y
+@@ -1242,6 +1260,8 @@
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
-Index: linux-2.6.24.7/arch/powerpc/configs/mpc834x_itx_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/mpc834x_itx_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/mpc834x_itx_defconfig
-@@ -570,7 +570,8 @@ CONFIG_SATA_SIL=y
+--- a/arch/powerpc/configs/mpc834x_itx_defconfig
++++ b/arch/powerpc/configs/mpc834x_itx_defconfig
+@@ -570,7 +570,8 @@
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=y
-Index: linux-2.6.24.7/arch/powerpc/configs/mpc837x_mds_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/mpc837x_mds_defconfig
++++ b/arch/powerpc/configs/mpc837x_mds_defconfig
@@ -0,0 +1,878 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_HW=y
-Index: linux-2.6.24.7/arch/powerpc/configs/mpc8610_hpcd_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/mpc8610_hpcd_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/mpc8610_hpcd_defconfig
-@@ -696,7 +696,7 @@ CONFIG_SERIAL_8250_RSA=y
+--- a/arch/powerpc/configs/mpc8610_hpcd_defconfig
++++ b/arch/powerpc/configs/mpc8610_hpcd_defconfig
+@@ -696,7 +696,7 @@
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
-@@ -708,7 +708,60 @@ CONFIG_UNIX98_PTYS=y
+@@ -708,7 +708,60 @@
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
#
# SPI support
-@@ -763,7 +816,119 @@ CONFIG_DUMMY_CONSOLE=y
+@@ -763,7 +816,119 @@
#
# Sound
#
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/pasemi_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/pasemi_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/pasemi_defconfig
+--- a/arch/powerpc/configs/pasemi_defconfig
++++ b/arch/powerpc/configs/pasemi_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
CONFIG_PPC64=y
-@@ -152,7 +152,6 @@ CONFIG_PPC_PASEMI=y
+@@ -152,7 +152,6 @@
CONFIG_PPC_PASEMI_IOMMU=y
# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
CONFIG_PPC_PASEMI_MDIO=y
# CONFIG_PPC_CELLEB is not set
# CONFIG_PPC_PS3 is not set
# CONFIG_PPC_CELL is not set
-@@ -256,7 +255,7 @@ CONFIG_PCI_DOMAINS=y
+@@ -256,7 +255,7 @@
CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCCARD=y
-@@ -663,7 +662,26 @@ CONFIG_PATA_PCMCIA=y
+@@ -663,7 +662,26 @@
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
CONFIG_PATA_PLATFORM=y
# CONFIG_FUSION is not set
#
-@@ -1686,6 +1704,10 @@ CONFIG_XMON_DISASSEMBLY=y
+@@ -1686,6 +1704,10 @@
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
-Index: linux-2.6.24.7/arch/powerpc/configs/ppc64_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/ppc64_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/ppc64_defconfig
+--- a/arch/powerpc/configs/ppc64_defconfig
++++ b/arch/powerpc/configs/ppc64_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
CONFIG_PPC64=y
-@@ -211,7 +211,7 @@ CONFIG_MMIO_NVRAM=y
+@@ -211,7 +211,7 @@
CONFIG_MPIC_U3_HT_IRQS=y
CONFIG_MPIC_BROKEN_REGREAD=y
CONFIG_IBMVIO=y
# CONFIG_PPC_MPC106 is not set
CONFIG_PPC_970_NAP=y
CONFIG_PPC_INDIRECT_IO=y
-@@ -375,7 +375,7 @@ CONFIG_INET_TUNNEL=y
+@@ -375,7 +375,7 @@
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
-@@ -929,6 +929,7 @@ CONFIG_SPIDER_NET=m
+@@ -929,6 +929,7 @@
CONFIG_NETDEV_10000=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGBE is not set
CONFIG_IXGB=m
# CONFIG_IXGB_NAPI is not set
-@@ -1558,6 +1559,7 @@ CONFIG_INFINIBAND_ADDR_TRANS=y
+@@ -1558,6 +1559,7 @@
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
# CONFIG_INFINIBAND_IPATH is not set
# CONFIG_INFINIBAND_AMSO1100 is not set
# CONFIG_MLX4_INFINIBAND is not set
CONFIG_INFINIBAND_IPOIB=m
-Index: linux-2.6.24.7/arch/powerpc/configs/ps3_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/ps3_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/ps3_defconfig
+--- a/arch/powerpc/configs/ps3_defconfig
++++ b/arch/powerpc/configs/ps3_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
CONFIG_PPC64=y
-@@ -103,6 +103,7 @@ CONFIG_VM_EVENT_COUNTERS=y
+@@ -103,6 +103,7 @@
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
-@@ -154,7 +155,6 @@ CONFIG_PPC_PS3=y
+@@ -154,7 +155,6 @@
# CONFIG_PS3_ADVANCED is not set
CONFIG_PS3_HTAB_SIZE=20
# CONFIG_PS3_DYNAMIC_DMA is not set
CONFIG_PS3_VUART=y
CONFIG_PS3_PS3AV=y
CONFIG_PS3_SYS_MANAGER=y
-@@ -162,6 +162,7 @@ CONFIG_PS3_STORAGE=y
+@@ -162,6 +162,7 @@
CONFIG_PS3_DISK=y
CONFIG_PS3_ROM=y
CONFIG_PS3_FLASH=y
CONFIG_PPC_CELL=y
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_PPC_IBM_CELL_BLADE is not set
-@@ -225,7 +226,7 @@ CONFIG_HAVE_MEMORY_PRESENT=y
+@@ -225,7 +226,7 @@
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_SPARSE=y
CONFIG_SPLIT_PTLOCK_CPUS=4
-@@ -338,7 +339,26 @@ CONFIG_IPV6_SIT=y
+@@ -338,7 +339,26 @@
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_AF_RXRPC is not set
#
-@@ -666,14 +686,14 @@ CONFIG_LOGO_LINUX_CLUT224=y
+@@ -666,14 +686,14 @@
#
# Sound
#
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
# CONFIG_SND_PCM_OSS is not set
-@@ -702,7 +722,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
+@@ -702,7 +722,7 @@
#
# ALSA PowerPC devices
#
CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
#
-@@ -747,7 +767,7 @@ CONFIG_USB_SUPPORT=y
+@@ -747,7 +767,7 @@
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB_DEBUG is not set
#
-@@ -761,13 +781,13 @@ CONFIG_USB_DEVICEFS=y
+@@ -761,13 +781,13 @@
#
# USB Host Controller Drivers
#
# CONFIG_USB_OHCI_HCD_PPC_OF is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
-@@ -1033,7 +1053,8 @@ CONFIG_HAS_IOMEM=y
+@@ -1033,7 +1053,8 @@
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_INSTRUMENTATION=y
# CONFIG_KPROBES is not set
# CONFIG_MARKERS is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/rainier_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/rainier_defconfig
++++ b/arch/powerpc/configs/rainier_defconfig
@@ -0,0 +1,873 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_PPC_CLOCK is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/sequoia_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/sequoia_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/sequoia_defconfig
+--- a/arch/powerpc/configs/sequoia_defconfig
++++ b/arch/powerpc/configs/sequoia_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
# CONFIG_PPC64 is not set
-@@ -129,6 +129,7 @@ CONFIG_DEFAULT_AS=y
+@@ -129,6 +129,7 @@
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
-@@ -141,8 +142,10 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
+@@ -141,8 +142,10 @@
# CONFIG_BAMBOO is not set
# CONFIG_EBONY is not set
CONFIG_SEQUOIA=y
# CONFIG_MPIC is not set
# CONFIG_MPIC_WEIRD is not set
# CONFIG_PPC_I8259 is not set
-@@ -446,9 +449,7 @@ CONFIG_MISC_DEVICES=y
+@@ -446,9 +449,7 @@
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
# CONFIG_I2O is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
-@@ -459,10 +460,28 @@ CONFIG_NETDEVICES=y
+@@ -459,10 +460,28 @@
# CONFIG_VETH is not set
# CONFIG_IP1000 is not set
# CONFIG_ARCNET is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
-@@ -811,6 +830,7 @@ CONFIG_PPC_EARLY_DEBUG=y
+@@ -811,6 +830,7 @@
# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
CONFIG_PPC_EARLY_DEBUG_44x=y
# CONFIG_PPC_EARLY_DEBUG_CPM is not set
CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW=0xef600300
CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1
-Index: linux-2.6.24.7/arch/powerpc/configs/storcenter_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/storcenter_defconfig
++++ b/arch/powerpc/configs/storcenter_defconfig
@@ -0,0 +1,1174 @@
+#
+# Automatically generated make config: don't edit
+CONFIG_ASYNC_XOR=y
+# CONFIG_CRYPTO is not set
+# CONFIG_PPC_CLOCK is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/taishan_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/taishan_defconfig
++++ b/arch/powerpc/configs/taishan_defconfig
@@ -0,0 +1,790 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_PPC_CLOCK is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/walnut_defconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/configs/walnut_defconfig
-+++ linux-2.6.24.7/arch/powerpc/configs/walnut_defconfig
+--- a/arch/powerpc/configs/walnut_defconfig
++++ b/arch/powerpc/configs/walnut_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
#
# CONFIG_PPC64 is not set
-@@ -40,7 +40,7 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+@@ -40,7 +40,7 @@
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_PPC_OF=y
CONFIG_OF=y
# CONFIG_GENERIC_TBSYNC is not set
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
-@@ -127,6 +127,7 @@ CONFIG_DEFAULT_AS=y
+@@ -127,6 +127,7 @@
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
-@@ -136,7 +137,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
+@@ -136,7 +137,9 @@
# CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_PQ2ADS is not set
CONFIG_WALNUT=y
# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set
CONFIG_405GP=y
-@@ -204,11 +207,17 @@ CONFIG_ISA_DMA_API=y
+@@ -204,11 +207,17 @@
# Bus options
#
CONFIG_ZONE_DMA=y
#
# Advanced setup
-@@ -373,11 +382,13 @@ CONFIG_MTD_CFI_UTIL=y
+@@ -373,11 +382,13 @@
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
-@@ -400,9 +411,14 @@ CONFIG_OF_DEVICE=y
+@@ -400,9 +411,14 @@
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=35000
-@@ -411,7 +427,10 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+@@ -411,7 +427,10 @@
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_XILINX_SYSACE is not set
CONFIG_MISC_DEVICES=y
# CONFIG_IDE is not set
#
-@@ -423,6 +442,14 @@ CONFIG_MISC_DEVICES=y
+@@ -423,6 +442,14 @@
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
-@@ -432,9 +459,17 @@ CONFIG_NETDEVICES=y
+@@ -432,9 +459,17 @@
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
CONFIG_IBM_NEW_EMAC=y
CONFIG_IBM_NEW_EMAC_RXB=128
CONFIG_IBM_NEW_EMAC_TXB=64
-@@ -446,9 +481,38 @@ CONFIG_IBM_NEW_EMAC_ZMII=y
+@@ -446,9 +481,38 @@
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
#
# Wireless LAN
-@@ -456,6 +520,8 @@ CONFIG_NETDEV_10000=y
+@@ -456,6 +520,8 @@
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
-@@ -487,6 +553,7 @@ CONFIG_NETDEV_10000=y
+@@ -487,6 +553,7 @@
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
-@@ -501,6 +568,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
+@@ -501,6 +568,7 @@
# CONFIG_SERIAL_UARTLITE is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
-@@ -510,8 +578,10 @@ CONFIG_LEGACY_PTY_COUNT=256
+@@ -510,8 +578,10 @@
# CONFIG_NVRAM is not set
# CONFIG_GEN_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_I2C is not set
#
-@@ -545,6 +615,8 @@ CONFIG_SSB_POSSIBLE=y
+@@ -545,6 +615,8 @@
#
# Graphics support
#
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_FB is not set
-@@ -560,9 +632,10 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
+@@ -560,9 +632,10 @@
#
# CONFIG_SOUND is not set
CONFIG_USB_SUPPORT=y
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-@@ -574,6 +647,7 @@ CONFIG_USB_SUPPORT=y
+@@ -574,6 +647,7 @@
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
-Index: linux-2.6.24.7/arch/powerpc/configs/warp_defconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/configs/warp_defconfig
++++ b/arch/powerpc/configs/warp_defconfig
@@ -0,0 +1,1057 @@
+#
+# Automatically generated make config: don't edit
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+# CONFIG_PPC_CLOCK is not set
-Index: linux-2.6.24.7/arch/powerpc/kernel/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/Makefile
-+++ linux-2.6.24.7/arch/powerpc/kernel/Makefile
+--- a/arch/powerpc/kernel/Makefile
++++ b/arch/powerpc/kernel/Makefile
@@ -3,7 +3,7 @@
#
endif
ifeq ($(CONFIG_PPC32),y)
CFLAGS_prom_init.o += -fPIC
-@@ -70,6 +70,7 @@ pci64-$(CONFIG_PPC64) += pci_dn.o isa-b
+@@ -70,6 +70,7 @@
obj-$(CONFIG_PCI) += pci_$(CONFIG_WORD_SIZE).o $(pci64-y) \
pci-common.o
obj-$(CONFIG_PCI_MSI) += msi.o
obj-$(CONFIG_KEXEC) += machine_kexec.o crash.o \
machine_kexec_$(CONFIG_WORD_SIZE).o
obj-$(CONFIG_AUDIT) += audit.o
-@@ -91,3 +92,13 @@ obj-$(CONFIG_PPC64) += $(obj64-y)
+@@ -91,3 +92,13 @@
extra-$(CONFIG_PPC_FPU) += fpu.o
extra-$(CONFIG_PPC64) += entry_64.o
+PHONY += systbl_chk
+systbl_chk: $(src)/systbl_chk.sh $(obj)/systbl_chk.i
+ $(call cmd,systbl_chk)
-Index: linux-2.6.24.7/arch/powerpc/kernel/btext.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/btext.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/btext.c
-@@ -236,7 +236,7 @@ int __init btext_find_display(int allow_
+--- a/arch/powerpc/kernel/btext.c
++++ b/arch/powerpc/kernel/btext.c
+@@ -236,7 +236,7 @@
if (rc == 0 || !allow_nonstdout)
return rc;
if (of_get_property(np, "linux,opened", NULL)) {
printk("trying %s ...\n", np->full_name);
rc = btext_initialize(np);
-Index: linux-2.6.24.7/arch/powerpc/kernel/cpu_setup_44x.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/cpu_setup_44x.S
-+++ linux-2.6.24.7/arch/powerpc/kernel/cpu_setup_44x.S
-@@ -23,11 +23,24 @@ _GLOBAL(__setup_cpu_440epx)
+--- a/arch/powerpc/kernel/cpu_setup_44x.S
++++ b/arch/powerpc/kernel/cpu_setup_44x.S
+@@ -23,11 +23,24 @@
mflr r4
bl __init_fpu_44x
bl __plb_disable_wrp
/* enable APU between CPU and FPU */
_GLOBAL(__init_fpu_44x)
-Index: linux-2.6.24.7/arch/powerpc/kernel/cputable.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/cputable.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/cputable.c
-@@ -33,7 +33,9 @@ EXPORT_SYMBOL(cur_cpu_spec);
+--- a/arch/powerpc/kernel/cputable.c
++++ b/arch/powerpc/kernel/cputable.c
+@@ -33,7 +33,9 @@
#ifdef CONFIG_PPC32
extern void __setup_cpu_440ep(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_440epx(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec);
-@@ -85,6 +87,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -85,6 +87,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/power3",
.oprofile_type = PPC_OPROFILE_RS64,
.platform = "power3",
},
{ /* Power3+ */
-@@ -99,6 +102,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -99,6 +102,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/power3",
.oprofile_type = PPC_OPROFILE_RS64,
.platform = "power3",
},
{ /* Northstar */
-@@ -113,6 +117,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -113,6 +117,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/rs64",
.oprofile_type = PPC_OPROFILE_RS64,
.platform = "rs64",
},
{ /* Pulsar */
-@@ -127,6 +132,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -127,6 +132,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/rs64",
.oprofile_type = PPC_OPROFILE_RS64,
.platform = "rs64",
},
{ /* I-star */
-@@ -141,6 +147,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -141,6 +147,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/rs64",
.oprofile_type = PPC_OPROFILE_RS64,
.platform = "rs64",
},
{ /* S-star */
-@@ -155,6 +162,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -155,6 +162,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/rs64",
.oprofile_type = PPC_OPROFILE_RS64,
.platform = "rs64",
},
{ /* Power4 */
-@@ -169,6 +177,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -169,6 +177,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/power4",
.oprofile_type = PPC_OPROFILE_POWER4,
.platform = "power4",
},
{ /* Power4+ */
-@@ -183,6 +192,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -183,6 +192,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/power4",
.oprofile_type = PPC_OPROFILE_POWER4,
.platform = "power4",
},
{ /* PPC970 */
-@@ -200,6 +210,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -200,6 +210,7 @@
.cpu_restore = __restore_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970",
.oprofile_type = PPC_OPROFILE_POWER4,
.platform = "ppc970",
},
{ /* PPC970FX */
-@@ -217,6 +228,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -217,6 +228,7 @@
.cpu_restore = __restore_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970",
.oprofile_type = PPC_OPROFILE_POWER4,
.platform = "ppc970",
},
{ /* PPC970MP DD1.0 - no DEEPNAP, use regular 970 init */
-@@ -234,6 +246,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -234,6 +246,7 @@
.cpu_restore = __restore_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970MP",
.oprofile_type = PPC_OPROFILE_POWER4,
.platform = "ppc970",
},
{ /* PPC970MP */
-@@ -251,6 +264,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -251,6 +264,7 @@
.cpu_restore = __restore_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970MP",
.oprofile_type = PPC_OPROFILE_POWER4,
.platform = "ppc970",
},
{ /* PPC970GX */
-@@ -267,6 +281,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -267,6 +281,7 @@
.cpu_setup = __setup_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970",
.oprofile_type = PPC_OPROFILE_POWER4,
.platform = "ppc970",
},
{ /* Power5 GR */
-@@ -286,6 +301,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -286,6 +301,7 @@
*/
.oprofile_mmcra_sihv = MMCRA_SIHV,
.oprofile_mmcra_sipr = MMCRA_SIPR,
.platform = "power5",
},
{ /* Power5++ */
-@@ -301,6 +317,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -301,6 +317,7 @@
.oprofile_type = PPC_OPROFILE_POWER4,
.oprofile_mmcra_sihv = MMCRA_SIHV,
.oprofile_mmcra_sipr = MMCRA_SIPR,
.platform = "power5+",
},
{ /* Power5 GS */
-@@ -317,6 +334,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -317,6 +334,7 @@
.oprofile_type = PPC_OPROFILE_POWER4,
.oprofile_mmcra_sihv = MMCRA_SIHV,
.oprofile_mmcra_sipr = MMCRA_SIPR,
.platform = "power5+",
},
{ /* POWER6 in P5+ mode; 2.04-compliant processor */
-@@ -327,6 +345,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -327,6 +345,7 @@
.cpu_user_features = COMMON_USER_POWER5_PLUS,
.icache_bsize = 128,
.dcache_bsize = 128,
.platform = "power5+",
},
{ /* Power6 */
-@@ -346,6 +365,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -346,6 +365,7 @@
.oprofile_mmcra_sipr = POWER6_MMCRA_SIPR,
.oprofile_mmcra_clear = POWER6_MMCRA_THRM |
POWER6_MMCRA_OTHER,
.platform = "power6x",
},
{ /* 2.05-compliant processor, i.e. Power6 "architected" mode */
-@@ -356,6 +376,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -356,6 +376,7 @@
.cpu_user_features = COMMON_USER_POWER6,
.icache_bsize = 128,
.dcache_bsize = 128,
.platform = "power6",
},
{ /* Cell Broadband Engine */
-@@ -372,6 +393,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -372,6 +393,7 @@
.pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/cell-be",
.oprofile_type = PPC_OPROFILE_CELL,
.platform = "ppc-cell-be",
},
{ /* PA Semi PA6T */
-@@ -388,6 +410,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -388,6 +410,7 @@
.cpu_restore = __restore_cpu_pa6t,
.oprofile_cpu_type = "ppc64/pa6t",
.oprofile_type = PPC_OPROFILE_PA6T,
.platform = "pa6t",
},
{ /* default match */
-@@ -400,6 +423,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -400,6 +423,7 @@
.dcache_bsize = 128,
.num_pmcs = 6,
.pmc_type = PPC_PMC_IBM,
.platform = "power4",
}
#endif /* CONFIG_PPC64 */
-@@ -414,6 +438,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -414,6 +438,7 @@
PPC_FEATURE_UNIFIED_CACHE | PPC_FEATURE_NO_TB,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc601",
},
{ /* 603 */
-@@ -425,6 +450,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -425,6 +450,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_603,
.platform = "ppc603",
},
{ /* 603e */
-@@ -436,6 +462,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -436,6 +462,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_603,
.platform = "ppc603",
},
{ /* 603ev */
-@@ -447,6 +474,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -447,6 +474,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_603,
.platform = "ppc603",
},
{ /* 604 */
-@@ -459,6 +487,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -459,6 +487,7 @@
.dcache_bsize = 32,
.num_pmcs = 2,
.cpu_setup = __setup_cpu_604,
.platform = "ppc604",
},
{ /* 604e */
-@@ -471,6 +500,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -471,6 +500,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_604,
.platform = "ppc604",
},
{ /* 604r */
-@@ -483,6 +513,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -483,6 +513,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_604,
.platform = "ppc604",
},
{ /* 604ev */
-@@ -495,6 +526,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -495,6 +526,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_604,
.platform = "ppc604",
},
{ /* 740/750 (0x4202, don't support TAU ?) */
-@@ -507,6 +539,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -507,6 +539,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750,
.platform = "ppc750",
},
{ /* 750CX (80100 and 8010x?) */
-@@ -519,6 +552,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -519,6 +552,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750cx,
.platform = "ppc750",
},
{ /* 750CX (82201 and 82202) */
-@@ -531,6 +565,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -531,6 +565,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750cx,
.platform = "ppc750",
},
{ /* 750CXe (82214) */
-@@ -543,6 +578,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -543,6 +578,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750cx,
.platform = "ppc750",
},
{ /* 750CXe "Gekko" (83214) */
-@@ -555,6 +591,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -555,6 +591,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750cx,
.platform = "ppc750",
},
{ /* 750CL */
-@@ -567,6 +604,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -567,6 +604,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750,
.platform = "ppc750",
},
{ /* 745/755 */
-@@ -579,6 +617,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -579,6 +617,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750,
.platform = "ppc750",
},
{ /* 750FX rev 1.x */
-@@ -591,6 +630,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -591,6 +630,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750,
.platform = "ppc750",
},
{ /* 750FX rev 2.0 must disable HID0[DPM] */
-@@ -603,6 +643,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -603,6 +643,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750,
.platform = "ppc750",
},
{ /* 750FX (All revs except 2.0) */
-@@ -615,6 +656,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -615,6 +656,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750fx,
.platform = "ppc750",
},
{ /* 750GX */
-@@ -627,6 +669,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -627,6 +669,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750fx,
.platform = "ppc750",
},
{ /* 740/750 (L2CR bit need fixup for 740) */
-@@ -639,6 +682,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -639,6 +682,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_750,
.platform = "ppc750",
},
{ /* 7400 rev 1.1 ? (no TAU) */
-@@ -652,6 +696,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -652,6 +696,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_7400,
.platform = "ppc7400",
},
{ /* 7400 */
-@@ -665,6 +710,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -665,6 +710,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_7400,
.platform = "ppc7400",
},
{ /* 7410 */
-@@ -678,6 +724,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -678,6 +724,7 @@
.dcache_bsize = 32,
.num_pmcs = 4,
.cpu_setup = __setup_cpu_7410,
.platform = "ppc7400",
},
{ /* 7450 2.0 - no doze/nap */
-@@ -693,6 +740,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -693,6 +740,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7450 2.1 */
-@@ -708,6 +756,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -708,6 +756,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7450 2.3 and newer */
-@@ -723,6 +772,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -723,6 +772,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7455 rev 1.x */
-@@ -738,6 +788,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -738,6 +788,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7455 rev 2.0 */
-@@ -753,6 +804,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -753,6 +804,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7455 others */
-@@ -768,6 +820,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -768,6 +820,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7447/7457 Rev 1.0 */
-@@ -783,6 +836,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -783,6 +836,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7447/7457 Rev 1.1 */
-@@ -798,6 +852,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -798,6 +852,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7447/7457 Rev 1.2 and later */
-@@ -812,6 +867,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -812,6 +867,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7447A */
-@@ -827,6 +883,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -827,6 +883,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 7448 */
-@@ -842,6 +899,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -842,6 +899,7 @@
.cpu_setup = __setup_cpu_745x,
.oprofile_cpu_type = "ppc/7450",
.oprofile_type = PPC_OPROFILE_G4,
.platform = "ppc7450",
},
{ /* 82xx (8240, 8245, 8260 are all 603e cores) */
-@@ -853,6 +911,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -853,6 +911,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_603,
.platform = "ppc603",
},
{ /* All G2_LE (603e core, plus some) have the same pvr */
-@@ -864,6 +923,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -864,6 +923,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_603,
.platform = "ppc603",
},
{ /* e300c1 (a 603e core, plus some) on 83xx */
-@@ -875,6 +935,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -875,6 +935,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_603,
.platform = "ppc603",
},
{ /* e300c2 (an e300c1 core, plus some, minus FPU) on 83xx */
-@@ -886,9 +947,10 @@ static struct cpu_spec __initdata cpu_sp
+@@ -886,9 +947,10 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_603,
.pvr_mask = 0x7fff0000,
.pvr_value = 0x00850000,
.cpu_name = "e300c3",
-@@ -899,6 +961,18 @@ static struct cpu_spec __initdata cpu_sp
+@@ -899,6 +961,18 @@
.cpu_setup = __setup_cpu_603,
.platform = "ppc603",
},
{ /* default match, we assume split I/D cache & TB (non-601)... */
.pvr_mask = 0x00000000,
.pvr_value = 0x00000000,
-@@ -907,6 +981,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -907,6 +981,7 @@
.cpu_user_features = COMMON_USER,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc603",
},
#endif /* CLASSIC_PPC */
-@@ -933,6 +1008,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -933,6 +1008,7 @@
.cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
.icache_bsize = 16,
.dcache_bsize = 16,
.platform = "ppc403",
},
{ /* 403GCX */
-@@ -944,6 +1020,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -944,6 +1020,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_NO_TB,
.icache_bsize = 16,
.dcache_bsize = 16,
.platform = "ppc403",
},
{ /* 403G ?? */
-@@ -954,6 +1031,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -954,6 +1031,7 @@
.cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
.icache_bsize = 16,
.dcache_bsize = 16,
.platform = "ppc403",
},
{ /* 405GP */
-@@ -965,6 +1043,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -965,6 +1043,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* STB 03xxx */
-@@ -976,6 +1055,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -976,6 +1055,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* STB 04xxx */
-@@ -987,6 +1067,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -987,6 +1067,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* NP405L */
-@@ -998,6 +1079,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -998,6 +1079,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* NP4GS3 */
-@@ -1009,6 +1091,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1009,6 +1091,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* NP405H */
-@@ -1020,6 +1103,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1020,6 +1103,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* 405GPr */
-@@ -1031,6 +1115,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1031,6 +1115,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* STBx25xx */
-@@ -1042,6 +1127,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1042,6 +1127,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* 405LP */
-@@ -1052,6 +1138,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1052,6 +1138,7 @@
.cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* Xilinx Virtex-II Pro */
-@@ -1063,6 +1150,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1063,6 +1150,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* Xilinx Virtex-4 FX */
-@@ -1074,6 +1162,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1074,6 +1162,7 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
{ /* 405EP */
-@@ -1085,17 +1174,31 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1085,17 +1174,31 @@
PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc405",
},
-@@ -1109,6 +1212,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1109,6 +1212,7 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440",
},
{ /* Use logical PVR for 440EP (logical pvr = pvr | 0x8) */
-@@ -1120,6 +1224,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1120,6 +1224,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_440ep,
.platform = "ppc440",
},
{
-@@ -1130,6 +1235,19 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1130,6 +1235,19 @@
.cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440",
},
{ /* Use logical PVR for 440EP (logical pvr = pvr | 0x8) */
-@@ -1141,6 +1259,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1141,6 +1259,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_440ep,
.platform = "ppc440",
},
{ /* 440GRX */
-@@ -1152,6 +1271,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1152,6 +1271,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_440grx,
.platform = "ppc440",
},
{ /* Use logical PVR for 440EPx (logical pvr = pvr | 0x8) */
-@@ -1163,6 +1283,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1163,6 +1283,7 @@
.icache_bsize = 32,
.dcache_bsize = 32,
.cpu_setup = __setup_cpu_440epx,
.platform = "ppc440",
},
{ /* 440GP Rev. B */
-@@ -1173,6 +1294,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1173,6 +1294,7 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440gp",
},
{ /* 440GP Rev. C */
-@@ -1183,6 +1305,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1183,6 +1305,7 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440gp",
},
{ /* 440GX Rev. A */
-@@ -1193,6 +1316,8 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1193,6 +1316,8 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440",
},
{ /* 440GX Rev. B */
-@@ -1203,6 +1328,8 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1203,6 +1328,8 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440",
},
{ /* 440GX Rev. C */
-@@ -1213,6 +1340,8 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1213,6 +1340,8 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440",
},
{ /* 440GX Rev. F */
-@@ -1223,6 +1352,8 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1223,6 +1352,8 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440",
},
{ /* 440SP Rev. A */
-@@ -1233,6 +1364,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1233,6 +1364,7 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440",
},
{ /* 440SPe Rev. A */
-@@ -1243,6 +1375,8 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1243,6 +1375,8 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
.platform = "ppc440",
},
{ /* 440SPe Rev. B */
-@@ -1253,10 +1387,13 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1253,10 +1387,13 @@
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
{ /* e200z5 */
.pvr_mask = 0xfff00000,
.pvr_value = 0x81000000,
-@@ -1267,6 +1404,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1267,6 +1404,7 @@
PPC_FEATURE_HAS_EFP_SINGLE |
PPC_FEATURE_UNIFIED_CACHE,
.dcache_bsize = 32,
.platform = "ppc5554",
},
{ /* e200z6 */
-@@ -1280,8 +1418,10 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1280,8 +1418,10 @@
PPC_FEATURE_HAS_EFP_SINGLE_COMP |
PPC_FEATURE_UNIFIED_CACHE,
.dcache_bsize = 32,
{ /* e500 */
.pvr_mask = 0xffff0000,
.pvr_value = 0x80200000,
-@@ -1296,6 +1436,7 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1296,6 +1436,7 @@
.num_pmcs = 4,
.oprofile_cpu_type = "ppc/e500",
.oprofile_type = PPC_OPROFILE_BOOKE,
.platform = "ppc8540",
},
{ /* e500v2 */
-@@ -1313,9 +1454,11 @@ static struct cpu_spec __initdata cpu_sp
+@@ -1313,9 +1454,11 @@
.num_pmcs = 4,
.oprofile_cpu_type = "ppc/e500",
.oprofile_type = PPC_OPROFILE_BOOKE,
#if !CLASSIC_PPC
{ /* default match */
.pvr_mask = 0x00000000,
-Index: linux-2.6.24.7/arch/powerpc/kernel/crash.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/crash.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/crash.c
+--- a/arch/powerpc/kernel/crash.c
++++ b/arch/powerpc/kernel/crash.c
@@ -32,6 +32,8 @@
#include <asm/lmb.h>
#include <asm/firmware.h>
#ifdef DEBUG
#include <asm/udbg.h>
-@@ -45,6 +47,11 @@ int crashing_cpu = -1;
+@@ -45,6 +47,11 @@
static cpumask_t cpus_in_crash = CPU_MASK_NONE;
cpumask_t cpus_in_sr = CPU_MASK_NONE;
#ifdef CONFIG_SMP
static atomic_t enter_on_soft_reset = ATOMIC_INIT(0);
-@@ -285,9 +292,72 @@ static inline void crash_kexec_stop_spus
+@@ -285,9 +292,72 @@
}
#endif /* CONFIG_SPU_BASE */
/*
* This function is only called after the system
-@@ -301,15 +371,36 @@ void default_machine_crash_shutdown(stru
+@@ -301,15 +371,36 @@
*/
hard_irq_disable();
/*
* Make a note of crashing cpu. Will be used in machine_kexec
-Index: linux-2.6.24.7/arch/powerpc/kernel/dma_64.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/dma_64.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/dma_64.c
-@@ -112,10 +112,16 @@ EXPORT_SYMBOL(dma_iommu_ops);
+--- a/arch/powerpc/kernel/dma_64.c
++++ b/arch/powerpc/kernel/dma_64.c
+@@ -112,10 +112,16 @@
/*
* Generic direct DMA implementation
*
static void *dma_direct_alloc_coherent(struct device *dev, size_t size,
dma_addr_t *dma_handle, gfp_t flag)
-@@ -124,13 +130,12 @@ static void *dma_direct_alloc_coherent(s
+@@ -124,13 +130,12 @@
void *ret;
int node = dev->archdata.numa_node;
return ret;
}
-@@ -145,7 +150,7 @@ static dma_addr_t dma_direct_map_single(
+@@ -145,7 +150,7 @@
size_t size,
enum dma_data_direction direction)
{
}
static void dma_direct_unmap_single(struct device *dev, dma_addr_t dma_addr,
-@@ -161,7 +166,7 @@ static int dma_direct_map_sg(struct devi
+@@ -161,7 +166,7 @@
int i;
for_each_sg(sgl, sg, nents, i) {
sg->dma_length = sg->length;
}
-Index: linux-2.6.24.7/arch/powerpc/kernel/head_44x.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/head_44x.S
-+++ linux-2.6.24.7/arch/powerpc/kernel/head_44x.S
-@@ -289,11 +289,8 @@ interrupt_base:
+--- a/arch/powerpc/kernel/head_44x.S
++++ b/arch/powerpc/kernel/head_44x.S
+@@ -289,11 +289,8 @@
CRITICAL_EXCEPTION(0x0100, CriticalInput, unknown_exception)
/* Machine Check Interrupt */
/* Data Storage Interrupt */
START_EXCEPTION(DataStorage)
-@@ -674,6 +671,15 @@ finish_tlb_load:
+@@ -674,6 +671,15 @@
*/
/*
* extern void giveup_altivec(struct task_struct *prev)
*
* The 44x core does not have an AltiVec unit.
-Index: linux-2.6.24.7/arch/powerpc/kernel/head_booke.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/head_booke.h
-+++ linux-2.6.24.7/arch/powerpc/kernel/head_booke.h
-@@ -166,7 +166,7 @@ label:
+--- a/arch/powerpc/kernel/head_booke.h
++++ b/arch/powerpc/kernel/head_booke.h
+@@ -166,7 +166,7 @@
mfspr r5,SPRN_ESR; \
stw r5,_ESR(r11); \
addi r3,r1,STACK_FRAME_OVERHEAD; \
NOCOPY, mcheck_transfer_to_handler, \
ret_from_mcheck_exc)
-Index: linux-2.6.24.7/arch/powerpc/kernel/head_fsl_booke.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/head_fsl_booke.S
-+++ linux-2.6.24.7/arch/powerpc/kernel/head_fsl_booke.S
-@@ -73,8 +73,8 @@ _ENTRY(_start);
+--- a/arch/powerpc/kernel/head_fsl_booke.S
++++ b/arch/powerpc/kernel/head_fsl_booke.S
+@@ -73,8 +73,8 @@
/* We try to not make any assumptions about how the boot loader
* setup or used the TLBs. We invalidate all mappings from the
* boot loader and load a single entry in TLB1[0] to map the
*
* Requirement on bootloader:
* - The page we're executing in needs to reside in TLB1 and
-@@ -167,7 +167,7 @@ skpinv: addi r6,r6,1 /* Increment */
+@@ -167,7 +167,7 @@
mtspr SPRN_MAS0,r7
tlbre
lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */
mtspr SPRN_MAS0,r7
-@@ -177,9 +177,12 @@ skpinv: addi r6,r6,1 /* Increment */
+@@ -177,9 +177,12 @@
ori r6,r6,(MAS1_TSIZE(BOOKE_PAGESZ_4K))@l
mtspr SPRN_MAS1,r6
mfspr r6,SPRN_MAS2
tlbwe
xori r6,r4,1
-@@ -222,11 +225,11 @@ skpinv: addi r6,r6,1 /* Increment */
+@@ -222,11 +225,11 @@
lis r6,0x1000 /* Set MAS0(TLBSEL) = TLB1(1), ESEL = 0 */
mtspr SPRN_MAS0,r6
lis r6,(MAS1_VALID|MAS1_IPROT)@h
rlwimi r6,r7,0,20,31
mtspr SPRN_MAS2,r6
li r7,(MAS3_SX|MAS3_SW|MAS3_SR)
-@@ -234,6 +237,9 @@ skpinv: addi r6,r6,1 /* Increment */
+@@ -234,6 +237,9 @@
tlbwe
/* 7. Jump to KERNELBASE mapping */
lis r7,MSR_KERNEL@h
ori r7,r7,MSR_KERNEL@l
bl 1f /* Find our address */
-Index: linux-2.6.24.7/arch/powerpc/kernel/ibmebus.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/ibmebus.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/ibmebus.c
+--- a/arch/powerpc/kernel/ibmebus.c
++++ b/arch/powerpc/kernel/ibmebus.c
@@ -41,6 +41,7 @@
#include <linux/kobject.h>
#include <linux/dma-mapping.h>
#include <linux/of_platform.h>
#include <asm/ibmebus.h>
#include <asm/abs_addr.h>
-@@ -52,7 +53,7 @@ static struct device ibmebus_bus_device
+@@ -52,7 +53,7 @@
struct bus_type ibmebus_bus_type;
/* These devices will automatically be added to the bus during init */
{ .compatible = "IBM,lhca" },
{ .compatible = "IBM,lhea" },
{},
-@@ -171,7 +172,7 @@ static int ibmebus_create_devices(const
+@@ -171,7 +172,7 @@
root = of_find_node_by_path("/");
if (!of_match_node(matches, child))
continue;
-@@ -197,16 +198,13 @@ int ibmebus_register_driver(struct of_pl
+@@ -197,16 +198,13 @@
/* If the driver uses devices that ibmebus doesn't know, add them */
ibmebus_create_devices(drv->match_table);
}
EXPORT_SYMBOL(ibmebus_unregister_driver);
-Index: linux-2.6.24.7/arch/powerpc/kernel/iommu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/iommu.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/iommu.c
-@@ -532,16 +532,14 @@ struct iommu_table *iommu_init_table(str
+--- a/arch/powerpc/kernel/iommu.c
++++ b/arch/powerpc/kernel/iommu.c
+@@ -532,16 +532,14 @@
return tbl;
}
return;
}
-@@ -550,7 +548,7 @@ void iommu_free_table(struct device_node
+@@ -550,7 +548,7 @@
for (i = 0; i < (tbl->it_size/64); i++) {
if (tbl->it_map[i] != 0) {
printk(KERN_WARNING "%s: Unexpected TCEs for %s\n",
break;
}
}
-Index: linux-2.6.24.7/arch/powerpc/kernel/isa-bridge.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/isa-bridge.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/isa-bridge.c
-@@ -108,7 +108,7 @@ static void __devinit pci_process_ISA_OF
+--- a/arch/powerpc/kernel/isa-bridge.c
++++ b/arch/powerpc/kernel/isa-bridge.c
+@@ -108,7 +108,7 @@
if (size > 0x10000)
size = 0x10000;
"mapping 64k\n");
__ioremap_at(phb_io_base_phys, (void *)ISA_IO_BASE,
-@@ -116,7 +116,7 @@ static void __devinit pci_process_ISA_OF
+@@ -116,7 +116,7 @@
return;
inval_range:
"mapping 64k\n");
__ioremap_at(phb_io_base_phys, (void *)ISA_IO_BASE,
0x10000, _PAGE_NO_CACHE|_PAGE_GUARDED);
-@@ -145,7 +145,7 @@ void __init isa_bridge_find_early(struct
+@@ -145,7 +145,7 @@
for_each_node_by_type(np, "isa") {
/* Look for our hose being a parent */
for (parent = of_get_parent(np); parent;) {
of_node_put(parent);
break;
}
-Index: linux-2.6.24.7/arch/powerpc/kernel/legacy_serial.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/legacy_serial.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/legacy_serial.c
-@@ -307,7 +307,7 @@ void __init find_legacy_serial_ports(voi
+--- a/arch/powerpc/kernel/legacy_serial.c
++++ b/arch/powerpc/kernel/legacy_serial.c
+@@ -307,7 +307,7 @@
}
/* First fill our array with SOC ports */
struct device_node *soc = of_get_parent(np);
if (soc && !strcmp(soc->type, "soc")) {
index = add_legacy_soc_port(np, np);
-@@ -318,7 +318,7 @@ void __init find_legacy_serial_ports(voi
+@@ -318,7 +318,7 @@
}
/* First fill our array with ISA ports */
struct device_node *isa = of_get_parent(np);
if (isa && !strcmp(isa->name, "isa")) {
index = add_legacy_isa_port(np, isa);
-@@ -329,7 +329,7 @@ void __init find_legacy_serial_ports(voi
+@@ -329,7 +329,7 @@
}
/* First fill our array with tsi-bridge ports */
struct device_node *tsi = of_get_parent(np);
if (tsi && !strcmp(tsi->type, "tsi-bridge")) {
index = add_legacy_soc_port(np, np);
-@@ -340,7 +340,7 @@ void __init find_legacy_serial_ports(voi
+@@ -340,7 +340,7 @@
}
/* First fill our array with opb bus ports */
struct device_node *opb = of_get_parent(np);
if (opb && (!strcmp(opb->type, "opb") ||
of_device_is_compatible(opb, "ibm,opb"))) {
-@@ -474,7 +474,7 @@ static int __init serial_dev_init(void)
+@@ -474,7 +474,7 @@
/*
* Before we register the platfrom serial devices, we need
*/
DBG("Fixing serial ports interrupts and IO ports ...\n");
-Index: linux-2.6.24.7/arch/powerpc/kernel/lparcfg.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/lparcfg.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/lparcfg.c
+--- a/arch/powerpc/kernel/lparcfg.c
++++ b/arch/powerpc/kernel/lparcfg.c
@@ -41,7 +41,6 @@
/* #define LPARCFG_DEBUG */
/*
* Track sum of all purrs across all processors. This is used to further
-@@ -595,13 +594,6 @@ int __init lparcfg_init(void)
+@@ -595,13 +594,6 @@
ent = create_proc_entry("ppc64/lparcfg", mode, NULL);
if (ent) {
ent->proc_fops = &lparcfg_fops;
} else {
printk(KERN_ERR "Failed to create ppc64/lparcfg\n");
return -EIO;
-@@ -613,10 +605,8 @@ int __init lparcfg_init(void)
+@@ -613,10 +605,8 @@
void __exit lparcfg_cleanup(void)
{
}
module_init(lparcfg_init);
-Index: linux-2.6.24.7/arch/powerpc/kernel/misc.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/misc.S
-+++ linux-2.6.24.7/arch/powerpc/kernel/misc.S
+--- a/arch/powerpc/kernel/misc.S
++++ b/arch/powerpc/kernel/misc.S
@@ -8,12 +8,17 @@
* Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com)
* PPC64 updates by Dave Engebretsen (engebret@us.ibm.com)
.text
-@@ -43,3 +48,71 @@ _GLOBAL(add_reloc_offset)
+@@ -43,3 +48,71 @@
add r3,r3,r5
mtlr r0
blr
+ mtlr r0
+ mr r3,r4
+ blr
-Index: linux-2.6.24.7/arch/powerpc/kernel/misc_32.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/misc_32.S
-+++ linux-2.6.24.7/arch/powerpc/kernel/misc_32.S
-@@ -206,6 +206,45 @@ _GLOBAL(_nmask_and_or_msr)
+--- a/arch/powerpc/kernel/misc_32.S
++++ b/arch/powerpc/kernel/misc_32.S
+@@ -206,6 +206,45 @@
isync
blr /* Done */
/*
* Flush MMU TLB
-@@ -793,13 +832,6 @@ _GLOBAL(kernel_thread)
+@@ -793,13 +832,6 @@
addi r1,r1,16
blr
/*
* This routine is just here to keep GCC happy - sigh...
*/
-Index: linux-2.6.24.7/arch/powerpc/kernel/misc_64.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/misc_64.S
-+++ linux-2.6.24.7/arch/powerpc/kernel/misc_64.S
-@@ -518,13 +518,6 @@ _GLOBAL(giveup_altivec)
+--- a/arch/powerpc/kernel/misc_64.S
++++ b/arch/powerpc/kernel/misc_64.S
+@@ -518,13 +518,6 @@
#endif /* CONFIG_ALTIVEC */
/* kexec_wait(phys_cpu)
*
* wait for the flag to change, indicating this kernel is going away but
-Index: linux-2.6.24.7/arch/powerpc/kernel/module_32.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/module_32.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/module_32.c
+--- a/arch/powerpc/kernel/module_32.c
++++ b/arch/powerpc/kernel/module_32.c
@@ -24,6 +24,7 @@
#include <linux/kernel.h>
#include <linux/cache.h>
#include "setup.h"
-@@ -54,22 +55,60 @@ void module_free(struct module *mod, voi
+@@ -54,22 +55,60 @@
addend) */
static unsigned int count_relocs(const Elf32_Rela *rela, unsigned int num)
{
}
/* Get the potential trampolines size required of the init and
-@@ -100,6 +139,16 @@ static unsigned long get_plt_size(const
+@@ -100,6 +139,16 @@
DEBUGP("Ptr: %p. Number: %u\n",
(void *)hdr + sechdrs[i].sh_offset,
sechdrs[i].sh_size / sizeof(Elf32_Rela));
ret += count_relocs((void *)hdr
+ sechdrs[i].sh_offset,
sechdrs[i].sh_size
-Index: linux-2.6.24.7/arch/powerpc/kernel/module_64.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/module_64.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/module_64.c
+--- a/arch/powerpc/kernel/module_64.c
++++ b/arch/powerpc/kernel/module_64.c
@@ -24,6 +24,7 @@
#include <asm/module.h>
#include <asm/uaccess.h>
#include "setup.h"
-@@ -81,25 +82,23 @@ static struct ppc64_stub_entry ppc64_stu
+@@ -81,25 +82,23 @@
different addend) */
static unsigned int count_relocs(const Elf64_Rela *rela, unsigned int num)
{
}
void *module_alloc(unsigned long size)
-@@ -118,6 +117,44 @@ void module_free(struct module *mod, voi
+@@ -118,6 +117,44 @@
table entries. */
}
/* Get size of potential trampolines required. */
static unsigned long get_stubs_size(const Elf64_Ehdr *hdr,
const Elf64_Shdr *sechdrs)
-@@ -133,6 +170,16 @@ static unsigned long get_stubs_size(cons
+@@ -133,6 +170,16 @@
DEBUGP("Ptr: %p. Number: %lu\n",
(void *)sechdrs[i].sh_addr,
sechdrs[i].sh_size / sizeof(Elf64_Rela));
relocs += count_relocs((void *)sechdrs[i].sh_addr,
sechdrs[i].sh_size
/ sizeof(Elf64_Rela));
-@@ -343,7 +390,7 @@ int apply_relocate_add(Elf64_Shdr *sechd
+@@ -343,7 +390,7 @@
/* Simply set it */
*(u32 *)location = value;
break;
case R_PPC64_ADDR64:
/* Simply set it */
*(unsigned long *)location = value;
-@@ -399,7 +446,7 @@ int apply_relocate_add(Elf64_Shdr *sechd
+@@ -399,7 +446,7 @@
}
/* Only replace bits 2 through 26 */
= (*(uint32_t *)location & ~0x03fffffc)
| (value & 0x03fffffc);
break;
-Index: linux-2.6.24.7/arch/powerpc/kernel/of_device.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/of_device.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/of_device.c
+--- a/arch/powerpc/kernel/of_device.c
++++ b/arch/powerpc/kernel/of_device.c
@@ -5,10 +5,10 @@
#include <linux/module.h>
#include <linux/mod_devicetable.h>
static void of_device_make_bus_id(struct of_device *dev)
{
-Index: linux-2.6.24.7/arch/powerpc/kernel/of_platform.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/of_platform.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/of_platform.c
+--- a/arch/powerpc/kernel/of_platform.c
++++ b/arch/powerpc/kernel/of_platform.c
@@ -19,6 +19,7 @@
#include <linux/mod_devicetable.h>
#include <linux/slab.h>
{ .type = "soc", },
{ .compatible = "soc", },
{ .type = "spider", },
-@@ -64,26 +65,6 @@ static int __init of_bus_driver_init(voi
+@@ -64,26 +65,6 @@
postcore_initcall(of_bus_driver_init);
struct of_device* of_platform_device_create(struct device_node *np,
const char *bus_id,
struct device *parent)
-@@ -120,15 +101,15 @@ EXPORT_SYMBOL(of_platform_device_create)
+@@ -120,15 +101,15 @@
* @matches: match table, NULL to use the default, OF_NO_DEEP_PROBE to
* disallow recursive creation of child busses
*/
pr_debug(" create child: %s\n", child->full_name);
dev = of_platform_device_create(child, NULL, parent);
if (dev == NULL)
-@@ -157,7 +138,7 @@ static int of_platform_bus_create(struct
+@@ -157,7 +138,7 @@
*/
int of_platform_bus_probe(struct device_node *root,
struct device *parent)
{
struct device_node *child;
-@@ -190,7 +171,7 @@ int of_platform_bus_probe(struct device_
+@@ -190,7 +171,7 @@
rc = of_platform_bus_create(root, matches, &dev->dev);
goto bail;
}
if (!of_match_node(matches, child))
continue;
-Index: linux-2.6.24.7/arch/powerpc/kernel/pci-common.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/pci-common.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/pci-common.c
+--- a/arch/powerpc/kernel/pci-common.c
++++ b/arch/powerpc/kernel/pci-common.c
@@ -48,32 +48,26 @@
static DEFINE_SPINLOCK(hose_spinlock);
phb->is_dynamic = mem_init_done;
#ifdef CONFIG_PPC64
if (dev) {
-@@ -126,15 +120,10 @@ int pcibios_vaddr_is_ioport(void __iomem
+@@ -126,15 +120,10 @@
*/
int pci_domain_nr(struct pci_bus *bus)
{
EXPORT_SYMBOL(pci_domain_nr);
#ifdef CONFIG_PPC_OF
-@@ -153,7 +142,7 @@ struct pci_controller* pci_find_hose_for
+@@ -153,7 +142,7 @@
while(node) {
struct pci_controller *hose, *tmp;
list_for_each_entry_safe(hose, tmp, &hose_list, list_node)
return hose;
node = node->parent;
}
-@@ -201,6 +190,20 @@ int pci_read_irq_line(struct pci_dev *pc
+@@ -201,6 +190,20 @@
struct of_irq oirq;
unsigned int virq;
DBG("Try to map irq for %s...\n", pci_name(pci_dev));
#ifdef DEBUG
-@@ -222,10 +225,11 @@ int pci_read_irq_line(struct pci_dev *pc
+@@ -222,10 +225,11 @@
if (pin == 0)
return -1;
if (pci_read_config_byte(pci_dev, PCI_INTERRUPT_LINE, &line) ||
virq = irq_create_mapping(NULL, line);
if (virq != NO_IRQ)
-@@ -475,3 +479,717 @@ void pci_resource_to_user(const struct p
+@@ -475,3 +479,717 @@
*start = rsrc->start - offset;
*end = rsrc->end - offset;
}
+ return 0;
+}
+
-Index: linux-2.6.24.7/arch/powerpc/kernel/pci_32.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/pci_32.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/pci_32.c
+--- a/arch/powerpc/kernel/pci_32.c
++++ b/arch/powerpc/kernel/pci_32.c
@@ -13,6 +13,7 @@
#include <linux/bootmem.h>
#include <linux/irq.h>
static void fixup_cpc710_pci64(struct pci_dev* dev);
#ifdef CONFIG_PPC_OF
static u8* pci_to_OF_bus_map;
-@@ -53,7 +47,7 @@ static u8* pci_to_OF_bus_map;
+@@ -53,7 +47,7 @@
/* By default, we don't re-assign bus numbers. We do this only on
* some pmacs
*/
LIST_HEAD(hose_list);
-@@ -100,505 +94,6 @@ fixup_cpc710_pci64(struct pci_dev* dev)
+@@ -100,505 +94,6 @@
}
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CPC710_PCI64, fixup_cpc710_pci64);
#ifdef CONFIG_PPC_OF
/*
* Functions below are used on OpenFirmware machines.
-@@ -619,7 +114,7 @@ make_one_node_map(struct device_node* no
+@@ -619,7 +114,7 @@
} else
pci_to_OF_bus_map[pci_bus] = bus_range[0];
struct pci_dev* dev;
const unsigned int *class_code, *reg;
-@@ -662,8 +157,8 @@ pcibios_make_OF_bus_map(void)
+@@ -662,8 +157,8 @@
/* For each hose, we begin searching bridges */
list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
if (!node)
continue;
make_one_node_map(node, hose->first_busno);
-@@ -688,15 +183,18 @@ pcibios_make_OF_bus_map(void)
+@@ -688,15 +183,18 @@
typedef int (*pci_OF_scan_iterator)(struct device_node* node, void* data);
static struct device_node*
/* For PCI<->PCI bridges or CardBus bridges, we go down
* Note: some OFs create a parent node "multifunc-device" as
-@@ -708,9 +206,11 @@ scan_OF_pci_childs(struct device_node* n
+@@ -708,9 +206,11 @@
(*class_code >> 8) != PCI_CLASS_BRIDGE_CARDBUS)) &&
strcmp(node->name, "multifunc-device"))
continue;
}
return NULL;
}
-@@ -718,11 +218,11 @@ scan_OF_pci_childs(struct device_node* n
+@@ -718,11 +218,11 @@
static struct device_node *scan_OF_for_pci_dev(struct device_node *parent,
unsigned int devfn)
{
reg = of_get_property(np, "reg", &psize);
if (reg == NULL || psize < 4)
continue;
-@@ -742,7 +242,7 @@ static struct device_node *scan_OF_for_p
+@@ -742,7 +242,7 @@
struct pci_controller *hose = pci_bus_to_host(bus);
if (hose == NULL)
return NULL;
}
/* not a root bus, we need to get our parent */
-@@ -812,9 +312,9 @@ pci_device_from_OF_node(struct device_no
+@@ -812,9 +312,9 @@
return -ENODEV;
/* Make sure it's really a PCI device */
hose = pci_find_hose_for_OF_device(node);
find_OF_pci_device_filter, (void *)node))
return -ENODEV;
reg = of_get_property(node, "reg", NULL);
-@@ -843,120 +343,6 @@ pci_device_from_OF_node(struct device_no
+@@ -843,120 +343,6 @@
}
EXPORT_SYMBOL(pci_device_from_OF_node);
/* We create the "pci-OF-bus-map" property now so it appears in the
* /proc device tree
*/
-@@ -986,219 +372,7 @@ void pcibios_make_OF_bus_map(void)
+@@ -986,219 +372,7 @@
}
#endif /* CONFIG_PPC_OF */
{
struct pci_controller *hose, *tmp;
struct pci_bus *bus;
-@@ -1206,6 +380,9 @@ pcibios_init(void)
+@@ -1206,6 +380,9 @@
printk(KERN_INFO "PCI: Probing PCI hardware\n");
/* Scan all of the recorded PCI controllers. */
list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
if (pci_assign_all_buses)
-@@ -1213,9 +390,10 @@ pcibios_init(void)
+@@ -1213,9 +390,10 @@
hose->last_busno = 0xff;
bus = pci_scan_bus_parented(hose->parent, hose->first_busno,
hose->ops, hose);
if (pci_assign_all_buses || next_busno <= hose->last_busno)
next_busno = hose->last_busno + pcibios_assign_bus_offset;
}
-@@ -1228,18 +406,8 @@ pcibios_init(void)
+@@ -1228,18 +406,8 @@
if (pci_assign_all_buses && have_of)
pcibios_make_OF_bus_map();
/* Call machine dependent post-init code */
if (ppc_md.pcibios_after_init)
-@@ -1250,14 +418,14 @@ pcibios_init(void)
+@@ -1250,14 +418,14 @@
subsys_initcall(pcibios_init);
io_offset = (unsigned long)hose->io_base_virt - isa_io_base;
if (bus->parent == NULL) {
/* This is a host bridge - fill in its resources */
-@@ -1272,8 +440,8 @@ void pcibios_fixup_bus(struct pci_bus *b
+@@ -1272,8 +440,8 @@
res->end = IO_SPACE_LIMIT;
res->flags = IORESOURCE_IO;
}
for (i = 0; i < 3; ++i) {
res = &hose->mem_resources[i];
-@@ -1288,35 +456,6 @@ void pcibios_fixup_bus(struct pci_bus *b
+@@ -1288,35 +456,6 @@
}
bus->resource[i+1] = res;
}
}
}
-@@ -1328,37 +467,6 @@ pcibios_update_irq(struct pci_dev *dev,
+@@ -1328,37 +467,6 @@
/* XXX FIXME - update OF device tree node interrupt property */
}
static struct pci_controller*
pci_bus_to_hose(int bus)
{
-@@ -1381,17 +489,6 @@ long sys_pciconfig_iobase(long which, un
+@@ -1381,17 +489,6 @@
struct pci_controller* hose;
long result = -EOPNOTSUPP;
hose = pci_bus_to_hose(bus);
if (!hose)
return -ENODEV;
-Index: linux-2.6.24.7/arch/powerpc/kernel/pci_64.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/pci_64.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/pci_64.c
+--- a/arch/powerpc/kernel/pci_64.c
++++ b/arch/powerpc/kernel/pci_64.c
@@ -31,7 +31,6 @@
#include <asm/byteorder.h>
#include <asm/machdep.h>
/* pci_io_base -- the base address from which io bars are offsets.
* This is the lowest I/O base address (so bar values are always positive),
-@@ -70,139 +65,31 @@ struct dma_mapping_ops *get_pci_dma_ops(
+@@ -70,139 +65,31 @@
}
EXPORT_SYMBOL(get_pci_dma_ops);
static u32 get_int_prop(struct device_node *np, const char *name, u32 def)
{
-@@ -270,7 +157,6 @@ static void pci_parse_of_addrs(struct de
+@@ -270,7 +157,6 @@
res->end = base + size - 1;
res->flags = flags;
res->name = pci_name(dev);
}
}
-@@ -339,16 +225,17 @@ struct pci_dev *of_create_pci_dev(struct
+@@ -339,16 +225,17 @@
EXPORT_SYMBOL(of_create_pci_dev);
void __devinit of_scan_bus(struct device_node *node,
DBG(" * %s\n", child->full_name);
reg = of_get_property(child, "reg", ®len);
if (reg == NULL || reglen < 20)
-@@ -359,19 +246,26 @@ void __devinit of_scan_bus(struct device
+@@ -359,19 +246,26 @@
dev = of_create_pci_dev(child, bus, devfn);
if (!dev)
continue;
{
struct pci_bus *bus;
const u32 *busrange, *ranges;
-@@ -441,7 +335,6 @@ void __devinit of_scan_pci_bridge(struct
+@@ -441,7 +335,6 @@
res->start = of_read_number(&ranges[1], 2);
res->end = res->start + size - 1;
res->flags = flags;
}
sprintf(bus->name, "PCI Bus %04x:%02x", pci_domain_nr(bus),
bus->number);
-@@ -462,12 +355,12 @@ EXPORT_SYMBOL(of_scan_pci_bridge);
+@@ -462,12 +355,12 @@
void __devinit scan_phb(struct pci_controller *hose)
{
struct pci_bus *bus;
bus = pci_create_bus(hose->parent, hose->first_busno, hose->ops, node);
if (bus == NULL) {
printk(KERN_ERR "Failed to create bus for PCI domain %04x\n",
-@@ -477,27 +370,27 @@ void __devinit scan_phb(struct pci_contr
+@@ -477,27 +370,27 @@
bus->secondary = hose->first_busno;
hose->bus = bus;
if (node && ppc_md.pci_probe_mode)
mode = ppc_md.pci_probe_mode(bus);
DBG(" probe mode: %d\n", mode);
-@@ -514,15 +407,15 @@ static int __init pcibios_init(void)
+@@ -514,15 +407,15 @@
{
struct pci_controller *hose, *tmp;
/* Scan all of the recorded PCI controllers. */
list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
-@@ -530,19 +423,8 @@ static int __init pcibios_init(void)
+@@ -530,19 +423,8 @@
pci_bus_add_devices(hose->bus);
}
printk(KERN_DEBUG "PCI: Probing PCI hardware done\n");
-@@ -551,141 +433,6 @@ static int __init pcibios_init(void)
+@@ -551,141 +433,6 @@
subsys_initcall(pcibios_init);
#ifdef CONFIG_HOTPLUG
int pcibios_unmap_io_space(struct pci_bus *bus)
-@@ -719,8 +466,7 @@ int pcibios_unmap_io_space(struct pci_bu
+@@ -719,8 +466,7 @@
if (hose->io_base_alloc == 0)
return 0;
DBG(" alloc=0x%p\n", hose->io_base_alloc);
/* This is a PHB, we fully unmap the IO area */
-@@ -779,8 +525,7 @@ int __devinit pcibios_map_io_space(struc
+@@ -779,8 +525,7 @@
hose->io_base_virt = (void __iomem *)(area->addr +
hose->io_base_phys - phys_page);
DBG(" phys=0x%016lx, virt=0x%p (alloc=0x%p)\n",
hose->io_base_phys, hose->io_base_virt, hose->io_base_alloc);
DBG(" size=0x%016lx (alloc=0x%016lx)\n",
-@@ -803,51 +548,13 @@ int __devinit pcibios_map_io_space(struc
+@@ -803,51 +548,13 @@
}
EXPORT_SYMBOL_GPL(pcibios_map_io_space);
sd->of_node ? sd->of_node->full_name : "<none>");
sd->dma_ops = pci_dma_ops;
-@@ -861,7 +568,7 @@ void __devinit pcibios_setup_new_device(
+@@ -861,7 +568,7 @@
}
EXPORT_SYMBOL(pcibios_setup_new_device);
{
struct pci_dev *dev;
-@@ -870,42 +577,7 @@ static void __devinit do_bus_setup(struc
+@@ -870,42 +577,7 @@
list_for_each_entry(dev, &bus->devices, bus_list)
pcibios_setup_new_device(dev);
unsigned long pci_address_to_pio(phys_addr_t address)
{
-Index: linux-2.6.24.7/arch/powerpc/kernel/pci_dn.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/pci_dn.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/pci_dn.c
-@@ -56,11 +56,6 @@ static void * __devinit update_dn_pci_in
+--- a/arch/powerpc/kernel/pci_dn.c
++++ b/arch/powerpc/kernel/pci_dn.c
+@@ -56,11 +56,6 @@
pdn->busno = (regs[0] >> 16) & 0xff;
pdn->devfn = (regs[0] >> 8) & 0xff;
}
pdn->pci_ext_config_space = (type && *type == 1);
return NULL;
-@@ -133,7 +128,7 @@ void *traverse_pci_devices(struct device
+@@ -133,7 +128,7 @@
*/
void __devinit pci_devs_phb_init_dynamic(struct pci_controller *phb)
{
struct pci_dn *pdn;
/* PHB nodes themselves must not match */
-Index: linux-2.6.24.7/arch/powerpc/kernel/ppc_ksyms.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/ppc_ksyms.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/ppc_ksyms.c
-@@ -59,6 +59,7 @@ extern void single_step_exception(struct
+--- a/arch/powerpc/kernel/ppc_ksyms.c
++++ b/arch/powerpc/kernel/ppc_ksyms.c
+@@ -59,6 +59,7 @@
extern int sys_sigreturn(struct pt_regs *regs);
EXPORT_SYMBOL(clear_pages);
EXPORT_SYMBOL(ISA_DMA_THRESHOLD);
EXPORT_SYMBOL(DMA_MODE_READ);
EXPORT_SYMBOL(DMA_MODE_WRITE);
-Index: linux-2.6.24.7/arch/powerpc/kernel/prom.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/prom.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/prom.c
-@@ -583,6 +583,20 @@ static void __init check_cpu_pa_features
+--- a/arch/powerpc/kernel/prom.c
++++ b/arch/powerpc/kernel/prom.c
+@@ -583,6 +583,20 @@
ibm_pa_features, ARRAY_SIZE(ibm_pa_features));
}
static struct feature_property {
const char *name;
u32 min_value;
-@@ -600,6 +614,29 @@ static struct feature_property {
+@@ -600,6 +614,29 @@
#endif /* CONFIG_PPC64 */
};
static void __init check_cpu_feature_properties(unsigned long node)
{
unsigned long i;
-@@ -697,22 +734,13 @@ static int __init early_init_dt_scan_cpu
+@@ -697,22 +734,13 @@
prop = of_get_flat_dt_prop(node, "cpu-version", NULL);
if (prop && (*prop & 0xff000000) == 0x0f000000)
identify_cpu(0, *prop);
#ifdef CONFIG_PPC_PSERIES
if (nthreads > 1)
-Index: linux-2.6.24.7/arch/powerpc/kernel/prom_parse.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/prom_parse.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/prom_parse.c
-@@ -273,7 +273,7 @@ int of_irq_map_pci(struct pci_dev *pdev,
+--- a/arch/powerpc/kernel/prom_parse.c
++++ b/arch/powerpc/kernel/prom_parse.c
+@@ -273,7 +273,7 @@
#else
struct pci_controller *host;
host = pci_bus_to_host(pdev->bus);
#endif
/* No node for host bridge ? give up */
if (ppnode == NULL)
-@@ -419,7 +419,7 @@ static struct of_bus *of_match_bus(struc
+@@ -419,7 +419,7 @@
static int of_translate_one(struct device_node *parent, struct of_bus *bus,
struct of_bus *pbus, u32 *addr,
{
const u32 *ranges;
unsigned int rlen;
-@@ -438,7 +438,7 @@ static int of_translate_one(struct devic
+@@ -438,7 +438,7 @@
* to translate addresses that aren't supposed to be translated in
* the first place. --BenH.
*/
if (ranges == NULL || rlen == 0) {
offset = of_read_number(addr, na);
memset(addr, 0, pna * 4);
-@@ -481,7 +481,8 @@ static int of_translate_one(struct devic
+@@ -481,7 +481,8 @@
* that can be mapped to a cpu physical address). This is not really specified
* that way, but this is traditionally the way IBM at least do things
*/
{
struct device_node *parent = NULL;
struct of_bus *bus, *pbus;
-@@ -540,7 +541,7 @@ u64 of_translate_address(struct device_n
+@@ -540,7 +541,7 @@
pbus->name, pna, pns, parent->full_name);
/* Apply bus translation */
break;
/* Complete the move up one level */
-@@ -556,8 +557,19 @@ u64 of_translate_address(struct device_n
+@@ -556,8 +557,19 @@
return result;
}
const u32 *of_get_address(struct device_node *dev, int index, u64 *size,
unsigned int *flags)
{
-Index: linux-2.6.24.7/arch/powerpc/kernel/rio.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/kernel/rio.c
++++ b/arch/powerpc/kernel/rio.c
@@ -0,0 +1,52 @@
+/*
+ * RapidIO PPC32 support
+}
+
+subsys_initcall(ppc_rio_init);
-Index: linux-2.6.24.7/arch/powerpc/kernel/rtas_pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/rtas_pci.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/rtas_pci.c
-@@ -260,7 +260,7 @@ static int phb_set_bus_ranges(struct dev
+--- a/arch/powerpc/kernel/rtas_pci.c
++++ b/arch/powerpc/kernel/rtas_pci.c
+@@ -260,7 +260,7 @@
int __devinit rtas_setup_phb(struct pci_controller *phb)
{
if (is_python(dev))
python_countermeasures(dev);
-@@ -280,10 +280,7 @@ void __init find_and_init_phbs(void)
+@@ -280,10 +280,7 @@
struct pci_controller *phb;
struct device_node *root = of_find_node_by_path("/");
if (node->type == NULL || (strcmp(node->type, "pci") != 0 &&
strcmp(node->type, "pciex") != 0))
continue;
-@@ -311,10 +308,12 @@ void __init find_and_init_phbs(void)
+@@ -311,10 +308,12 @@
if (prop)
pci_probe_only = *prop;
}
}
-Index: linux-2.6.24.7/arch/powerpc/kernel/setup-common.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/setup-common.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/setup-common.c
+--- a/arch/powerpc/kernel/setup-common.c
++++ b/arch/powerpc/kernel/setup-common.c
@@ -33,6 +33,7 @@
#include <linux/serial.h>
#include <linux/serial_8250.h>
#include "setup.h"
-@@ -327,6 +329,31 @@ void __init check_for_initrd(void)
+@@ -327,6 +329,31 @@
#ifdef CONFIG_SMP
/**
* setup_cpu_maps - initialize the following cpu maps:
* cpu_possible_map
-@@ -350,22 +377,32 @@ void __init smp_setup_cpu_maps(void)
+@@ -350,22 +377,32 @@
{
struct device_node *dn = NULL;
int cpu = 0;
cpu_set(cpu, cpu_present_map);
set_hard_smp_processor_id(cpu, intserv[j]);
cpu_set(cpu, cpu_possible_map);
-@@ -373,6 +410,12 @@ void __init smp_setup_cpu_maps(void)
+@@ -373,6 +410,12 @@
}
}
#ifdef CONFIG_PPC64
/*
* On pSeries LPAR, we need to know how many cpus
-@@ -395,7 +438,7 @@ void __init smp_setup_cpu_maps(void)
+@@ -395,7 +438,7 @@
/* Double maxcpus for processors which have SMT capability */
if (cpu_has_feature(CPU_FTR_SMT))
if (maxcpus > NR_CPUS) {
printk(KERN_WARNING
-@@ -412,9 +455,16 @@ void __init smp_setup_cpu_maps(void)
+@@ -412,9 +455,16 @@
out:
of_node_put(dn);
}
}
/*
-@@ -424,17 +474,19 @@ void __init smp_setup_cpu_maps(void)
+@@ -424,17 +474,19 @@
*/
void __init smp_setup_cpu_sibling_map(void)
{
#endif /* CONFIG_PPC64 */
}
#endif /* CONFIG_SMP */
-Index: linux-2.6.24.7/arch/powerpc/kernel/signal_32.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/signal_32.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/signal_32.c
+--- a/arch/powerpc/kernel/signal_32.c
++++ b/arch/powerpc/kernel/signal_32.c
@@ -24,13 +24,12 @@
#include <linux/signal.h>
#include <linux/errno.h>
#include <linux/unistd.h>
#include <linux/stddef.h>
#include <linux/tty.h>
-Index: linux-2.6.24.7/arch/powerpc/kernel/smp.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/smp.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/smp.c
-@@ -76,6 +76,8 @@ void smp_call_function_interrupt(void);
+--- a/arch/powerpc/kernel/smp.c
++++ b/arch/powerpc/kernel/smp.c
+@@ -76,6 +76,8 @@
int smt_enabled_at_boot = 1;
static void (*crash_ipi_function_ptr)(struct pt_regs *) = NULL;
#ifdef CONFIG_PPC64
-@@ -181,12 +183,13 @@ static struct call_data_struct {
+@@ -181,12 +183,13 @@
* <wait> If true, wait (atomically) until function has completed on other CPUs.
* [RETURNS] 0 on success, else a negative status code. Does not return until
* remote CPUs are nearly ready to execute <<func>> or are or have executed.
{
struct call_data_struct data;
int ret = -1, num_cpus;
-@@ -203,8 +206,6 @@ int smp_call_function_map(void (*func) (
+@@ -203,8 +206,6 @@
if (wait)
atomic_set(&data.finished, 0);
/* remove 'self' from the map */
if (cpu_isset(smp_processor_id(), map))
cpu_clear(smp_processor_id(), map);
-@@ -231,7 +232,8 @@ int smp_call_function_map(void (*func) (
+@@ -231,7 +232,8 @@
printk("smp_call_function on cpu %d: other cpus not "
"responding (%d)\n", smp_processor_id(),
atomic_read(&data.started));
goto out;
}
}
-@@ -258,14 +260,18 @@ int smp_call_function_map(void (*func) (
+@@ -258,14 +260,18 @@
out:
call_data = NULL;
HMT_medium();
}
int smp_call_function(void (*func) (void *info), void *info, int nonatomic,
-@@ -278,8 +284,8 @@ int smp_call_function(void (*func) (void
+@@ -278,8 +284,8 @@
}
EXPORT_SYMBOL(smp_call_function);
{
cpumask_t map = CPU_MASK_NONE;
int ret = 0;
-@@ -291,9 +297,11 @@ int smp_call_function_single(int cpu, vo
+@@ -291,9 +297,11 @@
return -EINVAL;
cpu_set(cpu, map);
local_irq_disable();
func(info);
local_irq_enable();
-@@ -305,7 +313,22 @@ EXPORT_SYMBOL(smp_call_function_single);
+@@ -305,7 +313,22 @@
void smp_send_stop(void)
{
}
void smp_call_function_interrupt(void)
-Index: linux-2.6.24.7/arch/powerpc/kernel/systbl_chk.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/kernel/systbl_chk.c
++++ b/arch/powerpc/kernel/systbl_chk.c
@@ -0,0 +1,58 @@
+/*
+ * This file, when run through CPP produces a list of syscall numbers
+START_TABLE
+#include <asm/systbl.h>
+END_TABLE __NR_syscalls
-Index: linux-2.6.24.7/arch/powerpc/kernel/systbl_chk.sh
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/kernel/systbl_chk.sh
++++ b/arch/powerpc/kernel/systbl_chk.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+ };
+ num++;
+ }' "$1"
-Index: linux-2.6.24.7/arch/powerpc/kernel/time.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/time.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/time.c
-@@ -116,9 +116,12 @@ static struct clock_event_device decreme
+--- a/arch/powerpc/kernel/time.c
++++ b/arch/powerpc/kernel/time.c
+@@ -116,9 +116,12 @@
.features = CLOCK_EVT_FEAT_ONESHOT,
};
#ifdef CONFIG_PPC_ISERIES
static unsigned long __initdata iSeries_recal_titan;
-@@ -216,7 +219,11 @@ static u64 read_purr(void)
+@@ -216,7 +219,11 @@
*/
static u64 read_spurr(u64 purr)
{
return mfspr(SPRN_SPURR);
return purr;
}
-@@ -227,29 +234,30 @@ static u64 read_spurr(u64 purr)
+@@ -227,29 +234,30 @@
*/
void account_system_vtime(struct task_struct *tsk)
{
get_paca()->spurrdelta = deltascaled;
local_irq_restore(flags);
}
-@@ -326,11 +334,9 @@ void calculate_steal_time(void)
+@@ -326,11 +334,9 @@
s64 stolen;
struct cpu_purr_data *pme;
tb = mftb();
purr = mfspr(SPRN_PURR);
stolen = (tb - pme->tb) - (purr - pme->purr);
-@@ -353,7 +359,7 @@ static void snapshot_purr(void)
+@@ -353,7 +359,7 @@
if (!cpu_has_feature(CPU_FTR_PURR))
return;
local_irq_save(flags);
pme->tb = mftb();
pme->purr = mfspr(SPRN_PURR);
pme->initialized = 1;
-@@ -556,8 +562,8 @@ void __init iSeries_time_init_early(void
+@@ -556,8 +562,8 @@
void timer_interrupt(struct pt_regs * regs)
{
struct pt_regs *old_regs;
u64 now;
/* Ensure a positive value is written to the decrementer, or else
-@@ -570,9 +576,9 @@ void timer_interrupt(struct pt_regs * re
+@@ -570,9 +576,9 @@
#endif
now = get_tb_or_rtc();
if (now <= DECREMENTER_MAX)
set_dec((int)now);
return;
-@@ -623,6 +629,45 @@ void wakeup_decrementer(void)
+@@ -623,6 +629,45 @@
set_dec(ticks);
}
#ifdef CONFIG_SMP
void __init smp_space_timers(unsigned int max_cpus)
{
-@@ -811,7 +856,7 @@ void __init clocksource_init(void)
+@@ -811,7 +856,7 @@
static int decrementer_set_next_event(unsigned long evt,
struct clock_event_device *dev)
{
set_dec(evt);
return 0;
}
-@@ -825,7 +870,7 @@ static void decrementer_set_mode(enum cl
+@@ -825,7 +870,7 @@
static void register_decrementer_clockevent(int cpu)
{
*dec = decrementer_clockevent;
dec->cpumask = cpumask_of_cpu(cpu);
-@@ -836,7 +881,7 @@ static void register_decrementer_clockev
+@@ -836,7 +881,7 @@
clockevents_register_device(dec);
}
{
int cpu = smp_processor_id();
-Index: linux-2.6.24.7/arch/powerpc/kernel/traps.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/traps.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/traps.c
-@@ -334,18 +334,25 @@ static inline int check_io_access(struct
+--- a/arch/powerpc/kernel/traps.c
++++ b/arch/powerpc/kernel/traps.c
+@@ -334,18 +334,25 @@
#define clear_single_step(regs) ((regs)->msr &= ~MSR_SE)
#endif
printk("Machine check in kernel mode.\n");
if (reason & ESR_IMCP){
printk("Instruction Synchronous Machine Check exception\n");
-@@ -375,7 +382,13 @@ static int generic_machine_check_excepti
+@@ -375,7 +382,13 @@
/* Clear MCSR */
mtspr(SPRN_MCSR, mcsr);
}
printk("Machine check in kernel mode.\n");
printk("Caused by (from MCSR=%lx): ", reason);
-@@ -403,7 +416,14 @@ static int generic_machine_check_excepti
+@@ -403,7 +416,14 @@
printk("Bus - Instruction Parity Error\n");
if (reason & MCSR_BUS_RPERR)
printk("Bus - Read Parity Error\n");
printk("Machine check in kernel mode.\n");
printk("Caused by (from MCSR=%lx): ", reason);
-@@ -421,7 +441,14 @@ static int generic_machine_check_excepti
+@@ -421,7 +441,14 @@
printk("Bus - Read Bus Error on data load\n");
if (reason & MCSR_BUS_WRERR)
printk("Bus - Write Bus Error on buffered store or cache line push\n");
printk("Machine check in kernel mode.\n");
printk("Caused by (from SRR1=%lx): ", reason);
switch (reason & 0x601F0000) {
-@@ -451,22 +478,26 @@ static int generic_machine_check_excepti
+@@ -451,22 +478,26 @@
default:
printk("Unknown values in msr\n");
}
return;
if (user_mode(regs)) {
-@@ -476,7 +507,12 @@ void machine_check_exception(struct pt_r
+@@ -476,7 +507,12 @@
}
#if defined(CONFIG_8xx) && defined(CONFIG_PCI)
bad_page_fault(regs, regs->dar, SIGBUS);
return;
#endif
-@@ -622,6 +658,9 @@ static void parse_fpe(struct pt_regs *re
+@@ -622,6 +658,9 @@
#define INST_POPCNTB 0x7c0000f4
#define INST_POPCNTB_MASK 0xfc0007fe
static int emulate_string_inst(struct pt_regs *regs, u32 instword)
{
u8 rT = (instword >> 21) & 0x1f;
-@@ -707,6 +746,23 @@ static int emulate_popcntb_inst(struct p
+@@ -707,6 +746,23 @@
return 0;
}
static int emulate_instruction(struct pt_regs *regs)
{
u32 instword;
-@@ -749,6 +805,11 @@ static int emulate_instruction(struct pt
+@@ -749,6 +805,11 @@
return emulate_popcntb_inst(regs, instword);
}
return -EINVAL;
}
-Index: linux-2.6.24.7/arch/powerpc/kernel/udbg.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/udbg.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/udbg.c
-@@ -54,9 +54,16 @@ void __init udbg_early_init(void)
+--- a/arch/powerpc/kernel/udbg.c
++++ b/arch/powerpc/kernel/udbg.c
+@@ -54,9 +54,16 @@
#elif defined(CONFIG_PPC_EARLY_DEBUG_44x)
/* PPC44x debug */
udbg_init_44x_as1();
}
/* udbg library, used by xmon et al */
-Index: linux-2.6.24.7/arch/powerpc/kernel/udbg_16550.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/kernel/udbg_16550.c
-+++ linux-2.6.24.7/arch/powerpc/kernel/udbg_16550.c
-@@ -46,7 +46,7 @@ struct NS16550 {
+--- a/arch/powerpc/kernel/udbg_16550.c
++++ b/arch/powerpc/kernel/udbg_16550.c
+@@ -46,7 +46,7 @@
#define LCR_DLAB 0x80
static void udbg_550_putc(char c)
{
-@@ -117,7 +117,7 @@ unsigned int udbg_probe_uart_speed(void
+@@ -117,7 +117,7 @@
{
unsigned int dll, dlm, divisor, prescaler, speed;
u8 old_lcr;
old_lcr = in_8(&port->lcr);
-@@ -162,7 +162,7 @@ void udbg_maple_real_putc(char c)
+@@ -162,7 +162,7 @@
void __init udbg_init_maple_realmode(void)
{
udbg_putc = udbg_maple_real_putc;
udbg_getc = NULL;
-@@ -184,7 +184,7 @@ void udbg_pas_real_putc(char c)
+@@ -184,7 +184,7 @@
void udbg_init_pas_realmode(void)
{
udbg_putc = udbg_pas_real_putc;
udbg_getc = NULL;
-@@ -219,9 +219,42 @@ static int udbg_44x_as1_getc(void)
+@@ -219,9 +219,42 @@
void __init udbg_init_44x_as1(void)
{
udbg_comport =
+ udbg_getc_poll = NULL;
+}
+#endif /* CONFIG_PPC_EARLY_DEBUG_40x */
-Index: linux-2.6.24.7/arch/powerpc/math-emu/op-4.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/math-emu/op-4.h
-+++ linux-2.6.24.7/arch/powerpc/math-emu/op-4.h
+--- a/arch/powerpc/math-emu/op-4.h
++++ b/arch/powerpc/math-emu/op-4.h
@@ -194,19 +194,39 @@
(X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0)
#endif
#ifndef __FP_FRAC_ADDI_4
-Index: linux-2.6.24.7/arch/powerpc/mm/fault.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/mm/fault.c
-+++ linux-2.6.24.7/arch/powerpc/mm/fault.c
-@@ -167,10 +167,8 @@ int __kprobes do_page_fault(struct pt_re
+--- a/arch/powerpc/mm/fault.c
++++ b/arch/powerpc/mm/fault.c
+@@ -167,10 +167,8 @@
if (notify_page_fault(regs))
return 0;
/* On a kernel SLB miss we can only check for a valid exception entry */
if (!user_mode(regs) && (address >= TASK_SIZE))
-@@ -189,7 +187,7 @@ int __kprobes do_page_fault(struct pt_re
+@@ -189,7 +187,7 @@
return SIGSEGV;
/* in_atomic() in user mode is really bad,
as is current->mm == NULL. */
"in_atomic() = %d mm = %p\n", in_atomic(), mm);
printk(KERN_EMERG "NIP = %lx MSR = %lx\n",
regs->nip, regs->msr);
-Index: linux-2.6.24.7/arch/powerpc/mm/fsl_booke_mmu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/mm/fsl_booke_mmu.c
-+++ linux-2.6.24.7/arch/powerpc/mm/fsl_booke_mmu.c
-@@ -165,15 +165,15 @@ void invalidate_tlbcam_entry(int index)
+--- a/arch/powerpc/mm/fsl_booke_mmu.c
++++ b/arch/powerpc/mm/fsl_booke_mmu.c
+@@ -165,15 +165,15 @@
void __init cam_mapin_ram(unsigned long cam0, unsigned long cam1,
unsigned long cam2)
{
}
}
-Index: linux-2.6.24.7/arch/powerpc/mm/hash_utils_64.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/mm/hash_utils_64.c
-+++ linux-2.6.24.7/arch/powerpc/mm/hash_utils_64.c
-@@ -96,6 +96,7 @@ int mmu_vmalloc_psize = MMU_PAGE_4K;
+--- a/arch/powerpc/mm/hash_utils_64.c
++++ b/arch/powerpc/mm/hash_utils_64.c
+@@ -96,6 +96,7 @@
int mmu_io_psize = MMU_PAGE_4K;
int mmu_kernel_ssize = MMU_SEGSIZE_256M;
int mmu_highuser_ssize = MMU_SEGSIZE_256M;
#ifdef CONFIG_HUGETLB_PAGE
int mmu_huge_psize = MMU_PAGE_16M;
unsigned int HPAGE_SHIFT;
-@@ -368,18 +369,11 @@ static void __init htab_init_page_sizes(
+@@ -368,18 +369,11 @@
* on what is available
*/
if (mmu_psize_defs[MMU_PAGE_16M].shift)
#endif /* CONFIG_HUGETLB_PAGE */
}
-Index: linux-2.6.24.7/arch/powerpc/mm/hugetlbpage.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/mm/hugetlbpage.c
-+++ linux-2.6.24.7/arch/powerpc/mm/hugetlbpage.c
+--- a/arch/powerpc/mm/hugetlbpage.c
++++ b/arch/powerpc/mm/hugetlbpage.c
@@ -24,18 +24,17 @@
#include <asm/cputable.h>
#include <asm/spu.h>
#define HUGEPD_SIZE (1UL << HUGEPD_SHIFT)
#define HUGEPD_MASK (~(HUGEPD_SIZE-1))
-@@ -82,11 +81,35 @@ static int __hugepte_alloc(struct mm_str
+@@ -82,11 +81,35 @@
return 0;
}
BUG_ON(get_slice_psize(mm, addr) != mmu_huge_psize);
-@@ -96,14 +119,9 @@ pte_t *huge_pte_offset(struct mm_struct
+@@ -96,14 +119,9 @@
if (!pgd_none(*pg)) {
pu = pud_offset(pg, addr);
if (!pud_none(*pu)) {
}
}
-@@ -114,6 +132,7 @@ pte_t *huge_pte_alloc(struct mm_struct *
+@@ -114,6 +132,7 @@
{
pgd_t *pg;
pud_t *pu;
hugepd_t *hpdp = NULL;
BUG_ON(get_slice_psize(mm, addr) != mmu_huge_psize);
-@@ -124,14 +143,9 @@ pte_t *huge_pte_alloc(struct mm_struct *
+@@ -124,14 +143,9 @@
pu = pud_alloc(mm, pg, addr);
if (pu) {
}
if (! hpdp)
-@@ -158,7 +172,6 @@ static void free_hugepte_range(struct mm
+@@ -158,7 +172,6 @@
PGF_CACHENUM_MASK));
}
static void hugetlb_free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
unsigned long addr, unsigned long end,
unsigned long floor, unsigned long ceiling)
-@@ -191,7 +204,6 @@ static void hugetlb_free_pmd_range(struc
+@@ -191,7 +204,6 @@
pud_clear(pud);
pmd_free_tlb(tlb, pmd);
}
static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
unsigned long addr, unsigned long end,
-@@ -210,9 +222,15 @@ static void hugetlb_free_pud_range(struc
+@@ -210,9 +222,15 @@
continue;
hugetlb_free_pmd_range(tlb, pud, addr, next, floor, ceiling);
#else
#endif
} while (pud++, addr = next, addr != end);
-@@ -526,6 +544,57 @@ repeat:
+@@ -526,6 +544,57 @@
return err;
}
static void zero_ctor(struct kmem_cache *cache, void *addr)
{
memset(addr, 0, kmem_cache_size(cache));
-Index: linux-2.6.24.7/arch/powerpc/mm/lmb.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/mm/lmb.c
-+++ linux-2.6.24.7/arch/powerpc/mm/lmb.c
-@@ -342,3 +342,16 @@ void __init lmb_enforce_memory_limit(uns
+--- a/arch/powerpc/mm/lmb.c
++++ b/arch/powerpc/mm/lmb.c
+@@ -342,3 +342,16 @@
}
}
}
+ }
+ return 0;
+}
-Index: linux-2.6.24.7/arch/powerpc/mm/mem.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/mm/mem.c
-+++ linux-2.6.24.7/arch/powerpc/mm/mem.c
-@@ -213,15 +213,30 @@ void __init do_init_bootmem(void)
+--- a/arch/powerpc/mm/mem.c
++++ b/arch/powerpc/mm/mem.c
+@@ -213,15 +213,30 @@
*/
#ifdef CONFIG_HIGHMEM
free_bootmem_with_active_regions(0, total_lowmem >> PAGE_SHIFT);
/* XXX need to clip this if using highmem? */
sparse_memory_present_with_active_regions(0);
-@@ -334,11 +349,13 @@ void __init mem_init(void)
+@@ -334,11 +349,13 @@
highmem_mapnr = total_lowmem >> PAGE_SHIFT;
for (pfn = highmem_mapnr; pfn < max_mapnr; ++pfn) {
struct page *page = pfn_to_page(pfn);
}
totalram_pages += totalhigh_pages;
printk(KERN_DEBUG "High memory: %luk\n",
-Index: linux-2.6.24.7/arch/powerpc/mm/slb.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/mm/slb.c
-+++ linux-2.6.24.7/arch/powerpc/mm/slb.c
-@@ -256,6 +256,7 @@ void slb_initialize(void)
+--- a/arch/powerpc/mm/slb.c
++++ b/arch/powerpc/mm/slb.c
+@@ -256,6 +256,7 @@
static int slb_encoding_inited;
extern unsigned int *slb_miss_kernel_load_linear;
extern unsigned int *slb_miss_kernel_load_io;
/* Prepare our SLB miss handler based on our page size */
linear_llp = mmu_psize_defs[mmu_linear_psize].sllp;
-@@ -269,6 +270,8 @@ void slb_initialize(void)
+@@ -269,6 +270,8 @@
SLB_VSID_KERNEL | linear_llp);
patch_slb_encoding(slb_miss_kernel_load_io,
SLB_VSID_KERNEL | io_llp);
DBG("SLB: linear LLP = %04x\n", linear_llp);
DBG("SLB: io LLP = %04x\n", io_llp);
-Index: linux-2.6.24.7/arch/powerpc/mm/slb_low.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/mm/slb_low.S
-+++ linux-2.6.24.7/arch/powerpc/mm/slb_low.S
-@@ -227,8 +227,9 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISER
+--- a/arch/powerpc/mm/slb_low.S
++++ b/arch/powerpc/mm/slb_low.S
+@@ -227,8 +227,9 @@
7: ld r10,PACASTABRR(r13)
addi r10,r10,1
blt+ 4f
li r10,SLB_NUM_BOLTED
-Index: linux-2.6.24.7/arch/powerpc/oprofile/op_model_cell.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/oprofile/op_model_cell.c
-+++ linux-2.6.24.7/arch/powerpc/oprofile/op_model_cell.c
-@@ -61,7 +61,7 @@ static unsigned int spu_cycle_reset;
+--- a/arch/powerpc/oprofile/op_model_cell.c
++++ b/arch/powerpc/oprofile/op_model_cell.c
+@@ -61,7 +61,7 @@
#define NUM_THREADS 2 /* number of physical threads in
* physical processor
*/
#define NUM_INPUT_BUS_WORDS 2
#define MAX_SPU_COUNT 0xFFFFFF /* maximum 24 bit LFSR value */
-@@ -169,7 +169,6 @@ static DEFINE_SPINLOCK(virt_cntr_lock);
+@@ -169,7 +169,6 @@
static u32 ctr_enabled;
static unsigned char input_bus[NUM_INPUT_BUS_WORDS];
/*
-@@ -298,7 +297,7 @@ static void set_pm_event(u32 ctr, int ev
+@@ -298,7 +297,7 @@
p->signal_group = event / 100;
p->bus_word = bus_word;
pm_regs.pm07_cntrl[ctr] = 0;
pm_regs.pm07_cntrl[ctr] |= PM07_CTR_COUNT_CYCLES(count_cycles);
-@@ -334,16 +333,16 @@ static void set_pm_event(u32 ctr, int ev
+@@ -334,16 +333,16 @@
p->bit = signal_bit;
}
break;
}
-@@ -450,6 +449,12 @@ static void cell_virtual_cntr(unsigned l
+@@ -450,6 +449,12 @@
hdw_thread = 1 ^ hdw_thread;
next_hdw_thread = hdw_thread;
/*
* There are some per thread events. Must do the
* set event, for the thread that is being started
-@@ -619,9 +624,6 @@ static int cell_reg_setup(struct op_coun
+@@ -619,9 +624,6 @@
pmc_cntrl[1][i].vcntr = i;
}
for (i = 0; i < NUM_INPUT_BUS_WORDS; i++)
input_bus[i] = 0xff;
-Index: linux-2.6.24.7/arch/powerpc/platforms/40x/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/40x/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/40x/Kconfig
+--- a/arch/powerpc/platforms/40x/Kconfig
++++ b/arch/powerpc/platforms/40x/Kconfig
@@ -14,28 +14,34 @@
# help
# This option enables support for the CPCI405 board.
#config REDWOOD_5
# bool "Redwood-5"
# depends on 40x
-@@ -65,6 +71,7 @@ config WALNUT
+@@ -65,6 +71,7 @@
depends on 40x
default y
select 405GP
help
This option enables support for the IBM PPC405GP evaluation board.
-@@ -105,6 +112,11 @@ config 405GP
+@@ -105,6 +112,11 @@
config 405EP
bool
config 405GPR
bool
-Index: linux-2.6.24.7/arch/powerpc/platforms/40x/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/40x/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/40x/Makefile
+--- a/arch/powerpc/platforms/40x/Makefile
++++ b/arch/powerpc/platforms/40x/Makefile
@@ -1,3 +1,5 @@
obj-$(CONFIG_KILAUEA) += kilauea.o
+obj-$(CONFIG_MAKALU) += makalu.o
obj-$(CONFIG_WALNUT) += walnut.o
obj-$(CONFIG_XILINX_VIRTEX_GENERIC_BOARD) += virtex.o
+obj-$(CONFIG_EP405) += ep405.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/40x/ep405.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/40x/ep405.c
++++ b/arch/powerpc/platforms/40x/ep405.c
@@ -0,0 +1,123 @@
+/*
+ * Architecture- / platform-specific boot-time initialization code for
+ .get_irq = uic_get_irq,
+ .calibrate_decr = generic_calibrate_decr,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/40x/kilauea.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/40x/kilauea.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/40x/kilauea.c
+--- a/arch/powerpc/platforms/40x/kilauea.c
++++ b/arch/powerpc/platforms/40x/kilauea.c
@@ -19,8 +19,9 @@
#include <asm/udbg.h>
#include <asm/time.h>
{ .compatible = "ibm,plb4", },
{ .compatible = "ibm,opb", },
{ .compatible = "ibm,ebc", },
-@@ -29,14 +30,11 @@ static struct of_device_id kilauea_of_bu
+@@ -29,14 +30,11 @@
static int __init kilauea_device_probe(void)
{
static int __init kilauea_probe(void)
{
-@@ -45,6 +43,8 @@ static int __init kilauea_probe(void)
+@@ -45,6 +43,8 @@
if (!of_flat_dt_is_compatible(root, "amcc,kilauea"))
return 0;
return 1;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/40x/makalu.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/40x/makalu.c
++++ b/arch/powerpc/platforms/40x/makalu.c
@@ -0,0 +1,58 @@
+/*
+ * Makalu board specific routines
+ .get_irq = uic_get_irq,
+ .calibrate_decr = generic_calibrate_decr,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/40x/virtex.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/40x/virtex.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/40x/virtex.c
+--- a/arch/powerpc/platforms/40x/virtex.c
++++ b/arch/powerpc/platforms/40x/virtex.c
@@ -15,16 +15,23 @@
#include <asm/time.h>
#include <asm/xilinx_intc.h>
static int __init virtex_probe(void)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/40x/walnut.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/40x/walnut.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/40x/walnut.c
+--- a/arch/powerpc/platforms/40x/walnut.c
++++ b/arch/powerpc/platforms/40x/walnut.c
@@ -24,8 +24,9 @@
#include <asm/udbg.h>
#include <asm/time.h>
{ .compatible = "ibm,plb3", },
{ .compatible = "ibm,opb", },
{ .compatible = "ibm,ebc", },
-@@ -34,15 +35,12 @@ static struct of_device_id walnut_of_bus
+@@ -34,15 +35,12 @@
static int __init walnut_device_probe(void)
{
static int __init walnut_probe(void)
{
-@@ -51,6 +49,8 @@ static int __init walnut_probe(void)
+@@ -51,6 +49,8 @@
if (!of_flat_dt_is_compatible(root, "ibm,walnut"))
return 0;
return 1;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/44x/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/Kconfig
-@@ -3,6 +3,7 @@ config BAMBOO
+--- a/arch/powerpc/platforms/44x/Kconfig
++++ b/arch/powerpc/platforms/44x/Kconfig
+@@ -3,6 +3,7 @@
depends on 44x
default n
select 440EP
help
This option enables support for the IBM PPC440EP evaluation board.
-@@ -11,6 +12,8 @@ config EBONY
+@@ -11,6 +12,8 @@
depends on 44x
default y
select 440GP
help
This option enables support for the IBM PPC440GP evaluation board.
-@@ -22,6 +25,48 @@ config SEQUOIA
+@@ -22,6 +25,48 @@
help
This option enables support for the AMCC PPC440EPX evaluation board.
#config LUAN
# bool "Luan"
# depends on 44x
-@@ -44,6 +89,7 @@ config 440EP
+@@ -44,6 +89,7 @@
select PPC_FPU
select IBM440EP_ERR42
select IBM_NEW_EMAC_ZMII
config 440EPX
bool
-@@ -52,20 +98,29 @@ config 440EPX
+@@ -52,20 +98,29 @@
select IBM_NEW_EMAC_RGMII
select IBM_NEW_EMAC_ZMII
# 44x errata/workaround config symbols, selected by the CPU models above
config IBM440EP_ERR42
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/44x/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/Makefile
+--- a/arch/powerpc/platforms/44x/Makefile
++++ b/arch/powerpc/platforms/44x/Makefile
@@ -1,4 +1,9 @@
obj-$(CONFIG_44x) := misc_44x.o
obj-$(CONFIG_EBONY) += ebony.o
+obj-$(CONFIG_RAINIER) += rainier.o
+obj-$(CONFIG_WARP) += warp.o
+obj-$(CONFIG_WARP) += warp-nand.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/bamboo.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/44x/bamboo.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/bamboo.c
+--- a/arch/powerpc/platforms/44x/bamboo.c
++++ b/arch/powerpc/platforms/44x/bamboo.c
@@ -21,9 +21,11 @@
#include <asm/udbg.h>
#include <asm/time.h>
{ .compatible = "ibm,plb4", },
{ .compatible = "ibm,opb", },
{ .compatible = "ibm,ebc", },
-@@ -32,14 +34,11 @@ static struct of_device_id bamboo_of_bus
+@@ -32,14 +34,11 @@
static int __init bamboo_device_probe(void)
{
static int __init bamboo_probe(void)
{
-@@ -48,6 +47,8 @@ static int __init bamboo_probe(void)
+@@ -48,6 +47,8 @@
if (!of_flat_dt_is_compatible(root, "amcc,bamboo"))
return 0;
return 1;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/ebony.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/44x/ebony.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/ebony.c
+--- a/arch/powerpc/platforms/44x/ebony.c
++++ b/arch/powerpc/platforms/44x/ebony.c
@@ -18,16 +18,18 @@
#include <linux/init.h>
{ .compatible = "ibm,plb4", },
{ .compatible = "ibm,opb", },
{ .compatible = "ibm,ebc", },
-@@ -36,14 +38,12 @@ static struct of_device_id ebony_of_bus[
+@@ -36,14 +38,12 @@
static int __init ebony_device_probe(void)
{
/*
* Called very early, MMU is off, device-tree isn't unflattened
-@@ -55,6 +55,8 @@ static int __init ebony_probe(void)
+@@ -55,6 +55,8 @@
if (!of_flat_dt_is_compatible(root, "ibm,ebony"))
return 0;
return 1;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/katmai.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/katmai.c
++++ b/arch/powerpc/platforms/44x/katmai.c
@@ -0,0 +1,63 @@
+/*
+ * Katmai board specific routines
+ .restart = ppc44x_reset_system,
+ .calibrate_decr = generic_calibrate_decr,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/rainier.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/rainier.c
++++ b/arch/powerpc/platforms/44x/rainier.c
@@ -0,0 +1,62 @@
+/*
+ * Rainier board specific routines
+ .restart = ppc44x_reset_system,
+ .calibrate_decr = generic_calibrate_decr,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/sequoia.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/44x/sequoia.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/sequoia.c
+--- a/arch/powerpc/platforms/44x/sequoia.c
++++ b/arch/powerpc/platforms/44x/sequoia.c
@@ -21,9 +21,11 @@
#include <asm/udbg.h>
#include <asm/time.h>
{ .compatible = "ibm,plb4", },
{ .compatible = "ibm,opb", },
{ .compatible = "ibm,ebc", },
-@@ -32,14 +34,11 @@ static struct of_device_id sequoia_of_bu
+@@ -32,14 +34,11 @@
static int __init sequoia_device_probe(void)
{
static int __init sequoia_probe(void)
{
-@@ -48,6 +47,8 @@ static int __init sequoia_probe(void)
+@@ -48,6 +47,8 @@
if (!of_flat_dt_is_compatible(root, "amcc,sequoia"))
return 0;
return 1;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/taishan.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/taishan.c
++++ b/arch/powerpc/platforms/44x/taishan.c
@@ -0,0 +1,73 @@
+/*
+ * Taishan board specific routines based off ebony.c code
+ .restart = ppc44x_reset_system,
+ .calibrate_decr = generic_calibrate_decr,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/warp-nand.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/warp-nand.c
++++ b/arch/powerpc/platforms/44x/warp-nand.c
@@ -0,0 +1,105 @@
+/*
+ * PIKA Warp(tm) NAND flash specific routines
+device_initcall(warp_setup_nand_flash);
+
+#endif
-Index: linux-2.6.24.7/arch/powerpc/platforms/44x/warp.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/44x/warp.c
++++ b/arch/powerpc/platforms/44x/warp.c
@@ -0,0 +1,153 @@
+/*
+ * PIKA Warp(tm) board specific routines
+}
+device_initcall(pika_dtm_start);
+#endif
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/52xx/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/Kconfig
-@@ -19,6 +19,28 @@ config PPC_MPC5200_BUGFIX
+--- a/arch/powerpc/platforms/52xx/Kconfig
++++ b/arch/powerpc/platforms/52xx/Kconfig
+@@ -19,6 +19,28 @@
It is safe to say 'Y' here
config PPC_EFIKA
bool "bPlan Efika 5k2. MPC5200B based computer"
depends on PPC_MULTIPLATFORM && PPC32
-@@ -31,8 +53,7 @@ config PPC_EFIKA
+@@ -31,8 +53,7 @@
config PPC_LITE5200
bool "Freescale Lite5200 Eval Board"
depends on PPC_MULTIPLATFORM && PPC32
default n
-
-
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/52xx/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/Makefile
-@@ -6,6 +6,7 @@ obj-y += mpc52xx_pic.o mpc52xx_common
+--- a/arch/powerpc/platforms/52xx/Makefile
++++ b/arch/powerpc/platforms/52xx/Makefile
+@@ -6,6 +6,7 @@
obj-$(CONFIG_PCI) += mpc52xx_pci.o
endif
obj-$(CONFIG_PPC_EFIKA) += efika.o
obj-$(CONFIG_PPC_LITE5200) += lite5200.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/lite5200.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/52xx/lite5200.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/lite5200.c
+--- a/arch/powerpc/platforms/52xx/lite5200.c
++++ b/arch/powerpc/platforms/52xx/lite5200.c
@@ -42,10 +42,13 @@
static void __init
lite5200_fix_clock_config(void)
if (!cdm) {
printk(KERN_ERR "%s() failed; expect abnormal behaviour\n",
__FUNCTION__);
-@@ -74,10 +77,13 @@ lite5200_fix_clock_config(void)
+@@ -74,10 +77,13 @@
static void __init
lite5200_fix_port_config(void)
{
if (!gpio) {
printk(KERN_ERR "%s() failed. expect abnormal behavior\n",
__FUNCTION__);
-@@ -131,10 +137,6 @@ static void lite5200_resume_finish(void
+@@ -131,10 +137,6 @@
static void __init lite5200_setup_arch(void)
{
if (ppc_md.progress)
ppc_md.progress("lite5200_setup_arch()", 0);
-@@ -154,13 +156,7 @@ static void __init lite5200_setup_arch(v
+@@ -154,13 +156,7 @@
lite5200_pm_init();
#endif
}
/*
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/lite5200_pm.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/52xx/lite5200_pm.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/lite5200_pm.c
-@@ -42,6 +42,8 @@ static int lite5200_pm_set_target(suspen
+--- a/arch/powerpc/platforms/52xx/lite5200_pm.c
++++ b/arch/powerpc/platforms/52xx/lite5200_pm.c
+@@ -42,6 +42,8 @@
static int lite5200_pm_prepare(void)
{
/* deep sleep? let mpc52xx code handle that */
if (lite5200_pm_target_state == PM_SUSPEND_STANDBY)
return mpc52xx_pm_prepare();
-@@ -50,7 +52,9 @@ static int lite5200_pm_prepare(void)
+@@ -50,7 +52,9 @@
return -EINVAL;
/* map registers */
if (!mbar) {
printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__);
return -ENOSYS;
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc5200_simple.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc5200_simple.c
++++ b/arch/powerpc/platforms/52xx/mpc5200_simple.c
@@ -0,0 +1,85 @@
+/*
+ * Support for 'mpc5200-simple-platform' compatible boards.
+ .restart = mpc52xx_restart,
+ .calibrate_decr = generic_calibrate_decr,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc52xx_common.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/52xx/mpc52xx_common.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc52xx_common.c
+--- a/arch/powerpc/platforms/52xx/mpc52xx_common.c
++++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c
@@ -26,45 +26,6 @@
*/
static volatile struct mpc52xx_gpt *mpc52xx_wdt = NULL;
/**
* mpc52xx_find_ipb_freq - Find the IPB bus frequency for a device
* @node: device node
-@@ -101,9 +62,12 @@ EXPORT_SYMBOL(mpc52xx_find_ipb_freq);
+@@ -101,9 +62,12 @@
void __init
mpc5200_setup_xlb_arbiter(void)
{
if (!xlb) {
printk(KERN_ERR __FILE__ ": "
"Error mapping XLB in mpc52xx_setup_cpu(). "
-@@ -124,11 +88,21 @@ mpc5200_setup_xlb_arbiter(void)
+@@ -124,11 +88,21 @@
iounmap(xlb);
}
printk(KERN_ERR __FILE__ ": "
"Error while probing of_platform bus\n");
}
-@@ -146,16 +120,19 @@ mpc52xx_map_wdt(void)
+@@ -146,16 +120,19 @@
for_each_compatible_node(np, NULL, "fsl,mpc5200-gpt") {
has_wdt = of_get_property(np, "fsl,has-wdt", NULL);
if (has_wdt) {
}
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc52xx_pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/52xx/mpc52xx_pci.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc52xx_pci.c
-@@ -363,7 +363,7 @@ mpc52xx_add_bridge(struct device_node *n
+--- a/arch/powerpc/platforms/52xx/mpc52xx_pci.c
++++ b/arch/powerpc/platforms/52xx/mpc52xx_pci.c
+@@ -363,7 +363,7 @@
pr_debug("Adding MPC52xx PCI host bridge %s\n", node->full_name);
if (of_address_to_resource(node, 0, &rsrc) != 0) {
printk(KERN_ERR "Can't get %s resources\n", node->full_name);
-@@ -406,3 +406,17 @@ mpc52xx_add_bridge(struct device_node *n
+@@ -406,3 +406,17 @@
return 0;
}
+ mpc52xx_add_bridge(pci);
+ of_node_put(pci);
+}
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc52xx_pic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/52xx/mpc52xx_pic.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc52xx_pic.c
-@@ -364,16 +364,18 @@ void __init mpc52xx_init_irq(void)
+--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
++++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+@@ -364,16 +364,18 @@
{
u32 intr_ctrl;
struct device_node *picnode;
if (!sdma)
panic(__FILE__ ": find_and_map failed on 'mpc5200-bestcomm'. "
"Check node !");
-Index: linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc52xx_pm.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/52xx/mpc52xx_pm.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/52xx/mpc52xx_pm.c
-@@ -59,10 +59,14 @@ int mpc52xx_set_wakeup_gpio(u8 pin, u8 l
+--- a/arch/powerpc/platforms/52xx/mpc52xx_pm.c
++++ b/arch/powerpc/platforms/52xx/mpc52xx_pm.c
+@@ -59,10 +59,14 @@
int mpc52xx_pm_prepare(void)
{
return -ENOSYS;
}
/* these offsets are from mpc5200 users manual */
-Index: linux-2.6.24.7/arch/powerpc/platforms/82xx/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/82xx/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/82xx/Kconfig
-@@ -26,6 +26,19 @@ config PQ2FADS
+--- a/arch/powerpc/platforms/82xx/Kconfig
++++ b/arch/powerpc/platforms/82xx/Kconfig
+@@ -26,6 +26,19 @@
help
This option enables support for the PQ2FADS board
endchoice
config PQ2ADS
-Index: linux-2.6.24.7/arch/powerpc/platforms/82xx/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/82xx/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/82xx/Makefile
-@@ -5,3 +5,4 @@ obj-$(CONFIG_MPC8272_ADS) += mpc8272_ads
+--- a/arch/powerpc/platforms/82xx/Makefile
++++ b/arch/powerpc/platforms/82xx/Makefile
+@@ -5,3 +5,4 @@
obj-$(CONFIG_CPM2) += pq2.o
obj-$(CONFIG_PQ2_ADS_PCI_PIC) += pq2ads-pci-pic.o
obj-$(CONFIG_PQ2FADS) += pq2fads.o
+obj-$(CONFIG_EP8248E) += ep8248e.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/82xx/ep8248e.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/82xx/ep8248e.c
++++ b/arch/powerpc/platforms/82xx/ep8248e.c
@@ -0,0 +1,324 @@
+/*
+ * Embedded Planet EP8248E support
+ .restart = pq2_restart,
+ .progress = udbg_progress,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/82xx/pq2.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/82xx/pq2.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/82xx/pq2.c
-@@ -53,13 +53,13 @@ static void __init pq2_pci_add_bridge(st
+--- a/arch/powerpc/platforms/82xx/pq2.c
++++ b/arch/powerpc/platforms/82xx/pq2.c
+@@ -53,13 +53,13 @@
if (of_address_to_resource(np, 0, &r) || r.end - r.start < 0x10b)
goto err;
setup_indirect_pci(hose, r.start + 0x100, r.start + 0x104, 0);
pci_process_bridge_OF_ranges(hose, np, 1);
-Index: linux-2.6.24.7/arch/powerpc/platforms/82xx/pq2fads.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/82xx/pq2fads.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/82xx/pq2fads.c
+--- a/arch/powerpc/platforms/82xx/pq2fads.c
++++ b/arch/powerpc/platforms/82xx/pq2fads.c
@@ -15,12 +15,12 @@
#include <linux/init.h>
#include <linux/interrupt.h>
#include <asm/time.h>
#include <sysdev/fsl_soc.h>
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/Kconfig
-@@ -50,6 +50,11 @@ config MPC836x_MDS
+--- a/arch/powerpc/platforms/83xx/Kconfig
++++ b/arch/powerpc/platforms/83xx/Kconfig
+@@ -50,6 +50,11 @@
help
This option enables support for the MPC836x MDS Processor Board.
endchoice
config PPC_MPC831x
-@@ -75,3 +80,9 @@ config PPC_MPC836x
+@@ -75,3 +80,9 @@
select PPC_UDBG_16550
select PPC_INDIRECT_PCI
default y if MPC836x_MDS
+ select PPC_UDBG_16550
+ select PPC_INDIRECT_PCI
+ default y if MPC837x_MDS
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/Makefile
-@@ -9,3 +9,4 @@ obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds
+--- a/arch/powerpc/platforms/83xx/Makefile
++++ b/arch/powerpc/platforms/83xx/Makefile
+@@ -9,3 +9,4 @@
obj-$(CONFIG_MPC834x_ITX) += mpc834x_itx.o
obj-$(CONFIG_MPC836x_MDS) += mpc836x_mds.o
obj-$(CONFIG_MPC832x_MDS) += mpc832x_mds.o
+obj-$(CONFIG_MPC837x_MDS) += mpc837x_mds.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc8313_rdb.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/mpc8313_rdb.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc8313_rdb.c
+--- a/arch/powerpc/platforms/83xx/mpc8313_rdb.c
++++ b/arch/powerpc/platforms/83xx/mpc8313_rdb.c
@@ -14,6 +14,7 @@
*/
#include <asm/time.h>
#include <asm/ipic.h>
-@@ -70,11 +71,23 @@ void __init mpc8313_rdb_init_IRQ(void)
+@@ -70,11 +71,23 @@
*/
static int __init mpc8313_rdb_probe(void)
{
define_machine(mpc8313_rdb) {
.name = "MPC8313 RDB",
.probe = mpc8313_rdb_probe,
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc832x_mds.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/mpc832x_mds.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc832x_mds.c
+--- a/arch/powerpc/platforms/83xx/mpc832x_mds.c
++++ b/arch/powerpc/platforms/83xx/mpc832x_mds.c
@@ -23,9 +23,9 @@
#include <linux/seq_file.h>
#include <linux/root_dev.h>
#include <asm/system.h>
#include <asm/atomic.h>
#include <asm/time.h>
-@@ -110,15 +110,12 @@ static struct of_device_id mpc832x_ids[]
+@@ -110,15 +110,12 @@
static int __init mpc832x_declare_of_platform_devices(void)
{
static void __init mpc832x_sys_init_IRQ(void)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc832x_rdb.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/mpc832x_rdb.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc832x_rdb.c
+--- a/arch/powerpc/platforms/83xx/mpc832x_rdb.c
++++ b/arch/powerpc/platforms/83xx/mpc832x_rdb.c
@@ -19,8 +19,8 @@
#include <linux/spi/spi.h>
#include <linux/spi/mmc_spi.h>
#include <asm/time.h>
#include <asm/ipic.h>
#include <asm/udbg.h>
-@@ -63,9 +63,6 @@ static struct spi_board_info mpc832x_spi
+@@ -63,9 +63,6 @@
static int __init mpc832x_spi_init(void)
{
par_io_config_pin(3, 0, 3, 0, 1, 0); /* SPI1 MOSI, I/O */
par_io_config_pin(3, 1, 3, 0, 1, 0); /* SPI1 MISO, I/O */
par_io_config_pin(3, 2, 3, 0, 1, 0); /* SPI1 CLK, I/O */
-@@ -80,7 +77,7 @@ static int __init mpc832x_spi_init(void)
+@@ -80,7 +77,7 @@
mpc83xx_spi_deactivate_cs);
}
/* ************************************************************************
*
-@@ -123,15 +120,12 @@ static struct of_device_id mpc832x_ids[]
+@@ -123,15 +120,12 @@
static int __init mpc832x_declare_of_platform_devices(void)
{
void __init mpc832x_rdb_init_IRQ(void)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc834x_itx.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/mpc834x_itx.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc834x_itx.c
+--- a/arch/powerpc/platforms/83xx/mpc834x_itx.c
++++ b/arch/powerpc/platforms/83xx/mpc834x_itx.c
@@ -23,6 +23,7 @@
#include <linux/delay.h>
#include <linux/seq_file.h>
/* ************************************************************************
*
* Setup the architecture
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc834x_mds.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/mpc834x_mds.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc834x_mds.c
+--- a/arch/powerpc/platforms/83xx/mpc834x_mds.c
++++ b/arch/powerpc/platforms/83xx/mpc834x_mds.c
@@ -23,6 +23,7 @@
#include <linux/delay.h>
#include <linux/seq_file.h>
#include <asm/system.h>
#include <asm/atomic.h>
-@@ -106,14 +107,27 @@ static void __init mpc834x_mds_init_IRQ(
+@@ -106,14 +107,27 @@
ipic_set_default_priority();
}
}
define_machine(mpc834x_mds) {
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc836x_mds.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/mpc836x_mds.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc836x_mds.c
+--- a/arch/powerpc/platforms/83xx/mpc836x_mds.c
++++ b/arch/powerpc/platforms/83xx/mpc836x_mds.c
@@ -29,9 +29,9 @@
#include <linux/seq_file.h>
#include <linux/root_dev.h>
#include <asm/system.h>
#include <asm/atomic.h>
#include <asm/time.h>
-@@ -141,15 +141,12 @@ static struct of_device_id mpc836x_ids[]
+@@ -141,15 +141,12 @@
static int __init mpc836x_declare_of_platform_devices(void)
{
static void __init mpc836x_mds_init_IRQ(void)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc837x_mds.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc837x_mds.c
++++ b/arch/powerpc/platforms/83xx/mpc837x_mds.c
@@ -0,0 +1,147 @@
+/*
+ * arch/powerpc/platforms/83xx/mpc837x_mds.c
+ .calibrate_decr = generic_calibrate_decr,
+ .progress = udbg_progress,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc83xx.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/mpc83xx.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/mpc83xx.h
+--- a/arch/powerpc/platforms/83xx/mpc83xx.h
++++ b/arch/powerpc/platforms/83xx/mpc83xx.h
@@ -14,6 +14,7 @@
#define MPC83XX_SCCR_USB_DRCM_11 0x00300000
#define MPC83XX_SCCR_USB_DRCM_01 0x00100000
/* system i/o configuration register high */
#define MPC83XX_SICRH_OFFS 0x118
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/pci.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/pci.c
-@@ -54,7 +54,7 @@ int __init mpc83xx_add_bridge(struct dev
+--- a/arch/powerpc/platforms/83xx/pci.c
++++ b/arch/powerpc/platforms/83xx/pci.c
+@@ -54,7 +54,7 @@
" bus 0\n", dev->full_name);
}
hose = pcibios_alloc_controller(dev);
if (!hose)
return -ENOMEM;
-Index: linux-2.6.24.7/arch/powerpc/platforms/83xx/usb.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/83xx/usb.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/83xx/usb.c
-@@ -41,7 +41,7 @@ int mpc834x_usb_cfg(void)
+--- a/arch/powerpc/platforms/83xx/usb.c
++++ b/arch/powerpc/platforms/83xx/usb.c
+@@ -41,7 +41,7 @@
sicrl = in_be32(immap + MPC83XX_SICRL_OFFS) & ~MPC834X_SICRL_USB_MASK;
sicrh = in_be32(immap + MPC83XX_SICRH_OFFS) & ~MPC834X_SICRH_USB_UTMI;
if (np) {
sccr |= MPC83XX_SCCR_USB_DRCM_11; /* 1:3 */
-@@ -67,7 +67,7 @@ int mpc834x_usb_cfg(void)
+@@ -67,7 +67,7 @@
port0_is_dr = 1;
of_node_put(np);
}
if (np) {
sccr |= MPC83XX_SCCR_USB_MPHCM_11; /* 1:3 */
-@@ -111,7 +111,7 @@ int mpc831x_usb_cfg(void)
+@@ -111,7 +111,7 @@
const void *dr_mode;
#endif
if (!np)
return -ENODEV;
prop = of_get_property(np, "phy_type", NULL);
-@@ -179,3 +179,43 @@ int mpc831x_usb_cfg(void)
+@@ -179,3 +179,43 @@
return ret;
}
#endif /* CONFIG_PPC_MPC831x */
+ return ret;
+}
+#endif /* CONFIG_PPC_MPC837x */
-Index: linux-2.6.24.7/arch/powerpc/platforms/85xx/mpc85xx_ads.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/85xx/mpc85xx_ads.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/85xx/mpc85xx_ads.c
-@@ -52,9 +52,9 @@ static void cpm2_cascade(unsigned int ir
+--- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
++++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+@@ -52,9 +52,9 @@
{
int cascade_irq;
desc->chip->eoi(irq);
}
-@@ -70,13 +70,12 @@ static void __init mpc85xx_ads_pic_init(
+@@ -70,13 +70,12 @@
#endif
np = of_find_node_by_type(np, "open-pic");
printk(KERN_ERR "Could not map mpic register space\n");
of_node_put(np);
return;
-@@ -100,6 +99,7 @@ static void __init mpc85xx_ads_pic_init(
+@@ -100,6 +99,7 @@
irq = irq_of_parse_and_map(np, 0);
cpm2_pic_init(np);
set_irq_chained_handler(irq, cpm2_cascade);
#endif
}
-@@ -112,7 +112,7 @@ struct cpm_pin {
+@@ -112,7 +112,7 @@
int port, pin, flags;
};
/* SCC1 */
{3, 29, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
{3, 30, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY},
-@@ -233,13 +233,11 @@ static struct of_device_id __initdata of
+@@ -233,13 +233,11 @@
static int __init declare_of_platform_devices(void)
{
/*
* Called very early, device-tree isn't unflattened
-Index: linux-2.6.24.7/arch/powerpc/platforms/85xx/mpc85xx_cds.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/85xx/mpc85xx_cds.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/85xx/mpc85xx_cds.c
-@@ -222,9 +222,6 @@ static int mpc85xx_cds_8259_attach(void)
+--- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
++++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+@@ -222,9 +222,6 @@
struct device_node *cascade_node = NULL;
int cascade_irq;
/* Initialize the i8259 controller */
for_each_node_by_type(np, "interrupt-controller")
if (of_device_is_compatible(np, "chrp,iic")) {
-@@ -262,8 +259,7 @@ static int mpc85xx_cds_8259_attach(void)
+@@ -262,8 +259,7 @@
return 0;
}
#endif /* CONFIG_PPC_I8259 */
-Index: linux-2.6.24.7/arch/powerpc/platforms/85xx/mpc85xx_ds.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/85xx/mpc85xx_ds.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/85xx/mpc85xx_ds.c
-@@ -123,7 +123,7 @@ static int mpc85xx_exclude_device(struct
+--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
++++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+@@ -123,7 +123,7 @@
struct device_node* node;
struct resource rsrc;
of_address_to_resource(node, 0, &rsrc);
if ((rsrc.start & 0xfffff) == primary_phb_addr) {
-Index: linux-2.6.24.7/arch/powerpc/platforms/85xx/mpc85xx_mds.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/85xx/mpc85xx_mds.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/85xx/mpc85xx_mds.c
+--- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c
++++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
@@ -30,9 +30,9 @@
#include <linux/initrd.h>
#include <linux/module.h>
#include <asm/system.h>
#include <asm/atomic.h>
#include <asm/time.h>
-@@ -144,15 +144,12 @@ static struct of_device_id mpc85xx_ids[]
+@@ -144,15 +144,12 @@
static int __init mpc85xx_publish_devices(void)
{
static void __init mpc85xx_mds_pic_init(void)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
++++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -34,9 +34,24 @@
#include <asm/mpic.h>
void __init
mpc86xx_hpcd_init_irq(void)
{
-@@ -124,7 +139,7 @@ static void __devinit quirk_uli5229(stru
+@@ -124,7 +139,7 @@
static void __devinit final_uli5288(struct pci_dev *dev)
{
struct pci_controller *hose = pci_bus_to_host(dev->bus);
struct of_irq oirq;
int virq, pin = 2;
u32 laddr[3];
-Index: linux-2.6.24.7/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
++++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -18,6 +18,7 @@
#include <linux/kdev_t.h>
#include <linux/delay.h>
#include <asm/system.h>
#include <asm/time.h>
-@@ -116,7 +117,7 @@ static int mpc86xx_exclude_device(struct
+@@ -116,7 +117,7 @@
struct device_node* node;
struct resource rsrc;
of_address_to_resource(node, 0, &rsrc);
if ((rsrc.start & 0xfffff) == 0x8000) {
-@@ -212,6 +213,19 @@ mpc86xx_time_init(void)
+@@ -212,6 +213,19 @@
return 0;
}
define_machine(mpc86xx_hpcn) {
.name = "MPC86xx HPCN",
.probe = mpc86xx_hpcn_probe,
-Index: linux-2.6.24.7/arch/powerpc/platforms/8xx/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/8xx/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/8xx/Kconfig
-@@ -18,6 +18,7 @@ config MPC8XXFADS
+--- a/arch/powerpc/platforms/8xx/Kconfig
++++ b/arch/powerpc/platforms/8xx/Kconfig
+@@ -18,6 +18,7 @@
config MPC86XADS
bool "MPC86XADS"
select CPM1
help
MPC86x Application Development System by Freescale Semiconductor.
The MPC86xADS is meant to serve as a platform for s/w and h/w
-@@ -43,6 +44,15 @@ config PPC_EP88XC
+@@ -43,6 +44,15 @@
This board is also resold by Freescale as the QUICCStart
MPC885 Evaluation System and/or the CWH-PPC-885XN-VE.
endchoice
menu "Freescale Ethernet driver platform-specific options"
-Index: linux-2.6.24.7/arch/powerpc/platforms/8xx/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/8xx/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/8xx/Makefile
-@@ -5,3 +5,4 @@ obj-$(CONFIG_PPC_8xx) += m8xx_setup.o
+--- a/arch/powerpc/platforms/8xx/Makefile
++++ b/arch/powerpc/platforms/8xx/Makefile
+@@ -5,3 +5,4 @@
obj-$(CONFIG_MPC885ADS) += mpc885ads_setup.o
obj-$(CONFIG_MPC86XADS) += mpc86xads_setup.o
obj-$(CONFIG_PPC_EP88XC) += ep88xc.o
+obj-$(CONFIG_PPC_ADDER875) += adder875.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/8xx/adder875.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/8xx/adder875.c
++++ b/arch/powerpc/platforms/8xx/adder875.c
@@ -0,0 +1,118 @@
+/* Analogue & Micro Adder MPC875 board support
+ *
+ .get_rtc_time = mpc8xx_get_rtc_time,
+ .progress = udbg_progress,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/8xx/ep88xc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/8xx/ep88xc.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/8xx/ep88xc.c
-@@ -155,12 +155,11 @@ static struct of_device_id __initdata of
+--- a/arch/powerpc/platforms/8xx/ep88xc.c
++++ b/arch/powerpc/platforms/8xx/ep88xc.c
+@@ -155,12 +155,11 @@
static int __init declare_of_platform_devices(void)
{
/* Publish the QE devices */
define_machine(ep88xc) {
.name = "Embedded Planet EP88xC",
-Index: linux-2.6.24.7/arch/powerpc/platforms/8xx/m8xx_setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/8xx/m8xx_setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/8xx/m8xx_setup.c
-@@ -120,7 +120,7 @@ void __init mpc8xx_calibrate_decr(void)
+--- a/arch/powerpc/platforms/8xx/m8xx_setup.c
++++ b/arch/powerpc/platforms/8xx/m8xx_setup.c
+@@ -120,7 +120,7 @@
ppc_tb_freq /= 16;
ppc_proc_freq = 50000000;
if (!get_freq("clock-frequency", &ppc_proc_freq))
"(not found)\n");
printk("Decrementer Frequency = 0x%lx\n", ppc_tb_freq);
-Index: linux-2.6.24.7/arch/powerpc/platforms/8xx/mpc86xads.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/8xx/mpc86xads.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/8xx/mpc86xads.h
+--- a/arch/powerpc/platforms/8xx/mpc86xads.h
++++ b/arch/powerpc/platforms/8xx/mpc86xads.h
@@ -15,27 +15,6 @@
#ifndef __ASM_MPC86XADS_H__
#define __ASM_MPC86XADS_H__
-
#endif /* __ASM_MPC86XADS_H__ */
#endif /* __KERNEL__ */
-Index: linux-2.6.24.7/arch/powerpc/platforms/8xx/mpc86xads_setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/8xx/mpc86xads_setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/8xx/mpc86xads_setup.c
+--- a/arch/powerpc/platforms/8xx/mpc86xads_setup.c
++++ b/arch/powerpc/platforms/8xx/mpc86xads_setup.c
@@ -6,264 +6,133 @@
*
* Copyright 2005 MontaVista Software Inc.
define_machine(mpc86x_ads) {
.name = "MPC86x ADS",
-@@ -275,4 +144,5 @@ define_machine(mpc86x_ads) {
+@@ -275,4 +144,5 @@
.calibrate_decr = mpc8xx_calibrate_decr,
.set_rtc_time = mpc8xx_set_rtc_time,
.get_rtc_time = mpc8xx_get_rtc_time,
+ .progress = udbg_progress,
};
-Index: linux-2.6.24.7/arch/powerpc/platforms/8xx/mpc885ads_setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/8xx/mpc885ads_setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/8xx/mpc885ads_setup.c
-@@ -264,12 +264,11 @@ static struct of_device_id __initdata of
+--- a/arch/powerpc/platforms/8xx/mpc885ads_setup.c
++++ b/arch/powerpc/platforms/8xx/mpc885ads_setup.c
+@@ -264,12 +264,11 @@
static int __init declare_of_platform_devices(void)
{
/* Publish the QE devices */
define_machine(mpc885_ads) {
.name = "Freescale MPC885 ADS",
-Index: linux-2.6.24.7/arch/powerpc/platforms/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/Kconfig
-@@ -22,6 +22,7 @@ config PPC_83xx
+--- a/arch/powerpc/platforms/Kconfig
++++ b/arch/powerpc/platforms/Kconfig
+@@ -22,6 +22,7 @@
depends on 6xx
select FSL_SOC
select 83xx
select WANT_DEVICE_TREE
config PPC_86xx
-@@ -80,6 +81,10 @@ config XICS
+@@ -80,6 +81,10 @@
bool
default y
config MPIC
bool
default n
-@@ -265,6 +270,7 @@ config TAU_AVERAGE
+@@ -265,6 +270,7 @@
config QUICC_ENGINE
bool
select PPC_LIB_RHEAP
help
The QUICC Engine (QE) is a new generation of communications
coprocessors on Freescale embedded CPUs (akin to CPM in older chips).
-@@ -315,6 +321,12 @@ config FSL_ULI1575
+@@ -315,6 +321,12 @@
config CPM
bool
source "arch/powerpc/sysdev/bestcomm/Kconfig"
endmenu
-Index: linux-2.6.24.7/arch/powerpc/platforms/Kconfig.cputype
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/Kconfig.cputype
-+++ linux-2.6.24.7/arch/powerpc/platforms/Kconfig.cputype
-@@ -43,6 +43,7 @@ config 40x
+--- a/arch/powerpc/platforms/Kconfig.cputype
++++ b/arch/powerpc/platforms/Kconfig.cputype
+@@ -43,6 +43,7 @@
bool "AMCC 40x"
select PPC_DCR_NATIVE
select WANT_DEVICE_TREE
config 44x
bool "AMCC 44x"
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/Makefile
-@@ -20,7 +20,7 @@ spu-manage-$(CONFIG_PPC_CELL_NATIVE) +=
+--- a/arch/powerpc/platforms/cell/Makefile
++++ b/arch/powerpc/platforms/cell/Makefile
+@@ -20,7 +20,7 @@
obj-$(CONFIG_SPU_BASE) += spu_callbacks.o spu_base.o \
spu_notify.o \
$(spu-priv1-y) \
$(spu-manage-y) \
spufs/
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/cbe_cpufreq.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/cbe_cpufreq.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/cbe_cpufreq.c
+--- a/arch/powerpc/platforms/cell/cbe_cpufreq.c
++++ b/arch/powerpc/platforms/cell/cbe_cpufreq.c
@@ -21,8 +21,9 @@
*/
#include <asm/prom.h>
#include <asm/cell-regs.h>
#include "cbe_cpufreq.h"
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
+--- a/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
++++ b/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
@@ -23,7 +23,8 @@
#include <linux/kernel.h>
#include <linux/types.h>
#include <asm/processor.h>
#include <asm/prom.h>
#include <asm/pmi.h>
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/cbe_regs.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/cbe_regs.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/cbe_regs.c
+--- a/arch/powerpc/platforms/cell/cbe_regs.c
++++ b/arch/powerpc/platforms/cell/cbe_regs.c
@@ -9,13 +9,13 @@
#include <linux/percpu.h>
#include <linux/types.h>
#include <asm/cell-regs.h>
/*
-@@ -256,6 +256,7 @@ void __init cbe_regs_init(void)
+@@ -256,6 +256,7 @@
printk(KERN_ERR "cbe_regs: More BE chips than supported"
"!\n");
cbe_regs_map_count--;
return;
}
map->cpu_node = cpu;
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/io-workarounds.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/io-workarounds.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/io-workarounds.c
-@@ -238,7 +238,7 @@ static void __init spider_pci_setup_chip
+--- a/arch/powerpc/platforms/cell/io-workarounds.c
++++ b/arch/powerpc/platforms/cell/io-workarounds.c
+@@ -238,7 +238,7 @@
static void __init spider_pci_add_one(struct pci_controller *phb)
{
struct spider_pci_bus *bus = &spider_pci_busses[spider_pci_count];
struct resource rsrc;
void __iomem *regs;
-@@ -309,15 +309,12 @@ static int __init spider_pci_workaround_
+@@ -309,15 +309,12 @@
{
struct pci_controller *phb;
const char *model = of_get_property(np, "model", NULL);
/* If no model property or name isn't exactly "pci", skip */
-@@ -343,4 +340,4 @@ static int __init spider_pci_workaround_
+@@ -343,4 +340,4 @@
return 0;
}
-arch_initcall(spider_pci_workaround_init);
+machine_arch_initcall(cell, spider_pci_workaround_init);
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/iommu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/iommu.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/iommu.c
+--- a/arch/powerpc/platforms/cell/iommu.c
++++ b/arch/powerpc/platforms/cell/iommu.c
@@ -26,14 +26,15 @@
#include <linux/init.h>
#include <linux/interrupt.h>
#include <asm/cell-regs.h>
#include "interrupt.h"
-@@ -309,8 +310,8 @@ static void cell_iommu_setup_hardware(st
+@@ -309,8 +310,8 @@
{
struct page *page;
int ret, i;
unsigned int virq;
if (cell_iommu_find_ioc(iommu->nid, &xlate_base))
-@@ -327,7 +328,8 @@ static void cell_iommu_setup_hardware(st
+@@ -327,7 +328,8 @@
__FUNCTION__, iommu->nid, segments, pages_per_segment);
/* set up the segment table */
BUG_ON(!page);
iommu->stab = page_address(page);
clear_page(iommu->stab);
-@@ -489,15 +491,18 @@ static struct cbe_iommu *cell_iommu_for_
+@@ -489,15 +491,18 @@
return NULL;
}
/* Current implementation uses the first window available in that
* node's iommu. We -might- do something smarter later though it may
-@@ -653,7 +658,7 @@ static int __init cell_iommu_init_disabl
+@@ -653,7 +658,7 @@
/* If we have no Axon, we set up the spider DMA magic offset */
if (of_find_node_by_name(NULL, "axon") == NULL)
/* Now we need to check to see where the memory is mapped
* in PCI space. We assume that all busses use the same dma
-@@ -687,10 +692,13 @@ static int __init cell_iommu_init_disabl
+@@ -687,10 +692,13 @@
return -ENODEV;
}
return 0;
}
-@@ -699,9 +707,6 @@ static int __init cell_iommu_init(void)
+@@ -699,9 +707,6 @@
{
struct device_node *np;
/* If IOMMU is disabled or we have little enough RAM to not need
* to enable it, we setup a direct mapping.
*
-@@ -744,5 +749,6 @@ static int __init cell_iommu_init(void)
+@@ -744,5 +749,6 @@
return 0;
}
+machine_arch_initcall(cell, cell_iommu_init);
+machine_arch_initcall(celleb_native, cell_iommu_init);
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/pmu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/pmu.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/pmu.c
-@@ -213,7 +213,7 @@ u32 cbe_read_pm(u32 cpu, enum pm_reg_nam
+--- a/arch/powerpc/platforms/cell/pmu.c
++++ b/arch/powerpc/platforms/cell/pmu.c
+@@ -213,7 +213,7 @@
break;
case pm_interval:
break;
case pm_start_stop:
-@@ -381,9 +381,6 @@ static int __init cbe_init_pm_irq(void)
+@@ -381,9 +381,6 @@
unsigned int irq;
int rc, node;
for_each_node(node) {
irq = irq_create_mapping(NULL, IIC_IRQ_IOEX_PMI |
(node << IIC_IRQ_NODE_SHIFT));
-@@ -404,7 +401,7 @@ static int __init cbe_init_pm_irq(void)
+@@ -404,7 +401,7 @@
return 0;
}
void cbe_sync_irq(int node)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/setup.c
+--- a/arch/powerpc/platforms/cell/setup.c
++++ b/arch/powerpc/platforms/cell/setup.c
@@ -30,6 +30,7 @@
#include <linux/console.h>
#include <linux/mutex.h>
#include <asm/cell-regs.h>
#include "interrupt.h"
-@@ -85,9 +85,6 @@ static int __init cell_publish_devices(v
+@@ -85,9 +85,6 @@
{
int node;
/* Publish OF platform devices for southbridge IOs */
of_platform_bus_probe(NULL, NULL, NULL);
-@@ -101,7 +98,7 @@ static int __init cell_publish_devices(v
+@@ -101,7 +98,7 @@
}
return 0;
}
static void cell_mpic_cascade(unsigned int irq, struct irq_desc *desc)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/smp.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/smp.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/smp.c
+--- a/arch/powerpc/platforms/cell/smp.c
++++ b/arch/powerpc/platforms/cell/smp.c
@@ -42,6 +42,7 @@
#include <asm/firmware.h>
#include <asm/system.h>
#include "interrupt.h"
#include <asm/udbg.h>
-@@ -182,7 +183,7 @@ static int smp_cell_cpu_bootable(unsigne
+@@ -182,7 +183,7 @@
*/
if (system_state < SYSTEM_RUNNING &&
cpu_has_feature(CPU_FTR_SMT) &&
return 0;
return 1;
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spu_base.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spu_base.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spu_base.c
+--- a/arch/powerpc/platforms/cell/spu_base.c
++++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -34,6 +34,7 @@
#include <linux/linux_logo.h>
#include <asm/spu.h>
#include <asm/xmon.h>
#include <asm/prom.h>
-@@ -47,6 +48,13 @@ struct cbe_spu_info cbe_spu_info[MAX_NUM
+@@ -47,6 +48,13 @@
EXPORT_SYMBOL_GPL(cbe_spu_info);
/*
* Protects cbe_spu_info and spu->number.
*/
static DEFINE_SPINLOCK(spu_lock);
-@@ -66,6 +74,10 @@ static LIST_HEAD(spu_full_list);
+@@ -66,6 +74,10 @@
static DEFINE_SPINLOCK(spu_full_list_lock);
static DEFINE_MUTEX(spu_full_list_mutex);
void spu_invalidate_slbs(struct spu *spu)
{
struct spu_priv2 __iomem *priv2 = spu->priv2;
-@@ -114,40 +126,36 @@ void spu_associate_mm(struct spu *spu, s
+@@ -114,40 +126,36 @@
}
EXPORT_SYMBOL_GPL(spu_associate_mm);
int psize;
pr_debug("%s\n", __FUNCTION__);
-@@ -159,7 +167,7 @@ static int __spu_trap_data_seg(struct sp
+@@ -159,7 +167,7 @@
printk("%s: invalid access during switch!\n", __func__);
return 1;
}
switch(REGION_ID(ea)) {
case USER_REGION_ID:
-@@ -168,21 +176,21 @@ static int __spu_trap_data_seg(struct sp
+@@ -168,21 +176,21 @@
#else
psize = mm->context.user_psize;
#endif
break;
default:
/* Future: support kernel segments so that drivers
-@@ -191,11 +199,9 @@ static int __spu_trap_data_seg(struct sp
+@@ -191,11 +199,9 @@
pr_debug("invalid region access at %016lx\n", ea);
return 1;
}
spu->slb_replace++;
if (spu->slb_replace >= 8)
-@@ -225,13 +231,83 @@ static int __spu_trap_data_map(struct sp
+@@ -225,13 +231,83 @@
return 1;
}
static irqreturn_t
spu_irq_class_0(int irq, void *data)
{
-@@ -240,12 +316,13 @@ spu_irq_class_0(int irq, void *data)
+@@ -240,12 +316,13 @@
spu = data;
spin_unlock(&spu->register_lock);
spu->stop_callback(spu);
-@@ -255,31 +332,6 @@ spu_irq_class_0(int irq, void *data)
+@@ -255,31 +332,6 @@
return IRQ_HANDLED;
}
static irqreturn_t
spu_irq_class_1(int irq, void *data)
{
-@@ -294,24 +346,23 @@ spu_irq_class_1(int irq, void *data)
+@@ -294,24 +346,23 @@
stat = spu_int_stat_get(spu, 1) & mask;
dar = spu_mfc_dar_get(spu);
dsisr = spu_mfc_dsisr_get(spu);
;
return stat ? IRQ_HANDLED : IRQ_NONE;
-@@ -323,6 +374,8 @@ spu_irq_class_2(int irq, void *data)
+@@ -323,6 +374,8 @@
struct spu *spu;
unsigned long stat;
unsigned long mask;
spu = data;
spin_lock(&spu->register_lock);
-@@ -330,31 +383,30 @@ spu_irq_class_2(int irq, void *data)
+@@ -330,31 +383,30 @@
mask = spu_int_mask_get(spu, 2);
/* ignore interrupts we're not waiting for */
stat &= mask;
spu->wbox_callback(spu);
spu->stats.class2_intr++;
-@@ -479,13 +531,27 @@ EXPORT_SYMBOL_GPL(spu_add_sysdev_attr);
+@@ -479,13 +531,27 @@
int spu_add_sysdev_attr_group(struct attribute_group *attrs)
{
struct spu *spu;
}
EXPORT_SYMBOL_GPL(spu_add_sysdev_attr_group);
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spu_fault.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spu_fault.c
++++ b/arch/powerpc/platforms/cell/spu_fault.c
@@ -0,0 +1,98 @@
+/*
+ * SPU mm fault handler
+ return -EFAULT;
+}
+EXPORT_SYMBOL_GPL(spu_handle_mm_fault);
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spu_manage.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spu_manage.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spu_manage.c
+--- a/arch/powerpc/platforms/cell/spu_manage.c
++++ b/arch/powerpc/platforms/cell/spu_manage.c
@@ -35,6 +35,7 @@
#include <asm/firmware.h>
#include <asm/prom.h>
#include "interrupt.h"
struct device_node *spu_devnode(struct spu *spu)
-@@ -345,7 +346,7 @@ static int __init of_create_spu(struct s
+@@ -345,7 +346,7 @@
}
ret = spu_map_interrupts_old(spu, spe);
if (ret) {
spu->name);
goto out_unmap;
}
-@@ -369,6 +370,16 @@ static int of_destroy_spu(struct spu *sp
+@@ -369,6 +370,16 @@
return 0;
}
/* Hardcoded affinity idxs for qs20 */
#define QS20_SPES_PER_BE 8
static int qs20_reg_idxs[QS20_SPES_PER_BE] = { 0, 2, 4, 6, 7, 5, 3, 1 };
-@@ -411,10 +422,15 @@ static void init_affinity_qs20_harcoded(
+@@ -411,10 +422,15 @@
static int of_has_vicinity(void)
{
}
static struct spu *devnode_spu(int cbe, struct device_node *dn)
-@@ -525,7 +541,7 @@ static int __init init_affinity(void)
+@@ -525,7 +541,7 @@
if (of_flat_dt_is_compatible(root, "IBM,CPBW-1.0"))
init_affinity_qs20_harcoded();
else
}
return 0;
-@@ -535,5 +551,7 @@ const struct spu_management_ops spu_mana
+@@ -535,5 +551,7 @@
.enumerate_spus = of_enumerate_spus,
.create_spu = of_create_spu,
.destroy_spu = of_destroy_spu,
+ .disable_spu = disable_spu_by_master_run,
.init_affinity = init_affinity,
};
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/Makefile
+--- a/arch/powerpc/platforms/cell/spufs/Makefile
++++ b/arch/powerpc/platforms/cell/spufs/Makefile
@@ -1,8 +1,8 @@
-obj-y += switch.o fault.o lscsa_alloc.o
# Rules to build switch.o with the help of SPU tool chain
SPU_CROSS := spu-
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/backing_ops.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/backing_ops.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/backing_ops.c
-@@ -106,16 +106,20 @@ static unsigned int spu_backing_mbox_sta
+--- a/arch/powerpc/platforms/cell/spufs/backing_ops.c
++++ b/arch/powerpc/platforms/cell/spufs/backing_ops.c
+@@ -106,16 +106,20 @@
if (stat & 0xff0000)
ret |= POLLIN | POLLRDNORM;
else {
}
}
spin_unlock_irq(&ctx->csa.register_lock);
-@@ -139,7 +143,7 @@ static int spu_backing_ibox_read(struct
+@@ -139,7 +143,7 @@
ret = 4;
} else {
/* make sure we get woken up by the interrupt */
ret = 0;
}
spin_unlock(&ctx->csa.register_lock);
-@@ -169,7 +173,8 @@ static int spu_backing_wbox_write(struct
+@@ -169,7 +173,8 @@
} else {
/* make sure we get woken up by the interrupt when space
becomes available */
ret = 0;
}
spin_unlock(&ctx->csa.register_lock);
-@@ -268,6 +273,11 @@ static char *spu_backing_get_ls(struct s
+@@ -268,6 +273,11 @@
return ctx->csa.lscsa->ls;
}
static u32 spu_backing_runcntl_read(struct spu_context *ctx)
{
return ctx->csa.prob.spu_runcntl_RW;
-@@ -285,6 +295,11 @@ static void spu_backing_runcntl_write(st
+@@ -285,6 +295,11 @@
spin_unlock(&ctx->csa.register_lock);
}
static void spu_backing_master_start(struct spu_context *ctx)
{
struct spu_state *csa = &ctx->csa;
-@@ -358,7 +373,7 @@ static int spu_backing_send_mfc_command(
+@@ -358,7 +373,7 @@
static void spu_backing_restart_dma(struct spu_context *ctx)
{
}
struct spu_context_ops spu_backing_ops = {
-@@ -379,8 +394,10 @@ struct spu_context_ops spu_backing_ops =
+@@ -379,8 +394,10 @@
.npc_write = spu_backing_npc_write,
.status_read = spu_backing_status_read,
.get_ls = spu_backing_get_ls,
.master_start = spu_backing_master_start,
.master_stop = spu_backing_master_stop,
.set_mfc_query = spu_backing_set_mfc_query,
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/context.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/context.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/context.c
-@@ -52,6 +52,7 @@ struct spu_context *alloc_spu_context(st
+--- a/arch/powerpc/platforms/cell/spufs/context.c
++++ b/arch/powerpc/platforms/cell/spufs/context.c
+@@ -52,6 +52,7 @@
init_waitqueue_head(&ctx->wbox_wq);
init_waitqueue_head(&ctx->stop_wq);
init_waitqueue_head(&ctx->mfc_wq);
ctx->state = SPU_STATE_SAVED;
ctx->ops = &spu_backing_ops;
ctx->owner = get_task_mm(current);
-@@ -105,7 +106,17 @@ int put_spu_context(struct spu_context *
+@@ -105,7 +106,17 @@
void spu_forget(struct spu_context *ctx)
{
struct mm_struct *mm;
mm = ctx->owner;
ctx->owner = NULL;
mmput(mm);
-@@ -133,47 +144,23 @@ void spu_unmap_mappings(struct spu_conte
+@@ -133,47 +144,23 @@
}
/**
}
/**
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/coredump.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/coredump.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/coredump.c
-@@ -148,7 +148,9 @@ int spufs_coredump_extra_notes_size(void
+--- a/arch/powerpc/platforms/cell/spufs/coredump.c
++++ b/arch/powerpc/platforms/cell/spufs/coredump.c
+@@ -148,7 +148,9 @@
fd = 0;
while ((ctx = coredump_next_context(&fd)) != NULL) {
rc = spufs_ctx_note_size(ctx, fd);
spu_release_saved(ctx);
if (rc < 0)
-@@ -224,7 +226,9 @@ int spufs_coredump_extra_notes_write(str
+@@ -224,7 +226,9 @@
fd = 0;
while ((ctx = coredump_next_context(&fd)) != NULL) {
for (j = 0; spufs_coredump_read[j].name != NULL; j++) {
rc = spufs_arch_write_note(ctx, j, file, fd, foffset);
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/fault.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/fault.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/fault.c
+--- a/arch/powerpc/platforms/cell/spufs/fault.c
++++ b/arch/powerpc/platforms/cell/spufs/fault.c
@@ -28,117 +28,71 @@
#include "spufs.h"
/*
* bottom half handler for page faults, we can't do this from
-@@ -154,7 +108,7 @@ int spufs_handle_class1(struct spu_conte
+@@ -154,7 +108,7 @@
u64 ea, dsisr, access;
unsigned long flags;
unsigned flt = 0;
/*
* dar and dsisr get passed from the registers
-@@ -165,16 +119,8 @@ int spufs_handle_class1(struct spu_conte
+@@ -165,16 +119,8 @@
* in time, we can still expect to get the same fault
* the immediately after the context restore.
*/
if (!(dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED)))
return 0;
-@@ -201,7 +147,22 @@ int spufs_handle_class1(struct spu_conte
+@@ -201,7 +147,22 @@
if (ret)
ret = spu_handle_mm_fault(current->mm, ea, dsisr, &flt);
/*
* If we handled the fault successfully and are in runnable
* state, restart the DMA.
-@@ -222,9 +183,9 @@ int spufs_handle_class1(struct spu_conte
+@@ -222,9 +183,9 @@
if (ctx->spu)
ctx->ops->restart_dma(ctx);
} else
return ret;
}
-EXPORT_SYMBOL_GPL(spufs_handle_class1);
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/file.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/file.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/file.c
+--- a/arch/powerpc/platforms/cell/spufs/file.c
++++ b/arch/powerpc/platforms/cell/spufs/file.c
@@ -40,6 +40,120 @@
#define SPUFS_MMAP_4K (PAGE_SIZE == 0x1000)
static int
spufs_mem_open(struct inode *inode, struct file *file)
-@@ -84,9 +198,12 @@ spufs_mem_read(struct file *file, char _
+@@ -84,9 +198,12 @@
struct spu_context *ctx = file->private_data;
ssize_t ret;
return ret;
}
-@@ -106,7 +223,10 @@ spufs_mem_write(struct file *file, const
+@@ -106,7 +223,10 @@
if (size > LS_SIZE - pos)
size = LS_SIZE - pos;
local_store = ctx->ops->get_ls(ctx);
ret = copy_from_user(local_store + pos, buffer, size);
spu_release(ctx);
-@@ -146,7 +266,8 @@ static unsigned long spufs_mem_mmap_nopf
+@@ -146,7 +266,8 @@
pr_debug("spufs_mem_mmap_nopfn address=0x%lx -> 0x%lx, offset=0x%lx\n",
addr0, address, offset);
if (ctx->state == SPU_STATE_SAVED) {
vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot)
-@@ -236,23 +357,32 @@ static unsigned long spufs_ps_nopfn(stru
+@@ -236,23 +357,32 @@
{
struct spu_context *ctx = vma->vm_file->private_data;
unsigned long area, offset = address - vma->vm_start;
return NOPFN_REFAULT;
}
-@@ -286,25 +416,32 @@ static int spufs_cntl_mmap(struct file *
+@@ -286,25 +416,32 @@
#define spufs_cntl_mmap NULL
#endif /* !SPUFS_MMAP_4K */
}
static int spufs_cntl_open(struct inode *inode, struct file *file)
-@@ -317,7 +454,7 @@ static int spufs_cntl_open(struct inode
+@@ -317,7 +454,7 @@
if (!i->i_openers++)
ctx->cntl = inode->i_mapping;
mutex_unlock(&ctx->mapping_lock);
spufs_cntl_set, "0x%08lx");
}
-@@ -327,7 +464,7 @@ spufs_cntl_release(struct inode *inode,
+@@ -327,7 +464,7 @@
struct spufs_inode_info *i = SPUFS_I(inode);
struct spu_context *ctx = i->i_ctx;
mutex_lock(&ctx->mapping_lock);
if (!--i->i_openers)
-@@ -339,8 +476,8 @@ spufs_cntl_release(struct inode *inode,
+@@ -339,8 +476,8 @@
static const struct file_operations spufs_cntl_fops = {
.open = spufs_cntl_open,
.release = spufs_cntl_release,
.mmap = spufs_cntl_mmap,
};
-@@ -368,7 +505,9 @@ spufs_regs_read(struct file *file, char
+@@ -368,7 +505,9 @@
int ret;
struct spu_context *ctx = file->private_data;
ret = __spufs_regs_read(ctx, buffer, size, pos);
spu_release_saved(ctx);
return ret;
-@@ -387,7 +526,9 @@ spufs_regs_write(struct file *file, cons
+@@ -387,7 +526,9 @@
return -EFBIG;
*pos += size;
ret = copy_from_user(lscsa->gprs + *pos - size,
buffer, size) ? -EFAULT : size;
-@@ -419,7 +560,9 @@ spufs_fpcr_read(struct file *file, char
+@@ -419,7 +560,9 @@
int ret;
struct spu_context *ctx = file->private_data;
ret = __spufs_fpcr_read(ctx, buffer, size, pos);
spu_release_saved(ctx);
return ret;
-@@ -436,10 +579,12 @@ spufs_fpcr_write(struct file *file, cons
+@@ -436,10 +579,12 @@
size = min_t(ssize_t, sizeof(lscsa->fpcr) - *pos, size);
if (size <= 0)
return -EFBIG;
ret = copy_from_user((char *)&lscsa->fpcr + *pos - size,
buffer, size) ? -EFAULT : size;
-@@ -486,7 +631,10 @@ static ssize_t spufs_mbox_read(struct fi
+@@ -486,7 +631,10 @@
udata = (void __user *)buf;
for (count = 0; (count + 4) <= len; count += 4, udata++) {
int ret;
ret = ctx->ops->mbox_read(ctx, &mbox_data);
-@@ -522,12 +670,15 @@ static ssize_t spufs_mbox_stat_read(stru
+@@ -522,12 +670,15 @@
size_t len, loff_t *pos)
{
struct spu_context *ctx = file->private_data;
mbox_stat = ctx->ops->mbox_stat_read(ctx) & 0xff;
-@@ -562,6 +713,9 @@ void spufs_ibox_callback(struct spu *spu
+@@ -562,6 +713,9 @@
{
struct spu_context *ctx = spu->ctx;
wake_up_all(&ctx->ibox_wq);
kill_fasync(&ctx->ibox_fasync, SIGIO, POLLIN);
}
-@@ -593,7 +747,9 @@ static ssize_t spufs_ibox_read(struct fi
+@@ -593,7 +747,9 @@
udata = (void __user *)buf;
/* wait only for the first element */
count = 0;
-@@ -639,7 +795,11 @@ static unsigned int spufs_ibox_poll(stru
+@@ -639,7 +795,11 @@
poll_wait(file, &ctx->ibox_wq, wait);
mask = ctx->ops->mbox_stat_poll(ctx, POLLIN | POLLRDNORM);
spu_release(ctx);
-@@ -657,12 +817,15 @@ static ssize_t spufs_ibox_stat_read(stru
+@@ -657,12 +817,15 @@
size_t len, loff_t *pos)
{
struct spu_context *ctx = file->private_data;
ibox_stat = (ctx->ops->mbox_stat_read(ctx) >> 16) & 0xff;
spu_release(ctx);
-@@ -698,6 +861,9 @@ void spufs_wbox_callback(struct spu *spu
+@@ -698,6 +861,9 @@
{
struct spu_context *ctx = spu->ctx;
wake_up_all(&ctx->wbox_wq);
kill_fasync(&ctx->wbox_fasync, SIGIO, POLLOUT);
}
-@@ -731,7 +897,9 @@ static ssize_t spufs_wbox_write(struct f
+@@ -731,7 +897,9 @@
if (__get_user(wbox_data, udata))
return -EFAULT;
/*
* make sure we can at least write one element, by waiting
-@@ -772,7 +940,11 @@ static unsigned int spufs_wbox_poll(stru
+@@ -772,7 +940,11 @@
poll_wait(file, &ctx->wbox_wq, wait);
mask = ctx->ops->mbox_stat_poll(ctx, POLLOUT | POLLWRNORM);
spu_release(ctx);
-@@ -790,12 +962,15 @@ static ssize_t spufs_wbox_stat_read(stru
+@@ -790,12 +962,15 @@
size_t len, loff_t *pos)
{
struct spu_context *ctx = file->private_data;
wbox_stat = (ctx->ops->mbox_stat_read(ctx) >> 8) & 0xff;
spu_release(ctx);
-@@ -866,7 +1041,9 @@ static ssize_t spufs_signal1_read(struct
+@@ -866,7 +1041,9 @@
int ret;
struct spu_context *ctx = file->private_data;
ret = __spufs_signal1_read(ctx, buf, len, pos);
spu_release_saved(ctx);
-@@ -877,6 +1054,7 @@ static ssize_t spufs_signal1_write(struc
+@@ -877,6 +1054,7 @@
size_t len, loff_t *pos)
{
struct spu_context *ctx;
u32 data;
ctx = file->private_data;
-@@ -887,7 +1065,9 @@ static ssize_t spufs_signal1_write(struc
+@@ -887,7 +1065,9 @@
if (copy_from_user(&data, buf, 4))
return -EFAULT;
ctx->ops->signal1_write(ctx, data);
spu_release(ctx);
-@@ -997,7 +1177,9 @@ static ssize_t spufs_signal2_read(struct
+@@ -997,7 +1177,9 @@
struct spu_context *ctx = file->private_data;
int ret;
ret = __spufs_signal2_read(ctx, buf, len, pos);
spu_release_saved(ctx);
-@@ -1008,6 +1190,7 @@ static ssize_t spufs_signal2_write(struc
+@@ -1008,6 +1190,7 @@
size_t len, loff_t *pos)
{
struct spu_context *ctx;
u32 data;
ctx = file->private_data;
-@@ -1018,7 +1201,9 @@ static ssize_t spufs_signal2_write(struc
+@@ -1018,7 +1201,9 @@
if (copy_from_user(&data, buf, 4))
return -EFAULT;
ctx->ops->signal2_write(ctx, data);
spu_release(ctx);
-@@ -1086,33 +1271,42 @@ static const struct file_operations spuf
+@@ -1086,33 +1271,42 @@
#define SPU_ATTR_ACQUIRE_SAVED 2
#define DEFINE_SPUFS_ATTRIBUTE(__name, __get, __set, __fmt, __acquire) \
}
static u64 spufs_signal1_type_get(struct spu_context *ctx)
-@@ -1123,13 +1317,18 @@ DEFINE_SPUFS_ATTRIBUTE(spufs_signal1_typ
+@@ -1123,13 +1317,18 @@
spufs_signal1_type_set, "%llu", SPU_ATTR_ACQUIRE);
}
static u64 spufs_signal2_type_get(struct spu_context *ctx)
-@@ -1329,6 +1528,9 @@ void spufs_mfc_callback(struct spu *spu)
+@@ -1329,6 +1528,9 @@
{
struct spu_context *ctx = spu->ctx;
wake_up_all(&ctx->mfc_wq);
pr_debug("%s %s\n", __FUNCTION__, spu->name);
-@@ -1375,12 +1577,17 @@ static ssize_t spufs_mfc_read(struct fil
+@@ -1375,12 +1577,17 @@
if (size != 4)
goto out;
ctx->tagwait &= ~status;
} else {
ret = spufs_wait(ctx->mfc_wq,
-@@ -1505,7 +1712,11 @@ static ssize_t spufs_mfc_write(struct fi
+@@ -1505,7 +1712,11 @@
if (ret)
goto out;
if (ret)
goto out;
-@@ -1539,7 +1750,11 @@ static unsigned int spufs_mfc_poll(struc
+@@ -1539,7 +1750,11 @@
poll_wait(file, &ctx->mfc_wq, wait);
ctx->ops->set_mfc_query(ctx, ctx->tagwait, 2);
free_elements = ctx->ops->get_mfc_free_elements(ctx);
tagstatus = ctx->ops->read_mfc_tagstatus(ctx);
-@@ -1562,7 +1777,9 @@ static int spufs_mfc_flush(struct file *
+@@ -1562,7 +1777,9 @@
struct spu_context *ctx = file->private_data;
int ret;
#if 0
/* this currently hangs */
ret = spufs_wait(ctx->mfc_wq,
-@@ -1605,12 +1822,18 @@ static const struct file_operations spuf
+@@ -1605,12 +1822,18 @@
.mmap = spufs_mfc_mmap,
};
}
static u64 spufs_npc_get(struct spu_context *ctx)
-@@ -1620,13 +1843,19 @@ static u64 spufs_npc_get(struct spu_cont
+@@ -1620,13 +1843,19 @@
DEFINE_SPUFS_ATTRIBUTE(spufs_npc_ops, spufs_npc_get, spufs_npc_set,
"0x%llx\n", SPU_ATTR_ACQUIRE);
}
static u64 spufs_decr_get(struct spu_context *ctx)
-@@ -1637,15 +1866,21 @@ static u64 spufs_decr_get(struct spu_con
+@@ -1637,15 +1866,21 @@
DEFINE_SPUFS_ATTRIBUTE(spufs_decr_ops, spufs_decr_get, spufs_decr_set,
"0x%llx\n", SPU_ATTR_ACQUIRE_SAVED);
}
static u64 spufs_decr_status_get(struct spu_context *ctx)
-@@ -1659,13 +1894,19 @@ DEFINE_SPUFS_ATTRIBUTE(spufs_decr_status
+@@ -1659,13 +1894,19 @@
spufs_decr_status_set, "0x%llx\n",
SPU_ATTR_ACQUIRE_SAVED);
}
static u64 spufs_event_mask_get(struct spu_context *ctx)
-@@ -1690,13 +1931,19 @@ static u64 spufs_event_status_get(struct
+@@ -1690,13 +1931,19 @@
DEFINE_SPUFS_ATTRIBUTE(spufs_event_status_ops, spufs_event_status_get,
NULL, "0x%llx\n", SPU_ATTR_ACQUIRE_SAVED)
}
static u64 spufs_srr0_get(struct spu_context *ctx)
-@@ -1727,10 +1974,12 @@ static u64 spufs_object_id_get(struct sp
+@@ -1727,10 +1974,12 @@
return ctx->object_id;
}
}
DEFINE_SPUFS_ATTRIBUTE(spufs_object_id_ops, spufs_object_id_get,
-@@ -1777,13 +2026,13 @@ static const struct file_operations spuf
+@@ -1777,13 +2026,13 @@
static ssize_t __spufs_mbox_info_read(struct spu_context *ctx,
char __user *buf, size_t len, loff_t *pos)
{
return simple_read_from_buffer(buf, len, pos, &data, sizeof data);
}
-@@ -1797,7 +2046,9 @@ static ssize_t spufs_mbox_info_read(stru
+@@ -1797,7 +2046,9 @@
if (!access_ok(VERIFY_WRITE, buf, len))
return -EFAULT;
spin_lock(&ctx->csa.register_lock);
ret = __spufs_mbox_info_read(ctx, buf, len, pos);
spin_unlock(&ctx->csa.register_lock);
-@@ -1815,13 +2066,13 @@ static const struct file_operations spuf
+@@ -1815,13 +2066,13 @@
static ssize_t __spufs_ibox_info_read(struct spu_context *ctx,
char __user *buf, size_t len, loff_t *pos)
{
return simple_read_from_buffer(buf, len, pos, &data, sizeof data);
}
-@@ -1835,7 +2086,9 @@ static ssize_t spufs_ibox_info_read(stru
+@@ -1835,7 +2086,9 @@
if (!access_ok(VERIFY_WRITE, buf, len))
return -EFAULT;
spin_lock(&ctx->csa.register_lock);
ret = __spufs_ibox_info_read(ctx, buf, len, pos);
spin_unlock(&ctx->csa.register_lock);
-@@ -1876,7 +2129,9 @@ static ssize_t spufs_wbox_info_read(stru
+@@ -1876,7 +2129,9 @@
if (!access_ok(VERIFY_WRITE, buf, len))
return -EFAULT;
spin_lock(&ctx->csa.register_lock);
ret = __spufs_wbox_info_read(ctx, buf, len, pos);
spin_unlock(&ctx->csa.register_lock);
-@@ -1926,7 +2181,9 @@ static ssize_t spufs_dma_info_read(struc
+@@ -1926,7 +2181,9 @@
if (!access_ok(VERIFY_WRITE, buf, len))
return -EFAULT;
spin_lock(&ctx->csa.register_lock);
ret = __spufs_dma_info_read(ctx, buf, len, pos);
spin_unlock(&ctx->csa.register_lock);
-@@ -1977,7 +2234,9 @@ static ssize_t spufs_proxydma_info_read(
+@@ -1977,7 +2234,9 @@
struct spu_context *ctx = file->private_data;
int ret;
spin_lock(&ctx->csa.register_lock);
ret = __spufs_proxydma_info_read(ctx, buf, len, pos);
spin_unlock(&ctx->csa.register_lock);
-@@ -2066,8 +2325,12 @@ static unsigned long long spufs_class2_i
+@@ -2066,8 +2325,12 @@
static int spufs_show_stat(struct seq_file *s, void *private)
{
struct spu_context *ctx = s->private;
seq_printf(s, "%s %llu %llu %llu %llu "
"%llu %llu %llu %llu %llu %llu %llu %llu\n",
ctx_state_names[ctx->stats.util_state],
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/hw_ops.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/hw_ops.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/hw_ops.c
-@@ -76,16 +76,18 @@ static unsigned int spu_hw_mbox_stat_pol
+--- a/arch/powerpc/platforms/cell/spufs/hw_ops.c
++++ b/arch/powerpc/platforms/cell/spufs/hw_ops.c
+@@ -76,16 +76,18 @@
if (stat & 0xff0000)
ret |= POLLIN | POLLRDNORM;
else {
}
}
spin_unlock_irq(&spu->register_lock);
-@@ -106,7 +108,7 @@ static int spu_hw_ibox_read(struct spu_c
+@@ -106,7 +108,7 @@
ret = 4;
} else {
/* make sure we get woken up by the interrupt */
ret = 0;
}
spin_unlock_irq(&spu->register_lock);
-@@ -127,7 +129,7 @@ static int spu_hw_wbox_write(struct spu_
+@@ -127,7 +129,7 @@
} else {
/* make sure we get woken up by the interrupt when space
becomes available */
ret = 0;
}
spin_unlock_irq(&spu->register_lock);
-@@ -206,6 +208,11 @@ static char *spu_hw_get_ls(struct spu_co
+@@ -206,6 +208,11 @@
return ctx->spu->local_store;
}
static u32 spu_hw_runcntl_read(struct spu_context *ctx)
{
return in_be32(&ctx->spu->problem->spu_runcntl_RW);
-@@ -215,11 +222,21 @@ static void spu_hw_runcntl_write(struct
+@@ -215,11 +222,21 @@
{
spin_lock_irq(&ctx->spu->register_lock);
if (val & SPU_RUNCNTL_ISOLATE)
static void spu_hw_master_start(struct spu_context *ctx)
{
struct spu *spu = ctx->spu;
-@@ -319,8 +336,10 @@ struct spu_context_ops spu_hw_ops = {
+@@ -319,8 +336,10 @@
.npc_write = spu_hw_npc_write,
.status_read = spu_hw_status_read,
.get_ls = spu_hw_get_ls,
.master_start = spu_hw_master_start,
.master_stop = spu_hw_master_stop,
.set_mfc_query = spu_hw_set_mfc_query,
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c
+--- a/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c
++++ b/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c
@@ -28,6 +28,8 @@
#include <asm/spu_csa.h>
#include <asm/mmu.h>
static int spu_alloc_lscsa_std(struct spu_state *csa)
{
struct spu_lscsa *lscsa;
-@@ -73,7 +75,7 @@ int spu_alloc_lscsa(struct spu_state *cs
+@@ -73,7 +75,7 @@
int i, j, n_4k;
/* Check availability of 64K pages */
goto fail;
csa->use_big_pages = 1;
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/run.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/run.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/run.c
-@@ -15,24 +15,55 @@ void spufs_stop_callback(struct spu *spu
+--- a/arch/powerpc/platforms/cell/spufs/run.c
++++ b/arch/powerpc/platforms/cell/spufs/run.c
+@@ -15,24 +15,55 @@
{
struct spu_context *ctx = spu->ctx;
}
static int spu_setup_isolated(struct spu_context *ctx)
-@@ -128,34 +159,66 @@ out:
+@@ -128,34 +159,66 @@
static int spu_run_init(struct spu_context *ctx, u32 *npc)
{
return 0;
}
-@@ -165,6 +228,8 @@ static int spu_run_fini(struct spu_conte
+@@ -165,6 +228,8 @@
{
int ret = 0;
*status = ctx->ops->status_read(ctx);
*npc = ctx->ops->npc_read(ctx);
-@@ -177,26 +242,6 @@ static int spu_run_fini(struct spu_conte
+@@ -177,26 +242,6 @@
return ret;
}
/*
* SPU syscall restarting is tricky because we violate the basic
* assumption that the signal handler is running on the interrupted
-@@ -247,7 +292,7 @@ static int spu_process_callback(struct s
+@@ -247,7 +292,7 @@
u32 ls_pointer, npc;
void __iomem *ls;
long spu_ret;
/* get syscall block from local store */
npc = ctx->ops->npc_read(ctx) & ~3;
-@@ -269,9 +314,11 @@ static int spu_process_callback(struct s
+@@ -269,9 +314,11 @@
if (spu_ret <= -ERESTARTSYS) {
ret = spu_handle_restartsys(ctx, &spu_ret, &npc);
}
}
/* write result, jump over indirect pointer */
-@@ -281,18 +328,6 @@ static int spu_process_callback(struct s
+@@ -281,18 +328,6 @@
return ret;
}
long spufs_run_spu(struct spu_context *ctx, u32 *npc, u32 *event)
{
int ret;
-@@ -302,29 +337,14 @@ long spufs_run_spu(struct spu_context *c
+@@ -302,29 +337,14 @@
if (mutex_lock_interruptible(&ctx->run_mutex))
return -ERESTARTSYS;
ret = spu_run_init(ctx, npc);
if (ret) {
-@@ -358,14 +378,12 @@ long spufs_run_spu(struct spu_context *c
+@@ -358,14 +378,12 @@
if (ret)
break;
} while (!ret && !(status & (SPU_STATUS_STOPPED_BY_STOP |
SPU_STATUS_STOPPED_BY_HALT |
SPU_STATUS_SINGLE_STEP)));
-@@ -376,11 +394,10 @@ long spufs_run_spu(struct spu_context *c
+@@ -376,11 +394,10 @@
ctx->stats.libassist++;
if ((ret == 0) ||
((ret == -ERESTARTSYS) &&
((status & SPU_STATUS_STOPPED_BY_HALT) ||
-@@ -401,6 +418,7 @@ out2:
+@@ -401,6 +418,7 @@
out:
*event = ctx->event_return;
mutex_unlock(&ctx->run_mutex);
return ret;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/sched.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/sched.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/sched.c
-@@ -58,6 +58,7 @@ static unsigned long spu_avenrun[3];
+--- a/arch/powerpc/platforms/cell/spufs/sched.c
++++ b/arch/powerpc/platforms/cell/spufs/sched.c
+@@ -58,6 +58,7 @@
static struct spu_prio_array *spu_prio;
static struct task_struct *spusched_task;
static struct timer_list spusched_timer;
/*
* Priority of a normal, non-rt, non-niced'd process (aka nice level 0).
-@@ -105,15 +106,21 @@ void spu_set_timeslice(struct spu_contex
+@@ -105,15 +106,21 @@
void __spu_update_sched_info(struct spu_context *ctx)
{
/*
* contains junk for threads with a realtime scheduling
* policy so we have to look at ->prio in this case.
*/
-@@ -124,23 +131,32 @@ void __spu_update_sched_info(struct spu_
+@@ -124,23 +131,32 @@
ctx->policy = current->policy;
/*
}
static int __node_allowed(struct spu_context *ctx, int node)
-@@ -174,7 +190,7 @@ void do_notify_spus_active(void)
+@@ -174,7 +190,7 @@
* Wake up the active spu_contexts.
*
* When the awakened processes see their "notify_active" flag is set,
*/
for_each_online_node(node) {
struct spu *spu;
-@@ -221,7 +237,6 @@ static void spu_bind_context(struct spu
+@@ -221,7 +237,6 @@
spu->wbox_callback = spufs_wbox_callback;
spu->stop_callback = spufs_stop_callback;
spu->mfc_callback = spufs_mfc_callback;
mb();
spu_unmap_mappings(ctx);
spu_restore(&ctx->csa, spu);
-@@ -409,7 +424,6 @@ static void spu_unbind_context(struct sp
+@@ -409,7 +424,6 @@
spu->wbox_callback = NULL;
spu->stop_callback = NULL;
spu->mfc_callback = NULL;
spu_associate_mm(spu, NULL);
spu->pid = 0;
spu->tgid = 0;
-@@ -454,6 +468,13 @@ static void __spu_add_to_rq(struct spu_c
+@@ -454,6 +468,13 @@
}
}
static void __spu_del_from_rq(struct spu_context *ctx)
{
int prio = ctx->prio;
-@@ -468,10 +489,24 @@ static void __spu_del_from_rq(struct spu
+@@ -468,10 +489,24 @@
}
}
spin_lock(&spu_prio->runq_lock);
prepare_to_wait_exclusive(&ctx->stop_wq, &wait, TASK_INTERRUPTIBLE);
if (!signal_pending(current)) {
-@@ -555,7 +590,7 @@ static struct spu *find_victim(struct sp
+@@ -555,7 +590,7 @@
/*
* Look for a possible preemption candidate on the local node first.
* If there is no candidate look at the other nodes. This isn't
* a strong node affinity. We might want to fine-tune this in
* the future.
*/
-@@ -571,6 +606,7 @@ static struct spu *find_victim(struct sp
+@@ -571,6 +606,7 @@
struct spu_context *tmp = spu->ctx;
if (tmp && tmp->prio > ctx->prio &&
(!victim || tmp->prio > victim->prio))
victim = spu->ctx;
}
-@@ -582,6 +618,10 @@ static struct spu *find_victim(struct sp
+@@ -582,6 +618,10 @@
* higher priority contexts before lower priority
* ones, so this is safe until we introduce
* priority inheritance schemes.
*/
if (!mutex_trylock(&victim->state_mutex)) {
victim = NULL;
-@@ -589,10 +629,10 @@ static struct spu *find_victim(struct sp
+@@ -589,10 +629,10 @@
}
spu = victim->spu;
* restart the search.
*/
mutex_unlock(&victim->state_mutex);
-@@ -607,13 +647,10 @@ static struct spu *find_victim(struct sp
+@@ -607,13 +647,10 @@
victim->stats.invol_ctx_switch++;
spu->stats.invol_ctx_switch++;
return spu;
}
}
-@@ -621,6 +658,50 @@ static struct spu *find_victim(struct sp
+@@ -621,6 +658,50 @@
return NULL;
}
/**
* spu_activate - find a free spu for a context and execute it
* @ctx: spu context to schedule
-@@ -632,39 +713,47 @@ static struct spu *find_victim(struct sp
+@@ -632,39 +713,47 @@
*/
int spu_activate(struct spu_context *ctx, unsigned long flags)
{
}
/**
-@@ -706,21 +795,19 @@ static int __spu_deactivate(struct spu_c
+@@ -706,21 +795,19 @@
if (spu) {
new = grab_runnable_context(max_prio, spu->node);
if (new || force) {
}
return new != NULL;
-@@ -757,43 +844,38 @@ void spu_yield(struct spu_context *ctx)
+@@ -757,43 +844,38 @@
static noinline void spusched_tick(struct spu_context *ctx)
{
}
/**
-@@ -817,35 +899,31 @@ static unsigned long count_active_contex
+@@ -817,35 +899,31 @@
}
/**
}
static int spusched_thread(void *unused)
-@@ -857,17 +935,58 @@ static int spusched_thread(void *unused)
+@@ -857,17 +935,58 @@
set_current_state(TASK_INTERRUPTIBLE);
schedule();
for (node = 0; node < MAX_NUMNODES; node++) {
#define LOAD_INT(x) ((x) >> FSHIFT)
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
-@@ -881,7 +1000,7 @@ static int show_spu_loadavg(struct seq_f
+@@ -881,7 +1000,7 @@
/*
* Note that last_pid doesn't really make much sense for the
* but we include it here to have a 100% compatible interface.
*/
seq_printf(s, "%d.%02d %d.%02d %d.%02d %ld/%d %d\n",
-@@ -922,6 +1041,7 @@ int __init spu_sched_init(void)
+@@ -922,6 +1041,7 @@
spin_lock_init(&spu_prio->runq_lock);
setup_timer(&spusched_timer, spusched_wake, 0);
spusched_task = kthread_run(spusched_thread, NULL, "spusched");
if (IS_ERR(spusched_task)) {
-@@ -929,6 +1049,8 @@ int __init spu_sched_init(void)
+@@ -929,6 +1049,8 @@
goto out_free_spu_prio;
}
entry = create_proc_entry("spu_loadavg", 0, NULL);
if (!entry)
goto out_stop_kthread;
-@@ -954,6 +1076,7 @@ void spu_sched_exit(void)
+@@ -954,6 +1076,7 @@
remove_proc_entry("spu_loadavg", NULL);
del_timer_sync(&spusched_timer);
kthread_stop(spusched_task);
for (node = 0; node < MAX_NUMNODES; node++) {
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/spufs.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/spufs.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/spufs.h
-@@ -71,6 +71,7 @@ struct spu_context {
+--- a/arch/powerpc/platforms/cell/spufs/spufs.h
++++ b/arch/powerpc/platforms/cell/spufs/spufs.h
+@@ -71,6 +71,7 @@
wait_queue_head_t wbox_wq;
wait_queue_head_t stop_wq;
wait_queue_head_t mfc_wq;
struct fasync_struct *ibox_fasync;
struct fasync_struct *wbox_fasync;
struct fasync_struct *mfc_fasync;
-@@ -168,8 +169,10 @@ struct spu_context_ops {
+@@ -168,8 +169,10 @@
void (*npc_write) (struct spu_context * ctx, u32 data);
u32(*status_read) (struct spu_context * ctx);
char*(*get_ls) (struct spu_context * ctx);
void (*master_start) (struct spu_context * ctx);
void (*master_stop) (struct spu_context * ctx);
int (*set_mfc_query)(struct spu_context * ctx, u32 mask, u32 mode);
-@@ -219,15 +222,16 @@ void spu_gang_add_ctx(struct spu_gang *g
+@@ -219,15 +222,16 @@
/* fault handling */
int spufs_handle_class1(struct spu_context *ctx);
}
static inline void spu_release(struct spu_context *ctx)
-@@ -242,10 +246,11 @@ int put_spu_context(struct spu_context *
+@@ -242,10 +246,11 @@
void spu_unmap_mappings(struct spu_context *ctx);
void spu_forget(struct spu_context *ctx);
int spu_activate(struct spu_context *ctx, unsigned long flags);
void spu_deactivate(struct spu_context *ctx);
void spu_yield(struct spu_context *ctx);
-@@ -279,7 +284,9 @@ extern char *isolated_loader;
+@@ -279,7 +284,9 @@
} \
spu_release(ctx); \
schedule(); \
} \
finish_wait(&(wq), &__wait); \
__ret; \
-@@ -306,41 +313,16 @@ struct spufs_coredump_reader {
+@@ -306,41 +313,16 @@
extern struct spufs_coredump_reader spufs_coredump_read[];
extern int spufs_coredump_num_notes;
+ enum spu_utilization_state new_state);
#endif
-Index: linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/switch.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/cell/spufs/switch.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/cell/spufs/switch.c
+--- a/arch/powerpc/platforms/cell/spufs/switch.c
++++ b/arch/powerpc/platforms/cell/spufs/switch.c
@@ -48,6 +48,8 @@
#include <asm/spu_csa.h>
#include <asm/mmu_context.h>
#include "spu_save_dump.h"
#include "spu_restore_dump.h"
-@@ -691,35 +693,9 @@ static inline void resume_mfc_queue(stru
+@@ -691,35 +693,9 @@
out_be64(&priv2->mfc_control_RW, MFC_CNTL_RESUME_DMA_QUEUE);
}
/* Save, Step 47:
* Restore, Step 30.
* If MFC_SR1[R]=1, write 0 to SLB_Invalidate_All
-@@ -735,11 +711,7 @@ static inline void setup_mfc_slbs(struct
+@@ -735,11 +711,7 @@
* translation is desired by OS environment).
*/
spu_invalidate_slbs(spu);
}
static inline void set_switch_active(struct spu_state *csa, struct spu *spu)
-@@ -768,9 +740,9 @@ static inline void enable_interrupts(str
+@@ -768,9 +740,9 @@
* (translation) interrupts.
*/
spin_lock_irq(&spu->register_lock);
spu_int_mask_set(spu, 0, 0ul);
spu_int_mask_set(spu, 1, class1_mask);
spu_int_mask_set(spu, 2, 0ul);
-@@ -927,8 +899,8 @@ static inline void wait_tag_complete(str
+@@ -927,8 +899,8 @@
POLL_WHILE_FALSE(in_be32(&prob->dma_tagstatus_R) & mask);
local_irq_save(flags);
local_irq_restore(flags);
}
-@@ -946,8 +918,8 @@ static inline void wait_spu_stopped(stru
+@@ -946,8 +918,8 @@
POLL_WHILE_TRUE(in_be32(&prob->spu_status_R) & SPU_STATUS_RUNNING);
local_irq_save(flags);
local_irq_restore(flags);
}
-@@ -1423,9 +1395,9 @@ static inline void clear_interrupts(stru
+@@ -1423,9 +1395,9 @@
spu_int_mask_set(spu, 0, 0ul);
spu_int_mask_set(spu, 1, 0ul);
spu_int_mask_set(spu, 2, 0ul);
spin_unlock_irq(&spu->register_lock);
}
-@@ -1866,7 +1838,8 @@ static void save_lscsa(struct spu_state
+@@ -1866,7 +1838,8 @@
*/
resume_mfc_queue(prev, spu); /* Step 46. */
set_switch_active(prev, spu); /* Step 48. */
enable_interrupts(prev, spu); /* Step 49. */
save_ls_16kb(prev, spu); /* Step 50. */
-@@ -1971,7 +1944,8 @@ static void restore_lscsa(struct spu_sta
+@@ -1971,7 +1944,8 @@
setup_spu_status_part1(next, spu); /* Step 27. */
setup_spu_status_part2(next, spu); /* Step 28. */
restore_mfc_rag(next, spu); /* Step 29. */
set_spu_npc(next, spu); /* Step 31. */
set_signot1(next, spu); /* Step 32. */
set_signot2(next, spu); /* Step 33. */
-@@ -2103,10 +2077,6 @@ int spu_save(struct spu_state *prev, str
+@@ -2103,10 +2077,6 @@
int rc;
acquire_spu_lock(spu); /* Step 1. */
rc = __do_spu_save(prev, spu); /* Steps 2-53. */
release_spu_lock(spu);
if (rc != 0 && rc != 2 && rc != 6) {
-@@ -2133,9 +2103,6 @@ int spu_restore(struct spu_state *new, s
+@@ -2133,9 +2103,6 @@
acquire_spu_lock(spu);
harvest(NULL, spu);
spu->slb_replace = 0;
rc = __do_spu_restore(new, spu);
release_spu_lock(spu);
if (rc) {
-@@ -2215,10 +2182,8 @@ int spu_init_csa(struct spu_state *csa)
+@@ -2215,10 +2182,8 @@
return 0;
}
spu_free_lscsa(csa);
}
-EXPORT_SYMBOL_GPL(spu_fini_csa);
-Index: linux-2.6.24.7/arch/powerpc/platforms/celleb/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/celleb/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/celleb/Kconfig
-@@ -2,6 +2,8 @@ config PPC_CELLEB
+--- a/arch/powerpc/platforms/celleb/Kconfig
++++ b/arch/powerpc/platforms/celleb/Kconfig
+@@ -2,6 +2,8 @@
bool "Toshiba's Cell Reference Set 'Celleb' Architecture"
depends on PPC_MULTIPLATFORM && PPC64
select PPC_CELL
select PPC_INDIRECT_IO
select PPC_OF_PLATFORM_PCI
select HAS_TXX9_SERIAL
-Index: linux-2.6.24.7/arch/powerpc/platforms/celleb/io-workarounds.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/celleb/io-workarounds.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/celleb/io-workarounds.c
+--- a/arch/powerpc/platforms/celleb/io-workarounds.c
++++ b/arch/powerpc/platforms/celleb/io-workarounds.c
@@ -22,6 +22,7 @@
#undef DEBUG
#include <linux/of_device.h>
#include <linux/irq.h>
-@@ -222,7 +223,7 @@ void __init celleb_pci_add_one(struct pc
+@@ -222,7 +223,7 @@
void (*dummy_read)(struct pci_controller *))
{
struct celleb_pci_bus *bus = &celleb_pci_busses[celleb_pci_count];
if (celleb_pci_count >= MAX_CELLEB_PCI_BUS) {
printk(KERN_ERR "Too many pci bridges, workarounds"
-@@ -256,13 +257,13 @@ int __init celleb_pci_workaround_init(vo
+@@ -256,13 +257,13 @@
celleb_dummy_page_va = kmalloc(PAGE_SIZE, GFP_KERNEL);
if (!celleb_dummy_page_va) {
match = of_match_node(celleb_pci_workaround_match, node);
if (match) {
-Index: linux-2.6.24.7/arch/powerpc/platforms/celleb/iommu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/celleb/iommu.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/celleb/iommu.c
+--- a/arch/powerpc/platforms/celleb/iommu.c
++++ b/arch/powerpc/platforms/celleb/iommu.c
@@ -22,8 +22,9 @@
#include <linux/init.h>
#include <linux/dma-mapping.h>
#include "beat_wrapper.h"
-@@ -51,6 +52,8 @@ static int __init find_dma_window(u64 *i
+@@ -51,6 +52,8 @@
return 0;
}
static void __init celleb_init_direct_mapping(void)
{
u64 lpar_addr, io_addr;
-@@ -68,7 +71,18 @@ static void __init celleb_init_direct_ma
+@@ -68,7 +71,18 @@
ioid, DMA_FLAGS);
}
}
static int celleb_of_bus_notify(struct notifier_block *nb,
-@@ -80,7 +94,7 @@ static int celleb_of_bus_notify(struct n
+@@ -80,7 +94,7 @@
if (action != BUS_NOTIFY_ADD_DEVICE)
return 0;
return 0;
}
-@@ -91,14 +105,12 @@ static struct notifier_block celleb_of_b
+@@ -91,14 +105,12 @@
static int __init celleb_init_iommu(void)
{
-arch_initcall(celleb_init_iommu);
+machine_arch_initcall(celleb_beat, celleb_init_iommu);
-Index: linux-2.6.24.7/arch/powerpc/platforms/celleb/pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/celleb/pci.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/celleb/pci.c
+--- a/arch/powerpc/platforms/celleb/pci.c
++++ b/arch/powerpc/platforms/celleb/pci.c
@@ -31,6 +31,7 @@
#include <linux/init.h>
#include <linux/bootmem.h>
#include <linux/of_device.h>
#include <asm/io.h>
-@@ -138,8 +139,6 @@ static void celleb_config_read_fake(unsi
+@@ -138,8 +139,6 @@
*val = celleb_fake_config_readl(p);
break;
}
}
static void celleb_config_write_fake(unsigned char *config, int where,
-@@ -158,7 +157,6 @@ static void celleb_config_write_fake(uns
+@@ -158,7 +157,6 @@
celleb_fake_config_writel(val, p);
break;
}
}
static int celleb_fake_pci_read_config(struct pci_bus *bus,
-@@ -351,6 +349,10 @@ static int __init celleb_setup_fake_pci_
+@@ -351,6 +349,10 @@
wi1 = of_get_property(node, "vendor-id", NULL);
wi2 = of_get_property(node, "class-code", NULL);
wi3 = of_get_property(node, "revision-id", NULL);
celleb_config_write_fake(*config, PCI_DEVICE_ID, 2, wi0[0] & 0xffff);
celleb_config_write_fake(*config, PCI_VENDOR_ID, 2, wi1[0] & 0xffff);
-@@ -372,6 +374,10 @@ static int __init celleb_setup_fake_pci_
+@@ -372,6 +374,10 @@
celleb_setup_pci_base_addrs(hose, devno, fn, num_base_addr);
li = of_get_property(node, "interrupts", &rlen);
val = li[0];
celleb_config_write_fake(*config, PCI_INTERRUPT_PIN, 1, 1);
celleb_config_write_fake(*config, PCI_INTERRUPT_LINE, 1, val);
-@@ -475,7 +481,7 @@ static struct of_device_id celleb_phb_ma
+@@ -475,7 +481,7 @@
int __init celleb_setup_phb(struct pci_controller *phb)
{
const struct of_device_id *match;
int (*setup_func)(struct device_node *, struct pci_controller *);
-Index: linux-2.6.24.7/arch/powerpc/platforms/celleb/scc_epci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/celleb/scc_epci.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/celleb/scc_epci.c
-@@ -95,7 +95,7 @@ void __init epci_workaround_init(struct
+--- a/arch/powerpc/platforms/celleb/scc_epci.c
++++ b/arch/powerpc/platforms/celleb/scc_epci.c
+@@ -95,7 +95,7 @@
private->dummy_page_da = dma_map_single(hose->parent,
celleb_dummy_page_va, PAGE_SIZE, DMA_FROM_DEVICE);
if (private->dummy_page_da == DMA_ERROR_CODE) {
"Map dummy page failed.\n");
return;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/celleb/scc_uhc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/celleb/scc_uhc.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/celleb/scc_uhc.c
-@@ -47,7 +47,8 @@ static void enable_scc_uhc(struct pci_de
+--- a/arch/powerpc/platforms/celleb/scc_uhc.c
++++ b/arch/powerpc/platforms/celleb/scc_uhc.c
+@@ -47,7 +47,8 @@
u32 val = 0;
int i;
return;
uhc_base = ioremap(pci_resource_start(dev, 0),
-Index: linux-2.6.24.7/arch/powerpc/platforms/celleb/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/celleb/setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/celleb/setup.c
+--- a/arch/powerpc/platforms/celleb/setup.c
++++ b/arch/powerpc/platforms/celleb/setup.c
@@ -40,6 +40,7 @@
#include <linux/seq_file.h>
#include <linux/root_dev.h>
static char celleb_machine_type[128] = "Celleb";
-@@ -88,61 +93,122 @@ static void celleb_progress(char *s, uns
+@@ -88,61 +93,122 @@
printk("*** %04x : %s\n", hex, s ? s : "");
}
.show_cpuinfo = celleb_show_cpuinfo,
.restart = beat_restart,
.power_off = beat_power_off,
-@@ -167,3 +233,26 @@ define_machine(celleb) {
+@@ -167,3 +233,26 @@
.machine_crash_shutdown = default_machine_crash_shutdown,
#endif
};
+ .machine_crash_shutdown = default_machine_crash_shutdown,
+#endif
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/chrp/pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/chrp/pci.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/chrp/pci.c
-@@ -198,7 +198,7 @@ static void __init setup_peg2(struct pci
+--- a/arch/powerpc/platforms/chrp/pci.c
++++ b/arch/powerpc/platforms/chrp/pci.c
+@@ -198,7 +198,7 @@
printk ("RTAS supporting Pegasos OF not found, please upgrade"
" your firmware\n");
}
/* keep the reference to the root node */
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/chrp/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/chrp/setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/chrp/setup.c
-@@ -115,7 +115,7 @@ void chrp_show_cpuinfo(struct seq_file *
+--- a/arch/powerpc/platforms/chrp/setup.c
++++ b/arch/powerpc/platforms/chrp/setup.c
+@@ -115,7 +115,7 @@
seq_printf(m, "machine\t\t: CHRP %s\n", model);
/* longtrail (goldengate) stuff */
/* VLSI VAS96011/12 `Golden Gate 2' */
/* Memory banks */
sdramen = (in_le32(gg2_pci_config_base + GG2_PCI_DRAM_CTRL)
-@@ -203,15 +203,20 @@ static void __init sio_fixup_irq(const c
+@@ -203,15 +203,20 @@
static void __init sio_init(void)
{
struct device_node *root;
of_node_put(root);
}
-@@ -251,6 +256,57 @@ static void briq_restart(char *cmd)
+@@ -251,6 +256,57 @@
for(;;);
}
void __init chrp_setup_arch(void)
{
struct device_node *root = of_find_node_by_path("/");
-@@ -594,6 +650,7 @@ define_machine(chrp) {
+@@ -594,6 +650,7 @@
.probe = chrp_probe,
.setup_arch = chrp_setup_arch,
.init = chrp_init2,
.show_cpuinfo = chrp_show_cpuinfo,
.init_IRQ = chrp_init_IRQ,
.restart = rtas_restart,
-Index: linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/embedded6xx/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/Kconfig
-@@ -9,6 +9,8 @@ config LINKSTATION
+--- a/arch/powerpc/platforms/embedded6xx/Kconfig
++++ b/arch/powerpc/platforms/embedded6xx/Kconfig
+@@ -9,6 +9,8 @@
select FSL_SOC
select PPC_UDBG_16550 if SERIAL_8250
select DEFAULT_UIMAGE
help
Select LINKSTATION if configuring for one of PPC- (MPC8241)
based NAS systems from Buffalo Technology. So far only
-@@ -16,6 +18,19 @@ config LINKSTATION
+@@ -16,6 +18,19 @@
Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based
Terastation systems should be supported too.
config MPC7448HPC2
bool "Freescale MPC7448HPC2(Taiga)"
depends on EMBEDDED6xx
-@@ -23,6 +38,7 @@ config MPC7448HPC2
+@@ -23,6 +38,7 @@
select DEFAULT_UIMAGE
select PPC_UDBG_16550
select WANT_DEVICE_TREE
help
Select MPC7448HPC2 if configuring for Freescale MPC7448HPC2 (Taiga)
platform
-@@ -33,6 +49,7 @@ config PPC_HOLLY
+@@ -33,6 +49,7 @@
select TSI108_BRIDGE
select PPC_UDBG_16550
select WANT_DEVICE_TREE
help
Select PPC_HOLLY if configuring for an IBM 750GX/CL Eval
Board with TSI108/9 bridge (Hickory/Holly)
-@@ -48,17 +65,13 @@ config PPC_PRPMC2800
+@@ -48,17 +65,13 @@
config TSI108_BRIDGE
bool
config MV64X60
bool
-@@ -67,8 +80,6 @@ config MV64X60
+@@ -67,8 +80,6 @@
config MPC10X_OPENPIC
bool
config MPC10X_STORE_GATHERING
bool "Enable MPC10x store gathering"
-Index: linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/embedded6xx/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/Makefile
+--- a/arch/powerpc/platforms/embedded6xx/Makefile
++++ b/arch/powerpc/platforms/embedded6xx/Makefile
@@ -3,5 +3,6 @@
#
obj-$(CONFIG_MPC7448HPC2) += mpc7448_hpc2.o
+obj-$(CONFIG_STORCENTER) += storcenter.o
obj-$(CONFIG_PPC_HOLLY) += holly.o
obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/holly.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/embedded6xx/holly.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/holly.c
+--- a/arch/powerpc/platforms/embedded6xx/holly.c
++++ b/arch/powerpc/platforms/embedded6xx/holly.c
@@ -20,12 +20,12 @@
#include <linux/console.h>
#include <linux/delay.h>
#undef DEBUG
-Index: linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+--- a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
++++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
@@ -53,8 +53,6 @@
#define MPC7448HPC2_PCI_CFG_PHYS 0xfb000000
int mpc7448_hpc2_exclude_device(struct pci_controller *hose,
u_char bus, u_char devfn)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/storcenter.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/platforms/embedded6xx/storcenter.c
++++ b/arch/powerpc/platforms/embedded6xx/storcenter.c
@@ -0,0 +1,192 @@
+/*
+ * Board setup routines for the storcenter
+ .restart = storcenter_restart,
+ .calibrate_decr = generic_calibrate_decr,
+};
-Index: linux-2.6.24.7/arch/powerpc/platforms/iseries/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/iseries/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/iseries/Makefile
-@@ -5,7 +5,7 @@ extra-y += dt.o
+--- a/arch/powerpc/platforms/iseries/Makefile
++++ b/arch/powerpc/platforms/iseries/Makefile
+@@ -5,7 +5,7 @@
obj-y += exception.o
obj-y += hvlog.o hvlpconfig.o lpardata.o setup.o dt_mod.o mf.o lpevents.o \
hvcall.o proc.o htab.o iommu.o misc.o irq.o
obj-$(CONFIG_SMP) += smp.o
obj-$(CONFIG_VIOPATH) += viopath.o vio.o
obj-$(CONFIG_MODULES) += ksyms.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/iseries/iommu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/iseries/iommu.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/iseries/iommu.c
-@@ -163,8 +163,10 @@ static struct iommu_table *iommu_table_f
+--- a/arch/powerpc/platforms/iseries/iommu.c
++++ b/arch/powerpc/platforms/iseries/iommu.c
+@@ -163,8 +163,10 @@
(it->it_type == TCE_PCI) &&
(it->it_offset == tbl->it_offset) &&
(it->it_index == tbl->it_index) &&
}
return NULL;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/iseries/lpevents.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/iseries/lpevents.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/iseries/lpevents.c
-@@ -239,7 +239,7 @@ int HvLpEvent_unregisterHandler(HvLpEven
+--- a/arch/powerpc/platforms/iseries/lpevents.c
++++ b/arch/powerpc/platforms/iseries/lpevents.c
+@@ -239,7 +239,7 @@
* other CPUs, and that the deleted handler isn't
* still running on another CPU when we return.
*/
return 0;
}
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/iseries/pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/iseries/pci.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/iseries/pci.c
+--- a/arch/powerpc/platforms/iseries/pci.c
++++ b/arch/powerpc/platforms/iseries/pci.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2001 Allan Trautman, IBM Corporation
/*
* Table defines
-@@ -62,6 +62,7 @@ static struct pci_ops iSeries_pci_ops;
+@@ -62,6 +62,7 @@
#define IOMM_TABLE_MAX_ENTRIES 1024
#define IOMM_TABLE_ENTRY_SIZE 0x0000000000400000UL
#define BASE_IO_MEMORY 0xE000000000000000UL
static unsigned long max_io_memory = BASE_IO_MEMORY;
static long current_iomm_table_entry;
-@@ -70,12 +71,237 @@ static long current_iomm_table_entry;
+@@ -70,12 +71,237 @@
* Lookup Tables.
*/
static struct device_node *iomm_table[IOMM_TABLE_MAX_ENTRIES];
* iomm_table_allocate_entry
*
* Adds pci_dev entry in address translation table
-@@ -87,7 +313,7 @@ static DEFINE_SPINLOCK(iomm_table_lock);
+@@ -87,7 +313,7 @@
* - CurrentIndex is incremented to keep track of the last entry.
* - Builds the resource entry for allocated BARs.
*/
{
struct resource *bar_res = &dev->resource[bar_num];
long bar_size = pci_resource_len(dev, bar_num);
-@@ -101,7 +327,6 @@ static void iomm_table_allocate_entry(st
+@@ -101,7 +327,6 @@
* Set Resource values.
*/
spin_lock(&iomm_table_lock);
bar_res->start = BASE_IO_MEMORY +
IOMM_TABLE_ENTRY_SIZE * current_iomm_table_entry;
bar_res->end = bar_res->start + bar_size - 1;
-@@ -110,7 +335,8 @@ static void iomm_table_allocate_entry(st
+@@ -110,7 +335,8 @@
*/
while (bar_size > 0 ) {
iomm_table[current_iomm_table_entry] = dev->sysdata;
bar_size -= IOMM_TABLE_ENTRY_SIZE;
++current_iomm_table_entry;
}
-@@ -130,7 +356,7 @@ static void iomm_table_allocate_entry(st
+@@ -130,7 +356,7 @@
* - Loops through The Bar resources(0 - 5) including the ROM
* is resource(6).
*/
{
int bar_num;
-@@ -145,79 +371,19 @@ static void allocate_device_bars(struct
+@@ -145,79 +371,19 @@
* PCI: Read Vendor Failed 0x18.58.10 Rc: 0x00xx
* PCI: Connect Bus Unit Failed 0x18.58.10 Rc: 0x00xx
*/
{
struct device_node *node;
-@@ -230,22 +396,66 @@ static struct device_node *find_Device_N
+@@ -230,22 +396,66 @@
return NULL;
}
/*
* Config space read and write functions.
-@@ -269,7 +479,7 @@ static u64 hv_cfg_write_func[4] = {
+@@ -269,7 +479,7 @@
static int iSeries_pci_read_config(struct pci_bus *bus, unsigned int devfn,
int offset, int size, u32 *val)
{
u64 fn;
struct HvCallPci_LoadReturn ret;
-@@ -299,7 +509,7 @@ static int iSeries_pci_read_config(struc
+@@ -299,7 +509,7 @@
static int iSeries_pci_write_config(struct pci_bus *bus, unsigned int devfn,
int offset, int size, u32 val)
{
u64 fn;
u64 ret;
-@@ -331,22 +541,22 @@ static struct pci_ops iSeries_pci_ops =
+@@ -331,22 +541,22 @@
* PCI: Device 23.90 ReadL Retry( 1)
* PCI: Device 23.90 ReadL Retry Successful(1)
*/
mf_display_src(0xB6000103);
panic_timeout = 0;
panic("PCI: Hardware I/O Error, SRC B6000103, "
-@@ -363,28 +573,39 @@ static int CheckReturnCode(char *TextHdr
+@@ -363,28 +573,39 @@
* the exposure of being device global.
*/
static inline struct device_node *xlate_iomm_address(
}
/*
-@@ -392,91 +613,58 @@ static inline struct device_node *xlate_
+@@ -392,91 +613,58 @@
* On MM I/O error, all ones are returned and iSeries_pci_IoError is cal
* else, data is returned in Big Endian format.
*/
return ret.value;
}
-@@ -485,134 +673,72 @@ static u32 iSeries_Read_Long(const volat
+@@ -485,134 +673,72 @@
* Write MM I/O Instructions for the iSeries
*
*/
}
static void iseries_readsb(const volatile void __iomem *addr, void *buf,
-@@ -620,7 +746,7 @@ static void iseries_readsb(const volatil
+@@ -620,7 +746,7 @@
{
u8 *dst = buf;
while(count-- > 0)
}
static void iseries_readsw(const volatile void __iomem *addr, void *buf,
-@@ -628,7 +754,7 @@ static void iseries_readsw(const volatil
+@@ -628,7 +754,7 @@
{
u16 *dst = buf;
while(count-- > 0)
}
static void iseries_readsl(const volatile void __iomem *addr, void *buf,
-@@ -636,7 +762,7 @@ static void iseries_readsl(const volatil
+@@ -636,7 +762,7 @@
{
u32 *dst = buf;
while(count-- > 0)
}
static void iseries_writesb(volatile void __iomem *addr, const void *buf,
-@@ -644,7 +770,7 @@ static void iseries_writesb(volatile voi
+@@ -644,7 +770,7 @@
{
const u8 *src = buf;
while(count-- > 0)
}
static void iseries_writesw(volatile void __iomem *addr, const void *buf,
-@@ -652,7 +778,7 @@ static void iseries_writesw(volatile voi
+@@ -652,7 +778,7 @@
{
const u16 *src = buf;
while(count-- > 0)
}
static void iseries_writesl(volatile void __iomem *addr, const void *buf,
-@@ -660,7 +786,7 @@ static void iseries_writesl(volatile voi
+@@ -660,7 +786,7 @@
{
const u32 *src = buf;
while(count-- > 0)
}
static void iseries_memset_io(volatile void __iomem *addr, int c,
-@@ -669,7 +795,7 @@ static void iseries_memset_io(volatile v
+@@ -669,7 +795,7 @@
volatile char __iomem *d = addr;
while (n-- > 0)
}
static void iseries_memcpy_fromio(void *dest, const volatile void __iomem *src,
-@@ -679,7 +805,7 @@ static void iseries_memcpy_fromio(void *
+@@ -679,7 +805,7 @@
const volatile char __iomem *s = src;
while (n-- > 0)
}
static void iseries_memcpy_toio(volatile void __iomem *dest, const void *src,
-@@ -689,7 +815,7 @@ static void iseries_memcpy_toio(volatile
+@@ -689,7 +815,7 @@
volatile char __iomem *d = dest;
while (n-- > 0)
}
/* We only set MMIO ops. The default PIO ops will be default
-@@ -742,6 +868,8 @@ void __init iSeries_pcibios_init(void)
+@@ -742,6 +868,8 @@
/* Install IO hooks */
ppc_pci_io = iseries_pci_io;
/* iSeries has no IO space in the common sense, it needs to set
* the IO base to 0
*/
-@@ -767,11 +895,21 @@ void __init iSeries_pcibios_init(void)
+@@ -767,11 +895,21 @@
phb = pcibios_alloc_controller(node);
if (phb == NULL)
continue;
}
of_node_put(root);
-Index: linux-2.6.24.7/arch/powerpc/platforms/iseries/pci.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/iseries/pci.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/iseries/pci.h
+--- a/arch/powerpc/platforms/iseries/pci.h
++++ b/arch/powerpc/platforms/iseries/pci.h
@@ -30,10 +30,6 @@
* End Change Activity
*/
/*
* Decodes Linux DevFn to iSeries DevFn, bridge device, or function.
* For Linux, see PCI_SLOT and PCI_FUNC in include/linux/pci.h
-@@ -47,17 +43,16 @@ struct pci_dev; /* For Forward Refere
+@@ -47,17 +43,16 @@
#define ISERIES_GET_DEVICE_FROM_SUBBUS(subbus) ((subbus >> 5) & 0x7)
#define ISERIES_GET_FUNCTION_FROM_SUBBUS(subbus) ((subbus >> 2) & 0x7)
+#endif
#endif /* _PLATFORMS_ISERIES_PCI_H */
-Index: linux-2.6.24.7/arch/powerpc/platforms/iseries/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/iseries/setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/iseries/setup.c
+--- a/arch/powerpc/platforms/iseries/setup.c
++++ b/arch/powerpc/platforms/iseries/setup.c
@@ -63,6 +63,7 @@
#include "main_store.h"
#include "call_sm.h"
struct MemoryBlock {
-@@ -112,13 +108,13 @@ static unsigned long iSeries_process_Con
+@@ -112,13 +108,13 @@
* correctly.
*/
mb_array[0].logicalStart = 0;
holeStart = addr_to_chunk(holeStart);
holeFirstChunk = holeStart;
holeSize = addr_to_chunk(holeSize);
-@@ -128,9 +124,9 @@ static unsigned long iSeries_process_Con
+@@ -128,9 +124,9 @@
mb_array[0].logicalEnd = holeFirstChunk;
mb_array[0].absEnd = holeFirstChunk;
mb_array[1].logicalStart = holeFirstChunk;
}
return numMemoryBlocks;
}
-@@ -234,9 +230,9 @@ static unsigned long iSeries_process_Reg
+@@ -234,9 +230,9 @@
mb_array[i].logicalEnd,
mb_array[i].absStart, mb_array[i].absEnd);
mb_array[i].absStart = addr_to_chunk(mb_array[i].absStart &
mb_array[i].logicalStart =
addr_to_chunk(mb_array[i].logicalStart);
mb_array[i].logicalEnd = addr_to_chunk(mb_array[i].logicalEnd);
-@@ -320,7 +316,7 @@ struct mschunks_map mschunks_map = {
+@@ -320,7 +316,7 @@
};
EXPORT_SYMBOL(mschunks_map);
{
klimit = _ALIGN(klimit, sizeof(u32));
mschunks_map.mapping = (u32 *)klimit;
-@@ -499,6 +495,8 @@ static void __init iSeries_setup_arch(vo
+@@ -499,6 +495,8 @@
itVpdAreas.xSlicMaxLogicalProcs);
printk("Max physical processors = %d\n",
itVpdAreas.xSlicMaxPhysicalProcs);
}
static void iSeries_show_cpuinfo(struct seq_file *m)
-@@ -641,24 +639,25 @@ static int __init iseries_probe(void)
+@@ -641,24 +639,25 @@
}
define_machine(iseries) {
/* XXX Implement enable_pmcs for iSeries */
};
-Index: linux-2.6.24.7/arch/powerpc/platforms/iseries/setup.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/iseries/setup.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/iseries/setup.h
+--- a/arch/powerpc/platforms/iseries/setup.h
++++ b/arch/powerpc/platforms/iseries/setup.h
@@ -17,6 +17,7 @@
#ifndef __ISERIES_SETUP_H__
#define __ISERIES_SETUP_H__
extern unsigned long iSeries_get_boot_time(void);
extern int iSeries_set_rtc_time(struct rtc_time *tm);
extern void iSeries_get_rtc_time(struct rtc_time *tm);
-Index: linux-2.6.24.7/arch/powerpc/platforms/iseries/vpdinfo.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/iseries/vpdinfo.c
+--- a/arch/powerpc/platforms/iseries/vpdinfo.c
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- card, (int)(PciDev->class >> 8));
- }
-}
-Index: linux-2.6.24.7/arch/powerpc/platforms/maple/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/maple/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/maple/Kconfig
+--- a/arch/powerpc/platforms/maple/Kconfig
++++ b/arch/powerpc/platforms/maple/Kconfig
@@ -1,6 +1,7 @@
config PPC_MAPLE
depends on PPC_MULTIPLATFORM && PPC64
select MPIC
select U3_DART
select MPIC_U3_HT_IRQS
-Index: linux-2.6.24.7/arch/powerpc/platforms/maple/pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/maple/pci.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/maple/pci.c
-@@ -558,7 +558,7 @@ void __init maple_pci_init(void)
+--- a/arch/powerpc/platforms/maple/pci.c
++++ b/arch/powerpc/platforms/maple/pci.c
+@@ -558,7 +558,7 @@
* safe assumptions hopefully.
*/
if (u3_agp) {
PCI_DN(np)->busno = 0xf0;
for (np = np->child; np; np = np->sibling)
PCI_DN(np)->busno = 0xf0;
-Index: linux-2.6.24.7/arch/powerpc/platforms/maple/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/maple/setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/maple/setup.c
+--- a/arch/powerpc/platforms/maple/setup.c
++++ b/arch/powerpc/platforms/maple/setup.c
@@ -42,6 +42,7 @@
#include <linux/serial.h>
#include <linux/smp.h>
#include <asm/lmb.h>
#include <asm/mpic.h>
#include <asm/rtas.h>
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/pasemi/Kconfig
-@@ -3,6 +3,7 @@ config PPC_PASEMI
+--- a/arch/powerpc/platforms/pasemi/Kconfig
++++ b/arch/powerpc/platforms/pasemi/Kconfig
+@@ -3,6 +3,7 @@
bool "PA Semi SoC-based platforms"
default n
select MPIC
select PPC_UDBG_16550
select PPC_NATIVE
select MPIC_BROKEN_REGREAD
-@@ -17,7 +18,7 @@ config PPC_PASEMI_IOMMU
+@@ -17,7 +18,7 @@
bool "PA Semi IOMMU support"
depends on PPC_PASEMI
help
config PPC_PASEMI_IOMMU_DMA_FORCE
bool "Force DMA engine to use IOMMU"
-@@ -36,13 +37,4 @@ config PPC_PASEMI_MDIO
+@@ -36,13 +37,4 @@
help
Driver for MDIO via GPIO on PWRficient platforms
- interface.
-
endmenu
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/Makefile
-+++ linux-2.6.24.7/arch/powerpc/platforms/pasemi/Makefile
+--- a/arch/powerpc/platforms/pasemi/Makefile
++++ b/arch/powerpc/platforms/pasemi/Makefile
@@ -1,4 +1,3 @@
obj-y += setup.o pci.o time.o idle.o powersave.o iommu.o
obj-$(CONFIG_PPC_PASEMI_MDIO) += gpio_mdio.o
-obj-$(CONFIG_ELECTRA_IDE) += electra_ide.o
obj-$(CONFIG_PPC_PASEMI_CPUFREQ) += cpufreq.o
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/cpufreq.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/cpufreq.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pasemi/cpufreq.c
+--- a/arch/powerpc/platforms/pasemi/cpufreq.c
++++ b/arch/powerpc/platforms/pasemi/cpufreq.c
@@ -32,6 +32,7 @@
#include <asm/io.h>
#include <asm/prom.h>
#define SDCASR_REG 0x0100
#define SDCASR_REG_STRIDE 0x1000
-@@ -124,6 +125,11 @@ static void set_astate(int cpu, unsigned
+@@ -124,6 +125,11 @@
local_irq_restore(flags);
}
void restore_astate(int cpu)
{
set_astate(cpu, current_astate);
-@@ -147,7 +153,10 @@ static int pas_cpufreq_cpu_init(struct c
+@@ -147,7 +153,10 @@
if (!cpu)
goto out;
if (!dn)
goto out;
err = of_address_to_resource(dn, 0, &res);
-@@ -160,7 +169,10 @@ static int pas_cpufreq_cpu_init(struct c
+@@ -160,7 +169,10 @@
goto out;
}
if (!dn) {
err = -ENODEV;
goto out_unmap_sdcasr;
-@@ -292,7 +304,8 @@ static struct cpufreq_driver pas_cpufreq
+@@ -292,7 +304,8 @@
static int __init pas_cpufreq_init(void)
{
return -ENODEV;
return cpufreq_register_driver(&pas_cpufreq_driver);
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/electra_ide.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/electra_ide.c
+--- a/arch/powerpc/platforms/pasemi/electra_ide.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR ("Olof Johansson <olof@lixom.net>");
-MODULE_DESCRIPTION("PA Semi Electra IDE driver");
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/gpio_mdio.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/gpio_mdio.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pasemi/gpio_mdio.c
+--- a/arch/powerpc/platforms/pasemi/gpio_mdio.c
++++ b/arch/powerpc/platforms/pasemi/gpio_mdio.c
@@ -30,7 +30,7 @@
#include <linux/interrupt.h>
#include <linux/phy.h>
#define DELAY 1
-@@ -218,45 +218,27 @@ static int __devinit gpio_mdio_probe(str
+@@ -218,45 +218,27 @@
const struct of_device_id *match)
{
struct device *dev = &ofdev->dev;
prop = of_get_property(np, "reg", NULL);
new_bus->id = *prop;
-@@ -265,9 +247,24 @@ static int __devinit gpio_mdio_probe(str
+@@ -265,9 +247,24 @@
new_bus->phy_mask = 0;
new_bus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL);
prop = of_get_property(np, "mdc-pin", NULL);
priv->mdc_pin = *prop;
-@@ -280,17 +277,21 @@ static int __devinit gpio_mdio_probe(str
+@@ -280,17 +277,21 @@
err = mdiobus_register(new_bus);
return err;
}
-@@ -317,6 +318,7 @@ static struct of_device_id gpio_mdio_mat
+@@ -317,6 +318,7 @@
},
{},
};
static struct of_platform_driver gpio_mdio_driver =
{
-@@ -330,12 +332,32 @@ static struct of_platform_driver gpio_md
+@@ -330,12 +332,32 @@
int gpio_mdio_init(void)
{
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Olof Johansson <olof@lixom.net>");
+MODULE_DESCRIPTION("Driver for MDIO over GPIO on PA Semi PWRficient-based boards");
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/idle.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/idle.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pasemi/idle.c
-@@ -74,9 +74,6 @@ static int pasemi_system_reset_exception
+--- a/arch/powerpc/platforms/pasemi/idle.c
++++ b/arch/powerpc/platforms/pasemi/idle.c
+@@ -74,9 +74,6 @@
static int __init pasemi_idle_init(void)
{
#ifndef CONFIG_PPC_PASEMI_CPUFREQ
printk(KERN_WARNING "No cpufreq driver, powersavings modes disabled\n");
current_mode = 0;
-@@ -88,7 +85,7 @@ static int __init pasemi_idle_init(void)
+@@ -88,7 +85,7 @@
return 0;
}
static int __init idle_param(char *p)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/pasemi.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/pasemi.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/pasemi/pasemi.h
-@@ -16,8 +16,14 @@ extern void idle_doze(void);
+--- a/arch/powerpc/platforms/pasemi/pasemi.h
++++ b/arch/powerpc/platforms/pasemi/pasemi.h
+@@ -16,8 +16,14 @@
/* Restore astate to last set */
#ifdef CONFIG_PPC_PASEMI_CPUFREQ
static inline void restore_astate(int cpu)
{
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/powersave.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/powersave.S
-+++ linux-2.6.24.7/arch/powerpc/platforms/pasemi/powersave.S
-@@ -62,7 +62,16 @@ sleep_common:
+--- a/arch/powerpc/platforms/pasemi/powersave.S
++++ b/arch/powerpc/platforms/pasemi/powersave.S
+@@ -62,7 +62,16 @@
mflr r0
std r0, 16(r1)
stdu r1,-64(r1)
LOAD_REG_IMMEDIATE(r6,MSR_DR|MSR_IR|MSR_ME|MSR_EE)
mfmsr r4
andc r5,r4,r6
-@@ -73,7 +82,7 @@ sleep_common:
+@@ -73,7 +82,7 @@
mtmsrd r4,0
ld r0,16(r1)
mtlr r0
blr
-Index: linux-2.6.24.7/arch/powerpc/platforms/pasemi/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pasemi/setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pasemi/setup.c
+--- a/arch/powerpc/platforms/pasemi/setup.c
++++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -27,6 +27,7 @@
#include <linux/delay.h>
#include <linux/console.h>
/* SDC reset register, must be pre-mapped at reset time */
static void __iomem *reset_reg;
-@@ -56,10 +61,14 @@ struct mce_regs {
+@@ -56,10 +61,14 @@
static struct mce_regs mce_regs[MAX_MCE_REGS];
static int num_mce_regs;
printk("Restarting...\n");
while (1)
out_le32(reset_reg, 0x6000000);
-@@ -126,9 +135,6 @@ static int __init pas_setup_mce_regs(voi
+@@ -126,9 +135,6 @@
struct pci_dev *dev;
int reg;
/* Remap various SoC status registers for use by the MCE handler */
reg = 0;
-@@ -172,7 +178,7 @@ static int __init pas_setup_mce_regs(voi
+@@ -172,7 +178,7 @@
return 0;
}
static __init void pas_init_IRQ(void)
{
-@@ -181,6 +187,8 @@ static __init void pas_init_IRQ(void)
+@@ -181,6 +187,8 @@
unsigned long openpic_addr;
const unsigned int *opprop;
int naddr, opplen;
struct mpic *mpic;
mpic_node = NULL;
-@@ -213,13 +221,26 @@ static __init void pas_init_IRQ(void)
+@@ -213,13 +221,26 @@
openpic_addr = of_read_number(opprop, naddr);
printk(KERN_DEBUG "OpenPIC addr: %lx\n", openpic_addr);
of_node_put(mpic_node);
of_node_put(root);
}
-@@ -239,6 +260,14 @@ static int pas_machine_check_handler(str
+@@ -239,6 +260,14 @@
srr0 = regs->nip;
srr1 = regs->msr;
dsisr = mfspr(SPRN_DSISR);
printk(KERN_ERR "Machine Check on CPU %d\n", cpu);
printk(KERN_ERR "SRR0 0x%016lx SRR1 0x%016lx\n", srr0, srr1);
-@@ -295,14 +324,14 @@ static int pas_machine_check_handler(str
+@@ -295,14 +324,14 @@
int i;
printk(KERN_ERR "slb contents:\n");
/* SRR1[62] is from MSR[62] if recoverable, so pass that back */
return !!(srr1 & 0x2);
}
-@@ -362,16 +391,17 @@ static inline void pasemi_pcmcia_init(vo
+@@ -362,16 +391,17 @@
static struct of_device_id pasemi_bus_ids[] = {
pasemi_pcmcia_init();
/* Publish OF platform devices for SDC and other non-PCI devices */
-@@ -379,7 +409,7 @@ static int __init pasemi_publish_devices
+@@ -379,7 +409,7 @@
return 0;
}
/*
-@@ -389,7 +419,8 @@ static int __init pas_probe(void)
+@@ -389,7 +419,8 @@
{
unsigned long root = of_get_flat_dt_root();
return 0;
hpte_init_native();
-@@ -400,7 +431,7 @@ static int __init pas_probe(void)
+@@ -400,7 +431,7 @@
}
define_machine(pasemi) {
.probe = pas_probe,
.setup_arch = pas_setup_arch,
.init_early = pas_init_early,
-Index: linux-2.6.24.7/arch/powerpc/platforms/powermac/low_i2c.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/powermac/low_i2c.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/powermac/low_i2c.c
-@@ -585,8 +585,7 @@ static void __init kw_i2c_probe(void)
+--- a/arch/powerpc/platforms/powermac/low_i2c.c
++++ b/arch/powerpc/platforms/powermac/low_i2c.c
+@@ -585,8 +585,7 @@
struct device_node *np, *child, *parent;
/* Probe keywest-i2c busses */
struct pmac_i2c_host_kw *host;
int multibus, chans, i;
-@@ -1462,9 +1461,6 @@ int __init pmac_i2c_init(void)
+@@ -1462,9 +1461,6 @@
return 0;
i2c_inited = 1;
/* Probe keywest-i2c busses */
kw_i2c_probe();
-@@ -1483,7 +1479,7 @@ int __init pmac_i2c_init(void)
+@@ -1483,7 +1479,7 @@
return 0;
}
/* Since pmac_i2c_init can be called too early for the platform device
* registration, we need to do it at a later time. In our case, subsys
-@@ -1515,4 +1511,4 @@ static int __init pmac_i2c_create_platfo
+@@ -1515,4 +1511,4 @@
return 0;
}
-subsys_initcall(pmac_i2c_create_platform_devices);
+machine_subsys_initcall(powermac, pmac_i2c_create_platform_devices);
-Index: linux-2.6.24.7/arch/powerpc/platforms/powermac/pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/powermac/pci.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/powermac/pci.c
+--- a/arch/powerpc/platforms/powermac/pci.c
++++ b/arch/powerpc/platforms/powermac/pci.c
@@ -40,8 +40,6 @@
static int has_uninorth;
#ifdef CONFIG_PPC64
#else
static int has_second_ohare;
#endif /* CONFIG_PPC64 */
-@@ -314,12 +312,15 @@ static int u3_ht_skip_device(struct pci_
+@@ -314,12 +312,15 @@
/* We only allow config cycles to devices that are in OF device-tree
* as we are apparently having some weird things going on with some
for (dn = busdn->child; dn; dn = dn->sibling)
if (PCI_DN(dn) && PCI_DN(dn)->devfn == devfn)
break;
-@@ -344,14 +345,15 @@ static int u3_ht_skip_device(struct pci_
+@@ -344,14 +345,15 @@
+ (((unsigned int)bus) << 16) \
+ 0x01000000UL)
} else
return hose->cfg_data + U3_HT_CFA1(bus, devfn, offset);
}
-@@ -360,14 +362,15 @@ static int u3_ht_read_config(struct pci_
+@@ -360,14 +362,15 @@
int offset, int len, u32 *val)
{
struct pci_controller *hose;
if (!addr)
return PCIBIOS_DEVICE_NOT_FOUND;
-@@ -397,10 +400,10 @@ static int u3_ht_read_config(struct pci_
+@@ -397,10 +400,10 @@
*val = in_8(addr);
break;
case 2:
break;
}
return PCIBIOS_SUCCESSFUL;
-@@ -410,14 +413,15 @@ static int u3_ht_write_config(struct pci
+@@ -410,14 +413,15 @@
int offset, int len, u32 val)
{
struct pci_controller *hose;
if (!addr)
return PCIBIOS_DEVICE_NOT_FOUND;
-@@ -439,10 +443,10 @@ static int u3_ht_write_config(struct pci
+@@ -439,10 +443,10 @@
out_8(addr, val);
break;
case 2:
break;
}
return PCIBIOS_SUCCESSFUL;
-@@ -725,7 +729,7 @@ static void __init setup_bandit(struct p
+@@ -725,7 +729,7 @@
static int __init setup_uninorth(struct pci_controller *hose,
struct resource *addr)
{
has_uninorth = 1;
hose->ops = ¯isc_pci_ops;
hose->cfg_addr = ioremap(addr->start + 0x800000, 0x1000);
-@@ -773,31 +777,72 @@ static void __init setup_u4_pcie(struct
+@@ -773,31 +777,72 @@
*/
hose->first_busno = 0x00;
hose->last_busno = 0xff;
*/
hose->io_base_phys = 0xf4000000;
hose->pci_io_size = 0x00400000;
-@@ -808,76 +853,33 @@ static void __init setup_u3_ht(struct pc
+@@ -808,76 +853,33 @@
hose->pci_mem_offset = 0;
hose->first_busno = 0;
hose->last_busno = 0xef;
}
#endif /* CONFIG_PPC64 */
-@@ -994,6 +996,8 @@ void __init pmac_pci_init(void)
+@@ -994,6 +996,8 @@
struct device_node *np, *root;
struct device_node *ht = NULL;
root = of_find_node_by_path("/");
if (root == NULL) {
printk(KERN_CRIT "pmac_pci_init: can't find root "
-@@ -1032,15 +1036,15 @@ void __init pmac_pci_init(void)
+@@ -1032,15 +1036,15 @@
* future though
*/
if (u3_agp) {
#else /* CONFIG_PPC64 */
init_p2pbridge();
-@@ -1051,13 +1055,13 @@ void __init pmac_pci_init(void)
+@@ -1051,13 +1055,13 @@
* some offset between bus number and domains for now when we
* assign all busses should help for now
*/
{
struct device_node* node;
int updatecfg = 0;
-@@ -1099,24 +1103,21 @@ pmac_pci_enable_device_hook(struct pci_d
+@@ -1099,24 +1103,21 @@
updatecfg = 1;
}
pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE,
L1_CACHE_BYTES >> 2);
}
-@@ -1124,6 +1125,18 @@ pmac_pci_enable_device_hook(struct pci_d
+@@ -1124,6 +1125,18 @@
return 0;
}
/* We power down some devices after they have been probed. They'll
* be powered back on later on
*/
-@@ -1171,7 +1184,6 @@ void __init pmac_pcibios_after_init(void
+@@ -1171,7 +1184,6 @@
of_node_put(nd);
}
void pmac_pci_fixup_cardbus(struct pci_dev* dev)
{
if (!machine_is(powermac))
-@@ -1259,7 +1271,7 @@ void pmac_pci_fixup_pciata(struct pci_de
+@@ -1259,7 +1271,7 @@
}
}
DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, pmac_pci_fixup_pciata);
/*
* Disable second function on K2-SATA, it's broken
-Index: linux-2.6.24.7/arch/powerpc/platforms/powermac/pfunc_base.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/powermac/pfunc_base.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/powermac/pfunc_base.c
-@@ -363,8 +363,7 @@ int __init pmac_pfunc_base_install(void)
+--- a/arch/powerpc/platforms/powermac/pfunc_base.c
++++ b/arch/powerpc/platforms/powermac/pfunc_base.c
+@@ -363,8 +363,7 @@
return 0;
}
#ifdef CONFIG_PM
-Index: linux-2.6.24.7/arch/powerpc/platforms/powermac/pic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/powermac/pic.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/powermac/pic.c
-@@ -690,6 +690,5 @@ static int __init init_pmacpic_sysfs(voi
+--- a/arch/powerpc/platforms/powermac/pic.c
++++ b/arch/powerpc/platforms/powermac/pic.c
+@@ -690,6 +690,5 @@
sysdev_driver_register(&pmacpic_sysclass, &driver_pmacpic);
return 0;
}
-subsys_initcall(init_pmacpic_sysfs);
+machine_subsys_initcall(powermac, init_pmacpic_sysfs);
-Index: linux-2.6.24.7/arch/powerpc/platforms/powermac/pmac.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/powermac/pmac.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/powermac/pmac.h
-@@ -26,7 +26,7 @@ extern void pmac_pci_init(void);
+--- a/arch/powerpc/platforms/powermac/pmac.h
++++ b/arch/powerpc/platforms/powermac/pmac.h
+@@ -26,7 +26,7 @@
extern void pmac_nvram_update(void);
extern unsigned char pmac_nvram_read_byte(int addr);
extern void pmac_nvram_write_byte(int addr, unsigned char val);
extern void pmac_pcibios_after_init(void);
extern int of_show_percpuinfo(struct seq_file *m, int i);
-Index: linux-2.6.24.7/arch/powerpc/platforms/powermac/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/powermac/setup.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/powermac/setup.c
+--- a/arch/powerpc/platforms/powermac/setup.c
++++ b/arch/powerpc/platforms/powermac/setup.c
@@ -51,6 +51,8 @@
#include <linux/root_dev.h>
#include <linux/bitops.h>
#include <asm/mmu_context.h>
#include <asm/iommu.h>
#include <asm/smu.h>
-@@ -94,7 +94,6 @@ extern struct machdep_calls pmac_md;
+@@ -94,7 +94,6 @@
#define DEFAULT_ROOT_DEVICE Root_SDA1 /* sda1 - slightly silly choice */
#ifdef CONFIG_PPC64
int sccdbg;
#endif
-@@ -398,17 +397,13 @@ static int initializing = 1;
+@@ -398,17 +397,13 @@
static int pmac_late_init(void)
{
/*
* This is __init_refok because we check for "initializing" before
-@@ -535,9 +530,6 @@ static int __init pmac_declare_of_platfo
+@@ -535,9 +530,6 @@
if (machine_is(chrp))
return -1;
np = of_find_node_by_name(NULL, "valkyrie");
if (np)
of_platform_device_create(np, "valkyrie", NULL);
-@@ -552,8 +544,7 @@ static int __init pmac_declare_of_platfo
+@@ -552,8 +544,7 @@
return 0;
}
/*
* Called very early, MMU is off, device-tree isn't unflattened
-@@ -613,9 +604,11 @@ static int pmac_pci_probe_mode(struct pc
+@@ -613,9 +604,11 @@
/* We need to use normal PCI probing for the AGP bus,
* since the device for the AGP bridge isn't in the tree.
return PCI_PROBE_NORMAL;
return PCI_PROBE_DEVTREE;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/powermac/time.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/powermac/time.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/powermac/time.c
-@@ -84,12 +84,14 @@ long __init pmac_time_init(void)
+--- a/arch/powerpc/platforms/powermac/time.c
++++ b/arch/powerpc/platforms/powermac/time.c
+@@ -84,12 +84,14 @@
return delta;
}
static unsigned long from_rtc_time(struct rtc_time *tm)
{
-Index: linux-2.6.24.7/arch/powerpc/platforms/ps3/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/ps3/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/platforms/ps3/Kconfig
-@@ -61,17 +61,6 @@ config PS3_DYNAMIC_DMA
+--- a/arch/powerpc/platforms/ps3/Kconfig
++++ b/arch/powerpc/platforms/ps3/Kconfig
+@@ -61,17 +61,6 @@
This support is mainly for Linux kernel development. If unsure,
say N.
config PS3_VUART
depends on PPC_PS3
tristate
-@@ -138,4 +127,17 @@ config PS3_FLASH
+@@ -138,4 +127,17 @@
be disabled on the kernel command line using "ps3flash=off", to
not allocate this fixed buffer.
+ oprofile and perfmon2, then say Y or M, otherwise say N.
+
endmenu
-Index: linux-2.6.24.7/arch/powerpc/platforms/ps3/device-init.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/ps3/device-init.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/ps3/device-init.c
+--- a/arch/powerpc/platforms/ps3/device-init.c
++++ b/arch/powerpc/platforms/ps3/device-init.c
@@ -23,6 +23,7 @@
#include <linux/kernel.h>
#include <linux/kthread.h>
/**
* ps3_setup_gelic_device - Setup and register a gelic device instance.
*
-@@ -238,166 +322,6 @@ static int __init ps3_setup_vuart_device
+@@ -238,166 +322,6 @@
return result;
}
static int ps3_setup_storage_dev(const struct ps3_repository_device *repo,
enum ps3_match_id match_id)
{
-@@ -449,16 +373,6 @@ static int ps3_setup_storage_dev(const s
+@@ -449,16 +373,6 @@
goto fail_find_interrupt;
}
for (i = 0; i < num_regions; i++) {
unsigned int id;
u64 start, size;
-@@ -494,7 +408,6 @@ static int ps3_setup_storage_dev(const s
+@@ -494,7 +408,6 @@
fail_device_register:
fail_read_region:
fail_find_interrupt:
kfree(p);
fail_malloc:
-@@ -659,62 +572,268 @@ static int ps3_register_repository_devic
+@@ -659,62 +572,268 @@
return result;
}
* ps3_start_probe_thread - Starts the background probe thread.
*
*/
-@@ -723,7 +842,7 @@ static int __init ps3_start_probe_thread
+@@ -723,7 +842,7 @@
{
int result;
struct task_struct *task;
pr_debug(" -> %s:%d\n", __func__, __LINE__);
-@@ -746,7 +865,8 @@ static int __init ps3_start_probe_thread
+@@ -746,7 +865,8 @@
return -ENODEV;
}
if (IS_ERR(task)) {
result = PTR_ERR(task);
-@@ -755,6 +875,9 @@ static int __init ps3_start_probe_thread
+@@ -755,6 +875,9 @@
return result;
}
pr_debug(" <- %s:%d\n", __func__, __LINE__);
return 0;
}
-@@ -787,6 +910,8 @@ static int __init ps3_register_devices(v
+@@ -787,6 +910,8 @@
ps3_register_sound_devices();
pr_debug(" <- %s:%d\n", __func__, __LINE__);
return 0;
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/ps3/mm.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/ps3/mm.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/ps3/mm.c
+--- a/arch/powerpc/platforms/ps3/mm.c
++++ b/arch/powerpc/platforms/ps3/mm.c
@@ -36,11 +36,6 @@
#endif
#if defined(CONFIG_PS3_DYNAMIC_DMA)
USE_DYNAMIC_DMA = 1,
#else
-@@ -137,11 +132,8 @@ static struct map map;
+@@ -137,11 +132,8 @@
unsigned long ps3_mm_phys_to_lpar(unsigned long phys_addr)
{
BUG_ON(is_kernel_addr(phys_addr));
}
EXPORT_SYMBOL(ps3_mm_phys_to_lpar);
-@@ -309,7 +301,7 @@ static int __init ps3_mm_add_memory(void
+@@ -309,7 +301,7 @@
BUG_ON(!mem_init_done);
start_pfn = start_addr >> PAGE_SHIFT;
nr_pages = (map.r1.size + PAGE_SIZE - 1) >> PAGE_SHIFT;
-@@ -359,7 +351,7 @@ static unsigned long dma_sb_lpar_to_bus(
+@@ -359,7 +351,7 @@
static void __maybe_unused _dma_dump_region(const struct ps3_dma_region *r,
const char *func, int line)
{
r->dev->dev_id);
DBG("%s:%d: page_size %u\n", func, line, r->page_size);
DBG("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr);
-@@ -394,7 +386,7 @@ struct dma_chunk {
+@@ -394,7 +386,7 @@
static void _dma_dump_chunk (const struct dma_chunk* c, const char* func,
int line)
{
c->region->dev->bus_id, c->region->dev->dev_id);
DBG("%s:%d: r.bus_addr %lxh\n", func, line, c->region->bus_addr);
DBG("%s:%d: r.page_size %u\n", func, line, c->region->page_size);
-@@ -658,7 +650,7 @@ static int dma_sb_region_create(struct p
+@@ -658,7 +650,7 @@
BUG_ON(!r);
if (!r->dev->bus_id) {
r->dev->bus_id, r->dev->dev_id);
return 0;
}
-@@ -724,7 +716,7 @@ static int dma_sb_region_free(struct ps3
+@@ -724,7 +716,7 @@
BUG_ON(!r);
if (!r->dev->bus_id) {
r->dev->bus_id, r->dev->dev_id);
return 0;
}
-@@ -1007,7 +999,7 @@ static int dma_sb_region_create_linear(s
+@@ -1007,7 +999,7 @@
if (r->offset + r->len > map.rm.size) {
/* Map (part of) 2nd RAM chunk */
len = r->len;
if (r->offset >= map.rm.size)
virt_addr += r->offset - map.rm.size;
-Index: linux-2.6.24.7/arch/powerpc/platforms/ps3/platform.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/ps3/platform.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/ps3/platform.h
-@@ -89,13 +89,11 @@ enum ps3_dev_type {
+--- a/arch/powerpc/platforms/ps3/platform.h
++++ b/arch/powerpc/platforms/ps3/platform.h
+@@ -89,13 +89,11 @@
PS3_DEV_TYPE_STOR_ROM = TYPE_ROM, /* 5 */
PS3_DEV_TYPE_SB_GPIO = 6,
PS3_DEV_TYPE_STOR_FLASH = TYPE_RBC, /* 14 */
int ps3_repository_read_bus_type(unsigned int bus_index,
enum ps3_bus_type *bus_type);
int ps3_repository_read_bus_num_dev(unsigned int bus_index,
-@@ -119,7 +117,7 @@ enum ps3_reg_type {
+@@ -119,7 +117,7 @@
int ps3_repository_read_dev_str(unsigned int bus_index,
unsigned int dev_index, const char *dev_str, u64 *value);
int ps3_repository_read_dev_id(unsigned int bus_index, unsigned int dev_index,
int ps3_repository_read_dev_type(unsigned int bus_index,
unsigned int dev_index, enum ps3_dev_type *dev_type);
int ps3_repository_read_dev_intr(unsigned int bus_index,
-@@ -138,21 +136,17 @@ int ps3_repository_read_dev_reg(unsigned
+@@ -138,21 +136,17 @@
/* repository bus enumerators */
struct ps3_repository_device {
int ps3_repository_find_devices(enum ps3_bus_type bus_type,
int (*callback)(const struct ps3_repository_device *repo));
int ps3_repository_find_bus(enum ps3_bus_type bus_type, unsigned int from,
-@@ -186,10 +180,10 @@ int ps3_repository_read_stor_dev_region(
+@@ -186,10 +180,10 @@
unsigned int dev_index, unsigned int region_index,
unsigned int *region_id, u64 *region_start, u64 *region_size);
int ps3_repository_read_rm_base(unsigned int ppe_id, u64 *rm_base);
int ps3_repository_read_rm_size(unsigned int ppe_id, u64 *rm_size);
int ps3_repository_read_region_total(u64 *region_total);
-@@ -200,9 +194,15 @@ int ps3_repository_read_mm_info(u64 *rm_
+@@ -200,9 +194,15 @@
int ps3_repository_read_num_be(unsigned int *num_be);
int ps3_repository_read_be_node_id(unsigned int be_index, u64 *node_id);
/* repository 'Other OS' area */
int ps3_repository_read_boot_dat_addr(u64 *lpar_addr);
-Index: linux-2.6.24.7/arch/powerpc/platforms/ps3/repository.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/ps3/repository.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/ps3/repository.c
-@@ -33,7 +33,7 @@ enum ps3_lpar_id {
+--- a/arch/powerpc/platforms/ps3/repository.c
++++ b/arch/powerpc/platforms/ps3/repository.c
+@@ -33,7 +33,7 @@
};
#define dump_field(_a, _b) _dump_field(_a, _b, __func__, __LINE__)
{
#if defined(DEBUG)
char s[16];
-@@ -50,8 +50,8 @@ static void _dump_field(const char *hdr,
+@@ -50,8 +50,8 @@
#define dump_node_name(_a, _b, _c, _d, _e) \
_dump_node_name(_a, _b, _c, _d, _e, __func__, __LINE__)
{
pr_debug("%s:%d: lpar: %u\n", func, line, lpar_id);
_dump_field("n1: ", n1, func, line);
-@@ -63,7 +63,7 @@ static void _dump_node_name (unsigned in
+@@ -63,7 +63,7 @@
#define dump_node(_a, _b, _c, _d, _e, _f, _g) \
_dump_node(_a, _b, _c, _d, _e, _f, _g, __func__, __LINE__)
static void _dump_node(unsigned int lpar_id, u64 n1, u64 n2, u64 n3, u64 n4,
{
pr_debug("%s:%d: lpar: %u\n", func, line, lpar_id);
_dump_field("n1: ", n1, func, line);
-@@ -165,21 +165,18 @@ int ps3_repository_read_bus_str(unsigned
+@@ -165,21 +165,18 @@
make_first_field("bus", bus_index),
make_field(bus_str, 0),
0, 0,
return result;
}
-@@ -193,7 +190,7 @@ int ps3_repository_read_bus_type(unsigne
+@@ -193,7 +190,7 @@
make_first_field("bus", bus_index),
make_field("type", 0),
0, 0,
*bus_type = v1;
return result;
}
-@@ -208,7 +205,7 @@ int ps3_repository_read_bus_num_dev(unsi
+@@ -208,7 +205,7 @@
make_first_field("bus", bus_index),
make_field("num_dev", 0),
0, 0,
*num_dev = v1;
return result;
}
-@@ -221,22 +218,20 @@ int ps3_repository_read_dev_str(unsigned
+@@ -221,22 +218,20 @@
make_field("dev", dev_index),
make_field(dev_str, 0),
0,
return result;
}
-@@ -251,14 +246,14 @@ int ps3_repository_read_dev_type(unsigne
+@@ -251,14 +246,14 @@
make_field("dev", dev_index),
make_field("type", 0),
0,
{
int result;
u64 v1;
-@@ -287,7 +282,7 @@ int ps3_repository_read_dev_reg_type(uns
+@@ -287,7 +282,7 @@
make_field("dev", dev_index),
make_field("reg", reg_index),
make_field("type", 0),
*reg_type = v1;
return result;
}
-@@ -332,7 +327,7 @@ int ps3_repository_find_device(struct ps
+@@ -332,7 +327,7 @@
return result;
}
__func__, __LINE__, tmp.bus_type, tmp.bus_index, tmp.bus_id,
num_dev);
-@@ -349,47 +344,95 @@ int ps3_repository_find_device(struct ps
+@@ -349,47 +344,95 @@
return result;
}
*repo = tmp;
return 0;
}
-@@ -402,50 +445,34 @@ int __devinit ps3_repository_find_device
+@@ -402,50 +445,34 @@
pr_debug(" -> %s:%d: find bus_type %u\n", __func__, __LINE__, bus_type);
}
pr_debug(" <- %s:%d\n", __func__, __LINE__);
-@@ -561,7 +588,7 @@ int ps3_repository_read_stor_dev_port(un
+@@ -561,7 +588,7 @@
make_first_field("bus", bus_index),
make_field("dev", dev_index),
make_field("port", 0),
}
int ps3_repository_read_stor_dev_blk_size(unsigned int bus_index,
-@@ -571,7 +598,7 @@ int ps3_repository_read_stor_dev_blk_siz
+@@ -571,7 +598,7 @@
make_first_field("bus", bus_index),
make_field("dev", dev_index),
make_field("blk_size", 0),
}
int ps3_repository_read_stor_dev_num_blocks(unsigned int bus_index,
-@@ -581,7 +608,7 @@ int ps3_repository_read_stor_dev_num_blo
+@@ -581,7 +608,7 @@
make_first_field("bus", bus_index),
make_field("dev", dev_index),
make_field("n_blocks", 0),
}
int ps3_repository_read_stor_dev_num_regions(unsigned int bus_index,
-@@ -594,7 +621,7 @@ int ps3_repository_read_stor_dev_num_reg
+@@ -594,7 +621,7 @@
make_first_field("bus", bus_index),
make_field("dev", dev_index),
make_field("n_regs", 0),
*num_regions = v1;
return result;
}
-@@ -611,7 +638,7 @@ int ps3_repository_read_stor_dev_region_
+@@ -611,7 +638,7 @@
make_field("dev", dev_index),
make_field("region", region_index),
make_field("id", 0),
*region_id = v1;
return result;
}
-@@ -624,7 +651,7 @@ int ps3_repository_read_stor_dev_region_
+@@ -624,7 +651,7 @@
make_field("dev", dev_index),
make_field("region", region_index),
make_field("size", 0),
}
int ps3_repository_read_stor_dev_region_start(unsigned int bus_index,
-@@ -635,7 +662,7 @@ int ps3_repository_read_stor_dev_region_
+@@ -635,7 +662,7 @@
make_field("dev", dev_index),
make_field("region", region_index),
make_field("start", 0),
}
int ps3_repository_read_stor_dev_info(unsigned int bus_index,
-@@ -684,6 +711,35 @@ int ps3_repository_read_stor_dev_region(
+@@ -684,6 +711,35 @@
return result;
}
int ps3_repository_read_rm_size(unsigned int ppe_id, u64 *rm_size)
{
return read_node(PS3_LPAR_ID_CURRENT,
-@@ -691,7 +747,7 @@ int ps3_repository_read_rm_size(unsigned
+@@ -691,7 +747,7 @@
make_field("pu", 0),
ppe_id,
make_field("rm_size", 0),
}
int ps3_repository_read_region_total(u64 *region_total)
-@@ -700,7 +756,7 @@ int ps3_repository_read_region_total(u64
+@@ -700,7 +756,7 @@
make_first_field("bi", 0),
make_field("rgntotal", 0),
0, 0,
}
/**
-@@ -736,7 +792,7 @@ int ps3_repository_read_num_spu_reserved
+@@ -736,7 +792,7 @@
make_first_field("bi", 0),
make_field("spun", 0),
0, 0,
*num_spu_reserved = v1;
return result;
}
-@@ -755,7 +811,7 @@ int ps3_repository_read_num_spu_resource
+@@ -755,7 +811,7 @@
make_first_field("bi", 0),
make_field("spursvn", 0),
0, 0,
*num_resource_id = v1;
return result;
}
-@@ -768,7 +824,7 @@ int ps3_repository_read_num_spu_resource
+@@ -768,7 +824,7 @@
*/
int ps3_repository_read_spu_resource_id(unsigned int res_index,
{
int result;
u64 v1;
-@@ -785,14 +841,14 @@ int ps3_repository_read_spu_resource_id(
+@@ -785,14 +841,14 @@
return result;
}
}
int ps3_repository_read_boot_dat_size(unsigned int *size)
-@@ -805,7 +861,7 @@ int ps3_repository_read_boot_dat_size(un
+@@ -805,7 +861,7 @@
make_field("boot_dat", 0),
make_field("size", 0),
0,
*size = v1;
return result;
}
-@@ -820,7 +876,7 @@ int ps3_repository_read_vuart_av_port(un
+@@ -820,7 +876,7 @@
make_field("vir_uart", 0),
make_field("port", 0),
make_field("avset", 0),
*port = v1;
return result;
}
-@@ -835,7 +891,7 @@ int ps3_repository_read_vuart_sysmgr_por
+@@ -835,7 +891,7 @@
make_field("vir_uart", 0),
make_field("port", 0),
make_field("sysmgr", 0),
*port = v1;
return result;
}
-@@ -856,6 +912,10 @@ int ps3_repository_read_boot_dat_info(u6
+@@ -856,6 +912,10 @@
: ps3_repository_read_boot_dat_size(size);
}
int ps3_repository_read_num_be(unsigned int *num_be)
{
int result;
-@@ -866,11 +926,17 @@ int ps3_repository_read_num_be(unsigned
+@@ -866,11 +926,17 @@
0,
0,
0,
int ps3_repository_read_be_node_id(unsigned int be_index, u64 *node_id)
{
return read_node(PS3_LPAR_ID_PME,
-@@ -878,7 +944,23 @@ int ps3_repository_read_be_node_id(unsig
+@@ -878,7 +944,23 @@
0,
0,
0,
}
int ps3_repository_read_tb_freq(u64 node_id, u64 *tb_freq)
-@@ -888,7 +970,7 @@ int ps3_repository_read_tb_freq(u64 node
+@@ -888,7 +970,7 @@
node_id,
make_field("clock", 0),
0,
}
int ps3_repository_read_be_tb_freq(unsigned int be_index, u64 *tb_freq)
-@@ -897,11 +979,29 @@ int ps3_repository_read_be_tb_freq(unsig
+@@ -897,11 +979,29 @@
u64 node_id;
*tb_freq = 0;
#if defined(DEBUG)
int ps3_repository_dump_resource_info(const struct ps3_repository_device *repo)
-@@ -1034,7 +1134,7 @@ static int dump_device_info(struct ps3_r
+@@ -1034,7 +1134,7 @@
continue;
}
__LINE__, repo->bus_index, repo->dev_index,
repo->dev_type, repo->dev_id);
-@@ -1091,7 +1191,7 @@ int ps3_repository_dump_bus_info(void)
+@@ -1091,7 +1191,7 @@
continue;
}
__func__, __LINE__, repo.bus_index, repo.bus_type,
repo.bus_id, num_dev);
-Index: linux-2.6.24.7/arch/powerpc/platforms/ps3/spu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/ps3/spu.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/ps3/spu.c
+--- a/arch/powerpc/platforms/ps3/spu.c
++++ b/arch/powerpc/platforms/ps3/spu.c
@@ -28,6 +28,7 @@
#include <asm/spu_priv1.h>
#include <asm/lv1call.h>
#include "platform.h"
/* spu_management_ops */
-@@ -419,10 +420,34 @@ static int ps3_init_affinity(void)
+@@ -419,10 +420,34 @@
return 0;
}
.init_affinity = ps3_init_affinity,
};
-@@ -505,8 +530,6 @@ static void mfc_sr1_set(struct spu *spu,
+@@ -505,8 +530,6 @@
static const u64 allowed = ~(MFC_STATE1_LOCAL_STORAGE_DECODE_MASK
| MFC_STATE1_PROBLEM_STATE_MASK);
BUG_ON((sr1 & allowed) != (spu_pdata(spu)->cache.sr1 & allowed));
spu_pdata(spu)->cache.sr1 = sr1;
-Index: linux-2.6.24.7/arch/powerpc/platforms/ps3/system-bus.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/ps3/system-bus.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/ps3/system-bus.c
-@@ -42,8 +42,8 @@ struct {
+--- a/arch/powerpc/platforms/ps3/system-bus.c
++++ b/arch/powerpc/platforms/ps3/system-bus.c
+@@ -42,8 +42,8 @@
int gpu;
} static usage_hack;
{
return dev->bus_id == bus_id && dev->dev_id == dev_id;
}
-@@ -182,8 +182,8 @@ int ps3_open_hv_device(struct ps3_system
+@@ -182,8 +182,8 @@
case PS3_MATCH_ID_SYSTEM_MANAGER:
pr_debug("%s:%d: unsupported match_id: %u\n", __func__,
__LINE__, dev->match_id);
BUG();
return -EINVAL;
-@@ -220,8 +220,8 @@ int ps3_close_hv_device(struct ps3_syste
+@@ -220,8 +220,8 @@
case PS3_MATCH_ID_SYSTEM_MANAGER:
pr_debug("%s:%d: unsupported match_id: %u\n", __func__,
__LINE__, dev->match_id);
BUG();
return -EINVAL;
-@@ -240,7 +240,7 @@ EXPORT_SYMBOL_GPL(ps3_close_hv_device);
+@@ -240,7 +240,7 @@
static void _dump_mmio_region(const struct ps3_mmio_region* r,
const char* func, int line)
{
r->dev->dev_id);
pr_debug("%s:%d: bus_addr %lxh\n", func, line, r->bus_addr);
pr_debug("%s:%d: len %lxh\n", func, line, r->len);
-@@ -715,6 +715,7 @@ int ps3_system_bus_device_register(struc
+@@ -715,6 +715,7 @@
static unsigned int dev_ioc0_count;
static unsigned int dev_sb_count;
static unsigned int dev_vuart_count;
if (!dev->core.parent)
dev->core.parent = &ps3_system_bus;
-@@ -737,6 +738,10 @@ int ps3_system_bus_device_register(struc
+@@ -737,6 +738,10 @@
snprintf(dev->core.bus_id, sizeof(dev->core.bus_id),
"vuart_%02x", ++dev_vuart_count);
break;
default:
BUG();
};
-Index: linux-2.6.24.7/arch/powerpc/platforms/pseries/eeh.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pseries/eeh.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pseries/eeh.c
+--- a/arch/powerpc/platforms/pseries/eeh.c
++++ b/arch/powerpc/platforms/pseries/eeh.c
@@ -29,6 +29,8 @@
#include <linux/rbtree.h>
#include <linux/seq_file.h>
#include <asm/atomic.h>
#include <asm/eeh.h>
#include <asm/eeh_event.h>
-@@ -169,7 +171,6 @@ static void rtas_slot_error_detail(struc
+@@ -169,7 +171,6 @@
*/
static size_t gather_pci_data(struct pci_dn *pdn, char * buf, size_t len)
{
struct pci_dev *dev = pdn->pcidev;
u32 cfg;
int cap, i;
-@@ -243,12 +244,12 @@ static size_t gather_pci_data(struct pci
+@@ -243,12 +244,12 @@
/* Gather status on devices under the bridge */
if (dev->class >> 16 == PCI_BASE_CLASS_BRIDGE) {
}
}
-@@ -372,7 +373,7 @@ struct device_node * find_device_pe(stru
+@@ -372,7 +373,7 @@
return dn;
}
* Mark the device driver too, so that it can see the failure
* immediately; this is critical, since some drivers poll
* status registers in interrupts ... If a driver is polling,
-@@ -380,9 +381,11 @@ struct device_node * find_device_pe(stru
+@@ -380,9 +381,11 @@
* an interrupt context, which is bad.
*/
if (PCI_DN(dn)) {
/* Mark the pci device driver too */
struct pci_dev *dev = PCI_DN(dn)->pcidev;
-@@ -392,10 +395,8 @@ static void __eeh_mark_slot (struct devi
+@@ -392,10 +395,8 @@
if (dev && dev->driver)
dev->error_state = pci_channel_io_frozen;
}
}
-@@ -415,19 +416,19 @@ void eeh_mark_slot (struct device_node *
+@@ -415,19 +416,19 @@
if (dev)
dev->error_state = pci_channel_io_frozen;
}
}
-@@ -444,7 +445,7 @@ void eeh_clear_slot (struct device_node
+@@ -444,7 +445,7 @@
PCI_DN(dn)->eeh_mode &= ~mode_flag;
PCI_DN(dn)->eeh_check_count = 0;
spin_unlock_irqrestore(&confirm_error_lock, flags);
}
-@@ -480,6 +481,7 @@ int eeh_dn_check_failure(struct device_n
+@@ -480,6 +481,7 @@
no_dn++;
return 0;
}
pdn = PCI_DN(dn);
/* Access to IO BARs might get this far and still not want checking. */
-@@ -545,7 +547,7 @@ int eeh_dn_check_failure(struct device_n
+@@ -545,7 +547,7 @@
/* Note that config-io to empty slots may fail;
* they are empty when they don't have children. */
false_positives++;
pdn->eeh_false_positives ++;
rc = 0;
-@@ -848,11 +850,8 @@ void eeh_restore_bars(struct pci_dn *pdn
+@@ -848,11 +850,8 @@
if ((pdn->eeh_mode & EEH_MODE_SUPPORTED) && !IS_BRIDGE(pdn->class_code))
__restore_bars (pdn);
}
/**
-@@ -1130,7 +1129,8 @@ static void eeh_add_device_early(struct
+@@ -1130,7 +1129,8 @@
void eeh_add_device_tree_early(struct device_node *dn)
{
struct device_node *sib;
eeh_add_device_tree_early(sib);
eeh_add_device_early(dn);
}
-Index: linux-2.6.24.7/arch/powerpc/platforms/pseries/eeh_driver.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pseries/eeh_driver.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pseries/eeh_driver.c
-@@ -310,8 +310,6 @@ struct pci_dn * handle_eeh_events (struc
+--- a/arch/powerpc/platforms/pseries/eeh_driver.c
++++ b/arch/powerpc/platforms/pseries/eeh_driver.c
+@@ -310,8 +310,6 @@
const char *location, *pci_str, *drv_str;
frozen_dn = find_device_pe(event->dn);
if (!frozen_dn) {
location = of_get_property(event->dn, "ibm,loc-code", NULL);
-@@ -321,6 +319,8 @@ struct pci_dn * handle_eeh_events (struc
+@@ -321,6 +319,8 @@
location, pci_name(event->dev));
return NULL;
}
location = of_get_property(frozen_dn, "ibm,loc-code", NULL);
location = location ? location : "unknown";
-@@ -354,13 +354,6 @@ struct pci_dn * handle_eeh_events (struc
+@@ -354,13 +354,6 @@
if (frozen_pdn->eeh_freeze_count > EEH_MAX_ALLOWED_FREEZES)
goto excess_failures;
printk(KERN_WARNING
"EEH: This PCI device has failed %d times in the last hour:\n",
frozen_pdn->eeh_freeze_count);
-@@ -376,6 +369,14 @@ struct pci_dn * handle_eeh_events (struc
+@@ -376,6 +369,14 @@
*/
pci_walk_bus(frozen_bus, eeh_report_error, &result);
/* Since rtas may enable MMIO when posting the error log,
* don't post the error log until after all dev drivers
* have been informed.
-Index: linux-2.6.24.7/arch/powerpc/platforms/pseries/iommu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pseries/iommu.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pseries/iommu.c
-@@ -251,7 +251,7 @@ static void iommu_table_setparms(struct
+--- a/arch/powerpc/platforms/pseries/iommu.c
++++ b/arch/powerpc/platforms/pseries/iommu.c
+@@ -251,7 +251,7 @@
const unsigned long *basep;
const u32 *sizep;
basep = of_get_property(node, "linux,tce-base", NULL);
sizep = of_get_property(node, "linux,tce-size", NULL);
-@@ -296,11 +296,12 @@ static void iommu_table_setparms(struct
+@@ -296,11 +296,12 @@
static void iommu_table_setparms_lpar(struct pci_controller *phb,
struct device_node *dn,
struct iommu_table *tbl,
of_parse_dma_window(dn, dma_window, &tbl->it_index, &offset, &size);
tbl->it_base = 0;
-@@ -420,17 +421,10 @@ static void pci_dma_bus_setup_pSeriesLP(
+@@ -420,17 +421,10 @@
pdn->full_name, ppci->iommu_table);
if (!ppci->iommu_table) {
ppci->iommu_table = iommu_init_table(tbl, ppci->phb->node);
DBG(" created table: %p\n", ppci->iommu_table);
}
-@@ -523,14 +517,10 @@ static void pci_dma_dev_setup_pSeriesLP(
+@@ -523,14 +517,10 @@
pci = PCI_DN(pdn);
if (!pci->iommu_table) {
pci->iommu_table = iommu_init_table(tbl, pci->phb->node);
DBG(" created table: %p\n", pci->iommu_table);
} else {
-@@ -556,7 +546,7 @@ static int iommu_reconfig_notifier(struc
+@@ -556,7 +546,7 @@
case PSERIES_RECONFIG_REMOVE:
if (pci && pci->iommu_table &&
of_get_property(np, "ibm,dma-window", NULL))
break;
default:
err = NOTIFY_DONE;
-Index: linux-2.6.24.7/arch/powerpc/platforms/pseries/pci_dlpar.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pseries/pci_dlpar.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pseries/pci_dlpar.c
-@@ -83,7 +83,7 @@ EXPORT_SYMBOL_GPL(pcibios_remove_pci_dev
+--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
++++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
+@@ -83,7 +83,7 @@
/* Must be called before pci_bus_add_devices */
void
{
struct pci_dev *dev;
-@@ -98,8 +98,6 @@ pcibios_fixup_new_pci_devices(struct pci
+@@ -98,8 +98,6 @@
/* Fill device archdata and setup iommu table */
pcibios_setup_new_device(dev);
pci_read_irq_line(dev);
for (i = 0; i < PCI_NUM_RESOURCES; i++) {
struct resource *r = &dev->resource[i];
-@@ -132,8 +130,8 @@ pcibios_pci_config_bridge(struct pci_dev
+@@ -132,8 +130,8 @@
pci_scan_child_bus(child_bus);
/* Make the discovered devices available */
pci_bus_add_devices(child_bus);
-@@ -169,7 +167,7 @@ pcibios_add_pci_devices(struct pci_bus *
+@@ -169,7 +167,7 @@
/* use ofdt-based probe */
of_scan_bus(dn, bus);
if (!list_empty(&bus->devices)) {
pci_bus_add_devices(bus);
eeh_add_device_tree_late(bus);
}
-@@ -178,7 +176,7 @@ pcibios_add_pci_devices(struct pci_bus *
+@@ -178,7 +176,7 @@
slotno = PCI_SLOT(PCI_DN(dn->child)->devfn);
num = pci_scan_slot(bus, PCI_DEVFN(slotno, 0));
if (num) {
pci_bus_add_devices(bus);
eeh_add_device_tree_late(bus);
}
-@@ -208,7 +206,7 @@ struct pci_controller * __devinit init_p
+@@ -208,7 +206,7 @@
eeh_add_device_tree_early(dn);
scan_phb(phb);
pci_bus_add_devices(phb->bus);
eeh_add_device_tree_late(phb->bus);
-Index: linux-2.6.24.7/arch/powerpc/platforms/pseries/plpar_wrappers.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pseries/plpar_wrappers.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/pseries/plpar_wrappers.h
-@@ -8,11 +8,6 @@ static inline long poll_pending(void)
+--- a/arch/powerpc/platforms/pseries/plpar_wrappers.h
++++ b/arch/powerpc/platforms/pseries/plpar_wrappers.h
+@@ -8,11 +8,6 @@
return plpar_hcall_norets(H_POLL_PENDING);
}
static inline long cede_processor(void)
{
return plpar_hcall_norets(H_CEDE);
-Index: linux-2.6.24.7/arch/powerpc/platforms/pseries/smp.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pseries/smp.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pseries/smp.c
+--- a/arch/powerpc/platforms/pseries/smp.c
++++ b/arch/powerpc/platforms/pseries/smp.c
@@ -46,6 +46,7 @@
#include <asm/pSeries_reconfig.h>
#include <asm/mpic.h>
#include "plpar_wrappers.h"
#include "pseries.h"
-@@ -202,7 +203,7 @@ static int smp_pSeries_cpu_bootable(unsi
+@@ -202,7 +203,7 @@
*/
if (system_state < SYSTEM_RUNNING &&
cpu_has_feature(CPU_FTR_SMT) &&
return 0;
return 1;
-Index: linux-2.6.24.7/arch/powerpc/platforms/pseries/xics.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pseries/xics.c
-+++ linux-2.6.24.7/arch/powerpc/platforms/pseries/xics.c
-@@ -87,19 +87,25 @@ static int ibm_int_off;
+--- a/arch/powerpc/platforms/pseries/xics.c
++++ b/arch/powerpc/platforms/pseries/xics.c
+@@ -87,19 +87,25 @@
/* Direct HW low level accessors */
}
static inline void direct_qirr_info(int n_cpu, u8 value)
-@@ -111,7 +117,7 @@ static inline void direct_qirr_info(int
+@@ -111,7 +117,7 @@
/* LPAR low level accessors */
{
unsigned long lpar_rc;
unsigned long return_value;
-@@ -122,7 +128,7 @@ static inline unsigned int lpar_xirr_inf
+@@ -122,7 +128,7 @@
return (unsigned int)return_value;
}
{
unsigned long lpar_rc;
unsigned long val64 = value & 0xffffffff;
-@@ -133,7 +139,7 @@ static inline void lpar_xirr_info_set(in
+@@ -133,7 +139,7 @@
val64);
}
{
unsigned long lpar_rc;
-@@ -275,21 +281,19 @@ static unsigned int xics_startup(unsigne
+@@ -275,21 +281,19 @@
static void xics_eoi_direct(unsigned int virq)
{
}
static inline unsigned int xics_remap_irq(unsigned int vec)
-@@ -312,16 +316,12 @@ static inline unsigned int xics_remap_ir
+@@ -312,16 +316,12 @@
static unsigned int xics_get_irq_direct(void)
{
}
#ifdef CONFIG_SMP
-@@ -387,12 +387,12 @@ void xics_cause_IPI(int cpu)
+@@ -387,12 +387,12 @@
#endif /* CONFIG_SMP */
iosync();
}
-@@ -440,9 +440,7 @@ static void xics_set_affinity(unsigned i
+@@ -440,9 +440,7 @@
void xics_setup_cpu(void)
{
/*
* Put the calling processor into the GIQ. This is really only
-@@ -783,7 +781,7 @@ void xics_teardown_cpu(int secondary)
+@@ -783,7 +781,7 @@
unsigned int ipi;
struct irq_desc *desc;
/*
* Clear IPI
-@@ -824,10 +822,11 @@ void xics_teardown_cpu(int secondary)
+@@ -824,10 +822,11 @@
void xics_migrate_irqs_away(void)
{
int status;
/* remove ourselves from the global interrupt queue */
status = rtas_set_indicator_fast(GLOBAL_INTERRUPT_QUEUE,
-@@ -835,7 +834,7 @@ void xics_migrate_irqs_away(void)
+@@ -835,7 +834,7 @@
WARN_ON(status < 0);
/* Allow IPIs again... */
for_each_irq(virq) {
struct irq_desc *desc;
-@@ -874,7 +873,7 @@ void xics_migrate_irqs_away(void)
+@@ -874,7 +873,7 @@
* The irq has to be migrated only in the single cpu
* case.
*/
goto unlock;
printk(KERN_WARNING "IRQ %u affinity broken off cpu %u\n",
-Index: linux-2.6.24.7/arch/powerpc/platforms/pseries/xics.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/platforms/pseries/xics.h
-+++ linux-2.6.24.7/arch/powerpc/platforms/pseries/xics.h
-@@ -21,9 +21,6 @@ extern void xics_cause_IPI(int cpu);
+--- a/arch/powerpc/platforms/pseries/xics.h
++++ b/arch/powerpc/platforms/pseries/xics.h
+@@ -21,9 +21,6 @@
extern void xics_request_IPIs(void);
extern void xics_migrate_irqs_away(void);
struct xics_ipi_struct {
volatile unsigned long value;
} ____cacheline_aligned;
-Index: linux-2.6.24.7/arch/powerpc/sysdev/Kconfig
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/sysdev/Kconfig
++++ b/arch/powerpc/sysdev/Kconfig
@@ -0,0 +1,8 @@
+# For a description of the syntax of this configuration file,
+# see Documentation/kbuild/kconfig-language.txt.
+ bool
+ depends on PCI && 4xx
+ default n
-Index: linux-2.6.24.7/arch/powerpc/sysdev/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/Makefile
-+++ linux-2.6.24.7/arch/powerpc/sysdev/Makefile
-@@ -2,7 +2,7 @@ ifeq ($(CONFIG_PPC64),y)
+--- a/arch/powerpc/sysdev/Makefile
++++ b/arch/powerpc/sysdev/Makefile
+@@ -2,7 +2,7 @@
EXTRA_CFLAGS += -mno-minimal-toc
endif
obj-$(CONFIG_MPIC) += mpic.o $(mpic-msi-obj-y)
obj-$(CONFIG_PPC_MPC106) += grackle.o
-@@ -12,6 +12,7 @@ obj-$(CONFIG_U3_DART) += dart_iommu.o
+@@ -12,6 +12,7 @@
obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o
obj-$(CONFIG_FSL_SOC) += fsl_soc.o
obj-$(CONFIG_FSL_PCI) += fsl_pci.o
obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o
obj-$(CONFIG_QUICC_ENGINE) += qe_lib/
obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/
-@@ -24,9 +25,13 @@ obj-$(CONFIG_AXON_RAM) += axonram.o
+@@ -24,9 +25,13 @@
ifeq ($(CONFIG_PPC_MERGE),y)
obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o
obj-$(CONFIG_PPC_I8259) += i8259.o
endif
# Temporary hack until we have migrated to asm-powerpc
-Index: linux-2.6.24.7/arch/powerpc/sysdev/axonram.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/axonram.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/axonram.c
+--- a/arch/powerpc/sysdev/axonram.c
++++ b/arch/powerpc/sysdev/axonram.c
@@ -42,8 +42,9 @@
#include <linux/slab.h>
#include <linux/string.h>
#include <asm/page.h>
#include <asm/prom.h>
-Index: linux-2.6.24.7/arch/powerpc/sysdev/bestcomm/bestcomm.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/bestcomm/bestcomm.h
-+++ linux-2.6.24.7/arch/powerpc/sysdev/bestcomm/bestcomm.h
-@@ -20,7 +20,7 @@ struct bcom_bd; /* defined later on ...
+--- a/arch/powerpc/sysdev/bestcomm/bestcomm.h
++++ b/arch/powerpc/sysdev/bestcomm/bestcomm.h
+@@ -20,7 +20,7 @@
/* ======================================================================== */
/* ======================================================================== */
/**
-Index: linux-2.6.24.7/arch/powerpc/sysdev/commproc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/commproc.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/commproc.c
-@@ -240,6 +240,34 @@ void __init cpm_reset(void)
+--- a/arch/powerpc/sysdev/commproc.c
++++ b/arch/powerpc/sysdev/commproc.c
+@@ -240,6 +240,34 @@
#endif
}
/* We used to do this earlier, but have to postpone as long as possible
* to ensure the kernel VM is now running.
*/
-@@ -408,7 +436,7 @@ EXPORT_SYMBOL(cpm_dpram_phys);
+@@ -408,7 +436,7 @@
#endif /* !CONFIG_PPC_CPM_NEW_BINDING */
struct cpm_ioport16 {
__be16 res[3];
};
-@@ -438,6 +466,13 @@ static void cpm1_set_pin32(int port, int
+@@ -438,6 +466,13 @@
else
clrbits32(&iop->par, pin);
if (port == CPM_PORTE) {
if (flags & CPM_PIN_SECONDARY)
setbits32(&iop->sor, pin);
-@@ -471,11 +506,17 @@ static void cpm1_set_pin16(int port, int
+@@ -471,11 +506,17 @@
else
clrbits16(&iop->par, pin);
}
}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/cpm2_common.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/cpm2_common.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/cpm2_common.c
-@@ -82,6 +82,31 @@ void __init cpm2_reset(void)
+--- a/arch/powerpc/sysdev/cpm2_common.c
++++ b/arch/powerpc/sysdev/cpm2_common.c
+@@ -82,6 +82,31 @@
cpmp = &cpm2_immr->im_cpm;
}
/* Set a baud rate generator. This needs lots of work. There are
* eight BRGs, which can be connected to the CPM channels or output
* as clocks. The BRGs are in two different block of internal
-Index: linux-2.6.24.7/arch/powerpc/sysdev/fsl_pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/fsl_pci.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/fsl_pci.c
-@@ -33,8 +33,8 @@ void __init setup_pci_atmu(struct pci_co
+--- a/arch/powerpc/sysdev/fsl_pci.c
++++ b/arch/powerpc/sysdev/fsl_pci.c
+@@ -33,8 +33,8 @@
struct ccsr_pci __iomem *pci;
int i;
pci = ioremap(rsrc->start, rsrc->end - rsrc->start + 1);
/* Disable all windows (except powar0 since its ignored) */
-@@ -46,17 +46,17 @@ void __init setup_pci_atmu(struct pci_co
+@@ -46,17 +46,17 @@
/* Setup outbound MEM window */
for(i = 0; i < 3; i++)
if (hose->mem_resources[i].flags & IORESOURCE_MEM){
/* Enable, Mem R/W */
out_be32(&pci->pow[i+1].powar, 0x80044000
| (__ilog2(hose->mem_resources[i].end
-@@ -65,15 +65,14 @@ void __init setup_pci_atmu(struct pci_co
+@@ -65,15 +65,14 @@
/* Setup outbound IO window */
if (hose->io_resource.flags & IORESOURCE_IO){
/* Enable, IO R/W */
out_be32(&pci->pow[i+1].powar, 0x80088000
| (__ilog2(hose->io_resource.end
-@@ -107,55 +106,17 @@ void __init setup_pci_cmd(struct pci_con
+@@ -107,55 +106,17 @@
}
}
}
int __init fsl_pcie_check_link(struct pci_controller *hose)
-@@ -172,11 +133,24 @@ void fsl_pcibios_fixup_bus(struct pci_bu
+@@ -172,11 +133,24 @@
struct pci_controller *hose = (struct pci_controller *) bus->sysdata;
int i;
}
}
}
-@@ -202,7 +176,7 @@ int __init fsl_add_bridge(struct device_
+@@ -202,7 +176,7 @@
printk(KERN_WARNING "Can't get bus-range for %s, assume"
" bus 0\n", dev->full_name);
hose = pcibios_alloc_controller(dev);
if (!hose)
return -ENOMEM;
-@@ -222,7 +196,7 @@ int __init fsl_add_bridge(struct device_
+@@ -222,7 +196,7 @@
hose->indirect_type |= PPC_INDIRECT_TYPE_NO_PCIE_LINK;
}
"Firmware bus number: %d->%d\n",
(unsigned long long)rsrc.start, hose->first_busno,
hose->last_busno);
-@@ -240,23 +214,23 @@ int __init fsl_add_bridge(struct device_
+@@ -240,23 +214,23 @@
return 0;
}
+DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8641, quirk_fsl_pcie_header);
+DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8641D, quirk_fsl_pcie_header);
+DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8610, quirk_fsl_pcie_header);
-Index: linux-2.6.24.7/arch/powerpc/sysdev/fsl_rio.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/sysdev/fsl_rio.c
++++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -0,0 +1,932 @@
+/*
+ * MPC85xx RapidIO support
+ out_be32((void *)&dbell_atmu_regs->rowar, 0x8004200b);
+ mpc85xx_rio_doorbell_init(port);
+}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/fsl_rio.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/sysdev/fsl_rio.h
++++ b/arch/powerpc/sysdev/fsl_rio.h
@@ -0,0 +1,20 @@
+/*
+ * MPC85xx RapidIO definitions
+extern void mpc85xx_rio_setup(int law_start, int law_size);
+
+#endif /* __PPC_SYSLIB_PPC85XX_RIO_H */
-Index: linux-2.6.24.7/arch/powerpc/sysdev/fsl_soc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/fsl_soc.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/fsl_soc.c
+--- a/arch/powerpc/sysdev/fsl_soc.c
++++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -24,6 +24,7 @@
#include <linux/platform_device.h>
#include <linux/of_platform.h>
#include <linux/spi/spi.h>
#include <linux/fsl_devices.h>
#include <linux/fs_enet_pd.h>
-@@ -54,10 +55,18 @@ phys_addr_t get_immrbase(void)
+@@ -54,10 +55,18 @@
soc = of_find_node_by_type(NULL, "soc");
if (soc) {
int size;
of_node_put(soc);
}
-@@ -130,17 +139,51 @@ u32 get_baudrate(void)
+@@ -130,17 +139,51 @@
EXPORT_SYMBOL(get_baudrate);
#endif /* CONFIG_CPM2 */
int k;
struct device_node *child = NULL;
struct gianfar_mdio_data mdio_data;
-@@ -179,11 +222,13 @@ static int __init gfar_mdio_of_init(void
+@@ -179,11 +222,13 @@
goto unreg;
}
return ret;
}
-@@ -193,7 +238,6 @@ static const char *gfar_tx_intr = "tx";
+@@ -193,7 +238,6 @@
static const char *gfar_rx_intr = "rx";
static const char *gfar_err_intr = "error";
static int __init gfar_of_init(void)
{
struct device_node *np;
-@@ -277,29 +321,43 @@ static int __init gfar_of_init(void)
+@@ -277,29 +321,43 @@
gfar_data.interface = PHY_INTERFACE_MODE_MII;
ph = of_get_property(np, "phy-handle", NULL);
ret =
platform_device_add_data(gfar_dev, &gfar_data,
sizeof(struct
-@@ -390,13 +448,11 @@ static void __init of_register_i2c_devic
+@@ -390,13 +448,11 @@
static int __init fsl_i2c_of_init(void)
{
struct device_node *np;
struct resource r[2];
struct fsl_i2c_platform_data i2c_data;
const unsigned char *flags = NULL;
-@@ -432,7 +488,7 @@ static int __init fsl_i2c_of_init(void)
+@@ -432,7 +488,7 @@
if (ret)
goto unreg;
}
return 0;
-@@ -528,14 +584,12 @@ static enum fsl_usb2_phy_modes determine
+@@ -528,14 +584,12 @@
static int __init fsl_usb_of_init(void)
{
struct device_node *np;
struct resource r[2];
struct fsl_usb2_platform_data usb_data;
const unsigned char *prop = NULL;
-@@ -578,11 +632,10 @@ static int __init fsl_usb_of_init(void)
+@@ -578,11 +632,10 @@
fsl_usb2_platform_data));
if (ret)
goto unreg_mph;
struct resource r[2];
struct fsl_usb2_platform_data usb_data;
const unsigned char *prop = NULL;
-@@ -654,6 +707,7 @@ static int __init fsl_usb_of_init(void)
+@@ -654,6 +707,7 @@
fsl_usb2_platform_data))))
goto unreg_dr;
}
}
return 0;
-@@ -1125,13 +1179,12 @@ arch_initcall(fs_enet_of_init);
+@@ -1125,13 +1179,12 @@
static int __init fsl_pcmcia_of_init(void)
{
return 0;
}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/grackle.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/grackle.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/grackle.c
-@@ -57,7 +57,7 @@ void __init setup_grackle(struct pci_con
+--- a/arch/powerpc/sysdev/grackle.c
++++ b/arch/powerpc/sysdev/grackle.c
+@@ -57,7 +57,7 @@
{
setup_indirect_pci(hose, 0xfec00000, 0xfee00000, 0);
if (machine_is_compatible("PowerMac1,1"))
if (machine_is_compatible("AAPL,PowerBook1998"))
grackle_set_loop_snoop(hose, 1);
#if 0 /* Disabled for now, HW problems ??? */
-Index: linux-2.6.24.7/arch/powerpc/sysdev/ipic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/ipic.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/ipic.c
+--- a/arch/powerpc/sysdev/ipic.c
++++ b/arch/powerpc/sysdev/ipic.c
@@ -30,11 +30,67 @@
#include "ipic.h"
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_D,
.force = IPIC_SIFCR_H,
-@@ -42,7 +98,6 @@ static struct ipic_info ipic_info[] = {
+@@ -42,7 +98,6 @@
.prio_mask = 0,
},
[10] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_D,
.force = IPIC_SIFCR_H,
-@@ -50,15 +105,27 @@ static struct ipic_info ipic_info[] = {
+@@ -50,15 +105,27 @@
.prio_mask = 1,
},
[11] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_D,
.force = IPIC_SIFCR_H,
-@@ -66,7 +133,6 @@ static struct ipic_info ipic_info[] = {
+@@ -66,7 +133,6 @@
.prio_mask = 5,
},
[15] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_D,
.force = IPIC_SIFCR_H,
-@@ -74,7 +140,6 @@ static struct ipic_info ipic_info[] = {
+@@ -74,7 +140,6 @@
.prio_mask = 6,
},
[16] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_D,
.force = IPIC_SIFCR_H,
-@@ -82,7 +147,7 @@ static struct ipic_info ipic_info[] = {
+@@ -82,7 +147,7 @@
.prio_mask = 7,
},
[17] = {
.mask = IPIC_SEMSR,
.prio = IPIC_SMPRR_A,
.force = IPIC_SEFCR,
-@@ -90,7 +155,7 @@ static struct ipic_info ipic_info[] = {
+@@ -90,7 +155,7 @@
.prio_mask = 5,
},
[18] = {
.mask = IPIC_SEMSR,
.prio = IPIC_SMPRR_A,
.force = IPIC_SEFCR,
-@@ -98,7 +163,7 @@ static struct ipic_info ipic_info[] = {
+@@ -98,7 +163,7 @@
.prio_mask = 6,
},
[19] = {
.mask = IPIC_SEMSR,
.prio = IPIC_SMPRR_A,
.force = IPIC_SEFCR,
-@@ -106,7 +171,7 @@ static struct ipic_info ipic_info[] = {
+@@ -106,7 +171,7 @@
.prio_mask = 7,
},
[20] = {
.mask = IPIC_SEMSR,
.prio = IPIC_SMPRR_B,
.force = IPIC_SEFCR,
-@@ -114,7 +179,7 @@ static struct ipic_info ipic_info[] = {
+@@ -114,7 +179,7 @@
.prio_mask = 4,
},
[21] = {
.mask = IPIC_SEMSR,
.prio = IPIC_SMPRR_B,
.force = IPIC_SEFCR,
-@@ -122,7 +187,7 @@ static struct ipic_info ipic_info[] = {
+@@ -122,7 +187,7 @@
.prio_mask = 5,
},
[22] = {
.mask = IPIC_SEMSR,
.prio = IPIC_SMPRR_B,
.force = IPIC_SEFCR,
-@@ -130,7 +195,7 @@ static struct ipic_info ipic_info[] = {
+@@ -130,7 +195,7 @@
.prio_mask = 6,
},
[23] = {
.mask = IPIC_SEMSR,
.prio = IPIC_SMPRR_B,
.force = IPIC_SEFCR,
-@@ -138,7 +203,6 @@ static struct ipic_info ipic_info[] = {
+@@ -138,7 +203,6 @@
.prio_mask = 7,
},
[32] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_A,
.force = IPIC_SIFCR_H,
-@@ -146,7 +210,6 @@ static struct ipic_info ipic_info[] = {
+@@ -146,7 +210,6 @@
.prio_mask = 0,
},
[33] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_A,
.force = IPIC_SIFCR_H,
-@@ -154,7 +217,6 @@ static struct ipic_info ipic_info[] = {
+@@ -154,7 +217,6 @@
.prio_mask = 1,
},
[34] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_A,
.force = IPIC_SIFCR_H,
-@@ -162,7 +224,6 @@ static struct ipic_info ipic_info[] = {
+@@ -162,7 +224,6 @@
.prio_mask = 2,
},
[35] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_A,
.force = IPIC_SIFCR_H,
-@@ -170,7 +231,6 @@ static struct ipic_info ipic_info[] = {
+@@ -170,7 +231,6 @@
.prio_mask = 3,
},
[36] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_A,
.force = IPIC_SIFCR_H,
-@@ -178,7 +238,6 @@ static struct ipic_info ipic_info[] = {
+@@ -178,7 +238,6 @@
.prio_mask = 4,
},
[37] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_A,
.force = IPIC_SIFCR_H,
-@@ -186,7 +245,6 @@ static struct ipic_info ipic_info[] = {
+@@ -186,7 +245,6 @@
.prio_mask = 5,
},
[38] = {
.mask = IPIC_SIMSR_H,
.prio = IPIC_SIPRR_A,
.force = IPIC_SIFCR_H,
-@@ -194,15 +252,69 @@ static struct ipic_info ipic_info[] = {
+@@ -194,15 +252,69 @@
.prio_mask = 6,
},
[39] = {
.mask = IPIC_SEMSR,
.prio = IPIC_SMPRR_A,
.force = IPIC_SEFCR,
-@@ -210,7 +322,6 @@ static struct ipic_info ipic_info[] = {
+@@ -210,7 +322,6 @@
.prio_mask = 4,
},
[64] = {
.mask = IPIC_SIMSR_L,
.prio = IPIC_SMPRR_A,
.force = IPIC_SIFCR_L,
-@@ -218,7 +329,6 @@ static struct ipic_info ipic_info[] = {
+@@ -218,7 +329,6 @@
.prio_mask = 0,
},
[65] = {
.mask = IPIC_SIMSR_L,
.prio = IPIC_SMPRR_A,
.force = IPIC_SIFCR_L,
-@@ -226,7 +336,6 @@ static struct ipic_info ipic_info[] = {
+@@ -226,7 +336,6 @@
.prio_mask = 1,
},
[66] = {
.mask = IPIC_SIMSR_L,
.prio = IPIC_SMPRR_A,
.force = IPIC_SIFCR_L,
-@@ -234,7 +343,6 @@ static struct ipic_info ipic_info[] = {
+@@ -234,7 +343,6 @@
.prio_mask = 2,
},
[67] = {
.mask = IPIC_SIMSR_L,
.prio = IPIC_SMPRR_A,
.force = IPIC_SIFCR_L,
-@@ -242,7 +350,6 @@ static struct ipic_info ipic_info[] = {
+@@ -242,7 +350,6 @@
.prio_mask = 3,
},
[68] = {
.mask = IPIC_SIMSR_L,
.prio = IPIC_SMPRR_B,
.force = IPIC_SIFCR_L,
-@@ -250,7 +357,6 @@ static struct ipic_info ipic_info[] = {
+@@ -250,7 +357,6 @@
.prio_mask = 0,
},
[69] = {
.mask = IPIC_SIMSR_L,
.prio = IPIC_SMPRR_B,
.force = IPIC_SIFCR_L,
-@@ -258,7 +364,6 @@ static struct ipic_info ipic_info[] = {
+@@ -258,7 +364,6 @@
.prio_mask = 1,
},
[70] = {
.mask = IPIC_SIMSR_L,
.prio = IPIC_SMPRR_B,
.force = IPIC_SIFCR_L,
-@@ -266,7 +371,6 @@ static struct ipic_info ipic_info[] = {
+@@ -266,7 +371,6 @@
.prio_mask = 2,
},
[71] = {
.mask = IPIC_SIMSR_L,
.prio = IPIC_SMPRR_B,
.force = IPIC_SIFCR_L,
-@@ -274,91 +378,120 @@ static struct ipic_info ipic_info[] = {
+@@ -274,91 +378,120 @@
.prio_mask = 3,
},
[72] = {
.mask = IPIC_SIMSR_L,
.prio = 0,
.force = IPIC_SIFCR_L,
-@@ -412,6 +545,10 @@ static void ipic_mask_irq(unsigned int v
+@@ -412,6 +545,10 @@
temp &= ~(1 << (31 - ipic_info[src].bit));
ipic_write(ipic->regs, ipic_info[src].mask, temp);
spin_unlock_irqrestore(&ipic_lock, flags);
}
-@@ -424,9 +561,13 @@ static void ipic_ack_irq(unsigned int vi
+@@ -424,9 +561,13 @@
spin_lock_irqsave(&ipic_lock, flags);
spin_unlock_irqrestore(&ipic_lock, flags);
}
-@@ -444,9 +585,13 @@ static void ipic_mask_irq_and_ack(unsign
+@@ -444,9 +585,13 @@
temp &= ~(1 << (31 - ipic_info[src].bit));
ipic_write(ipic->regs, ipic_info[src].mask, temp);
spin_unlock_irqrestore(&ipic_lock, flags);
}
-@@ -468,14 +613,22 @@ static int ipic_set_irq_type(unsigned in
+@@ -468,14 +613,22 @@
flow_type);
return -EINVAL;
}
}
/* only EXT IRQ senses are programmable on ipic
-@@ -500,7 +653,16 @@ static int ipic_set_irq_type(unsigned in
+@@ -500,7 +653,16 @@
return 0;
}
.typename = " IPIC ",
.unmask = ipic_unmask_irq,
.mask = ipic_mask_irq,
-@@ -519,13 +681,9 @@ static int ipic_host_map(struct irq_host
+@@ -519,13 +681,9 @@
irq_hw_number_t hw)
{
struct ipic *ipic = h->host_data;
/* Set default irq type */
set_irq_type(virq, IRQ_TYPE_NONE);
-@@ -584,7 +742,6 @@ struct ipic * __init ipic_init(struct de
+@@ -584,7 +742,6 @@
ipic->regs = ioremap(res.start, res.end - res.start + 1);
ipic->irqhost->host_data = ipic;
/* init hw */
ipic_write(ipic->regs, IPIC_SICNR, 0x0);
-@@ -593,6 +750,10 @@ struct ipic * __init ipic_init(struct de
+@@ -593,6 +750,10 @@
* configure SICFR accordingly */
if (flags & IPIC_SPREADMODE_GRP_A)
temp |= SICFR_IPSA;
if (flags & IPIC_SPREADMODE_GRP_D)
temp |= SICFR_IPSD;
if (flags & IPIC_SPREADMODE_MIX_A)
-@@ -600,7 +761,7 @@ struct ipic * __init ipic_init(struct de
+@@ -600,7 +761,7 @@
if (flags & IPIC_SPREADMODE_MIX_B)
temp |= SICFR_MPSB;
/* handle MCP route */
temp = 0;
-@@ -672,10 +833,12 @@ void ipic_set_highest_priority(unsigned
+@@ -672,10 +833,12 @@
void ipic_set_default_priority(void)
{
}
void ipic_enable_mcp(enum ipic_mcp_irq mcp_irq)
-Index: linux-2.6.24.7/arch/powerpc/sysdev/ipic.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/ipic.h
-+++ linux-2.6.24.7/arch/powerpc/sysdev/ipic.h
+--- a/arch/powerpc/sysdev/ipic.h
++++ b/arch/powerpc/sysdev/ipic.h
@@ -23,13 +23,12 @@
#define IPIC_IRQ_EXT7 23
#define SICFR_IPSD 0x00080000
#define SICFR_MPSA 0x00200000
#define SICFR_MPSB 0x00400000
-@@ -45,13 +44,11 @@ struct ipic {
+@@ -45,13 +44,11 @@
/* The remapper for this IPIC */
struct irq_host *irqhost;
u8 mask; /* mask register offset from base */
u8 prio; /* priority register offset from base */
u8 force; /* force register offset from base */
-Index: linux-2.6.24.7/arch/powerpc/sysdev/mmio_nvram.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/mmio_nvram.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/mmio_nvram.c
-@@ -99,7 +99,7 @@ int __init mmio_nvram_init(void)
+--- a/arch/powerpc/sysdev/mmio_nvram.c
++++ b/arch/powerpc/sysdev/mmio_nvram.c
+@@ -99,7 +99,7 @@
nvram_addr = r.start;
mmio_nvram_len = r.end - r.start + 1;
if ( (!mmio_nvram_len) || (!nvram_addr) ) {
ret = -EIO;
goto out;
}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/mpic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/mpic.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/mpic.c
-@@ -83,6 +83,7 @@ static u32 mpic_infos[][MPIC_IDX_END] =
+--- a/arch/powerpc/sysdev/mpic.c
++++ b/arch/powerpc/sysdev/mpic.c
+@@ -83,6 +83,7 @@
MPIC_CPU_WHOAMI,
MPIC_CPU_INTACK,
MPIC_CPU_EOI,
MPIC_IRQ_BASE,
MPIC_IRQ_STRIDE,
-@@ -121,6 +122,7 @@ static u32 mpic_infos[][MPIC_IDX_END] =
+@@ -121,6 +122,7 @@
TSI108_CPU_WHOAMI,
TSI108_CPU_INTACK,
TSI108_CPU_EOI,
TSI108_IRQ_BASE,
TSI108_IRQ_STRIDE,
-@@ -265,7 +267,7 @@ static inline void _mpic_irq_write(struc
+@@ -265,7 +267,7 @@
*/
struct mpic_reg_bank *rb, unsigned int offset,
unsigned int size)
{
-@@ -285,7 +287,7 @@ static void _mpic_map_dcr(struct mpic *m
+@@ -285,7 +287,7 @@
BUG_ON(!DCR_MAP_OK(rb->dhost));
}
struct mpic_reg_bank *rb, unsigned int offset,
unsigned int size)
{
-@@ -612,12 +614,11 @@ static inline void mpic_eoi(struct mpic
+@@ -612,12 +614,11 @@
}
#ifdef CONFIG_SMP
return IRQ_HANDLED;
}
-@@ -842,6 +843,24 @@ int mpic_set_irq_type(unsigned int virq,
+@@ -842,6 +843,24 @@
return 0;
}
static struct irq_chip mpic_irq_chip = {
.mask = mpic_mask_irq,
.unmask = mpic_unmask_irq,
-@@ -1109,6 +1128,11 @@ struct mpic * __init mpic_alloc(struct d
+@@ -1109,6 +1128,11 @@
mb();
}
/* Read feature register, calculate num CPUs and, for non-ISU
* MPICs, num sources as well. On ISU MPICs, sources are counted
* as ISUs are added
-@@ -1230,6 +1254,8 @@ void __init mpic_init(struct mpic *mpic)
+@@ -1230,6 +1254,8 @@
mpic_u3msi_init(mpic);
}
for (i = 0; i < mpic->num_sources; i++) {
/* start with vector = source number, and masked */
u32 vecpri = MPIC_VECPRI_MASK | i |
-@@ -1253,6 +1279,11 @@ void __init mpic_init(struct mpic *mpic)
+@@ -1253,6 +1279,11 @@
mpic_read(mpic->gregs, MPIC_INFO(GREG_GLOBAL_CONF_0))
| MPIC_GREG_GCONF_8259_PTHROU_DIS);
/* Set current processor priority to 0 */
mpic_cpu_write(MPIC_INFO(CPU_CURRENT_TASK_PRI), 0);
-@@ -1419,13 +1450,13 @@ void mpic_send_ipi(unsigned int ipi_no,
+@@ -1419,13 +1450,13 @@
mpic_physmask(cpu_mask & cpus_addr(cpu_online_map)[0]));
}
#endif
if (unlikely(src == mpic->spurious_vec)) {
if (mpic->flags & MPIC_SPV_EOI)
-@@ -1443,6 +1474,11 @@ unsigned int mpic_get_one_irq(struct mpi
+@@ -1443,6 +1474,11 @@
return irq_linear_revmap(mpic->irqhost, src);
}
unsigned int mpic_get_irq(void)
{
struct mpic *mpic = mpic_primary;
-@@ -1452,12 +1488,20 @@ unsigned int mpic_get_irq(void)
+@@ -1452,12 +1488,20 @@
return mpic_get_one_irq(mpic);
}
static char *ipi_names[] = {
"IPI0 (call function)",
"IPI1 (reschedule)",
-@@ -1472,14 +1516,14 @@ void mpic_request_ipis(void)
+@@ -1472,14 +1516,14 @@
unsigned int vipi = irq_create_mapping(mpic->irqhost,
mpic->ipi_vecs[0] + i);
if (vipi == NO_IRQ) {
vipi, i);
break;
}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/mpic.h
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/mpic.h
-+++ linux-2.6.24.7/arch/powerpc/sysdev/mpic.h
-@@ -17,6 +17,7 @@ extern int mpic_msi_init_allocator(struc
+--- a/arch/powerpc/sysdev/mpic.h
++++ b/arch/powerpc/sysdev/mpic.h
+@@ -17,6 +17,7 @@
extern irq_hw_number_t mpic_msi_alloc_hwirqs(struct mpic *mpic, int num);
extern void mpic_msi_free_hwirqs(struct mpic *mpic, int offset, int num);
extern int mpic_u3msi_init(struct mpic *mpic);
#else
static inline void mpic_msi_reserve_hwirq(struct mpic *mpic,
irq_hw_number_t hwirq)
-@@ -28,12 +29,15 @@ static inline int mpic_u3msi_init(struct
+@@ -28,12 +29,15 @@
{
return -1;
}
extern void mpic_set_affinity(unsigned int irq, cpumask_t cpumask);
#endif /* _POWERPC_SYSDEV_MPIC_H */
-Index: linux-2.6.24.7/arch/powerpc/sysdev/mpic_pasemi_msi.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/sysdev/mpic_pasemi_msi.c
++++ b/arch/powerpc/sysdev/mpic_pasemi_msi.c
@@ -0,0 +1,172 @@
+/*
+ * Copyright 2007, Olof Johansson, PA Semi
+
+ return 0;
+}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/mv64x60_dev.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/mv64x60_dev.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/mv64x60_dev.c
-@@ -241,7 +241,7 @@ static int __init mv64x60_eth_device_set
+--- a/arch/powerpc/sysdev/mv64x60_dev.c
++++ b/arch/powerpc/sysdev/mv64x60_dev.c
+@@ -241,7 +241,7 @@
/* only register the shared platform device the first time through */
if (id == 0 && (err = eth_register_shared_pdev(np)))
memset(r, 0, sizeof(r));
of_irq_to_resource(np, 0, &r[0]);
-@@ -451,22 +451,19 @@ static int __init mv64x60_device_setup(v
+@@ -451,22 +451,19 @@
int id;
int err;
goto error;
/* support up to one watchdog timer */
-@@ -477,7 +474,6 @@ static int __init mv64x60_device_setup(v
+@@ -477,7 +474,6 @@
of_node_put(np);
}
return 0;
error:
-Index: linux-2.6.24.7/arch/powerpc/sysdev/mv64x60_pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/mv64x60_pci.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/mv64x60_pci.c
-@@ -164,8 +164,8 @@ static int __init mv64x60_add_bridge(str
+--- a/arch/powerpc/sysdev/mv64x60_pci.c
++++ b/arch/powerpc/sysdev/mv64x60_pci.c
+@@ -164,8 +164,8 @@
void __init mv64x60_pci_init(void)
{
+ for_each_compatible_node(np, "pci", "marvell,mv64x60-pci")
mv64x60_add_bridge(np);
}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/mv64x60_udbg.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/mv64x60_udbg.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/mv64x60_udbg.c
-@@ -85,10 +85,10 @@ static void mv64x60_udbg_init(void)
+--- a/arch/powerpc/sysdev/mv64x60_udbg.c
++++ b/arch/powerpc/sysdev/mv64x60_udbg.c
+@@ -85,10 +85,10 @@
if (!stdout)
return;
of_node_put(stdout);
if (!np)
-Index: linux-2.6.24.7/arch/powerpc/sysdev/of_rtc.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/sysdev/of_rtc.c
++++ b/arch/powerpc/sysdev/of_rtc.c
@@ -0,0 +1,59 @@
+/*
+ * Instantiate mmio-mapped RTC chips based on device tree information
+ }
+ }
+}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/pmi.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/pmi.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/pmi.c
+--- a/arch/powerpc/sysdev/pmi.c
++++ b/arch/powerpc/sysdev/pmi.c
@@ -28,9 +28,9 @@
#include <linux/completion.h>
#include <linux/spinlock.h>
#include <asm/io.h>
#include <asm/pmi.h>
#include <asm/prom.h>
-Index: linux-2.6.24.7/arch/powerpc/sysdev/ppc4xx_pci.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/sysdev/ppc4xx_pci.c
++++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -0,0 +1,1528 @@
+/*
+ * PCI / PCI-X / PCI-Express support for 4xx parts
+}
+arch_initcall(ppc4xx_pci_find_bridges);
+
-Index: linux-2.6.24.7/arch/powerpc/sysdev/ppc4xx_pci.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/arch/powerpc/sysdev/ppc4xx_pci.h
++++ b/arch/powerpc/sysdev/ppc4xx_pci.h
@@ -0,0 +1,369 @@
+/*
+ * PCI / PCI-X / PCI-Express support for 4xx parts
+
+
+#endif /* __PPC4XX_PCI_H__ */
-Index: linux-2.6.24.7/arch/powerpc/sysdev/qe_lib/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/qe_lib/Kconfig
-+++ linux-2.6.24.7/arch/powerpc/sysdev/qe_lib/Kconfig
+--- a/arch/powerpc/sysdev/qe_lib/Kconfig
++++ b/arch/powerpc/sysdev/qe_lib/Kconfig
@@ -4,7 +4,7 @@
config UCC_SLOW
help
This option provides qe_lib support to UCC slow
protocols: UART, BISYNC, QMC
-Index: linux-2.6.24.7/arch/powerpc/sysdev/qe_lib/qe.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/qe_lib/qe.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/qe_lib/qe.c
+--- a/arch/powerpc/sysdev/qe_lib/qe.c
++++ b/arch/powerpc/sysdev/qe_lib/qe.c
@@ -25,6 +25,7 @@
#include <linux/module.h>
#include <linux/delay.h>
#include <asm/irq.h>
#include <asm/page.h>
#include <asm/pgtable.h>
-@@ -167,19 +168,20 @@ unsigned int get_brg_clk(void)
+@@ -167,19 +168,20 @@
/* Program the BRG to the given sampling rate and multiplier
*
divisor = get_brg_clk() / (rate * multiplier);
if (divisor > QE_BRGC_DIVISOR_MAX + 1) {
-@@ -196,8 +198,43 @@ void qe_setbrg(unsigned int brg, unsigne
+@@ -196,8 +198,43 @@
tempval = ((divisor - 1) << QE_BRGC_DIVISOR_SHIFT) |
QE_BRGC_ENABLE | div16;
/* Initialize SNUMs (thread serial numbers) according to
* QE Module Control chapter, SNUM table
-@@ -358,3 +395,249 @@ void *qe_muram_addr(unsigned long offset
+@@ -358,3 +395,249 @@
return (void *)&qe_immr->muram[offset];
}
EXPORT_SYMBOL(qe_muram_addr);
+}
+EXPORT_SYMBOL(qe_get_firmware_info);
+
-Index: linux-2.6.24.7/arch/powerpc/sysdev/qe_lib/ucc_slow.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/qe_lib/ucc_slow.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/qe_lib/ucc_slow.c
+--- a/arch/powerpc/sysdev/qe_lib/ucc_slow.c
++++ b/arch/powerpc/sysdev/qe_lib/ucc_slow.c
@@ -19,6 +19,7 @@
#include <linux/stddef.h>
#include <linux/interrupt.h>
#include <asm/io.h>
#include <asm/immap_qe.h>
-@@ -41,6 +42,7 @@ u32 ucc_slow_get_qe_cr_subblock(int uccs
+@@ -41,6 +42,7 @@
default: return QE_CR_SUBBLOCK_INVALID;
}
}
void ucc_slow_poll_transmitter_now(struct ucc_slow_private * uccs)
{
-@@ -56,6 +58,7 @@ void ucc_slow_graceful_stop_tx(struct uc
+@@ -56,6 +58,7 @@
qe_issue_cmd(QE_GRACEFUL_STOP_TX, id,
QE_CR_PROTOCOL_UNSPECIFIED, 0);
}
void ucc_slow_stop_tx(struct ucc_slow_private * uccs)
{
-@@ -65,6 +68,7 @@ void ucc_slow_stop_tx(struct ucc_slow_pr
+@@ -65,6 +68,7 @@
id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num);
qe_issue_cmd(QE_STOP_TX, id, QE_CR_PROTOCOL_UNSPECIFIED, 0);
}
void ucc_slow_restart_tx(struct ucc_slow_private * uccs)
{
-@@ -74,6 +78,7 @@ void ucc_slow_restart_tx(struct ucc_slow
+@@ -74,6 +78,7 @@
id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num);
qe_issue_cmd(QE_RESTART_TX, id, QE_CR_PROTOCOL_UNSPECIFIED, 0);
}
void ucc_slow_enable(struct ucc_slow_private * uccs, enum comm_dir mode)
{
-@@ -94,6 +99,7 @@ void ucc_slow_enable(struct ucc_slow_pri
+@@ -94,6 +99,7 @@
}
out_be32(&us_regs->gumr_l, gumr_l);
}
void ucc_slow_disable(struct ucc_slow_private * uccs, enum comm_dir mode)
{
-@@ -114,6 +120,7 @@ void ucc_slow_disable(struct ucc_slow_pr
+@@ -114,6 +120,7 @@
}
out_be32(&us_regs->gumr_l, gumr_l);
}
/* Initialize the UCC for Slow operations
*
-@@ -347,6 +354,7 @@ int ucc_slow_init(struct ucc_slow_info *
+@@ -347,6 +354,7 @@
*uccs_ret = uccs;
return 0;
}
void ucc_slow_free(struct ucc_slow_private * uccs)
{
-@@ -366,5 +374,5 @@ void ucc_slow_free(struct ucc_slow_priva
+@@ -366,5 +374,5 @@
kfree(uccs);
}
-
+EXPORT_SYMBOL(ucc_slow_free);
-Index: linux-2.6.24.7/arch/powerpc/sysdev/tsi108_dev.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/tsi108_dev.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/tsi108_dev.c
-@@ -66,14 +66,12 @@ EXPORT_SYMBOL(get_vir_csrbase);
+--- a/arch/powerpc/sysdev/tsi108_dev.c
++++ b/arch/powerpc/sysdev/tsi108_dev.c
+@@ -66,14 +66,12 @@
static int __init tsi108_eth_of_init(void)
{
struct device_node *np;
struct resource r[2];
struct device_node *phy, *mdio;
hw_info tsi_eth_data;
-@@ -98,7 +96,7 @@ static int __init tsi108_eth_of_init(voi
+@@ -98,7 +96,7 @@
__FUNCTION__,r[1].name, r[1].start, r[1].end);
tsi_eth_dev =
1);
if (IS_ERR(tsi_eth_dev)) {
-@@ -154,6 +152,7 @@ static int __init tsi108_eth_of_init(voi
+@@ -154,6 +152,7 @@
unreg:
platform_device_unregister(tsi_eth_dev);
err:
return ret;
}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/uic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/uic.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/uic.c
-@@ -53,21 +53,23 @@ struct uic {
+--- a/arch/powerpc/sysdev/uic.c
++++ b/arch/powerpc/sysdev/uic.c
+@@ -53,21 +53,23 @@
/* The remapper for this UIC */
struct irq_host *irqhost;
mtdcr(uic->dcrbase + UIC_ER, er);
spin_unlock_irqrestore(&uic->lock, flags);
}
-@@ -99,6 +101,7 @@ static void uic_ack_irq(unsigned int vir
+@@ -99,6 +101,7 @@
static void uic_mask_ack_irq(unsigned int virq)
{
struct uic *uic = get_irq_chip_data(virq);
unsigned int src = uic_irq_to_hw(virq);
unsigned long flags;
-@@ -109,7 +112,16 @@ static void uic_mask_ack_irq(unsigned in
+@@ -109,7 +112,16 @@
er = mfdcr(uic->dcrbase + UIC_ER);
er &= ~sr;
mtdcr(uic->dcrbase + UIC_ER, er);
spin_unlock_irqrestore(&uic->lock, flags);
}
-@@ -173,64 +185,6 @@ static struct irq_chip uic_irq_chip = {
+@@ -173,64 +185,6 @@
.set_type = uic_set_irq_type,
};
static int uic_host_map(struct irq_host *h, unsigned int virq,
irq_hw_number_t hw)
{
-@@ -239,7 +193,7 @@ static int uic_host_map(struct irq_host
+@@ -239,7 +193,7 @@
set_irq_chip_data(virq, uic);
/* Despite the name, handle_level_irq() works for both level
* and edge irqs on UIC. FIXME: check this is correct */
/* Set default irq type */
set_irq_type(virq, IRQ_TYPE_NONE);
-@@ -264,23 +218,36 @@ static struct irq_host_ops uic_host_ops
+@@ -264,23 +218,36 @@
.xlate = uic_host_xlate,
};
}
static struct uic * __init uic_init_one(struct device_node *node)
-@@ -342,33 +309,27 @@ void __init uic_init_tree(void)
+@@ -342,33 +309,27 @@
const u32 *interrupts;
/* First locate and initialize the top-level UIC */
uic = uic_init_one(np);
if (! uic)
-@@ -377,20 +338,11 @@ void __init uic_init_tree(void)
+@@ -377,20 +338,11 @@
cascade_virq = irq_of_parse_and_map(np, 0);
}
}
-Index: linux-2.6.24.7/arch/powerpc/sysdev/xilinx_intc.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/sysdev/xilinx_intc.c
-+++ linux-2.6.24.7/arch/powerpc/sysdev/xilinx_intc.c
-@@ -135,10 +135,16 @@ void __init xilinx_intc_init_tree(void)
+--- a/arch/powerpc/sysdev/xilinx_intc.c
++++ b/arch/powerpc/sysdev/xilinx_intc.c
+@@ -135,10 +135,16 @@
struct device_node *np;
/* find top level interrupt controller */
/* xilinx interrupt controller needs to be top level */
BUG_ON(!np);
-Index: linux-2.6.24.7/arch/powerpc/xmon/setjmp.S
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/xmon/setjmp.S
-+++ linux-2.6.24.7/arch/powerpc/xmon/setjmp.S
+--- a/arch/powerpc/xmon/setjmp.S
++++ b/arch/powerpc/xmon/setjmp.S
@@ -12,67 +12,6 @@
#include <asm/ppc_asm.h>
#include <asm/asm-offsets.h>
/*
* Grab the register values as they are now.
* This won't do a particularily good job because we really
-Index: linux-2.6.24.7/arch/powerpc/xmon/xmon.c
-===================================================================
---- linux-2.6.24.7.orig/arch/powerpc/xmon/xmon.c
-+++ linux-2.6.24.7/arch/powerpc/xmon/xmon.c
+--- a/arch/powerpc/xmon/xmon.c
++++ b/arch/powerpc/xmon/xmon.c
@@ -40,6 +40,7 @@
#include <asm/spu.h>
#include <asm/spu_priv1.h>
#ifdef CONFIG_PPC64
#include <asm/hvcall.h>
-@@ -71,12 +72,9 @@ static unsigned long ncsum = 4096;
+@@ -71,12 +72,9 @@
static int termch;
static char tmpstr[128];
/* Breakpoint stuff */
struct bpt {
-@@ -153,13 +151,15 @@ static const char *getvecname(unsigned l
+@@ -153,13 +151,15 @@
static int do_spu_cmd(void);
extern void xmon_save_regs(struct pt_regs *);
#ifdef CONFIG_PPC64
-@@ -231,6 +231,9 @@ Commands:\n\
+@@ -231,6 +231,9 @@
#ifdef CONFIG_PPC_STD_MMU_32
" u dump segment registers\n"
#endif
" ? help\n"
" zr reboot\n\
zh halt\n"
-@@ -856,6 +859,11 @@ cmds(struct pt_regs *excp)
+@@ -856,6 +859,11 @@
dump_segments();
break;
#endif
default:
printf("Unrecognized command: ");
do {
-@@ -2527,16 +2535,33 @@ static void xmon_print_symbol(unsigned l
+@@ -2527,16 +2535,33 @@
static void dump_slb(void)
{
int i;
}
}
-@@ -2581,6 +2606,32 @@ void dump_segments(void)
+@@ -2581,6 +2606,32 @@
}
#endif
void xmon_init(int enable)
{
#ifdef CONFIG_PPC_ISERIES
-Index: linux-2.6.24.7/arch/ppc/kernel/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/kernel/Makefile
-+++ linux-2.6.24.7/arch/ppc/kernel/Makefile
-@@ -13,7 +13,6 @@ obj-y := entry.o traps.o time.o misc.
+--- a/arch/ppc/kernel/Makefile
++++ b/arch/ppc/kernel/Makefile
+@@ -13,7 +13,6 @@
ppc_htab.o
obj-$(CONFIG_MODULES) += ppc_ksyms.o
obj-$(CONFIG_PCI) += pci.o
obj-$(CONFIG_KGDB) += ppc-stub.o
obj-$(CONFIG_SMP) += smp.o smp-tbsync.o
obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
-Index: linux-2.6.24.7/arch/ppc/kernel/head_44x.S
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/kernel/head_44x.S
-+++ linux-2.6.24.7/arch/ppc/kernel/head_44x.S
-@@ -195,7 +195,7 @@ skpinv: addi r4,r4,1 /* Increment */
+--- a/arch/ppc/kernel/head_44x.S
++++ b/arch/ppc/kernel/head_44x.S
+@@ -195,7 +195,7 @@
li r5,0
ori r5,r5,(PPC44x_TLB_SW | PPC44x_TLB_SR | PPC44x_TLB_I | PPC44x_TLB_G)
tlbwe r3,r0,PPC44x_TLB_PAGEID /* Load the pageid fields */
tlbwe r4,r0,PPC44x_TLB_XLAT /* Load the translation fields */
-Index: linux-2.6.24.7/arch/ppc/kernel/rio.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/kernel/rio.c
+--- a/arch/ppc/kernel/rio.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-}
-
-subsys_initcall(ppc_rio_init);
-Index: linux-2.6.24.7/arch/ppc/kernel/setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/kernel/setup.c
-+++ linux-2.6.24.7/arch/ppc/kernel/setup.c
+--- a/arch/ppc/kernel/setup.c
++++ b/arch/ppc/kernel/setup.c
@@ -37,7 +37,6 @@
#include <asm/nvram.h>
#include <asm/xmon.h>
#define USES_PPC_SYS (defined(CONFIG_85xx) || defined(CONFIG_83xx) || \
defined(CONFIG_MPC10X_BRIDGE) || defined(CONFIG_8260) || \
-Index: linux-2.6.24.7/arch/ppc/kernel/traps.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/kernel/traps.c
-+++ linux-2.6.24.7/arch/ppc/kernel/traps.c
-@@ -231,39 +231,25 @@ platform_machine_check(struct pt_regs *r
+--- a/arch/ppc/kernel/traps.c
++++ b/arch/ppc/kernel/traps.c
+@@ -231,39 +231,25 @@
{
}
printk("Machine check in kernel mode.\n");
if (reason & ESR_IMCP){
printk("Instruction Synchronous Machine Check exception\n");
-@@ -293,7 +279,13 @@ void machine_check_exception(struct pt_r
+@@ -293,7 +279,13 @@
/* Clear MCSR */
mtspr(SPRN_MCSR, mcsr);
}
printk("Machine check in kernel mode.\n");
printk("Caused by (from MCSR=%lx): ", reason);
-@@ -305,8 +297,6 @@ void machine_check_exception(struct pt_r
+@@ -305,8 +297,6 @@
printk("Data Cache Push Parity Error\n");
if (reason & MCSR_DCPERR)
printk("Data Cache Parity Error\n");
if (reason & MCSR_BUS_IAERR)
printk("Bus - Instruction Address Error\n");
if (reason & MCSR_BUS_RAERR)
-@@ -318,12 +308,19 @@ void machine_check_exception(struct pt_r
+@@ -318,12 +308,19 @@
if (reason & MCSR_BUS_RBERR)
printk("Bus - Read Data Bus Error\n");
if (reason & MCSR_BUS_WBERR)
printk("Machine check in kernel mode.\n");
printk("Caused by (from MCSR=%lx): ", reason);
-@@ -341,7 +338,14 @@ void machine_check_exception(struct pt_r
+@@ -341,7 +338,14 @@
printk("Bus - Read Bus Error on data load\n");
if (reason & MCSR_BUS_WRERR)
printk("Bus - Write Bus Error on buffered store or cache line push\n");
printk("Machine check in kernel mode.\n");
printk("Caused by (from SRR1=%lx): ", reason);
switch (reason & 0x601F0000) {
-@@ -371,7 +375,39 @@ void machine_check_exception(struct pt_r
+@@ -371,7 +375,39 @@
default:
printk("Unknown values in msr\n");
}
/*
* Optional platform-provided routine to print out
-Index: linux-2.6.24.7/arch/ppc/mm/44x_mmu.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/mm/44x_mmu.c
-+++ linux-2.6.24.7/arch/ppc/mm/44x_mmu.c
-@@ -60,38 +60,28 @@ extern char etext[], _stext[];
+--- a/arch/ppc/mm/44x_mmu.c
++++ b/arch/ppc/mm/44x_mmu.c
+@@ -60,38 +60,28 @@
* Just needed it declared someplace.
*/
unsigned int tlb_44x_index = 0;
void __init MMU_init_hw(void)
{
flush_instruction_cache();
-@@ -99,22 +89,13 @@ void __init MMU_init_hw(void)
+@@ -99,22 +89,13 @@
unsigned long __init mmu_mapin_ram(void)
{
return total_lowmem;
}
-Index: linux-2.6.24.7/arch/ppc/platforms/85xx/mpc85xx_ads_common.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/platforms/85xx/mpc85xx_ads_common.c
-+++ linux-2.6.24.7/arch/ppc/platforms/85xx/mpc85xx_ads_common.c
+--- a/arch/ppc/platforms/85xx/mpc85xx_ads_common.c
++++ b/arch/ppc/platforms/85xx/mpc85xx_ads_common.c
@@ -42,8 +42,6 @@
#include <mm/mmu_decl.h>
#include <platforms/85xx/mpc85xx_ads_common.h>
#ifndef CONFIG_PCI
-@@ -190,6 +188,7 @@ mpc85xx_exclude_device(u_char bus, u_cha
+@@ -190,6 +188,7 @@
#endif /* CONFIG_PCI */
#ifdef CONFIG_RAPIDIO
void platform_rio_init(void)
{
/* 512MB RIO LAW at 0xc0000000 */
-Index: linux-2.6.24.7/arch/ppc/platforms/85xx/stx_gp3.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/platforms/85xx/stx_gp3.c
-+++ linux-2.6.24.7/arch/ppc/platforms/85xx/stx_gp3.c
+--- a/arch/ppc/platforms/85xx/stx_gp3.c
++++ b/arch/ppc/platforms/85xx/stx_gp3.c
@@ -50,12 +50,10 @@
#include <asm/irq.h>
#include <asm/immap_85xx.h>
unsigned char __res[sizeof(bd_t)];
-@@ -271,6 +269,7 @@ int mpc85xx_exclude_device(u_char bus, u
+@@ -271,6 +269,7 @@
#endif /* CONFIG_PCI */
#ifdef CONFIG_RAPIDIO
void
platform_rio_init(void)
{
-Index: linux-2.6.24.7/arch/ppc/platforms/85xx/tqm85xx.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/platforms/85xx/tqm85xx.c
-+++ linux-2.6.24.7/arch/ppc/platforms/85xx/tqm85xx.c
+--- a/arch/ppc/platforms/85xx/tqm85xx.c
++++ b/arch/ppc/platforms/85xx/tqm85xx.c
@@ -54,7 +54,6 @@
#include <syslib/ppc85xx_setup.h>
#include <syslib/cpm2_pic.h>
#ifndef CONFIG_PCI
unsigned long isa_io_base = 0;
-@@ -309,6 +308,7 @@ int mpc85xx_exclude_device(u_char bus, u
+@@ -309,6 +308,7 @@
#endif /* CONFIG_PCI */
#ifdef CONFIG_RAPIDIO
void platform_rio_init(void)
{
/* 512MB RIO LAW at 0xc0000000 */
-Index: linux-2.6.24.7/arch/ppc/platforms/ev64260.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/platforms/ev64260.c
-+++ linux-2.6.24.7/arch/ppc/platforms/ev64260.c
-@@ -336,7 +336,7 @@ ev64260_early_serial_map(void)
+--- a/arch/ppc/platforms/ev64260.c
++++ b/arch/ppc/platforms/ev64260.c
+@@ -336,7 +336,7 @@
#endif
if (early_serial_setup(&port) != 0)
"failed\n");
first_time = 0;
-@@ -388,7 +388,7 @@ ev64260_setup_arch(void)
+@@ -388,7 +388,7 @@
ev64260_early_serial_map();
#endif
"(source@mvista.com)\n", BOARD_VENDOR, BOARD_MACHINE);
if (ppc_md.progress)
-Index: linux-2.6.24.7/arch/ppc/platforms/prep_pci.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/platforms/prep_pci.c
-+++ linux-2.6.24.7/arch/ppc/platforms/prep_pci.c
-@@ -1099,7 +1099,6 @@ prep_pib_init(void)
+--- a/arch/ppc/platforms/prep_pci.c
++++ b/arch/ppc/platforms/prep_pci.c
+@@ -1099,7 +1099,6 @@
pci_write_config_byte(dev, 0x43, reg);
}
}
}
if ((dev = pci_get_device(PCI_VENDOR_ID_WINBOND,
-Index: linux-2.6.24.7/arch/ppc/syslib/Makefile
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/Makefile
-+++ linux-2.6.24.7/arch/ppc/syslib/Makefile
-@@ -93,7 +93,6 @@ obj-$(CONFIG_85xx) += open_pic.o ppc85x
+--- a/arch/ppc/syslib/Makefile
++++ b/arch/ppc/syslib/Makefile
+@@ -93,7 +93,6 @@
ifeq ($(CONFIG_85xx),y)
obj-$(CONFIG_PCI) += pci_auto.o
endif
obj-$(CONFIG_83xx) += ppc83xx_setup.o ppc_sys.o \
mpc83xx_sys.o mpc83xx_devices.o ipic.o
ifeq ($(CONFIG_83xx),y)
-Index: linux-2.6.24.7/arch/ppc/syslib/gt64260_pic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/gt64260_pic.c
-+++ linux-2.6.24.7/arch/ppc/syslib/gt64260_pic.c
+--- a/arch/ppc/syslib/gt64260_pic.c
++++ b/arch/ppc/syslib/gt64260_pic.c
@@ -35,7 +35,6 @@
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/irq.h>
-Index: linux-2.6.24.7/arch/ppc/syslib/mpc52xx_pic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/mpc52xx_pic.c
-+++ linux-2.6.24.7/arch/ppc/syslib/mpc52xx_pic.c
+--- a/arch/ppc/syslib/mpc52xx_pic.c
++++ b/arch/ppc/syslib/mpc52xx_pic.c
@@ -20,7 +20,6 @@
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/irq.h>
-Index: linux-2.6.24.7/arch/ppc/syslib/mv64360_pic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/mv64360_pic.c
-+++ linux-2.6.24.7/arch/ppc/syslib/mv64360_pic.c
+--- a/arch/ppc/syslib/mv64360_pic.c
++++ b/arch/ppc/syslib/mv64360_pic.c
@@ -36,7 +36,6 @@
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
-Index: linux-2.6.24.7/arch/ppc/syslib/ocp.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/ocp.c
-+++ linux-2.6.24.7/arch/ppc/syslib/ocp.c
-@@ -376,7 +376,7 @@ ocp_remove_one_device(unsigned int vendo
+--- a/arch/ppc/syslib/ocp.c
++++ b/arch/ppc/syslib/ocp.c
+@@ -376,7 +376,7 @@
down_write(&ocp_devices_sem);
dev = __ocp_find_device(vendor, function, index);
up_write(&ocp_devices_sem);
DBG(("ocp: ocp_remove_one_device(vendor: %x, function: %x, index: %d)... done.\n", vendor, function, index));
-Index: linux-2.6.24.7/arch/ppc/syslib/ppc83xx_setup.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/ppc83xx_setup.c
-+++ linux-2.6.24.7/arch/ppc/syslib/ppc83xx_setup.c
+--- a/arch/ppc/syslib/ppc83xx_setup.c
++++ b/arch/ppc/syslib/ppc83xx_setup.c
@@ -41,7 +41,6 @@
#include <syslib/ppc83xx_setup.h>
#include <syslib/ppc83xx_pci.h>
#endif
-Index: linux-2.6.24.7/arch/ppc/syslib/ppc85xx_rio.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/ppc85xx_rio.c
+--- a/arch/ppc/syslib/ppc85xx_rio.c
+++ /dev/null
@@ -1,932 +0,0 @@
-/*
- out_be32((void *)&dbell_atmu_regs->rowar, 0x8004200b);
- mpc85xx_rio_doorbell_init(port);
-}
-Index: linux-2.6.24.7/arch/ppc/syslib/ppc85xx_rio.h
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/ppc85xx_rio.h
+--- a/arch/ppc/syslib/ppc85xx_rio.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-extern void mpc85xx_rio_setup(int law_start, int law_size);
-
-#endif /* __PPC_SYSLIB_PPC85XX_RIO_H */
-Index: linux-2.6.24.7/arch/ppc/syslib/ppc8xx_pic.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/ppc8xx_pic.c
-+++ linux-2.6.24.7/arch/ppc/syslib/ppc8xx_pic.c
-@@ -16,7 +16,7 @@ extern int cpm_get_irq(void);
+--- a/arch/ppc/syslib/ppc8xx_pic.c
++++ b/arch/ppc/syslib/ppc8xx_pic.c
+@@ -16,7 +16,7 @@
* the only interrupt controller. Some boards, like the MBX and
* Sandpoint have the 8259 as a secondary controller. Depending
* upon the processor type, the internal controller can have as
* "clear_bit()" and "set_bit()" functions like other platforms,
* but they are overkill for us.
*/
-Index: linux-2.6.24.7/arch/ppc/syslib/ppc_sys.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/syslib/ppc_sys.c
-+++ linux-2.6.24.7/arch/ppc/syslib/ppc_sys.c
-@@ -185,7 +185,7 @@ void platform_notify_map(const struct pl
+--- a/arch/ppc/syslib/ppc_sys.c
++++ b/arch/ppc/syslib/ppc_sys.c
+@@ -185,7 +185,7 @@
*/
/*
Hereby, this should be called *before* any func stuff triggeded.
*/
void ppc_sys_device_initfunc(void)
-Index: linux-2.6.24.7/arch/ppc/xmon/start.c
-===================================================================
---- linux-2.6.24.7.orig/arch/ppc/xmon/start.c
-+++ linux-2.6.24.7/arch/ppc/xmon/start.c
+--- a/arch/ppc/xmon/start.c
++++ b/arch/ppc/xmon/start.c
@@ -10,7 +10,6 @@
#include <linux/sysrq.h>
#include <linux/bitops.h>
#include <asm/errno.h>
#include <asm/processor.h>
#include <asm/delay.h>
-Index: linux-2.6.24.7/drivers/ata/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/ata/Kconfig
-+++ linux-2.6.24.7/drivers/ata/Kconfig
-@@ -607,13 +607,23 @@ config PATA_WINBOND_VLB
+--- a/drivers/ata/Kconfig
++++ b/drivers/ata/Kconfig
+@@ -607,13 +607,23 @@
config PATA_PLATFORM
tristate "Generic platform device PATA support"
config PATA_ICSIDE
tristate "Acorn ICS PATA support"
depends on ARM && ARCH_ACORN
-Index: linux-2.6.24.7/drivers/ata/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/ata/Makefile
-+++ linux-2.6.24.7/drivers/ata/Makefile
-@@ -67,6 +67,7 @@ obj-$(CONFIG_PATA_IXP4XX_CF) += pata_ixp
+--- a/drivers/ata/Makefile
++++ b/drivers/ata/Makefile
+@@ -67,6 +67,7 @@
obj-$(CONFIG_PATA_SCC) += pata_scc.o
obj-$(CONFIG_PATA_BF54X) += pata_bf54x.o
obj-$(CONFIG_PATA_PLATFORM) += pata_platform.o
obj-$(CONFIG_PATA_ICSIDE) += pata_icside.o
# Should be last but two libata driver
obj-$(CONFIG_PATA_ACPI) += pata_acpi.o
-Index: linux-2.6.24.7/drivers/ata/pata_of_platform.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/ata/pata_of_platform.c
++++ b/drivers/ata/pata_of_platform.c
@@ -0,0 +1,114 @@
+/*
+ * OF-platform PATA driver
+MODULE_DESCRIPTION("OF-platform PATA driver");
+MODULE_AUTHOR("Anton Vorontsov <avorontsov@ru.mvista.com>");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/drivers/ata/pata_platform.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/ata/pata_platform.c
-+++ linux-2.6.24.7/drivers/ata/pata_platform.c
-@@ -93,14 +93,9 @@ static struct ata_port_operations pata_p
+--- a/drivers/ata/pata_platform.c
++++ b/drivers/ata/pata_platform.c
+@@ -93,14 +93,9 @@
};
static void pata_platform_setup_port(struct ata_ioports *ioaddr,
ioaddr->data_addr = ioaddr->cmd_addr + (ATA_REG_DATA << shift);
ioaddr->error_addr = ioaddr->cmd_addr + (ATA_REG_ERR << shift);
ioaddr->feature_addr = ioaddr->cmd_addr + (ATA_REG_FEATURE << shift);
-@@ -114,8 +109,13 @@ static void pata_platform_setup_port(str
+@@ -114,8 +109,13 @@
}
/**
*
* Register a platform bus IDE interface. Such interfaces are PIO and we
* assume do not support IRQ sharing.
-@@ -135,42 +135,18 @@ static void pata_platform_setup_port(str
+@@ -135,42 +135,18 @@
*
* If no IRQ resource is present, PIO polling mode is used instead.
*/
/*
* Check for MMIO
-@@ -181,20 +157,21 @@ static int __devinit pata_platform_probe
+@@ -181,20 +157,21 @@
/*
* And the IRQ
*/
ap->flags |= ATA_FLAG_SLAVE_POSS;
/*
-@@ -209,25 +186,24 @@ static int __devinit pata_platform_probe
+@@ -209,25 +186,24 @@
* Handle the MMIO case
*/
if (mmio) {
ata_port_desc(ap, "%s cmd 0x%llx ctl 0x%llx", mmio ? "mmio" : "ioport",
(unsigned long long)io_res->start,
-@@ -235,26 +211,78 @@ static int __devinit pata_platform_probe
+@@ -235,26 +211,78 @@
/* activate */
return ata_host_activate(host, irq, irq ? ata_interrupt : NULL,
static struct platform_driver pata_platform_driver = {
.probe = pata_platform_probe,
-Index: linux-2.6.24.7/drivers/char/hw_random/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/char/hw_random/Kconfig
-+++ linux-2.6.24.7/drivers/char/hw_random/Kconfig
-@@ -98,7 +98,7 @@ config HW_RANDOM_PASEMI
+--- a/drivers/char/hw_random/Kconfig
++++ b/drivers/char/hw_random/Kconfig
+@@ -98,7 +98,7 @@
default HW_RANDOM
---help---
This driver provides kernel-side support for the Random Number
To compile this driver as a module, choose M here: the
module will be called pasemi-rng.
-Index: linux-2.6.24.7/drivers/char/hw_random/pasemi-rng.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/char/hw_random/pasemi-rng.c
-+++ linux-2.6.24.7/drivers/char/hw_random/pasemi-rng.c
-@@ -126,10 +126,9 @@ static int __devexit rng_remove(struct o
+--- a/drivers/char/hw_random/pasemi-rng.c
++++ b/drivers/char/hw_random/pasemi-rng.c
+@@ -126,10 +126,9 @@
}
static struct of_device_id rng_match[] = {
};
static struct of_platform_driver rng_driver = {
-Index: linux-2.6.24.7/drivers/edac/pasemi_edac.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/edac/pasemi_edac.c
-+++ linux-2.6.24.7/drivers/edac/pasemi_edac.c
-@@ -225,7 +225,7 @@ static int __devinit pasemi_edac_probe(s
+--- a/drivers/edac/pasemi_edac.c
++++ b/drivers/edac/pasemi_edac.c
+@@ -225,7 +225,7 @@
EDAC_FLAG_NONE;
mci->mod_name = MODULE_NAME;
mci->dev_name = pci_name(pdev);
mci->edac_check = pasemi_edac_check;
mci->ctl_page_to_phys = NULL;
pci_read_config_dword(pdev, MCCFG_SCRUB, &scrub);
-@@ -297,4 +297,4 @@ module_exit(pasemi_edac_exit);
+@@ -297,4 +297,4 @@
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Egor Martovetsky <egor@pasemi.com>");
-MODULE_DESCRIPTION("MC support for PA Semi PA6T-1682M memory controller");
+MODULE_DESCRIPTION("MC support for PA Semi PWRficient memory controller");
-Index: linux-2.6.24.7/drivers/macintosh/adb.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/macintosh/adb.c
-+++ linux-2.6.24.7/drivers/macintosh/adb.c
+--- a/drivers/macintosh/adb.c
++++ b/drivers/macintosh/adb.c
@@ -35,6 +35,7 @@
#include <linux/spinlock.h>
#include <linux/completion.h>
#include <asm/uaccess.h>
#include <asm/semaphore.h>
-@@ -82,21 +83,11 @@ struct adb_driver *adb_controller;
+@@ -82,21 +83,11 @@
BLOCKING_NOTIFIER_HEAD(adb_client_list);
static int adb_got_sleep;
static int adb_inited;
static int adb_scan_bus(void);
static int do_adb_reset_bus(void);
static void adbdev_init(void);
-@@ -134,16 +125,6 @@ static void printADBreply(struct adb_req
+@@ -134,16 +125,6 @@
}
#endif
static int adb_scan_bus(void)
{
int i, highFree=0, noMovement;
-@@ -248,13 +229,10 @@ static int adb_scan_bus(void)
+@@ -248,13 +229,10 @@
static int
adb_probe_task(void *x)
{
up(&adb_probe_mutex);
return 0;
-@@ -263,7 +241,7 @@ adb_probe_task(void *x)
+@@ -263,7 +241,7 @@
static void
__adb_probe_task(struct work_struct *bullshit)
{
}
static DECLARE_WORK(adb_reset_work, __adb_probe_task);
-@@ -281,6 +259,36 @@ adb_reset_bus(void)
+@@ -281,6 +259,36 @@
return 0;
}
int __init adb_init(void)
{
struct adb_driver *driver;
-@@ -313,15 +321,12 @@ int __init adb_init(void)
+@@ -313,15 +321,12 @@
printk(KERN_WARNING "Warning: no ADB interface detected\n");
adb_controller = NULL;
} else {
adbdev_init();
adb_reset_bus();
}
-@@ -330,33 +335,6 @@ int __init adb_init(void)
+@@ -330,33 +335,6 @@
__initcall(adb_init);
static int
do_adb_reset_bus(void)
{
-@@ -373,7 +351,7 @@ do_adb_reset_bus(void)
+@@ -373,7 +351,7 @@
if (sleepy_trackpad) {
/* Let the trackpad settle down */
}
down(&adb_handler_sem);
-@@ -389,7 +367,7 @@ do_adb_reset_bus(void)
+@@ -389,7 +367,7 @@
if (sleepy_trackpad) {
/* Let the trackpad settle down */
}
if (!ret) {
-@@ -413,41 +391,27 @@ adb_poll(void)
+@@ -413,41 +391,27 @@
adb_controller->poll();
}
req->nbytes = nbytes+1;
req->done = done;
req->reply_expected = flags & ADBREQ_REPLY;
-@@ -460,25 +424,18 @@ adb_request(struct adb_request *req, voi
+@@ -460,25 +424,18 @@
if (flags & ADBREQ_NOSEND)
return 0;
return rc;
}
-@@ -864,7 +821,29 @@ static const struct file_operations adb_
+@@ -864,7 +821,29 @@
.release = adb_release,
};
adbdev_init(void)
{
if (register_chrdev(ADB_MAJOR, "adb", &adb_fops)) {
-@@ -876,4 +855,7 @@ adbdev_init(void)
+@@ -876,4 +855,7 @@
if (IS_ERR(adb_dev_class))
return;
class_device_create(adb_dev_class, NULL, MKDEV(ADB_MAJOR, 0), NULL, "adb");
+ platform_device_register(&adb_pfdev);
+ platform_driver_probe(&adb_pfdrv, adb_dummy_probe);
}
-Index: linux-2.6.24.7/drivers/macintosh/mediabay.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/macintosh/mediabay.c
-+++ linux-2.6.24.7/drivers/macintosh/mediabay.c
+--- a/drivers/macintosh/mediabay.c
++++ b/drivers/macintosh/mediabay.c
@@ -20,6 +20,7 @@
#include <linux/stddef.h>
#include <linux/init.h>
#ifdef MB_DEBUG
#define MBDBG(fmt, arg...) printk(KERN_INFO fmt , ## arg)
-@@ -622,12 +622,7 @@ static int media_bay_task(void *x)
+@@ -622,12 +622,7 @@
{
int i;
for (i = 0; i < media_bay_count; ++i) {
down(&media_bays[i].lock);
if (!media_bays[i].sleeping)
-@@ -636,9 +631,8 @@ static int media_bay_task(void *x)
+@@ -636,9 +631,8 @@
}
msleep_interruptible(MB_POLL_DELAY);
}
static int __devinit media_bay_attach(struct macio_dev *mdev, const struct of_device_id *match)
-@@ -699,7 +693,7 @@ static int __devinit media_bay_attach(st
+@@ -699,7 +693,7 @@
/* Startup kernel thread */
if (i == 0)
return 0;
-Index: linux-2.6.24.7/drivers/macintosh/therm_adt746x.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/macintosh/therm_adt746x.c
-+++ linux-2.6.24.7/drivers/macintosh/therm_adt746x.c
-@@ -553,6 +553,7 @@ thermostat_init(void)
+--- a/drivers/macintosh/therm_adt746x.c
++++ b/drivers/macintosh/therm_adt746x.c
+@@ -553,6 +553,7 @@
struct device_node* np;
const u32 *prop;
int i = 0, offset = 0;
np = of_find_node_by_name(NULL, "fan");
if (!np)
-@@ -612,17 +613,20 @@ thermostat_init(void)
+@@ -612,17 +613,20 @@
return -ENODEV;
}
#ifndef CONFIG_I2C_POWERMAC
request_module("i2c-powermac");
-Index: linux-2.6.24.7/drivers/macintosh/therm_pm72.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/macintosh/therm_pm72.c
-+++ linux-2.6.24.7/drivers/macintosh/therm_pm72.c
+--- a/drivers/macintosh/therm_pm72.c
++++ b/drivers/macintosh/therm_pm72.c
@@ -121,6 +121,7 @@
#include <linux/reboot.h>
#include <linux/kmod.h>
#include <asm/prom.h>
#include <asm/machdep.h>
#include <asm/io.h>
-@@ -161,7 +162,7 @@ static struct slots_pid_state slots_sta
+@@ -161,7 +162,7 @@
static int state;
static int cpu_count;
static int cpu_pid_type;
static struct completion ctrl_complete;
static int critical_state;
static int rackmac;
-@@ -1156,6 +1157,8 @@ static void do_monitor_cpu_rack(struct c
+@@ -1156,6 +1157,8 @@
*/
static int init_cpu_state(struct cpu_pid_state *state, int index)
{
state->index = index;
state->first = 1;
state->rpm = (cpu_pid_type == CPU_PID_TYPE_RACKMAC) ? 4000 : 1000;
-@@ -1181,18 +1184,21 @@ static int init_cpu_state(struct cpu_pid
+@@ -1181,18 +1184,21 @@
DBG("CPU %d Using %d power history entries\n", index, state->count_power);
if (index == 0) {
return 0;
fail:
-@@ -1328,6 +1334,7 @@ static int init_backside_state(struct ba
+@@ -1328,6 +1334,7 @@
{
struct device_node *u3;
int u3h = 1; /* conservative by default */
/*
* There are different PID params for machines with U3 and machines
-@@ -1379,8 +1386,11 @@ static int init_backside_state(struct ba
+@@ -1379,8 +1386,11 @@
if (state->monitor == NULL)
return -ENODEV;
return 0;
}
-@@ -1491,6 +1501,8 @@ static void do_monitor_drives(struct dri
+@@ -1491,6 +1501,8 @@
*/
static int init_drives_state(struct drives_pid_state *state)
{
state->ticks = 1;
state->first = 1;
state->rpm = 1000;
-@@ -1499,8 +1511,11 @@ static int init_drives_state(struct driv
+@@ -1499,8 +1511,11 @@
if (state->monitor == NULL)
return -ENODEV;
return 0;
}
-@@ -1621,7 +1636,9 @@ static int init_dimms_state(struct dimm_
+@@ -1621,7 +1636,9 @@
if (state->monitor == NULL)
return -ENODEV;
return 0;
}
-@@ -1731,6 +1748,8 @@ static void do_monitor_slots(struct slot
+@@ -1731,6 +1748,8 @@
*/
static int init_slots_state(struct slots_pid_state *state)
{
state->ticks = 1;
state->first = 1;
state->pwm = 50;
-@@ -1739,8 +1758,11 @@ static int init_slots_state(struct slots
+@@ -1739,8 +1758,11 @@
if (state->monitor == NULL)
return -ENODEV;
return 0;
}
-@@ -1779,8 +1801,6 @@ static int call_critical_overtemp(void)
+@@ -1779,8 +1801,6 @@
*/
static int main_control_loop(void *x)
{
DBG("main_control_loop started\n");
down(&driver_lock);
-@@ -1956,7 +1976,7 @@ static void start_control_loops(void)
+@@ -1956,7 +1976,7 @@
{
init_completion(&ctrl_complete);
}
/*
-@@ -1964,7 +1984,7 @@ static void start_control_loops(void)
+@@ -1964,7 +1984,7 @@
*/
static void stop_control_loops(void)
{
wait_for_completion(&ctrl_complete);
}
-Index: linux-2.6.24.7/drivers/macintosh/therm_windtunnel.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/macintosh/therm_windtunnel.c
-+++ linux-2.6.24.7/drivers/macintosh/therm_windtunnel.c
+--- a/drivers/macintosh/therm_windtunnel.c
++++ b/drivers/macintosh/therm_windtunnel.c
@@ -36,6 +36,7 @@
#include <linux/i2c.h>
#include <linux/slab.h>
#include <asm/prom.h>
#include <asm/machdep.h>
-@@ -61,8 +62,7 @@ I2C_CLIENT_INSMOD;
+@@ -61,8 +62,7 @@
static struct {
volatile int running;
struct semaphore lock;
struct of_device *of_dev;
-@@ -223,6 +223,7 @@ static void
+@@ -223,6 +223,7 @@
setup_hardware( void )
{
int val;
/* save registers (if we unload the module) */
x.r0 = read_reg( x.fan, 0x00, 1 );
-@@ -265,8 +266,11 @@ setup_hardware( void )
+@@ -265,8 +266,11 @@
x.upind = -1;
/* tune_fan( fan_up_table[x.upind].fan_setting ); */
}
static void
-@@ -282,27 +286,27 @@ restore_regs( void )
+@@ -282,27 +286,27 @@
write_reg( x.fan, 0x00, x.r0, 1 );
}
}
-@@ -322,8 +326,7 @@ do_attach( struct i2c_adapter *adapter )
+@@ -322,8 +326,7 @@
ret = i2c_probe( adapter, &addr_data, &do_probe );
if( x.thermostat && x.fan ) {
x.running = 1;
}
}
return ret;
-@@ -339,7 +342,8 @@ do_detach( struct i2c_client *client )
+@@ -339,7 +342,8 @@
else {
if( x.running ) {
x.running = 0;
}
if( client == x.thermostat )
x.thermostat = NULL;
-Index: linux-2.6.24.7/drivers/macintosh/via-pmu-backlight.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/macintosh/via-pmu-backlight.c
-+++ linux-2.6.24.7/drivers/macintosh/via-pmu-backlight.c
-@@ -22,7 +22,7 @@ static u8 bl_curve[FB_BACKLIGHT_LEVELS];
+--- a/drivers/macintosh/via-pmu-backlight.c
++++ b/drivers/macintosh/via-pmu-backlight.c
+@@ -22,7 +22,7 @@
static void pmu_backlight_init_curve(u8 off, u8 min, u8 max)
{
bl_curve[0] = off;
-@@ -68,17 +68,11 @@ static int pmu_backlight_get_level_brigh
+@@ -68,17 +68,11 @@
return pmulevel;
}
if (bd->props.power != FB_BLANK_UNBLANK ||
bd->props.fb_blank != FB_BLANK_UNBLANK)
-@@ -99,12 +93,23 @@ static int pmu_backlight_update_status(s
+@@ -99,12 +93,23 @@
pmu_wait_complete(&req);
}
static int pmu_backlight_get_brightness(struct backlight_device *bd)
{
return bd->props.brightness;
-@@ -123,6 +128,16 @@ void pmu_backlight_set_sleep(int sleep)
+@@ -123,6 +128,16 @@
spin_lock_irqsave(&pmu_backlight_lock, flags);
sleeping = sleep;
spin_unlock_irqrestore(&pmu_backlight_lock, flags);
}
#endif /* CONFIG_PM */
-@@ -148,8 +163,8 @@ void __init pmu_backlight_init()
+@@ -148,8 +163,8 @@
bd = backlight_device_register(name, NULL, NULL, &pmu_backlight_data);
if (IS_ERR(bd)) {
}
bd->props.max_brightness = FB_BACKLIGHT_LEVELS - 1;
pmu_backlight_init_curve(0x7F, 0x46, 0x0E);
-@@ -171,10 +186,5 @@ void __init pmu_backlight_init()
+@@ -171,10 +186,5 @@
bd->props.power = FB_BLANK_UNBLANK;
backlight_update_status(bd);
- return;
+ printk(KERN_INFO "PMU Backlight initialized (%s)\n", name);
}
-Index: linux-2.6.24.7/drivers/macintosh/via-pmu.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/macintosh/via-pmu.c
-+++ linux-2.6.24.7/drivers/macintosh/via-pmu.c
+--- a/drivers/macintosh/via-pmu.c
++++ b/drivers/macintosh/via-pmu.c
@@ -10,13 +10,11 @@
*
* Copyright (C) 1998 Paul Mackerras and Fabio Riccardi.
/* Misc minor number allocated for /dev/pmu */
#define PMU_MINOR 154
-@@ -152,12 +147,9 @@ static spinlock_t pmu_lock;
+@@ -152,12 +147,9 @@
static u8 pmu_intr_mask;
static int pmu_version;
static int drop_interrupts;
static unsigned long async_req_locks;
static unsigned int pmu_irq_stats[11];
-@@ -177,7 +169,6 @@ static struct proc_dir_entry *proc_pmu_b
+@@ -177,7 +169,6 @@
int __fake_sleep;
int asleep;
#ifdef CONFIG_ADB
static int adb_dev_map;
-@@ -224,7 +215,7 @@ extern void enable_kernel_fp(void);
+@@ -224,7 +215,7 @@
#ifdef DEBUG_SLEEP
int pmu_polled_request(struct adb_request *req);
#endif
/*
-@@ -875,7 +866,7 @@ proc_read_options(char *page, char **sta
+@@ -875,7 +866,7 @@
{
char *p = page;
if (pmu_kind == PMU_KEYLARGO_BASED &&
pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0)
p += sprintf(p, "lid_wakeup=%d\n", option_lid_wakeup);
-@@ -916,7 +907,7 @@ proc_write_options(struct file *file, co
+@@ -916,7 +907,7 @@
*(val++) = 0;
while(*val == ' ')
val++;
if (pmu_kind == PMU_KEYLARGO_BASED &&
pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0)
if (!strcmp(label, "lid_wakeup"))
-@@ -1256,9 +1247,7 @@ void
+@@ -1256,9 +1247,7 @@
pmu_suspend(void)
{
unsigned long flags;
if (!via)
return;
-@@ -1276,17 +1265,10 @@ pmu_suspend(void)
+@@ -1276,17 +1265,10 @@
via_pmu_interrupt(0, NULL);
spin_lock_irqsave(&pmu_lock, flags);
if (!adb_int_pending && pmu_state == idle && !req_awaiting_reply) {
break;
}
} while (1);
-@@ -1307,18 +1289,11 @@ pmu_resume(void)
+@@ -1307,18 +1289,11 @@
return;
}
adb_int_pending = 1;
}
/* Interrupt data could be the result data from an ADB cmd */
-@@ -1738,228 +1713,7 @@ pmu_present(void)
+@@ -1738,228 +1713,7 @@
return via != 0;
}
/*
* Put the powerbook to sleep.
*/
-@@ -1994,134 +1748,6 @@ restore_via_state(void)
+@@ -1994,134 +1748,6 @@
out_8(&via[IER], IER_SET | SR_INT | CB1_INT);
}
#define GRACKLE_PM (1<<7)
#define GRACKLE_DOZE (1<<5)
#define GRACKLE_NAP (1<<4)
-@@ -2132,19 +1758,12 @@ static int powerbook_sleep_grackle(void)
+@@ -2132,19 +1758,12 @@
unsigned long save_l2cr;
unsigned short pmcr1;
struct adb_request req;
/* Turn off various things. Darwin does some retry tests here... */
pmu_request(&req, NULL, 2, PMU_POWER_CTRL0, PMU_POW0_OFF|PMU_POW0_HARD_DRIVE);
pmu_wait_complete(&req);
-@@ -2207,8 +1826,6 @@ static int powerbook_sleep_grackle(void)
+@@ -2207,8 +1826,6 @@
PMU_POW_ON|PMU_POW_BACKLIGHT|PMU_POW_CHARGER|PMU_POW_IRLED|PMU_POW_MEDIABAY);
pmu_wait_complete(&req);
return 0;
}
-@@ -2218,7 +1835,6 @@ powerbook_sleep_Core99(void)
+@@ -2218,7 +1835,6 @@
unsigned long save_l2cr;
unsigned long save_l3cr;
struct adb_request req;
if (pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) < 0) {
printk(KERN_ERR "Sleep mode not supported on this machine\n");
-@@ -2228,12 +1844,6 @@ powerbook_sleep_Core99(void)
+@@ -2228,12 +1844,6 @@
if (num_online_cpus() > 1 || cpu_is_offline(0))
return -EAGAIN;
/* Stop environment and ADB interrupts */
pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, 0);
pmu_wait_complete(&req);
-@@ -2304,45 +1914,33 @@ powerbook_sleep_Core99(void)
+@@ -2304,45 +1914,33 @@
/* Restore LPJ, cpufreq will adjust the cpu frequency */
loops_per_jiffy /= 2;
/* Set the memory controller to keep the memory refreshed
while we're asleep */
-@@ -2357,41 +1955,34 @@ powerbook_sleep_3400(void)
+@@ -2357,41 +1955,34 @@
/* Ask the PMU to put us to sleep */
pmu_request(&sleep_req, NULL, 5, PMU_SLEEP, 'M', 'A', 'T', 'T');
/*
* Support for /dev/pmu device
-@@ -2548,7 +2139,6 @@ pmu_release(struct inode *inode, struct
+@@ -2548,7 +2139,6 @@
struct pmu_private *pp = file->private_data;
unsigned long flags;
if (pp != 0) {
file->private_data = NULL;
spin_lock_irqsave(&all_pvt_lock, flags);
-@@ -2562,10 +2152,96 @@ pmu_release(struct inode *inode, struct
+@@ -2562,10 +2152,96 @@
kfree(pp);
}
static int
pmu_ioctl(struct inode * inode, struct file *filp,
u_int cmd, u_long arg)
-@@ -2574,35 +2250,15 @@ pmu_ioctl(struct inode * inode, struct f
+@@ -2574,35 +2250,15 @@
int error = -EINVAL;
switch (cmd) {
#ifdef CONFIG_PMAC_BACKLIGHT_LEGACY
/* Compatibility ioctl's for backlight */
-@@ -2610,9 +2266,6 @@ pmu_ioctl(struct inode * inode, struct f
+@@ -2610,9 +2266,6 @@
{
int brightness;
brightness = pmac_backlight_get_legacy_brightness();
if (brightness < 0)
return brightness;
-@@ -2624,9 +2277,6 @@ pmu_ioctl(struct inode * inode, struct f
+@@ -2624,9 +2277,6 @@
{
int brightness;
error = get_user(brightness, argp);
if (error)
return error;
-@@ -2751,15 +2401,43 @@ pmu_polled_request(struct adb_request *r
+@@ -2751,15 +2401,43 @@
local_irq_restore(flags);
return 0;
}
int pmu_sys_suspended;
static int pmu_sys_suspend(struct sys_device *sysdev, pm_message_t state)
-@@ -2767,10 +2445,15 @@ static int pmu_sys_suspend(struct sys_de
+@@ -2767,10 +2445,15 @@
if (state.event != PM_EVENT_SUSPEND || pmu_sys_suspended)
return 0;
return 0;
}
-@@ -2785,15 +2468,18 @@ static int pmu_sys_resume(struct sys_dev
+@@ -2785,15 +2468,18 @@
pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2);
pmu_wait_complete(&req);
static struct sysdev_class pmu_sysclass = {
set_kset_name("pmu"),
-@@ -2804,10 +2490,10 @@ static struct sys_device device_pmu = {
+@@ -2804,10 +2490,10 @@
};
static struct sysdev_driver driver_pmu = {
};
static int __init init_pmu_sysfs(void)
-@@ -2842,10 +2528,10 @@ EXPORT_SYMBOL(pmu_wait_complete);
+@@ -2842,10 +2528,10 @@
EXPORT_SYMBOL(pmu_suspend);
EXPORT_SYMBOL(pmu_resume);
EXPORT_SYMBOL(pmu_unlock);
-#endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */
+#endif /* CONFIG_SUSPEND && CONFIG_PPC32 */
-Index: linux-2.6.24.7/drivers/net/fs_enet/fs_enet-main.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/net/fs_enet/fs_enet-main.c
-+++ linux-2.6.24.7/drivers/net/fs_enet/fs_enet-main.c
-@@ -1178,8 +1178,15 @@ static int __devinit find_phy(struct dev
+--- a/drivers/net/fs_enet/fs_enet-main.c
++++ b/drivers/net/fs_enet/fs_enet-main.c
+@@ -1178,8 +1178,15 @@
struct device_node *phynode, *mdionode;
struct resource res;
int ret = 0, len;
if (!data || len != 4)
return -EINVAL;
-Index: linux-2.6.24.7/drivers/net/fs_enet/mac-fcc.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/net/fs_enet/mac-fcc.c
-+++ linux-2.6.24.7/drivers/net/fs_enet/mac-fcc.c
+--- a/drivers/net/fs_enet/mac-fcc.c
++++ b/drivers/net/fs_enet/mac-fcc.c
@@ -81,16 +81,8 @@
static inline int fcc_cr_cmd(struct fs_enet_private *fep, u32 op)
{
}
static int do_pd_setup(struct fs_enet_private *fep)
-Index: linux-2.6.24.7/drivers/net/fs_enet/mac-scc.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/net/fs_enet/mac-scc.c
-+++ linux-2.6.24.7/drivers/net/fs_enet/mac-scc.c
+--- a/drivers/net/fs_enet/mac-scc.c
++++ b/drivers/net/fs_enet/mac-scc.c
@@ -89,21 +89,12 @@
* Delay to wait for SCC reset command to complete (in us)
*/
}
static int do_pd_setup(struct fs_enet_private *fep)
-Index: linux-2.6.24.7/drivers/net/ibm_newemac/core.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/net/ibm_newemac/core.c
-+++ linux-2.6.24.7/drivers/net/ibm_newemac/core.c
+--- a/drivers/net/ibm_newemac/core.c
++++ b/drivers/net/ibm_newemac/core.c
@@ -37,6 +37,7 @@
#include <linux/mii.h>
#include <linux/bitops.h>
#include <asm/processor.h>
#include <asm/io.h>
-Index: linux-2.6.24.7/drivers/net/phy/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/net/phy/Kconfig
-+++ linux-2.6.24.7/drivers/net/phy/Kconfig
-@@ -61,34 +61,12 @@ config ICPLUS_PHY
+--- a/drivers/net/phy/Kconfig
++++ b/drivers/net/phy/Kconfig
+@@ -61,34 +61,12 @@
Currently supports the IP175C PHY.
config FIXED_PHY
config MDIO_BITBANG
tristate "Support for bitbanged MDIO buses"
-Index: linux-2.6.24.7/drivers/net/phy/fixed.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/net/phy/fixed.c
-+++ linux-2.6.24.7/drivers/net/phy/fixed.c
+--- a/drivers/net/phy/fixed.c
++++ b/drivers/net/phy/fixed.c
@@ -1,362 +1,253 @@
/*
- * drivers/net/phy/fixed.c
+MODULE_DESCRIPTION("Fixed MDIO bus (MDIO bus emulation with fixed PHYs)");
+MODULE_AUTHOR("Vitaly Bordug");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.24.7/drivers/net/ps3_gelic_net.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/net/ps3_gelic_net.c
-+++ linux-2.6.24.7/drivers/net/ps3_gelic_net.c
-@@ -58,11 +58,11 @@ static inline struct device *ctodev(stru
+--- a/drivers/net/ps3_gelic_net.c
++++ b/drivers/net/ps3_gelic_net.c
+@@ -58,11 +58,11 @@
{
return &card->dev->core;
}
{
return card->dev->dev_id;
}
-Index: linux-2.6.24.7/drivers/net/ucc_geth.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/net/ucc_geth.c
-+++ linux-2.6.24.7/drivers/net/ucc_geth.c
-@@ -3822,6 +3822,7 @@ static int ucc_geth_probe(struct of_devi
+--- a/drivers/net/ucc_geth.c
++++ b/drivers/net/ucc_geth.c
+@@ -3822,6 +3822,7 @@
int err, ucc_num, max_speed = 0;
const phandle *ph;
const unsigned int *prop;
const void *mac_addr;
phy_interface_t phy_interface;
static const int enet_to_speed[] = {
-@@ -3854,10 +3855,56 @@ static int ucc_geth_probe(struct of_devi
+@@ -3854,10 +3855,56 @@
ug_info->uf_info.ucc_num = ucc_num;
err = of_address_to_resource(np, 0, &res);
if (err)
return -EINVAL;
-Index: linux-2.6.24.7/drivers/of/base.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/of/base.c
-+++ linux-2.6.24.7/drivers/of/base.c
-@@ -273,3 +273,61 @@ struct device_node *of_find_compatible_n
+--- a/drivers/of/base.c
++++ b/drivers/of/base.c
+@@ -273,3 +273,61 @@
return np;
}
EXPORT_SYMBOL(of_find_compatible_node);
+ return np;
+}
+EXPORT_SYMBOL(of_find_matching_node);
-Index: linux-2.6.24.7/drivers/of/device.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/of/device.c
-+++ linux-2.6.24.7/drivers/of/device.c
+--- a/drivers/of/device.c
++++ b/drivers/of/device.c
@@ -10,35 +10,6 @@
#include <asm/errno.h>
* of_match_device - Tell if an of_device structure has a matching
* of_match structure
* @ids: array of of device match structures to search in
-Index: linux-2.6.24.7/drivers/ps3/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/ps3/Makefile
-+++ linux-2.6.24.7/drivers/ps3/Makefile
-@@ -4,3 +4,4 @@ ps3av_mod-objs += ps3av.o ps3av_cmd.o
+--- a/drivers/ps3/Makefile
++++ b/drivers/ps3/Makefile
+@@ -4,3 +4,4 @@
obj-$(CONFIG_PPC_PS3) += sys-manager-core.o
obj-$(CONFIG_PS3_SYS_MANAGER) += ps3-sys-manager.o
obj-$(CONFIG_PS3_STORAGE) += ps3stor_lib.o
+obj-$(CONFIG_PS3_LPM) += ps3-lpm.o
-Index: linux-2.6.24.7/drivers/ps3/ps3-lpm.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/ps3/ps3-lpm.c
++++ b/drivers/ps3/ps3-lpm.c
@@ -0,0 +1,1248 @@
+/*
+ * PS3 Logical Performance Monitor.
+MODULE_DESCRIPTION("PS3 Logical Performance Monitor Driver");
+MODULE_AUTHOR("Sony Corporation");
+MODULE_ALIAS(PS3_MODULE_ALIAS_LPM);
-Index: linux-2.6.24.7/drivers/ps3/ps3-sys-manager.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/ps3/ps3-sys-manager.c
-+++ linux-2.6.24.7/drivers/ps3/ps3-sys-manager.c
-@@ -452,7 +452,7 @@ static int ps3_sys_manager_handle_event(
+--- a/drivers/ps3/ps3-sys-manager.c
++++ b/drivers/ps3/ps3-sys-manager.c
+@@ -452,7 +452,7 @@
case PS3_SM_EVENT_THERMAL_ALERT:
dev_dbg(&dev->core, "%s:%d: THERMAL_ALERT (zone %u)\n",
__func__, __LINE__, event.value);
break;
case PS3_SM_EVENT_THERMAL_CLEARED:
dev_dbg(&dev->core, "%s:%d: THERMAL_CLEARED (zone %u)\n",
-@@ -488,7 +488,7 @@ static int ps3_sys_manager_handle_cmd(st
+@@ -488,7 +488,7 @@
result = ps3_vuart_read(dev, &cmd, sizeof(cmd));
BUG_ON(result && "need to retry here");
return result;
if (cmd.version != 1) {
-@@ -521,7 +521,7 @@ static int ps3_sys_manager_handle_msg(st
+@@ -521,7 +521,7 @@
result = ps3_vuart_read(dev, &header,
sizeof(struct ps3_sys_manager_header));
return result;
if (header.version != 1) {
-@@ -589,9 +589,9 @@ static void ps3_sys_manager_final_power_
+@@ -589,9 +589,9 @@
PS3_SM_WAKE_DEFAULT);
ps3_sys_manager_send_request_shutdown(dev);
ps3_sys_manager_handle_msg(dev);
}
-@@ -626,9 +626,9 @@ static void ps3_sys_manager_final_restar
+@@ -626,9 +626,9 @@
PS3_SM_WAKE_DEFAULT);
ps3_sys_manager_send_request_shutdown(dev);
ps3_sys_manager_handle_msg(dev);
}
-Index: linux-2.6.24.7/drivers/ps3/ps3-vuart.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/ps3/ps3-vuart.c
-+++ linux-2.6.24.7/drivers/ps3/ps3-vuart.c
-@@ -108,18 +108,18 @@ static struct ps3_vuart_port_priv *to_po
+--- a/drivers/ps3/ps3-vuart.c
++++ b/drivers/ps3/ps3-vuart.c
+@@ -108,18 +108,18 @@
struct ports_bmp {
u64 status;
u64 unused[3];
{
#if defined(DEBUG)
static const char *strings[] = {
-@@ -363,7 +363,7 @@ int ps3_vuart_disable_interrupt_disconne
+@@ -363,7 +363,7 @@
*/
static int ps3_vuart_raw_write(struct ps3_system_bus_device *dev,
{
int result;
struct ps3_vuart_port_priv *priv = to_port_priv(dev);
-@@ -431,7 +431,7 @@ void ps3_vuart_clear_rx_bytes(struct ps3
+@@ -431,7 +431,7 @@
int result;
struct ps3_vuart_port_priv *priv = to_port_priv(dev);
u64 bytes_waiting;
result = ps3_vuart_get_rx_bytes_waiting(dev, &bytes_waiting);
-@@ -526,9 +526,8 @@ int ps3_vuart_write(struct ps3_system_bu
+@@ -526,9 +526,8 @@
lb = kmalloc(sizeof(struct list_buffer) + bytes, GFP_KERNEL);
memcpy(lb->data, buf, bytes);
lb->head = lb->data;
-@@ -878,7 +877,7 @@ static int ps3_vuart_handle_port_interru
+@@ -878,7 +877,7 @@
struct vuart_bus_priv {
struct ports_bmp *bmp;
unsigned int virq;
int use_count;
struct ps3_system_bus_device *devices[PORT_COUNT];
} static vuart_bus_priv;
-@@ -926,9 +925,8 @@ static int ps3_vuart_bus_interrupt_get(v
+@@ -926,9 +925,8 @@
BUG_ON(vuart_bus_priv.use_count > 2);
BUG_ON(vuart_bus_priv.bmp);
-@@ -1017,7 +1015,7 @@ static int ps3_vuart_probe(struct ps3_sy
+@@ -1017,7 +1015,7 @@
return -EINVAL;
}
result = ps3_vuart_bus_interrupt_get();
-@@ -1077,7 +1075,7 @@ static int ps3_vuart_probe(struct ps3_sy
+@@ -1077,7 +1075,7 @@
goto fail_probe;
}
return result;
-@@ -1090,7 +1088,7 @@ fail_dev_malloc:
+@@ -1090,7 +1088,7 @@
fail_busy:
ps3_vuart_bus_interrupt_put();
fail_setup_interrupt:
dev_dbg(&dev->core, "%s:%d: failed\n", __func__, __LINE__);
return result;
}
-@@ -1129,7 +1127,7 @@ static int ps3_vuart_remove(struct ps3_s
+@@ -1129,7 +1127,7 @@
BUG_ON(!dev);
dev_dbg(&dev->core, " -> %s:%d: match_id %d\n", __func__, __LINE__,
dev->match_id);
-@@ -1137,7 +1135,7 @@ static int ps3_vuart_remove(struct ps3_s
+@@ -1137,7 +1135,7 @@
if (!dev->core.driver) {
dev_dbg(&dev->core, "%s:%d: no driver bound\n", __func__,
__LINE__);
return 0;
}
-@@ -1160,7 +1158,7 @@ static int ps3_vuart_remove(struct ps3_s
+@@ -1160,7 +1158,7 @@
priv = NULL;
dev_dbg(&dev->core, " <- %s:%d\n", __func__, __LINE__);
return 0;
}
-@@ -1180,7 +1178,7 @@ static int ps3_vuart_shutdown(struct ps3
+@@ -1180,7 +1178,7 @@
BUG_ON(!dev);
dev_dbg(&dev->core, " -> %s:%d: match_id %d\n", __func__, __LINE__,
dev->match_id);
-@@ -1188,7 +1186,7 @@ static int ps3_vuart_shutdown(struct ps3
+@@ -1188,7 +1186,7 @@
if (!dev->core.driver) {
dev_dbg(&dev->core, "%s:%d: no driver bound\n", __func__,
__LINE__);
return 0;
}
-@@ -1212,7 +1210,7 @@ static int ps3_vuart_shutdown(struct ps3
+@@ -1212,7 +1210,7 @@
dev_dbg(&dev->core, " <- %s:%d\n", __func__, __LINE__);
return 0;
}
-@@ -1223,7 +1221,7 @@ static int __init ps3_vuart_bus_init(voi
+@@ -1223,7 +1221,7 @@
if (!firmware_has_feature(FW_FEATURE_PS3_LV1))
return -ENODEV;
return 0;
}
-Index: linux-2.6.24.7/drivers/serial/Kconfig
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/Kconfig
-+++ linux-2.6.24.7/drivers/serial/Kconfig
-@@ -1284,4 +1284,14 @@ config SERIAL_OF_PLATFORM
+--- a/drivers/serial/Kconfig
++++ b/drivers/serial/Kconfig
+@@ -1284,4 +1284,14 @@
Currently, only 8250 compatible ports are supported, but
others can easily be added.
+ PowerPC that contain a QUICC Engine.
+
endmenu
-Index: linux-2.6.24.7/drivers/serial/Makefile
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/Makefile
-+++ linux-2.6.24.7/drivers/serial/Makefile
-@@ -64,3 +64,4 @@ obj-$(CONFIG_SERIAL_UARTLITE) += uartlit
+--- a/drivers/serial/Makefile
++++ b/drivers/serial/Makefile
+@@ -64,3 +64,4 @@
obj-$(CONFIG_SERIAL_NETX) += netx-serial.o
obj-$(CONFIG_SERIAL_OF_PLATFORM) += of_serial.o
obj-$(CONFIG_SERIAL_KS8695) += serial_ks8695.o
+obj-$(CONFIG_SERIAL_QE) += ucc_uart.o
-Index: linux-2.6.24.7/drivers/serial/cpm_uart/cpm_uart_cpm1.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/cpm_uart/cpm_uart_cpm1.c
-+++ linux-2.6.24.7/drivers/serial/cpm_uart/cpm_uart_cpm1.c
+--- a/drivers/serial/cpm_uart/cpm_uart_cpm1.c
++++ b/drivers/serial/cpm_uart/cpm_uart_cpm1.c
@@ -52,11 +52,7 @@
#ifdef CONFIG_PPC_CPM_NEW_BINDING
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd)
}
#else
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd)
-Index: linux-2.6.24.7/drivers/serial/cpm_uart/cpm_uart_cpm2.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/cpm_uart/cpm_uart_cpm2.c
-+++ linux-2.6.24.7/drivers/serial/cpm_uart/cpm_uart_cpm2.c
+--- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c
++++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c
@@ -52,13 +52,7 @@
#ifdef CONFIG_PPC_CPM_NEW_BINDING
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd)
}
#else
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd)
-@@ -171,9 +165,9 @@ void scc2_lineif(struct uart_cpm_port *p
+@@ -171,9 +165,9 @@
* really has to get out of the driver so boards can
* be supported in a sane fashion.
*/
io->iop_pparb |= 0x008b0000;
io->iop_pdirb |= 0x00880000;
-Index: linux-2.6.24.7/drivers/serial/mpc52xx_uart.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/mpc52xx_uart.c
-+++ linux-2.6.24.7/drivers/serial/mpc52xx_uart.c
+--- a/drivers/serial/mpc52xx_uart.c
++++ b/drivers/serial/mpc52xx_uart.c
@@ -36,7 +36,7 @@
* DCD. However, the pin multiplexing aren't changed and should be set either
* by the bootloader or in the platform init code.
#else
#include <linux/platform_device.h>
#endif
-@@ -111,16 +112,18 @@ static void mpc52xx_uart_of_enumerate(vo
+@@ -111,16 +112,18 @@
#endif
#define PSC(port) ((struct mpc52xx_psc __iomem *)((port)->membase))
#else
#define uart_console(port) (0)
#endif
-@@ -162,7 +165,7 @@ mpc52xx_uart_stop_tx(struct uart_port *p
+@@ -162,7 +165,7 @@
{
/* port->lock taken by caller */
port->read_status_mask &= ~MPC52xx_PSC_IMR_TXRDY;
}
static void
-@@ -170,7 +173,7 @@ mpc52xx_uart_start_tx(struct uart_port *
+@@ -170,7 +173,7 @@
{
/* port->lock taken by caller */
port->read_status_mask |= MPC52xx_PSC_IMR_TXRDY;
}
static void
-@@ -184,7 +187,7 @@ mpc52xx_uart_send_xchar(struct uart_port
+@@ -184,7 +187,7 @@
/* Make sure tx interrupts are on */
/* Truly necessary ??? They should be anyway */
port->read_status_mask |= MPC52xx_PSC_IMR_TXRDY;
}
spin_unlock_irqrestore(&port->lock, flags);
-@@ -195,7 +198,7 @@ mpc52xx_uart_stop_rx(struct uart_port *p
+@@ -195,7 +198,7 @@
{
/* port->lock taken by caller */
port->read_status_mask &= ~MPC52xx_PSC_IMR_RXRDY;
}
static void
-@@ -210,10 +213,10 @@ mpc52xx_uart_break_ctl(struct uart_port
+@@ -210,10 +213,10 @@
unsigned long flags;
spin_lock_irqsave(&port->lock, flags);
spin_unlock_irqrestore(&port->lock, flags);
}
-@@ -222,6 +225,7 @@ static int
+@@ -222,6 +225,7 @@
mpc52xx_uart_startup(struct uart_port *port)
{
struct mpc52xx_psc __iomem *psc = PSC(port);
int ret;
/* Request IRQ */
-@@ -231,23 +235,23 @@ mpc52xx_uart_startup(struct uart_port *p
+@@ -231,23 +235,23 @@
return ret;
/* Reset/activate the port, clear and enable interrupts */
return 0;
}
-@@ -258,12 +262,12 @@ mpc52xx_uart_shutdown(struct uart_port *
+@@ -258,12 +262,12 @@
struct mpc52xx_psc __iomem *psc = PSC(port);
/* Shut down the port. Leave TX active if on a console port */
/* Release interrupt */
free_irq(port->irq, port);
-@@ -271,7 +275,7 @@ mpc52xx_uart_shutdown(struct uart_port *
+@@ -271,7 +275,7 @@
static void
mpc52xx_uart_set_termios(struct uart_port *port, struct ktermios *new,
{
struct mpc52xx_psc __iomem *psc = PSC(port);
unsigned long flags;
-@@ -283,14 +287,14 @@ mpc52xx_uart_set_termios(struct uart_por
+@@ -283,14 +287,14 @@
mr1 = 0;
switch (new->c_cflag & CSIZE) {
}
if (new->c_cflag & PARENB) {
-@@ -332,24 +336,24 @@ mpc52xx_uart_set_termios(struct uart_por
+@@ -332,24 +336,24 @@
udelay(1);
if (!j)
/* We're all set, release the lock */
spin_unlock_irqrestore(&port->lock, flags);
-@@ -364,7 +368,8 @@ mpc52xx_uart_type(struct uart_port *port
+@@ -364,7 +368,8 @@
static void
mpc52xx_uart_release_port(struct uart_port *port)
{
iounmap(port->membase);
port->membase = NULL;
}
-@@ -379,7 +384,7 @@ mpc52xx_uart_request_port(struct uart_po
+@@ -379,7 +384,7 @@
if (port->flags & UPF_IOREMAP) /* Need to remap ? */
port->membase = ioremap(port->mapbase,
if (!port->membase)
return -EINVAL;
-@@ -398,22 +403,22 @@ mpc52xx_uart_request_port(struct uart_po
+@@ -398,22 +403,22 @@
static void
mpc52xx_uart_config_port(struct uart_port *port, int flags)
{
return -EINVAL;
return 0;
-@@ -455,8 +460,8 @@ mpc52xx_uart_int_rx_chars(struct uart_po
+@@ -455,8 +460,8 @@
unsigned short status;
/* While we can read, do so ! */
/* Get the char */
ch = in_8(&PSC(port)->mpc52xx_psc_buffer_8);
-@@ -474,9 +479,9 @@ mpc52xx_uart_int_rx_chars(struct uart_po
+@@ -474,9 +479,9 @@
flag = TTY_NORMAL;
port->icount.rx++;
if (status & MPC52xx_PSC_SR_RB) {
flag = TTY_BREAK;
-@@ -487,7 +492,7 @@ mpc52xx_uart_int_rx_chars(struct uart_po
+@@ -487,7 +492,7 @@
flag = TTY_FRAME;
/* Clear error condition */
}
tty_insert_flip_char(tty, ch, flag);
-@@ -568,16 +573,16 @@ mpc52xx_uart_int(int irq, void *dev_id)
+@@ -568,16 +573,16 @@
/* Do we need to receive chars ? */
/* For this RX interrupts must be on and some chars waiting */
keepgoing = 0;
} while (keepgoing);
-@@ -596,7 +601,7 @@ mpc52xx_uart_int(int irq, void *dev_id)
+@@ -596,7 +601,7 @@
static void __init
mpc52xx_console_get_options(struct uart_port *port,
{
struct mpc52xx_psc __iomem *psc = PSC(port);
unsigned char mr1;
-@@ -604,7 +609,7 @@ mpc52xx_console_get_options(struct uart_
+@@ -604,7 +609,7 @@
pr_debug("mpc52xx_console_get_options(port=%p)\n", port);
/* Read the mode registers */
mr1 = in_8(&psc->mode);
/* CT{U,L}R are write-only ! */
-@@ -616,11 +621,18 @@ mpc52xx_console_get_options(struct uart_
+@@ -616,11 +621,18 @@
/* Parse them */
switch (mr1 & MPC52xx_PSC_MODE_BITS_MASK) {
}
if (mr1 & MPC52xx_PSC_MODE_PARNONE)
-@@ -657,7 +669,7 @@ mpc52xx_console_write(struct console *co
+@@ -657,7 +669,7 @@
/* Wait the TX buffer to be empty */
j = 20000; /* Maximum wait */
while (!(in_be16(&psc->mpc52xx_psc_status) &
udelay(1);
}
-@@ -730,16 +742,18 @@ mpc52xx_console_setup(struct console *co
+@@ -730,16 +742,18 @@
}
pr_debug("Console on ttyPSC%x is %s\n",
pr_debug("Could not find IPB bus frequency!\n");
return -EINVAL;
}
-@@ -757,7 +771,8 @@ mpc52xx_console_setup(struct console *co
+@@ -757,7 +771,8 @@
return -EINVAL;
pr_debug("mpc52xx-psc uart at %p, mapped to %p, irq=%x, freq=%i\n",
/* Setup the port parameters accoding to options */
if (options)
-@@ -766,7 +781,7 @@ mpc52xx_console_setup(struct console *co
+@@ -766,7 +781,7 @@
mpc52xx_console_get_options(port, &baud, &parity, &bits, &flow);
pr_debug("Setting console parameters: %i %i%c1 flow=%c\n",
return uart_set_options(port, co, baud, parity, bits, flow);
}
-@@ -781,7 +796,7 @@ static struct console mpc52xx_console =
+@@ -781,7 +796,7 @@
.device = uart_console_device,
.setup = mpc52xx_console_setup,
.flags = CON_PRINTBUFFER,
.data = &mpc52xx_uart_driver,
};
-@@ -809,7 +824,6 @@ console_initcall(mpc52xx_console_init);
+@@ -809,7 +824,6 @@
/* ======================================================================== */
static struct uart_driver mpc52xx_uart_driver = {
.driver_name = "mpc52xx_psc_uart",
.dev_name = "ttyPSC",
.major = SERIAL_PSC_MAJOR,
-@@ -837,7 +851,7 @@ mpc52xx_uart_probe(struct platform_devic
+@@ -837,7 +851,7 @@
if (idx < 0 || idx >= MPC52xx_PSC_MAXNUM)
return -EINVAL;
return -ENODEV;
/* Init the port structure */
-@@ -848,13 +862,13 @@ mpc52xx_uart_probe(struct platform_devic
+@@ -848,13 +862,13 @@
port->fifosize = 512;
port->iotype = UPIO_MEM;
port->flags = UPF_BOOT_AUTOCONF |
if (res->flags & IORESOURCE_MEM)
port->mapbase = res->start;
else if (res->flags & IORESOURCE_IRQ)
-@@ -866,7 +880,7 @@ mpc52xx_uart_probe(struct platform_devic
+@@ -866,7 +880,7 @@
/* Add the port to the uart sub-system */
ret = uart_add_one_port(&mpc52xx_uart_driver, port);
if (!ret)
return ret;
}
-@@ -917,6 +931,7 @@ static struct platform_driver mpc52xx_ua
+@@ -917,6 +931,7 @@
.resume = mpc52xx_uart_resume,
#endif
.driver = {
.name = "mpc52xx-psc",
},
};
-@@ -946,10 +961,11 @@ mpc52xx_uart_of_probe(struct of_device *
+@@ -946,10 +961,11 @@
if (idx >= MPC52xx_PSC_MAXNUM)
return -EINVAL;
pr_debug("Found %s assigned to ttyPSC%x\n",
dev_dbg(&op->dev, "Could not find IPB bus frequency!\n");
return -EINVAL;
}
-@@ -962,22 +978,23 @@ mpc52xx_uart_of_probe(struct of_device *
+@@ -962,22 +978,23 @@
port->fifosize = 512;
port->iotype = UPIO_MEM;
port->flags = UPF_BOOT_AUTOCONF |
printk(KERN_ERR "Could not allocate resources for PSC\n");
return -EINVAL;
}
-@@ -985,7 +1002,7 @@ mpc52xx_uart_of_probe(struct of_device *
+@@ -985,7 +1002,7 @@
/* Add the port to the uart sub-system */
ret = uart_add_one_port(&mpc52xx_uart_driver, port);
if (!ret)
return ret;
}
-@@ -1048,6 +1065,7 @@ mpc52xx_uart_of_assign(struct device_nod
+@@ -1048,6 +1065,7 @@
if (idx < 0)
return; /* No free slot; abort */
/* If the slot is already occupied, then swap slots */
if (mpc52xx_uart_nodes[idx] && (free_idx != -1))
mpc52xx_uart_nodes[free_idx] = mpc52xx_uart_nodes[idx];
-@@ -1057,7 +1075,7 @@ mpc52xx_uart_of_assign(struct device_nod
+@@ -1057,7 +1075,7 @@
static void
mpc52xx_uart_of_enumerate(void)
{
struct device_node *np;
const unsigned int *devno;
int i;
-@@ -1071,7 +1089,7 @@ mpc52xx_uart_of_enumerate(void)
+@@ -1071,7 +1089,7 @@
/* Is a particular device number requested? */
devno = of_get_property(np, "port-number", NULL);
}
enum_done = 1;
-@@ -1079,15 +1097,13 @@ mpc52xx_uart_of_enumerate(void)
+@@ -1079,15 +1097,13 @@
for (i = 0; i < MPC52xx_PSC_MAXNUM; i++) {
if (mpc52xx_uart_nodes[i])
pr_debug("%s assigned to ttyPSC%x\n",
.match_table = mpc52xx_uart_of_match,
.probe = mpc52xx_uart_of_probe,
.remove = mpc52xx_uart_of_remove,
-@@ -1113,7 +1129,8 @@ mpc52xx_uart_init(void)
+@@ -1113,7 +1129,8 @@
printk(KERN_INFO "Serial: MPC52xx PSC UART driver\n");
printk(KERN_ERR "%s: uart_register_driver failed (%i)\n",
__FILE__, ret);
return ret;
-Index: linux-2.6.24.7/drivers/serial/uartlite.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/serial/uartlite.c
-+++ linux-2.6.24.7/drivers/serial/uartlite.c
-@@ -539,7 +539,7 @@ static int __devinit ulite_assign(struct
+--- a/drivers/serial/uartlite.c
++++ b/drivers/serial/uartlite.c
+@@ -539,7 +539,7 @@
*
* @dev: pointer to device structure
*/
{
struct uart_port *port = dev_get_drvdata(dev);
int rc = 0;
-@@ -572,14 +572,14 @@ static int __devinit ulite_probe(struct
+@@ -572,14 +572,14 @@
return ulite_assign(&pdev->dev, pdev->id, res->start, res2->start);
}
.driver = {
.owner = THIS_MODULE,
.name = "uartlite",
-Index: linux-2.6.24.7/drivers/serial/ucc_uart.c
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/drivers/serial/ucc_uart.c
++++ b/drivers/serial/ucc_uart.c
@@ -0,0 +1,1514 @@
+/*
+ * Freescale QUICC Engine UART device driver
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_QE_MAJOR);
+
-Index: linux-2.6.24.7/drivers/spi/mpc52xx_psc_spi.c
-===================================================================
---- linux-2.6.24.7.orig/drivers/spi/mpc52xx_psc_spi.c
-+++ linux-2.6.24.7/drivers/spi/mpc52xx_psc_spi.c
-@@ -330,6 +330,7 @@ static void mpc52xx_psc_spi_cleanup(stru
+--- a/drivers/spi/mpc52xx_psc_spi.c
++++ b/drivers/spi/mpc52xx_psc_spi.c
+@@ -330,6 +330,7 @@
static int mpc52xx_psc_spi_port_config(int psc_id, struct mpc52xx_psc_spi *mps)
{
struct mpc52xx_cdm __iomem *cdm;
struct mpc52xx_gpio __iomem *gpio;
struct mpc52xx_psc __iomem *psc = mps->psc;
-@@ -338,8 +339,12 @@ static int mpc52xx_psc_spi_port_config(i
+@@ -338,8 +339,12 @@
int ret = 0;
#if defined(CONFIG_PPC_MERGE)
#else
cdm = ioremap(MPC52xx_PA(MPC52xx_CDM_OFFSET), MPC52xx_CDM_SIZE);
gpio = ioremap(MPC52xx_PA(MPC52xx_GPIO_OFFSET), MPC52xx_GPIO_SIZE);
-Index: linux-2.6.24.7/fs/openpromfs/inode.c
-===================================================================
---- linux-2.6.24.7.orig/fs/openpromfs/inode.c
-+++ linux-2.6.24.7/fs/openpromfs/inode.c
-@@ -131,7 +131,7 @@ static void property_stop(struct seq_fil
+--- a/fs/openpromfs/inode.c
++++ b/fs/openpromfs/inode.c
+@@ -131,7 +131,7 @@
/* Nothing to do */
}
.start = property_start,
.next = property_next,
.stop = property_stop,
-Index: linux-2.6.24.7/include/asm-powerpc/8xx_immap.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/8xx_immap.h
-+++ linux-2.6.24.7/include/asm-powerpc/8xx_immap.h
-@@ -123,7 +123,7 @@ typedef struct mem_ctlr {
+--- a/include/asm-powerpc/8xx_immap.h
++++ b/include/asm-powerpc/8xx_immap.h
+@@ -123,7 +123,7 @@
#define OR_G5LA 0x00000400 /* Output #GPL5 on #GPL_A5 */
#define OR_G5LS 0x00000200 /* Drive #GPL high on falling edge of...*/
#define OR_BI 0x00000100 /* Burst inhibit */
#define OR_SCY_0_CLK 0x00000000 /* 0 clock cycles wait states */
#define OR_SCY_1_CLK 0x00000010 /* 1 clock cycles wait states */
#define OR_SCY_2_CLK 0x00000020 /* 2 clock cycles wait states */
-Index: linux-2.6.24.7/include/asm-powerpc/commproc.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/commproc.h
-+++ linux-2.6.24.7/include/asm-powerpc/commproc.h
-@@ -693,7 +693,7 @@ typedef struct risc_timer_pram {
+--- a/include/asm-powerpc/commproc.h
++++ b/include/asm-powerpc/commproc.h
+@@ -693,7 +693,7 @@
#define CICR_SCC_SCC3 ((uint)0x00200000) /* SCC3 @ SCCc */
#define CICR_SCB_SCC2 ((uint)0x00040000) /* SCC2 @ SCCb */
#define CICR_SCA_SCC1 ((uint)0x00000000) /* SCC1 @ SCCa */
#define CICR_HP_MASK ((uint)0x00001f00) /* Hi-pri int. */
#define CICR_IEN ((uint)0x00000080) /* Int. enable */
#define CICR_SPS ((uint)0x00000001) /* SCC Spread */
-Index: linux-2.6.24.7/include/asm-powerpc/cpm.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/cpm.h
-+++ linux-2.6.24.7/include/asm-powerpc/cpm.h
-@@ -10,5 +10,6 @@ int cpm_muram_free(unsigned long offset)
+--- a/include/asm-powerpc/cpm.h
++++ b/include/asm-powerpc/cpm.h
+@@ -10,5 +10,6 @@
unsigned long cpm_muram_alloc_fixed(unsigned long offset, unsigned long size);
void __iomem *cpm_muram_addr(unsigned long offset);
dma_addr_t cpm_muram_dma(void __iomem *addr);
+int cpm_command(u32 command, u8 opcode);
#endif
-Index: linux-2.6.24.7/include/asm-powerpc/cputable.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/cputable.h
-+++ linux-2.6.24.7/include/asm-powerpc/cputable.h
-@@ -57,6 +57,14 @@ enum powerpc_pmc_type {
+--- a/include/asm-powerpc/cputable.h
++++ b/include/asm-powerpc/cputable.h
+@@ -57,6 +57,14 @@
PPC_PMC_PA6T = 2,
};
/* NOTE WELL: Update identify_cpu() if fields are added or removed! */
struct cpu_spec {
/* CPU is matched via (PVR & pvr_mask) == pvr_value */
-@@ -97,6 +105,11 @@ struct cpu_spec {
+@@ -97,6 +105,11 @@
/* Name of processor class, for the ELF AT_PLATFORM entry */
char *platform;
};
extern struct cpu_spec *cur_cpu_spec;
-Index: linux-2.6.24.7/include/asm-powerpc/cputhreads.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/asm-powerpc/cputhreads.h
++++ b/include/asm-powerpc/cputhreads.h
@@ -0,0 +1,71 @@
+#ifndef _ASM_POWERPC_CPUTHREADS_H
+#define _ASM_POWERPC_CPUTHREADS_H
+
+#endif /* _ASM_POWERPC_CPUTHREADS_H */
+
-Index: linux-2.6.24.7/include/asm-powerpc/dcr-native.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/dcr-native.h
-+++ linux-2.6.24.7/include/asm-powerpc/dcr-native.h
+--- a/include/asm-powerpc/dcr-native.h
++++ b/include/asm-powerpc/dcr-native.h
@@ -22,6 +22,8 @@
#ifdef __KERNEL__
#ifndef __ASSEMBLY__
typedef struct {
unsigned int base;
} dcr_host_t;
-@@ -55,20 +57,28 @@ do { \
+@@ -55,20 +57,28 @@
} while (0)
/* R/W of indirect DCRs make use of standard naming conventions for DCRs */
#endif /* _ASM_POWERPC_DCR_NATIVE_H */
-
-
-Index: linux-2.6.24.7/include/asm-powerpc/dcr-regs.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/asm-powerpc/dcr-regs.h
++++ b/include/asm-powerpc/dcr-regs.h
@@ -0,0 +1,71 @@
+/*
+ * Common DCR / SDR / CPR register definitions used on various IBM/AMCC
+#define SDR0_CUST0 0x4000
+
+#endif /* __DCR_REGS_H__ */
-Index: linux-2.6.24.7/include/asm-powerpc/dma-mapping.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/dma-mapping.h
-+++ linux-2.6.24.7/include/asm-powerpc/dma-mapping.h
-@@ -87,6 +87,9 @@ static inline int dma_supported(struct d
+--- a/include/asm-powerpc/dma-mapping.h
++++ b/include/asm-powerpc/dma-mapping.h
+@@ -87,6 +87,9 @@
return dma_ops->dma_supported(dev, mask);
}
static inline int dma_set_mask(struct device *dev, u64 dma_mask)
{
struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
-@@ -186,8 +189,6 @@ static inline void dma_unmap_sg(struct d
+@@ -186,8 +189,6 @@
extern struct dma_mapping_ops dma_iommu_ops;
extern struct dma_mapping_ops dma_direct_ops;
#else /* CONFIG_PPC64 */
#define dma_supported(dev, mask) (1)
-Index: linux-2.6.24.7/include/asm-powerpc/firmware.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/firmware.h
-+++ linux-2.6.24.7/include/asm-powerpc/firmware.h
-@@ -64,7 +64,7 @@ enum {
+--- a/include/asm-powerpc/firmware.h
++++ b/include/asm-powerpc/firmware.h
+@@ -64,7 +64,7 @@
FW_FEATURE_PS3_POSSIBLE = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
FW_FEATURE_PS3_ALWAYS = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
FW_FEATURE_CELLEB_POSSIBLE = FW_FEATURE_LPAR | FW_FEATURE_BEAT,
FW_FEATURE_NATIVE_POSSIBLE = 0,
FW_FEATURE_NATIVE_ALWAYS = 0,
FW_FEATURE_POSSIBLE =
-Index: linux-2.6.24.7/include/asm-powerpc/immap_86xx.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/immap_86xx.h
-+++ linux-2.6.24.7/include/asm-powerpc/immap_86xx.h
-@@ -89,14 +89,14 @@ struct ccsr_guts {
+--- a/include/asm-powerpc/immap_86xx.h
++++ b/include/asm-powerpc/immap_86xx.h
+@@ -89,14 +89,14 @@
* them.
*
* guts: Pointer to GUTS structure
clrsetbits_be32(&guts->dmacr, 3 << shift, device << shift);
}
-@@ -118,6 +118,27 @@ static inline void guts_set_dmacr(struct
+@@ -118,6 +118,27 @@
#define CCSR_GUTS_PMUXCR_DMA1_0 0x00000002
#define CCSR_GUTS_PMUXCR_DMA1_3 0x00000001
#define CCSR_GUTS_CLKDVDR_PXCKEN 0x80000000
#define CCSR_GUTS_CLKDVDR_SSICKEN 0x20000000
#define CCSR_GUTS_CLKDVDR_PXCKINV 0x10000000
-Index: linux-2.6.24.7/include/asm-powerpc/immap_qe.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/immap_qe.h
-+++ linux-2.6.24.7/include/asm-powerpc/immap_qe.h
-@@ -393,9 +393,39 @@ struct dbg {
+--- a/include/asm-powerpc/immap_qe.h
++++ b/include/asm-powerpc/immap_qe.h
+@@ -393,9 +393,39 @@
u8 res2[0x48];
} __attribute__ ((packed));
} __attribute__ ((packed));
struct qe_immap {
-Index: linux-2.6.24.7/include/asm-powerpc/io.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/io.h
-+++ linux-2.6.24.7/include/asm-powerpc/io.h
-@@ -50,15 +50,16 @@ extern int check_legacy_ioport(unsigned
+--- a/include/asm-powerpc/io.h
++++ b/include/asm-powerpc/io.h
+@@ -50,15 +50,16 @@
#define PCI_DRAM_OFFSET pci_dram_offset
#else
#define _IO_BASE pci_io_base
#if defined(CONFIG_PPC32) && defined(CONFIG_PPC_INDIRECT_IO)
#error CONFIG_PPC_INDIRECT_IO is not yet supported on 32 bits
#endif
-Index: linux-2.6.24.7/include/asm-powerpc/iommu.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/iommu.h
-+++ linux-2.6.24.7/include/asm-powerpc/iommu.h
-@@ -69,10 +69,9 @@ struct iommu_table {
+--- a/include/asm-powerpc/iommu.h
++++ b/include/asm-powerpc/iommu.h
+@@ -69,10 +69,9 @@
};
struct scatterlist;
/* Initializes an iommu_table based in values set in the passed-in
* structure
-Index: linux-2.6.24.7/include/asm-powerpc/ipic.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/ipic.h
-+++ linux-2.6.24.7/include/asm-powerpc/ipic.h
+--- a/include/asm-powerpc/ipic.h
++++ b/include/asm-powerpc/ipic.h
@@ -20,11 +20,13 @@
/* Flags when we init the IPIC */
/* IPIC registers offsets */
#define IPIC_SICFR 0x00 /* System Global Interrupt Configuration Register */
-Index: linux-2.6.24.7/include/asm-powerpc/iseries/hv_lp_event.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/iseries/hv_lp_event.h
-+++ linux-2.6.24.7/include/asm-powerpc/iseries/hv_lp_event.h
-@@ -78,7 +78,7 @@ extern int HvLpEvent_openPath(HvLpEvent_
+--- a/include/asm-powerpc/iseries/hv_lp_event.h
++++ b/include/asm-powerpc/iseries/hv_lp_event.h
+@@ -78,7 +78,7 @@
/*
* Close an Lp Event Path for a type and partition
*/
extern int HvLpEvent_closePath(HvLpEvent_Type eventType, HvLpIndex lpIndex);
-Index: linux-2.6.24.7/include/asm-powerpc/kexec.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/kexec.h
-+++ linux-2.6.24.7/include/asm-powerpc/kexec.h
-@@ -123,6 +123,9 @@ struct pt_regs;
+--- a/include/asm-powerpc/kexec.h
++++ b/include/asm-powerpc/kexec.h
+@@ -123,6 +123,9 @@
extern void default_machine_kexec(struct kimage *image);
extern int default_machine_kexec_prepare(struct kimage *image);
extern void default_machine_crash_shutdown(struct pt_regs *regs);
extern void machine_kexec_simple(struct kimage *image);
extern void crash_kexec_secondary(struct pt_regs *regs);
-Index: linux-2.6.24.7/include/asm-powerpc/lmb.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/lmb.h
-+++ linux-2.6.24.7/include/asm-powerpc/lmb.h
-@@ -51,6 +51,7 @@ extern unsigned long __init __lmb_alloc_
+--- a/include/asm-powerpc/lmb.h
++++ b/include/asm-powerpc/lmb.h
+@@ -51,6 +51,7 @@
extern unsigned long __init lmb_phys_mem_size(void);
extern unsigned long __init lmb_end_of_DRAM(void);
extern void __init lmb_enforce_memory_limit(unsigned long memory_limit);
extern void lmb_dump_all(void);
-Index: linux-2.6.24.7/include/asm-powerpc/machdep.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/machdep.h
-+++ linux-2.6.24.7/include/asm-powerpc/machdep.h
-@@ -204,6 +204,13 @@ struct machdep_calls {
+--- a/include/asm-powerpc/machdep.h
++++ b/include/asm-powerpc/machdep.h
+@@ -204,6 +204,13 @@
/*
* optional PCI "hooks"
*/
/* Called after PPC generic resource fixup to perform
machine specific fixups */
-@@ -212,18 +219,9 @@ struct machdep_calls {
+@@ -212,18 +219,9 @@
/* Called for each PCI bus in the system when it's probed */
void (*pcibios_fixup_bus)(struct pci_bus *);
/* Called to shutdown machine specific hardware not already controlled
* by other drivers.
-@@ -253,6 +251,16 @@ struct machdep_calls {
+@@ -253,6 +251,16 @@
*/
void (*machine_kexec)(struct kimage *image);
#endif /* CONFIG_KEXEC */
};
extern void power4_idle(void);
-@@ -326,5 +334,31 @@ static inline void log_error(char *buf,
+@@ -326,5 +334,31 @@
ppc_md.log_error(buf, err_type, fatal);
}
+
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_MACHDEP_H */
-Index: linux-2.6.24.7/include/asm-powerpc/mmu-hash64.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/mmu-hash64.h
-+++ linux-2.6.24.7/include/asm-powerpc/mmu-hash64.h
-@@ -80,7 +80,7 @@ extern char initial_stab[];
+--- a/include/asm-powerpc/mmu-hash64.h
++++ b/include/asm-powerpc/mmu-hash64.h
+@@ -80,7 +80,7 @@
#define HPTE_V_AVPN_SHIFT 7
#define HPTE_V_AVPN ASM_CONST(0x3fffffffffffff80)
#define HPTE_V_AVPN_VAL(x) (((x) & HPTE_V_AVPN) >> HPTE_V_AVPN_SHIFT)
#define HPTE_V_BOLTED ASM_CONST(0x0000000000000010)
#define HPTE_V_LOCK ASM_CONST(0x0000000000000008)
#define HPTE_V_LARGE ASM_CONST(0x0000000000000004)
-@@ -180,6 +180,7 @@ extern int mmu_vmalloc_psize;
+@@ -180,6 +180,7 @@
extern int mmu_io_psize;
extern int mmu_kernel_ssize;
extern int mmu_highuser_ssize;
/*
* If the processor supports 64k normal pages but not 64k cache
-@@ -277,6 +278,7 @@ extern int hash_huge_page(struct mm_stru
+@@ -277,6 +278,7 @@
extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
unsigned long pstart, unsigned long mode,
int psize, int ssize);
extern void htab_initialize(void);
extern void htab_initialize_secondary(void);
-Index: linux-2.6.24.7/include/asm-powerpc/mpc52xx.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/mpc52xx.h
-+++ linux-2.6.24.7/include/asm-powerpc/mpc52xx.h
-@@ -248,8 +248,6 @@ struct mpc52xx_cdm {
+--- a/include/asm-powerpc/mpc52xx.h
++++ b/include/asm-powerpc/mpc52xx.h
+@@ -248,8 +248,6 @@
#ifndef __ASSEMBLY__
extern unsigned int mpc52xx_find_ipb_freq(struct device_node *node);
extern void mpc5200_setup_xlb_arbiter(void);
extern void mpc52xx_declare_of_platform_devices(void);
-@@ -257,7 +255,12 @@ extern void mpc52xx_declare_of_platform_
+@@ -257,7 +255,12 @@
extern void mpc52xx_init_irq(void);
extern unsigned int mpc52xx_get_irq(void);
extern void __init mpc52xx_map_wdt(void);
extern void mpc52xx_restart(char *cmd);
-Index: linux-2.6.24.7/include/asm-powerpc/mpc52xx_psc.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/mpc52xx_psc.h
-+++ linux-2.6.24.7/include/asm-powerpc/mpc52xx_psc.h
-@@ -153,6 +153,9 @@ struct mpc52xx_psc {
+--- a/include/asm-powerpc/mpc52xx_psc.h
++++ b/include/asm-powerpc/mpc52xx_psc.h
+@@ -153,6 +153,9 @@
u8 reserved16[3];
u8 irfdr; /* PSC + 0x54 */
u8 reserved17[3];
u16 rfnum; /* PSC + 0x58 */
u16 reserved18;
u16 tfnum; /* PSC + 0x5c */
-Index: linux-2.6.24.7/include/asm-powerpc/mpc8260.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/mpc8260.h
-+++ linux-2.6.24.7/include/asm-powerpc/mpc8260.h
+--- a/include/asm-powerpc/mpc8260.h
++++ b/include/asm-powerpc/mpc8260.h
@@ -8,6 +8,7 @@
#ifndef __ASM_POWERPC_MPC8260_H__
#define __ASM_POWERPC_MPC8260_H__
#ifdef CONFIG_8260
-Index: linux-2.6.24.7/include/asm-powerpc/mpic.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/mpic.h
-+++ linux-2.6.24.7/include/asm-powerpc/mpic.h
+--- a/include/asm-powerpc/mpic.h
++++ b/include/asm-powerpc/mpic.h
@@ -22,7 +22,9 @@
#define MPIC_GREG_GLOBAL_CONF_0 0x00020
#define MPIC_GREG_GCONF_RESET 0x80000000
/*
* Per-source registers
-@@ -183,6 +187,7 @@ enum {
+@@ -183,6 +187,7 @@
MPIC_IDX_CPU_WHOAMI,
MPIC_IDX_CPU_INTACK,
MPIC_IDX_CPU_EOI,
MPIC_IDX_IRQ_BASE,
MPIC_IDX_IRQ_STRIDE,
-@@ -344,6 +349,10 @@ struct mpic
+@@ -344,6 +349,10 @@
#define MPIC_USES_DCR 0x00000080
/* MPIC has 11-bit vector fields (or larger) */
#define MPIC_LARGE_VECTORS 0x00000100
/* MPIC HW modification ID */
#define MPIC_REGSET_MASK 0xf0000000
-@@ -447,10 +456,19 @@ extern void mpic_send_ipi(unsigned int i
+@@ -447,10 +456,19 @@
/* Send a message (IPI) to a given target (cpu number or MSG_*) */
void smp_mpic_message_pass(int target, int msg);
/* Set the EPIC clock ratio */
void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio);
-Index: linux-2.6.24.7/include/asm-powerpc/nvram.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/nvram.h
-+++ linux-2.6.24.7/include/asm-powerpc/nvram.h
+--- a/include/asm-powerpc/nvram.h
++++ b/include/asm-powerpc/nvram.h
@@ -10,6 +10,8 @@
#ifndef _ASM_POWERPC_NVRAM_H
#define _ASM_POWERPC_NVRAM_H
#define NVRW_CNT 0x20
#define NVRAM_HEADER_LEN 16 /* sizeof(struct nvram_header) */
#define NVRAM_BLOCK_LEN 16
-@@ -71,7 +73,16 @@ extern int nvram_clear_error_log(void);
+@@ -71,7 +73,16 @@
extern struct nvram_partition *nvram_find_partition(int sig, const char *name);
extern int pSeries_nvram_init(void);
#endif /* __KERNEL__ */
/* PowerMac specific nvram stuffs */
-Index: linux-2.6.24.7/include/asm-powerpc/of_platform.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/of_platform.h
-+++ linux-2.6.24.7/include/asm-powerpc/of_platform.h
+--- a/include/asm-powerpc/of_platform.h
++++ b/include/asm-powerpc/of_platform.h
@@ -15,8 +15,14 @@
#include <linux/of_platform.h>
/* Platform devices and busses creation */
extern struct of_device *of_platform_device_create(struct device_node *np,
-@@ -26,9 +32,11 @@ extern struct of_device *of_platform_dev
+@@ -26,9 +32,11 @@
#define OF_NO_DEEP_PROBE ((struct of_device_id *)-1)
extern int of_platform_bus_probe(struct device_node *root,
+extern void of_instantiate_rtc(void);
+
#endif /* _ASM_POWERPC_OF_PLATFORM_H */
-Index: linux-2.6.24.7/include/asm-powerpc/pci-bridge.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/pci-bridge.h
-+++ linux-2.6.24.7/include/asm-powerpc/pci-bridge.h
+--- a/include/asm-powerpc/pci-bridge.h
++++ b/include/asm-powerpc/pci-bridge.h
@@ -1,15 +1,42 @@
#ifndef _ASM_POWERPC_PCI_BRIDGE_H
#define _ASM_POWERPC_PCI_BRIDGE_H
/*
* Structure of a PCI controller (host bridge)
-@@ -17,26 +44,41 @@ struct pci_controller;
+@@ -17,26 +44,41 @@
struct pci_controller {
struct pci_bus *bus;
char is_dynamic;
/*
* Used for variants of PCI indirect handling and possible quirks:
* SET_CFG_TYPE - used on 4xx or any PHB that does explicit type0/1
-@@ -51,21 +93,30 @@ struct pci_controller {
+@@ -51,21 +93,30 @@
* set.
* BIG_ENDIAN - cfg_addr is a big endian register
*/
static inline struct pci_controller *pci_bus_to_host(struct pci_bus *bus)
{
return bus->sysdata;
-@@ -81,18 +132,18 @@ static inline int isa_vaddr_is_ioport(vo
+@@ -81,18 +132,18 @@
/* These are used for config access before all the PCI probing
has been done. */
extern int early_find_capability(struct pci_controller *hose, int bus,
int dev_fn, int cap);
-@@ -101,87 +152,33 @@ extern void setup_indirect_pci(struct pc
+@@ -101,87 +152,33 @@
resource_size_t cfg_addr,
resource_size_t cfg_data, u32 flags);
extern void setup_grackle(struct pci_controller *hose);
u32 config_space[16]; /* saved PCI config space */
#endif
};
-@@ -189,7 +186,7 @@ struct pci_dn {
+@@ -189,7 +186,7 @@
/* Get the pointer to a device_node's pci_dn */
#define PCI_DN(dn) ((struct pci_dn *) (dn)->data)
/* Get a device_node from a pci_dev. This code must be fast except
* in the case where the sysdata is incorrect and needs to be fixed
-@@ -227,14 +224,14 @@ static inline struct device_node *pci_bu
+@@ -227,14 +224,14 @@
}
/** Find the bus corresponding to the indicated device node */
extern int pcibios_remove_root_bus(struct pci_controller *phb);
-@@ -270,20 +267,18 @@ extern int pcibios_map_io_space(struct p
+@@ -270,20 +267,18 @@
#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = -1)
#endif
extern void pcibios_free_controller(struct pci_controller *phb);
#ifdef CONFIG_PCI
-@@ -298,9 +293,7 @@ static inline int pcibios_vaddr_is_iopor
+@@ -298,9 +293,7 @@
{
return 0;
}
-#endif
+#endif /* __KERNEL__ */
+#endif /* _ASM_POWERPC_PCI_BRIDGE_H */
-Index: linux-2.6.24.7/include/asm-powerpc/pci.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/pci.h
-+++ linux-2.6.24.7/include/asm-powerpc/pci.h
-@@ -36,11 +36,10 @@ struct pci_dev;
+--- a/include/asm-powerpc/pci.h
++++ b/include/asm-powerpc/pci.h
+@@ -36,11 +36,10 @@
/*
* Set this to 1 if you want the kernel to re-assign all PCI
#define pcibios_scan_all_fns(a, b) 0
static inline void pcibios_set_master(struct pci_dev *dev)
-@@ -95,9 +94,6 @@ static inline void pci_dma_burst_advice(
+@@ -95,9 +94,6 @@
#define get_pci_dma_ops() NULL
#endif
#else /* 32-bit */
#ifdef CONFIG_PCI
-@@ -109,17 +105,14 @@ static inline void pci_dma_burst_advice(
+@@ -109,17 +105,14 @@
*strategy_parameter = ~0UL;
}
#endif
struct vm_area_struct;
/* Map a range of PCI memory or I/O space for a device into user space */
int pci_mmap_page_range(struct pci_dev *pdev, struct vm_area_struct *vma,
-@@ -199,13 +192,12 @@ static inline struct resource *pcibios_s
+@@ -199,13 +192,12 @@
return root;
}
extern struct pci_controller *init_phb_dynamic(struct device_node *dn);
extern struct pci_dev *of_create_pci_dev(struct device_node *node,
-@@ -229,5 +221,8 @@ extern void pci_resource_to_user(const s
+@@ -229,5 +221,8 @@
const struct resource *rsrc,
resource_size_t *start, resource_size_t *end);
+
#endif /* __KERNEL__ */
#endif /* __ASM_POWERPC_PCI_H */
-Index: linux-2.6.24.7/include/asm-powerpc/ppc-pci.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/ppc-pci.h
-+++ linux-2.6.24.7/include/asm-powerpc/ppc-pci.h
-@@ -22,7 +22,6 @@ extern void pci_setup_phb_io_dynamic(str
+--- a/include/asm-powerpc/ppc-pci.h
++++ b/include/asm-powerpc/ppc-pci.h
+@@ -22,7 +22,6 @@
extern struct list_head hose_list;
extern void find_and_init_phbs(void);
-@@ -47,9 +46,6 @@ extern void init_pci_config_tokens (void
+@@ -47,9 +46,6 @@
extern unsigned long get_phb_buid (struct device_node *);
extern int rtas_setup_phb(struct pci_controller *phb);
extern unsigned long pci_probe_only;
/* ---- EEH internal-use-only related routines ---- */
-Index: linux-2.6.24.7/include/asm-powerpc/prom.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/prom.h
-+++ linux-2.6.24.7/include/asm-powerpc/prom.h
-@@ -202,6 +202,10 @@ static inline unsigned long of_read_ulon
+--- a/include/asm-powerpc/prom.h
++++ b/include/asm-powerpc/prom.h
+@@ -202,6 +202,10 @@
*/
extern u64 of_translate_address(struct device_node *np, const u32 *addr);
/* Extract an address from a device, returns the region size and
* the address space flags too. The PCI version uses a BAR number
* instead of an absolute index
-Index: linux-2.6.24.7/include/asm-powerpc/ps3.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/ps3.h
-+++ linux-2.6.24.7/include/asm-powerpc/ps3.h
+--- a/include/asm-powerpc/ps3.h
++++ b/include/asm-powerpc/ps3.h
@@ -24,6 +24,7 @@
#include <linux/init.h>
#include <linux/types.h>
union ps3_firmware_version {
u64 raw;
-@@ -317,6 +318,7 @@ enum ps3_match_id {
+@@ -317,6 +318,7 @@
PS3_MATCH_ID_STOR_FLASH = 8,
PS3_MATCH_ID_SOUND = 9,
PS3_MATCH_ID_GRAPHICS = 10,
};
#define PS3_MODULE_ALIAS_EHCI "ps3:1"
-@@ -329,11 +331,13 @@ enum ps3_match_id {
+@@ -329,11 +331,13 @@
#define PS3_MODULE_ALIAS_STOR_FLASH "ps3:8"
#define PS3_MODULE_ALIAS_SOUND "ps3:9"
#define PS3_MODULE_ALIAS_GRAPHICS "ps3:10"
};
/**
-@@ -344,12 +348,17 @@ struct ps3_system_bus_device {
+@@ -344,12 +348,17 @@
enum ps3_match_id match_id;
enum ps3_system_bus_device_type dev_type;
/* struct iommu_table *iommu_table; -- waiting for BenH's cleanups */
struct device core;
-@@ -438,5 +447,66 @@ struct ps3_prealloc {
+@@ -438,5 +447,66 @@
extern struct ps3_prealloc ps3fb_videomemory;
extern struct ps3_prealloc ps3flash_bounce_buffer;
+u64 ps3_get_spe_id(void *arg);
#endif
-Index: linux-2.6.24.7/include/asm-powerpc/ptrace.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/ptrace.h
-+++ linux-2.6.24.7/include/asm-powerpc/ptrace.h
-@@ -106,7 +106,8 @@ extern int ptrace_put_reg(struct task_st
+--- a/include/asm-powerpc/ptrace.h
++++ b/include/asm-powerpc/ptrace.h
+@@ -106,7 +106,8 @@
*/
#define FULL_REGS(regs) (((regs)->trap & 1) == 0)
#ifndef __powerpc64__
#endif /* ! __powerpc64__ */
#define TRAP(regs) ((regs)->trap & ~0xF)
#ifdef __powerpc64__
-Index: linux-2.6.24.7/include/asm-powerpc/qe.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/qe.h
-+++ linux-2.6.24.7/include/asm-powerpc/qe.h
+--- a/include/asm-powerpc/qe.h
++++ b/include/asm-powerpc/qe.h
@@ -28,6 +28,52 @@
#define MEM_PART_SECONDARY 1
#define MEM_PART_MURAM 2
/* Export QE common operations */
extern void qe_reset(void);
extern int par_io_init(struct device_node *np);
-@@ -38,7 +84,8 @@ extern int par_io_data_set(u8 port, u8 p
+@@ -38,7 +84,8 @@
/* QE internal API */
int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input);
int qe_get_snum(void);
void qe_put_snum(u8 snum);
unsigned long qe_muram_alloc(int size, int align);
-@@ -47,6 +94,58 @@ unsigned long qe_muram_alloc_fixed(unsig
+@@ -47,6 +94,58 @@
void qe_muram_dump(void);
void *qe_muram_addr(unsigned long offset);
/* Buffer descriptors */
struct qe_bd {
__be16 status;
-@@ -129,52 +228,6 @@ enum comm_dir {
+@@ -129,52 +228,6 @@
COMM_DIR_RX_AND_TX = 3
};
/* QE CMXUCR Registers.
* There are two UCCs represented in each of the four CMXUCR registers.
* These values are for the UCC in the LSBs
-@@ -328,6 +381,15 @@ enum qe_clock {
+@@ -328,6 +381,15 @@
#define QE_SDEBCR_BA_MASK 0x01FFFFFF
/* UPC */
#define UPGCR_PROTOCOL 0x80000000 /* protocol ul2 or pl2 */
#define UPGCR_TMS 0x40000000 /* Transmit master/slave mode */
-Index: linux-2.6.24.7/include/asm-powerpc/reg.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/reg.h
-+++ linux-2.6.24.7/include/asm-powerpc/reg.h
+--- a/include/asm-powerpc/reg.h
++++ b/include/asm-powerpc/reg.h
@@ -553,6 +553,7 @@
#define SPRN_PA6T_BTCR 978 /* Breakpoint and Tagging Control Register */
#define SPRN_PA6T_IMAAT 979 /* Instruction Match Array Action Table */
/* Macros for setting and retrieving special purpose registers */
#ifndef __ASSEMBLY__
#define mfmsr() ({unsigned long rval; \
-Index: linux-2.6.24.7/include/asm-powerpc/reg_booke.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/reg_booke.h
-+++ linux-2.6.24.7/include/asm-powerpc/reg_booke.h
+--- a/include/asm-powerpc/reg_booke.h
++++ b/include/asm-powerpc/reg_booke.h
@@ -123,16 +123,23 @@
#define SPRN_SPEFSCR 0x200 /* SPE & Embedded FP Status & Control */
#define SPRN_BBEAR 0x201 /* Branch Buffer Entry Address Register */
#define ESR_PTR 0x02000000 /* Program Exception - Trap */
#define ESR_FP 0x01000000 /* Floating Point Operation */
#define ESR_DST 0x00800000 /* Storage Exception - Data miss */
-Index: linux-2.6.24.7/include/asm-powerpc/setjmp.h
-===================================================================
--- /dev/null
-+++ linux-2.6.24.7/include/asm-powerpc/setjmp.h
++++ b/include/asm-powerpc/setjmp.h
@@ -0,0 +1,18 @@
+/*
+ * Copyright © 2008 Michael Neuling IBM Corporation
+extern void longjmp(long *, long);
+
+#endif /* _ASM_POWERPC_SETJMP_H */
-Index: linux-2.6.24.7/include/asm-powerpc/smu.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/smu.h
-+++ linux-2.6.24.7/include/asm-powerpc/smu.h
+--- a/include/asm-powerpc/smu.h
++++ b/include/asm-powerpc/smu.h
@@ -22,7 +22,7 @@
* Partition info commands
*
/*
* - Kernel side interface -
-@@ -564,13 +688,13 @@ struct smu_user_cmd_hdr
+@@ -564,13 +688,13 @@
__u8 cmd; /* SMU command byte */
__u8 pad[3]; /* padding */
};
#endif /* _SMU_H */
-Index: linux-2.6.24.7/include/asm-powerpc/sparsemem.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/sparsemem.h
-+++ linux-2.6.24.7/include/asm-powerpc/sparsemem.h
+--- a/include/asm-powerpc/sparsemem.h
++++ b/include/asm-powerpc/sparsemem.h
@@ -10,13 +10,8 @@
*/
#define SECTION_SIZE_BITS 24
#ifdef CONFIG_MEMORY_HOTPLUG
extern void create_section_mapping(unsigned long start, unsigned long end);
-Index: linux-2.6.24.7/include/asm-powerpc/spu.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/spu.h
-+++ linux-2.6.24.7/include/asm-powerpc/spu.h
+--- a/include/asm-powerpc/spu.h
++++ b/include/asm-powerpc/spu.h
@@ -104,6 +104,7 @@
struct spu_context;
struct device_node;
enum spu_utilization_state {
-@@ -145,7 +146,6 @@ struct spu {
+@@ -145,7 +146,6 @@
void (* ibox_callback)(struct spu *spu);
void (* stop_callback)(struct spu *spu);
void (* mfc_callback)(struct spu *spu);
char irq_c0[8];
char irq_c1[8];
-@@ -196,10 +196,11 @@ struct cbe_spu_info {
+@@ -196,10 +196,11 @@
extern struct cbe_spu_info cbe_spu_info[];
void spu_init_channels(struct spu *spu);
#ifdef CONFIG_KEXEC
void crash_register_spus(struct list_head *list);
#else
-@@ -210,6 +211,7 @@ static inline void crash_register_spus(s
+@@ -210,6 +211,7 @@
extern void spu_invalidate_slbs(struct spu *spu);
extern void spu_associate_mm(struct spu *spu, struct mm_struct *mm);
/* Calls from the memory management to the SPU */
struct mm_struct;
-@@ -279,6 +281,8 @@ void spu_remove_sysdev_attr(struct sysde
+@@ -279,6 +281,8 @@
int spu_add_sysdev_attr_group(struct attribute_group *attrs);
void spu_remove_sysdev_attr_group(struct attribute_group *attrs);
/*
* Notifier blocks:
-@@ -303,7 +307,7 @@ extern void notify_spus_active(void);
+@@ -303,7 +307,7 @@
extern void do_notify_spus_active(void);
/*
*/
union mfc_tag_size_class_cmd {
-@@ -524,8 +528,24 @@ struct spu_priv1 {
+@@ -524,8 +528,24 @@
#define CLASS2_ENABLE_SPU_STOP_INTR 0x2L
#define CLASS2_ENABLE_SPU_HALT_INTR 0x4L
#define CLASS2_ENABLE_SPU_DMA_TAG_GROUP_COMPLETE_INTR 0x8L
u8 pad_0x158_0x180[0x28]; /* 0x158 */
u64 int_route_RW; /* 0x180 */
-Index: linux-2.6.24.7/include/asm-powerpc/spu_csa.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/spu_csa.h
-+++ linux-2.6.24.7/include/asm-powerpc/spu_csa.h
-@@ -194,7 +194,7 @@ struct spu_priv1_collapsed {
+--- a/include/asm-powerpc/spu_csa.h
++++ b/include/asm-powerpc/spu_csa.h
+@@ -194,7 +194,7 @@
};
/*
*/
struct spu_priv2_collapsed {
u64 slb_index_W;
-@@ -254,20 +254,11 @@ struct spu_state {
+@@ -254,20 +254,11 @@
u64 spu_chnldata_RW[32];
u32 spu_mailbox_data[4];
u32 pu_mailbox_data[1];
#endif /* !__SPU__ */
#endif /* __KERNEL__ */
#endif /* !__ASSEMBLY__ */
-Index: linux-2.6.24.7/include/asm-powerpc/spu_priv1.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/spu_priv1.h
-+++ linux-2.6.24.7/include/asm-powerpc/spu_priv1.h
+--- a/include/asm-powerpc/spu_priv1.h
++++ b/include/asm-powerpc/spu_priv1.h
@@ -24,6 +24,7 @@
#include <linux/types.h>
/* access to priv1 registers */
-@@ -178,6 +179,8 @@ struct spu_management_ops {
+@@ -178,6 +179,8 @@
int (*enumerate_spus)(int (*fn)(void *data));
int (*create_spu)(struct spu *spu, void *data);
int (*destroy_spu)(struct spu *spu);
int (*init_affinity)(void);
};
-@@ -207,6 +210,18 @@ spu_init_affinity (void)
+@@ -207,6 +210,18 @@
return spu_management_ops->init_affinity();
}
/*
* The declarations folowing are put here for convenience
* and only intended to be used by the platform setup code.
-Index: linux-2.6.24.7/include/asm-powerpc/system.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/system.h
-+++ linux-2.6.24.7/include/asm-powerpc/system.h
-@@ -169,6 +169,8 @@ extern int do_page_fault(struct pt_regs
+--- a/include/asm-powerpc/system.h
++++ b/include/asm-powerpc/system.h
+@@ -169,6 +169,8 @@
extern void bad_page_fault(struct pt_regs *, unsigned long, int);
extern int die(const char *, struct pt_regs *, long);
extern void _exception(int, struct pt_regs *, int, unsigned long);
#ifdef CONFIG_BOOKE_WDT
extern u32 booke_wdt_enabled;
extern u32 booke_wdt_period;
-Index: linux-2.6.24.7/include/asm-powerpc/udbg.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-powerpc/udbg.h
-+++ linux-2.6.24.7/include/asm-powerpc/udbg.h
-@@ -48,6 +48,7 @@ extern void __init udbg_init_rtas_consol
+--- a/include/asm-powerpc/udbg.h
++++ b/include/asm-powerpc/udbg.h
+@@ -48,6 +48,7 @@
extern void __init udbg_init_debug_beat(void);
extern void __init udbg_init_btext(void);
extern void __init udbg_init_44x_as1(void);
extern void __init udbg_init_cpm(void);
#endif /* __KERNEL__ */
-Index: linux-2.6.24.7/include/asm-ppc/8xx_immap.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-ppc/8xx_immap.h
-+++ linux-2.6.24.7/include/asm-ppc/8xx_immap.h
-@@ -123,7 +123,7 @@ typedef struct mem_ctlr {
+--- a/include/asm-ppc/8xx_immap.h
++++ b/include/asm-ppc/8xx_immap.h
+@@ -123,7 +123,7 @@
#define OR_G5LA 0x00000400 /* Output #GPL5 on #GPL_A5 */
#define OR_G5LS 0x00000200 /* Drive #GPL high on falling edge of...*/
#define OR_BI 0x00000100 /* Burst inhibit */
#define OR_SCY_0_CLK 0x00000000 /* 0 clock cycles wait states */
#define OR_SCY_1_CLK 0x00000010 /* 1 clock cycles wait states */
#define OR_SCY_2_CLK 0x00000020 /* 2 clock cycles wait states */
-Index: linux-2.6.24.7/include/asm-ppc/commproc.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-ppc/commproc.h
-+++ linux-2.6.24.7/include/asm-ppc/commproc.h
-@@ -681,7 +681,7 @@ typedef struct risc_timer_pram {
+--- a/include/asm-ppc/commproc.h
++++ b/include/asm-ppc/commproc.h
+@@ -681,7 +681,7 @@
#define CICR_SCC_SCC3 ((uint)0x00200000) /* SCC3 @ SCCc */
#define CICR_SCB_SCC2 ((uint)0x00040000) /* SCC2 @ SCCb */
#define CICR_SCA_SCC1 ((uint)0x00000000) /* SCC1 @ SCCa */
#define CICR_HP_MASK ((uint)0x00001f00) /* Hi-pri int. */
#define CICR_IEN ((uint)0x00000080) /* Int. enable */
#define CICR_SPS ((uint)0x00000001) /* SCC Spread */
-Index: linux-2.6.24.7/include/asm-ppc/mmu.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-ppc/mmu.h
-+++ linux-2.6.24.7/include/asm-ppc/mmu.h
-@@ -383,6 +383,12 @@ typedef struct _P601_BAT {
+--- a/include/asm-ppc/mmu.h
++++ b/include/asm-ppc/mmu.h
+@@ -383,6 +383,12 @@
#define BOOKE_PAGESZ_256GB 14
#define BOOKE_PAGESZ_1TB 15
/*
* Freescale Book-E MMU support
*/
-Index: linux-2.6.24.7/include/asm-ppc/mpc52xx_psc.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-ppc/mpc52xx_psc.h
-+++ linux-2.6.24.7/include/asm-ppc/mpc52xx_psc.h
-@@ -159,6 +159,9 @@ struct mpc52xx_psc {
+--- a/include/asm-ppc/mpc52xx_psc.h
++++ b/include/asm-ppc/mpc52xx_psc.h
+@@ -159,6 +159,9 @@
u8 reserved16[3];
u8 irfdr; /* PSC + 0x54 */
u8 reserved17[3];
u16 rfnum; /* PSC + 0x58 */
u16 reserved18;
u16 tfnum; /* PSC + 0x5c */
-Index: linux-2.6.24.7/include/asm-ppc/reg_booke.h
-===================================================================
---- linux-2.6.24.7.orig/include/asm-ppc/reg_booke.h
-+++ linux-2.6.24.7/include/asm-ppc/reg_booke.h
+--- a/include/asm-ppc/reg_booke.h
++++ b/include/asm-ppc/reg_booke.h
@@ -207,7 +207,7 @@
#define CCR1_TCS 0x00000080 /* Timer Clock Select */
#define ESR_PTR 0x02000000 /* Program Exception - Trap */
#define ESR_FP 0x01000000 /* Floating Point Operation */
#define ESR_DST 0x00800000 /* Storage Exception - Data miss */
-Index: linux-2.6.24.7/include/linux/of.h
-===================================================================
---- linux-2.6.24.7.orig/include/linux/of.h
-+++ linux-2.6.24.7/include/linux/of.h
+--- a/include/linux/of.h
++++ b/include/linux/of.h
@@ -17,6 +17,7 @@
*/
#include <linux/types.h>
#include <asm/prom.h>
-@@ -41,11 +42,20 @@ extern struct device_node *of_find_compa
+@@ -41,11 +42,20 @@
#define for_each_compatible_node(dn, type, compatible) \
for (dn = of_find_compatible_node(NULL, type, compatible); dn; \
dn = of_find_compatible_node(dn, type, compatible))
extern struct property *of_find_property(const struct device_node *np,
const char *name,
int *lenp);
-@@ -56,5 +66,7 @@ extern const void *of_get_property(const
+@@ -56,5 +66,7 @@
int *lenp);
extern int of_n_addr_cells(struct device_node *np);
extern int of_n_size_cells(struct device_node *np);
+ const struct of_device_id *matches, const struct device_node *node);
#endif /* _LINUX_OF_H */
-Index: linux-2.6.24.7/include/linux/of_device.h
-===================================================================
---- linux-2.6.24.7.orig/include/linux/of_device.h
-+++ linux-2.6.24.7/include/linux/of_device.h
+--- a/include/linux/of_device.h
++++ b/include/linux/of_device.h
@@ -10,8 +10,6 @@
#define to_of_device(d) container_of(d, struct of_device, dev)
extern const struct of_device_id *of_match_device(
const struct of_device_id *matches, const struct of_device *dev);
-Index: linux-2.6.24.7/include/linux/pata_platform.h
-===================================================================
---- linux-2.6.24.7.orig/include/linux/pata_platform.h
-+++ linux-2.6.24.7/include/linux/pata_platform.h
-@@ -15,4 +15,13 @@ struct pata_platform_info {
+--- a/include/linux/pata_platform.h
++++ b/include/linux/pata_platform.h
+@@ -15,4 +15,13 @@
unsigned int irq_flags;
};
+extern int __devexit __pata_platform_remove(struct device *dev);
+
#endif /* __LINUX_PATA_PLATFORM_H */
-Index: linux-2.6.24.7/include/linux/phy_fixed.h
-===================================================================
---- linux-2.6.24.7.orig/include/linux/phy_fixed.h
-+++ linux-2.6.24.7/include/linux/phy_fixed.h
+--- a/include/linux/phy_fixed.h
++++ b/include/linux/phy_fixed.h
@@ -1,38 +1,31 @@
#ifndef __PHY_FIXED_H
#define __PHY_FIXED_H
+ struct fixed_phy_status *));
#endif /* __PHY_FIXED_H */
-Index: linux-2.6.24.7/include/linux/pmu.h
-===================================================================
---- linux-2.6.24.7.orig/include/linux/pmu.h
-+++ linux-2.6.24.7/include/linux/pmu.h
-@@ -159,41 +159,7 @@ extern void pmu_unlock(void);
+--- a/include/linux/pmu.h
++++ b/include/linux/pmu.h
+@@ -159,41 +159,7 @@
extern int pmu_present(void);
extern int pmu_get_model(void);