119 files changed:
ifeq ($(LINUX_VERSION),2.6.24.7)
LINUX_KERNEL_MD5SUM:=40a73780d51525d28d36dec852c680c4
endif
ifeq ($(LINUX_VERSION),2.6.24.7)
LINUX_KERNEL_MD5SUM:=40a73780d51525d28d36dec852c680c4
endif
-ifeq ($(LINUX_VERSION),2.6.25.17)
- LINUX_KERNEL_MD5SUM:=30618bff93fd4fd048e20a9a6aab8e5d
+ifeq ($(LINUX_VERSION),2.6.25.19)
+ LINUX_KERNEL_MD5SUM:=1b20d2d2a5a0f119372a166eaf816e13
endif
ifeq ($(LINUX_VERSION),2.6.26.7)
LINUX_KERNEL_MD5SUM:=ada8af1e3ec15bd6e9bdbcadf23a9cc2
endif
ifeq ($(LINUX_VERSION),2.6.26.7)
LINUX_KERNEL_MD5SUM:=ada8af1e3ec15bd6e9bdbcadf23a9cc2
BOARDNAME:=Atmel AT91
FEATURES:=squashfs usb
BOARDNAME:=Atmel AT91
FEATURES:=squashfs usb
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
include $(INCLUDE_DIR)/target.mk
include $(INCLUDE_DIR)/target.mk
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
+@@ -12,18 +12,28 @@ config ARCH_AT91RM9200
config ARCH_AT91SAM9260
bool "AT91SAM9260 or AT91SAM9XE"
config ARCH_AT91SAM9260
bool "AT91SAM9260 or AT91SAM9XE"
config ARCH_AT91X40
bool "AT91x40"
config ARCH_AT91X40
bool "AT91x40"
+@@ -45,7 +55,7 @@ config MACH_ONEARM
depends on ARCH_AT91RM9200
help
Select this if you are using Ajeco's 1ARM Single Board Computer.
depends on ARCH_AT91RM9200
help
Select this if you are using Ajeco's 1ARM Single Board Computer.
config ARCH_AT91RM9200DK
bool "Atmel AT91RM9200-DK Development board"
config ARCH_AT91RM9200DK
bool "Atmel AT91RM9200-DK Development board"
+@@ -94,7 +104,7 @@ config MACH_KB9200
depends on ARCH_AT91RM9200
help
Select this if you are using KwikByte's KB920x board.
depends on ARCH_AT91RM9200
help
Select this if you are using KwikByte's KB920x board.
config MACH_PICOTUX2XX
bool "picotux 200"
config MACH_PICOTUX2XX
bool "picotux 200"
+@@ -109,6 +119,38 @@ config MACH_KAFA
help
Select this if you are using Sperry-Sun's KAFA board.
help
Select this if you are using Sperry-Sun's KAFA board.
endif
# ----------------------------------------------------------
endif
# ----------------------------------------------------------
+@@ -133,6 +175,34 @@ config MACH_AT91SAM9260EK
Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
endif
# ----------------------------------------------------------
endif
# ----------------------------------------------------------
+@@ -163,6 +233,13 @@ config MACH_AT91SAM9263EK
Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
<http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
endif
# ----------------------------------------------------------
endif
# ----------------------------------------------------------
+@@ -216,7 +293,7 @@ comment "AT91 Board Options"
config MTD_AT91_DATAFLASH_CARD
bool "Enable DataFlash Card support"
config MTD_AT91_DATAFLASH_CARD
bool "Enable DataFlash Card support"
help
Enable support for the DataFlash card.
help
Enable support for the DataFlash card.
+@@ -237,6 +314,19 @@ config AT91_PROGRAMMABLE_CLOCKS
Select this if you need to program one or more of the PCK0..PCK3
programmable clock outputs.
Select this if you need to program one or more of the PCK0..PCK3
programmable clock outputs.
range 32 1024
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
range 32 1024
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
+@@ -28,16 +28,26 @@ obj-$(CONFIG_MACH_CARMEVA) += board-carm
obj-$(CONFIG_MACH_KB9200) += board-kb9202.o
obj-$(CONFIG_MACH_ATEB9200) += board-eb9200.o
obj-$(CONFIG_MACH_KAFA) += board-kafa.o
obj-$(CONFIG_MACH_KB9200) += board-kb9202.o
obj-$(CONFIG_MACH_ATEB9200) += board-eb9200.o
obj-$(CONFIG_MACH_KAFA) += board-kafa.o
# AT91SAM9RL board-specific support
obj-$(CONFIG_MACH_AT91SAM9RLEK) += board-sam9rlek.o
# AT91SAM9RL board-specific support
obj-$(CONFIG_MACH_AT91SAM9RLEK) += board-sam9rlek.o
+@@ -50,9 +60,11 @@ obj-$(CONFIG_MACH_AT91EB01) += board-eb0
# Drivers
obj-y += leds.o
# Drivers
obj-y += leds.o
#include "generic.h"
#include "clock.h"
#include "generic.h"
#include "clock.h"
+@@ -288,6 +291,12 @@ static void at91cap9_reset(void)
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
/* --------------------------------------------------------------------
* AT91CAP9 processor initialization
* -------------------------------------------------------------------- */
/* --------------------------------------------------------------------
* AT91CAP9 processor initialization
* -------------------------------------------------------------------- */
+@@ -298,6 +307,7 @@ void __init at91cap9_initialize(unsigned
iotable_init(at91cap9_io_desc, ARRAY_SIZE(at91cap9_io_desc));
at91_arch_reset = at91cap9_reset;
iotable_init(at91cap9_io_desc, ARRAY_SIZE(at91cap9_io_desc));
at91_arch_reset = at91cap9_reset;
at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1);
/* Init clock subsystem */
at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1);
/* Init clock subsystem */
+@@ -308,6 +318,12 @@ void __init at91cap9_initialize(unsigned
/* Register GPIO subsystem */
at91_gpio_init(at91cap9_gpio, 4);
/* Register GPIO subsystem */
at91_gpio_init(at91cap9_gpio, 4);
+@@ -69,6 +71,9 @@ void __init at91_add_device_usbh(struct
/* Enable VBus control for UHP ports */
for (i = 0; i < data->ports; i++) {
if (data->vbus_pin[i])
/* Enable VBus control for UHP ports */
for (i = 0; i < data->ports; i++) {
if (data->vbus_pin[i])
+@@ -84,6 +89,110 @@ void __init at91_add_device_usbh(struct
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* Ethernet
* -------------------------------------------------------------------- */
* Ethernet
* -------------------------------------------------------------------- */
+@@ -246,7 +355,7 @@ void __init at91_add_device_mmc(short mm
platform_device_register(&at91cap9_mmc0_device);
} else { /* MCI1 */
/* CLK */
platform_device_register(&at91cap9_mmc0_device);
} else { /* MCI1 */
/* CLK */
+@@ -283,10 +392,15 @@ static struct at91_nand_data nand_data;
#define NAND_BASE AT91_CHIPSELECT_3
static struct resource nand_resources[] = {
#define NAND_BASE AT91_CHIPSELECT_3
static struct resource nand_resources[] = {
+@@ -344,6 +458,7 @@ void __init at91_add_device_nand(struct
void __init at91_add_device_nand(struct at91_nand_data *data) {}
#endif
void __init at91_add_device_nand(struct at91_nand_data *data) {}
#endif
/* --------------------------------------------------------------------
* TWI (i2c)
* -------------------------------------------------------------------- */
/* --------------------------------------------------------------------
* TWI (i2c)
* -------------------------------------------------------------------- */
+@@ -532,17 +647,64 @@ void __init at91_add_device_spi(struct s
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
platform_device_register(&at91cap9_rtt_device);
}
platform_device_register(&at91cap9_rtt_device);
}
+@@ -660,6 +822,9 @@ void __init at91_add_device_lcdc(struct
at91_set_A_periph(AT91_PIN_PC1, 0); /* LCDHSYNC */
at91_set_A_periph(AT91_PIN_PC2, 0); /* LCDDOTCK */
at91_set_A_periph(AT91_PIN_PC3, 0); /* LCDDEN */
at91_set_A_periph(AT91_PIN_PC1, 0); /* LCDHSYNC */
at91_set_A_periph(AT91_PIN_PC2, 0); /* LCDDOTCK */
at91_set_A_periph(AT91_PIN_PC3, 0); /* LCDDEN */
+@@ -990,7 +1155,7 @@ static inline void configure_usart2_pins
at91_set_B_periph(AT91_PIN_PD6, 0); /* CTS2 */
}
at91_set_B_periph(AT91_PIN_PD6, 0); /* CTS2 */
}
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
+@@ -1031,8 +1196,6 @@ void __init at91_set_serial_console(unsi
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
}
void __init at91_add_device_serial(void)
}
void __init at91_add_device_serial(void)
+@@ -1043,6 +1206,9 @@ void __init at91_add_device_serial(void)
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
}
#else
void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
}
#else
void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
+@@ -1060,6 +1226,7 @@ static int __init at91_add_standard_devi
{
at91_add_device_rtt();
at91_add_device_watchdog();
{
at91_add_device_rtt();
at91_add_device_watchdog();
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
+@@ -513,7 +513,18 @@ void __init at91_add_device_i2c(struct i
* SPI
* -------------------------------------------------------------------- */
* SPI
* -------------------------------------------------------------------- */
static u64 spi_dmamask = DMA_BIT_MASK(32);
static struct resource spi_resources[] = {
static u64 spi_dmamask = DMA_BIT_MASK(32);
static struct resource spi_resources[] = {
+@@ -530,7 +541,7 @@ static struct resource spi_resources[] =
};
static struct platform_device at91rm9200_spi_device = {
};
static struct platform_device at91rm9200_spi_device = {
.id = 0,
.dev = {
.dma_mask = &spi_dmamask,
.id = 0,
.dev = {
.dma_mask = &spi_dmamask,
+@@ -563,6 +574,12 @@ void __init at91_add_device_spi(struct s
else
at91_set_gpio_output(cs_pin, 1);
else
at91_set_gpio_output(cs_pin, 1);
/* pass chip-select pin to driver */
devices[i].controller_data = (void *) cs_pin;
/* pass chip-select pin to driver */
devices[i].controller_data = (void *) cs_pin;
+@@ -577,6 +594,90 @@ void __init at91_add_device_spi(struct s
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* RTC
* -------------------------------------------------------------------- */
* RTC
* -------------------------------------------------------------------- */
+@@ -589,6 +690,7 @@ static struct platform_device at91rm9200
static void __init at91_add_device_rtc(void)
{
static void __init at91_add_device_rtc(void)
{
platform_device_register(&at91rm9200_rtc_device);
}
#else
platform_device_register(&at91rm9200_rtc_device);
}
#else
+@@ -1019,7 +1121,7 @@ static inline void configure_usart3_pins
at91_set_B_periph(AT91_PIN_PB0, 0); /* RTS3 */
}
at91_set_B_periph(AT91_PIN_PB0, 0); /* RTS3 */
}
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
+@@ -1110,8 +1212,6 @@ void __init at91_set_serial_console(unsi
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
}
void __init at91_add_device_serial(void)
}
void __init at91_add_device_serial(void)
+@@ -1122,6 +1222,9 @@ void __init at91_add_device_serial(void)
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
+@@ -1141,6 +1244,7 @@ static int __init at91_add_standard_devi
{
at91_add_device_rtc();
at91_add_device_watchdog();
{
at91_add_device_rtc();
at91_add_device_watchdog();
--- a/arch/arm/mach-at91/at91rm9200_time.c
+++ b/arch/arm/mach-at91/at91rm9200_time.c
--- a/arch/arm/mach-at91/at91rm9200_time.c
+++ b/arch/arm/mach-at91/at91rm9200_time.c
+@@ -136,8 +136,6 @@ clkevt32k_next_event(unsigned long delta
#include "generic.h"
#include "clock.h"
#include "generic.h"
#include "clock.h"
+@@ -267,6 +269,11 @@ static void at91sam9260_reset(void)
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
/* --------------------------------------------------------------------
* AT91SAM9260 processor initialization
/* --------------------------------------------------------------------
* AT91SAM9260 processor initialization
+@@ -304,6 +311,7 @@ void __init at91sam9260_initialize(unsig
iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
at91_arch_reset = at91sam9260_reset;
iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
at91_arch_reset = at91sam9260_reset;
+@@ -288,10 +288,15 @@ static struct at91_nand_data nand_data;
#define NAND_BASE AT91_CHIPSELECT_3
static struct resource nand_resources[] = {
#define NAND_BASE AT91_CHIPSELECT_3
static struct resource nand_resources[] = {
+@@ -540,6 +545,90 @@ void __init at91_add_device_spi(struct s
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* RTT
* -------------------------------------------------------------------- */
* RTT
* -------------------------------------------------------------------- */
+@@ -553,13 +642,14 @@ static struct resource rtt_resources[] =
static struct platform_device at91sam9260_rtt_device = {
.name = "at91_rtt",
static struct platform_device at91sam9260_rtt_device = {
.name = "at91_rtt",
platform_device_register(&at91sam9260_rtt_device);
}
platform_device_register(&at91sam9260_rtt_device);
}
+@@ -962,7 +1052,7 @@ static inline void configure_usart5_pins
at91_set_A_periph(AT91_PIN_PB13, 0); /* RXD5 */
}
at91_set_A_periph(AT91_PIN_PB13, 0); /* RXD5 */
}
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
+@@ -1073,8 +1163,6 @@ void __init at91_set_serial_console(unsi
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
}
void __init at91_add_device_serial(void)
}
void __init at91_add_device_serial(void)
+@@ -1085,6 +1173,9 @@ void __init at91_add_device_serial(void)
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
+@@ -1103,6 +1194,7 @@ static int __init at91_add_standard_devi
{
at91_add_device_rtt();
at91_add_device_watchdog();
{
at91_add_device_rtt();
at91_add_device_watchdog();
#include "generic.h"
#include "clock.h"
#include "generic.h"
#include "clock.h"
+@@ -245,6 +247,11 @@ static void at91sam9261_reset(void)
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
/* --------------------------------------------------------------------
* AT91SAM9261 processor initialization
/* --------------------------------------------------------------------
* AT91SAM9261 processor initialization
+@@ -256,6 +263,7 @@ void __init at91sam9261_initialize(unsig
iotable_init(at91sam9261_io_desc, ARRAY_SIZE(at91sam9261_io_desc));
at91_arch_reset = at91sam9261_reset;
iotable_init(at91sam9261_io_desc, ARRAY_SIZE(at91sam9261_io_desc));
at91_arch_reset = at91sam9261_reset;
+@@ -548,6 +548,55 @@ void __init at91_add_device_lcdc(struct
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* RTT
* -------------------------------------------------------------------- */
* RTT
* -------------------------------------------------------------------- */
+@@ -561,13 +610,14 @@ static struct resource rtt_resources[] =
static struct platform_device at91sam9261_rtt_device = {
.name = "at91_rtt",
static struct platform_device at91sam9261_rtt_device = {
.name = "at91_rtt",
platform_device_register(&at91sam9261_rtt_device);
}
platform_device_register(&at91sam9261_rtt_device);
}
+@@ -938,7 +988,7 @@ static inline void configure_usart2_pins
at91_set_B_periph(AT91_PIN_PA16, 0); /* CTS2 */
}
at91_set_B_periph(AT91_PIN_PA16, 0); /* CTS2 */
}
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
+@@ -1019,8 +1069,6 @@ void __init at91_set_serial_console(unsi
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
}
void __init at91_add_device_serial(void)
}
void __init at91_add_device_serial(void)
+@@ -1031,6 +1079,9 @@ void __init at91_add_device_serial(void)
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
+@@ -1050,6 +1101,7 @@ static int __init at91_add_standard_devi
{
at91_add_device_rtt();
at91_add_device_watchdog();
{
at91_add_device_rtt();
at91_add_device_watchdog();
#include "generic.h"
#include "clock.h"
#include "generic.h"
#include "clock.h"
+@@ -271,6 +273,11 @@ static void at91sam9263_reset(void)
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
/* --------------------------------------------------------------------
* AT91SAM9263 processor initialization
/* --------------------------------------------------------------------
* AT91SAM9263 processor initialization
+@@ -282,6 +289,7 @@ void __init at91sam9263_initialize(unsig
iotable_init(at91sam9263_io_desc, ARRAY_SIZE(at91sam9263_io_desc));
at91_arch_reset = at91sam9263_reset;
iotable_init(at91sam9263_io_desc, ARRAY_SIZE(at91sam9263_io_desc));
at91_arch_reset = at91sam9263_reset;
+@@ -308,7 +308,7 @@ void __init at91_add_device_mmc(short mm
platform_device_register(&at91sam9263_mmc0_device);
} else { /* MCI1 */
/* CLK */
platform_device_register(&at91sam9263_mmc0_device);
} else { /* MCI1 */
/* CLK */
+@@ -358,10 +358,15 @@ static struct at91_nand_data nand_data;
#define NAND_BASE AT91_CHIPSELECT_3
static struct resource nand_resources[] = {
#define NAND_BASE AT91_CHIPSELECT_3
static struct resource nand_resources[] = {
+@@ -783,6 +788,43 @@ void __init at91_add_device_isi(void) {}
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* RTT
* -------------------------------------------------------------------- */
* RTT
* -------------------------------------------------------------------- */
+@@ -818,7 +860,9 @@ static struct platform_device at91sam926
static void __init at91_add_device_rtt(void)
{
static void __init at91_add_device_rtt(void)
{
platform_device_register(&at91sam9263_rtt1_device);
}
platform_device_register(&at91sam9263_rtt1_device);
}
+@@ -933,9 +977,6 @@ static inline void configure_ssc1_pins(u
* SSC controllers are accessed through library code, instead of any
* kind of all-singing/all-dancing driver. For example one could be
* used by a particular I2S audio codec's driver, while another one
* SSC controllers are accessed through library code, instead of any
* kind of all-singing/all-dancing driver. For example one could be
* used by a particular I2S audio codec's driver, while another one
+@@ -1146,7 +1187,7 @@ static inline void configure_usart2_pins
at91_set_B_periph(AT91_PIN_PD6, 0); /* CTS2 */
}
at91_set_B_periph(AT91_PIN_PD6, 0); /* CTS2 */
}
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
+@@ -1227,8 +1268,6 @@ void __init at91_set_serial_console(unsi
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
}
void __init at91_add_device_serial(void)
}
void __init at91_add_device_serial(void)
+@@ -1239,9 +1278,12 @@ void __init at91_add_device_serial(void)
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
void __init at91_set_serial_console(unsigned portnr) {}
void __init at91_add_device_serial(void) {}
void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
void __init at91_set_serial_console(unsigned portnr) {}
void __init at91_add_device_serial(void) {}
+@@ -1257,6 +1299,7 @@ static int __init at91_add_standard_devi
{
at91_add_device_rtt();
at91_add_device_watchdog();
{
at91_add_device_rtt();
at91_add_device_watchdog();
#include "generic.h"
#include "clock.h"
#include "generic.h"
#include "clock.h"
+@@ -244,6 +246,11 @@ static void at91sam9rl_reset(void)
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
}
/* --------------------------------------------------------------------
* AT91SAM9RL processor initialization
/* --------------------------------------------------------------------
* AT91SAM9RL processor initialization
+@@ -274,6 +281,7 @@ void __init at91sam9rl_initialize(unsign
iotable_init(at91sam9rl_sram_desc, ARRAY_SIZE(at91sam9rl_sram_desc));
at91_arch_reset = at91sam9rl_reset;
iotable_init(at91sam9rl_sram_desc, ARRAY_SIZE(at91sam9rl_sram_desc));
at91_arch_reset = at91sam9rl_reset;
* MMC / SD
* -------------------------------------------------------------------- */
* MMC / SD
* -------------------------------------------------------------------- */
+@@ -105,10 +200,15 @@ static struct at91_nand_data nand_data;
#define NAND_BASE AT91_CHIPSELECT_3
static struct resource nand_resources[] = {
#define NAND_BASE AT91_CHIPSELECT_3
static struct resource nand_resources[] = {
+@@ -385,6 +485,100 @@ void __init at91_add_device_lcdc(struct
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* RTC
* -------------------------------------------------------------------- */
* RTC
* -------------------------------------------------------------------- */
+@@ -397,6 +591,7 @@ static struct platform_device at91sam9rl
static void __init at91_add_device_rtc(void)
{
static void __init at91_add_device_rtc(void)
{
platform_device_register(&at91sam9rl_rtc_device);
}
#else
platform_device_register(&at91sam9rl_rtc_device);
}
#else
+@@ -418,13 +613,14 @@ static struct resource rtt_resources[] =
static struct platform_device at91sam9rl_rtt_device = {
.name = "at91_rtt",
static struct platform_device at91sam9rl_rtt_device = {
.name = "at91_rtt",
platform_device_register(&at91sam9rl_rtt_device);
}
platform_device_register(&at91sam9rl_rtt_device);
}
+@@ -539,9 +735,6 @@ static inline void configure_ssc1_pins(u
* SSC controllers are accessed through library code, instead of any
* kind of all-singing/all-dancing driver. For example one could be
* used by a particular I2S audio codec's driver, while another one
* SSC controllers are accessed through library code, instead of any
* kind of all-singing/all-dancing driver. For example one could be
* used by a particular I2S audio codec's driver, while another one
+@@ -802,7 +995,7 @@ static inline void configure_usart3_pins
at91_set_B_periph(AT91_PIN_PD3, 0); /* CTS3 */
}
at91_set_B_periph(AT91_PIN_PD3, 0); /* CTS3 */
}
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
struct platform_device *atmel_default_console_device; /* the serial console device */
void __init __deprecated at91_init_serial(struct at91_uart_config *config)
+@@ -893,8 +1086,6 @@ void __init at91_set_serial_console(unsi
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
{
if (portnr < ATMEL_MAX_UART)
atmel_default_console_device = at91_uarts[portnr];
}
void __init at91_add_device_serial(void)
}
void __init at91_add_device_serial(void)
+@@ -905,6 +1096,9 @@ void __init at91_add_device_serial(void)
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
if (at91_uarts[i])
platform_device_register(at91_uarts[i]);
}
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
}
#else
void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
+@@ -925,6 +1119,7 @@ static int __init at91_add_standard_devi
at91_add_device_rtc();
at91_add_device_rtt();
at91_add_device_watchdog();
at91_add_device_rtc();
at91_add_device_rtt();
at91_add_device_watchdog();
+@@ -78,6 +76,12 @@ static struct at91_usbh_data __initdata
+@@ -130,7 +134,7 @@ static struct spi_board_info cap9adk_spi
{
.modalias = "ads7846",
.chip_select = 3, /* can be 2 or 3, depending on J2 jumper */
{
.modalias = "ads7846",
.chip_select = 3, /* can be 2 or 3, depending on J2 jumper */
.bus_num = 0,
.platform_data = &ads_info,
.irq = AT91_PIN_PC4,
.bus_num = 0,
.platform_data = &ads_info,
.irq = AT91_PIN_PC4,
+@@ -324,8 +328,9 @@ static void __init cap9adk_board_init(vo
/* Serial */
at91_add_device_serial();
/* USB Host */
/* Serial */
at91_add_device_serial();
/* USB Host */
/* SPI */
at91_add_device_spi(cap9adk_spi_devices, ARRAY_SIZE(cap9adk_spi_devices));
/* Touchscreen */
/* SPI */
at91_add_device_spi(cap9adk_spi_devices, ARRAY_SIZE(cap9adk_spi_devices));
/* Touchscreen */
+@@ -341,7 +346,6 @@ static void __init cap9adk_board_init(vo
/* I2C */
at91_add_device_i2c(NULL, 0);
/* LCD Controller */
/* I2C */
at91_add_device_i2c(NULL, 0);
/* LCD Controller */
}
static void __init carmeva_init_irq(void)
}
static void __init carmeva_init_irq(void)
+@@ -117,6 +114,30 @@ static struct spi_board_info carmeva_spi
static void __init carmeva_board_init(void)
{
/* Serial */
static void __init carmeva_board_init(void)
{
/* Serial */
+@@ -135,6 +156,8 @@ static void __init carmeva_board_init(vo
// at91_add_device_cf(&carmeva_cf_data);
/* MMC */
at91_add_device_mmc(0, &carmeva_mmc_data);
// at91_add_device_cf(&carmeva_cf_data);
/* MMC */
at91_add_device_mmc(0, &carmeva_mmc_data);
+MACHINE_END
--- a/arch/arm/mach-at91/board-csb337.c
+++ b/arch/arm/mach-at91/board-csb337.c
+MACHINE_END
--- a/arch/arm/mach-at91/board-csb337.c
+++ b/arch/arm/mach-at91/board-csb337.c
+@@ -61,6 +61,7 @@ static void __init csb337_map_io(void)
/* Setup the LEDs */
at91_init_leds(AT91_PIN_PB0, AT91_PIN_PB1);
/* Setup the LEDs */
at91_init_leds(AT91_PIN_PB0, AT91_PIN_PB1);
/* Setup the serial ports and console */
at91_init_serial(&csb337_uart_config);
/* Setup the serial ports and console */
at91_init_serial(&csb337_uart_config);
+@@ -202,11 +203,11 @@ static struct platform_device csb300_but
static void __init csb300_add_device_buttons(void)
{
static void __init csb300_add_device_buttons(void)
{
at91_set_deglitch(AT91_PIN_PA21, 1);
platform_device_register(&csb300_button_device);
at91_set_deglitch(AT91_PIN_PA21, 1);
platform_device_register(&csb300_button_device);
+@@ -233,7 +234,7 @@ static struct gpio_led csb_leds[] = {
.gpio = AT91_PIN_PB0,
.active_low = 1,
.default_trigger = "ide-disk",
.gpio = AT91_PIN_PB0,
.active_low = 1,
.default_trigger = "ide-disk",
}
static void __init csb637_init_irq(void)
}
static void __init csb637_init_irq(void)
+@@ -118,8 +107,19 @@ static struct platform_device csb_flash
.num_resources = ARRAY_SIZE(csb_flash_resources),
};
.num_resources = ARRAY_SIZE(csb_flash_resources),
};
static void __init dk_map_io(void)
{
/* Initialize processor: 18.432 MHz crystal */
static void __init dk_map_io(void)
{
/* Initialize processor: 18.432 MHz crystal */
+@@ -64,8 +54,16 @@ static void __init dk_map_io(void)
/* Setup the LEDs */
at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2);
/* Setup the LEDs */
at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2);
}
static void __init dk_init_irq(void)
}
static void __init dk_init_irq(void)
+@@ -73,6 +71,185 @@ static void __init dk_init_irq(void)
at91rm9200_init_interrupts(NULL);
}
at91rm9200_init_interrupts(NULL);
}
static struct at91_eth_data __initdata dk_eth_data = {
.phy_irq_pin = AT91_PIN_PC4,
.is_rmii = 1,
static struct at91_eth_data __initdata dk_eth_data = {
.phy_irq_pin = AT91_PIN_PC4,
.is_rmii = 1,
+@@ -164,7 +341,7 @@ static struct at91_nand_data __initdata
#define DK_FLASH_SIZE 0x200000
static struct physmap_flash_data dk_flash_data = {
#define DK_FLASH_SIZE 0x200000
static struct physmap_flash_data dk_flash_data = {
};
static struct resource dk_flash_resource = {
};
static struct resource dk_flash_resource = {
+@@ -223,8 +400,12 @@ static void __init dk_board_init(void)
platform_device_register(&dk_flash);
/* LEDs */
at91_gpio_leds(dk_leds, ARRAY_SIZE(dk_leds));
platform_device_register(&dk_flash);
/* LEDs */
at91_gpio_leds(dk_leds, ARRAY_SIZE(dk_leds));
static void __init ek_map_io(void)
{
/* Initialize processor: 18.432 MHz crystal */
static void __init ek_map_io(void)
{
/* Initialize processor: 18.432 MHz crystal */
+@@ -64,8 +54,16 @@ static void __init ek_map_io(void)
/* Setup the LEDs */
at91_init_leds(AT91_PIN_PB1, AT91_PIN_PB2);
/* Setup the LEDs */
at91_init_leds(AT91_PIN_PB1, AT91_PIN_PB2);
}
static void __init ek_init_irq(void)
}
static void __init ek_init_irq(void)
+@@ -73,6 +71,187 @@ static void __init ek_init_irq(void)
at91rm9200_init_interrupts(NULL);
}
at91rm9200_init_interrupts(NULL);
}
static struct at91_eth_data __initdata ek_eth_data = {
.phy_irq_pin = AT91_PIN_PC4,
.is_rmii = 1,
static struct at91_eth_data __initdata ek_eth_data = {
.phy_irq_pin = AT91_PIN_PC4,
.is_rmii = 1,
+@@ -122,7 +301,7 @@ static struct i2c_board_info __initdata
#define EK_FLASH_SIZE 0x200000
static struct physmap_flash_data ek_flash_data = {
#define EK_FLASH_SIZE 0x200000
static struct physmap_flash_data ek_flash_data = {
};
static struct resource ek_flash_resource = {
};
static struct resource ek_flash_resource = {
+@@ -189,7 +368,7 @@ static void __init ek_board_init(void)
/* LEDs */
at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
/* VGA */
/* LEDs */
at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
/* VGA */
static void __init kb9202_map_io(void)
{
static void __init kb9202_map_io(void)
{
+@@ -59,8 +50,20 @@ static void __init kb9202_map_io(void)
/* Set up the LEDs */
at91_init_leds(AT91_PIN_PC19, AT91_PIN_PC18);
/* Set up the LEDs */
at91_init_leds(AT91_PIN_PC19, AT91_PIN_PC18);
}
static void __init kb9202_init_irq(void)
}
static void __init kb9202_init_irq(void)
+@@ -111,6 +114,48 @@ static struct at91_nand_data __initdata
.partition_info = nand_partitions,
};
.partition_info = nand_partitions,
};
static void __init kb9202_board_init(void)
{
/* Serial */
static void __init kb9202_board_init(void)
{
/* Serial */
+@@ -129,6 +174,8 @@ static void __init kb9202_board_init(voi
at91_add_device_spi(NULL, 0);
/* NAND */
at91_add_device_nand(&kb9202_nand_data);
at91_add_device_spi(NULL, 0);
/* NAND */
at91_add_device_nand(&kb9202_nand_data);
}
static void __init ek_init_irq(void)
}
static void __init ek_init_irq(void)
+@@ -85,6 +89,35 @@ static struct at91_udc_data __initdata e
* SPI devices.
*/
static struct spi_board_info ek_spi_devices[] = {
* SPI devices.
*/
static struct spi_board_info ek_spi_devices[] = {
+@@ -110,6 +143,8 @@ static struct spi_board_info ek_spi_devi
.chip_select = 0,
.max_speed_hz = 10 * 1000 * 1000,
.bus_num = 1,
.chip_select = 0,
.max_speed_hz = 10 * 1000 * 1000,
.bus_num = 1,
+@@ -172,6 +207,74 @@ static struct at91_mmc_data __initdata e
// .vcc_pin = ... not connected
};
// .vcc_pin = ... not connected
};
static void __init ek_board_init(void)
{
/* Serial */
static void __init ek_board_init(void)
{
/* Serial */
+@@ -190,6 +293,16 @@ static void __init ek_board_init(void)
at91_add_device_mmc(0, &ek_mmc_data);
/* I2C */
at91_add_device_i2c(NULL, 0);
at91_add_device_mmc(0, &ek_mmc_data);
/* I2C */
at91_add_device_i2c(NULL, 0);
static void __init ek_map_io(void)
{
/* Initialize processor: 18.432 MHz crystal */
static void __init ek_map_io(void)
{
/* Initialize processor: 18.432 MHz crystal */
+@@ -68,8 +60,11 @@ static void __init ek_map_io(void)
/* Setup the LEDs */
at91_init_leds(AT91_PIN_PA13, AT91_PIN_PA14);
/* Setup the LEDs */
at91_init_leds(AT91_PIN_PA13, AT91_PIN_PA14);
}
static void __init ek_init_irq(void)
}
static void __init ek_init_irq(void)
+@@ -239,6 +234,35 @@ static void __init ek_add_device_ts(void
* SPI devices
*/
static struct spi_board_info ek_spi_devices[] = {
* SPI devices
*/
static struct spi_board_info ek_spi_devices[] = {
+@@ -252,10 +276,11 @@ static struct spi_board_info ek_spi_devi
{
.modalias = "ads7846",
.chip_select = 2,
{
.modalias = "ads7846",
.chip_select = 2,
},
#endif
#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
},
#endif
#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
+@@ -271,6 +296,9 @@ static struct spi_board_info ek_spi_devi
.chip_select = 3,
.max_speed_hz = 10 * 1000 * 1000,
.bus_num = 0,
.chip_select = 3,
.max_speed_hz = 10 * 1000 * 1000,
.bus_num = 0,
+@@ -408,24 +436,28 @@ static struct gpio_keys_button ek_button
.code = BTN_0,
.desc = "Button 0",
.active_low = 1,
.code = BTN_0,
.desc = "Button 0",
.active_low = 1,
+@@ -445,13 +477,13 @@ static struct platform_device ek_button_
static void __init ek_add_device_buttons(void)
{
static void __init ek_add_device_buttons(void)
{
at91_set_deglitch(AT91_PIN_PA24, 1);
platform_device_register(&ek_button_device);
at91_set_deglitch(AT91_PIN_PA24, 1);
platform_device_register(&ek_button_device);
+@@ -460,6 +492,29 @@ static void __init ek_add_device_buttons
static void __init ek_add_device_buttons(void) {}
#endif
static void __init ek_add_device_buttons(void) {}
#endif
static void __init ek_board_init(void)
{
/* Serial */
static void __init ek_board_init(void)
{
/* Serial */
+@@ -481,6 +536,9 @@ static void __init ek_board_init(void)
at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
/* Touchscreen */
ek_add_device_ts();
at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
/* Touchscreen */
ek_add_device_ts();
#else
/* MMC */
at91_add_device_mmc(0, &ek_mmc_data);
#else
/* MMC */
at91_add_device_mmc(0, &ek_mmc_data);
+@@ -489,6 +547,11 @@ static void __init ek_board_init(void)
at91_add_device_lcdc(&ek_lcdc_data);
/* Push Buttons */
ek_add_device_buttons();
at91_add_device_lcdc(&ek_lcdc_data);
/* Push Buttons */
ek_add_device_buttons();
}
static void __init ek_init_irq(void)
}
static void __init ek_init_irq(void)
+@@ -141,7 +136,7 @@ static struct spi_board_info ek_spi_devi
{
.modalias = "ads7846",
.chip_select = 3,
{
.modalias = "ads7846",
.chip_select = 3,
.bus_num = 0,
.platform_data = &ads_info,
.irq = AT91SAM9263_ID_IRQ1,
.bus_num = 0,
.platform_data = &ads_info,
.irq = AT91SAM9263_ID_IRQ1,
+@@ -301,9 +296,9 @@ static struct platform_device ek_button_
static void __init ek_add_device_buttons(void)
{
static void __init ek_add_device_buttons(void)
{
at91_set_deglitch(AT91_PIN_PC4, 1);
platform_device_register(&ek_button_device);
at91_set_deglitch(AT91_PIN_PC4, 1);
platform_device_register(&ek_button_device);
+@@ -341,7 +336,7 @@ static struct gpio_led ek_leds[] = {
.name = "ds3",
.gpio = AT91_PIN_PB7,
.default_trigger = "heartbeat",
.name = "ds3",
.gpio = AT91_PIN_PB7,
.default_trigger = "heartbeat",
+@@ -374,6 +369,9 @@ static void __init ek_board_init(void)
at91_add_device_ac97(&ek_ac97_data);
/* LEDs */
at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
at91_add_device_ac97(&ek_ac97_data);
/* LEDs */
at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
}
static void __init ek_init_irq(void)
}
static void __init ek_init_irq(void)
+@@ -61,6 +56,14 @@ static void __init ek_init_irq(void)
* MCI (SD/MMC)
*/
static struct at91_mmc_data __initdata ek_mmc_data = {
* MCI (SD/MMC)
*/
static struct at91_mmc_data __initdata ek_mmc_data = {
+@@ -180,6 +183,8 @@ static void __init ek_board_init(void)
{
/* Serial */
at91_add_device_serial();
{
/* Serial */
at91_add_device_serial();
/* I2C */
at91_add_device_i2c(NULL, 0);
/* NAND */
/* I2C */
at91_add_device_i2c(NULL, 0);
/* NAND */
+@@ -190,6 +195,9 @@ static void __init ek_board_init(void)
at91_add_device_mmc(0, &ek_mmc_data);
/* LCD Controller */
at91_add_device_lcdc(&ek_lcdc_data);
at91_add_device_mmc(0, &ek_mmc_data);
/* LCD Controller */
at91_add_device_lcdc(&ek_lcdc_data);
+@@ -113,12 +114,34 @@ static void pmc_sys_mode(struct clk *clk
at91_sys_write(AT91_PMC_SCDR, clk->pmc_mask);
}
at91_sys_write(AT91_PMC_SCDR, clk->pmc_mask);
}
static struct clk uhpck = {
.name = "uhpck",
.parent = &pllb,
static struct clk uhpck = {
.name = "uhpck",
.parent = &pllb,
+@@ -254,6 +277,23 @@ EXPORT_SYMBOL(clk_get_rate);
/*------------------------------------------------------------------------*/
/*------------------------------------------------------------------------*/
#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS
/*
#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS
/*
+@@ -362,7 +402,7 @@ static void __init init_programmable_clo
static int at91_clk_show(struct seq_file *s, void *unused)
{
static int at91_clk_show(struct seq_file *s, void *unused)
{
struct clk *clk;
seq_printf(s, "SCSR = %8x\n", scsr = at91_sys_read(AT91_PMC_SCSR));
struct clk *clk;
seq_printf(s, "SCSR = %8x\n", scsr = at91_sys_read(AT91_PMC_SCSR));
+@@ -370,7 +410,10 @@ static int at91_clk_show(struct seq_file
seq_printf(s, "MOR = %8x\n", at91_sys_read(AT91_CKGR_MOR));
seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR));
seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR));
seq_printf(s, "MOR = %8x\n", at91_sys_read(AT91_CKGR_MOR));
seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR));
seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR));
seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR));
seq_printf(s, "SR = %8x\n", sr = at91_sys_read(AT91_PMC_SR));
seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR));
seq_printf(s, "SR = %8x\n", sr = at91_sys_read(AT91_PMC_SR));
+@@ -383,6 +426,8 @@ static int at91_clk_show(struct seq_file
state = (scsr & clk->pmc_mask) ? "on" : "off";
else if (clk->mode == pmc_periph_mode)
state = (pcsr & clk->pmc_mask) ? "on" : "off";
state = (scsr & clk->pmc_mask) ? "on" : "off";
else if (clk->mode == pmc_periph_mode)
state = (pcsr & clk->pmc_mask) ? "on" : "off";
else if (clk->pmc_mask)
state = (sr & clk->pmc_mask) ? "on" : "off";
else if (clk == &clk32k || clk == &main_clk)
else if (clk->pmc_mask)
state = (sr & clk->pmc_mask) ? "on" : "off";
else if (clk == &clk32k || clk == &main_clk)
+@@ -583,6 +628,17 @@ int __init at91_clock_init(unsigned long
uhpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
/*
uhpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
/*
* MCK and CPU derive from one of those primary clocks.
* For now, assume this parentage won't change.
*/
* MCK and CPU derive from one of those primary clocks.
* For now, assume this parentage won't change.
*/
+@@ -599,6 +655,9 @@ int __init at91_clock_init(unsigned long
for (i = 0; i < ARRAY_SIZE(standard_pmc_clocks); i++)
list_add_tail(&standard_pmc_clocks[i]->node, &clocks);
for (i = 0; i < ARRAY_SIZE(standard_pmc_clocks); i++)
list_add_tail(&standard_pmc_clocks[i]->node, &clocks);
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
+@@ -41,6 +41,7 @@ extern void __init at91_clock_associate(
/* Power Management */
extern void at91_irq_suspend(void);
extern void at91_irq_resume(void);
/* Power Management */
extern void at91_irq_suspend(void);
extern void at91_irq_resume(void);
#define AT91RM9200_PQFP 3 /* AT91RM9200 PQFP package has 3 banks */
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
#define AT91RM9200_PQFP 3 /* AT91RM9200 PQFP package has 3 banks */
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
+@@ -490,7 +490,8 @@ postcore_initcall(at91_gpio_debugfs_init
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
* category than their parents, so it won't report false recursion.
*/
static struct lock_class_key gpio_lock_class;
* category than their parents, so it won't report false recursion.
*/
static struct lock_class_key gpio_lock_class;
+@@ -557,6 +558,7 @@ void __init at91_gpio_init(struct at91_g
data->regbase = data->offset + (void __iomem *)AT91_VA_BASE_SYS;
/* AT91SAM9263_ID_PIOCDE groups PIOC, PIOD, PIOE */
data->regbase = data->offset + (void __iomem *)AT91_VA_BASE_SYS;
/* AT91SAM9263_ID_PIOCDE groups PIOC, PIOD, PIOE */
static int at91_pm_valid_state(suspend_state_t state)
{
static int at91_pm_valid_state(suspend_state_t state)
{
+@@ -62,6 +194,7 @@ static int at91_pm_begin(suspend_state_t
* Verify that all the clocks are correct before entering
* slow-clock mode.
*/
* Verify that all the clocks are correct before entering
* slow-clock mode.
*/
static int at91_pm_verify_clocks(void)
{
unsigned long scsr;
static int at91_pm_verify_clocks(void)
{
unsigned long scsr;
+@@ -107,24 +240,24 @@ static int at91_pm_verify_clocks(void)
static int at91_pm_enter(suspend_state_t state)
{
static int at91_pm_enter(suspend_state_t state)
{
+@@ -158,11 +291,14 @@ static int at91_pm_enter(suspend_state_t
* turning off the main oscillator; reverse on wakeup.
*/
if (slow_clock) {
* turning off the main oscillator; reverse on wakeup.
*/
if (slow_clock) {
/* FALLTHROUGH leaving master clock alone */
}
/* FALLTHROUGH leaving master clock alone */
}
+@@ -175,13 +311,15 @@ static int at91_pm_enter(suspend_state_t
case PM_SUSPEND_STANDBY:
/*
* NOTE: the Wait-for-Interrupt instruction needs to be
case PM_SUSPEND_STANDBY:
/*
* NOTE: the Wait-for-Interrupt instruction needs to be
case PM_SUSPEND_ON:
asm("mcr p15, 0, r0, c7, c0, 4"); /* wait for interrupt */
case PM_SUSPEND_ON:
asm("mcr p15, 0, r0, c7, c0, 4"); /* wait for interrupt */
+@@ -196,6 +334,7 @@ static int at91_pm_enter(suspend_state_t
at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR));
error:
at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR));
error:
target_state = PM_SUSPEND_ON;
at91_irq_resume();
at91_gpio_resume();
target_state = PM_SUSPEND_ON;
at91_irq_resume();
at91_gpio_resume();
+@@ -220,21 +359,20 @@ static struct platform_suspend_ops at91_
static int __init at91_pm_init(void)
{
static int __init at91_pm_init(void)
{
+ .word .-at91_slow_clock
--- a/arch/arm/mach-ks8695/Makefile
+++ b/arch/arm/mach-ks8695/Makefile
+ .word .-at91_slow_clock
--- a/arch/arm/mach-ks8695/Makefile
+++ b/arch/arm/mach-ks8695/Makefile
+@@ -11,5 +11,8 @@ obj- :=
# PCI support is optional
obj-$(CONFIG_PCI) += pci.o
# PCI support is optional
obj-$(CONFIG_PCI) += pci.o
obj-$(CONFIG_MACH_KS8695) += board-micrel.o
--- a/arch/arm/mach-ks8695/devices.c
+++ b/arch/arm/mach-ks8695/devices.c
obj-$(CONFIG_MACH_KS8695) += board-micrel.o
--- a/arch/arm/mach-ks8695/devices.c
+++ b/arch/arm/mach-ks8695/devices.c
+@@ -176,6 +176,27 @@ static void __init ks8695_add_device_wat
/*
--- a/arch/arm/mach-ks8695/gpio.c
+++ b/arch/arm/mach-ks8695/gpio.c
/*
--- a/arch/arm/mach-ks8695/gpio.c
+++ b/arch/arm/mach-ks8695/gpio.c
+@@ -136,9 +136,9 @@ int __init_or_module gpio_direction_outp
/* set line state */
x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
if (state)
/* set line state */
x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
if (state)
__raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD);
/* set pin as output */
__raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD);
/* set pin as output */
+@@ -168,9 +168,9 @@ void gpio_set_value(unsigned int pin, un
/* set output line state */
x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
if (state)
/* set output line state */
x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
if (state)
__raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD);
local_irq_restore(flags);
__raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD);
local_irq_restore(flags);
+@@ -189,7 +189,7 @@ int gpio_get_value(unsigned int pin)
return -EINVAL;
x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
return -EINVAL;
x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
+__initcall(leds_init);
--- a/arch/arm/mach-ks8695/pci.c
+++ b/arch/arm/mach-ks8695/pci.c
+__initcall(leds_init);
--- a/arch/arm/mach-ks8695/pci.c
+++ b/arch/arm/mach-ks8695/pci.c
+@@ -141,7 +141,7 @@ static struct pci_ops ks8695_pci_ops = {
.write = ks8695_pci_writeconfig,
};
.write = ks8695_pci_writeconfig,
};
}
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
}
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
+@@ -1056,5 +1056,21 @@ config DEVPORT
source "drivers/s390/char/Kconfig"
source "drivers/s390/char/Kconfig"
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
+@@ -98,6 +98,8 @@ obj-$(CONFIG_GPIO_DEVICE) += gpio_dev.o
obj-$(CONFIG_GPIO_VR41XX) += vr41xx_giu.o
obj-$(CONFIG_GPIO_TB0219) += tb0219.o
obj-$(CONFIG_TELCLOCK) += tlclk.o
obj-$(CONFIG_GPIO_VR41XX) += vr41xx_giu.o
obj-$(CONFIG_GPIO_TB0219) += tb0219.o
obj-$(CONFIG_TELCLOCK) += tlclk.o
+MODULE_DESCRIPTION("SPI /dev interface for Atmel AT91RM9200")
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
+MODULE_DESCRIPTION("SPI /dev interface for Atmel AT91RM9200")
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
+@@ -88,6 +88,14 @@ config I2C_AT91
to support combined I2C messages. Use the i2c-gpio driver
unless your system can cope with those limitations.
to support combined I2C messages. Use the i2c-gpio driver
unless your system can cope with those limitations.
config I2C_AU1550
tristate "Au1550/Au1200 SMBus interface"
depends on SOC_AU1550 || SOC_AU1200
config I2C_AU1550
tristate "Au1550/Au1200 SMBus interface"
depends on SOC_AU1550 || SOC_AU1200
+@@ -626,6 +634,14 @@ config I2C_VOODOO3
This driver can also be built as a module. If so, the module
will be called i2c-voodoo3.
This driver can also be built as a module. If so, the module
will be called i2c-voodoo3.
depends on ISA
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
depends on ISA
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
+@@ -29,6 +29,7 @@ obj-$(CONFIG_I2C_OMAP) += i2c-omap.o
obj-$(CONFIG_I2C_PARPORT) += i2c-parport.o
obj-$(CONFIG_I2C_PARPORT_LIGHT) += i2c-parport-light.o
obj-$(CONFIG_I2C_PASEMI) += i2c-pasemi.o
obj-$(CONFIG_I2C_PARPORT) += i2c-parport.o
obj-$(CONFIG_I2C_PARPORT_LIGHT) += i2c-parport-light.o
obj-$(CONFIG_I2C_PASEMI) += i2c-pasemi.o
static struct clk *twi_clk;
static void __iomem *twi_base;
static struct clk *twi_clk;
static void __iomem *twi_base;
+@@ -53,7 +56,7 @@ static void __devinit at91_twi_hwinit(vo
at91_twi_write(AT91_TWI_CR, AT91_TWI_MSEN); /* Set Master mode */
/* Calcuate clock dividers */
at91_twi_write(AT91_TWI_CR, AT91_TWI_MSEN); /* Set Master mode */
/* Calcuate clock dividers */
cdiv = cdiv + 1; /* round up */
ckdiv = 0;
while (cdiv > 255) {
cdiv = cdiv + 1; /* round up */
ckdiv = 0;
while (cdiv > 255) {
+@@ -61,11 +64,12 @@ static void __devinit at91_twi_hwinit(vo
+MODULE_LICENSE("GPL");
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
+MODULE_LICENSE("GPL");
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
+@@ -659,13 +659,14 @@ static void at91_mci_set_ios(struct mmc_
/* maybe switch power to the card */
if (host->board->vcc_pin) {
switch (ios->power_mode) {
/* maybe switch power to the card */
if (host->board->vcc_pin) {
switch (ios->power_mode) {
}
--- a/drivers/mtd/devices/Kconfig
+++ b/drivers/mtd/devices/Kconfig
}
--- a/drivers/mtd/devices/Kconfig
+++ b/drivers/mtd/devices/Kconfig
+@@ -270,5 +270,17 @@ config MTD_DOCPROBE_55AA
LinuxBIOS or if you need to recover a DiskOnChip Millennium on which
you have managed to wipe the first block.
LinuxBIOS or if you need to recover a DiskOnChip Millennium on which
you have managed to wipe the first block.
+endmenu
--- a/drivers/mtd/devices/Makefile
+++ b/drivers/mtd/devices/Makefile
+endmenu
--- a/drivers/mtd/devices/Makefile
+++ b/drivers/mtd/devices/Makefile
+@@ -17,3 +17,4 @@ obj-$(CONFIG_MTD_LART) += lart.o
obj-$(CONFIG_MTD_BLOCK2MTD) += block2mtd.o
obj-$(CONFIG_MTD_DATAFLASH) += mtd_dataflash.o
obj-$(CONFIG_MTD_M25P80) += m25p80.o
obj-$(CONFIG_MTD_BLOCK2MTD) += block2mtd.o
obj-$(CONFIG_MTD_DATAFLASH) += mtd_dataflash.o
obj-$(CONFIG_MTD_M25P80) += m25p80.o
+MODULE_DESCRIPTION("DataFlash driver for Atmel AT91RM9200");
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
+MODULE_DESCRIPTION("DataFlash driver for Atmel AT91RM9200");
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
+@@ -273,12 +273,53 @@ config MTD_NAND_CS553X
If you say "m", the module will be called "cs553x_nand.ko".
config MTD_NAND_AT91
If you say "m", the module will be called "cs553x_nand.ko".
config MTD_NAND_AT91
* Hardware specific access to control-lines
*/
static void at91_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
* Hardware specific access to control-lines
*/
static void at91_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
+@@ -44,6 +113,13 @@ static void at91_nand_cmd_ctrl(struct mt
struct nand_chip *nand_chip = mtd->priv;
struct at91_nand_host *host = nand_chip->priv;
struct nand_chip *nand_chip = mtd->priv;
struct at91_nand_host *host = nand_chip->priv;
if (cmd == NAND_CMD_NONE)
return;
if (cmd == NAND_CMD_NONE)
return;
+@@ -65,27 +141,249 @@ static int at91_nand_device_ready(struct
/*
* Probe for the NAND device.
*/
/*
* Probe for the NAND device.
*/
+@@ -94,6 +392,8 @@ static int __init at91_nand_probe(struct
struct at91_nand_host *host;
struct mtd_info *mtd;
struct nand_chip *nand_chip;
struct at91_nand_host *host;
struct mtd_info *mtd;
struct nand_chip *nand_chip;
int res;
#ifdef CONFIG_MTD_PARTITIONS
int res;
#ifdef CONFIG_MTD_PARTITIONS
+@@ -108,8 +408,13 @@ static int __init at91_nand_probe(struct
if (host->io_base == NULL) {
printk(KERN_ERR "at91_nand: ioremap failed\n");
kfree(host);
if (host->io_base == NULL) {
printk(KERN_ERR "at91_nand: ioremap failed\n");
kfree(host);
+@@ -119,6 +424,7 @@ static int __init at91_nand_probe(struct
mtd = &host->mtd;
nand_chip = &host->nand_chip;
host->board = pdev->dev.platform_data;
mtd = &host->mtd;
nand_chip = &host->nand_chip;
host->board = pdev->dev.platform_data;
nand_chip->priv = host; /* link the private data structures */
mtd->priv = nand_chip;
nand_chip->priv = host; /* link the private data structures */
mtd->priv = nand_chip;
+@@ -132,11 +438,40 @@ static int __init at91_nand_probe(struct
if (host->board->rdy_pin)
nand_chip->dev_ready = at91_nand_device_ready;
if (host->board->rdy_pin)
nand_chip->dev_ready = at91_nand_device_ready;
platform_set_drvdata(pdev, host);
at91_nand_enable(host);
platform_set_drvdata(pdev, host);
at91_nand_enable(host);
+@@ -149,8 +484,60 @@ static int __init at91_nand_probe(struct
res = -ENXIO;
goto out;
}
res = -ENXIO;
goto out;
}
+@@ -179,8 +566,11 @@ static int __init at91_nand_probe(struct
out:
at91_nand_disable(host);
platform_set_drvdata(pdev, NULL);
out:
at91_nand_disable(host);
platform_set_drvdata(pdev, NULL);
+@@ -192,7 +582,7 @@ out:
/*
* Remove a NAND device.
*/
/*
* Remove a NAND device.
*/
{
struct at91_nand_host *host = platform_get_drvdata(pdev);
struct mtd_info *mtd = &host->mtd;
{
struct at91_nand_host *host = platform_get_drvdata(pdev);
struct mtd_info *mtd = &host->mtd;
+@@ -208,8 +598,7 @@ static int __devexit at91_nand_remove(st
}
static struct platform_driver at91_nand_driver = {
}
static struct platform_driver at91_nand_driver = {
.driver = {
.name = "at91_nand",
.owner = THIS_MODULE,
.driver = {
.name = "at91_nand",
.owner = THIS_MODULE,
+@@ -218,7 +607,7 @@ static struct platform_driver at91_nand_
static int __init at91_nand_init(void)
{
static int __init at91_nand_init(void)
{
+@@ -233,4 +622,4 @@ module_exit(at91_nand_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Rick Bronson");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Rick Bronson");
+MODULE_DESCRIPTION("NAND/SmartMedia driver for AT91RM9200 / AT91SAM9 / AT91CAP9");
--- a/drivers/net/arm/Kconfig
+++ b/drivers/net/arm/Kconfig
+MODULE_DESCRIPTION("NAND/SmartMedia driver for AT91RM9200 / AT91SAM9 / AT91CAP9");
--- a/drivers/net/arm/Kconfig
+++ b/drivers/net/arm/Kconfig
+@@ -47,3 +47,10 @@ config EP93XX_ETH
help
This is a driver for the ethernet hardware included in EP93xx CPUs.
Say Y if you are building a kernel for EP93xx based devices.
help
This is a driver for the ethernet hardware included in EP93xx CPUs.
Say Y if you are building a kernel for EP93xx based devices.
+ and enable Ethernet support, then select this option.
--- a/drivers/net/arm/Makefile
+++ b/drivers/net/arm/Makefile
+ and enable Ethernet support, then select this option.
--- a/drivers/net/arm/Makefile
+++ b/drivers/net/arm/Makefile
+@@ -9,3 +9,4 @@ obj-$(CONFIG_ARM_ETHER3) += ether3.o
obj-$(CONFIG_ARM_ETHER1) += ether1.o
obj-$(CONFIG_ARM_AT91_ETHER) += at91_ether.o
obj-$(CONFIG_EP93XX_ETH) += ep93xx_eth.o
+obj-$(CONFIG_ARM_KS8695_ETHER) += ks8695_ether.o
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
obj-$(CONFIG_ARM_ETHER1) += ether1.o
obj-$(CONFIG_ARM_AT91_ETHER) += at91_ether.o
obj-$(CONFIG_EP93XX_ETH) += ep93xx_eth.o
+obj-$(CONFIG_ARM_KS8695_ETHER) += ks8695_ether.o
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
+@@ -220,7 +220,7 @@ static irqreturn_t at91ether_phy_interru
if (!(phy & (1 << 0)))
goto done;
}
if (!(phy & (1 << 0)))
goto done;
}
read_phy(lp->phy_address, MII_TPISTATUS, &phy); /* ack interrupt in Micrel PHY */
if (!(phy & ((1 << 2) | 1)))
goto done;
read_phy(lp->phy_address, MII_TPISTATUS, &phy); /* ack interrupt in Micrel PHY */
if (!(phy & ((1 << 2) | 1)))
goto done;
+@@ -286,7 +286,7 @@ static void enable_phyirq(struct net_dev
dsintr = (1 << 15) | ( 1 << 14);
write_phy(lp->phy_address, MII_BCMINTR_REG, dsintr);
}
dsintr = (1 << 15) | ( 1 << 14);
write_phy(lp->phy_address, MII_BCMINTR_REG, dsintr);
}
dsintr = (1 << 10) | ( 1 << 8);
write_phy(lp->phy_address, MII_TPISTATUS, dsintr);
}
dsintr = (1 << 10) | ( 1 << 8);
write_phy(lp->phy_address, MII_TPISTATUS, dsintr);
}
+@@ -341,7 +341,7 @@ static void disable_phyirq(struct net_de
dsintr = ~(1 << 14);
write_phy(lp->phy_address, MII_BCMINTR_REG, dsintr);
}
dsintr = ~(1 << 14);
write_phy(lp->phy_address, MII_BCMINTR_REG, dsintr);
}
read_phy(lp->phy_address, MII_TPISTATUS, &dsintr);
dsintr = ~((1 << 10) | (1 << 8));
write_phy(lp->phy_address, MII_TPISTATUS, dsintr);
read_phy(lp->phy_address, MII_TPISTATUS, &dsintr);
dsintr = ~((1 << 10) | (1 << 8));
write_phy(lp->phy_address, MII_TPISTATUS, dsintr);
+@@ -820,7 +820,7 @@ static int at91ether_tx(struct sk_buff *
lp->skb = skb;
lp->skb_length = skb->len;
lp->skb_physaddr = dma_map_single(NULL, skb->data, skb->len, DMA_TO_DEVICE);
lp->skb = skb;
lp->skb_length = skb->len;
lp->skb_physaddr = dma_map_single(NULL, skb->data, skb->len, DMA_TO_DEVICE);
/* Set address of the data in the Transmit Address register */
at91_emac_write(AT91_EMAC_TAR, lp->skb_physaddr);
/* Set address of the data in the Transmit Address register */
at91_emac_write(AT91_EMAC_TAR, lp->skb_physaddr);
+@@ -843,34 +843,32 @@ static int at91ether_tx(struct sk_buff *
*/
static struct net_device_stats *at91ether_stats(struct net_device *dev)
{
*/
static struct net_device_stats *at91ether_stats(struct net_device *dev)
{
+@@ -896,16 +894,16 @@ static void at91ether_rx(struct net_devi
skb->protocol = eth_type_trans(skb, dev);
dev->last_rx = jiffies;
skb->protocol = eth_type_trans(skb, dev);
dev->last_rx = jiffies;
dlist->descriptors[lp->rxBuffIndex].addr &= ~EMAC_DESC_DONE; /* reset ownership bit */
if (lp->rxBuffIndex == MAX_RX_DESCR-1) /* wrap after last buffer */
dlist->descriptors[lp->rxBuffIndex].addr &= ~EMAC_DESC_DONE; /* reset ownership bit */
if (lp->rxBuffIndex == MAX_RX_DESCR-1) /* wrap after last buffer */
+@@ -934,7 +932,7 @@ static irqreturn_t at91ether_interrupt(i
if (intstatus & AT91_EMAC_TCOM) { /* Transmit complete */
/* The TCOM bit is set even if the transmission failed. */
if (intstatus & (AT91_EMAC_TUND | AT91_EMAC_RTRY))
if (intstatus & AT91_EMAC_TCOM) { /* Transmit complete */
/* The TCOM bit is set even if the transmission failed. */
if (intstatus & (AT91_EMAC_TUND | AT91_EMAC_RTRY))
if (lp->skb) {
dev_kfree_skb_irq(lp->skb);
if (lp->skb) {
dev_kfree_skb_irq(lp->skb);
+@@ -978,15 +976,22 @@ static int __init at91ether_setup(unsign
struct net_device *dev;
struct at91_private *lp;
unsigned int val;
struct net_device *dev;
struct at91_private *lp;
unsigned int val;
/* Install the interrupt handler */
if (request_irq(dev->irq, at91ether_interrupt, 0, dev->name, dev)) {
/* Install the interrupt handler */
if (request_irq(dev->irq, at91ether_interrupt, 0, dev->name, dev)) {
+@@ -1043,7 +1048,9 @@ static int __init at91ether_setup(unsign
} else if (machine_is_csb337()) {
/* mix link activity status into LED2 link state */
write_phy(phy_address, MII_LEDCTRL_REG, 0x0d22);
} else if (machine_is_csb337()) {
/* mix link activity status into LED2 link state */
write_phy(phy_address, MII_LEDCTRL_REG, 0x0d22);
disable_mdi();
spin_unlock_irq(&lp->lock);
disable_mdi();
spin_unlock_irq(&lp->lock);
+@@ -1058,12 +1065,12 @@ static int __init at91ether_setup(unsign
lp->phy_address = phy_address; /* MDI address of PHY */
/* Register the network interface */
lp->phy_address = phy_address; /* MDI address of PHY */
/* Register the network interface */
}
/* Determine current link speed */
}
/* Determine current link speed */
+@@ -1101,6 +1108,8 @@ static int __init at91ether_setup(unsign
printk(KERN_INFO "%s: National Semiconductor DP83848 PHY\n", dev->name);
else if (phy_type == MII_AC101L_ID)
printk(KERN_INFO "%s: Altima AC101L PHY\n", dev->name);
printk(KERN_INFO "%s: National Semiconductor DP83848 PHY\n", dev->name);
else if (phy_type == MII_AC101L_ID)
printk(KERN_INFO "%s: Altima AC101L PHY\n", dev->name);
else if (phy_type == MII_KS8721_ID)
printk(KERN_INFO "%s: Micrel KS8721 PHY\n", dev->name);
else if (phy_type == MII_T78Q21x3_ID)
else if (phy_type == MII_KS8721_ID)
printk(KERN_INFO "%s: Micrel KS8721 PHY\n", dev->name);
else if (phy_type == MII_T78Q21x3_ID)
+@@ -1146,6 +1155,7 @@ static int __init at91ether_probe(struct
case MII_DP83847_ID: /* National Semiconductor DP83847: */
case MII_DP83848_ID: /* National Semiconductor DP83848: */
case MII_AC101L_ID: /* Altima AC101L: PHY_ID1 = 0x22, PHY_ID2 = 0x5520 */
case MII_DP83847_ID: /* National Semiconductor DP83847: */
case MII_DP83848_ID: /* National Semiconductor DP83848: */
case MII_AC101L_ID: /* Altima AC101L: PHY_ID1 = 0x22, PHY_ID2 = 0x5520 */
case MII_KS8721_ID: /* Micrel KS8721: PHY_ID1 = 0x22, PHY_ID2 = 0x1610 */
case MII_T78Q21x3_ID: /* Teridian 78Q21x3: PHY_ID1 = 0x0E, PHY_ID2 = 7237 */
case MII_LAN83C185_ID: /* SMSC LAN83C185: PHY_ID1 = 0x0007, PHY_ID2 = 0xC0A1 */
case MII_KS8721_ID: /* Micrel KS8721: PHY_ID1 = 0x22, PHY_ID2 = 0x1610 */
case MII_T78Q21x3_ID: /* Teridian 78Q21x3: PHY_ID1 = 0x0E, PHY_ID2 = 7237 */
case MII_LAN83C185_ID: /* SMSC LAN83C185: PHY_ID1 = 0x0007, PHY_ID2 = 0xC0A1 */
+@@ -1246,3 +1256,4 @@ module_exit(at91ether_exit)
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("AT91RM9200 EMAC Ethernet driver");
MODULE_AUTHOR("Andrew Victor");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("AT91RM9200 EMAC Ethernet driver");
MODULE_AUTHOR("Andrew Victor");
/* Micrel KS8721 PHY */
#define MII_KS8721_ID 0x00221610
/* Micrel KS8721 PHY */
#define MII_KS8721_ID 0x00221610
+@@ -84,7 +87,6 @@ struct recv_desc_bufs
+#endif
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
+#endif
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
+@@ -487,12 +487,12 @@ config RTC_DRV_AT91RM9200
this is powered by the backup power supply.
config RTC_DRV_AT91SAM9
this is powered by the backup power supply.
config RTC_DRV_AT91SAM9
#include <asm/arch/at91_rtc.h>
#include <asm/arch/at91_rtc.h>
+@@ -307,12 +304,6 @@ static int __init at91_rtc_probe(struct
#include <asm/arch/at91_rtt.h>
#include <asm/arch/at91_rtt.h>
+@@ -150,6 +151,9 @@ static int at91_rtc_settime(struct devic
static int at91_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)
{
struct sam9_rtc *rtc = dev_get_drvdata(dev);
static int at91_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)
{
struct sam9_rtc *rtc = dev_get_drvdata(dev);
+@@ -176,6 +180,9 @@ static int at91_rtc_readalarm(struct dev
static int at91_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
{
struct sam9_rtc *rtc = dev_get_drvdata(dev);
static int at91_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
{
struct sam9_rtc *rtc = dev_get_drvdata(dev);
+@@ -321,10 +328,6 @@ static int __init at91_rtc_probe(struct
if (!rtc)
return -ENOMEM;
if (!rtc)
return -ENOMEM;
rtc->rtt += r->start;
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
rtc->rtt += r->start;
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
+@@ -113,6 +113,15 @@ config SPI_GPIO
depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
+@@ -29,6 +29,7 @@ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24x
obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
+MODULE_ALIAS("platform:at91_spi");
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
+MODULE_ALIAS("platform:at91_spi");
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
+@@ -118,10 +118,10 @@ config USB_AMD5536UDC
config USB_GADGET_ATMEL_USBA
boolean "Atmel USBA"
select USB_GADGET_DUALSPEED
config USB_GADGET_ATMEL_USBA
boolean "Atmel USBA"
select USB_GADGET_DUALSPEED
tristate
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
tristate
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
+@@ -1827,7 +1827,7 @@ static int at91udc_suspend(struct platfo
*/
if ((!udc->suspended && udc->addr)
|| !wake
*/
if ((!udc->suspended && udc->addr)
|| !wake
#ifdef CONFIG_USB_GADGET_DEBUG_FS
#include <linux/debugfs.h>
#ifdef CONFIG_USB_GADGET_DEBUG_FS
#include <linux/debugfs.h>
+@@ -324,53 +326,6 @@ static int vbus_is_present(struct usba_u
static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
{
unsigned int transaction_len;
static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
{
unsigned int transaction_len;
+@@ -387,7 +342,7 @@ static void next_fifo_transaction(struct
ep->ep.name, req, transaction_len,
req->last_transaction ? ", done" : "");
ep->ep.name, req, transaction_len,
req->last_transaction ? ", done" : "");
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
req->req.actual += transaction_len;
}
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
req->req.actual += transaction_len;
}
+@@ -476,7 +431,7 @@ static void receive_data(struct usba_ep
bytecount = req->req.length - req->req.actual;
}
bytecount = req->req.length - req->req.actual;
}
ep->fifo, bytecount);
req->req.actual += bytecount;
ep->fifo, bytecount);
req->req.actual += bytecount;
+@@ -1029,33 +984,6 @@ static const struct usb_gadget_ops usba_
.set_selfpowered = usba_udc_set_selfpowered,
};
.set_selfpowered = usba_udc_set_selfpowered,
};
static struct usb_endpoint_descriptor usba_ep0_desc = {
.bLength = USB_DT_ENDPOINT_SIZE,
.bDescriptorType = USB_DT_ENDPOINT,
static struct usb_endpoint_descriptor usba_ep0_desc = {
.bLength = USB_DT_ENDPOINT_SIZE,
.bDescriptorType = USB_DT_ENDPOINT,
+@@ -1074,7 +1002,6 @@ static void nop_release(struct device *d
static struct usba_udc the_udc = {
.gadget = {
.ops = &usba_udc_ops,
static struct usba_udc the_udc = {
.gadget = {
.ops = &usba_udc_ops,
.ep_list = LIST_HEAD_INIT(the_udc.gadget.ep_list),
.is_dualspeed = 1,
.name = "atmel_usba_udc",
.ep_list = LIST_HEAD_INIT(the_udc.gadget.ep_list),
.is_dualspeed = 1,
.name = "atmel_usba_udc",
+@@ -1231,7 +1158,7 @@ static int do_test_mode(struct usba_udc
} else {
usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE);
usba_writel(udc, TST, USBA_TST_PKT_MODE);
} else {
usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE);
usba_writel(udc, TST, USBA_TST_PKT_MODE);
sizeof(test_packet_buffer));
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
dev_info(dev, "Entering Test_Packet mode...\n");
sizeof(test_packet_buffer));
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
dev_info(dev, "Entering Test_Packet mode...\n");
+@@ -1530,13 +1457,13 @@ restart:
DBG(DBG_HW, "Packet length: %u\n", pkt_len);
if (pkt_len != sizeof(crq)) {
pr_warning("udc: Invalid packet length %u "
DBG(DBG_HW, "Packet length: %u\n", pkt_len);
if (pkt_len != sizeof(crq)) {
pr_warning("udc: Invalid packet length %u "
/* Free up one bank in the FIFO so that we can
* generate or receive a reply right away. */
/* Free up one bank in the FIFO so that we can
* generate or receive a reply right away. */
+@@ -1908,7 +1835,7 @@ static int __init usba_udc_probe(struct
regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
return -ENXIO;
irq = platform_get_irq(pdev, 0);
return -ENXIO;
irq = platform_get_irq(pdev, 0);
+@@ -1956,16 +1883,44 @@ static int __init usba_udc_probe(struct
usba_writel(udc, CTRL, 0);
clk_disable(pclk);
usba_writel(udc, CTRL, 0);
clk_disable(pclk);
list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
}
list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
}
+@@ -1984,7 +1939,7 @@ static int __init usba_udc_probe(struct
if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
udc->vbus_pin = pdata->vbus_pin;
if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
udc->vbus_pin = pdata->vbus_pin;
+@@ -2004,7 +1959,7 @@ static int __init usba_udc_probe(struct
}
usba_init_debugfs(udc);
}
usba_init_debugfs(udc);
usba_ep_init_debugfs(udc, &usba_ep[i]);
return 0;
usba_ep_init_debugfs(udc, &usba_ep[i]);
return 0;
+@@ -2012,6 +1967,8 @@ static int __init usba_udc_probe(struct
err_device_add:
free_irq(irq, udc);
err_request_irq:
err_device_add:
free_irq(irq, udc);
err_request_irq:
iounmap(udc->fifo);
err_map_fifo:
iounmap(udc->regs);
iounmap(udc->fifo);
err_map_fifo:
iounmap(udc->regs);
+@@ -2029,10 +1986,11 @@ static int __exit usba_udc_remove(struct
{
struct usba_udc *udc;
int i;
{
struct usba_udc *udc;
int i;
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
+@@ -330,7 +330,7 @@ ohci_hcd_at91_drv_suspend(struct platfor
*
* REVISIT: some boards will be able to turn VBUS off...
*/
*
* REVISIT: some boards will be able to turn VBUS off...
*/
}
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
}
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
+@@ -889,6 +889,17 @@ config FB_EPSON1355
framebuffer. Product specs at
<http://www.erd.epson.com/vdc/html/products.htm>.
framebuffer. Product specs at
<http://www.erd.epson.com/vdc/html/products.htm>.
depends on FB
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
depends on FB
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
+@@ -87,7 +87,8 @@ obj-$(CONFIG_FB_G364) += g36
obj-$(CONFIG_FB_SA1100) += sa1100fb.o
obj-$(CONFIG_FB_HIT) += hitfb.o
obj-$(CONFIG_FB_EPSON1355) += epson1355fb.o
obj-$(CONFIG_FB_SA1100) += sa1100fb.o
obj-$(CONFIG_FB_HIT) += hitfb.o
obj-$(CONFIG_FB_EPSON1355) += epson1355fb.o
#define ATMEL_LCDC_FIFO_SIZE 2048
#else
#define ATMEL_LCDC_FIFO_SIZE 512
#define ATMEL_LCDC_FIFO_SIZE 2048
#else
#define ATMEL_LCDC_FIFO_SIZE 512
+@@ -903,11 +903,45 @@ static int __exit atmel_lcdfb_remove(str
.owner = THIS_MODULE,
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
.owner = THIS_MODULE,
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
+@@ -112,3 +112,11 @@ config BACKLIGHT_CARILLO_RANCH
help
If you have a Intel LE80578 (Carillo Ranch) say Y to enable the
backlight driver.
help
If you have a Intel LE80578 (Carillo Ranch) say Y to enable the
backlight driver.
+ backlight driver.
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
+ backlight driver.
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
+@@ -10,3 +10,4 @@ obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomo
obj-$(CONFIG_BACKLIGHT_OMAP1) += omap1_bl.o
obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o
obj-$(CONFIG_BACKLIGHT_CARILLO_RANCH) += cr_bllcd.o
obj-$(CONFIG_BACKLIGHT_OMAP1) += omap1_bl.o
obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o
obj-$(CONFIG_BACKLIGHT_CARILLO_RANCH) += cr_bllcd.o
+MODULE_LICENSE("GPL");
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
+MODULE_LICENSE("GPL");
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
+@@ -66,6 +66,14 @@ config AT91RM9200_WATCHDOG
Watchdog timer embedded into AT91RM9200 chips. This will reboot your
system when the timeout is reached.
Watchdog timer embedded into AT91RM9200 chips. This will reboot your
system when the timeout is reached.
depends on FOOTBRIDGE
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
depends on FOOTBRIDGE
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
+@@ -26,6 +26,7 @@ obj-$(CONFIG_USBPCWATCHDOG) += pcwd_usb.
# ARM Architecture
obj-$(CONFIG_AT91RM9200_WATCHDOG) += at91rm9200_wdt.o
# ARM Architecture
obj-$(CONFIG_AT91RM9200_WATCHDOG) += at91rm9200_wdt.o
/* USB Device */
struct at91_udc_data {
/* USB Device */
struct at91_udc_data {
+@@ -45,6 +46,9 @@ struct at91_udc_data {
};
extern void __init at91_add_device_udc(struct at91_udc_data *data);
};
extern void __init at91_add_device_udc(struct at91_udc_data *data);
/* Compact Flash */
struct at91_cf_data {
u8 irq_pin; /* I/O IRQ */
/* Compact Flash */
struct at91_cf_data {
u8 irq_pin; /* I/O IRQ */
+@@ -158,6 +162,9 @@ extern void __init at91_add_device_ac97(
/* ISI */
extern void __init at91_add_device_isi(void);
/* ISI */
extern void __init at91_add_device_isi(void);
extern void __init at91_gpio_leds(struct gpio_led *leds, int nr);
--- a/include/asm-arm/arch-at91/cpu.h
+++ b/include/asm-arm/arch-at91/cpu.h
extern void __init at91_gpio_leds(struct gpio_led *leds, int nr);
--- a/include/asm-arm/arch-at91/cpu.h
+++ b/include/asm-arm/arch-at91/cpu.h
+@@ -48,6 +48,17 @@ static inline unsigned long at91_arch_id
return (at91_sys_read(AT91_DBGU_CIDR) & AT91_CIDR_ARCH);
}
return (at91_sys_read(AT91_DBGU_CIDR) & AT91_CIDR_ARCH);
}
#ifdef CONFIG_ARCH_AT91RM9200
#define cpu_is_at91rm9200() (at91_cpu_identify() == ARCH_ID_AT91RM9200)
#ifdef CONFIG_ARCH_AT91RM9200
#define cpu_is_at91rm9200() (at91_cpu_identify() == ARCH_ID_AT91RM9200)
+@@ -83,8 +94,12 @@ static inline unsigned long at91_arch_id
#ifdef CONFIG_ARCH_AT91CAP9
#define cpu_is_at91cap9() (at91_cpu_identify() == ARCH_ID_AT91CAP9)
#ifdef CONFIG_ARCH_AT91CAP9
#define cpu_is_at91cap9() (at91_cpu_identify() == ARCH_ID_AT91CAP9)
#elif defined(CONFIG_ARCH_AT91SAM9RL)
--- a/include/asm-arm/arch-ks8695/devices.h
+++ b/include/asm-arm/arch-ks8695/devices.h
#elif defined(CONFIG_ARCH_AT91SAM9RL)
--- a/include/asm-arm/arch-ks8695/devices.h
+++ b/include/asm-arm/arch-ks8695/devices.h
+@@ -18,6 +18,11 @@ extern void __init ks8695_add_device_wan
extern void __init ks8695_add_device_lan(void);
extern void __init ks8695_add_device_hpna(void);
extern void __init ks8695_add_device_lan(void);
extern void __init ks8695_add_device_hpna(void);
#define KS8695_MODE_MINIPCI 1
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
#define KS8695_MODE_MINIPCI 1
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
+@@ -121,4 +121,24 @@ int clk_set_parent(struct clk *clk, stru
*/
struct clk *clk_get_parent(struct clk *clk);
*/
struct clk *clk_get_parent(struct clk *clk);
+
--- a/include/video/atmel_lcdc.h
+++ b/include/video/atmel_lcdc.h
+
--- a/include/video/atmel_lcdc.h
+++ b/include/video/atmel_lcdc.h
+@@ -39,6 +39,7 @@ struct atmel_lcdfb_info {
u8 bl_power;
#endif
bool lcdcon_is_backlight;
u8 bl_power;
#endif
bool lcdcon_is_backlight;
static struct clk *pck1_clk;
static struct clk *pllb_clk;
static struct clk *pck1_clk;
static struct clk *pllb_clk;
+@@ -276,7 +268,6 @@ static struct platform_device *eti_b1_sn
static int __init eti_b1_init(void)
{
int ret;
static int __init eti_b1_init(void)
{
int ret;
struct at91_ssc_periph *ssc = eti_b1_dai.cpu_dai->private_data;
if (!request_mem_region(AT91RM9200_BASE_SSC1, SZ_16K, "soc-audio")) {
struct at91_ssc_periph *ssc = eti_b1_dai.cpu_dai->private_data;
if (!request_mem_region(AT91RM9200_BASE_SSC1, SZ_16K, "soc-audio")) {
+@@ -310,19 +301,12 @@ static int __init eti_b1_init(void)
* Set PCK1 parent to PLLB and its rate to 12 Mhz.
--- a/sound/spi/at73c213.c
+++ b/sound/spi/at73c213.c
* Set PCK1 parent to PLLB and its rate to 12 Mhz.
--- a/sound/spi/at73c213.c
+++ b/sound/spi/at73c213.c
+@@ -114,7 +114,11 @@ snd_at73c213_write_reg(struct snd_at73c2
static struct snd_pcm_hardware snd_at73c213_playback_hw = {
.info = SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER,
static struct snd_pcm_hardware snd_at73c213_playback_hw = {
.info = SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER,
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
+@@ -151,6 +151,12 @@ config MACH_TT9200
help
Select this if you are using Toptech's TT9200 board.
help
Select this if you are using Toptech's TT9200 board.
# ----------------------------------------------------------
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
# ----------------------------------------------------------
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
+@@ -29,6 +29,7 @@ obj-$(CONFIG_MACH_KB9200) += board-kb920
obj-$(CONFIG_MACH_ATEB9200) += board-eb9200.o
obj-$(CONFIG_MACH_KAFA) += board-kafa.o
obj-$(CONFIG_MACH_CHUB) += board-chub.o
obj-$(CONFIG_MACH_ATEB9200) += board-eb9200.o
obj-$(CONFIG_MACH_KAFA) += board-kafa.o
obj-$(CONFIG_MACH_CHUB) += board-chub.o
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
+@@ -717,6 +717,26 @@ static void __init at91_add_device_watch
static void __init at91_add_device_watchdog(void) {}
#endif
static void __init at91_add_device_watchdog(void) {}
#endif
* SSC -- Synchronous Serial Controller
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
* SSC -- Synchronous Serial Controller
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
+@@ -60,7 +60,12 @@ obj-$(CONFIG_MACH_AT91CAP9ADK) += board-
obj-$(CONFIG_MACH_AT91EB01) += board-eb01.o
# Drivers
obj-$(CONFIG_MACH_AT91EB01) += board-eb01.o
# Drivers
+__initcall(leds_init);
--- a/include/asm-arm/arch-at91/board.h
+++ b/include/asm-arm/arch-at91/board.h
+__initcall(leds_init);
--- a/include/asm-arm/arch-at91/board.h
+++ b/include/asm-arm/arch-at91/board.h
+@@ -162,6 +162,11 @@ extern void __init at91_add_device_ac97(
/* ISI */
extern void __init at91_add_device_isi(void);
/* ISI */
extern void __init at91_add_device_isi(void);
--- a/arch/arm/mach-at91/board-vlink.c
+++ b/arch/arm/mach-at91/board-vlink.c
--- a/arch/arm/mach-at91/board-vlink.c
+++ b/arch/arm/mach-at91/board-vlink.c
+@@ -99,7 +99,7 @@ static struct at91_udc_data __initdata v
*/
static struct at91_mmc_data __initdata vlink_mmc_data = {
*/
static struct at91_mmc_data __initdata vlink_mmc_data = {
.slot_b = 0,
.wire4 = 1,
// .wp_pin = AT91_PIN_PA17,
.slot_b = 0,
.wire4 = 1,
// .wp_pin = AT91_PIN_PA17,
+@@ -136,6 +136,7 @@ static struct spi_board_info vlink_spi_d
static void __init vlink_board_init(void)
{
static void __init vlink_board_init(void)
{
/* Serial */
at91_add_device_serial();
/* Ethernet */
/* Serial */
at91_add_device_serial();
/* Ethernet */
+@@ -157,36 +158,66 @@ static void __init vlink_board_init(void
// at91_set_gpio_output(AT91_PIN_PB22, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */
at91_add_device_mmc(0, &vlink_mmc_data);
#endif
// at91_set_gpio_output(AT91_PIN_PB22, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */
at91_add_device_mmc(0, &vlink_mmc_data);
#endif
static inline void __iomem *pin_to_controller(unsigned pin)
static inline void __iomem *pin_to_controller(unsigned pin)
+@@ -71,9 +72,13 @@ int __init_or_module at91_set_GPIO_perip
{
void __iomem *pio = pin_to_controller(pin);
unsigned mask = pin_to_mask(pin);
{
void __iomem *pio = pin_to_controller(pin);
unsigned mask = pin_to_mask(pin);
__raw_writel(mask, pio + PIO_IDR);
__raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR));
__raw_writel(mask, pio + PIO_PER);
__raw_writel(mask, pio + PIO_IDR);
__raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR));
__raw_writel(mask, pio + PIO_PER);
+@@ -130,10 +135,13 @@ int __init_or_module at91_set_gpio_input
{
void __iomem *pio = pin_to_controller(pin);
unsigned mask = pin_to_mask(pin);
{
void __iomem *pio = pin_to_controller(pin);
unsigned mask = pin_to_mask(pin);
__raw_writel(mask, pio + PIO_IDR);
__raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR));
__raw_writel(mask, pio + PIO_ODR);
__raw_writel(mask, pio + PIO_IDR);
__raw_writel(mask, pio + (use_pullup ? PIO_PUER : PIO_PUDR));
__raw_writel(mask, pio + PIO_ODR);
+@@ -151,10 +159,13 @@ int __init_or_module at91_set_gpio_outpu
{
void __iomem *pio = pin_to_controller(pin);
unsigned mask = pin_to_mask(pin);
{
void __iomem *pio = pin_to_controller(pin);
unsigned mask = pin_to_mask(pin);
__raw_writel(mask, pio + PIO_IDR);
__raw_writel(mask, pio + PIO_PUDR);
__raw_writel(mask, pio + (value ? PIO_SODR : PIO_CODR));
__raw_writel(mask, pio + PIO_IDR);
__raw_writel(mask, pio + PIO_PUDR);
__raw_writel(mask, pio + (value ? PIO_SODR : PIO_CODR));
+@@ -262,6 +273,18 @@ int at91_get_gpio_value(unsigned pin)
}
EXPORT_SYMBOL(at91_get_gpio_value);
}
EXPORT_SYMBOL(at91_get_gpio_value);
#ifdef CONFIG_PM
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
#ifdef CONFIG_PM
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
+@@ -1072,5 +1072,12 @@ config AT91_SPIDEV
The SPI driver gives user mode access to this serial
bus on the AT91RM9200 processor.
The SPI driver gives user mode access to this serial
bus on the AT91RM9200 processor.
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
+@@ -100,6 +100,7 @@ obj-$(CONFIG_GPIO_TB0219) += tb0219.o
obj-$(CONFIG_TELCLOCK) += tlclk.o
obj-$(CONFIG_AT91_SPI) += at91_spi.o
obj-$(CONFIG_AT91_SPIDEV) += at91_spidev.o
obj-$(CONFIG_TELCLOCK) += tlclk.o
obj-$(CONFIG_AT91_SPI) += at91_spi.o
obj-$(CONFIG_AT91_SPIDEV) += at91_spidev.o
+MODULE_DESCRIPTION("FDL Versalink GPIO Driver");
--- a/include/asm-arm/arch-at91/gpio.h
+++ b/include/asm-arm/arch-at91/gpio.h
+MODULE_DESCRIPTION("FDL Versalink GPIO Driver");
--- a/include/asm-arm/arch-at91/gpio.h
+++ b/include/asm-arm/arch-at91/gpio.h
+@@ -199,6 +199,7 @@ extern int __init_or_module at91_set_mul
/* callable at any time */
extern int at91_set_gpio_value(unsigned pin, int value);
extern int at91_get_gpio_value(unsigned pin);
/* callable at any time */
extern int at91_set_gpio_value(unsigned pin, int value);
extern int at91_get_gpio_value(unsigned pin);
--- a/drivers/mtd/devices/at91_dataflash.c
+++ b/drivers/mtd/devices/at91_dataflash.c
--- a/drivers/mtd/devices/at91_dataflash.c
+++ b/drivers/mtd/devices/at91_dataflash.c
+@@ -175,7 +175,7 @@ static struct mtd_partition static_parti
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
+@@ -168,6 +168,12 @@ config MTD_OF_PARTS
the partition map from the children of the flash node,
as described in Documentation/powerpc/booting-without-of.txt.
the partition map from the children of the flash node,
as described in Documentation/powerpc/booting-without-of.txt.
config MTD_CHAR
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
config MTD_CHAR
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
+@@ -12,6 +12,7 @@ obj-$(CONFIG_MTD_REDBOOT_PARTS) += redbo
obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
+@@ -214,6 +214,34 @@ static void atmel_set_mctrl(struct uart_
at91_set_gpio_value(AT91_PIN_PA21, 0);
else
at91_set_gpio_value(AT91_PIN_PA21, 1);
at91_set_gpio_value(AT91_PIN_PA21, 0);
else
at91_set_gpio_value(AT91_PIN_PA21, 1);
+@@ -251,8 +279,10 @@ static u_int atmel_get_mctrl(struct uart
/*
* The control signals are active low.
*/
/*
* The control signals are active low.
*/
if (!(status & ATMEL_US_CTS))
ret |= TIOCM_CTS;
if (!(status & ATMEL_US_DSR))
if (!(status & ATMEL_US_CTS))
ret |= TIOCM_CTS;
if (!(status & ATMEL_US_DSR))
+@@ -260,6 +290,16 @@ static u_int atmel_get_mctrl(struct uart
if (!(status & ATMEL_US_RI))
ret |= TIOCM_RI;
if (!(status & ATMEL_US_RI))
ret |= TIOCM_RI;
+@@ -453,6 +493,34 @@ static void atmel_tx_chars(struct uart_p
* receive interrupt handler.
*/
static void
* receive interrupt handler.
*/
static void
+@@ -815,6 +883,23 @@ static int atmel_startup(struct uart_por
/*
* Initialize DMA (if necessary)
*/
/*
* Initialize DMA (if necessary)
*/
+@@ -834,6 +919,10 @@ static int atmel_startup(struct uart_por
kfree(atmel_port->pdc_rx[0].buf);
}
free_irq(port->irq, port);
kfree(atmel_port->pdc_rx[0].buf);
}
free_irq(port->irq, port);
return -ENOMEM;
}
pdc->dma_addr = dma_map_single(port->dev,
return -ENOMEM;
}
pdc->dma_addr = dma_map_single(port->dev,
+@@ -873,7 +962,11 @@ static int atmel_startup(struct uart_por
retval = atmel_open_hook(port);
if (retval) {
free_irq(port->irq, port);
retval = atmel_open_hook(port);
if (retval) {
free_irq(port->irq, port);
+@@ -947,6 +1040,10 @@ static void atmel_shutdown(struct uart_p
* Free the interrupt
*/
free_irq(port->irq, port);
* Free the interrupt
*/
free_irq(port->irq, port);
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
+@@ -1001,7 +1001,15 @@ static inline void configure_usart0_pins
* We need to drive the pin manually. Default is off (RTS is active low).
*/
at91_set_gpio_output(AT91_PIN_PA21, 1);
* We need to drive the pin manually. Default is off (RTS is active low).
*/
at91_set_gpio_output(AT91_PIN_PA21, 1);
}
static struct resource uart1_resources[] = {
}
static struct resource uart1_resources[] = {
+@@ -1139,6 +1147,14 @@ static inline void configure_usart3_pins
at91_set_B_periph(AT91_PIN_PB1, 0); /* CTS3 */
if (pins & ATMEL_UART_RTS)
at91_set_B_periph(AT91_PIN_PB0, 0); /* RTS3 */
at91_set_B_periph(AT91_PIN_PB1, 0); /* CTS3 */
if (pins & ATMEL_UART_RTS)
at91_set_B_periph(AT91_PIN_PB0, 0); /* RTS3 */
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
+@@ -146,6 +146,7 @@ static void update_linkspeed(struct net_
struct at91_private *lp = netdev_priv(dev);
unsigned int bmsr, bmcr, lpa, mac_cfg;
unsigned int speed, duplex;
struct at91_private *lp = netdev_priv(dev);
unsigned int bmsr, bmcr, lpa, mac_cfg;
unsigned int speed, duplex;
if (!mii_link_ok(&lp->mii)) { /* no link */
netif_carrier_off(dev);
if (!mii_link_ok(&lp->mii)) { /* no link */
netif_carrier_off(dev);
+@@ -158,8 +159,15 @@ static void update_linkspeed(struct net_
read_phy(lp->phy_address, MII_BMSR, &bmsr);
read_phy(lp->phy_address, MII_BMCR, &bmcr);
if (bmcr & BMCR_ANENABLE) { /* AutoNegotiation is enabled */
read_phy(lp->phy_address, MII_BMSR, &bmsr);
read_phy(lp->phy_address, MII_BMCR, &bmcr);
if (bmcr & BMCR_ANENABLE) { /* AutoNegotiation is enabled */
--- a/drivers/mtd/devices/at91_dataflash.c
+++ b/drivers/mtd/devices/at91_dataflash.c
--- a/drivers/mtd/devices/at91_dataflash.c
+++ b/drivers/mtd/devices/at91_dataflash.c
+@@ -163,12 +163,12 @@ static struct mtd_partition static_parti
.mask_flags = MTD_WRITEABLE, /* read-only */
},
{
.mask_flags = MTD_WRITEABLE, /* read-only */
},
{
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
+@@ -904,7 +904,7 @@ int usb_serial_probe(struct usb_interfac
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
BOARDNAME:=RMI/AMD AU1x00
FEATURES:=jffs2 usb pci
BOARDNAME:=RMI/AMD AU1x00
FEATURES:=jffs2 usb pci
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += yamonenv
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += yamonenv
--- a/arch/mips/au1000/Kconfig
+++ b/arch/mips/au1000/Kconfig
--- a/arch/mips/au1000/Kconfig
+++ b/arch/mips/au1000/Kconfig
+@@ -135,3 +135,4 @@ config SOC_AU1X00
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_APM_EMULATION
select SYS_SUPPORTS_KGDB
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_APM_EMULATION
select SYS_SUPPORTS_KGDB
static struct resource mtx1_wdt_res[] = {
[0] = {
.start = 15,
static struct resource mtx1_wdt_res[] = {
[0] = {
.start = 15,
+@@ -62,11 +85,13 @@ static struct platform_device mtx1_gpio_
static struct platform_device *mtx1_devs[] = {
&mtx1_gpio_leds,
static struct platform_device *mtx1_devs[] = {
&mtx1_gpio_leds,
* ########################################################################
*
* This program is free software; you can distribute it and/or modify it
* ########################################################################
*
* This program is free software; you can distribute it and/or modify it
+@@ -835,6 +838,10 @@ static int au1000_init(struct net_device
control = MAC_RX_ENABLE | MAC_TX_ENABLE;
#ifndef CONFIG_CPU_LITTLE_ENDIAN
control = MAC_RX_ENABLE | MAC_TX_ENABLE;
#ifndef CONFIG_CPU_LITTLE_ENDIAN
--- a/arch/mips/au1000/mtx-1/init.c
+++ b/arch/mips/au1000/mtx-1/init.c
--- a/arch/mips/au1000/mtx-1/init.c
+++ b/arch/mips/au1000/mtx-1/init.c
+@@ -54,7 +54,7 @@ void __init prom_init(void)
prom_argv = (char **) fw_arg1;
prom_envp = (char **) fw_arg2;
prom_argv = (char **) fw_arg1;
prom_envp = (char **) fw_arg2;
--- a/drivers/mtd/maps/mtx-1_flash.c
+++ b/drivers/mtd/maps/mtx-1_flash.c
--- a/drivers/mtd/maps/mtx-1_flash.c
+++ b/drivers/mtd/maps/mtx-1_flash.c
+@@ -28,7 +28,7 @@ static struct map_info mtx1_map = {
static struct mtd_partition mtx1_partitions[] = {
{
static struct mtd_partition mtx1_partitions[] = {
{
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
+@@ -1306,9 +1306,12 @@ static void set_rx_mode(struct net_devic
--- a/include/asm-mips/mach-au1x00/au1000.h
+++ b/include/asm-mips/mach-au1x00/au1000.h
--- a/include/asm-mips/mach-au1x00/au1000.h
+++ b/include/asm-mips/mach-au1x00/au1000.h
+@@ -623,6 +623,7 @@ enum soc_au1500_ints {
AU1000_RTC_MATCH1_INT,
AU1000_RTC_MATCH2_INT,
AU1500_PCI_ERR_INT,
AU1000_RTC_MATCH1_INT,
AU1000_RTC_MATCH2_INT,
AU1500_PCI_ERR_INT,
--- a/arch/mips/au1000/common/gpio.c
+++ b/arch/mips/au1000/common/gpio.c
--- a/arch/mips/au1000/common/gpio.c
+++ b/arch/mips/au1000/common/gpio.c
+@@ -66,7 +66,8 @@ static int au1xxx_gpio2_direction_input(
static int au1xxx_gpio2_direction_output(unsigned gpio, int value)
{
gpio -= AU1XXX_GPIO_BASE;
static int au1xxx_gpio2_direction_output(unsigned gpio, int value)
{
gpio -= AU1XXX_GPIO_BASE;
+@@ -95,6 +96,7 @@ static int au1xxx_gpio1_direction_input(
static int au1xxx_gpio1_direction_output(unsigned gpio, int value)
{
gpio1->trioutclr = (0x01 & gpio);
static int au1xxx_gpio1_direction_output(unsigned gpio, int value)
{
gpio1->trioutclr = (0x01 & gpio);
BOARD:=avr32
BOARDNAME:=Atmel AVR32
FEATURES:=squashfs
BOARD:=avr32
BOARDNAME:=Atmel AVR32
FEATURES:=squashfs
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
include $(INCLUDE_DIR)/target.mk
include $(INCLUDE_DIR)/target.mk
--- a/Documentation/serial/driver
+++ b/Documentation/serial/driver
--- a/Documentation/serial/driver
+++ b/Documentation/serial/driver
+@@ -186,6 +186,17 @@ hardware.
Locking: port_sem taken.
Interrupts: caller dependent.
Locking: port_sem taken.
Interrupts: caller dependent.
bits. Update read_status_mask and ignore_status_mask to indicate
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
bits. Update read_status_mask and ignore_status_mask to indicate
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
+@@ -47,6 +47,9 @@ config RWSEM_GENERIC_SPINLOCK
config GENERIC_TIME
def_bool y
config GENERIC_TIME
def_bool y
config RWSEM_XCHGADD_ALGORITHM
def_bool n
config RWSEM_XCHGADD_ALGORITHM
def_bool n
+@@ -70,6 +73,8 @@ source "init/Kconfig"
menu "System Type and features"
menu "System Type and features"
config SUBARCH_AVR32B
bool
config MMU
config SUBARCH_AVR32B
bool
config MMU
+@@ -83,6 +88,7 @@ config PLATFORM_AT32AP
select MMU
select PERFORMANCE_COUNTERS
select HAVE_GPIO_LIB
select MMU
select PERFORMANCE_COUNTERS
select HAVE_GPIO_LIB
+@@ -117,6 +123,9 @@ endchoice
if BOARD_ATSTK1000
source "arch/avr32/boards/atstk1000/Kconfig"
endif
if BOARD_ATSTK1000
source "arch/avr32/boards/atstk1000/Kconfig"
endif
choice
prompt "Boot loader type"
choice
prompt "Boot loader type"
+@@ -142,6 +151,9 @@ config PHYS_OFFSET
source "kernel/Kconfig.preempt"
source "kernel/Kconfig.preempt"
config HAVE_ARCH_BOOTMEM_NODE
def_bool n
config HAVE_ARCH_BOOTMEM_NODE
def_bool n
+@@ -180,6 +192,10 @@ config NMI_DEBUGGING
be dumped to the console when a Non-Maskable Interrupt
happens.
be dumped to the console when a Non-Maskable Interrupt
happens.
# FPU emulation goes here
source "kernel/Kconfig.hz"
# FPU emulation goes here
source "kernel/Kconfig.hz"
+@@ -196,6 +212,11 @@ endmenu
menu "Power management options"
menu "Power management options"
source "drivers/cpufreq/Kconfig"
--- a/arch/avr32/Makefile
+++ b/arch/avr32/Makefile
source "drivers/cpufreq/Kconfig"
--- a/arch/avr32/Makefile
+++ b/arch/avr32/Makefile
+@@ -32,6 +32,7 @@ core-$(CONFIG_LOADER_U_BOOT) += arch/av
core-y += arch/avr32/kernel/
core-y += arch/avr32/mm/
drivers-$(CONFIG_OPROFILE) += arch/avr32/oprofile/
core-y += arch/avr32/kernel/
core-y += arch/avr32/mm/
drivers-$(CONFIG_OPROFILE) += arch/avr32/oprofile/
/* Initialized by bootloader-specific startup code. */
struct tag *bootloader_tags __initdata;
/* Initialized by bootloader-specific startup code. */
struct tag *bootloader_tags __initdata;
+@@ -37,11 +44,16 @@ static struct eth_platform_data __initda
static struct spi_board_info spi0_board_info[] __initdata = {
{
.modalias = "mtd_dataflash",
static struct spi_board_info spi0_board_info[] __initdata = {
{
.modalias = "mtd_dataflash",
/*
* The next two functions should go away as the boot loader is
* supposed to initialize the macb address registers with a valid
/*
* The next two functions should go away as the boot loader is
* supposed to initialize the macb address registers with a valid
+@@ -124,6 +136,7 @@ static struct platform_device ngw_gpio_l
static struct i2c_gpio_platform_data i2c_gpio_data = {
.sda_pin = GPIO_PIN_PA(6),
.scl_pin = GPIO_PIN_PA(7),
static struct i2c_gpio_platform_data i2c_gpio_data = {
.sda_pin = GPIO_PIN_PA(6),
.scl_pin = GPIO_PIN_PA(7),
+@@ -139,6 +152,7 @@ static struct platform_device i2c_gpio_d
.platform_data = &i2c_gpio_data,
},
};
.platform_data = &i2c_gpio_data,
},
};
static int __init atngw100_init(void)
{
static int __init atngw100_init(void)
{
+@@ -157,6 +171,7 @@ static int __init atngw100_init(void)
set_hw_addr(at32_add_device_eth(1, ð_data[1]));
at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
set_hw_addr(at32_add_device_eth(1, ð_data[1]));
at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
at32_add_device_usba(0, NULL);
for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) {
at32_add_device_usba(0, NULL);
for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) {
+@@ -165,11 +180,15 @@ static int __init atngw100_init(void)
}
platform_device_register(&ngw_gpio_leds);
}
platform_device_register(&ngw_gpio_leds);
}
--- a/arch/avr32/boards/atstk1000/Kconfig
+++ b/arch/avr32/boards/atstk1000/Kconfig
}
--- a/arch/avr32/boards/atstk1000/Kconfig
+++ b/arch/avr32/boards/atstk1000/Kconfig
+@@ -18,6 +18,10 @@ config BOARD_ATSTK1004
bool "ATSTK1004"
select CPU_AT32AP7002
bool "ATSTK1004"
select CPU_AT32AP7002
+@@ -102,4 +106,60 @@ config BOARD_ATSTK1000_EXTDAC
depends on !BOARD_ATSTK100X_SW1_CUSTOM && !BOARD_ATSTK100X_SW3_CUSTOM
default y
depends on !BOARD_ATSTK100X_SW1_CUSTOM && !BOARD_ATSTK100X_SW3_CUSTOM
default y
endif # stk 1000
--- a/arch/avr32/boards/atstk1000/Makefile
+++ b/arch/avr32/boards/atstk1000/Makefile
endif # stk 1000
--- a/arch/avr32/boards/atstk1000/Makefile
+++ b/arch/avr32/boards/atstk1000/Makefile
+@@ -2,3 +2,4 @@ obj-y += setup.o flash.o
obj-$(CONFIG_BOARD_ATSTK1002) += atstk1002.o
obj-$(CONFIG_BOARD_ATSTK1003) += atstk1003.o
obj-$(CONFIG_BOARD_ATSTK1004) += atstk1004.o
obj-$(CONFIG_BOARD_ATSTK1002) += atstk1002.o
obj-$(CONFIG_BOARD_ATSTK1003) += atstk1003.o
obj-$(CONFIG_BOARD_ATSTK1004) += atstk1004.o
struct eth_addr {
u8 addr[6];
struct eth_addr {
u8 addr[6];
+@@ -83,6 +157,19 @@ static struct spi_board_info spi1_board_
/*
* The next two functions should go away as the boot loader is
* supposed to initialize the macb address registers with a valid
/*
* The next two functions should go away as the boot loader is
* supposed to initialize the macb address registers with a valid
+@@ -212,6 +299,12 @@ static int __init atstk1002_init(void)
at32_add_system_devices();
at32_add_system_devices();
#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
at32_add_device_usart(1);
#else
#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
at32_add_device_usart(1);
#else
+@@ -228,16 +321,30 @@ static int __init atstk1002_init(void)
#ifdef CONFIG_BOARD_ATSTK100X_SPI1
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
#endif
#ifdef CONFIG_BOARD_ATSTK100X_SPI1
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
#endif
#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
static struct at73c213_board_info at73c213_data = {
.ssc_id = 0,
#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
static struct at73c213_board_info at73c213_data = {
.ssc_id = 0,
+@@ -59,6 +66,19 @@ static struct spi_board_info spi1_board_
#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
static void __init atstk1003_setup_extdac(void)
{
#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
static void __init atstk1003_setup_extdac(void)
{
+@@ -147,12 +167,22 @@ static int __init atstk1003_init(void)
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
#endif
#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
#endif
#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
static struct at73c213_board_info at73c213_data = {
.ssc_id = 0,
#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
static struct at73c213_board_info at73c213_data = {
.ssc_id = 0,
+@@ -130,14 +137,23 @@ static int __init atstk1004_init(void)
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
#endif
#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
#endif
#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
#
CONFIG_AVR32=y
CONFIG_GENERIC_GPIO=y
#
CONFIG_AVR32=y
CONFIG_GENERIC_GPIO=y
+@@ -13,10 +13,10 @@ CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_BUG=y
+@@ -37,17 +37,15 @@ CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
# CONFIG_TASKSTATS is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
# CONFIG_TASKSTATS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+@@ -61,11 +59,13 @@ CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
+@@ -73,6 +73,14 @@ CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
+@@ -101,10 +109,15 @@ CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_SUBARCH_AVR32B=y
CONFIG_MMU=y
CONFIG_PERFORMANCE_COUNTERS=y
CONFIG_SUBARCH_AVR32B=y
CONFIG_MMU=y
CONFIG_PERFORMANCE_COUNTERS=y
+@@ -113,6 +126,7 @@ CONFIG_CPU_AT32AP700X=y
CONFIG_CPU_AT32AP7000=y
# CONFIG_BOARD_ATSTK1000 is not set
CONFIG_BOARD_ATNGW100=y
CONFIG_CPU_AT32AP7000=y
# CONFIG_BOARD_ATSTK1000 is not set
CONFIG_BOARD_ATNGW100=y
+@@ -121,6 +135,7 @@ CONFIG_LOADER_U_BOOT=y
# CONFIG_AP700X_32_BIT_SMC is not set
CONFIG_AP700X_16_BIT_SMC=y
# CONFIG_AP700X_8_BIT_SMC is not set
# CONFIG_AP700X_32_BIT_SMC is not set
CONFIG_AP700X_16_BIT_SMC=y
# CONFIG_AP700X_8_BIT_SMC is not set
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
+@@ -146,16 +161,26 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_OWNERSHIP_TRACE is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_OWNERSHIP_TRACE is not set
#
# CPU Frequency scaling
#
# CPU Frequency scaling
+@@ -164,9 +189,9 @@ CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
# CONFIG_CPU_FREQ_STAT is not set
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
# CONFIG_CPU_FREQ_STAT is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+@@ -202,6 +227,7 @@ CONFIG_XFRM=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=y
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_NET_KEY=y
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
+@@ -260,82 +286,33 @@ CONFIG_IPV6_SIT=y
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
+@@ -343,54 +320,25 @@ CONFIG_IP_NF_TARGET_LOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
+@@ -407,7 +355,6 @@ CONFIG_LLC=m
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
+@@ -415,6 +362,7 @@ CONFIG_NET_CLS_ROUTE=y
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
+@@ -531,11 +479,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
+@@ -568,11 +523,13 @@ CONFIG_PHYLIB=y
# CONFIG_SMSC_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_SMSC_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
+@@ -599,7 +556,6 @@ CONFIG_PPPOE=m
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
+@@ -633,6 +589,7 @@ CONFIG_SLHC=m
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
# CONFIG_SERIAL_ATMEL_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_ATMEL_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
+@@ -640,8 +597,6 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
+@@ -659,6 +614,7 @@ CONFIG_I2C_ALGOBIT=m
#
# I2C Hardware Bus support
#
#
# I2C Hardware Bus support
#
CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
+@@ -669,13 +625,12 @@ CONFIG_I2C_GPIO=m
#
# Miscellaneous I2C Chip support
#
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
+@@ -702,9 +657,27 @@ CONFIG_SPI_ATMEL=y
# CONFIG_SPI_AT25 is not set
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPI_AT25 is not set
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_TLE62X0 is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
+@@ -757,10 +730,6 @@ CONFIG_USB_SUPPORT=y
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
+@@ -787,21 +756,24 @@ CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
+@@ -844,19 +816,22 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
+@@ -874,25 +849,23 @@ CONFIG_RTC_DRV_AT32AP700X=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=m
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=m
+@@ -923,7 +896,7 @@ CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
#
# Miscellaneous filesystems
#
# Miscellaneous filesystems
+@@ -948,8 +921,10 @@ CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
+@@ -1030,11 +1005,6 @@ CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
+@@ -1053,6 +1023,7 @@ CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
+@@ -1069,9 +1040,10 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
+@@ -1084,7 +1056,9 @@ CONFIG_FRAME_POINTER=y
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
+@@ -1103,6 +1077,9 @@ CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
+@@ -1117,12 +1094,14 @@ CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_SEED is not set
+@@ -1137,10 +1116,7 @@ CONFIG_CRC7=m
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
#
CONFIG_AVR32=y
CONFIG_GENERIC_GPIO=y
#
CONFIG_AVR32=y
CONFIG_GENERIC_GPIO=y
+@@ -13,10 +13,10 @@ CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_BUG=y
+@@ -36,15 +36,15 @@ CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+@@ -58,11 +58,13 @@ CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
+@@ -70,6 +72,14 @@ CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
+@@ -98,10 +108,15 @@ CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_SUBARCH_AVR32B=y
CONFIG_MMU=y
CONFIG_PERFORMANCE_COUNTERS=y
CONFIG_SUBARCH_AVR32B=y
CONFIG_MMU=y
CONFIG_PERFORMANCE_COUNTERS=y
+@@ -113,12 +128,16 @@ CONFIG_BOARD_ATSTK1000=y
CONFIG_BOARD_ATSTK1002=y
# CONFIG_BOARD_ATSTK1003 is not set
# CONFIG_BOARD_ATSTK1004 is not set
CONFIG_BOARD_ATSTK1002=y
# CONFIG_BOARD_ATSTK1003 is not set
# CONFIG_BOARD_ATSTK1004 is not set
+@@ -127,6 +146,7 @@ CONFIG_LOADER_U_BOOT=y
# CONFIG_AP700X_32_BIT_SMC is not set
CONFIG_AP700X_16_BIT_SMC=y
# CONFIG_AP700X_8_BIT_SMC is not set
# CONFIG_AP700X_32_BIT_SMC is not set
CONFIG_AP700X_16_BIT_SMC=y
# CONFIG_AP700X_8_BIT_SMC is not set
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
+@@ -152,16 +172,26 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_OWNERSHIP_TRACE is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_OWNERSHIP_TRACE is not set
#
# CPU Frequency scaling
#
# CPU Frequency scaling
+@@ -170,9 +200,9 @@ CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
# CONFIG_CPU_FREQ_STAT is not set
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
# CONFIG_CPU_FREQ_STAT is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+@@ -208,6 +238,7 @@ CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
+@@ -279,6 +310,7 @@ CONFIG_LLC=m
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
+@@ -395,13 +427,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
+@@ -444,6 +481,7 @@ CONFIG_SCSI_WAIT_SCAN=m
# CONFIG_SCSI_LOWLEVEL is not set
CONFIG_ATA=m
# CONFIG_ATA_NONSTANDARD is not set
# CONFIG_SCSI_LOWLEVEL is not set
CONFIG_ATA=m
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_PATA_AT32=m
# CONFIG_PATA_PLATFORM is not set
# CONFIG_MD is not set
CONFIG_PATA_AT32=m
# CONFIG_PATA_PLATFORM is not set
# CONFIG_MD is not set
+@@ -469,11 +507,13 @@ CONFIG_PHYLIB=y
# CONFIG_SMSC_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_SMSC_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
+@@ -500,7 +540,6 @@ CONFIG_PPP_BSDCOMP=m
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
+@@ -568,6 +607,7 @@ CONFIG_MOUSE_GPIO=m
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
# CONFIG_SERIAL_ATMEL_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_ATMEL_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
+@@ -575,8 +615,6 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
+@@ -594,6 +632,7 @@ CONFIG_I2C_ALGOBIT=m
#
# I2C Hardware Bus support
#
#
# I2C Hardware Bus support
#
CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
+@@ -604,13 +643,12 @@ CONFIG_I2C_GPIO=m
#
# Miscellaneous I2C Chip support
#
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
+@@ -637,9 +675,27 @@ CONFIG_SPI_ATMEL=y
# CONFIG_SPI_AT25 is not set
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPI_AT25 is not set
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_TLE62X0 is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
+@@ -732,12 +788,18 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
# SPI devices
#
CONFIG_SND_AT73C213=m
# SPI devices
#
CONFIG_SND_AT73C213=m
+@@ -753,9 +815,14 @@ CONFIG_SND_AT73C213_TARGET_BITRATE=48000
# CONFIG_HID_SUPPORT is not set
CONFIG_USB_SUPPORT=y
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_HID_SUPPORT is not set
CONFIG_USB_SUPPORT=y
# CONFIG_USB_ARCH_HAS_HCD is not set
+@@ -765,10 +832,6 @@ CONFIG_USB_SUPPORT=y
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
+@@ -796,27 +859,31 @@ CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
+@@ -853,19 +920,22 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
+@@ -883,13 +953,13 @@ CONFIG_RTC_DRV_AT32AP700X=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
+@@ -897,12 +967,10 @@ CONFIG_JBD=m
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=m
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=m
+@@ -933,7 +1001,7 @@ CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
#
# Miscellaneous filesystems
#
# Miscellaneous filesystems
+@@ -957,8 +1025,10 @@ CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
+@@ -1028,11 +1098,6 @@ CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
+@@ -1051,6 +1116,7 @@ CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
+@@ -1067,9 +1133,10 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
+@@ -1082,7 +1149,9 @@ CONFIG_FORCED_INLINING=y
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=m
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_HMAC=m
CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_HMAC=m
+@@ -1101,6 +1170,9 @@ CONFIG_CRYPTO_CBC=m
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_FCRYPT is not set
+@@ -1115,12 +1187,14 @@ CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_HW is not set
#
# CONFIG_CRYPTO_HW is not set
#
+@@ -1135,6 +1209,7 @@ CONFIG_CRC7=m
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
#
CONFIG_AVR32=y
CONFIG_GENERIC_GPIO=y
#
CONFIG_AVR32=y
CONFIG_GENERIC_GPIO=y
+@@ -13,10 +13,10 @@ CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_BUG=y
+@@ -39,17 +39,15 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
# CONFIG_TASK_XACCT is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
# CONFIG_TASK_XACCT is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+@@ -63,11 +61,13 @@ CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
+@@ -75,6 +75,14 @@ CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
+@@ -103,10 +111,15 @@ CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_SUBARCH_AVR32B=y
CONFIG_MMU=y
CONFIG_PERFORMANCE_COUNTERS=y
CONFIG_SUBARCH_AVR32B=y
CONFIG_MMU=y
CONFIG_PERFORMANCE_COUNTERS=y
+@@ -118,12 +131,16 @@ CONFIG_BOARD_ATSTK1000=y
# CONFIG_BOARD_ATSTK1002 is not set
CONFIG_BOARD_ATSTK1003=y
# CONFIG_BOARD_ATSTK1004 is not set
# CONFIG_BOARD_ATSTK1002 is not set
CONFIG_BOARD_ATSTK1003=y
# CONFIG_BOARD_ATSTK1004 is not set
+@@ -132,6 +149,7 @@ CONFIG_LOADER_U_BOOT=y
# CONFIG_AP700X_32_BIT_SMC is not set
CONFIG_AP700X_16_BIT_SMC=y
# CONFIG_AP700X_8_BIT_SMC is not set
# CONFIG_AP700X_32_BIT_SMC is not set
CONFIG_AP700X_16_BIT_SMC=y
# CONFIG_AP700X_8_BIT_SMC is not set
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
+@@ -157,16 +175,26 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_OWNERSHIP_TRACE is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_OWNERSHIP_TRACE is not set
#
# CPU Frequency scaling
#
# CPU Frequency scaling
+@@ -175,9 +203,9 @@ CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
# CONFIG_CPU_FREQ_STAT is not set
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
# CONFIG_CPU_FREQ_STAT is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+@@ -260,6 +288,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
+@@ -376,13 +405,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
+@@ -427,6 +461,7 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_DEBUG is not set
CONFIG_ATA=m
# CONFIG_ATA_NONSTANDARD is not set
# CONFIG_SCSI_DEBUG is not set
CONFIG_ATA=m
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_PATA_AT32=m
# CONFIG_PATA_PLATFORM is not set
# CONFIG_MD is not set
CONFIG_PATA_AT32=m
# CONFIG_PATA_PLATFORM is not set
# CONFIG_MD is not set
+@@ -460,7 +495,6 @@ CONFIG_PPP_BSDCOMP=m
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
+@@ -528,6 +562,7 @@ CONFIG_MOUSE_GPIO=m
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
# CONFIG_SERIAL_ATMEL_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_ATMEL_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
+@@ -535,8 +570,6 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
+@@ -554,6 +587,7 @@ CONFIG_I2C_ALGOBIT=m
#
# I2C Hardware Bus support
#
#
# I2C Hardware Bus support
#
CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
+@@ -564,13 +598,12 @@ CONFIG_I2C_GPIO=m
#
# Miscellaneous I2C Chip support
#
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
+@@ -597,9 +630,27 @@ CONFIG_SPI_ATMEL=y
# CONFIG_SPI_AT25 is not set
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPI_AT25 is not set
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_TLE62X0 is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
+@@ -665,12 +716,18 @@ CONFIG_SND_VERBOSE_PROCFS=y
# SPI devices
#
CONFIG_SND_AT73C213=m
# SPI devices
#
CONFIG_SND_AT73C213=m
+@@ -686,9 +743,14 @@ CONFIG_SND_AT73C213_TARGET_BITRATE=48000
# CONFIG_HID_SUPPORT is not set
CONFIG_USB_SUPPORT=y
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_HID_SUPPORT is not set
CONFIG_USB_SUPPORT=y
# CONFIG_USB_ARCH_HAS_HCD is not set
+@@ -698,10 +760,6 @@ CONFIG_USB_SUPPORT=y
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
+@@ -729,27 +787,31 @@ CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
+@@ -786,19 +848,22 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
+@@ -816,13 +881,13 @@ CONFIG_UIO=m
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
+@@ -830,12 +895,10 @@ CONFIG_JBD=m
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=m
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=m
+@@ -866,7 +929,7 @@ CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
#
# Miscellaneous filesystems
#
# Miscellaneous filesystems
+@@ -891,8 +954,10 @@ CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
+@@ -943,11 +1008,6 @@ CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
+@@ -965,6 +1025,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
+@@ -981,9 +1042,10 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
+@@ -1009,6 +1071,7 @@ CONFIG_CRC7=m
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
#
CONFIG_AVR32=y
CONFIG_GENERIC_GPIO=y
#
CONFIG_AVR32=y
CONFIG_GENERIC_GPIO=y
+@@ -13,10 +13,10 @@ CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_BUG=y
+@@ -34,15 +34,15 @@ CONFIG_LOCALVERSION=""
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
+@@ -54,24 +54,37 @@ CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_SUBARCH_AVR32B=y
CONFIG_MMU=y
CONFIG_PERFORMANCE_COUNTERS=y
CONFIG_SUBARCH_AVR32B=y
CONFIG_MMU=y
CONFIG_PERFORMANCE_COUNTERS=y
+@@ -83,10 +96,14 @@ CONFIG_BOARD_ATSTK1000=y
# CONFIG_BOARD_ATSTK1002 is not set
# CONFIG_BOARD_ATSTK1003 is not set
CONFIG_BOARD_ATSTK1004=y
# CONFIG_BOARD_ATSTK1002 is not set
# CONFIG_BOARD_ATSTK1003 is not set
CONFIG_BOARD_ATSTK1004=y
+@@ -95,6 +112,7 @@ CONFIG_LOADER_U_BOOT=y
# CONFIG_AP700X_32_BIT_SMC is not set
CONFIG_AP700X_16_BIT_SMC=y
# CONFIG_AP700X_8_BIT_SMC is not set
# CONFIG_AP700X_32_BIT_SMC is not set
CONFIG_AP700X_16_BIT_SMC=y
# CONFIG_AP700X_8_BIT_SMC is not set
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
CONFIG_LOAD_ADDRESS=0x10000000
CONFIG_ENTRY_ADDRESS=0x90000000
CONFIG_PHYS_OFFSET=0x10000000
+@@ -120,34 +138,26 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_OWNERSHIP_TRACE is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_OWNERSHIP_TRACE is not set
+@@ -222,6 +232,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
+@@ -321,6 +332,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
# CONFIG_MISC_DEVICES is not set
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
# CONFIG_MISC_DEVICES is not set
+@@ -358,6 +370,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
#
CONFIG_SERIAL_ATMEL=y
CONFIG_SERIAL_ATMEL_CONSOLE=y
# CONFIG_SERIAL_ATMEL_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_ATMEL_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
+@@ -365,8 +378,6 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
# CONFIG_TCG_TPM is not set
# CONFIG_I2C is not set
# CONFIG_R3964 is not set
# CONFIG_TCG_TPM is not set
# CONFIG_I2C is not set
+@@ -389,9 +400,24 @@ CONFIG_SPI_ATMEL=y
# CONFIG_SPI_AT25 is not set
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPI_AT25 is not set
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
+@@ -471,10 +497,6 @@ CONFIG_USB_SUPPORT=y
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_SELECTED=y
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_SELECTED=y
+@@ -499,7 +521,9 @@ CONFIG_USB_ETH=y
# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_NEW_LEDS is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
# CONFIG_NEW_LEDS is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
+@@ -519,15 +543,17 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
+@@ -545,9 +571,9 @@ CONFIG_RTC_DRV_AT32AP700X=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
+@@ -580,7 +606,6 @@ CONFIG_JFFS2_RTIME=y
# CONFIG_NETWORK_FILESYSTEMS is not set
# CONFIG_NLS is not set
# CONFIG_DLM is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
# CONFIG_NLS is not set
# CONFIG_DLM is not set
+@@ -616,6 +641,7 @@ CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
+#endif /* __AVR32_DW_DMAC_H__ */
--- a/arch/avr32/kernel/Makefile
+++ b/arch/avr32/kernel/Makefile
+#endif /* __AVR32_DW_DMAC_H__ */
--- a/arch/avr32/kernel/Makefile
+++ b/arch/avr32/kernel/Makefile
+@@ -9,6 +9,7 @@ obj-y += syscall_table.o syscall-stub
obj-y += setup.o traps.o semaphore.o ocd.o ptrace.o
obj-y += signal.o sys_avr32.o process.o time.o
obj-y += init_task.o switch_to.o cpu.o
obj-y += setup.o traps.o semaphore.o ocd.o ptrace.o
obj-y += signal.o sys_avr32.o process.o time.o
obj-y += init_task.o switch_to.o cpu.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o
--- a/arch/avr32/kernel/avr32_ksyms.c
+++ b/arch/avr32/kernel/avr32_ksyms.c
obj-$(CONFIG_STACKTRACE) += stacktrace.o
--- a/arch/avr32/kernel/avr32_ksyms.c
+++ b/arch/avr32/kernel/avr32_ksyms.c
+@@ -29,7 +29,9 @@ EXPORT_SYMBOL(__avr32_asr64);
*/
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memcpy);
*/
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memcpy);
/*
* Userspace access stuff.
/*
* Userspace access stuff.
+@@ -41,6 +43,8 @@ EXPORT_SYMBOL(strncpy_from_user);
EXPORT_SYMBOL(__strncpy_from_user);
EXPORT_SYMBOL(clear_user);
EXPORT_SYMBOL(__clear_user);
EXPORT_SYMBOL(__strncpy_from_user);
EXPORT_SYMBOL(clear_user);
EXPORT_SYMBOL(__clear_user);
+EXPORT_SYMBOL(find_dma_controller);
--- a/arch/avr32/kernel/entry-avr32b.S
+++ b/arch/avr32/kernel/entry-avr32b.S
+EXPORT_SYMBOL(find_dma_controller);
--- a/arch/avr32/kernel/entry-avr32b.S
+++ b/arch/avr32/kernel/entry-avr32b.S
+@@ -74,50 +74,41 @@ exception_vectors:
.align 2
bral do_dtlb_modified
.align 2
bral do_dtlb_modified
/* Second level lookup */
ld.w r2, r3[r1 << 2]
/* Second level lookup */
ld.w r2, r3[r1 << 2]
+@@ -148,16 +139,55 @@ pgtbl_lookup:
system_call:
#ifdef CONFIG_PREEMPT
mask_interrupts
system_call:
#ifdef CONFIG_PREEMPT
mask_interrupts
+@@ -266,18 +296,6 @@ syscall_exit_work:
brcc syscall_exit_cont
rjmp enter_monitor_mode
brcc syscall_exit_cont
rjmp enter_monitor_mode
/* This function expects to find offending PC in SYSREG_RAR_EX */
.type save_full_context_ex, @function
.align 2
/* This function expects to find offending PC in SYSREG_RAR_EX */
.type save_full_context_ex, @function
.align 2
+@@ -741,26 +759,6 @@ irq_level\level:
.section .irq.text,"ax",@progbits
.section .irq.text,"ax",@progbits
/*
* This file handles the architecture-dependent parts of process handling..
*/
/*
* This file handles the architecture-dependent parts of process handling..
*/
+@@ -54,6 +54,8 @@ void machine_halt(void)
void machine_power_off(void)
{
void machine_power_off(void)
{
void machine_restart(char *cmd)
--- a/arch/avr32/kernel/setup.c
+++ b/arch/avr32/kernel/setup.c
void machine_restart(char *cmd)
--- a/arch/avr32/kernel/setup.c
+++ b/arch/avr32/kernel/setup.c
+@@ -274,6 +274,8 @@ static int __init early_parse_fbmem(char
printk(KERN_WARNING
"Failed to allocate framebuffer memory\n");
fbmem_size = 0;
printk(KERN_WARNING
"Failed to allocate framebuffer memory\n");
fbmem_size = 0;
--- a/arch/avr32/kernel/signal.c
+++ b/arch/avr32/kernel/signal.c
--- a/arch/avr32/kernel/signal.c
+++ b/arch/avr32/kernel/signal.c
+@@ -93,6 +93,9 @@ asmlinkage int sys_rt_sigreturn(struct p
if (restore_sigcontext(regs, &frame->uc.uc_mcontext))
goto badframe;
if (restore_sigcontext(regs, &frame->uc.uc_mcontext))
goto badframe;
-device_initcall(init_timer_sysfs);
--- a/arch/avr32/kernel/vmlinux.lds.S
+++ b/arch/avr32/kernel/vmlinux.lds.S
-device_initcall(init_timer_sysfs);
--- a/arch/avr32/kernel/vmlinux.lds.S
+++ b/arch/avr32/kernel/vmlinux.lds.S
+@@ -68,14 +68,6 @@ SECTIONS
_evba = .;
_text = .;
*(.ex.text)
_evba = .;
_text = .;
*(.ex.text)
*(.irq.text)
KPROBES_TEXT
TEXT_TEXT
*(.irq.text)
KPROBES_TEXT
TEXT_TEXT
+@@ -107,6 +99,10 @@ SECTIONS
*(.data.cacheline_aligned)
--- a/arch/avr32/lib/io-readsb.S
+++ b/arch/avr32/lib/io-readsb.S
*(.data.cacheline_aligned)
--- a/arch/avr32/lib/io-readsb.S
+++ b/arch/avr32/lib/io-readsb.S
+@@ -41,7 +41,7 @@ __raw_readsb:
brne 3b
--- a/arch/avr32/mach-at32ap/Kconfig
+++ b/arch/avr32/mach-at32ap/Kconfig
brne 3b
--- a/arch/avr32/mach-at32ap/Kconfig
+++ b/arch/avr32/mach-at32ap/Kconfig
+@@ -26,6 +26,13 @@ config AP700X_8_BIT_SMC
#include <video/atmel_lcdc.h>
#include <video/atmel_lcdc.h>
+@@ -91,25 +94,18 @@ static struct clk devname##_##_name = {
static DEFINE_SPINLOCK(pm_lock);
static DEFINE_SPINLOCK(pm_lock);
div = PM_BFEXT(PLLDIV, control) + 1;
mul = PM_BFEXT(PLLMUL, control) + 1;
div = PM_BFEXT(PLLDIV, control) + 1;
mul = PM_BFEXT(PLLMUL, control) + 1;
+@@ -120,6 +116,71 @@ static unsigned long pll_get_rate(struct
static unsigned long pll0_get_rate(struct clk *clk)
{
u32 control;
static unsigned long pll0_get_rate(struct clk *clk)
{
u32 control;
+@@ -129,6 +190,41 @@ static unsigned long pll0_get_rate(struc
return pll_get_rate(clk, control);
}
return pll_get_rate(clk, control);
}
static unsigned long pll1_get_rate(struct clk *clk)
{
u32 control;
static unsigned long pll1_get_rate(struct clk *clk)
{
u32 control;
+@@ -138,6 +234,49 @@ static unsigned long pll1_get_rate(struc
return pll_get_rate(clk, control);
}
return pll_get_rate(clk, control);
}
/*
* The AT32AP7000 has five primary clock sources: One 32kHz
* oscillator, two crystal oscillators and two PLLs.
/*
* The AT32AP7000 has five primary clock sources: One 32kHz
* oscillator, two crystal oscillators and two PLLs.
+@@ -166,7 +305,10 @@ static struct clk pll0 = {
};
static struct clk pll1 = {
.name = "pll1",
};
static struct clk pll1 = {
.name = "pll1",
+@@ -534,6 +676,14 @@ static struct clk hramc_clk = {
.users = 1,
.index = 3,
};
.users = 1,
.index = 3,
};
static struct resource smc0_resource[] = {
PBMEM(0xfff03400),
static struct resource smc0_resource[] = {
PBMEM(0xfff03400),
+@@ -605,19 +755,32 @@ static inline void set_ebi_sfr_bits(u32
}
/* --------------------------------------------------------------------
}
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* PIO
/* --------------------------------------------------------------------
* PIO
+@@ -669,7 +832,8 @@ void __init at32_add_system_devices(void
platform_device_register(&pdc_device);
platform_device_register(&dmaca0_device);
platform_device_register(&pdc_device);
platform_device_register(&dmaca0_device);
platform_device_register(&pio0_device);
platform_device_register(&pio1_device);
platform_device_register(&pio0_device);
platform_device_register(&pio1_device);
+@@ -679,6 +843,81 @@ void __init at32_add_system_devices(void
}
/* --------------------------------------------------------------------
}
/* --------------------------------------------------------------------
* USART
* -------------------------------------------------------------------- */
* USART
* -------------------------------------------------------------------- */
+@@ -951,7 +1190,8 @@ at32_add_device_spi(unsigned int id, str
switch (id) {
case 0:
pdev = &atmel_spi0_device;
switch (id) {
case 0:
pdev = &atmel_spi0_device;
select_peripheral(PA(1), PERIPH_A, 0); /* MOSI */
select_peripheral(PA(2), PERIPH_A, 0); /* SCK */
at32_spi_setup_slaves(0, b, n, spi0_pins);
select_peripheral(PA(1), PERIPH_A, 0); /* MOSI */
select_peripheral(PA(2), PERIPH_A, 0); /* SCK */
at32_spi_setup_slaves(0, b, n, spi0_pins);
+@@ -959,7 +1199,8 @@ at32_add_device_spi(unsigned int id, str
case 1:
pdev = &atmel_spi1_device;
case 1:
pdev = &atmel_spi1_device;
select_peripheral(PB(1), PERIPH_B, 0); /* MOSI */
select_peripheral(PB(5), PERIPH_B, 0); /* SCK */
at32_spi_setup_slaves(1, b, n, spi1_pins);
select_peripheral(PB(1), PERIPH_B, 0); /* MOSI */
select_peripheral(PB(5), PERIPH_B, 0); /* SCK */
at32_spi_setup_slaves(1, b, n, spi1_pins);
+@@ -989,7 +1230,9 @@ static struct clk atmel_twi0_pclk = {
{
struct platform_device *pdev;
{
struct platform_device *pdev;
+@@ -1009,6 +1252,9 @@ struct platform_device *__init at32_add_
atmel_twi0_pclk.dev = &pdev->dev;
atmel_twi0_pclk.dev = &pdev->dev;
platform_device_add(pdev);
return pdev;
platform_device_add(pdev);
return pdev;
+@@ -1032,7 +1278,8 @@ static struct clk atmel_mci0_pclk = {
{
struct platform_device *pdev;
{
struct platform_device *pdev;
+@@ -1041,11 +1288,15 @@ struct platform_device *__init at32_add_
pdev = platform_device_alloc("atmel_mci", id);
if (!pdev)
pdev = platform_device_alloc("atmel_mci", id);
if (!pdev)
select_peripheral(PA(10), PERIPH_A, 0); /* CLK */
select_peripheral(PA(11), PERIPH_A, 0); /* CMD */
select_peripheral(PA(10), PERIPH_A, 0); /* CLK */
select_peripheral(PA(11), PERIPH_A, 0); /* CMD */
+@@ -1054,12 +1305,19 @@ struct platform_device *__init at32_add_
select_peripheral(PA(14), PERIPH_A, 0); /* DATA2 */
select_peripheral(PA(15), PERIPH_A, 0); /* DATA3 */
select_peripheral(PA(14), PERIPH_A, 0); /* DATA2 */
select_peripheral(PA(15), PERIPH_A, 0); /* DATA3 */
platform_device_put(pdev);
return NULL;
}
platform_device_put(pdev);
return NULL;
}
+@@ -1097,7 +1355,8 @@ static struct clk atmel_lcdfb0_pixclk =
struct platform_device *__init
at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
struct platform_device *__init
at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
{
struct platform_device *pdev;
struct atmel_lcdfb_info *info;
{
struct platform_device *pdev;
struct atmel_lcdfb_info *info;
+@@ -1124,37 +1383,77 @@ at32_add_device_lcdc(unsigned int id, st
switch (id) {
case 0:
pdev = &atmel_lcdfb0_device;
switch (id) {
case 0:
pdev = &atmel_lcdfb0_device;
clk_set_parent(&atmel_lcdfb0_pixclk, &pll0);
clk_set_rate(&atmel_lcdfb0_pixclk, clk_get_rate(&pll0));
clk_set_parent(&atmel_lcdfb0_pixclk, &pll0);
clk_set_rate(&atmel_lcdfb0_pixclk, clk_get_rate(&pll0));
+@@ -1351,9 +1650,39 @@ static struct clk usba0_hclk = {
struct platform_device *pdev;
if (id != 0)
struct platform_device *pdev;
if (id != 0)
+@@ -1367,13 +1696,20 @@ at32_add_device_usba(unsigned int id, st
ARRAY_SIZE(usba0_resource)))
goto out_free_pdev;
ARRAY_SIZE(usba0_resource)))
goto out_free_pdev;
usba0_pclk.dev = &pdev->dev;
usba0_hclk.dev = &pdev->dev;
usba0_pclk.dev = &pdev->dev;
usba0_hclk.dev = &pdev->dev;
+@@ -1526,6 +1862,58 @@ fail:
#endif
/* --------------------------------------------------------------------
#endif
/* --------------------------------------------------------------------
* AC97C
* -------------------------------------------------------------------- */
static struct resource atmel_ac97c0_resource[] __initdata = {
* AC97C
* -------------------------------------------------------------------- */
static struct resource atmel_ac97c0_resource[] __initdata = {
+@@ -1540,9 +1928,11 @@ static struct clk atmel_ac97c0_pclk = {
if (id != 0)
return NULL;
if (id != 0)
return NULL;
+@@ -1553,19 +1943,37 @@ struct platform_device *__init at32_add_
if (platform_device_add_resources(pdev, atmel_ac97c0_resource,
ARRAY_SIZE(atmel_ac97c0_resource)))
if (platform_device_add_resources(pdev, atmel_ac97c0_resource,
ARRAY_SIZE(atmel_ac97c0_resource)))
platform_device_put(pdev);
return NULL;
}
platform_device_put(pdev);
return NULL;
}
+@@ -1683,6 +2091,7 @@ struct clk *at32_clock_list[] = {
&hmatrix_clk,
&ebi_clk,
&hramc_clk,
&hmatrix_clk,
&ebi_clk,
&hramc_clk,
&smc0_pclk,
&smc0_mck,
&pdc_hclk,
&smc0_pclk,
&smc0_mck,
&pdc_hclk,
+@@ -1694,7 +2103,10 @@ struct clk *at32_clock_list[] = {
&pio2_mck,
&pio3_mck,
&pio4_mck,
&pio2_mck,
&pio3_mck,
&pio4_mck,
&atmel_usart0_usart,
&atmel_usart1_usart,
&atmel_usart2_usart,
&atmel_usart0_usart,
&atmel_usart1_usart,
&atmel_usart2_usart,
+@@ -1730,16 +2142,7 @@ struct clk *at32_clock_list[] = {
};
unsigned int at32_nr_clocks = ARRAY_SIZE(at32_clock_list);
};
unsigned int at32_nr_clocks = ARRAY_SIZE(at32_clock_list);
{
u32 cpu_mask = 0, hsb_mask = 0, pba_mask = 0, pbb_mask = 0;
int i;
{
u32 cpu_mask = 0, hsb_mask = 0, pba_mask = 0, pbb_mask = 0;
int i;
+@@ -1794,4 +2197,36 @@ void __init at32_clock_init(void)
pm_writel(HSB_MASK, hsb_mask);
pm_writel(PBA_MASK, pba_mask);
pm_writel(PBB_MASK, pbb_mask);
pm_writel(HSB_MASK, hsb_mask);
pm_writel(PBA_MASK, pba_mask);
pm_writel(PBB_MASK, pbb_mask);
+core_initcall(sram_init);
--- a/arch/avr32/mach-at32ap/cpufreq.c
+++ b/arch/avr32/mach-at32ap/cpufreq.c
+core_initcall(sram_init);
--- a/arch/avr32/mach-at32ap/cpufreq.c
+++ b/arch/avr32/mach-at32ap/cpufreq.c
+@@ -108,5 +108,4 @@ static int __init at32_cpufreq_init(void
{
return cpufreq_register_driver(&at32_driver);
}
{
return cpufreq_register_driver(&at32_driver);
}
+late_initcall(gpio_dev_init);
--- a/arch/avr32/mach-at32ap/hsmc.c
+++ b/arch/avr32/mach-at32ap/hsmc.c
+late_initcall(gpio_dev_init);
--- a/arch/avr32/mach-at32ap/hsmc.c
+++ b/arch/avr32/mach-at32ap/hsmc.c
+@@ -278,4 +278,4 @@ static int __init hsmc_init(void)
{
return platform_driver_register(&hsmc_driver);
}
{
return platform_driver_register(&hsmc_driver);
}
};
extern struct platform_device at32_intc0_device;
};
extern struct platform_device at32_intc0_device;
+@@ -137,6 +142,74 @@ fail:
panic("Interrupt controller initialization failed!\n");
}
panic("Interrupt controller initialization failed!\n");
}
+arch_initcall(pdc_init);
--- a/arch/avr32/mach-at32ap/pio.c
+++ b/arch/avr32/mach-at32ap/pio.c
+arch_initcall(pdc_init);
--- a/arch/avr32/mach-at32ap/pio.c
+++ b/arch/avr32/mach-at32ap/pio.c
+@@ -157,6 +157,82 @@ fail:
/*--------------------------------------------------------------------------*/
/* GPIO API */
/*--------------------------------------------------------------------------*/
/* GPIO API */
+@@ -318,6 +394,8 @@ static void pio_bank_show(struct seq_fil
const char *label;
label = gpiochip_is_requested(chip, i);
const char *label;
label = gpiochip_is_requested(chip, i);
void show_mem(void)
{
int total = 0, reserved = 0, cached = 0;
void show_mem(void)
{
int total = 0, reserved = 0, cached = 0;
+@@ -109,19 +110,9 @@ void __init paging_init(void)
zero_page = alloc_bootmem_low_pages_node(NODE_DATA(0),
PAGE_SIZE);
zero_page = alloc_bootmem_low_pages_node(NODE_DATA(0),
PAGE_SIZE);
cpu_sync_pipeline();
tlbehi = sysreg_read(TLBEHI);
cpu_sync_pipeline();
tlbehi = sysreg_read(TLBEHI);
+@@ -33,15 +33,17 @@ void show_dtlb_entry(unsigned int index)
printk("%2u: %c %c %02x %05x %05x %o %o %c %c %c %c\n",
index,
printk("%2u: %c %c %02x %05x %05x %o %o %c %c %c %c\n",
index,
sysreg_write(MMUCR, mmucr_save);
sysreg_write(TLBEHI, tlbehi_save);
sysreg_write(MMUCR, mmucr_save);
sysreg_write(TLBEHI, tlbehi_save);
+@@ -54,29 +56,33 @@ void dump_dtlb(void)
unsigned int i;
printk("ID V G ASID VPN PFN AP SZ C B W D\n");
unsigned int i;
printk("ID V G ASID VPN PFN AP SZ C B W D\n");
rp = 32 - fls(tlbar);
if (rp == 32) {
rp = 32 - fls(tlbar);
if (rp == 32) {
+@@ -84,30 +90,14 @@ static inline void set_replacement_point
sysreg_write(TLBARLO, -1L);
}
sysreg_write(TLBARLO, -1L);
}
}
void update_mmu_cache(struct vm_area_struct *vma,
}
void update_mmu_cache(struct vm_area_struct *vma,
+@@ -120,39 +110,40 @@ void update_mmu_cache(struct vm_area_str
return;
local_irq_save(flags);
return;
local_irq_save(flags);
+@@ -190,17 +181,22 @@ void flush_tlb_range(struct vm_area_stru
local_irq_save(flags);
size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
local_irq_save(flags);
size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
if (mm != current->mm) {
saved_asid = get_asid();
set_asid(asid);
if (mm != current->mm) {
saved_asid = get_asid();
set_asid(asid);
+@@ -218,33 +214,34 @@ void flush_tlb_range(struct vm_area_stru
}
void flush_tlb_mm(struct mm_struct *mm)
}
void flush_tlb_mm(struct mm_struct *mm)
+@@ -280,7 +277,7 @@ static void *tlb_start(struct seq_file *
{
static unsigned long tlb_index;
{
static unsigned long tlb_index;
return NULL;
tlb_index = 0;
return NULL;
tlb_index = 0;
+@@ -291,7 +288,7 @@ static void *tlb_next(struct seq_file *t
{
unsigned long *index = v;
{
unsigned long *index = v;
+@@ -313,16 +310,16 @@ static int tlb_show(struct seq_file *tlb
if (*index == 0)
seq_puts(tlb, "ID V G ASID VPN PFN AP SZ C B W D\n");
if (*index == 0)
seq_puts(tlb, "ID V G ASID VPN PFN AP SZ C B W D\n");
cpu_sync_pipeline();
tlbehi = sysreg_read(TLBEHI);
cpu_sync_pipeline();
tlbehi = sysreg_read(TLBEHI);
+@@ -334,16 +331,18 @@ static int tlb_show(struct seq_file *tlb
local_irq_restore(flags);
seq_printf(tlb, "%2lu: %c %c %02x %05x %05x %o %o %c %c %c %c\n",
local_irq_restore(flags);
seq_printf(tlb, "%2lu: %c %c %02x %05x %05x %o %o %c %c %c %c\n",
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
+@@ -706,7 +706,7 @@ config NVRAM
config RTC
tristate "Enhanced Real Time Clock Support"
config RTC
tristate "Enhanced Real Time Clock Support"
---help---
If you say Y here and create a character special file /dev/rtc with
major number 10 and minor number 135 using mknod ("man mknod"), you
---help---
If you say Y here and create a character special file /dev/rtc with
major number 10 and minor number 135 using mknod ("man mknod"), you
+@@ -776,7 +776,7 @@ config SGI_IP27_RTC
config GEN_RTC
tristate "Generic /dev/rtc emulation"
config GEN_RTC
tristate "Generic /dev/rtc emulation"
major number 10 and minor number 135 using mknod ("man mknod"), you
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
major number 10 and minor number 135 using mknod ("man mknod"), you
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
+@@ -1033,7 +1033,8 @@ DECLARE_TASKLET_DISABLED(keyboard_taskle
#if defined(CONFIG_X86) || defined(CONFIG_IA64) || defined(CONFIG_ALPHA) ||\
defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_SPARC) ||\
defined(CONFIG_PARISC) || defined(CONFIG_SUPERH) ||\
#if defined(CONFIG_X86) || defined(CONFIG_IA64) || defined(CONFIG_ALPHA) ||\
defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_SPARC) ||\
defined(CONFIG_PARISC) || defined(CONFIG_SUPERH) ||\
+arch_initcall(tcb_clksrc_init);
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
+arch_initcall(tcb_clksrc_init);
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
+@@ -88,6 +88,14 @@ config I2C_AT91
to support combined I2C messages. Use the i2c-gpio driver
unless your system can cope with those limitations.
to support combined I2C messages. Use the i2c-gpio driver
unless your system can cope with those limitations.
depends on SOC_AU1550 || SOC_AU1200
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
depends on SOC_AU1550 || SOC_AU1200
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
+@@ -52,6 +52,7 @@ obj-$(CONFIG_I2C_VIAPRO) += i2c-viapro.o
obj-$(CONFIG_I2C_VOODOO3) += i2c-voodoo3.o
obj-$(CONFIG_SCx200_ACB) += scx200_acb.o
obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o
obj-$(CONFIG_I2C_VOODOO3) += i2c-voodoo3.o
obj-$(CONFIG_SCx200_ACB) += scx200_acb.o
obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o
+#endif /* __ATMELTWI_H__ */
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
+#endif /* __ATMELTWI_H__ */
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
+@@ -88,6 +88,17 @@ config SERIO_RPCKBD
To compile this driver as a module, choose M here: the
module will be called rpckbd.
To compile this driver as a module, choose M here: the
module will be called rpckbd.
depends on ARM_AMBA
--- a/drivers/input/serio/Makefile
+++ b/drivers/input/serio/Makefile
depends on ARM_AMBA
--- a/drivers/input/serio/Makefile
+++ b/drivers/input/serio/Makefile
+@@ -12,6 +12,7 @@ obj-$(CONFIG_SERIO_CT82C710) += ct82c710
obj-$(CONFIG_SERIO_RPCKBD) += rpckbd.o
obj-$(CONFIG_SERIO_SA1111) += sa1111ps2.o
obj-$(CONFIG_SERIO_AMBAKMI) += ambakmi.o
obj-$(CONFIG_SERIO_RPCKBD) += rpckbd.o
obj-$(CONFIG_SERIO_SA1111) += sa1111ps2.o
obj-$(CONFIG_SERIO_AMBAKMI) += ambakmi.o
+#endif /* _AT32PSIF_H */
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
+#endif /* _AT32PSIF_H */
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
+@@ -22,6 +22,39 @@ config ATMEL_PWM
purposes including software controlled power-efficent backlights
on LCD displays, motor control, and waveform generation.
purposes including software controlled power-efficent backlights
on LCD displays, motor control, and waveform generation.
depends on X86 && PCI && INPUT && EXPERIMENTAL
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
depends on X86 && PCI && INPUT && EXPERIMENTAL
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
+@@ -10,6 +10,7 @@ obj-$(CONFIG_ACER_WMI) += acer-wmi.o
obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o
obj-$(CONFIG_ATMEL_PWM) += atmel_pwm.o
obj-$(CONFIG_ATMEL_SSC) += atmel-ssc.o
obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o
obj-$(CONFIG_ATMEL_PWM) += atmel_pwm.o
obj-$(CONFIG_ATMEL_SSC) += atmel-ssc.o
+arch_initcall(tc_init);
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
+arch_initcall(tc_init);
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
+@@ -91,6 +91,16 @@ config MMC_AT91
depends on ARCH_IMX
--- a/drivers/mmc/host/Makefile
+++ b/drivers/mmc/host/Makefile
depends on ARCH_IMX
--- a/drivers/mmc/host/Makefile
+++ b/drivers/mmc/host/Makefile
+@@ -15,6 +15,7 @@ obj-$(CONFIG_MMC_WBSD) += wbsd.o
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
obj-$(CONFIG_MMC_OMAP) += omap.o
obj-$(CONFIG_MMC_AT91) += at91_mci.o
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
obj-$(CONFIG_MMC_OMAP) += omap.o
obj-$(CONFIG_MMC_AT91) += at91_mci.o
+#endif /* __DRIVERS_MMC_ATMEL_MCI_H__ */
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
+#endif /* __DRIVERS_MMC_ATMEL_MCI_H__ */
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
+@@ -272,12 +272,54 @@ config MTD_NAND_CS553X
If you say "m", the module will be called "cs553x_nand.ko".
If you say "m", the module will be called "cs553x_nand.ko".
tristate "Support for NAND Flash on CM-X270 modules"
--- a/drivers/mtd/nand/Makefile
+++ b/drivers/mtd/nand/Makefile
tristate "Support for NAND Flash on CM-X270 modules"
--- a/drivers/mtd/nand/Makefile
+++ b/drivers/mtd/nand/Makefile
+@@ -24,7 +24,7 @@ obj-$(CONFIG_MTD_NAND_TS7250) += ts7250
obj-$(CONFIG_MTD_NAND_NANDSIM) += nandsim.o
obj-$(CONFIG_MTD_NAND_CS553X) += cs553x_nand.o
obj-$(CONFIG_MTD_NAND_NDFC) += ndfc.o
obj-$(CONFIG_MTD_NAND_NANDSIM) += nandsim.o
obj-$(CONFIG_MTD_NAND_CS553X) += cs553x_nand.o
obj-$(CONFIG_MTD_NAND_NDFC) += ndfc.o
+#endif
--- a/drivers/mtd/nand/bf5xx_nand.c
+++ b/drivers/mtd/nand/bf5xx_nand.c
+#endif
--- a/drivers/mtd/nand/bf5xx_nand.c
+++ b/drivers/mtd/nand/bf5xx_nand.c
+@@ -803,3 +803,4 @@ module_exit(bf5xx_nand_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR(DRV_AUTHOR);
MODULE_DESCRIPTION(DRV_DESC);
+MODULE_ALIAS("platform:" DRV_NAME);
--- a/drivers/mtd/nand/ndfc.c
+++ b/drivers/mtd/nand/ndfc.c
MODULE_LICENSE("GPL");
MODULE_AUTHOR(DRV_AUTHOR);
MODULE_DESCRIPTION(DRV_DESC);
+MODULE_ALIAS("platform:" DRV_NAME);
--- a/drivers/mtd/nand/ndfc.c
+++ b/drivers/mtd/nand/ndfc.c
+@@ -317,3 +317,5 @@ module_exit(ndfc_nand_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Thomas Gleixner <tglx@linutronix.de>");
MODULE_DESCRIPTION("Platform driver for NDFC");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Thomas Gleixner <tglx@linutronix.de>");
MODULE_DESCRIPTION("Platform driver for NDFC");
+MODULE_ALIAS("platform:ndfc-nand");
--- a/drivers/mtd/nand/orion_nand.c
+++ b/drivers/mtd/nand/orion_nand.c
+MODULE_ALIAS("platform:ndfc-nand");
--- a/drivers/mtd/nand/orion_nand.c
+++ b/drivers/mtd/nand/orion_nand.c
+@@ -169,3 +169,4 @@ module_exit(orion_nand_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Tzachi Perelstein");
MODULE_DESCRIPTION("NAND glue for Orion platforms");
+MODULE_ALIAS("platform:orion_nand");
--- a/drivers/mtd/nand/plat_nand.c
+++ b/drivers/mtd/nand/plat_nand.c
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Tzachi Perelstein");
MODULE_DESCRIPTION("NAND glue for Orion platforms");
+MODULE_ALIAS("platform:orion_nand");
--- a/drivers/mtd/nand/plat_nand.c
+++ b/drivers/mtd/nand/plat_nand.c
+@@ -161,3 +161,4 @@ module_exit(plat_nand_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Vitaly Wool");
MODULE_DESCRIPTION("Simple generic NAND driver");
+MODULE_ALIAS("platform:gen_nand");
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Vitaly Wool");
MODULE_DESCRIPTION("Simple generic NAND driver");
+MODULE_ALIAS("platform:gen_nand");
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
+@@ -927,3 +927,6 @@ module_exit(s3c2410_nand_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
MODULE_DESCRIPTION("S3C24XX MTD NAND driver");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
MODULE_DESCRIPTION("S3C24XX MTD NAND driver");
+MODULE_ALIAS("platform:s3c2440-nand");
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
+MODULE_ALIAS("platform:s3c2440-nand");
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
+@@ -1277,8 +1277,45 @@ static int __exit macb_remove(struct pla
},
--- a/drivers/parport/Kconfig
+++ b/drivers/parport/Kconfig
},
--- a/drivers/parport/Kconfig
+++ b/drivers/parport/Kconfig
+@@ -36,7 +36,7 @@ if PARPORT
config PARPORT_PC
tristate "PC-style hardware"
depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && \
config PARPORT_PC
tristate "PC-style hardware"
depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && \
IBM PC compatible computers and some Alphas have PC-style
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
IBM PC compatible computers and some Alphas have PC-style
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
+@@ -277,6 +277,13 @@ config ELECTRA_CF
Say Y here to support the CompactFlash controller on the
PA Semi Electra eval board.
Say Y here to support the CompactFlash controller on the
PA Semi Electra eval board.
--- a/drivers/pcmcia/Makefile
+++ b/drivers/pcmcia/Makefile
--- a/drivers/pcmcia/Makefile
+++ b/drivers/pcmcia/Makefile
+@@ -38,6 +38,7 @@ obj-$(CONFIG_PCMCIA_VRC4173) += vrc417
obj-$(CONFIG_OMAP_CF) += omap_cf.o
obj-$(CONFIG_AT91_CF) += at91_cf.o
obj-$(CONFIG_ELECTRA_CF) += electra_cf.o
obj-$(CONFIG_OMAP_CF) += omap_cf.o
obj-$(CONFIG_AT91_CF) += at91_cf.o
obj-$(CONFIG_ELECTRA_CF) += electra_cf.o
+MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>");
--- a/drivers/rtc/rtc-at32ap700x.c
+++ b/drivers/rtc/rtc-at32ap700x.c
+MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>");
--- a/drivers/rtc/rtc-at32ap700x.c
+++ b/drivers/rtc/rtc-at32ap700x.c
+@@ -262,6 +262,7 @@ static int __init at32_rtc_probe(struct
}
platform_set_drvdata(pdev, rtc);
}
platform_set_drvdata(pdev, rtc);
dev_info(&pdev->dev, "Atmel RTC for AT32AP700x at %08lx irq %ld\n",
(unsigned long)rtc->regs, rtc->irq);
dev_info(&pdev->dev, "Atmel RTC for AT32AP700x at %08lx irq %ld\n",
(unsigned long)rtc->regs, rtc->irq);
+@@ -281,6 +282,8 @@ static int __exit at32_rtc_remove(struct
{
struct rtc_at32ap700x *rtc = platform_get_drvdata(pdev);
{
struct rtc_at32ap700x *rtc = platform_get_drvdata(pdev);
rtc_device_unregister(rtc->rtc);
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
rtc_device_unregister(rtc->rtc);
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
+@@ -957,6 +957,20 @@ static void atmel_shutdown(struct uart_p
* Power / Clock management.
*/
static void atmel_serial_pm(struct uart_port *port, unsigned int state,
* Power / Clock management.
*/
static void atmel_serial_pm(struct uart_port *port, unsigned int state,
+@@ -1190,6 +1204,7 @@ static struct uart_ops atmel_pops = {
.break_ctl = atmel_break_ctl,
.startup = atmel_startup,
.shutdown = atmel_shutdown,
.break_ctl = atmel_break_ctl,
.startup = atmel_startup,
.shutdown = atmel_shutdown,
.set_termios = atmel_set_termios,
.type = atmel_type,
.release_port = atmel_release_port,
.set_termios = atmel_set_termios,
.type = atmel_type,
.release_port = atmel_release_port,
+@@ -1440,6 +1455,15 @@ static struct uart_driver atmel_uart = {
static int atmel_serial_suspend(struct platform_device *pdev,
pm_message_t state)
{
static int atmel_serial_suspend(struct platform_device *pdev,
pm_message_t state)
{
+@@ -1447,7 +1471,7 @@ static int atmel_serial_suspend(struct p
struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
if (device_may_wakeup(&pdev->dev)
struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
if (device_may_wakeup(&pdev->dev)
uart_suspend_port(&atmel_uart, port);
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
uart_suspend_port(&atmel_uart, port);
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
+@@ -552,6 +552,8 @@ static void uart_flush_buffer(struct tty
spin_lock_irqsave(&port->lock, flags);
uart_circ_clear(&state->info->xmit);
spin_lock_irqsave(&port->lock, flags);
uart_circ_clear(&state->info->xmit);
}
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
}
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
+@@ -51,9 +51,7 @@ struct atmel_spi {
u8 stopping;
struct list_head queue;
struct spi_transfer *current_transfer;
u8 stopping;
struct list_head queue;
struct spi_transfer *current_transfer;
void *buffer;
dma_addr_t buffer_dma;
void *buffer;
dma_addr_t buffer_dma;
+@@ -133,48 +131,6 @@ static void cs_deactivate(struct atmel_s
gpio_set_value(gpio, !active);
}
gpio_set_value(gpio, !active);
}
/*
* Submit next transfer for DMA.
* lock is held, spi irq is blocked
/*
* Submit next transfer for DMA.
* lock is held, spi irq is blocked
+@@ -184,78 +140,53 @@ static void atmel_spi_next_xfer(struct s
{
struct atmel_spi *as = spi_master_get_devdata(master);
struct spi_transfer *xfer;
{
struct atmel_spi *as = spi_master_get_devdata(master);
struct spi_transfer *xfer;
* transfer because we need to handle some difficult timing
* issues otherwise. If we wait for ENDTX in one transfer and
* then starts waiting for ENDRX in the next, it's difficult
* transfer because we need to handle some difficult timing
* issues otherwise. If we wait for ENDTX in one transfer and
* then starts waiting for ENDRX in the next, it's difficult
+@@ -265,7 +196,17 @@ static void atmel_spi_next_xfer(struct s
*
* It should be doable, though. Just not now...
*/
*
* It should be doable, though. Just not now...
*/
spi_writel(as, PTCR, SPI_BIT(TXTEN) | SPI_BIT(RXTEN));
}
spi_writel(as, PTCR, SPI_BIT(TXTEN) | SPI_BIT(RXTEN));
}
+@@ -363,7 +304,6 @@ atmel_spi_msg_done(struct spi_master *ma
spin_lock(&as->lock);
as->current_transfer = NULL;
spin_lock(&as->lock);
as->current_transfer = NULL;
/* continue if needed */
if (list_empty(&as->queue) || as->stopping)
/* continue if needed */
if (list_empty(&as->queue) || as->stopping)
+@@ -447,7 +387,7 @@ atmel_spi_interrupt(int irq, void *dev_i
spi_writel(as, IDR, pending);
spi_writel(as, IDR, pending);
msg->actual_length += xfer->len;
if (!msg->is_dma_mapped)
msg->actual_length += xfer->len;
if (!msg->is_dma_mapped)
+@@ -457,7 +397,7 @@ atmel_spi_interrupt(int irq, void *dev_i
if (xfer->delay_usecs)
udelay(xfer->delay_usecs);
if (xfer->delay_usecs)
udelay(xfer->delay_usecs);
xfer->cs_change);
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
xfer->cs_change);
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
+@@ -118,10 +118,10 @@ config USB_AMD5536UDC
config USB_GADGET_ATMEL_USBA
boolean "Atmel USBA"
select USB_GADGET_DUALSPEED
config USB_GADGET_ATMEL_USBA
boolean "Atmel USBA"
select USB_GADGET_DUALSPEED
#ifdef CONFIG_USB_GADGET_DEBUG_FS
#include <linux/debugfs.h>
#ifdef CONFIG_USB_GADGET_DEBUG_FS
#include <linux/debugfs.h>
+@@ -324,53 +326,28 @@ static int vbus_is_present(struct usba_u
static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
{
unsigned int transaction_len;
static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
{
unsigned int transaction_len;
+@@ -387,7 +364,7 @@ static void next_fifo_transaction(struct
ep->ep.name, req, transaction_len,
req->last_transaction ? ", done" : "");
ep->ep.name, req, transaction_len,
req->last_transaction ? ", done" : "");
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
req->req.actual += transaction_len;
}
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
req->req.actual += transaction_len;
}
+@@ -476,7 +453,7 @@ static void receive_data(struct usba_ep
bytecount = req->req.length - req->req.actual;
}
bytecount = req->req.length - req->req.actual;
}
ep->fifo, bytecount);
req->req.actual += bytecount;
ep->fifo, bytecount);
req->req.actual += bytecount;
+@@ -1029,33 +1006,6 @@ static const struct usb_gadget_ops usba_
.set_selfpowered = usba_udc_set_selfpowered,
};
.set_selfpowered = usba_udc_set_selfpowered,
};
static struct usb_endpoint_descriptor usba_ep0_desc = {
.bLength = USB_DT_ENDPOINT_SIZE,
.bDescriptorType = USB_DT_ENDPOINT,
static struct usb_endpoint_descriptor usba_ep0_desc = {
.bLength = USB_DT_ENDPOINT_SIZE,
.bDescriptorType = USB_DT_ENDPOINT,
+@@ -1074,7 +1024,6 @@ static void nop_release(struct device *d
static struct usba_udc the_udc = {
.gadget = {
.ops = &usba_udc_ops,
static struct usba_udc the_udc = {
.gadget = {
.ops = &usba_udc_ops,
.ep_list = LIST_HEAD_INIT(the_udc.gadget.ep_list),
.is_dualspeed = 1,
.name = "atmel_usba_udc",
.ep_list = LIST_HEAD_INIT(the_udc.gadget.ep_list),
.is_dualspeed = 1,
.name = "atmel_usba_udc",
+@@ -1231,7 +1180,7 @@ static int do_test_mode(struct usba_udc
} else {
usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE);
usba_writel(udc, TST, USBA_TST_PKT_MODE);
} else {
usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE);
usba_writel(udc, TST, USBA_TST_PKT_MODE);
sizeof(test_packet_buffer));
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
dev_info(dev, "Entering Test_Packet mode...\n");
sizeof(test_packet_buffer));
usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY);
dev_info(dev, "Entering Test_Packet mode...\n");
+@@ -1530,13 +1479,13 @@ restart:
DBG(DBG_HW, "Packet length: %u\n", pkt_len);
if (pkt_len != sizeof(crq)) {
pr_warning("udc: Invalid packet length %u "
DBG(DBG_HW, "Packet length: %u\n", pkt_len);
if (pkt_len != sizeof(crq)) {
pr_warning("udc: Invalid packet length %u "
/* Free up one bank in the FIFO so that we can
* generate or receive a reply right away. */
/* Free up one bank in the FIFO so that we can
* generate or receive a reply right away. */
+@@ -1688,6 +1637,7 @@ static irqreturn_t usba_udc_irq(int irq,
DBG(DBG_INT, "irq, status=%#08x\n", status);
if (status & USBA_DET_SUSPEND) {
DBG(DBG_INT, "irq, status=%#08x\n", status);
if (status & USBA_DET_SUSPEND) {
usba_writel(udc, INT_CLR, USBA_DET_SUSPEND);
DBG(DBG_BUS, "Suspend detected\n");
if (udc->gadget.speed != USB_SPEED_UNKNOWN
usba_writel(udc, INT_CLR, USBA_DET_SUSPEND);
DBG(DBG_BUS, "Suspend detected\n");
if (udc->gadget.speed != USB_SPEED_UNKNOWN
+@@ -1699,6 +1649,7 @@ static irqreturn_t usba_udc_irq(int irq,
}
if (status & USBA_WAKE_UP) {
}
if (status & USBA_WAKE_UP) {
usba_writel(udc, INT_CLR, USBA_WAKE_UP);
DBG(DBG_BUS, "Wake Up CPU detected\n");
}
usba_writel(udc, INT_CLR, USBA_WAKE_UP);
DBG(DBG_BUS, "Wake Up CPU detected\n");
}
+@@ -1792,12 +1743,14 @@ static irqreturn_t usba_vbus_irq(int irq
vbus = gpio_get_value(udc->vbus_pin);
if (vbus != udc->vbus_prev) {
if (vbus) {
vbus = gpio_get_value(udc->vbus_pin);
if (vbus != udc->vbus_prev) {
if (vbus) {
spin_unlock(&udc->lock);
udc->driver->disconnect(&udc->gadget);
spin_lock(&udc->lock);
spin_unlock(&udc->lock);
udc->driver->disconnect(&udc->gadget);
spin_lock(&udc->lock);
+@@ -1850,7 +1803,8 @@ int usb_gadget_register_driver(struct us
/* If Vbus is present, enable the controller and wait for reset */
spin_lock_irqsave(&udc->lock, flags);
if (vbus_is_present(udc) && udc->vbus_prev == 0) {
/* If Vbus is present, enable the controller and wait for reset */
spin_lock_irqsave(&udc->lock, flags);
if (vbus_is_present(udc) && udc->vbus_prev == 0) {
usba_writel(udc, INT_ENB, USBA_END_OF_RESET);
}
spin_unlock_irqrestore(&udc->lock, flags);
usba_writel(udc, INT_ENB, USBA_END_OF_RESET);
}
spin_unlock_irqrestore(&udc->lock, flags);
+@@ -1883,7 +1837,8 @@ int usb_gadget_unregister_driver(struct
spin_unlock_irqrestore(&udc->lock, flags);
/* This will also disable the DP pullup */
spin_unlock_irqrestore(&udc->lock, flags);
/* This will also disable the DP pullup */
driver->unbind(&udc->gadget);
udc->gadget.dev.driver = NULL;
driver->unbind(&udc->gadget);
udc->gadget.dev.driver = NULL;
+@@ -1908,7 +1863,7 @@ static int __init usba_udc_probe(struct
regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
return -ENXIO;
irq = platform_get_irq(pdev, 0);
return -ENXIO;
irq = platform_get_irq(pdev, 0);
+@@ -1953,19 +1908,48 @@ static int __init usba_udc_probe(struct
/* Make sure we start from a clean slate */
clk_enable(pclk);
/* Make sure we start from a clean slate */
clk_enable(pclk);
list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
}
list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
}
+@@ -1984,7 +1968,7 @@ static int __init usba_udc_probe(struct
if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
udc->vbus_pin = pdata->vbus_pin;
if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
udc->vbus_pin = pdata->vbus_pin;
+@@ -2004,7 +1988,7 @@ static int __init usba_udc_probe(struct
}
usba_init_debugfs(udc);
}
usba_init_debugfs(udc);
usba_ep_init_debugfs(udc, &usba_ep[i]);
return 0;
usba_ep_init_debugfs(udc, &usba_ep[i]);
return 0;
+@@ -2012,6 +1996,8 @@ static int __init usba_udc_probe(struct
err_device_add:
free_irq(irq, udc);
err_request_irq:
err_device_add:
free_irq(irq, udc);
err_request_irq:
iounmap(udc->fifo);
err_map_fifo:
iounmap(udc->regs);
iounmap(udc->fifo);
err_map_fifo:
iounmap(udc->regs);
+@@ -2029,10 +2015,11 @@ static int __exit usba_udc_remove(struct
{
struct usba_udc *udc;
int i;
{
struct usba_udc *udc;
int i;
usba_ep_cleanup_debugfs(&usba_ep[i]);
usba_cleanup_debugfs(udc);
usba_ep_cleanup_debugfs(&usba_ep[i]);
usba_cleanup_debugfs(udc);
+@@ -2040,6 +2027,7 @@ static int __exit usba_udc_remove(struct
gpio_free(udc->vbus_pin);
free_irq(udc->irq, udc);
gpio_free(udc->vbus_pin);
free_irq(udc->irq, udc);
static inline void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo,
struct fb_var_screeninfo *var)
static inline void atmel_lcdfb_update_dma2d(struct atmel_lcdfb_info *sinfo,
struct fb_var_screeninfo *var)
+@@ -176,7 +178,7 @@ static struct fb_fix_screeninfo atmel_lc
.type = FB_TYPE_PACKED_PIXELS,
.visual = FB_VISUAL_TRUECOLOR,
.xpanstep = 0,
.type = FB_TYPE_PACKED_PIXELS,
.visual = FB_VISUAL_TRUECOLOR,
.xpanstep = 0,
.ywrapstep = 0,
.accel = FB_ACCEL_NONE,
};
.ywrapstep = 0,
.accel = FB_ACCEL_NONE,
};
+@@ -250,6 +252,8 @@ static int atmel_lcdfb_alloc_video_memor
+@@ -634,7 +638,6 @@ static int __init atmel_lcdfb_init_fbinf
struct fb_info *info = sinfo->info;
int ret = 0;
struct fb_info *info = sinfo->info;
int ret = 0;
info->var.activate |= FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW;
dev_info(info->device,
info->var.activate |= FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW;
dev_info(info->device,
+@@ -764,6 +767,11 @@ static int __init atmel_lcdfb_probe(stru
info->screen_base = ioremap(info->fix.smem_start, info->fix.smem_len);
if (!info->screen_base)
goto release_intmem;
info->screen_base = ioremap(info->fix.smem_start, info->fix.smem_len);
if (!info->screen_base)
goto release_intmem;
ret = atmel_lcdfb_alloc_video_memory(sinfo);
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
ret = atmel_lcdfb_alloc_video_memory(sinfo);
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
+@@ -385,8 +385,6 @@ __writeback_single_inode(struct inode *i
* WB_SYNC_HOLD is a hack for sys_sync(): reattach the inode to sb->s_dirty so
* that it can be located for waiting on in __writeback_single_inode().
*
* WB_SYNC_HOLD is a hack for sys_sync(): reattach the inode to sb->s_dirty so
* that it can be located for waiting on in __writeback_single_inode().
*
* If `bdi' is non-zero then we're being asked to writeback a specific queue.
* This function assumes that the blockdev superblock's inodes are backed by
* a variety of queues, so all inodes are searched. For other superblocks,
* If `bdi' is non-zero then we're being asked to writeback a specific queue.
* This function assumes that the blockdev superblock's inodes are backed by
* a variety of queues, so all inodes are searched. For other superblocks,
+@@ -402,11 +400,12 @@ __writeback_single_inode(struct inode *i
* on the writer throttling path, and we get decent balancing between many
* throttled threads: we don't want them all piling up on inode_sync_wait.
*/
* on the writer throttling path, and we get decent balancing between many
* throttled threads: we don't want them all piling up on inode_sync_wait.
*/
if (!wbc->for_kupdate || list_empty(&sb->s_io))
queue_io(sb, wbc->older_than_this);
if (!wbc->for_kupdate || list_empty(&sb->s_io))
queue_io(sb, wbc->older_than_this);
+@@ -485,8 +484,16 @@ sync_sb_inodes(struct super_block *sb, s
if (!list_empty(&sb->s_more_io))
wbc->more_io = 1;
}
if (!list_empty(&sb->s_more_io))
wbc->more_io = 1;
}
/*
* Start writeback of dirty pagecache data against all unlocked inodes.
/*
* Start writeback of dirty pagecache data against all unlocked inodes.
+@@ -526,11 +533,8 @@ restart:
* be unmounted by the time it is released.
*/
if (down_read_trylock(&sb->s_umount)) {
* be unmounted by the time it is released.
*/
if (down_read_trylock(&sb->s_umount)) {
up_read(&sb->s_umount);
}
spin_lock(&sb_lock);
up_read(&sb->s_umount);
}
spin_lock(&sb_lock);
+@@ -568,9 +572,7 @@ void sync_inodes_sb(struct super_block *
(inodes_stat.nr_inodes - inodes_stat.nr_unused) +
nr_dirty + nr_unstable;
wbc.nr_to_write += wbc.nr_to_write / 2; /* Bit more for luck */
(inodes_stat.nr_inodes - inodes_stat.nr_unused) +
nr_dirty + nr_unstable;
wbc.nr_to_write += wbc.nr_to_write / 2; /* Bit more for luck */
/* Add basic devices: system manager, interrupt controller, portmuxes, etc. */
void at32_add_system_devices(void);
/* Add basic devices: system manager, interrupt controller, portmuxes, etc. */
void at32_add_system_devices(void);
+@@ -36,11 +42,10 @@ at32_add_device_spi(unsigned int id, str
struct atmel_lcdfb_info;
struct platform_device *
at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
struct atmel_lcdfb_info;
struct platform_device *
at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data,
struct platform_device *
at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
struct platform_device *
at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
+@@ -68,9 +73,27 @@ struct platform_device *at32_add_device_
struct platform_device *
at32_add_device_ssc(unsigned int id, unsigned int flags);
struct platform_device *
at32_add_device_ssc(unsigned int id, unsigned int flags);
struct platform_device *at32_add_device_abdac(unsigned int id);
struct cf_platform_data {
struct platform_device *at32_add_device_abdac(unsigned int id);
struct cf_platform_data {
+@@ -84,4 +107,20 @@ struct platform_device *
at32_add_device_cf(unsigned int id, unsigned int extint,
struct cf_platform_data *data);
at32_add_device_cf(unsigned int id, unsigned int extint,
struct cf_platform_data *data);
+#endif /* __ASM_AVR32_ARCH_PM_H */
--- a/include/asm-avr32/arch-at32ap/portmux.h
+++ b/include/asm-avr32/arch-at32ap/portmux.h
+#endif /* __ASM_AVR32_ARCH_PM_H */
--- a/include/asm-avr32/arch-at32ap/portmux.h
+++ b/include/asm-avr32/arch-at32ap/portmux.h
+@@ -26,4 +26,16 @@ void at32_select_periph(unsigned int pin
void at32_select_gpio(unsigned int pin, unsigned long flags);
void at32_reserve_pin(unsigned int pin);
void at32_select_gpio(unsigned int pin, unsigned long flags);
void at32_reserve_pin(unsigned int pin);
}
#define __pte_free_tlb(tlb,pte) \
}
#define __pte_free_tlb(tlb,pte) \
+@@ -75,6 +89,10 @@ do { \
tlb_remove_page((tlb), pte); \
} while (0)
tlb_remove_page((tlb), pte); \
} while (0)
#endif /* __ASM_AVR32_PGALLOC_H */
--- a/include/asm-avr32/pgtable.h
+++ b/include/asm-avr32/pgtable.h
#endif /* __ASM_AVR32_PGALLOC_H */
--- a/include/asm-avr32/pgtable.h
+++ b/include/asm-avr32/pgtable.h
+@@ -129,13 +129,6 @@ extern struct page *empty_zero_page;
#define _PAGE_FLAGS_CACHE_MASK (_PAGE_CACHABLE | _PAGE_BUFFER | _PAGE_WT)
#define _PAGE_FLAGS_CACHE_MASK (_PAGE_CACHABLE | _PAGE_BUFFER | _PAGE_WT)
/* Flags that may be modified by software */
#define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY \
| _PAGE_FLAGS_CACHE_MASK)
/* Flags that may be modified by software */
#define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY \
| _PAGE_FLAGS_CACHE_MASK)
+@@ -254,10 +247,14 @@ static inline pte_t pte_mkyoung(pte_t pt
}
#define pmd_none(x) (!pmd_val(x))
}
#define pmd_none(x) (!pmd_val(x))
/*
* Permanent address of a page. We don't support highmem, so this is
/*
* Permanent address of a page. We don't support highmem, so this is
+@@ -295,19 +292,16 @@ static inline pte_t pte_modify(pte_t pte
#define page_pte(page) page_pte_prot(page, __pgprot(0))
#define page_pte(page) page_pte_prot(page, __pgprot(0))
+#endif /* _ASM_SERIAL_H */
--- a/include/asm-avr32/thread_info.h
+++ b/include/asm-avr32/thread_info.h
+#endif /* _ASM_SERIAL_H */
--- a/include/asm-avr32/thread_info.h
+++ b/include/asm-avr32/thread_info.h
+@@ -88,6 +88,7 @@ static inline struct thread_info *curren
#define TIF_MEMDIE 6
#define TIF_RESTORE_SIGMASK 7 /* restore signal mask in do_signal */
#define TIF_CPU_GOING_TO_SLEEP 8 /* CPU is entering sleep 0 mode */
#define TIF_MEMDIE 6
#define TIF_RESTORE_SIGMASK 7 /* restore signal mask in do_signal */
#define TIF_CPU_GOING_TO_SLEEP 8 /* CPU is entering sleep 0 mode */
--- a/include/asm-avr32/tlbflush.h
+++ b/include/asm-avr32/tlbflush.h
--- a/include/asm-avr32/tlbflush.h
+++ b/include/asm-avr32/tlbflush.h
+@@ -26,7 +26,6 @@ extern void flush_tlb_mm(struct mm_struc
extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end);
extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end);
extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
+#endif
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
+#endif
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
+@@ -1692,6 +1692,8 @@ static inline void invalidate_remote_ino
extern int invalidate_inode_pages2(struct address_space *mapping);
extern int invalidate_inode_pages2_range(struct address_space *mapping,
pgoff_t start, pgoff_t end);
extern int invalidate_inode_pages2(struct address_space *mapping);
extern int invalidate_inode_pages2_range(struct address_space *mapping,
pgoff_t start, pgoff_t end);
extern int filemap_flush(struct address_space *);
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
extern int filemap_flush(struct address_space *);
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
+@@ -188,6 +188,7 @@ struct uart_ops {
void (*break_ctl)(struct uart_port *, int ctl);
int (*startup)(struct uart_port *);
void (*shutdown)(struct uart_port *);
void (*break_ctl)(struct uart_port *, int ctl);
int (*startup)(struct uart_port *);
void (*shutdown)(struct uart_port *);
+#endif /* __LINUX_USB_USBA_H */
--- a/mm/Kconfig
+++ b/mm/Kconfig
+#endif /* __LINUX_USB_USBA_H */
--- a/mm/Kconfig
+++ b/mm/Kconfig
+@@ -187,7 +187,7 @@ config BOUNCE
config NR_QUICK
int
depends on QUICKLIST
config NR_QUICK
int
depends on QUICKLIST
config VIRT_TO_BUS
--- a/sound/Kconfig
+++ b/sound/Kconfig
config VIRT_TO_BUS
--- a/sound/Kconfig
+++ b/sound/Kconfig
+@@ -63,6 +63,8 @@ source "sound/aoa/Kconfig"
source "sound/arm/Kconfig"
source "sound/arm/Kconfig"
endif
--- a/sound/Makefile
+++ b/sound/Makefile
endif
--- a/sound/Makefile
+++ b/sound/Makefile
+@@ -6,7 +6,7 @@ obj-$(CONFIG_SOUND_PRIME) += sound_firmw
obj-$(CONFIG_SOUND_PRIME) += oss/
obj-$(CONFIG_DMASOUND) += oss/
obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ sh/ synth/ usb/ \
obj-$(CONFIG_SOUND_PRIME) += oss/
obj-$(CONFIG_DMASOUND) += oss/
obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ sh/ synth/ usb/ \
+#endif /* __SOUND_AVR32_AC97C_H */
--- a/sound/oss/Kconfig
+++ b/sound/oss/Kconfig
+#endif /* __SOUND_AVR32_AC97C_H */
--- a/sound/oss/Kconfig
+++ b/sound/oss/Kconfig
+@@ -654,3 +654,7 @@ config SOUND_SH_DAC_AUDIO_CHANNEL
int "DAC channel"
default "1"
depends on SOUND_SH_DAC_AUDIO
int "DAC channel"
default "1"
depends on SOUND_SH_DAC_AUDIO
+ depends on SOUND_PRIME && AVR32
--- a/sound/oss/Makefile
+++ b/sound/oss/Makefile
+ depends on SOUND_PRIME && AVR32
--- a/sound/oss/Makefile
+++ b/sound/oss/Makefile
+@@ -9,6 +9,7 @@ obj-$(CONFIG_SOUND_OSS) += sound.o
# Please leave it as is, cause the link order is significant !
# Please leave it as is, cause the link order is significant !
+#endif /* __SOUND_OSS_AT32_ABDAC_H__ */
--- a/sound/spi/at73c213.c
+++ b/sound/spi/at73c213.c
+#endif /* __SOUND_OSS_AT32_ABDAC_H__ */
--- a/sound/spi/at73c213.c
+++ b/sound/spi/at73c213.c
+@@ -737,7 +737,7 @@ cleanup:
{
/*
* Continuous clock output.
{
/*
* Continuous clock output.
+@@ -767,7 +767,7 @@ static int snd_at73c213_ssc_init(struct
{
int retval;
unsigned char dac_ctrl = 0;
{
int retval;
unsigned char dac_ctrl = 0;
+@@ -933,7 +933,7 @@ out:
--- a/arch/avr32/boards/atngw100/flash.c
+++ b/arch/avr32/boards/atngw100/flash.c
--- a/arch/avr32/boards/atngw100/flash.c
+++ b/arch/avr32/boards/atngw100/flash.c
+@@ -45,9 +45,14 @@ static struct mtd_partition flash_parts[
.mask_flags = MTD_WRITEABLE,
},
{
.mask_flags = MTD_WRITEABLE,
},
{
BOARDNAME:=Broadcom BCM947xx/953xx
FEATURES:=squashfs usb
BOARDNAME:=Broadcom BCM947xx/953xx
FEATURES:=squashfs usb
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += kmod-switch kmod-diag
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += kmod-switch kmod-diag
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
+@@ -50,8 +50,10 @@ config BCM47XX
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_LITTLE_ENDIAN
select SSB
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_LITTLE_ENDIAN
select SSB
select SSB_PCICORE_HOSTMODE if PCI
select GENERIC_GPIO
select SYS_HAS_EARLY_PRINTK
select SSB_PCICORE_HOSTMODE if PCI
select GENERIC_GPIO
select SYS_HAS_EARLY_PRINTK
+@@ -790,6 +792,7 @@ config CSRC_SB1250
--- a/drivers/mtd/maps/Kconfig
+++ b/drivers/mtd/maps/Kconfig
--- a/drivers/mtd/maps/Kconfig
+++ b/drivers/mtd/maps/Kconfig
+@@ -337,6 +337,12 @@ config MTD_CFI_FLAGADM
Mapping for the Flaga digital module. If you don't have one, ignore
this setting.
Mapping for the Flaga digital module. If you don't have one, ignore
this setting.
depends on MTD_JEDECPROBE && WALNUT && !PPC_MERGE
--- a/drivers/mtd/maps/Makefile
+++ b/drivers/mtd/maps/Makefile
depends on MTD_JEDECPROBE && WALNUT && !PPC_MERGE
--- a/drivers/mtd/maps/Makefile
+++ b/drivers/mtd/maps/Makefile
+@@ -31,6 +31,7 @@ obj-$(CONFIG_MTD_PMC_MSP_RAMROOT)+= pmcm
obj-$(CONFIG_MTD_PCMCIA) += pcmciamtd.o
obj-$(CONFIG_MTD_RPXLITE) += rpxlite.o
obj-$(CONFIG_MTD_TQM8XXL) += tqm8xxl.o
obj-$(CONFIG_MTD_PCMCIA) += pcmciamtd.o
obj-$(CONFIG_MTD_RPXLITE) += rpxlite.o
obj-$(CONFIG_MTD_TQM8XXL) += tqm8xxl.o
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
+@@ -228,7 +228,6 @@ config MIPS_MALTA
select I8259
select MIPS_BOARDS_GEN
select MIPS_BONITO64
select I8259
select MIPS_BOARDS_GEN
select MIPS_BONITO64
select PCI_GT64XXX_PCI0
select MIPS_MSC
select SWAP_IO_SPACE
select PCI_GT64XXX_PCI0
select MIPS_MSC
select SWAP_IO_SPACE
+@@ -1421,13 +1420,6 @@ config IP22_CPU_SCACHE
select BOARD_SCACHE
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
select BOARD_SCACHE
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
+@@ -704,6 +704,8 @@ static inline void cpu_probe_mips(struct
break;
case PRID_IMP_25KF:
c->cputype = CPU_25KF;
break;
case PRID_IMP_25KF:
c->cputype = CPU_25KF;
c->cputype = CPU_34K;
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
c->cputype = CPU_34K;
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
+@@ -1103,7 +1103,6 @@ static void __init loongson2_sc_init(voi
extern int r5k_sc_init(void);
extern int rm7k_sc_init(void);
extern int r5k_sc_init(void);
extern int rm7k_sc_init(void);
static void __cpuinit setup_scache(void)
{
static void __cpuinit setup_scache(void)
{
+@@ -1157,29 +1156,17 @@ static void __cpuinit setup_scache(void)
--- a/arch/mips/mm/Makefile
+++ b/arch/mips/mm/Makefile
--- a/arch/mips/mm/Makefile
+++ b/arch/mips/mm/Makefile
+@@ -32,6 +32,5 @@ obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex-
obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o
obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o
obj-$(CONFIG_RM7000_CPU_SCACHE) += sc-rm7k.o
obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o
obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o
obj-$(CONFIG_RM7000_CPU_SCACHE) += sc-rm7k.o
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
+@@ -51,6 +51,10 @@ NESTED(except_vec1_generic, 0, sp)
NESTED(except_vec3_generic, 0, sp)
.set push
.set noat
NESTED(except_vec3_generic, 0, sp)
.set push
.set noat
/*
* Special Variant of smp_call_function for use by cache functions:
*
/*
* Special Variant of smp_call_function for use by cache functions:
*
+@@ -97,6 +100,9 @@ static void __cpuinit r4k_blast_dcache_p
{
unsigned long dc_lsize = cpu_dcache_line_size();
{
unsigned long dc_lsize = cpu_dcache_line_size();
if (dc_lsize == 0)
r4k_blast_dcache_page = (void *)cache_noop;
else if (dc_lsize == 16)
if (dc_lsize == 0)
r4k_blast_dcache_page = (void *)cache_noop;
else if (dc_lsize == 16)
+@@ -111,6 +117,9 @@ static void __cpuinit r4k_blast_dcache_p
{
unsigned long dc_lsize = cpu_dcache_line_size();
{
unsigned long dc_lsize = cpu_dcache_line_size();
if (dc_lsize == 0)
r4k_blast_dcache_page_indexed = (void *)cache_noop;
else if (dc_lsize == 16)
if (dc_lsize == 0)
r4k_blast_dcache_page_indexed = (void *)cache_noop;
else if (dc_lsize == 16)
+@@ -125,6 +134,9 @@ static void __cpuinit r4k_blast_dcache_s
{
unsigned long dc_lsize = cpu_dcache_line_size();
{
unsigned long dc_lsize = cpu_dcache_line_size();
if (dc_lsize == 0)
r4k_blast_dcache = (void *)cache_noop;
else if (dc_lsize == 16)
if (dc_lsize == 0)
r4k_blast_dcache = (void *)cache_noop;
else if (dc_lsize == 16)
+@@ -630,6 +642,8 @@ static void local_r4k_flush_cache_sigtra
unsigned long addr = (unsigned long) arg;
R4600_HIT_CACHEOP_WAR_IMPL;
unsigned long addr = (unsigned long) arg;
R4600_HIT_CACHEOP_WAR_IMPL;
if (dc_lsize)
protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
if (!cpu_icache_snoops_remote_store && scache_size)
if (dc_lsize)
protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
if (!cpu_icache_snoops_remote_store && scache_size)
+@@ -1215,6 +1229,17 @@ static void __cpuinit coherency_setup(vo
* silly idea of putting something else there ...
*/
switch (current_cpu_type()) {
* silly idea of putting something else there ...
*/
switch (current_cpu_type()) {
case CPU_R4000PC:
case CPU_R4000SC:
case CPU_R4000MC:
case CPU_R4000PC:
case CPU_R4000SC:
case CPU_R4000MC:
+@@ -1254,6 +1279,15 @@ void __cpuinit r4k_cache_init(void)
probe_pcache();
setup_scache();
probe_pcache();
setup_scache();
+@@ -1303,5 +1337,13 @@ void __cpuinit r4k_cache_init(void)
build_clear_page();
build_copy_page();
local_r4k___flush_cache_all(NULL);
build_clear_page();
build_copy_page();
local_r4k___flush_cache_all(NULL);
}
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
}
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
+@@ -677,6 +677,9 @@ static void __cpuinit build_r4000_tlb_re
/* No need for uasm_i_nop */
}
/* No need for uasm_i_nop */
}
#ifdef CONFIG_64BIT
build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */
#else
#ifdef CONFIG_64BIT
build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */
#else
+@@ -1084,6 +1087,9 @@ build_r4000_tlbchange_handler_head(u32 *
struct uasm_reloc **r, unsigned int pte,
unsigned int ptr)
{
struct uasm_reloc **r, unsigned int pte,
unsigned int ptr)
{
/*
* This macro return a properly sign-extended address suitable as base address
* for indexed cache operations. Two issues here:
/*
* This macro return a properly sign-extended address suitable as base address
* for indexed cache operations. Two issues here:
+@@ -150,6 +164,7 @@ static inline void flush_icache_line_ind
static inline void flush_dcache_line_indexed(unsigned long addr)
{
__dflush_prologue
static inline void flush_dcache_line_indexed(unsigned long addr)
{
__dflush_prologue
cache_op(Index_Writeback_Inv_D, addr);
__dflush_epilogue
}
cache_op(Index_Writeback_Inv_D, addr);
__dflush_epilogue
}
+@@ -169,6 +184,7 @@ static inline void flush_icache_line(uns
static inline void flush_dcache_line(unsigned long addr)
{
__dflush_prologue
static inline void flush_dcache_line(unsigned long addr)
{
__dflush_prologue
cache_op(Hit_Writeback_Inv_D, addr);
__dflush_epilogue
}
cache_op(Hit_Writeback_Inv_D, addr);
__dflush_epilogue
}
+@@ -176,6 +192,7 @@ static inline void flush_dcache_line(uns
static inline void invalidate_dcache_line(unsigned long addr)
{
__dflush_prologue
static inline void invalidate_dcache_line(unsigned long addr)
{
__dflush_prologue
cache_op(Hit_Invalidate_D, addr);
__dflush_epilogue
}
cache_op(Hit_Invalidate_D, addr);
__dflush_epilogue
}
+@@ -208,6 +225,7 @@ static inline void flush_scache_line(uns
*/
static inline void protected_flush_icache_line(unsigned long addr)
{
*/
static inline void protected_flush_icache_line(unsigned long addr)
{
protected_cache_op(Hit_Invalidate_I, addr);
}
protected_cache_op(Hit_Invalidate_I, addr);
}
+@@ -219,6 +237,7 @@ static inline void protected_flush_icach
*/
static inline void protected_writeback_dcache_line(unsigned long addr)
{
*/
static inline void protected_writeback_dcache_line(unsigned long addr)
{
protected_cache_op(Hit_Writeback_Inv_D, addr);
}
protected_cache_op(Hit_Writeback_Inv_D, addr);
}
+@@ -339,8 +358,52 @@ static inline void invalidate_tcache_pag
: "r" (base), \
"i" (op));
: "r" (base), \
"i" (op));
static inline void blast_##pfx##cache##lsize(void) \
{ \
unsigned long start = INDEX_BASE; \
static inline void blast_##pfx##cache##lsize(void) \
{ \
unsigned long start = INDEX_BASE; \
+@@ -352,6 +415,7 @@ static inline void blast_##pfx##cache##l
\
__##pfx##flush_prologue \
\
\
__##pfx##flush_prologue \
\
for (ws = 0; ws < ws_end; ws += ws_inc) \
for (addr = start; addr < end; addr += lsize * 32) \
cache##lsize##_unroll32(addr|ws, indexop); \
for (ws = 0; ws < ws_end; ws += ws_inc) \
for (addr = start; addr < end; addr += lsize * 32) \
cache##lsize##_unroll32(addr|ws, indexop); \
+@@ -366,6 +430,7 @@ static inline void blast_##pfx##cache##l
\
__##pfx##flush_prologue \
\
\
__##pfx##flush_prologue \
\
do { \
cache##lsize##_unroll32(start, hitop); \
start += lsize * 32; \
do { \
cache##lsize##_unroll32(start, hitop); \
start += lsize * 32; \
+@@ -384,6 +449,8 @@ static inline void blast_##pfx##cache##l
current_cpu_data.desc.waybit; \
unsigned long ws, addr; \
\
current_cpu_data.desc.waybit; \
unsigned long ws, addr; \
\
__##pfx##flush_prologue \
\
for (ws = 0; ws < ws_end; ws += ws_inc) \
__##pfx##flush_prologue \
\
for (ws = 0; ws < ws_end; ws += ws_inc) \
+@@ -393,35 +460,37 @@ static inline void blast_##pfx##cache##l
__##pfx##flush_epilogue \
}
__##pfx##flush_epilogue \
}
prot##cache_op(hitop, addr); \
if (addr == aend) \
break; \
prot##cache_op(hitop, addr); \
if (addr == aend) \
break; \
+@@ -431,13 +500,13 @@ static inline void prot##blast_##pfx##ca
__##pfx##flush_epilogue \
}
__##pfx##flush_epilogue \
}
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
+@@ -211,7 +211,7 @@ void copy_user_highpage(struct page *to,
void *vfrom, *vto;
vto = kmap_atomic(to, KM_USER1);
void *vfrom, *vto;
vto = kmap_atomic(to, KM_USER1);
page_mapped(from) && !Page_dcache_dirty(from)) {
vfrom = kmap_coherent(from, vaddr);
copy_page(vto, vfrom);
page_mapped(from) && !Page_dcache_dirty(from)) {
vfrom = kmap_coherent(from, vaddr);
copy_page(vto, vfrom);
+@@ -235,7 +235,7 @@ void copy_to_user_page(struct vm_area_st
struct page *page, unsigned long vaddr, void *dst, const void *src,
unsigned long len)
{
struct page *page, unsigned long vaddr, void *dst, const void *src,
unsigned long len)
{
page_mapped(page) && !Page_dcache_dirty(page)) {
void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
memcpy(vto, src, len);
page_mapped(page) && !Page_dcache_dirty(page)) {
void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
memcpy(vto, src, len);
+@@ -255,7 +255,7 @@ void copy_from_user_page(struct vm_area_
struct page *page, unsigned long vaddr, void *dst, const void *src,
unsigned long len)
{
struct page *page, unsigned long vaddr, void *dst, const void *src,
unsigned long len)
{
* I-Cache snoops remote store. This only matters on SMP. Some multiprocessors
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
* I-Cache snoops remote store. This only matters on SMP. Some multiprocessors
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
+@@ -484,7 +484,7 @@ static inline void local_r4k_flush_cache
* Use kmap_coherent or kmap_atomic to do flushes for
* another ASID than the current one.
*/
* Use kmap_coherent or kmap_atomic to do flushes for
* another ASID than the current one.
*/
vaddr = kmap_coherent(page, addr);
else
vaddr = kmap_atomic(page, KM_USER0);
vaddr = kmap_coherent(page, addr);
else
vaddr = kmap_atomic(page, KM_USER0);
+@@ -505,7 +505,7 @@ static inline void local_r4k_flush_cache
-Index: linux-2.6.25.17/drivers/net/b44.c
-===================================================================
---- linux-2.6.25.17.orig/drivers/net/b44.c 2008-10-16 23:13:19.000000000 +0200
-+++ linux-2.6.25.17/drivers/net/b44.c 2008-11-02 12:13:38.000000000 +0100
+--- a/drivers/net/b44.c
++++ b/drivers/net/b44.c
@@ -339,7 +339,7 @@ static int b44_phy_reset(struct b44 *bp)
}
}
@@ -339,7 +339,7 @@ static int b44_phy_reset(struct b44 *bp)
}
}
--- a/drivers/ssb/driver_chipcommon.c
+++ b/drivers/ssb/driver_chipcommon.c
--- a/drivers/ssb/driver_chipcommon.c
+++ b/drivers/ssb/driver_chipcommon.c
+@@ -270,6 +270,8 @@ void ssb_chipco_resume(struct ssb_chipco
void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
u32 *plltype, u32 *n, u32 *m)
{
void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
u32 *plltype, u32 *n, u32 *m)
{
*n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
*plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
switch (*plltype) {
*n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
*plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
switch (*plltype) {
+@@ -293,6 +295,8 @@ void ssb_chipco_get_clockcpu(struct ssb_
void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
u32 *plltype, u32 *n, u32 *m)
{
void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
u32 *plltype, u32 *n, u32 *m)
{
switch (*plltype) {
--- a/drivers/ssb/driver_mipscore.c
+++ b/drivers/ssb/driver_mipscore.c
switch (*plltype) {
--- a/drivers/ssb/driver_mipscore.c
+++ b/drivers/ssb/driver_mipscore.c
+@@ -161,6 +161,8 @@ u32 ssb_cpu_clock(struct ssb_mipscore *m
if ((pll_type == SSB_PLLTYPE_5) || (bus->chip_id == 0x5365)) {
rate = 200000000;
if ((pll_type == SSB_PLLTYPE_5) || (bus->chip_id == 0x5365)) {
rate = 200000000;
}
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
}
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
+@@ -867,6 +867,8 @@ u32 ssb_clockspeed(struct ssb_bus *bus)
if (bus->chip_id == 0x5365) {
rate = 100000000;
if (bus->chip_id == 0x5365) {
rate = 100000000;
--- a/drivers/usb/host/ohci-ssb.c
+++ b/drivers/usb/host/ohci-ssb.c
--- a/drivers/usb/host/ohci-ssb.c
+++ b/drivers/usb/host/ohci-ssb.c
+@@ -142,10 +142,59 @@ static int ssb_ohci_attach(struct ssb_de
int err = -ENOMEM;
u32 tmp, flags = 0;
int err = -ENOMEM;
u32 tmp, flags = 0;
hcd = usb_create_hcd(&ssb_ohci_hc_driver, dev->dev,
dev->dev->bus_id);
hcd = usb_create_hcd(&ssb_ohci_hc_driver, dev->dev,
dev->dev->bus_id);
+@@ -236,6 +285,7 @@ static int ssb_ohci_resume(struct ssb_de
static const struct ssb_device_id ssb_ohci_table[] = {
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOSTDEV, SSB_ANY_REV),
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOST, SSB_ANY_REV),
static const struct ssb_device_id ssb_ohci_table[] = {
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOSTDEV, SSB_ANY_REV),
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOST, SSB_ANY_REV),
--- a/drivers/usb/host/ohci-ssb.c
+++ b/drivers/usb/host/ohci-ssb.c
--- a/drivers/usb/host/ohci-ssb.c
+++ b/drivers/usb/host/ohci-ssb.c
+@@ -195,6 +195,11 @@ static int ssb_ohci_attach(struct ssb_de
else
ssb_device_enable(dev, 0);
else
ssb_device_enable(dev, 0);
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
+@@ -205,32 +205,6 @@ void kunmap_coherent(void)
preempt_check_resched();
}
preempt_check_resched();
}
+@@ -64,13 +65,16 @@ static inline void clear_user_page(void
flush_data_cache_page((unsigned long)addr);
}
flush_data_cache_page((unsigned long)addr);
}
void plat_irq_dispatch(void)
{
u32 cause;
void plat_irq_dispatch(void)
{
u32 cause;
+@@ -53,3 +63,19 @@ void __init arch_init_irq(void)
+@@ -50,12 +79,13 @@ static void bcm47xx_machine_halt(void)
{
/* Disable interrupts and watchdog and spin forever */
local_irq_disable();
{
/* Disable interrupts and watchdog and spin forever */
local_irq_disable();
+@@ -72,52 +102,141 @@ static void str2eaddr(char *str, char *d
static char nvram_buf[NVRAM_SPACE];
static int cfe_env;
static char nvram_buf[NVRAM_SPACE];
static int cfe_env;
+@@ -36,7 +36,7 @@ extern char *cfe_env_get(char *nv_buf, c
/* Probe for NVRAM header */
static void __init early_nvram_init(void)
{
/* Probe for NVRAM header */
static void __init early_nvram_init(void)
{
+obj-y := cfe_env.o gpio.o irq.o nvram.o prom.o serial.o setup.o time.o wgt634u.o
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
+obj-y := cfe_env.o gpio.o irq.o nvram.o prom.o serial.o setup.o time.o wgt634u.o
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
+@@ -54,6 +54,7 @@ config BCM47XX
select SSB_DRIVER_MIPS
select SSB_DRIVER_EXTIF
select SSB_DRIVER_PCICORE
select SSB_DRIVER_MIPS
select SSB_DRIVER_EXTIF
select SSB_DRIVER_PCICORE
--- a/scripts/gen_initramfs_list.sh
+++ b/scripts/gen_initramfs_list.sh
--- a/scripts/gen_initramfs_list.sh
+++ b/scripts/gen_initramfs_list.sh
+@@ -287,7 +287,7 @@ if [ ! -z ${output_file} ]; then
if [ "${is_cpio_compressed}" = "compressed" ]; then
cat ${cpio_tfile} > ${output_file}
else
if [ "${is_cpio_compressed}" = "compressed" ]; then
cat ${cpio_tfile} > ${output_file}
else
fi
--- a/init/initramfs.c
+++ b/init/initramfs.c
fi
--- a/init/initramfs.c
+++ b/init/initramfs.c
+@@ -441,6 +441,69 @@ static void __init flush_window(void)
static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only)
{
int written;
static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only)
{
int written;
+@@ -475,12 +538,28 @@ static char * __init unpack_to_rootfs(ch
inptr = 0;
outcnt = 0; /* bytes in output buffer */
bytes_out = 0;
inptr = 0;
outcnt = 0; /* bytes in output buffer */
bytes_out = 0;
--mb
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
--mb
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
+@@ -182,12 +182,10 @@ static int pcibios_enable_resources(stru
if ((idx == PCI_ROM_RESOURCE) &&
(!(r->flags & IORESOURCE_ROM_ENABLE)))
continue;
if ((idx == PCI_ROM_RESOURCE) &&
(!(r->flags & IORESOURCE_ROM_ENABLE)))
continue;
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
+@@ -1173,7 +1173,9 @@ static int __init ssb_modinit(void)
/* ssb must be initialized after PCI but before the ssb drivers.
* That means we must use some initcall between subsys_initcall
* and device_initcall. */
/* ssb must be initialized after PCI but before the ssb drivers.
* That means we must use some initcall between subsys_initcall
* and device_initcall. */
--- a/drivers/ssb/driver_pcicore.c
+++ b/drivers/ssb/driver_pcicore.c
--- a/drivers/ssb/driver_pcicore.c
+++ b/drivers/ssb/driver_pcicore.c
+@@ -519,6 +519,13 @@ int ssb_pcicore_dev_irqvecs_enable(struc
Add support for 8bit reads/writes to SSB.
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
Add support for 8bit reads/writes to SSB.
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
+@@ -508,6 +508,14 @@ error:
static u16 ssb_ssb_read16(struct ssb_device *dev, u16 offset)
{
struct ssb_bus *bus = dev->bus;
static u16 ssb_ssb_read16(struct ssb_device *dev, u16 offset)
{
struct ssb_bus *bus = dev->bus;
+@@ -524,6 +532,14 @@ static u32 ssb_ssb_read32(struct ssb_dev
return readl(bus->mmio + offset);
}
return readl(bus->mmio + offset);
}
static void ssb_ssb_write16(struct ssb_device *dev, u16 offset, u16 value)
{
struct ssb_bus *bus = dev->bus;
static void ssb_ssb_write16(struct ssb_device *dev, u16 offset, u16 value)
{
struct ssb_bus *bus = dev->bus;
+@@ -542,8 +558,10 @@ static void ssb_ssb_write32(struct ssb_d
/* Ops for the plain SSB bus without a host-device (no PCI or PCMCIA). */
static const struct ssb_bus_ops ssb_ssb_ops = {
/* Ops for the plain SSB bus without a host-device (no PCI or PCMCIA). */
static const struct ssb_bus_ops ssb_ssb_ops = {
};
--- a/drivers/ssb/pci.c
+++ b/drivers/ssb/pci.c
};
--- a/drivers/ssb/pci.c
+++ b/drivers/ssb/pci.c
+@@ -577,6 +577,19 @@ static inline int ssb_pci_assert_buspowe
static u16 ssb_pci_read16(struct ssb_device *dev, u16 offset)
{
struct ssb_bus *bus = dev->bus;
static u16 ssb_pci_read16(struct ssb_device *dev, u16 offset)
{
struct ssb_bus *bus = dev->bus;
+@@ -603,6 +616,19 @@ static u32 ssb_pci_read32(struct ssb_dev
return ioread32(bus->mmio + offset);
}
return ioread32(bus->mmio + offset);
}
static void ssb_pci_write16(struct ssb_device *dev, u16 offset, u16 value)
{
struct ssb_bus *bus = dev->bus;
static void ssb_pci_write16(struct ssb_device *dev, u16 offset, u16 value)
{
struct ssb_bus *bus = dev->bus;
+@@ -631,8 +657,10 @@ static void ssb_pci_write32(struct ssb_d
/* Not "static", as it's used in main.c */
const struct ssb_bus_ops ssb_pci_ops = {
/* Not "static", as it's used in main.c */
const struct ssb_bus_ops ssb_pci_ops = {
};
--- a/drivers/ssb/pcmcia.c
+++ b/drivers/ssb/pcmcia.c
};
--- a/drivers/ssb/pcmcia.c
+++ b/drivers/ssb/pcmcia.c
+@@ -172,6 +172,22 @@ static int select_core_and_segment(struc
static u16 ssb_pcmcia_read16(struct ssb_device *dev, u16 offset)
{
struct ssb_bus *bus = dev->bus;
static u16 ssb_pcmcia_read16(struct ssb_device *dev, u16 offset)
{
struct ssb_bus *bus = dev->bus;
+@@ -206,6 +222,20 @@ static u32 ssb_pcmcia_read32(struct ssb_
return (lo | (hi << 16));
}
return (lo | (hi << 16));
}
static void ssb_pcmcia_write16(struct ssb_device *dev, u16 offset, u16 value)
{
struct ssb_bus *bus = dev->bus;
static void ssb_pcmcia_write16(struct ssb_device *dev, u16 offset, u16 value)
{
struct ssb_bus *bus = dev->bus;
+@@ -238,8 +268,10 @@ static void ssb_pcmcia_write32(struct ss
/* Not "static", as it's used in main.c */
const struct ssb_bus_ops ssb_pcmcia_ops = {
/* Not "static", as it's used in main.c */
const struct ssb_bus_ops ssb_pcmcia_ops = {
};
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
};
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
+@@ -72,8 +72,10 @@ struct ssb_device;
/* Lowlevel read/write operations on the device MMIO.
* Internal, don't use that outside of ssb. */
struct ssb_bus_ops {
/* Lowlevel read/write operations on the device MMIO.
* Internal, don't use that outside of ssb. */
struct ssb_bus_ops {
void (*write16)(struct ssb_device *dev, u16 offset, u16 value);
void (*write32)(struct ssb_device *dev, u16 offset, u32 value);
};
void (*write16)(struct ssb_device *dev, u16 offset, u16 value);
void (*write32)(struct ssb_device *dev, u16 offset, u32 value);
};
+@@ -348,6 +350,10 @@ void ssb_device_disable(struct ssb_devic
/* Device MMIO register read/write functions. */
/* Device MMIO register read/write functions. */
static inline u16 ssb_read16(struct ssb_device *dev, u16 offset)
{
return dev->ops->read16(dev, offset);
static inline u16 ssb_read16(struct ssb_device *dev, u16 offset)
{
return dev->ops->read16(dev, offset);
+@@ -356,6 +362,10 @@ static inline u32 ssb_read32(struct ssb_
{
return dev->ops->read32(dev, offset);
}
{
return dev->ops->read32(dev, offset);
}
#define PCI_ASSIGN_ALL_BUSSES 1
unsigned int pci_probe = PCI_ASSIGN_ALL_BUSSES;
#define PCI_ASSIGN_ALL_BUSSES 1
unsigned int pci_probe = PCI_ASSIGN_ALL_BUSSES;
+@@ -75,8 +86,32 @@ pcibios_align_resource(void *data, struc
if (request_resource(&iomem_resource, hose->mem_resource) < 0)
goto out;
if (request_resource(&ioport_resource, hose->io_resource) < 0) {
if (request_resource(&iomem_resource, hose->mem_resource) < 0)
goto out;
if (request_resource(&ioport_resource, hose->io_resource) < 0) {
+@@ -84,9 +119,6 @@ void __devinit register_pci_controller(s
/*
* Do not panic here but later - this might hapen before console init.
*/
/*
* Do not panic here but later - this might hapen before console init.
*/
+@@ -94,41 +126,47 @@ void __devinit register_pci_controller(s
printk(KERN_WARNING
"registering PCI controller with io_map_base unset\n");
}
printk(KERN_WARNING
"registering PCI controller with io_map_base unset\n");
}
/* Scan all of the recorded PCI controllers. */
for (next_busno = 0, hose = hose_head; hose; hose = hose->next) {
/* Scan all of the recorded PCI controllers. */
for (next_busno = 0, hose = hose_head; hose; hose = hose->next) {
+@@ -157,6 +195,7 @@ static int __init pcibios_init(void)
if (!pci_probe_only)
pci_assign_unassigned_resources();
pci_fixup_irqs(common_swizzle, pcibios_map_irq);
if (!pci_probe_only)
pci_assign_unassigned_resources();
pci_fixup_irqs(common_swizzle, pcibios_map_irq);
}
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
}
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
+@@ -1191,9 +1191,7 @@ static int __init ssb_modinit(void)
/* ssb must be initialized after PCI but before the ssb drivers.
* That means we must use some initcall between subsys_initcall
* and device_initcall. */
/* ssb must be initialized after PCI but before the ssb drivers.
* That means we must use some initcall between subsys_initcall
* and device_initcall. */
--- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig
--- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig
+@@ -125,4 +125,13 @@ config SSB_DRIVER_EXTIF
endmenu
--- a/drivers/ssb/Makefile
+++ b/drivers/ssb/Makefile
endmenu
--- a/drivers/ssb/Makefile
+++ b/drivers/ssb/Makefile
+@@ -11,6 +11,7 @@ ssb-y += driver_chipcommon.o
ssb-$(CONFIG_SSB_DRIVER_MIPS) += driver_mipscore.o
ssb-$(CONFIG_SSB_DRIVER_EXTIF) += driver_extif.o
ssb-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o
ssb-$(CONFIG_SSB_DRIVER_MIPS) += driver_mipscore.o
ssb-$(CONFIG_SSB_DRIVER_EXTIF) += driver_extif.o
ssb-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o
+#endif /* LINUX_SSB_DRIVER_GIGE_H_ */
--- a/drivers/ssb/driver_pcicore.c
+++ b/drivers/ssb/driver_pcicore.c
+#endif /* LINUX_SSB_DRIVER_GIGE_H_ */
--- a/drivers/ssb/driver_pcicore.c
+++ b/drivers/ssb/driver_pcicore.c
+@@ -60,78 +60,6 @@ static DEFINE_SPINLOCK(cfgspace_lock);
/* Core to access the external PCI config space. Can only have one. */
static struct ssb_pcicore *extpci_core;
/* Core to access the external PCI config space. Can only have one. */
static struct ssb_pcicore *extpci_core;
static u32 get_cfgspace_addr(struct ssb_pcicore *pc,
unsigned int bus, unsigned int dev,
unsigned int func, unsigned int off)
static u32 get_cfgspace_addr(struct ssb_pcicore *pc,
unsigned int bus, unsigned int dev,
unsigned int func, unsigned int off)
+@@ -320,6 +248,95 @@ static struct pci_controller ssb_pcicore
.mem_offset = 0x24000000,
};
.mem_offset = 0x24000000,
};
+@@ -130,3 +133,90 @@ u32 ssb_gpio_polarity(struct ssb_bus *bu
return res;
}
EXPORT_SYMBOL(ssb_gpio_polarity);
return res;
}
EXPORT_SYMBOL(ssb_gpio_polarity);
+}
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
+}
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
+@@ -426,5 +426,12 @@ extern int ssb_bus_powerup(struct ssb_bu
extern u32 ssb_admatch_base(u32 adm);
extern u32 ssb_admatch_size(u32 adm);
extern u32 ssb_admatch_base(u32 adm);
extern u32 ssb_admatch_size(u32 adm);
#ifdef CONFIG_SSB_DRIVER_PCICORE
/* PCI core registers. */
#ifdef CONFIG_SSB_DRIVER_PCICORE
/* PCI core registers. */
+@@ -88,6 +93,9 @@ extern void ssb_pcicore_init(struct ssb_
extern int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
struct ssb_device *dev);
extern int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
struct ssb_device *dev);
#else /* CONFIG_SSB_DRIVER_PCICORE */
#else /* CONFIG_SSB_DRIVER_PCICORE */
+@@ -107,5 +115,16 @@ int ssb_pcicore_dev_irqvecs_enable(struc
#include <linux/dma-mapping.h>
#include <linux/pci.h>
#include <linux/dma-mapping.h>
#include <linux/pci.h>
+@@ -68,6 +69,25 @@ found:
}
#endif /* CONFIG_SSB_PCIHOST */
}
#endif /* CONFIG_SSB_PCIHOST */
static struct ssb_device *ssb_device_get(struct ssb_device *dev)
{
if (dev)
static struct ssb_device *ssb_device_get(struct ssb_device *dev)
{
if (dev)
+@@ -1181,7 +1201,14 @@ static int __init ssb_modinit(void)
err = b43_pci_ssb_bridge_init();
if (err) {
ssb_printk(KERN_ERR "Broadcom 43xx PCI-SSB-bridge "
err = b43_pci_ssb_bridge_init();
if (err) {
ssb_printk(KERN_ERR "Broadcom 43xx PCI-SSB-bridge "
/* don't fail SSB init because of this */
err = 0;
}
/* don't fail SSB init because of this */
err = 0;
}
+@@ -1195,6 +1222,7 @@ fs_initcall(ssb_modinit);
static void __exit ssb_modexit(void)
{
static void __exit ssb_modexit(void)
{
}
--- a/drivers/ssb/ssb_private.h
+++ b/drivers/ssb/ssb_private.h
}
--- a/drivers/ssb/ssb_private.h
+++ b/drivers/ssb/ssb_private.h
+@@ -118,6 +118,8 @@ extern u32 ssb_calc_clock_rate(u32 pllty
extern int ssb_devices_freeze(struct ssb_bus *bus);
extern int ssb_devices_thaw(struct ssb_bus *bus);
extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
extern int ssb_devices_freeze(struct ssb_bus *bus);
extern int ssb_devices_thaw(struct ssb_bus *bus);
extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
#include <net/checksum.h>
#include <net/ip.h>
#include <net/checksum.h>
#include <net/ip.h>
+@@ -425,8 +426,9 @@ static void _tw32_flush(struct tg3 *tp,
static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val)
{
tp->write32_mbox(tp, off, val);
static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val)
{
tp->write32_mbox(tp, off, val);
tp->read32_mbox(tp, off);
}
tp->read32_mbox(tp, off);
}
+@@ -706,7 +708,7 @@ static void tg3_switch_clocks(struct tg3
#define PHY_BUSY_LOOPS 5000
#define PHY_BUSY_LOOPS 5000
{
u32 frame_val;
unsigned int loops;
{
u32 frame_val;
unsigned int loops;
+@@ -720,7 +722,7 @@ static int tg3_readphy(struct tg3 *tp, i
MI_COM_PHY_ADDR_MASK);
frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
MI_COM_REG_ADDR_MASK);
MI_COM_PHY_ADDR_MASK);
frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
MI_COM_REG_ADDR_MASK);
+@@ -755,7 +757,12 @@ static int tg3_readphy(struct tg3 *tp, i
{
u32 frame_val;
unsigned int loops;
{
u32 frame_val;
unsigned int loops;
+@@ -771,7 +778,7 @@ static int tg3_writephy(struct tg3 *tp,
MI_COM_PHY_ADDR_MASK);
frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
MI_COM_REG_ADDR_MASK);
MI_COM_PHY_ADDR_MASK);
frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
MI_COM_REG_ADDR_MASK);
+@@ -804,6 +811,11 @@ static int tg3_writephy(struct tg3 *tp,
static void tg3_phydsp_write(struct tg3 *tp, u32 reg, u32 val)
{
tg3_writephy(tp, MII_TG3_DSP_ADDRESS, reg);
static void tg3_phydsp_write(struct tg3 *tp, u32 reg, u32 val)
{
tg3_writephy(tp, MII_TG3_DSP_ADDRESS, reg);
+@@ -2250,6 +2262,14 @@ static int tg3_setup_copper_phy(struct t
if (current_link_up == 1 &&
tp->link_config.active_duplex == DUPLEX_FULL)
tg3_setup_flow_control(tp, lcl_adv, rmt_adv);
if (current_link_up == 1 &&
tp->link_config.active_duplex == DUPLEX_FULL)
tg3_setup_flow_control(tp, lcl_adv, rmt_adv);
+@@ -5197,6 +5217,11 @@ static int tg3_poll_fw(struct tg3 *tp)
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
/* Wait up to 20ms for init done. */
for (i = 0; i < 200; i++) {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
/* Wait up to 20ms for init done. */
for (i = 0; i < 200; i++) {
+@@ -5435,6 +5460,14 @@ static int tg3_chip_reset(struct tg3 *tp
tw32(GRC_MODE, tp->grc_mode);
if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) {
tw32(GRC_MODE, tp->grc_mode);
if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) {
+@@ -5704,9 +5737,12 @@ static int tg3_halt_cpu(struct tg3 *tp,
+@@ -5787,6 +5823,11 @@ static int tg3_load_5701_a0_firmware_fix
struct fw_info info;
int err, i;
struct fw_info info;
int err, i;
info.text_base = TG3_FW_TEXT_ADDR;
info.text_len = TG3_FW_TEXT_LEN;
info.text_data = &tg3FwText[0];
info.text_base = TG3_FW_TEXT_ADDR;
info.text_len = TG3_FW_TEXT_LEN;
info.text_data = &tg3FwText[0];
+@@ -6345,6 +6386,11 @@ static int tg3_load_tso_firmware(struct
unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
int err, i;
unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
int err, i;
if (tp->tg3_flags2 & TG3_FLG2_HW_TSO)
return 0;
if (tp->tg3_flags2 & TG3_FLG2_HW_TSO)
return 0;
+@@ -7306,6 +7352,11 @@ static void tg3_timer(unsigned long __op
if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) {
/* All of this garbage is because when using non-tagged
* IRQ status the mailbox/status_block protocol the chip
if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) {
/* All of this garbage is because when using non-tagged
* IRQ status the mailbox/status_block protocol the chip
+@@ -8906,6 +8957,11 @@ static int tg3_test_nvram(struct tg3 *tp
__le32 *buf;
int i, j, k, err = 0, size;
__le32 *buf;
int i, j, k, err = 0, size;
if (tg3_nvram_read_swab(tp, 0, &magic) != 0)
return -EIO;
if (tg3_nvram_read_swab(tp, 0, &magic) != 0)
return -EIO;
+@@ -9689,7 +9745,7 @@ static int tg3_ioctl(struct net_device *
return -EAGAIN;
spin_lock_bh(&tp->lock);
return -EAGAIN;
spin_lock_bh(&tp->lock);
spin_unlock_bh(&tp->lock);
data->val_out = mii_regval;
spin_unlock_bh(&tp->lock);
data->val_out = mii_regval;
+@@ -9708,7 +9764,7 @@ static int tg3_ioctl(struct net_device *
return -EAGAIN;
spin_lock_bh(&tp->lock);
return -EAGAIN;
spin_lock_bh(&tp->lock);
spin_unlock_bh(&tp->lock);
return err;
spin_unlock_bh(&tp->lock);
return err;
-@@ -10177,6 +10233,12 @@
+@@ -10177,6 +10233,12 @@ static void __devinit tg3_get_5906_nvram
/* Chips other than 5700/5701 use the NVRAM for fetching info. */
static void __devinit tg3_nvram_init(struct tg3 *tp)
{
/* Chips other than 5700/5701 use the NVRAM for fetching info. */
static void __devinit tg3_nvram_init(struct tg3 *tp)
{
tw32_f(GRC_EEPROM_ADDR,
(EEPROM_ADDR_FSM_RESET |
(EEPROM_DEFAULT_CLOCK_PERIOD <<
tw32_f(GRC_EEPROM_ADDR,
(EEPROM_ADDR_FSM_RESET |
(EEPROM_DEFAULT_CLOCK_PERIOD <<
+@@ -10317,6 +10379,9 @@ static int tg3_nvram_read(struct tg3 *tp
if (!(tp->tg3_flags & TG3_FLAG_NVRAM))
return tg3_nvram_read_using_eeprom(tp, offset, val);
if (!(tp->tg3_flags & TG3_FLAG_NVRAM))
return tg3_nvram_read_using_eeprom(tp, offset, val);
+@@ -10563,6 +10628,9 @@ static int tg3_nvram_write_block(struct
if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) {
tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl &
~GRC_LCLCTRL_GPIO_OUTPUT1);
if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) {
tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl &
~GRC_LCLCTRL_GPIO_OUTPUT1);
+@@ -11610,7 +11678,6 @@ static int __devinit tg3_get_invariants(
tp->write32 = tg3_write_flush_reg32;
}
tp->write32 = tg3_write_flush_reg32;
}
if ((tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) ||
(tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)) {
tp->write32_tx_mbox = tg3_write32_tx_mbox;
if ((tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) ||
(tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)) {
tp->write32_tx_mbox = tg3_write32_tx_mbox;
-@@ -11646,6 +11713,11 @@
+@@ -11646,6 +11713,11 @@ static int __devinit tg3_get_invariants(
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)))
tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG;
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)))
tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG;
/* Get eeprom hw config before calling tg3_set_power_state().
* In particular, the TG3_FLG2_IS_NIC flag must be
* determined before calling tg3_set_power_state() so that
/* Get eeprom hw config before calling tg3_set_power_state().
* In particular, the TG3_FLG2_IS_NIC flag must be
* determined before calling tg3_set_power_state() so that
-@@ -12017,6 +12089,10 @@
+@@ -12017,6 +12089,10 @@ static int __devinit tg3_get_device_addr
}
if (!is_valid_ether_addr(&dev->dev_addr[0])) {
}
if (!is_valid_ether_addr(&dev->dev_addr[0])) {
#ifdef CONFIG_SPARC
if (!tg3_get_default_macaddr_sparc(tp))
return 0;
#ifdef CONFIG_SPARC
if (!tg3_get_default_macaddr_sparc(tp))
return 0;
+@@ -12508,6 +12584,7 @@ static char * __devinit tg3_phy_string(s
case PHY_ID_BCM5704: return "5704";
case PHY_ID_BCM5705: return "5705";
case PHY_ID_BCM5750: return "5750";
case PHY_ID_BCM5704: return "5704";
case PHY_ID_BCM5705: return "5705";
case PHY_ID_BCM5750: return "5750";
case PHY_ID_BCM5752: return "5752";
case PHY_ID_BCM5714: return "5714";
case PHY_ID_BCM5780: return "5780";
case PHY_ID_BCM5752: return "5752";
case PHY_ID_BCM5714: return "5714";
case PHY_ID_BCM5780: return "5780";
-@@ -12695,6 +12772,13 @@
+@@ -12695,6 +12772,13 @@ static int __devinit tg3_init_one(struct
tp->msg_enable = tg3_debug;
else
tp->msg_enable = TG3_DEF_MSG_ENABLE;
tp->msg_enable = tg3_debug;
else
tp->msg_enable = TG3_DEF_MSG_ENABLE;
* swapping. DMA data byte swapping is controlled in the GRC_MODE
--- a/drivers/net/tg3.h
+++ b/drivers/net/tg3.h
* swapping. DMA data byte swapping is controlled in the GRC_MODE
--- a/drivers/net/tg3.h
+++ b/drivers/net/tg3.h
+@@ -2477,6 +2477,9 @@ struct tg3 {
#define TG3_FLG3_ENABLE_APE 0x00000002
#define TG3_FLG3_5761_5784_AX_FIXES 0x00000004
#define TG3_FLG3_5701_DMA_BUG 0x00000008
#define TG3_FLG3_ENABLE_APE 0x00000002
#define TG3_FLG3_5761_5784_AX_FIXES 0x00000004
#define TG3_FLG3_5701_DMA_BUG 0x00000008
struct timer_list timer;
u16 timer_counter;
struct timer_list timer;
u16 timer_counter;
+@@ -2532,6 +2535,7 @@ struct tg3 {
#define PHY_ID_BCM5714 0x60008340
#define PHY_ID_BCM5780 0x60008350
#define PHY_ID_BCM5755 0xbc050cc0
#define PHY_ID_BCM5714 0x60008340
#define PHY_ID_BCM5780 0x60008350
#define PHY_ID_BCM5755 0xbc050cc0
#define PHY_ID_BCM5787 0xbc050ce0
#define PHY_ID_BCM5756 0xbc050ed0
#define PHY_ID_BCM5784 0xbc050fa0
#define PHY_ID_BCM5787 0xbc050ce0
#define PHY_ID_BCM5756 0xbc050ed0
#define PHY_ID_BCM5784 0xbc050fa0
+@@ -2568,7 +2572,7 @@ struct tg3 {
(X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \
(X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \
(X) == PHY_ID_BCM5906 || (X) == PHY_ID_BCM5761 || \
(X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \
(X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \
(X) == PHY_ID_BCM5906 || (X) == PHY_ID_BCM5761 || \
dma_addr_t stats_mapping;
--- a/drivers/ssb/driver_mipscore.c
+++ b/drivers/ssb/driver_mipscore.c
dma_addr_t stats_mapping;
--- a/drivers/ssb/driver_mipscore.c
+++ b/drivers/ssb/driver_mipscore.c
+@@ -212,6 +212,7 @@ void ssb_mipscore_init(struct ssb_mipsco
/* fallthrough */
case SSB_DEV_PCI:
case SSB_DEV_ETHERNET:
/* fallthrough */
case SSB_DEV_PCI:
case SSB_DEV_ETHERNET:
Add gpio_is_valid() for bcm47xx
--- a/arch/mips/bcm47xx/gpio.c
+++ b/arch/mips/bcm47xx/gpio.c
Add gpio_is_valid() for bcm47xx
--- a/arch/mips/bcm47xx/gpio.c
+++ b/arch/mips/bcm47xx/gpio.c
+@@ -77,3 +77,15 @@ int bcm47xx_gpio_direction_output(unsign
}
EXPORT_SYMBOL_GPL(bcm47xx_gpio_direction_output);
}
EXPORT_SYMBOL_GPL(bcm47xx_gpio_direction_output);
+EXPORT_SYMBOL_GPL(bcm47xx_gpio_is_valid);
--- a/include/asm-mips/mach-bcm47xx/gpio.h
+++ b/include/asm-mips/mach-bcm47xx/gpio.h
+EXPORT_SYMBOL_GPL(bcm47xx_gpio_is_valid);
--- a/include/asm-mips/mach-bcm47xx/gpio.h
+++ b/include/asm-mips/mach-bcm47xx/gpio.h
+@@ -17,6 +17,7 @@ extern int bcm47xx_gpio_get_value(unsign
extern void bcm47xx_gpio_set_value(unsigned gpio, int value);
extern int bcm47xx_gpio_direction_input(unsigned gpio);
extern int bcm47xx_gpio_direction_output(unsigned gpio, int value);
extern void bcm47xx_gpio_set_value(unsigned gpio, int value);
extern int bcm47xx_gpio_direction_input(unsigned gpio);
extern int bcm47xx_gpio_direction_output(unsigned gpio, int value);
static inline int gpio_request(unsigned gpio, const char *label)
{
static inline int gpio_request(unsigned gpio, const char *label)
{
+@@ -52,6 +53,8 @@ static inline int gpio_direction_output(
return bcm47xx_gpio_direction_output(gpio, value);
}
return bcm47xx_gpio_direction_output(gpio, value);
}
const char *get_system_type(void)
{
const char *get_system_type(void)
{
+@@ -40,65 +41,40 @@ const char *get_system_type(void)
void prom_putchar(char c)
{
void prom_putchar(char c)
{
+@@ -146,9 +122,12 @@ static __init void prom_init_mem(void)
void __init prom_init(void)
{
void __init prom_init(void)
{
BOARD:=etrax
BOARDNAME:=Foxboard (ETRAX 100LX)
FEATURES:=squashfs jffs2 broken
BOARD:=etrax
BOARDNAME:=Foxboard (ETRAX 100LX)
FEATURES:=squashfs jffs2 broken
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
include $(INCLUDE_DIR)/target.mk
include $(INCLUDE_DIR)/target.mk
--- a/arch/cris/Makefile
+++ b/arch/cris/Makefile
--- a/arch/cris/Makefile
+++ b/arch/cris/Makefile
LD = $(CROSS_COMPILE)ld -mcrislinux
LD = $(CROSS_COMPILE)ld -mcrislinux
subdir- := compressed rescue
targets := Image
subdir- := compressed rescue
targets := Image
+@@ -14,7 +11,6 @@ $(obj)/Image: vmlinux FORCE
$(obj)/compressed/vmlinux: $(obj)/Image FORCE
$(Q)$(MAKE) $(build)=$(obj)/compressed $@
$(obj)/compressed/vmlinux: $(obj)/Image FORCE
$(Q)$(MAKE) $(build)=$(obj)/compressed $@
quiet_cmd_image = BUILD $@
cmd_image = cat $(obj)/decompress.bin $(obj)/piggy.gz > $@
quiet_cmd_image = BUILD $@
cmd_image = cat $(obj)/decompress.bin $(obj)/piggy.gz > $@
+@@ -22,10 +18,10 @@ $(obj)/decompress.bin: $(obj)/decompress
$(call if_changed,objcopy)
$(obj)/head.o: $(obj)/head.S .config
$(call if_changed,objcopy)
$(obj)/head.o: $(obj)/head.S .config
beq dram_init_finished
nop
beq dram_init_finished
nop
+@@ -36,91 +37,91 @@ dram_init_finished:
;; Initiate the PA and PB ports
;; Initiate the PA and PB ports
* adaptation for Linux/CRIS Axis Communications AB, 1999
*
*/
* adaptation for Linux/CRIS Axis Communications AB, 1999
*
*/
+@@ -99,12 +99,12 @@ static void error(char *m);
static void gzip_mark(void **);
static void gzip_release(void **);
static void gzip_mark(void **);
static void gzip_release(void **);
#include "../../../../../lib/inflate.c"
#include "../../../../../lib/inflate.c"
+@@ -139,7 +139,7 @@ static void gzip_release(void **ptr)
/* decompressor info and error messages to serial console */
static void
/* decompressor info and error messages to serial console */
static void
{
#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL
while(*s) {
{
#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL
while(*s) {
+@@ -209,9 +209,9 @@ flush_window()
static void
error(char *x)
{
static void
error(char *x)
{
+@@ -257,14 +257,7 @@ decompress_kernel()
}
--- a/arch/cris/arch-v10/mm/init.c
+++ b/arch/cris/arch-v10/mm/init.c
}
--- a/arch/cris/arch-v10/mm/init.c
+++ b/arch/cris/arch-v10/mm/init.c
+@@ -184,6 +184,9 @@ paging_init(void)
free_area_init_node(0, &contig_page_data, zones_size, PAGE_OFFSET >> PAGE_SHIFT, 0);
}
free_area_init_node(0, &contig_page_data, zones_size, PAGE_OFFSET >> PAGE_SHIFT, 0);
}
--- a/drivers/net/cris/eth_v10.c
+++ b/drivers/net/cris/eth_v10.c
--- a/drivers/net/cris/eth_v10.c
+++ b/drivers/net/cris/eth_v10.c
+@@ -1707,7 +1707,7 @@ e100_set_network_leds(int active)
static void
e100_netpoll(struct net_device* netdev)
{
static void
e100_netpoll(struct net_device* netdev)
{
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
+@@ -297,8 +297,8 @@ struct mtd_info *cfi_cmdset_0002(struct
+ .dword 0xdeadc0de
--- a/arch/cris/arch-v10/drivers/axisflashmap.c
+++ b/arch/cris/arch-v10/drivers/axisflashmap.c
+ .dword 0xdeadc0de
--- a/arch/cris/arch-v10/drivers/axisflashmap.c
+++ b/arch/cris/arch-v10/drivers/axisflashmap.c
+@@ -113,7 +113,7 @@ static struct map_info map_cse1 = {
/* If no partition-table was found, we use this default-set. */
#define MAX_PARTITIONS 7
/* If no partition-table was found, we use this default-set. */
#define MAX_PARTITIONS 7
/*
* Default flash size is 2MB. CONFIG_ETRAX_PTABLE_SECTOR is most likely the
/*
* Default flash size is 2MB. CONFIG_ETRAX_PTABLE_SECTOR is most likely the
+@@ -122,19 +122,14 @@ static struct map_info map_cse1 = {
*/
static struct mtd_partition axis_default_partitions[NUM_DEFAULT_PARTITIONS] = {
{
*/
static struct mtd_partition axis_default_partitions[NUM_DEFAULT_PARTITIONS] = {
{
+@@ -281,6 +276,11 @@ static int __init init_axis_flash(void)
struct partitiontable_entry *ptable;
int use_default_ptable = 1; /* Until proven otherwise. */
const char pmsg[] = " /dev/flash%d at 0x%08x, size 0x%08x\n";
struct partitiontable_entry *ptable;
int use_default_ptable = 1; /* Until proven otherwise. */
const char pmsg[] = " /dev/flash%d at 0x%08x, size 0x%08x\n";
if (!(mymtd = flash_probe())) {
/* There's no reason to use this module if no flash chip can
if (!(mymtd = flash_probe())) {
/* There's no reason to use this module if no flash chip can
+@@ -292,6 +292,31 @@ static int __init init_axis_flash(void)
mymtd->name, mymtd->size);
axisflash_mtd = mymtd;
}
mymtd->name, mymtd->size);
axisflash_mtd = mymtd;
}
--- a/drivers/serial/crisv10.c
+++ b/drivers/serial/crisv10.c
--- a/drivers/serial/crisv10.c
+++ b/drivers/serial/crisv10.c
+@@ -27,6 +27,7 @@ static char *serial_version = "$Revision
#include <linux/kernel.h>
#include <linux/mutex.h>
#include <linux/bitops.h>
#include <linux/kernel.h>
#include <linux/mutex.h>
#include <linux/bitops.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <asm/irq.h>
+@@ -4384,6 +4385,7 @@ static const struct tty_operations rs_op
.tiocmset = rs_tiocmset
};
.tiocmset = rs_tiocmset
};
static int __init
rs_init(void)
{
static int __init
rs_init(void)
{
+@@ -4518,6 +4520,24 @@ rs_init(void)
#endif
#endif /* CONFIG_SVINTO_SIM */
#endif
#endif /* CONFIG_SVINTO_SIM */
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
+@@ -16,6 +16,7 @@ obj-$(CONFIG_USB_UHCI_HCD) += host/
obj-$(CONFIG_USB_SL811_HCD) += host/
obj-$(CONFIG_USB_U132_HCD) += host/
obj-$(CONFIG_USB_R8A66597_HCD) += host/
obj-$(CONFIG_USB_SL811_HCD) += host/
obj-$(CONFIG_USB_U132_HCD) += host/
obj-$(CONFIG_USB_R8A66597_HCD) += host/
obj-$(CONFIG_USB_PRINTER) += class/
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
obj-$(CONFIG_USB_PRINTER) += class/
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
+@@ -17,3 +17,5 @@ obj-$(CONFIG_USB_SL811_CS) += sl811_cs.o
obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o
obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o
obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o
obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o
--- a/fs/Kconfig
+++ b/fs/Kconfig
--- a/fs/Kconfig
+++ b/fs/Kconfig
+@@ -1367,6 +1367,71 @@ config CRAMFS
depends on BLOCK
--- a/fs/Makefile
+++ b/fs/Makefile
depends on BLOCK
--- a/fs/Makefile
+++ b/fs/Makefile
+@@ -73,6 +73,7 @@ obj-$(CONFIG_JBD) += jbd/
obj-$(CONFIG_JBD2) += jbd2/
obj-$(CONFIG_EXT2_FS) += ext2/
obj-$(CONFIG_CRAMFS) += cramfs/
obj-$(CONFIG_JBD2) += jbd2/
obj-$(CONFIG_EXT2_FS) += ext2/
obj-$(CONFIG_CRAMFS) += cramfs/
#include <linux/initrd.h>
#include <linux/string.h>
#include <linux/initrd.h>
#include <linux/string.h>
+@@ -39,6 +40,7 @@ static int __init crd_load(int in_fd, in
* numbers could not be found.
*
* We currently check for the following magic numbers:
* numbers could not be found.
*
* We currently check for the following magic numbers:
+@@ -53,6 +55,7 @@ identify_ramdisk_image(int fd, int start
struct ext2_super_block *ext2sb;
struct romfs_super_block *romfsb;
struct cramfs_super *cramfsb;
struct ext2_super_block *ext2sb;
struct romfs_super_block *romfsb;
struct cramfs_super *cramfsb;
int nblocks = -1;
unsigned char *buf;
int nblocks = -1;
unsigned char *buf;
+@@ -64,6 +67,7 @@ identify_ramdisk_image(int fd, int start
ext2sb = (struct ext2_super_block *) buf;
romfsb = (struct romfs_super_block *) buf;
cramfsb = (struct cramfs_super *) buf;
ext2sb = (struct ext2_super_block *) buf;
romfsb = (struct romfs_super_block *) buf;
cramfsb = (struct cramfs_super *) buf;
memset(buf, 0xe5, size);
/*
memset(buf, 0xe5, size);
/*
+@@ -101,6 +105,15 @@ identify_ramdisk_image(int fd, int start
+}
--- a/lib/Makefile
+++ b/lib/Makefile
+}
--- a/lib/Makefile
+++ b/lib/Makefile
+@@ -14,7 +14,7 @@ lib-$(CONFIG_SMP) += cpumask.o
lib-y += kobject.o kref.o klist.o
obj-y += div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \
lib-y += kobject.o kref.o klist.o
obj-y += div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \
static void squashfs_put_super(struct super_block *);
static int squashfs_statfs(struct dentry *, struct kstatfs *);
static int squashfs_symlink_readpage(struct file *file, struct page *page);
static void squashfs_put_super(struct super_block *);
static int squashfs_statfs(struct dentry *, struct kstatfs *);
static int squashfs_symlink_readpage(struct file *file, struct page *page);
+@@ -64,7 +81,11 @@ static int squashfs_get_sb(struct file_s
const char *, void *, struct vfsmount *);
const char *, void *, struct vfsmount *);
static struct file_system_type squashfs_fs_type = {
.owner = THIS_MODULE,
static struct file_system_type squashfs_fs_type = {
.owner = THIS_MODULE,
+@@ -249,6 +270,15 @@ SQSH_EXTERN unsigned int squashfs_read_d
if (compressed) {
int zlib_err;
if (compressed) {
int zlib_err;
stream.next_in = c_buffer;
stream.avail_in = c_byte;
stream.next_out = buffer;
stream.next_in = c_buffer;
stream.avail_in = c_byte;
stream.next_out = buffer;
+@@ -263,7 +293,7 @@ SQSH_EXTERN unsigned int squashfs_read_d
bytes = 0;
} else
bytes = stream.total_out;
bytes = 0;
} else
bytes = stream.total_out;
up(&msblk->read_data_mutex);
}
up(&msblk->read_data_mutex);
}
+@@ -2045,15 +2075,19 @@ static int __init init_squashfs_fs(void)
printk(KERN_INFO "squashfs: version 3.0 (2006/03/15) "
"Phillip Lougher\n");
printk(KERN_INFO "squashfs: version 3.0 (2006/03/15) "
"Phillip Lougher\n");
+@@ -2064,7 +2098,9 @@ out:
static void __exit exit_squashfs_fs(void)
{
static void __exit exit_squashfs_fs(void)
{
--- a/Makefile
+++ b/Makefile
--- a/Makefile
+++ b/Makefile
+@@ -533,6 +533,9 @@ endif
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
CHECKFLAGS += $(NOSTDINC_FLAGS)
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
CHECKFLAGS += $(NOSTDINC_FLAGS)
#include <linux/squashfs_fs_sb.h>
#include <linux/squashfs_fs_i.h>
#include <linux/buffer_head.h>
#include <linux/squashfs_fs_sb.h>
#include <linux/squashfs_fs_i.h>
#include <linux/buffer_head.h>
+@@ -2125,7 +2126,7 @@ static void squashfs_destroy_inode(struc
--- a/include/asm-mips/system.h
+++ b/include/asm-mips/system.h
--- a/include/asm-mips/system.h
+++ b/include/asm-mips/system.h
+@@ -185,7 +185,7 @@ extern __u64 __xchg_u64_unsupported_on_3
if something tries to do an invalid xchg(). */
extern void __xchg_called_with_bad_pointer(void);
if something tries to do an invalid xchg(). */
extern void __xchg_called_with_bad_pointer(void);
static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
+@@ -298,12 +299,19 @@ struct mtd_info *cfi_cmdset_0002(struct
if (extp->MajorVersion != '1' ||
(extp->MinorVersion < '0' || extp->MinorVersion > '4')) {
if (extp->MajorVersion != '1' ||
(extp->MinorVersion < '0' || extp->MinorVersion > '4')) {
--- a/drivers/mtd/chips/cfi_cmdset_0001.c
+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
--- a/drivers/mtd/chips/cfi_cmdset_0001.c
+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
+@@ -1008,7 +1008,7 @@ static void __xipram xip_enable(struct m
static int __xipram xip_wait_for_operation(
struct map_info *map, struct flchip *chip,
static int __xipram xip_wait_for_operation(
struct map_info *map, struct flchip *chip,
{
struct cfi_private *cfi = map->fldrv_priv;
struct cfi_pri_intelext *cfip = cfi->cmdset_priv;
{
struct cfi_private *cfi = map->fldrv_priv;
struct cfi_pri_intelext *cfip = cfi->cmdset_priv;
+@@ -1017,7 +1017,7 @@ static int __xipram xip_wait_for_operati
flstate_t oldstate, newstate;
start = xip_currtime();
flstate_t oldstate, newstate;
start = xip_currtime();
if (usec == 0)
usec = 500000;
done = 0;
if (usec == 0)
usec = 500000;
done = 0;
+@@ -1127,8 +1127,8 @@ static int __xipram xip_wait_for_operati
#define XIP_INVAL_CACHED_RANGE(map, from, size) \
INVALIDATE_CACHED_RANGE(map, from, size)
#define XIP_INVAL_CACHED_RANGE(map, from, size) \
INVALIDATE_CACHED_RANGE(map, from, size)
+@@ -1140,65 +1140,65 @@ static int __xipram xip_wait_for_operati
static int inval_cache_and_wait_for_operation(
struct map_info *map, struct flchip *chip,
unsigned long cmd_adr, unsigned long inval_adr, int inval_len,
static int inval_cache_and_wait_for_operation(
struct map_info *map, struct flchip *chip,
unsigned long cmd_adr, unsigned long inval_adr, int inval_len,
/* Done and happy. */
chip->state = FL_STATUS;
return 0;
/* Done and happy. */
chip->state = FL_STATUS;
return 0;
+@@ -1207,7 +1207,8 @@ static int inval_cache_and_wait_for_oper
#endif
#define WAIT_TIMEOUT(map, chip, adr, udelay) \
#endif
#define WAIT_TIMEOUT(map, chip, adr, udelay) \
static int do_point_onechip (struct map_info *map, struct flchip *chip, loff_t adr, size_t len)
static int do_point_onechip (struct map_info *map, struct flchip *chip, loff_t adr, size_t len)
+@@ -1438,7 +1439,7 @@ static int __xipram do_write_oneword(str
ret = INVAL_CACHE_AND_WAIT(map, chip, adr,
adr, map_bankwidth(map),
ret = INVAL_CACHE_AND_WAIT(map, chip, adr,
adr, map_bankwidth(map),
if (ret) {
xip_enable(map, chip, adr);
printk(KERN_ERR "%s: word write error (status timeout)\n", map->name);
if (ret) {
xip_enable(map, chip, adr);
printk(KERN_ERR "%s: word write error (status timeout)\n", map->name);
+@@ -1678,7 +1679,7 @@ static int __xipram do_write_buffer(stru
ret = INVAL_CACHE_AND_WAIT(map, chip, cmd_adr,
initial_adr, initial_len,
ret = INVAL_CACHE_AND_WAIT(map, chip, cmd_adr,
initial_adr, initial_len,
if (ret) {
map_write(map, CMD(0x70), cmd_adr);
chip->state = FL_STATUS;
if (ret) {
map_write(map, CMD(0x70), cmd_adr);
chip->state = FL_STATUS;
+@@ -1813,7 +1814,7 @@ static int __xipram do_erase_oneblock(st
ret = INVAL_CACHE_AND_WAIT(map, chip, adr,
adr, len,
ret = INVAL_CACHE_AND_WAIT(map, chip, adr,
adr, len,
#include <linux/buffer_head.h>
#include <linux/mutex.h>
#include <linux/mount.h>
#include <linux/buffer_head.h>
#include <linux/mutex.h>
#include <linux/mount.h>
+@@ -237,10 +238,11 @@ static void block2mtd_free_device(struct
/* FIXME: ensure that mtd->size % erase_size == 0 */
/* FIXME: ensure that mtd->size % erase_size == 0 */
if (!devname)
return NULL;
if (!devname)
return NULL;
+@@ -279,14 +281,18 @@ static struct block2mtd_dev *add_device(
/* Setup the MTD structure */
/* make the name contain the block device in */
/* Setup the MTD structure */
/* make the name contain the block device in */
dev->mtd.erasesize = erase_size;
dev->mtd.writesize = 1;
dev->mtd.type = MTD_RAM;
dev->mtd.erasesize = erase_size;
dev->mtd.writesize = 1;
dev->mtd.type = MTD_RAM;
+@@ -298,15 +304,18 @@ static struct block2mtd_dev *add_device(
dev->mtd.read = block2mtd_read;
dev->mtd.priv = dev;
dev->mtd.owner = THIS_MODULE;
dev->mtd.read = block2mtd_read;
dev->mtd.priv = dev;
dev->mtd.owner = THIS_MODULE;
+@@ -379,9 +388,9 @@ static char block2mtd_paramline[80 + 12]
static int block2mtd_setup2(const char *val)
{
static int block2mtd_setup2(const char *val)
{
char *name;
size_t erase_size = PAGE_SIZE;
int i, ret;
char *name;
size_t erase_size = PAGE_SIZE;
int i, ret;
+@@ -392,7 +401,7 @@ static int block2mtd_setup2(const char *
strcpy(str, val);
kill_final_newline(str);
strcpy(str, val);
kill_final_newline(str);
token[i] = strsep(&str, ",");
if (str)
token[i] = strsep(&str, ",");
if (str)
+@@ -411,8 +420,10 @@ static int block2mtd_setup2(const char *
parse_err("illegal erase size");
}
}
parse_err("illegal erase size");
}
}
+@@ -446,7 +457,7 @@ static int block2mtd_setup(const char *v
module_param_call(block2mtd, block2mtd_setup, NULL, NULL, 0200);
module_param_call(block2mtd, block2mtd_setup, NULL, NULL, 0200);
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
+@@ -47,6 +47,16 @@ config MTD_PARTITIONS
devices. Partitioning on NFTL 'devices' is a different - that's the
'normal' form of partitioning used on a block device.
devices. Partitioning on NFTL 'devices' is a different - that's the
'normal' form of partitioning used on a block device.
/* Our partition linked list */
static LIST_HEAD(mtd_partitions);
/* Our partition linked list */
static LIST_HEAD(mtd_partitions);
+@@ -39,7 +41,7 @@ struct mtd_part {
* the pointer to that structure with this macro.
*/
#define PART(x) ((struct mtd_part *)(x))
* the pointer to that structure with this macro.
*/
#define PART(x) ((struct mtd_part *)(x))
/*
* MTD methods which simply translate the effective address and pass through
/*
* MTD methods which simply translate the effective address and pass through
+@@ -322,6 +324,316 @@ int del_mtd_partitions(struct mtd_info *
/*
* This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to
/*
* This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to
+@@ -334,171 +646,31 @@ int add_mtd_partitions(struct mtd_info *
int nbparts)
{
struct mtd_part *slave;
int nbparts)
{
struct mtd_part *slave;
+@@ -574,6 +746,32 @@ int parse_mtd_partitions(struct mtd_info
EXPORT_SYMBOL_GPL(deregister_mtd_parser);
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
EXPORT_SYMBOL_GPL(deregister_mtd_parser);
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
+@@ -34,6 +34,8 @@ struct block2mtd_dev {
struct block_device *blkdev;
struct mtd_info mtd;
struct mutex write_mutex;
struct block_device *blkdev;
struct mtd_info mtd;
struct mutex write_mutex;
+@@ -86,6 +88,12 @@ static int block2mtd_erase(struct mtd_in
size_t len = instr->len;
int err;
size_t len = instr->len;
int err;
instr->state = MTD_ERASING;
mutex_lock(&dev->write_mutex);
err = _block2mtd_erase(dev, from, len);
instr->state = MTD_ERASING;
mutex_lock(&dev->write_mutex);
err = _block2mtd_erase(dev, from, len);
+@@ -98,6 +106,10 @@ static int block2mtd_erase(struct mtd_in
instr->state = MTD_ERASE_DONE;
mtd_erase_callback(instr);
instr->state = MTD_ERASE_DONE;
mtd_erase_callback(instr);
+@@ -109,10 +121,14 @@ static int block2mtd_read(struct mtd_inf
struct page *page;
int index = from >> PAGE_SHIFT;
int offset = from & (PAGE_SIZE-1);
struct page *page;
int index = from >> PAGE_SHIFT;
int offset = from & (PAGE_SIZE-1);
if (from + len > mtd->size)
len = mtd->size - from;
if (from + len > mtd->size)
len = mtd->size - from;
+@@ -127,10 +143,14 @@ static int block2mtd_read(struct mtd_inf
len = len - cpylen;
page = page_read(dev->blkdev->bd_inode->i_mapping, index);
len = len - cpylen;
page = page_read(dev->blkdev->bd_inode->i_mapping, index);
memcpy(buf, page_address(page) + offset, cpylen);
page_cache_release(page);
memcpy(buf, page_address(page) + offset, cpylen);
page_cache_release(page);
+@@ -141,7 +161,10 @@ static int block2mtd_read(struct mtd_inf
+@@ -193,12 +216,22 @@ static int block2mtd_write(struct mtd_in
size_t *retlen, const u_char *buf)
{
struct block2mtd_dev *dev = mtd->priv;
size_t *retlen, const u_char *buf)
{
struct block2mtd_dev *dev = mtd->priv;
if (to + len > mtd->size)
len = mtd->size - to;
if (to + len > mtd->size)
len = mtd->size - to;
+@@ -207,6 +240,9 @@ static int block2mtd_write(struct mtd_in
mutex_unlock(&dev->write_mutex);
if (err > 0)
err = 0;
mutex_unlock(&dev->write_mutex);
if (err > 0)
err = 0;
+@@ -215,51 +251,29 @@ static int block2mtd_write(struct mtd_in
static void block2mtd_sync(struct mtd_info *mtd)
{
struct block2mtd_dev *dev = mtd->priv;
static void block2mtd_sync(struct mtd_info *mtd)
{
struct block2mtd_dev *dev = mtd->priv;
if (devt) {
bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
}
if (devt) {
bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
}
+@@ -267,17 +281,96 @@ static struct block2mtd_dev *add_device(
#endif
if (IS_ERR(bdev)) {
#endif
if (IS_ERR(bdev)) {
/* Setup the MTD structure */
/* make the name contain the block device in */
/* Setup the MTD structure */
/* make the name contain the block device in */
+@@ -304,6 +397,7 @@ static struct block2mtd_dev *add_device(
dev->mtd.read = block2mtd_read;
dev->mtd.priv = dev;
dev->mtd.owner = THIS_MODULE;
dev->mtd.read = block2mtd_read;
dev->mtd.priv = dev;
dev->mtd.owner = THIS_MODULE;
+@@ -756,6 +757,13 @@ static int mtd_ioctl(struct inode *inode
file->f_pos = 0;
break;
}
file->f_pos = 0;
break;
}
ret = -ENOTTY;
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
ret = -ENOTTY;
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
+@@ -98,6 +98,7 @@ struct mtd_oob_ops {
struct mtd_info {
u_char type;
u_int32_t flags;
struct mtd_info {
u_char type;
u_int32_t flags;
+@@ -211,6 +212,9 @@ struct mtd_info {
struct module *owner;
int usecount;
struct module *owner;
int usecount;
struct mtd_partition {
char *name; /* identifier string */
u_int32_t size; /* partition size */
struct mtd_partition {
char *name; /* identifier string */
u_int32_t size; /* partition size */
+@@ -43,6 +44,7 @@ struct mtd_partition {
u_int32_t mask_flags; /* master MTD flags to mask out for this partition */
struct nand_ecclayout *ecclayout; /* out of band layout for this partition (NAND only)*/
struct mtd_info **mtdp; /* pointer to store the MTD object */
u_int32_t mask_flags; /* master MTD flags to mask out for this partition */
struct nand_ecclayout *ecclayout; /* out of band layout for this partition (NAND only)*/
struct mtd_info **mtdp; /* pointer to store the MTD object */
};
#define MTDPART_OFS_NXTBLK (-2)
};
#define MTDPART_OFS_NXTBLK (-2)
+@@ -52,6 +54,7 @@ struct mtd_partition {
int add_mtd_partitions(struct mtd_info *, const struct mtd_partition *, int);
int del_mtd_partitions(struct mtd_info *);
int add_mtd_partitions(struct mtd_info *, const struct mtd_partition *, int);
int del_mtd_partitions(struct mtd_info *);
* Functions dealing with the various ways of partitioning the space
--- a/include/mtd/mtd-abi.h
+++ b/include/mtd/mtd-abi.h
* Functions dealing with the various ways of partitioning the space
--- a/include/mtd/mtd-abi.h
+++ b/include/mtd/mtd-abi.h
+@@ -95,6 +95,7 @@ struct otp_info {
#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout)
#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats)
#define MTDFILEMODE _IO('M', 19)
#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout)
#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats)
#define MTDFILEMODE _IO('M', 19)
--- a/drivers/mtd/redboot.c
+++ b/drivers/mtd/redboot.c
--- a/drivers/mtd/redboot.c
+++ b/drivers/mtd/redboot.c
+@@ -251,14 +251,21 @@ static int parse_redboot_partitions(stru
#endif
names += strlen(names)+1;
#endif
names += strlen(names)+1;
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
+@@ -573,6 +573,7 @@ struct platform_nand_chip {
int chip_delay;
unsigned int options;
const char **part_probe_types;
int chip_delay;
unsigned int options;
const char **part_probe_types;
--- a/drivers/mtd/nand/plat_nand.c
+++ b/drivers/mtd/nand/plat_nand.c
--- a/drivers/mtd/nand/plat_nand.c
+++ b/drivers/mtd/nand/plat_nand.c
+@@ -70,7 +70,18 @@ static int __init plat_nand_probe(struct
platform_set_drvdata(pdev, data);
/* Scan to find existance of the device */
platform_set_drvdata(pdev, data);
/* Scan to find existance of the device */
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
+@@ -735,6 +735,27 @@ config NETFILTER_XT_MATCH_STATE
To compile it as a module, choose M here. If unsure, say N.
To compile it as a module, choose M here. If unsure, say N.
depends on NETFILTER_XTABLES
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
depends on NETFILTER_XTABLES
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
+@@ -77,6 +77,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RATEEST)
obj-$(CONFIG_NETFILTER_XT_MATCH_REALM) += xt_realm.o
obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
obj-$(CONFIG_NETFILTER_XT_MATCH_REALM) += xt_realm.o
obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
+}
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
+}
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
+@@ -208,6 +208,14 @@ destroy_conntrack(struct nf_conntrack *n
* too. */
nf_ct_remove_expectations(ct);
* too. */
nf_ct_remove_expectations(ct);
BUG_ON(hlist_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnode));
--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
BUG_ON(hlist_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnode));
--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
+@@ -181,7 +181,12 @@ static int ct_seq_show(struct seq_file *
return 0;
--- a/include/net/netfilter/nf_conntrack.h
+++ b/include/net/netfilter/nf_conntrack.h
return 0;
--- a/include/net/netfilter/nf_conntrack.h
+++ b/include/net/netfilter/nf_conntrack.h
+@@ -124,6 +124,22 @@ struct nf_conn
u_int32_t secmark;
#endif
u_int32_t secmark;
#endif
--- a/include/linux/netfilter/xt_layer7.h
+++ b/include/linux/netfilter/xt_layer7.h
--- a/include/linux/netfilter/xt_layer7.h
+++ b/include/linux/netfilter/xt_layer7.h
+@@ -8,6 +8,7 @@ struct xt_layer7_info {
char protocol[MAX_PROTOCOL_LEN];
char pattern[MAX_PATTERN_LEN];
u_int8_t invert;
char protocol[MAX_PROTOCOL_LEN];
char pattern[MAX_PATTERN_LEN];
u_int8_t invert;
#endif /* _XT_LAYER7_H */
--- a/net/netfilter/xt_layer7.c
+++ b/net/netfilter/xt_layer7.c
#endif /* _XT_LAYER7_H */
--- a/net/netfilter/xt_layer7.c
+++ b/net/netfilter/xt_layer7.c
+@@ -297,34 +297,36 @@ static int match_no_append(struct nf_con
}
/* add the new app data to the conntrack. Return number of bytes added. */
}
/* add the new app data to the conntrack. Return number of bytes added. */
+@@ -411,7 +413,7 @@ match(const struct sk_buff *skbin,
const struct xt_layer7_info * info = matchinfo;
enum ip_conntrack_info master_ctinfo, ctinfo;
struct nf_conn *master_conntrack, *conntrack;
const struct xt_layer7_info * info = matchinfo;
enum ip_conntrack_info master_ctinfo, ctinfo;
struct nf_conn *master_conntrack, *conntrack;
unsigned int pattern_result, appdatalen;
regexp * comppattern;
unsigned int pattern_result, appdatalen;
regexp * comppattern;
+@@ -439,8 +441,8 @@ match(const struct sk_buff *skbin,
master_conntrack = master_ct(master_conntrack);
/* if we've classified it or seen too many packets */
master_conntrack = master_ct(master_conntrack);
/* if we've classified it or seen too many packets */
pattern_result = match_no_append(conntrack, master_conntrack,
ctinfo, master_ctinfo, info);
pattern_result = match_no_append(conntrack, master_conntrack,
ctinfo, master_ctinfo, info);
+@@ -473,6 +475,25 @@ match(const struct sk_buff *skbin,
/* the return value gets checked later, when we're ready to use it */
comppattern = compile_and_cache(info->pattern, info->protocol);
/* the return value gets checked later, when we're ready to use it */
comppattern = compile_and_cache(info->pattern, info->protocol);
+
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+@@ -57,6 +57,12 @@ config IP_NF_IPTABLES
To compile it as a module, choose M here. If unsure, say N.
# The matches.
To compile it as a module, choose M here. If unsure, say N.
# The matches.
depends on IP_NF_IPTABLES
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
depends on IP_NF_IPTABLES
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
+@@ -47,6 +47,8 @@ obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn
obj-$(CONFIG_IP_NF_MATCH_RECENT) += ipt_recent.o
obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o
obj-$(CONFIG_IP_NF_MATCH_RECENT) += ipt_recent.o
obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o
+module_exit(ipt_SET_fini);
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+module_exit(ipt_SET_fini);
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+@@ -385,5 +385,122 @@ config IP_NF_ARP_MANGLE
Allows altering the ARP packet payload: source and destination
hardware and network addresses.
Allows altering the ARP packet payload: source and destination
hardware and network addresses.
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
+@@ -46,6 +46,7 @@ obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o
obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o
obj-$(CONFIG_IP_NF_MATCH_RECENT) += ipt_recent.o
obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o
obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o
obj-$(CONFIG_IP_NF_MATCH_RECENT) += ipt_recent.o
obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o
obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o
obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o
+@@ -59,6 +60,18 @@ obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += i
obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
obj-$(CONFIG_IP_NF_TARGET_TTL) += ipt_TTL.o
obj-$(CONFIG_IP_NF_TARGET_ULOG) += ipt_ULOG.o
obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
obj-$(CONFIG_IP_NF_TARGET_TTL) += ipt_TTL.o
obj-$(CONFIG_IP_NF_TARGET_ULOG) += ipt_ULOG.o
+}
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+}
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+@@ -63,6 +63,22 @@ config IP_NF_MATCH_IPP2P
help
Module for matching traffic of various Peer-to-Peer applications
help
Module for matching traffic of various Peer-to-Peer applications
depends on IP_NF_IPTABLES
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
depends on IP_NF_IPTABLES
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
+@@ -47,6 +47,7 @@ obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn
obj-$(CONFIG_IP_NF_MATCH_RECENT) += ipt_recent.o
obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o
obj-$(CONFIG_IP_NF_MATCH_SET) += ipt_set.o
obj-$(CONFIG_IP_NF_MATCH_RECENT) += ipt_recent.o
obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o
obj-$(CONFIG_IP_NF_MATCH_SET) += ipt_set.o
+
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
+
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
+@@ -117,6 +117,129 @@ config EQUALIZER
To compile this driver as a module, choose M here: the module
will be called eql. If unsure, say N.
To compile this driver as a module, choose M here: the module
will be called eql. If unsure, say N.
select CRC32
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
select CRC32
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
+@@ -143,6 +143,7 @@ obj-$(CONFIG_SLHC) += slhc.o
obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
obj-$(CONFIG_DUMMY) += dummy.o
obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
obj-$(CONFIG_DUMMY) += dummy.o
+#endif /* _IP6T_IMQ_H */
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
+#endif /* _IP6T_IMQ_H */
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
+@@ -296,6 +296,10 @@ struct sk_buff {
struct nf_conntrack *nfct;
struct sk_buff *nfct_reasm;
#endif
struct nf_conntrack *nfct;
struct sk_buff *nfct_reasm;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info *nf_bridge;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info *nf_bridge;
#endif
+@@ -1736,6 +1740,10 @@ static inline void __nf_copy(struct sk_b
dst->nfct_reasm = src->nfct_reasm;
nf_conntrack_get_reasm(src->nfct_reasm);
#endif
dst->nfct_reasm = src->nfct_reasm;
nf_conntrack_get_reasm(src->nfct_reasm);
#endif
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
+@@ -1537,7 +1540,11 @@ static int dev_gso_segment(struct sk_buf
int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
if (likely(!skb->next)) {
int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
if (likely(!skb->next)) {
+MODULE_LICENSE("GPL");
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+MODULE_LICENSE("GPL");
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+@@ -145,6 +145,17 @@ config IP_NF_FILTER
To compile it as a module, choose M here. If unsure, say N.
To compile it as a module, choose M here. If unsure, say N.
depends on IP_NF_FILTER
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
depends on IP_NF_FILTER
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
+@@ -55,6 +55,7 @@ obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_i
obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
+MODULE_LICENSE("GPL");
--- a/net/ipv6/netfilter/Kconfig
+++ b/net/ipv6/netfilter/Kconfig
+MODULE_LICENSE("GPL");
--- a/net/ipv6/netfilter/Kconfig
+++ b/net/ipv6/netfilter/Kconfig
+@@ -179,6 +179,15 @@ config IP6_NF_MANGLE
To compile it as a module, choose M here. If unsure, say N.
To compile it as a module, choose M here. If unsure, say N.
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
+@@ -203,6 +203,7 @@ void __qdisc_run(struct net_device *dev)
clear_bit(__LINK_STATE_QDISC_RUNNING, &dev->state);
}
clear_bit(__LINK_STATE_QDISC_RUNNING, &dev->state);
}
+#define xt_request_find_match xt_request_find_match_lo
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
+#define xt_request_find_match xt_request_find_match_lo
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
+@@ -276,6 +276,14 @@ config NETFILTER_XTABLES
# alphabetically ordered list of targets
# alphabetically ordered list of targets
config NETFILTER_XT_TARGET_CLASSIFY
tristate '"CLASSIFY" target support'
depends on NETFILTER_XTABLES
config NETFILTER_XT_TARGET_CLASSIFY
tristate '"CLASSIFY" target support'
depends on NETFILTER_XTABLES
+@@ -305,6 +313,14 @@ config NETFILTER_XT_TARGET_CONNMARK
<file:Documentation/kbuild/modules.txt>. The module will be called
ipt_CONNMARK.ko. If unsure, say `N'.
<file:Documentation/kbuild/modules.txt>. The module will be called
ipt_CONNMARK.ko. If unsure, say `N'.
config NETFILTER_XT_TARGET_DSCP
tristate '"DSCP" and "TOS" target support'
depends on NETFILTER_XTABLES
config NETFILTER_XT_TARGET_DSCP
tristate '"DSCP" and "TOS" target support'
depends on NETFILTER_XTABLES
+@@ -640,6 +656,14 @@ config NETFILTER_XT_MATCH_POLICY
To compile it as a module, choose M here. If unsure, say N.
To compile it as a module, choose M here. If unsure, say N.
depends on NETFILTER_XTABLES
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
depends on NETFILTER_XTABLES
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
+@@ -50,6 +50,8 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_SECMARK
obj-$(CONFIG_NETFILTER_XT_TARGET_TCPMSS) += xt_TCPMSS.o
obj-$(CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP) += xt_TCPOPTSTRIP.o
obj-$(CONFIG_NETFILTER_XT_TARGET_TRACE) += xt_TRACE.o
obj-$(CONFIG_NETFILTER_XT_TARGET_TCPMSS) += xt_TCPMSS.o
obj-$(CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP) += xt_TCPOPTSTRIP.o
obj-$(CONFIG_NETFILTER_XT_TARGET_TRACE) += xt_TRACE.o
# matches
obj-$(CONFIG_NETFILTER_XT_MATCH_COMMENT) += xt_comment.o
# matches
obj-$(CONFIG_NETFILTER_XT_MATCH_COMMENT) += xt_comment.o
+@@ -83,3 +85,4 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_STRING)
obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o
obj-$(CONFIG_NETFILTER_XT_MATCH_TIME) += xt_time.o
obj-$(CONFIG_NETFILTER_XT_MATCH_U32) += xt_u32.o
obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o
obj-$(CONFIG_NETFILTER_XT_MATCH_TIME) += xt_time.o
obj-$(CONFIG_NETFILTER_XT_MATCH_U32) += xt_u32.o
+MODULE_ALIAS("ipt_portscan");
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
+MODULE_ALIAS("ipt_portscan");
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
+@@ -1563,6 +1563,8 @@ __u32 secure_tcp_sequence_number(__be32
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
+@@ -437,6 +437,23 @@ config NETFILTER_XT_TARGET_CONNSECMARK
To compile it as a module, choose M here. If unsure, say N.
To compile it as a module, choose M here. If unsure, say N.
depends on NETFILTER_XTABLES && (IPV6 || IPV6=n)
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
depends on NETFILTER_XTABLES && (IPV6 || IPV6=n)
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
+@@ -47,6 +47,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE
obj-$(CONFIG_NETFILTER_XT_TARGET_NOTRACK) += xt_NOTRACK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_RATEEST) += xt_RATEEST.o
obj-$(CONFIG_NETFILTER_XT_TARGET_SECMARK) += xt_SECMARK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_NOTRACK) += xt_NOTRACK.o
obj-$(CONFIG_NETFILTER_XT_TARGET_RATEEST) += xt_RATEEST.o
obj-$(CONFIG_NETFILTER_XT_TARGET_SECMARK) += xt_SECMARK.o
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
+@@ -145,7 +145,7 @@ config NF_CONNTRACK_FTP
config NF_CONNTRACK_H323
tristate "H.323 protocol support"
config NF_CONNTRACK_H323
tristate "H.323 protocol support"
depends on NETFILTER_ADVANCED
help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
depends on NETFILTER_ADVANCED
help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
+@@ -456,7 +456,7 @@ config NETFILTER_XT_TARGET_TARPIT
config NETFILTER_XT_TARGET_TCPMSS
tristate '"TCPMSS" target support'
config NETFILTER_XT_TARGET_TCPMSS
tristate '"TCPMSS" target support'
+#endif /* _NETFILTER_MIME_H */
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
+#endif /* _NETFILTER_MIME_H */
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
+@@ -23,6 +23,7 @@ obj-$(CONFIG_NF_NAT_AMANDA) += nf_nat_am
obj-$(CONFIG_NF_NAT_FTP) += nf_nat_ftp.o
obj-$(CONFIG_NF_NAT_H323) += nf_nat_h323.o
obj-$(CONFIG_NF_NAT_IRC) += nf_nat_irc.o
obj-$(CONFIG_NF_NAT_FTP) += nf_nat_ftp.o
obj-$(CONFIG_NF_NAT_H323) += nf_nat_h323.o
obj-$(CONFIG_NF_NAT_IRC) += nf_nat_irc.o
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
+@@ -258,6 +258,16 @@ config NF_CONNTRACK_TFTP
To compile it as a module, choose M here. If unsure, say N.
To compile it as a module, choose M here. If unsure, say N.
depends on NF_CONNTRACK
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
depends on NF_CONNTRACK
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
+@@ -32,6 +32,7 @@ obj-$(CONFIG_NF_CONNTRACK_PPTP) += nf_co
obj-$(CONFIG_NF_CONNTRACK_SANE) += nf_conntrack_sane.o
obj-$(CONFIG_NF_CONNTRACK_SIP) += nf_conntrack_sip.o
obj-$(CONFIG_NF_CONNTRACK_TFTP) += nf_conntrack_tftp.o
obj-$(CONFIG_NF_CONNTRACK_SANE) += nf_conntrack_sane.o
obj-$(CONFIG_NF_CONNTRACK_SIP) += nf_conntrack_sip.o
obj-$(CONFIG_NF_CONNTRACK_TFTP) += nf_conntrack_tftp.o
obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
+@@ -288,6 +288,11 @@ config NF_NAT_IRC
depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
default NF_NAT && NF_CONNTRACK_IRC
depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
default NF_NAT && NF_CONNTRACK_IRC
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
+@@ -162,8 +162,37 @@ struct tc_sfq_xstats
*
* The only reason for this is efficiency, it is possible
* to change these parameters in compile time.
*
* The only reason for this is efficiency, it is possible
* to change these parameters in compile time.
enum
--- a/net/sched/Kconfig
+++ b/net/sched/Kconfig
enum
--- a/net/sched/Kconfig
+++ b/net/sched/Kconfig
+@@ -139,6 +139,37 @@ config NET_SCH_SFQ
To compile this code as a module, choose M here: the
module will be called sch_sfq.
To compile this code as a module, choose M here: the
module will be called sch_sfq.
---help---
--- a/net/sched/Makefile
+++ b/net/sched/Makefile
---help---
--- a/net/sched/Makefile
+++ b/net/sched/Makefile
+@@ -23,6 +23,7 @@ obj-$(CONFIG_NET_SCH_GRED) += sch_gred.o
obj-$(CONFIG_NET_SCH_INGRESS) += sch_ingress.o
obj-$(CONFIG_NET_SCH_DSMARK) += sch_dsmark.o
obj-$(CONFIG_NET_SCH_SFQ) += sch_sfq.o
obj-$(CONFIG_NET_SCH_INGRESS) += sch_ingress.o
obj-$(CONFIG_NET_SCH_DSMARK) += sch_dsmark.o
obj-$(CONFIG_NET_SCH_SFQ) += sch_sfq.o
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
+@@ -593,6 +593,9 @@ core-$(CONFIG_TOSHIBA_RBTX4938) += arch/
cflags-$(CONFIG_TOSHIBA_RBTX4938) += -Iinclude/asm-mips/mach-tx49xx
load-$(CONFIG_TOSHIBA_RBTX4938) += 0xffffffff80100000
cflags-$(CONFIG_TOSHIBA_RBTX4938) += -Iinclude/asm-mips/mach-tx49xx
load-$(CONFIG_TOSHIBA_RBTX4938) += 0xffffffff80100000
--- a/fs/jffs2/build.c
+++ b/fs/jffs2/build.c
--- a/fs/jffs2/build.c
+++ b/fs/jffs2/build.c
+@@ -105,6 +105,17 @@ static int jffs2_build_filesystem(struct
dbg_fsbuild("scanned flash completely\n");
jffs2_dbg_dump_block_lists_nolock(c);
dbg_fsbuild("scanned flash completely\n");
jffs2_dbg_dump_block_lists_nolock(c);
/* Now scan the directory tree, increasing nlink according to every dirent found. */
--- a/fs/jffs2/scan.c
+++ b/fs/jffs2/scan.c
/* Now scan the directory tree, increasing nlink according to every dirent found. */
--- a/fs/jffs2/scan.c
+++ b/fs/jffs2/scan.c
+@@ -142,9 +142,12 @@ int jffs2_scan_medium(struct jffs2_sb_in
/* reset summary info for next eraseblock scan */
jffs2_sum_reset_collected(s);
/* reset summary info for next eraseblock scan */
jffs2_sum_reset_collected(s);
+@@ -545,6 +548,17 @@ static int jffs2_scan_eraseblock (struct
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
+@@ -1539,7 +1539,7 @@ static const struct rtl_cfg_info {
.hw_start = rtl_hw_start_8169,
.region = 1,
.align = 0,
.hw_start = rtl_hw_start_8169,
.region = 1,
.align = 0,
RxFIFOOver | TxErr | TxOK | RxOK | RxErr,
.napi_event = RxFIFOOver | TxErr | TxOK | RxOK | RxOverflow,
.msi = 0
RxFIFOOver | TxErr | TxOK | RxOK | RxErr,
.napi_event = RxFIFOOver | TxErr | TxOK | RxOK | RxOverflow,
.msi = 0
+@@ -1548,7 +1548,7 @@ static const struct rtl_cfg_info {
.hw_start = rtl_hw_start_8168,
.region = 2,
.align = 8,
.hw_start = rtl_hw_start_8168,
.region = 2,
.align = 8,
TxErr | TxOK | RxOK | RxErr,
.napi_event = TxErr | TxOK | RxOK | RxOverflow,
.msi = RTL_FEATURE_MSI
TxErr | TxOK | RxOK | RxErr,
.napi_event = TxErr | TxOK | RxOK | RxOverflow,
.msi = RTL_FEATURE_MSI
+@@ -1557,7 +1557,7 @@ static const struct rtl_cfg_info {
.hw_start = rtl_hw_start_8101,
.region = 2,
.align = 8,
.hw_start = rtl_hw_start_8101,
.region = 2,
.align = 8,
RxFIFOOver | TxErr | TxOK | RxOK | RxErr,
.napi_event = RxFIFOOver | TxErr | TxOK | RxOK | RxOverflow,
.msi = RTL_FEATURE_MSI
RxFIFOOver | TxErr | TxOK | RxOK | RxErr,
.napi_event = RxFIFOOver | TxErr | TxOK | RxOK | RxOverflow,
.msi = RTL_FEATURE_MSI
+@@ -2905,10 +2905,12 @@ static irqreturn_t rtl8169_interrupt(int
--- a/fs/Kconfig
+++ b/fs/Kconfig
--- a/fs/Kconfig
+++ b/fs/Kconfig
+@@ -1449,6 +1449,9 @@ config VXFS_FS
To compile this as a module, choose M here: the module will be
called freevxfs. If unsure, say N.
To compile this as a module, choose M here: the module will be
called freevxfs. If unsure, say N.
depends on BLOCK
--- a/fs/Makefile
+++ b/fs/Makefile
depends on BLOCK
--- a/fs/Makefile
+++ b/fs/Makefile
+@@ -77,6 +77,7 @@ obj-$(CONFIG_SQUASHFS) += squashfs/
obj-y += ramfs/
obj-$(CONFIG_HUGETLBFS) += hugetlbfs/
obj-$(CONFIG_CODA_FS) += coda/
obj-y += ramfs/
obj-$(CONFIG_HUGETLBFS) += hugetlbfs/
obj-$(CONFIG_CODA_FS) += coda/
--- a/fs/mini_fo/main.c
+++ b/fs/mini_fo/main.c
--- a/fs/mini_fo/main.c
+++ b/fs/mini_fo/main.c
+@@ -79,6 +79,7 @@ mini_fo_tri_interpose(dentry_t *hidden_d
* of the new inode's fields
*/
* of the new inode's fields
*/
/*
* original: inode = iget(sb, hidden_inode->i_ino);
*/
/*
* original: inode = iget(sb, hidden_inode->i_ino);
*/
+@@ -87,6 +88,13 @@ mini_fo_tri_interpose(dentry_t *hidden_d
err = -EACCES; /* should be impossible??? */
goto out;
}
err = -EACCES; /* should be impossible??? */
goto out;
}
/*
* interpose the inode if not already interposed
/*
* interpose the inode if not already interposed
+@@ -184,9 +192,9 @@ mini_fo_parse_options(super_block_t *sb,
hidden_root = ERR_PTR(err);
goto out;
}
hidden_root = ERR_PTR(err);
goto out;
}
} else if(!strncmp("sto=", options, 4)) {
/* parse the storage dir */
} else if(!strncmp("sto=", options, 4)) {
/* parse the storage dir */
+@@ -204,9 +212,9 @@ mini_fo_parse_options(super_block_t *sb,
hidden_root2 = ERR_PTR(err);
goto out;
}
hidden_root2 = ERR_PTR(err);
goto out;
}
/* validate storage dir, this is done in
--- a/fs/mini_fo/mini_fo.h
+++ b/fs/mini_fo/mini_fo.h
/* validate storage dir, this is done in
--- a/fs/mini_fo/mini_fo.h
+++ b/fs/mini_fo/mini_fo.h
+@@ -302,6 +302,10 @@ extern int mini_fo_tri_interpose(dentry_
extern int mini_fo_cp_cont(dentry_t *tgt_dentry, struct vfsmount *tgt_mnt,
dentry_t *src_dentry, struct vfsmount *src_mnt);
extern int mini_fo_cp_cont(dentry_t *tgt_dentry, struct vfsmount *tgt_mnt,
dentry_t *src_dentry, struct vfsmount *src_mnt);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
extern int mini_fo_create(inode_t *dir, dentry_t *dentry, int mode, struct nameidata *nd);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
extern int mini_fo_create(inode_t *dir, dentry_t *dentry, int mode, struct nameidata *nd);
+@@ -501,6 +505,29 @@ static inline void double_unlock(struct
#endif /* if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) */
#endif /* __KERNEL__ */
#endif /* if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) */
#endif /* __KERNEL__ */
*/
--- a/fs/mini_fo/super.c
+++ b/fs/mini_fo/super.c
*/
--- a/fs/mini_fo/super.c
+++ b/fs/mini_fo/super.c
+@@ -262,10 +262,31 @@ mini_fo_umount_begin(super_block_t *sb)
#endif /* defined(FIST_DEBUG) || defined(FIST_FILTER_SCA) */
--- a/fs/mini_fo/aux.c
+++ b/fs/mini_fo/aux.c
#endif /* defined(FIST_DEBUG) || defined(FIST_FILTER_SCA) */
--- a/fs/mini_fo/aux.c
+++ b/fs/mini_fo/aux.c
+@@ -164,11 +164,11 @@ dentry_t *bpath_walk(super_block_t *sb,
err = vfs_path_lookup(mnt->mnt_root, mnt, bpath+1, 0, &nd);
/* validate */
err = vfs_path_lookup(mnt->mnt_root, mnt, bpath+1, 0, &nd);
/* validate */
--- a/fs/mini_fo/meta.c
+++ b/fs/mini_fo/meta.c
--- a/fs/mini_fo/meta.c
+++ b/fs/mini_fo/meta.c
+@@ -442,6 +442,11 @@ int meta_write_d_entry(dentry_t *dentry,
S_IRUSR | S_IWUSR);
#endif
}
S_IRUSR | S_IWUSR);
#endif
}
/* open META-file for writing */
meta_file = dentry_open(meta_dentry, meta_mnt, 0x1);
if(!meta_file || IS_ERR(meta_file)) {
/* open META-file for writing */
meta_file = dentry_open(meta_dentry, meta_mnt, 0x1);
if(!meta_file || IS_ERR(meta_file)) {
+@@ -535,6 +540,11 @@ int meta_write_r_entry(dentry_t *dentry,
meta_dentry, S_IRUSR | S_IWUSR);
#endif
}
meta_dentry, S_IRUSR | S_IWUSR);
#endif
}
/* open META-file for writing */
meta_file = dentry_open(meta_dentry, meta_mnt, 0x1);
if(!meta_file || IS_ERR(meta_file)) {
/* open META-file for writing */
meta_file = dentry_open(meta_dentry, meta_mnt, 0x1);
if(!meta_file || IS_ERR(meta_file)) {
+@@ -671,14 +681,16 @@ int meta_sync_d_list(dentry_t *dentry, i
dput(meta_dentry);
err = -1;
goto out;
dput(meta_dentry);
err = -1;
goto out;
+@@ -811,14 +823,16 @@ int meta_sync_r_list(dentry_t *dentry, i
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
+@@ -27,7 +27,8 @@ u64 uevent_seqnum;
char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;
static DEFINE_SPINLOCK(sequence_lock);
#if defined(CONFIG_NET)
char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;
static DEFINE_SPINLOCK(sequence_lock);
#if defined(CONFIG_NET)
#endif
/* the strings here must match the enum in include/linux/kobject.h */
#endif
/* the strings here must match the enum in include/linux/kobject.h */
+@@ -40,6 +41,18 @@ static const char *kobject_actions[] = {
[KOBJ_OFFLINE] = "offline",
};
[KOBJ_OFFLINE] = "offline",
};
/**
* kobject_action_type - translate action string to numeric type
*
/**
* kobject_action_type - translate action string to numeric type
*
+@@ -192,9 +205,7 @@ int kobject_uevent_env(struct kobject *k
kobj->state_remove_uevent_sent = 1;
/* we will send an event, so request a new sequence number */
kobj->state_remove_uevent_sent = 1;
/* we will send an event, so request a new sequence number */
--- a/sound/core/Kconfig
+++ b/sound/core/Kconfig
--- a/sound/core/Kconfig
+++ b/sound/core/Kconfig
+@@ -9,7 +9,7 @@ config SND_PCM
depends on SND
config SND_HWDEP
depends on SND
config SND_HWDEP
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
+@@ -181,4 +181,8 @@ config LEDS_TRIGGER_HEARTBEAT
load average.
If unsure, say Y.
load average.
If unsure, say Y.
endif # NEW_LEDS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
endif # NEW_LEDS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
+@@ -26,3 +26,4 @@ obj-$(CONFIG_LEDS_HP6XX) += leds-hp6xx.
obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
+@@ -79,6 +79,12 @@ config LEDS_WRAP
help
This option enables support for the PCEngines WRAP programmable LEDs.
help
This option enables support for the PCEngines WRAP programmable LEDs.
depends on LEDS_CLASS && ARCH_H1940
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
depends on LEDS_CLASS && ARCH_H1940
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
+@@ -14,6 +14,7 @@ obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c2
obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o
obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o
obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
+@@ -191,4 +191,11 @@ config LEDS_TRIGGER_MORSE
tristate "LED Morse Trigger"
depends on LEDS_TRIGGERS
tristate "LED Morse Trigger"
depends on LEDS_TRIGGERS
endif # NEW_LEDS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
endif # NEW_LEDS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
+@@ -28,3 +28,4 @@ obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledt
obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o
obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
+@@ -197,4 +197,20 @@ config HP_SDC_RTC
Say Y here if you want to support the built-in real time clock
of the HP SDC controller.
Say Y here if you want to support the built-in real time clock
of the HP SDC controller.
endif
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
endif
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
+@@ -19,3 +19,4 @@ obj-$(CONFIG_INPUT_YEALINK) += yealink.
obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o
obj-$(CONFIG_INPUT_UINPUT) += uinput.o
obj-$(CONFIG_INPUT_APANEL) += apanel.o
obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o
obj-$(CONFIG_INPUT_UINPUT) += uinput.o
obj-$(CONFIG_INPUT_APANEL) += apanel.o
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
+@@ -955,6 +955,13 @@ config CS5535_GPIO
If compiled as a module, it will be called cs5535_gpio.
If compiled as a module, it will be called cs5535_gpio.
depends on CPU_VR41XX
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
depends on CPU_VR41XX
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
+@@ -94,6 +94,7 @@ obj-$(CONFIG_SCx200_GPIO) += scx200_gpio
obj-$(CONFIG_PC8736x_GPIO) += pc8736x_gpio.o
obj-$(CONFIG_NSC_GPIO) += nsc_gpio.o
obj-$(CONFIG_CS5535_GPIO) += cs5535_gpio.o
obj-$(CONFIG_PC8736x_GPIO) += pc8736x_gpio.o
obj-$(CONFIG_NSC_GPIO) += nsc_gpio.o
obj-$(CONFIG_CS5535_GPIO) += cs5535_gpio.o
--- a/fs/Kconfig
+++ b/fs/Kconfig
--- a/fs/Kconfig
+++ b/fs/Kconfig
+@@ -421,6 +421,7 @@ config FS_POSIX_ACL
source "fs/xfs/Kconfig"
source "fs/gfs2/Kconfig"
source "fs/xfs/Kconfig"
source "fs/gfs2/Kconfig"
tristate "OCFS2 file system support"
--- a/fs/Makefile
+++ b/fs/Makefile
tristate "OCFS2 file system support"
--- a/fs/Makefile
+++ b/fs/Makefile
+@@ -121,3 +121,4 @@ obj-$(CONFIG_HPPFS) += hppfs/
obj-$(CONFIG_DEBUG_FS) += debugfs/
obj-$(CONFIG_OCFS2_FS) += ocfs2/
obj-$(CONFIG_GFS2_FS) += gfs2/
obj-$(CONFIG_DEBUG_FS) += debugfs/
obj-$(CONFIG_OCFS2_FS) += ocfs2/
obj-$(CONFIG_GFS2_FS) += gfs2/
--- a/fs/yaffs2/yaffs_fs.c
+++ b/fs/yaffs2/yaffs_fs.c
--- a/fs/yaffs2/yaffs_fs.c
+++ b/fs/yaffs2/yaffs_fs.c
+@@ -181,7 +181,13 @@ static int yaffs_statfs(struct super_blo
#else
static int yaffs_statfs(struct super_block *sb, struct statfs *buf);
#endif
#else
static int yaffs_statfs(struct super_block *sb, struct statfs *buf);
#endif
static void yaffs_put_inode(struct inode *inode);
static void yaffs_delete_inode(struct inode *);
static void yaffs_put_inode(struct inode *inode);
static void yaffs_delete_inode(struct inode *);
+@@ -284,7 +290,9 @@ static struct file_operations yaffs_dir_
static struct super_operations yaffs_super_ops = {
.statfs = yaffs_statfs,
static struct super_operations yaffs_super_ops = {
.statfs = yaffs_statfs,
.put_inode = yaffs_put_inode,
.put_super = yaffs_put_super,
.delete_inode = yaffs_delete_inode,
.put_inode = yaffs_put_inode,
.put_super = yaffs_put_super,
.delete_inode = yaffs_delete_inode,
+@@ -844,11 +852,17 @@ struct inode *yaffs_get_inode(struct sup
T(YAFFS_TRACE_OS,
(KERN_DEBUG "yaffs_get_inode for object %d\n", obj->objectId));
T(YAFFS_TRACE_OS,
(KERN_DEBUG "yaffs_get_inode for object %d\n", obj->objectId));
+@@ -1427,6 +1441,39 @@ static int yaffs_sync_fs(struct super_bl
static void yaffs_read_inode(struct inode *inode)
{
/* NB This is called as a side effect of other functions, but
static void yaffs_read_inode(struct inode *inode)
{
/* NB This is called as a side effect of other functions, but
+@@ -1448,6 +1495,7 @@ static void yaffs_read_inode(struct inod
yaffs_GrossUnlock(dev);
}
yaffs_GrossUnlock(dev);
}
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
+@@ -348,6 +348,50 @@ int phy_ethtool_gset(struct phy_device *
}
EXPORT_SYMBOL(phy_ethtool_gset);
}
EXPORT_SYMBOL(phy_ethtool_gset);
* @phydev: the phy_device struct
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
* @phydev: the phy_device struct
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
+@@ -399,6 +399,7 @@ void phy_start_machine(struct phy_device
void phy_stop_machine(struct phy_device *phydev);
int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
void phy_stop_machine(struct phy_device *phydev);
int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
+@@ -132,6 +132,9 @@ static int mdio_bus_match(struct device
struct phy_device *phydev = to_phy_device(dev);
struct phy_driver *phydrv = to_phy_driver(drv);
struct phy_device *phydev = to_phy_device(dev);
struct phy_driver *phydrv = to_phy_driver(drv);
}
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
}
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
+@@ -325,6 +325,11 @@ struct phy_driver {
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
+@@ -65,6 +65,11 @@ config REALTEK_PHY
---help---
Supports the Realtek 821x PHY.
---help---
Supports the Realtek 821x PHY.
depends on PHYLIB=y
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
depends on PHYLIB=y
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
+@@ -12,6 +12,7 @@ obj-$(CONFIG_SMSC_PHY) += smsc.o
obj-$(CONFIG_VITESSE_PHY) += vitesse.o
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
obj-$(CONFIG_VITESSE_PHY) += vitesse.o
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
+@@ -53,6 +53,18 @@ static void phy_device_release(struct de
phy_device_free(to_phy_device(dev));
}
phy_device_free(to_phy_device(dev));
}
struct phy_device* phy_device_create(struct mii_bus *bus, int addr, int phy_id)
{
struct phy_device *dev;
struct phy_device* phy_device_create(struct mii_bus *bus, int addr, int phy_id)
{
struct phy_device *dev;
+@@ -78,6 +90,8 @@ struct phy_device* phy_device_create(str
dev->bus = bus;
dev->state = PHY_DOWN;
dev->bus = bus;
dev->state = PHY_DOWN;
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
+@@ -295,6 +295,17 @@ struct phy_device {
void (*adjust_link)(struct net_device *dev);
void (*adjust_state)(struct net_device *dev);
void (*adjust_link)(struct net_device *dev);
void (*adjust_state)(struct net_device *dev);
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
+@@ -595,6 +595,7 @@ struct net_device
void *ax25_ptr; /* AX.25 specific data */
struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data,
assign before registering */
void *ax25_ptr; /* AX.25 specific data */
struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data,
assign before registering */
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
+@@ -70,6 +70,12 @@ config ADM6996_PHY
---help---
Currently supports the ADM6996F switch
---help---
Currently supports the ADM6996F switch
depends on PHYLIB=y
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
depends on PHYLIB=y
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
+@@ -13,6 +13,7 @@ obj-$(CONFIG_VITESSE_PHY) += vitesse.o
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
obj-$(CONFIG_ADM6996_PHY) += adm6996.o
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
obj-$(CONFIG_ADM6996_PHY) += adm6996.o
/**
* mdiobus_register - bring up all the PHYs on a given bus and attach them to bus
* @bus: target mii_bus
/**
* mdiobus_register - bring up all the PHYs on a given bus and attach them to bus
* @bus: target mii_bus
+@@ -85,6 +91,7 @@ int mdiobus_register(struct mii_bus *bus
phydev->dev.parent = bus->dev;
phydev->dev.bus = &mdio_bus_type;
phydev->dev.parent = bus->dev;
phydev->dev.bus = &mdio_bus_type;
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
+@@ -930,6 +930,8 @@ and is between 256 and 4096 characters.
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
+@@ -59,12 +59,39 @@ Table of Contents
p) Freescale Synchronous Serial Interface
q) USB EHCI controllers
p) Freescale Synchronous Serial Interface
q) USB EHCI controllers
Appendix A - Sample SOC node for MPC8540
Appendix A - Sample SOC node for MPC8540
+@@ -1269,10 +1296,6 @@ platforms are moved over to use the flat
- phy-connection-type : a string naming the controller/PHY interface type,
i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "sgmii",
"tbi", or "rtbi". This property is only really needed if the connection
- phy-connection-type : a string naming the controller/PHY interface type,
i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "sgmii",
"tbi", or "rtbi". This property is only really needed if the connection
+@@ -1622,8 +1645,7 @@ platforms are moved over to use the flat
- device_type : should be "network", "hldc", "uart", "transparent"
"bisync", "atm", or "serial".
- compatible : could be "ucc_geth" or "fsl_atm" and so on.
- device_type : should be "network", "hldc", "uart", "transparent"
"bisync", "atm", or "serial".
- compatible : could be "ucc_geth" or "fsl_atm" and so on.
- reg : Offset and length of the register set for the device
- interrupts : <a b> where a is the interrupt number and b is a
field that represents an encoding of the sense and level
- reg : Offset and length of the register set for the device
- interrupts : <a b> where a is the interrupt number and b is a
field that represents an encoding of the sense and level
+@@ -1667,10 +1689,6 @@ platforms are moved over to use the flat
- phy-handle : The phandle for the PHY connected to this controller.
Recommended properties:
- phy-handle : The phandle for the PHY connected to this controller.
Recommended properties:
- phy-connection-type : a string naming the controller/PHY interface type,
i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id" (Internal
Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only),
- phy-connection-type : a string naming the controller/PHY interface type,
i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id" (Internal
Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only),
+@@ -1680,8 +1698,7 @@ platforms are moved over to use the flat
ucc@2000 {
device_type = "network";
compatible = "ucc_geth";
ucc@2000 {
device_type = "network";
compatible = "ucc_geth";
reg = <2000 200>;
interrupts = <a0 0>;
interrupt-parent = <700>;
reg = <2000 200>;
interrupts = <a0 0>;
interrupt-parent = <700>;
+@@ -1995,7 +2012,6 @@ platforms are moved over to use the flat
interrupts = <20 8>;
interrupt-parent = <&PIC>;
phy-handle = <&PHY0>;
interrupts = <20 8>;
interrupt-parent = <&PIC>;
phy-handle = <&PHY0>;
fsl,cpm-command = <12000300>;
};
fsl,cpm-command = <12000300>;
};
+@@ -2217,12 +2233,6 @@ platforms are moved over to use the flat
EMAC, that is the content of the current (bogus) "phy-port"
property.
EMAC, that is the content of the current (bogus) "phy-port"
property.
Optional properties:
- phy-address : 1 cell, optional, MDIO address of the PHY. If absent,
a search is performed.
Optional properties:
- phy-address : 1 cell, optional, MDIO address of the PHY. If absent,
a search is performed.
+@@ -2246,7 +2256,6 @@ platforms are moved over to use the flat
Example:
EMAC0: ethernet@40000800 {
Example:
EMAC0: ethernet@40000800 {
device_type = "network";
compatible = "ibm,emac-440gp", "ibm,emac";
interrupt-parent = <&UIC1>;
device_type = "network";
compatible = "ibm,emac-440gp", "ibm,emac";
interrupt-parent = <&UIC1>;
+@@ -2817,9 +2826,528 @@ platforms are moved over to use the flat
===================================================
The device tree represents the busses and devices of a hardware
===================================================
The device tree represents the busses and devices of a hardware
+@@ -2905,6 +3433,54 @@ encodings listed below:
2 = high to low edge sensitive type enabled
3 = low to high edge sensitive type enabled
2 = high to low edge sensitive type enabled
3 = low to high edge sensitive type enabled
+ Currently I am parsing it manually.
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
+ Currently I am parsing it manually.
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
+@@ -49,6 +49,19 @@ config IRQ_PER_CPU
config RWSEM_GENERIC_SPINLOCK
bool
config RWSEM_GENERIC_SPINLOCK
bool
+@@ -81,6 +94,11 @@ config GENERIC_FIND_NEXT_BIT
config ARCH_NO_VIRT_TO_BUS
def_bool PPC64
config ARCH_NO_VIRT_TO_BUS
def_bool PPC64
+@@ -91,6 +109,7 @@ config PPC
select HAVE_OPROFILE
select HAVE_KPROBES
select HAVE_KRETPROBES
select HAVE_OPROFILE
select HAVE_KPROBES
select HAVE_KRETPROBES
+@@ -210,15 +229,6 @@ source kernel/Kconfig.hz
source kernel/Kconfig.preempt
source "fs/Kconfig.binfmt"
source kernel/Kconfig.preempt
source "fs/Kconfig.binfmt"
config HUGETLB_PAGE_SIZE_VARIABLE
bool
depends on HUGETLB_PAGE
config HUGETLB_PAGE_SIZE_VARIABLE
bool
depends on HUGETLB_PAGE
+@@ -307,6 +317,16 @@ config CRASH_DUMP
Don't change this unless you know what you are doing.
Don't change this unless you know what you are doing.
config PPCBUG_NVRAM
bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
default y if PPC_PREP
config PPCBUG_NVRAM
bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
default y if PPC_PREP
+@@ -381,6 +401,26 @@ config PPC_64K_PAGES
while on hardware with such support, it will be used to map
normal application pages.
while on hardware with such support, it will be used to map
normal application pages.
config PPC_SUBPAGE_PROT
bool "Support setting protections for 4k subpages"
depends on PPC_64K_PAGES
config PPC_SUBPAGE_PROT
bool "Support setting protections for 4k subpages"
depends on PPC_64K_PAGES
+@@ -490,6 +530,14 @@ config FSL_PCI
bool
select PPC_INDIRECT_PCI
bool
select PPC_INDIRECT_PCI
# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
config MCA
bool
# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
config MCA
bool
+@@ -663,22 +711,6 @@ config CONSISTENT_SIZE
hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
default "0x00200000" if NOT_COHERENT_CACHE
hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
default "0x00200000" if NOT_COHERENT_CACHE
depends on ADVANCED_OPTIONS && 8xx
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
depends on ADVANCED_OPTIONS && 8xx
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
+@@ -269,7 +269,7 @@ config PPC_EARLY_DEBUG_CPM_ADDR
hex "CPM UART early debug transmit descriptor address"
depends on PPC_EARLY_DEBUG_CPM
default "0xfa202008" if PPC_EP88XC
hex "CPM UART early debug transmit descriptor address"
depends on PPC_EARLY_DEBUG_CPM
default "0xfa202008" if PPC_EP88XC
This specifies the address of the transmit descriptor
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
This specifies the address of the transmit descriptor
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
+@@ -71,13 +71,11 @@ endif
LDFLAGS_vmlinux := -Bstatic
LDFLAGS_vmlinux := -Bstatic
CPP = $(CC) -E $(KBUILD_CFLAGS)
CHECKFLAGS += -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__
CPP = $(CC) -E $(KBUILD_CFLAGS)
CHECKFLAGS += -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__
+@@ -164,7 +162,7 @@ boot := arch/$(ARCH)/boot
$(BOOT_TARGETS): vmlinux
$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
$(BOOT_TARGETS): vmlinux
$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
define archhelp
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
define archhelp
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
+@@ -40,6 +40,7 @@ $(obj)/ebony.o: BOOTCFLAGS += -mcpu=405
$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405
$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405
$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405
$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405
$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405
$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405
zlib := inffast.c inflate.c inftrees.c
zlib := inffast.c inflate.c inftrees.c
+@@ -64,7 +65,8 @@ src-plat := of.c cuboot-52xx.c cuboot-82
cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \
fixed-head.S ep88xc.c ep405.c \
cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \
fixed-head.S ep88xc.c ep405.c \
cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot))
src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot))
+@@ -192,7 +194,7 @@ image-$(CONFIG_PPC_CHRP) += zImage.chrp
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
image-$(CONFIG_PPC_PMAC) += zImage.pmac
image-$(CONFIG_PPC_HOLLY) += zImage.holly
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
image-$(CONFIG_PPC_PMAC) += zImage.pmac
image-$(CONFIG_PPC_HOLLY) += zImage.holly
image-$(CONFIG_PPC_ISERIES) += zImage.iseries
image-$(CONFIG_DEFAULT_UIMAGE) += uImage
image-$(CONFIG_PPC_ISERIES) += zImage.iseries
image-$(CONFIG_DEFAULT_UIMAGE) += uImage
+@@ -216,6 +218,7 @@ image-$(CONFIG_RAINIER) += cuImage.rai
image-$(CONFIG_TAISHAN) += cuImage.taishan
image-$(CONFIG_KATMAI) += cuImage.katmai
image-$(CONFIG_WARP) += cuImage.warp
image-$(CONFIG_TAISHAN) += cuImage.taishan
image-$(CONFIG_KATMAI) += cuImage.katmai
image-$(CONFIG_WARP) += cuImage.warp
# Board ports in arch/powerpc/platform/8xx/Kconfig
image-$(CONFIG_PPC_MPC86XADS) += cuImage.mpc866ads
# Board ports in arch/powerpc/platform/8xx/Kconfig
image-$(CONFIG_PPC_MPC86XADS) += cuImage.mpc866ads
+@@ -255,6 +258,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
image-$(CONFIG_TQM8560) += cuImage.tqm8560
image-$(CONFIG_SBC8548) += cuImage.sbc8548
image-$(CONFIG_SBC8560) += cuImage.sbc8560
image-$(CONFIG_TQM8560) += cuImage.tqm8560
image-$(CONFIG_SBC8548) += cuImage.sbc8548
image-$(CONFIG_SBC8560) += cuImage.sbc8560
# Board ports in arch/powerpc/platform/embedded6xx/Kconfig
image-$(CONFIG_STORCENTER) += cuImage.storcenter
# Board ports in arch/powerpc/platform/embedded6xx/Kconfig
image-$(CONFIG_STORCENTER) += cuImage.storcenter
+@@ -285,11 +289,11 @@ $(obj)/zImage.%: vmlinux $(wrapperbits)
$(call if_changed,wrap,$*)
# dtbImage% - a dtbImage is a zImage with an embedded device tree blob
$(call if_changed,wrap,$*)
# dtbImage% - a dtbImage is a zImage with an embedded device tree blob
# This cannot be in the root of $(src) as the zImage rule always adds a $(obj)
# prefix
# This cannot be in the root of $(src) as the zImage rule always adds a $(obj)
# prefix
+@@ -302,14 +306,24 @@ $(obj)/zImage.iseries: vmlinux
$(obj)/uImage: vmlinux $(wrapperbits)
$(call if_changed,wrap,uboot)
$(obj)/uImage: vmlinux $(wrapperbits)
$(call if_changed,wrap,uboot)
# If there isn't a platform selected then just strip the vmlinux.
ifeq (,$(image-y))
# If there isn't a platform selected then just strip the vmlinux.
ifeq (,$(image-y))
+@@ -326,7 +340,7 @@ install: $(CONFIGURE) $(addprefix $(obj)
# anything not in $(targets)
clean-files += $(image-) $(initrd-) zImage zImage.initrd cuImage.* treeImage.* \
# anything not in $(targets)
clean-files += $(image-) $(initrd-) zImage zImage.initrd cuImage.* treeImage.* \
clean-kernel := vmlinux.strip vmlinux.bin
--- a/arch/powerpc/boot/bamboo.c
+++ b/arch/powerpc/boot/bamboo.c
clean-kernel := vmlinux.strip vmlinux.bin
--- a/arch/powerpc/boot/bamboo.c
+++ b/arch/powerpc/boot/bamboo.c
+@@ -33,7 +33,8 @@ static void bamboo_fixups(void)
ibm440ep_fixup_clocks(sysclk, 11059200, 25000000);
ibm4xx_sdram_fixup_memsize();
ibm4xx_quiesce_eth((u32 *)0xef600e00, (u32 *)0xef600f00);
ibm440ep_fixup_clocks(sysclk, 11059200, 25000000);
ibm4xx_sdram_fixup_memsize();
ibm4xx_quiesce_eth((u32 *)0xef600e00, (u32 *)0xef600f00);
struct cpm_scc {
u32 gsmrl;
struct cpm_scc {
u32 gsmrl;
+@@ -42,6 +43,22 @@ struct cpm_param {
u16 tbase;
u8 rfcr;
u8 tfcr;
u16 tbase;
u8 rfcr;
u8 tfcr;
+@@ -54,10 +71,10 @@ static void *cpcr;
static struct cpm_param *param;
static struct cpm_smc *smc;
static struct cpm_scc *scc;
static struct cpm_param *param;
static struct cpm_smc *smc;
static struct cpm_scc *scc;
static void (*do_cmd)(int op);
static void (*enable_port)(void);
static void (*do_cmd)(int op);
static void (*enable_port)(void);
+@@ -119,20 +136,25 @@ static int cpm_serial_open(void)
out_8(¶m->rfcr, 0x10);
out_8(¶m->tfcr, 0x10);
out_8(¶m->rfcr, 0x10);
out_8(¶m->tfcr, 0x10);
do_cmd(CPM_CMD_INIT_RX_TX);
do_cmd(CPM_CMD_INIT_RX_TX);
+@@ -175,10 +197,12 @@ static unsigned char cpm_serial_getc(voi
int cpm_console_init(void *devp, struct serial_console_data *scdp)
{
int cpm_console_init(void *devp, struct serial_console_data *scdp)
{
if (dt_is_compatible(devp, "fsl,cpm1-smc-uart")) {
is_smc = 1;
if (dt_is_compatible(devp, "fsl,cpm1-smc-uart")) {
is_smc = 1;
+@@ -202,63 +226,64 @@ int cpm_console_init(void *devp, struct
scdp->putc = cpm_serial_putc;
--- a/arch/powerpc/boot/cuboot-pq2.c
+++ b/arch/powerpc/boot/cuboot-pq2.c
scdp->putc = cpm_serial_putc;
--- a/arch/powerpc/boot/cuboot-pq2.c
+++ b/arch/powerpc/boot/cuboot-pq2.c
+@@ -128,7 +128,7 @@ static void fixup_pci(void)
u8 *soc_regs;
int i, len;
void *node, *parent_node;
u8 *soc_regs;
int i, len;
void *node, *parent_node;
node = finddevice("/pci");
if (!node || !dt_is_compatible(node, "fsl,pq2-pci"))
node = finddevice("/pci");
if (!node || !dt_is_compatible(node, "fsl,pq2-pci"))
+@@ -141,7 +141,7 @@ static void fixup_pci(void)
soc_regs = (u8 *)fsl_get_immr();
if (!soc_regs)
soc_regs = (u8 *)fsl_get_immr();
if (!soc_regs)
dt_get_reg_format(node, &naddr, &nsize);
if (naddr != 3 || nsize != 2)
dt_get_reg_format(node, &naddr, &nsize);
if (naddr != 3 || nsize != 2)
+@@ -153,7 +153,7 @@ static void fixup_pci(void)
dt_get_reg_format(parent_node, &naddr, &nsize);
if (naddr != 1 || nsize != 1)
dt_get_reg_format(parent_node, &naddr, &nsize);
if (naddr != 1 || nsize != 1)
len = getprop(node, "ranges", pci_ranges_buf,
sizeof(pci_ranges_buf));
len = getprop(node, "ranges", pci_ranges_buf,
sizeof(pci_ranges_buf));
+@@ -170,14 +170,20 @@ static void fixup_pci(void)
}
if (!mem || !mmio || !io)
}
if (!mem || !mmio || !io)
out_be32(&pci_regs[1][0], mem_base->phys_addr | 1);
out_be32(&pci_regs[2][0], ~(mem->size[1] + mmio->size[1] - 1));
out_be32(&pci_regs[1][0], mem_base->phys_addr | 1);
out_be32(&pci_regs[2][0], ~(mem->size[1] + mmio->size[1] - 1));
+@@ -201,8 +207,9 @@ static void fixup_pci(void)
out_le32(&pci_regs[0][58], 0);
out_le32(&pci_regs[0][60], 0);
out_le32(&pci_regs[0][58], 0);
out_le32(&pci_regs[0][60], 0);
/* If PCI is disabled, drive RST high to enable. */
if (!(in_le32(&pci_regs[0][32]) & 1)) {
/* If PCI is disabled, drive RST high to enable. */
if (!(in_le32(&pci_regs[0][32]) & 1)) {
+@@ -228,7 +235,11 @@ static void fixup_pci(void)
static void pq2_platform_fixups(void)
--- a/arch/powerpc/boot/cuboot-rainier.c
+++ b/arch/powerpc/boot/cuboot-rainier.c
static void pq2_platform_fixups(void)
--- a/arch/powerpc/boot/cuboot-rainier.c
+++ b/arch/powerpc/boot/cuboot-rainier.c
+@@ -42,7 +42,8 @@ static void rainier_fixups(void)
ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
ibm4xx_denali_fixup_memsize();
ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
ibm4xx_denali_fixup_memsize();
void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
--- a/arch/powerpc/boot/cuboot-sequoia.c
+++ b/arch/powerpc/boot/cuboot-sequoia.c
void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
--- a/arch/powerpc/boot/cuboot-sequoia.c
+++ b/arch/powerpc/boot/cuboot-sequoia.c
+@@ -42,7 +42,8 @@ static void sequoia_fixups(void)
ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
ibm4xx_denali_fixup_memsize();
ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
ibm4xx_denali_fixup_memsize();
void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
--- a/arch/powerpc/boot/cuboot-taishan.c
+++ b/arch/powerpc/boot/cuboot-taishan.c
void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
--- a/arch/powerpc/boot/cuboot-taishan.c
+++ b/arch/powerpc/boot/cuboot-taishan.c
+@@ -40,7 +40,8 @@ static void taishan_fixups(void)
ibm4xx_sdram_fixup_memsize();
ibm4xx_sdram_fixup_memsize();
}
--- a/arch/powerpc/boot/cuboot-warp.c
+++ b/arch/powerpc/boot/cuboot-warp.c
}
--- a/arch/powerpc/boot/cuboot-warp.c
+++ b/arch/powerpc/boot/cuboot-warp.c
+@@ -24,7 +24,7 @@ static void warp_fixups(void)
ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
ibm4xx_sdram_fixup_memsize();
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
ibm4xx_sdram_fixup_memsize();
ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
+}
--- a/arch/powerpc/boot/devtree.c
+++ b/arch/powerpc/boot/devtree.c
+}
--- a/arch/powerpc/boot/devtree.c
+++ b/arch/powerpc/boot/devtree.c
+@@ -350,3 +350,23 @@ int dt_is_compatible(void *node, const c
*
* This file is licensed under
* the terms of the GNU General Public License version 2. This program
*
* This file is licensed under
* the terms of the GNU General Public License version 2. This program
+@@ -17,6 +18,8 @@ XXXX add flash parts, rtc, ??
/ {
model = "KuroboxHD";
compatible = "linkstation";
/ {
model = "KuroboxHD";
compatible = "linkstation";
+@@ -35,19 +38,19 @@ XXXX add flash parts, rtc, ??
PowerPC,603e { /* Really 8241 */
device_type = "cpu";
PowerPC,603e { /* Really 8241 */
device_type = "cpu";
};
soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */
};
soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */
+@@ -56,26 +59,26 @@ XXXX add flash parts, rtc, ??
device_type = "soc";
compatible = "mpc10x";
store-gathering = <0>; /* 0 == off, !0 == on */
device_type = "soc";
compatible = "mpc10x";
store-gathering = <0>; /* 0 == off, !0 == on */
+@@ -83,9 +86,9 @@ XXXX add flash parts, rtc, ??
cell-index = <0>;
device_type = "serial";
compatible = "ns16550";
cell-index = <0>;
device_type = "serial";
compatible = "ns16550";
interrupts = <9 0>;
interrupt-parent = <&mpic>;
};
interrupts = <9 0>;
interrupt-parent = <&mpic>;
};
+@@ -94,10 +97,10 @@ XXXX add flash parts, rtc, ??
cell-index = <1>;
device_type = "serial";
compatible = "ns16550";
cell-index = <1>;
device_type = "serial";
compatible = "ns16550";
interrupt-parent = <&mpic>;
};
interrupt-parent = <&mpic>;
};
+@@ -107,7 +110,7 @@ XXXX add flash parts, rtc, ??
device_type = "open-pic";
compatible = "chrp,open-pic";
interrupt-controller;
device_type = "open-pic";
compatible = "chrp,open-pic";
interrupt-controller;
+@@ -116,29 +119,29 @@ XXXX add flash parts, rtc, ??
#interrupt-cells = <1>;
device_type = "pci";
compatible = "mpc10x-pci";
#interrupt-cells = <1>;
device_type = "pci";
compatible = "mpc10x-pci";
*
* This file is licensed under
* the terms of the GNU General Public License version 2. This program
*
* This file is licensed under
* the terms of the GNU General Public License version 2. This program
+@@ -17,6 +18,8 @@ XXXX add flash parts, rtc, ??
/ {
model = "KuroboxHG";
compatible = "linkstation";
/ {
model = "KuroboxHG";
compatible = "linkstation";
+@@ -35,19 +38,19 @@ XXXX add flash parts, rtc, ??
PowerPC,603e { /* Really 8241 */
device_type = "cpu";
PowerPC,603e { /* Really 8241 */
device_type = "cpu";
};
soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */
};
soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */
+@@ -56,26 +59,26 @@ XXXX add flash parts, rtc, ??
device_type = "soc";
compatible = "mpc10x";
store-gathering = <0>; /* 0 == off, !0 == on */
device_type = "soc";
compatible = "mpc10x";
store-gathering = <0>; /* 0 == off, !0 == on */
+@@ -83,9 +86,9 @@ XXXX add flash parts, rtc, ??
cell-index = <0>;
device_type = "serial";
compatible = "ns16550";
cell-index = <0>;
device_type = "serial";
compatible = "ns16550";
interrupts = <9 0>;
interrupt-parent = <&mpic>;
};
interrupts = <9 0>;
interrupt-parent = <&mpic>;
};
+@@ -94,10 +97,10 @@ XXXX add flash parts, rtc, ??
cell-index = <1>;
device_type = "serial";
compatible = "ns16550";
cell-index = <1>;
device_type = "serial";
compatible = "ns16550";
interrupt-parent = <&mpic>;
};
interrupt-parent = <&mpic>;
};
+@@ -107,7 +110,7 @@ XXXX add flash parts, rtc, ??
device_type = "open-pic";
compatible = "chrp,open-pic";
interrupt-controller;
device_type = "open-pic";
compatible = "chrp,open-pic";
interrupt-controller;
+@@ -116,29 +119,29 @@ XXXX add flash parts, rtc, ??
#interrupt-cells = <1>;
device_type = "pci";
compatible = "mpc10x-pci";
#interrupt-cells = <1>;
device_type = "pci";
compatible = "mpc10x-pci";
+};
--- a/arch/powerpc/boot/ebony.c
+++ b/arch/powerpc/boot/ebony.c
+};
--- a/arch/powerpc/boot/ebony.c
+++ b/arch/powerpc/boot/ebony.c
+@@ -75,7 +75,8 @@ static void ebony_fixups(void)
ibm440gp_fixup_clocks(sysclk, 6 * 1843200);
ibm4xx_sdram_fixup_memsize();
ibm440gp_fixup_clocks(sysclk, 6 * 1843200);
ibm4xx_sdram_fixup_memsize();
exit(); \
--- a/arch/powerpc/boot/mpc52xx-psc.c
+++ b/arch/powerpc/boot/mpc52xx-psc.c
exit(); \
--- a/arch/powerpc/boot/mpc52xx-psc.c
+++ b/arch/powerpc/boot/mpc52xx-psc.c
+@@ -51,14 +51,9 @@ static unsigned char psc_getc(void)
int mpc5200_psc_console_init(void *devp, struct serial_console_data *scdp)
{
int mpc5200_psc_console_init(void *devp, struct serial_console_data *scdp)
{
scdp->putc = psc_putc;
--- a/arch/powerpc/boot/mpsc.c
+++ b/arch/powerpc/boot/mpsc.c
scdp->putc = psc_putc;
--- a/arch/powerpc/boot/mpsc.c
+++ b/arch/powerpc/boot/mpsc.c
+@@ -141,7 +141,7 @@ int mpsc_console_init(void *devp, struct
if (mpscintr_base == NULL)
goto err_out;
if (mpscintr_base == NULL)
goto err_out;
reg_set = (int)v;
--- a/arch/powerpc/boot/mv64x60.c
+++ b/arch/powerpc/boot/mv64x60.c
reg_set = (int)v;
--- a/arch/powerpc/boot/mv64x60.c
+++ b/arch/powerpc/boot/mv64x60.c
+@@ -535,7 +535,7 @@ u8 *mv64x60_get_bridge_pbase(void)
if (devp == NULL)
goto err_out;
if (getprop(devp, "reg", v, sizeof(v)) != sizeof(v))
if (devp == NULL)
goto err_out;
if (getprop(devp, "reg", v, sizeof(v)) != sizeof(v))
+@@ -553,7 +553,7 @@ u8 *mv64x60_get_bridge_base(void)
if (getprop(devp, "virtual-reg", &v, sizeof(v)) != sizeof(v))
--- a/arch/powerpc/boot/mv64x60_i2c.c
+++ b/arch/powerpc/boot/mv64x60_i2c.c
if (getprop(devp, "virtual-reg", &v, sizeof(v)) != sizeof(v))
--- a/arch/powerpc/boot/mv64x60_i2c.c
+++ b/arch/powerpc/boot/mv64x60_i2c.c
+@@ -185,7 +185,7 @@ int mv64x60_i2c_open(void)
if (getprop(devp, "virtual-reg", &v, sizeof(v)) != sizeof(v))
--- a/arch/powerpc/boot/ns16550.c
+++ b/arch/powerpc/boot/ns16550.c
if (getprop(devp, "virtual-reg", &v, sizeof(v)) != sizeof(v))
--- a/arch/powerpc/boot/ns16550.c
+++ b/arch/powerpc/boot/ns16550.c
+@@ -55,15 +55,9 @@ static u8 ns16550_tstc(void)
int ns16550_console_init(void *devp, struct serial_console_data *scdp)
{
int n;
int ns16550_console_init(void *devp, struct serial_console_data *scdp)
{
int n;
if (n != sizeof(reg_shift))
--- a/arch/powerpc/boot/ops.h
+++ b/arch/powerpc/boot/ops.h
if (n != sizeof(reg_shift))
--- a/arch/powerpc/boot/ops.h
+++ b/arch/powerpc/boot/ops.h
+@@ -95,6 +95,7 @@ int dt_xlate_reg(void *node, int res, un
int dt_xlate_addr(void *node, u32 *buf, int buflen, unsigned long *xlated_addr);
int dt_is_compatible(void *node, const char *compat);
void dt_get_reg_format(void *node, u32 *naddr, u32 *nsize);
int dt_xlate_addr(void *node, u32 *buf, int buflen, unsigned long *xlated_addr);
int dt_is_compatible(void *node, const char *compat);
void dt_get_reg_format(void *node, u32 *naddr, u32 *nsize);
{
--- a/arch/powerpc/boot/prpmc2800.c
+++ b/arch/powerpc/boot/prpmc2800.c
{
--- a/arch/powerpc/boot/prpmc2800.c
+++ b/arch/powerpc/boot/prpmc2800.c
+@@ -344,20 +344,20 @@ static void prpmc2800_bridge_setup(u32 m
acc_bits);
/* Get the cpu -> pci i/o & mem mappings from the device tree */
acc_bits);
/* Get the cpu -> pci i/o & mem mappings from the device tree */
enables = in_le32((u32 *)(bridge_base + MV64x60_CPU_BAR_ENABLE));
enables |= 0x0007fe00; /* Disable all cpu->pci windows */
enables = in_le32((u32 *)(bridge_base + MV64x60_CPU_BAR_ENABLE));
enables |= 0x0007fe00; /* Disable all cpu->pci windows */
+@@ -429,9 +429,9 @@ static void prpmc2800_fixups(void)
setprop(devp, "model", model, l);
/* Set /cpus/PowerPC,7447/clock-frequency */
setprop(devp, "model", model, l);
/* Set /cpus/PowerPC,7447/clock-frequency */
v[0] = bip->core_speed;
setprop(devp, "clock-frequency", &v[0], sizeof(v[0]));
v[0] = bip->core_speed;
setprop(devp, "clock-frequency", &v[0], sizeof(v[0]));
+@@ -443,16 +443,17 @@ static void prpmc2800_fixups(void)
v[1] = bip->mem_size;
setprop(devp, "reg", v, sizeof(v));
v[1] = bip->mem_size;
setprop(devp, "reg", v, sizeof(v));
*
* The PS3 has a single processor with two threads.
*/
*
* The PS3 has a single processor with two threads.
*/
+@@ -47,8 +48,6 @@ __system_reset_overlay:
mfspr r3, 0x88
cntlzw. r3, r3
mfspr r3, 0x88
cntlzw. r3, r3
beq 1f
/* Secondary goes to __secondary_hold in kernel. */
beq 1f
/* Secondary goes to __secondary_hold in kernel. */
+@@ -57,8 +56,14 @@ __system_reset_overlay:
or 31, 31, 31 /* db16cyc */
or 31, 31, 31 /* db16cyc */
or 31, 31, 31 /* db16cyc */
or 31, 31, 31 /* db16cyc */
+@@ -67,16 +72,18 @@ __system_reset_overlay:
u64 in_4, u64 in_5, u64 *out_1, u64 *out_2);
#ifdef DEBUG
u64 in_4, u64 in_5, u64 *out_1, u64 *out_2);
#ifdef DEBUG
+@@ -46,6 +46,7 @@ BSS_STACK(4096);
* edit the command line passed to vmlinux (by setting /chosen/bootargs).
* The buffer is put in it's own section so that tools may locate it easier.
*/
* edit the command line passed to vmlinux (by setting /chosen/bootargs).
* The buffer is put in it's own section so that tools may locate it easier.
*/
static char cmdline[COMMAND_LINE_SIZE]
__attribute__((__section__("__builtin_cmdline")));
static char cmdline[COMMAND_LINE_SIZE]
__attribute__((__section__("__builtin_cmdline")));
+@@ -75,7 +76,7 @@ static void ps3_exit(void)
static int ps3_repository_read_rm_size(u64 *rm_size)
{
static int ps3_repository_read_rm_size(u64 *rm_size)
{
u64 lpar_id;
u64 ppe_id;
u64 v2;
u64 lpar_id;
u64 ppe_id;
u64 v2;
+@@ -114,16 +115,17 @@ void ps3_copy_vectors(void)
{
extern char __system_reset_kernel[];
{
extern char __system_reset_kernel[];
console_ops.write = ps3_console_write;
platform_ops.exit = ps3_exit;
console_ops.write = ps3_console_write;
platform_ops.exit = ps3_exit;
+@@ -151,6 +153,11 @@ void platform_init(void)
printf(" flat tree at 0x%lx\n\r", ft_addr);
printf(" flat tree at 0x%lx\n\r", ft_addr);
ps3_exit();
--- a/arch/powerpc/boot/serial.c
+++ b/arch/powerpc/boot/serial.c
ps3_exit();
--- a/arch/powerpc/boot/serial.c
+++ b/arch/powerpc/boot/serial.c
+@@ -119,7 +119,7 @@ int serial_console_init(void)
if (dt_is_compatible(devp, "ns16550"))
rc = ns16550_console_init(devp, &serial_cd);
if (dt_is_compatible(devp, "ns16550"))
rc = ns16550_console_init(devp, &serial_cd);
+}
--- a/arch/powerpc/boot/treeboot-walnut.c
+++ b/arch/powerpc/boot/treeboot-walnut.c
+}
--- a/arch/powerpc/boot/treeboot-walnut.c
+++ b/arch/powerpc/boot/treeboot-walnut.c
+@@ -68,7 +68,7 @@ static void walnut_fixups(void)
ibm4xx_quiesce_eth((u32 *)0xef600800, NULL);
ibm4xx_fixup_ebc_ranges("/plb/ebc");
walnut_flashsel_fixup();
ibm4xx_quiesce_eth((u32 *)0xef600800, NULL);
ibm4xx_fixup_ebc_ranges("/plb/ebc");
walnut_flashsel_fixup();
+2: b _zimage_start_lib
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
+2: b _zimage_start_lib
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
+@@ -174,7 +174,7 @@ cuboot*)
*-mpc83*)
platformo=$object/cuboot-83xx.o
;;
*-mpc83*)
platformo=$object/cuboot-83xx.o
;;
platformo=$object/cuboot-85xx-cpm2.o
;;
*-mpc85*|*-tqm8540|*-sbc85*)
platformo=$object/cuboot-85xx-cpm2.o
;;
*-mpc85*|*-tqm8540|*-sbc85*)
+@@ -199,6 +199,10 @@ adder875-redboot)
platformo="$object/fixed-head.o $object/redboot-8xx.o"
binary=y
;;
platformo="$object/fixed-head.o $object/redboot-8xx.o"
binary=y
;;
esac
vmz="$tmpdir/`basename \"$kernel\"`.$ext"
esac
vmz="$tmpdir/`basename \"$kernel\"`.$ext"
+@@ -226,10 +230,13 @@ if [ -n "$version" ]; then
uboot_version="-n Linux-$version"
fi
uboot_version="-n Linux-$version"
fi
$uboot_version -d "$vmz" "$ofile"
if [ -z "$cacheit" ]; then
rm -f "$vmz"
$uboot_version -d "$vmz" "$ofile"
if [ -z "$cacheit" ]; then
rm -f "$vmz"
+@@ -298,15 +305,16 @@ treeboot*)
system_reset_overlay=0x`${CROSS}nm "$ofile" \
| grep ' __system_reset_overlay$' \
system_reset_overlay=0x`${CROSS}nm "$ofile" \
| grep ' __system_reset_overlay$' \
+@@ -317,7 +325,7 @@ ps3)
| cut -d' ' -f1`
system_reset_kernel=`printf "%d" $system_reset_kernel`
overlay_dest="256"
| cut -d' ' -f1`
system_reset_kernel=`printf "%d" $system_reset_kernel`
overlay_dest="256"
#
# CONFIG_PPC64 is not set
#
# CONFIG_PPC64 is not set
+@@ -74,8 +74,6 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15
# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
CONFIG_LOG_BUF_SHIFT=15
# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
+@@ -243,7 +241,7 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
+@@ -1328,6 +1326,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
+@@ -77,8 +77,6 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
+@@ -276,7 +274,7 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
+@@ -1596,6 +1594,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
+@@ -77,8 +77,6 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
+@@ -261,7 +259,7 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
+@@ -1065,6 +1063,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
-# CONFIG_PPC_CLOCK is not set
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
-# CONFIG_PPC_CLOCK is not set
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
+@@ -333,7 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
+@@ -374,6 +374,7 @@ CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_IDE_TASK_IOCTL=y
CONFIG_IDE_PROC_FS=y
CONFIG_IDE_TASK_IOCTL=y
CONFIG_IDE_PROC_FS=y
+@@ -427,10 +428,129 @@ CONFIG_IDE_ARCH_OBSOLETE_INIT=y
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_MD is not set
# CONFIG_FUSION is not set
# CONFIG_MD is not set
# CONFIG_FUSION is not set
+@@ -536,6 +656,7 @@ CONFIG_USB_PEGASUS=y
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
+@@ -783,12 +904,14 @@ CONFIG_USB_UHCI_HCD=y
#
# may also be needed; see USB_STORAGE Help for more information
#
#
# may also be needed; see USB_STORAGE Help for more information
#
#
# CONFIG_PPC64 is not set
#
# CONFIG_PPC64 is not set
+@@ -201,6 +201,7 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PREEMPT is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_MATH_EMULATION=y
# CONFIG_IOMMU_HELPER is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_MATH_EMULATION=y
# CONFIG_IOMMU_HELPER is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+@@ -353,7 +354,90 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
CONFIG_OF_DEVICE=y
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
CONFIG_OF_DEVICE=y
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
+@@ -362,6 +446,7 @@ CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=32768
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=32768
+@@ -469,6 +554,15 @@ CONFIG_NETDEV_10000=y
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
#
# 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_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
+@@ -563,6 +657,7 @@ CONFIG_I2C_MPC=y
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set
#
# Miscellaneous I2C Chip support
#
# Miscellaneous I2C Chip support
+@@ -648,6 +743,11 @@ CONFIG_WATCHDOG=y
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
+@@ -664,6 +764,7 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
+@@ -686,6 +787,14 @@ CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
+@@ -715,8 +824,55 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
# CONFIG_USB_R8A66597_HCD is not set
#
# CONFIG_USB_R8A66597_HCD is not set
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
+@@ -792,6 +948,7 @@ CONFIG_TMPFS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# 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_MINIX_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
+@@ -862,6 +1019,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
#
# CONFIG_PPC64 is not set
#
# CONFIG_PPC64 is not set
+@@ -77,8 +77,6 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
+@@ -272,7 +270,7 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
# CONFIG_PCI_DEBUG is not set
CONFIG_PCCARD=m
# CONFIG_PCMCIA_DEBUG is not set
# CONFIG_PCI_DEBUG is not set
CONFIG_PCCARD=m
# CONFIG_PCMCIA_DEBUG is not set
+@@ -1895,6 +1893,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
#
# CONFIG_PPC64 is not set
#
# CONFIG_PPC64 is not set
+@@ -79,6 +79,7 @@ CONFIG_FAIR_GROUP_SCHED=y
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y
# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y
+@@ -113,6 +114,7 @@ CONFIG_SLUB=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
+@@ -143,7 +145,6 @@ CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
CONFIG_CLASSIC_RCU=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
CONFIG_CLASSIC_RCU=y
CONFIG_PPC4xx_PCI_EXPRESS=y
#
CONFIG_PPC4xx_PCI_EXPRESS=y
#
+@@ -161,12 +162,15 @@ CONFIG_TAISHAN=y
CONFIG_KATMAI=y
CONFIG_RAINIER=y
CONFIG_WARP=y
CONFIG_KATMAI=y
CONFIG_RAINIER=y
CONFIG_WARP=y
CONFIG_IBM440EP_ERR42=y
# CONFIG_IPIC is not set
# CONFIG_MPIC is not set
CONFIG_IBM440EP_ERR42=y
# CONFIG_IPIC is not set
# CONFIG_MPIC is not set
+@@ -199,7 +203,6 @@ CONFIG_HZ=250
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_MATH_EMULATION=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_MATH_EMULATION=y
+@@ -232,6 +235,7 @@ CONFIG_ISA_DMA_API=y
#
CONFIG_ZONE_DMA=y
CONFIG_PPC_INDIRECT_PCI=y
#
CONFIG_ZONE_DMA=y
CONFIG_PPC_INDIRECT_PCI=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y
+@@ -678,6 +682,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
+@@ -805,6 +810,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
+@@ -84,8 +84,6 @@ CONFIG_CGROUPS=y
# CONFIG_CGROUP_NS is not set
CONFIG_CPUSETS=y
# CONFIG_GROUP_SCHED is not set
# CONFIG_CGROUP_NS is not set
CONFIG_CPUSETS=y
# CONFIG_GROUP_SCHED is not set
# CONFIG_CGROUP_CPUACCT is not set
# CONFIG_RESOURCE_COUNTERS is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_CGROUP_CPUACCT is not set
# CONFIG_RESOURCE_COUNTERS is not set
CONFIG_SYSFS_DEPRECATED=y
+@@ -289,6 +287,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_IRQ_ALL_CPUS=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_IRQ_ALL_CPUS=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+@@ -335,7 +334,7 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not set
# CONFIG_PCI_DEBUG is not set
CONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not set
+@@ -1881,6 +1880,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
+@@ -83,8 +83,6 @@ CONFIG_CGROUPS=y
CONFIG_CGROUP_NS=y
CONFIG_CPUSETS=y
# CONFIG_GROUP_SCHED is not set
CONFIG_CGROUP_NS=y
CONFIG_CPUSETS=y
# CONFIG_GROUP_SCHED is not set
CONFIG_CGROUP_CPUACCT=y
# CONFIG_RESOURCE_COUNTERS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_CGROUP_CPUACCT=y
# CONFIG_RESOURCE_COUNTERS is not set
CONFIG_SYSFS_DEPRECATED=y
+@@ -237,6 +235,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_IRQ_ALL_CPUS=y
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=4
CONFIG_IRQ_ALL_CPUS=y
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=4
+@@ -283,7 +282,7 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
CONFIG_HOTPLUG_PCI=m
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
CONFIG_HOTPLUG_PCI=m
+@@ -1519,6 +1518,7 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
-# CONFIG_PPC_CLOCK is not set
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
-# CONFIG_PPC_CLOCK is not set
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
+@@ -67,6 +67,7 @@ obj-$(CONFIG_BOOTX_TEXT) += btext.o
obj-$(CONFIG_SMP) += smp.o
obj-$(CONFIG_KPROBES) += kprobes.o
obj-$(CONFIG_PPC_UDBG_16550) += legacy_serial.o udbg_16550.o
obj-$(CONFIG_SMP) += smp.o
obj-$(CONFIG_KPROBES) += kprobes.o
obj-$(CONFIG_PPC_UDBG_16550) += legacy_serial.o udbg_16550.o
#define DEFINE(sym, val) \
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
#define DEFINE(sym, val) \
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+@@ -60,7 +61,6 @@ int main(void)
DEFINE(AUDITCONTEXT, offsetof(struct task_struct, audit_context));
#else
DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
DEFINE(AUDITCONTEXT, offsetof(struct task_struct, audit_context));
#else
DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
#endif /* CONFIG_PPC64 */
DEFINE(KSP, offsetof(struct thread_struct, ksp));
#endif /* CONFIG_PPC64 */
DEFINE(KSP, offsetof(struct thread_struct, ksp));
+@@ -80,7 +80,6 @@ int main(void)
DEFINE(PGDIR, offsetof(struct thread_struct, pgdir));
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
DEFINE(THREAD_DBCR0, offsetof(struct thread_struct, dbcr0));
DEFINE(PGDIR, offsetof(struct thread_struct, pgdir));
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
DEFINE(THREAD_DBCR0, offsetof(struct thread_struct, dbcr0));
#endif
#ifdef CONFIG_SPE
DEFINE(THREAD_EVR0, offsetof(struct thread_struct, evr[0]));
#endif
#ifdef CONFIG_SPE
DEFINE(THREAD_EVR0, offsetof(struct thread_struct, evr[0]));
+@@ -325,6 +324,9 @@ int main(void)
DEFINE(PAGE_OFFSET_VSID, KERNEL_VSID(PAGE_OFFSET));
DEFINE(VMALLOC_START_ESID, GET_ESID(VMALLOC_START));
DEFINE(VMALLOC_START_VSID, KERNEL_VSID(VMALLOC_START));
DEFINE(PAGE_OFFSET_VSID, KERNEL_VSID(PAGE_OFFSET));
DEFINE(VMALLOC_START_ESID, GET_ESID(VMALLOC_START));
DEFINE(VMALLOC_START_VSID, KERNEL_VSID(VMALLOC_START));
* Benjamin Herrenschmidt <benh@kernel.crashing.org>
*
* This program is free software; you can redistribute it and/or
* Benjamin Herrenschmidt <benh@kernel.crashing.org>
*
* This program is free software; you can redistribute it and/or
+@@ -32,6 +32,9 @@ _GLOBAL(__setup_cpu_440grx)
bl __fixup_440A_mcheck
mtlr r4
blr
bl __fixup_440A_mcheck
mtlr r4
blr
b __fixup_440A_mcheck
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
b __fixup_440A_mcheck
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
+@@ -36,6 +36,8 @@ extern void __setup_cpu_440epx(unsigned
extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_440spe(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);
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);
+@@ -1397,6 +1399,30 @@ static struct cpu_spec __initdata cpu_sp
.machine_check = machine_check_440A,
.platform = "ppc440",
},
.machine_check = machine_check_440A,
.platform = "ppc440",
},
#endif /* CONFIG_44x */
#ifdef CONFIG_FSL_BOOKE
#ifdef CONFIG_E200
#endif /* CONFIG_44x */
#ifdef CONFIG_FSL_BOOKE
#ifdef CONFIG_E200
+@@ -1512,7 +1538,7 @@ struct cpu_spec * __init identify_cpu(un
*t = *s;
*PTRRELOC(&cur_cpu_spec) = &the_cpu_spec;
#if defined(CONFIG_PPC64) || defined(CONFIG_BOOKE)
*t = *s;
*PTRRELOC(&cur_cpu_spec) = &the_cpu_spec;
#if defined(CONFIG_PPC64) || defined(CONFIG_BOOKE)
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
+@@ -110,9 +110,9 @@ transfer_to_handler:
stw r11,PT_REGS(r12)
#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
/* Check to see if the dbcr0 register is set up to debug. Use the
stw r11,PT_REGS(r12)
#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
/* Check to see if the dbcr0 register is set up to debug. Use the
beq+ 3f
/* From user and task is ptraced - load up global dbcr0 */
li r12,-1 /* clear all pending debug events */
beq+ 3f
/* From user and task is ptraced - load up global dbcr0 */
li r12,-1 /* clear all pending debug events */
+@@ -120,6 +120,12 @@ transfer_to_handler:
lis r11,global_dbcr0@ha
tophys(r11,r11)
addi r11,r11,global_dbcr0@l
lis r11,global_dbcr0@ha
tophys(r11,r11)
addi r11,r11,global_dbcr0@l
lwz r12,0(r11)
mtspr SPRN_DBCR0,r12
lwz r12,4(r11)
lwz r12,0(r11)
mtspr SPRN_DBCR0,r12
lwz r12,4(r11)
+@@ -238,10 +244,10 @@ ret_from_syscall:
stw r11,_CCR(r1)
syscall_exit_cont:
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
stw r11,_CCR(r1)
syscall_exit_cont:
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
bnel- load_dbcr0
#endif
#ifdef CONFIG_44x
bnel- load_dbcr0
#endif
#ifdef CONFIG_44x
+@@ -666,10 +672,10 @@ user_exc_return: /* r10 contains MSR_KE
restore_user:
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
restore_user:
#if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
+@@ -879,6 +885,12 @@ load_dbcr0:
mfspr r10,SPRN_DBCR0
lis r11,global_dbcr0@ha
addi r11,r11,global_dbcr0@l
mfspr r10,SPRN_DBCR0
lis r11,global_dbcr0@ha
addi r11,r11,global_dbcr0@l
stw r10,0(r11)
mtspr SPRN_DBCR0,r0
lwz r10,4(r11)
stw r10,0(r11)
mtspr SPRN_DBCR0,r0
lwz r10,4(r11)
+@@ -891,7 +903,7 @@ load_dbcr0:
.section .bss
.align 4
global_dbcr0:
.section .bss
.align 4
global_dbcr0:
.section ".text"
.align 7
.section ".text"
.align 7
+@@ -88,6 +90,14 @@ system_call_common:
addi r9,r1,STACK_FRAME_OVERHEAD
ld r11,exception_marker@toc(r2)
std r11,-16(r9) /* "regshere" marker */
addi r9,r1,STACK_FRAME_OVERHEAD
ld r11,exception_marker@toc(r2)
std r11,-16(r9) /* "regshere" marker */
li r10,1
stb r10,PACASOFTIRQEN(r13)
stb r10,PACAHARDIRQEN(r13)
li r10,1
stb r10,PACASOFTIRQEN(r13)
stb r10,PACAHARDIRQEN(r13)
+@@ -102,7 +112,7 @@ BEGIN_FW_FTR_SECTION
b hardware_interrupt_entry
2:
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
b hardware_interrupt_entry
2:
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
mfmsr r11
ori r11,r11,MSR_EE
mtmsrd r11,1
mfmsr r11
ori r11,r11,MSR_EE
mtmsrd r11,1
+@@ -504,6 +514,10 @@ BEGIN_FW_FTR_SECTION
li r3,0
stb r3,PACASOFTIRQEN(r13) /* ensure we are soft-disabled */
li r3,0
stb r3,PACASOFTIRQEN(r13) /* ensure we are soft-disabled */
ori r10,r10,MSR_EE
mtmsrd r10 /* hard-enable again */
addi r3,r1,STACK_FRAME_OVERHEAD
ori r10,r10,MSR_EE
mtmsrd r10 /* hard-enable again */
addi r3,r1,STACK_FRAME_OVERHEAD
+@@ -512,7 +526,7 @@ BEGIN_FW_FTR_SECTION
4:
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
#endif
4:
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
#endif
/* extract EE bit and use it to restore paca->hard_enabled */
ld r3,_MSR(r1)
/* extract EE bit and use it to restore paca->hard_enabled */
ld r3,_MSR(r1)
+@@ -580,6 +594,16 @@ do_work:
bne restore
/* here we are preempting the current task */
1:
bne restore
/* here we are preempting the current task */
1:
/* 601 only have IBAT; cr0.eq is set on 601 when using this macro */
#define LOAD_BAT(n, reg, RA, RB) \
/* 601 only have IBAT; cr0.eq is set on 601 when using this macro */
#define LOAD_BAT(n, reg, RA, RB) \
+@@ -268,8 +269,8 @@ __secondary_hold_acknowledge:
li r10,MSR_KERNEL & ~(MSR_IR|MSR_DR); /* can take exceptions */ \
MTMSRD(r10); /* (except for mach check in rtas) */ \
stw r0,GPR0(r11); \
li r10,MSR_KERNEL & ~(MSR_IR|MSR_DR); /* can take exceptions */ \
MTMSRD(r10); /* (except for mach check in rtas) */ \
stw r0,GPR0(r11); \
stw r10,8(r11); \
SAVE_4GPRS(3, r11); \
SAVE_2GPRS(7, r11)
stw r10,8(r11); \
SAVE_4GPRS(3, r11); \
SAVE_2GPRS(7, r11)
+@@ -763,23 +764,6 @@ load_up_altivec:
b fast_exception_return
/*
b fast_exception_return
/*
* and save the AltiVec registers in its thread_struct.
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
* and save the AltiVec registers in its thread_struct.
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
+@@ -211,7 +211,7 @@ skpinv: addi r4,r4,1 /* Increment */
SET_IVOR(12, WatchdogTimer);
SET_IVOR(13, DataTLBError);
SET_IVOR(14, InstructionTLBError);
SET_IVOR(12, WatchdogTimer);
SET_IVOR(13, DataTLBError);
SET_IVOR(14, InstructionTLBError);
/* Establish the interrupt vector base */
lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
/* Establish the interrupt vector base */
lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
+@@ -578,7 +578,7 @@ interrupt_base:
b InstructionStorage
/* Debug Interrupt */
b InstructionStorage
/* Debug Interrupt */
/*
* We layout physical memory as follows:
/*
* We layout physical memory as follows:
+@@ -450,8 +449,8 @@ bad_stack:
*/
fast_exc_return_irq: /* restores irq state too */
ld r3,SOFTE(r1)
*/
fast_exc_return_irq: /* restores irq state too */
ld r3,SOFTE(r1)
rldicl r4,r12,49,63 /* get MSR_EE to LSB */
stb r4,PACAHARDIRQEN(r13) /* restore paca->hard_enabled */
b 1f
rldicl r4,r12,49,63 /* get MSR_EE to LSB */
stb r4,PACAHARDIRQEN(r13) /* restore paca->hard_enabled */
b 1f
+@@ -621,7 +620,7 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISER
mtlr r10
andi. r10,r12,MSR_RI /* check for unrecoverable exception */
mtlr r10
andi. r10,r12,MSR_RI /* check for unrecoverable exception */
.machine push
.machine "power4"
.machine push
.machine "power4"
+@@ -643,6 +642,22 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISER
rfid
b . /* prevent speculative execution */
rfid
b . /* prevent speculative execution */
unrecov_slb:
EXCEPTION_PROLOG_COMMON(0x4100, PACA_EXSLB)
DISABLE_INTS
unrecov_slb:
EXCEPTION_PROLOG_COMMON(0x4100, PACA_EXSLB)
DISABLE_INTS
+@@ -808,7 +823,7 @@ _STATIC(load_up_altivec)
* Hash table stuff
*/
.align 7
* Hash table stuff
*/
.align 7
std r3,_DAR(r1)
std r4,_DSISR(r1)
std r3,_DAR(r1)
std r4,_DSISR(r1)
+@@ -820,6 +835,27 @@ BEGIN_FTR_SECTION
END_FTR_SECTION_IFCLR(CPU_FTR_SLB)
/*
END_FTR_SECTION_IFCLR(CPU_FTR_SLB)
/*
* We need to set the _PAGE_USER bit if MSR_PR is set or if we are
* accessing a userspace segment (even from the kernel). We assume
* kernel addresses always have the high bit set.
* We need to set the _PAGE_USER bit if MSR_PR is set or if we are
* accessing a userspace segment (even from the kernel). We assume
* kernel addresses always have the high bit set.
+@@ -832,13 +868,6 @@ END_FTR_SECTION_IFCLR(CPU_FTR_SLB)
rlwimi r4,r5,22+2,31-2,31-2 /* Set _PAGE_EXEC if trap is 0x400 */
/*
rlwimi r4,r5,22+2,31-2,31-2 /* Set _PAGE_EXEC if trap is 0x400 */
/*
* r3 contains the faulting address
* r4 contains the required access permissions
* r5 contains the trap number
* r3 contains the faulting address
* r4 contains the required access permissions
* r5 contains the trap number
+@@ -848,7 +877,6 @@ END_FTR_SECTION_IFCLR(CPU_FTR_SLB)
bl .hash_page /* build HPTE if possible */
cmpdi r3,0 /* see if hash_page succeeded */
bl .hash_page /* build HPTE if possible */
cmpdi r3,0 /* see if hash_page succeeded */
BEGIN_FW_FTR_SECTION
/*
* If we had interrupts soft-enabled at the point where the
BEGIN_FW_FTR_SECTION
/*
* If we had interrupts soft-enabled at the point where the
+@@ -860,7 +888,7 @@ BEGIN_FW_FTR_SECTION
*/
beq 13f
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
*/
beq 13f
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
BEGIN_FW_FTR_SECTION
/*
* Here we have interrupts hard-disabled, so it is sufficient
BEGIN_FW_FTR_SECTION
/*
* Here we have interrupts hard-disabled, so it is sufficient
+@@ -874,11 +902,12 @@ END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISER
/*
* hash_page couldn't handle it, set soft interrupt enable back
/*
* hash_page couldn't handle it, set soft interrupt enable back
b 11f
/* Here we have a page fault that hash_page can't handle. */
b 11f
/* Here we have a page fault that hash_page can't handle. */
+@@ -1477,6 +1506,10 @@ _INIT_STATIC(start_here_multiplatform)
addi r2,r2,0x4000
add r2,r2,r26
addi r2,r2,0x4000
add r2,r2,r26
/* Do very early kernel initializations, including initial hash table,
* stab and slb setup before we turn on relocation. */
/* Do very early kernel initializations, including initial hash table,
* stab and slb setup before we turn on relocation. */
+@@ -1505,10 +1538,6 @@ _INIT_GLOBAL(start_here_common)
li r0,0
stdu r0,-STACK_FRAME_OVERHEAD(r1)
li r0,0
stdu r0,-STACK_FRAME_OVERHEAD(r1)
#define DEBUG_SPRG SPRN_SPRG6W
#ifdef CONFIG_SMP
#define DEBUG_SPRG SPRN_SPRG6W
#ifdef CONFIG_SMP
+@@ -212,9 +221,8 @@ label:
* save (and later restore) the MSR via SPRN_CSRR1, which will still have
* the MSR_DE bit set.
*/
* save (and later restore) the MSR via SPRN_CSRR1, which will still have
* the MSR_DE bit set.
*/
DEBUG_EXCEPTION_PROLOG; \
\
/* \
DEBUG_EXCEPTION_PROLOG; \
\
/* \
+@@ -234,8 +242,8 @@ label:
cmplw r12,r10; \
blt+ 2f; /* addr below exception vectors */ \
\
cmplw r12,r10; \
blt+ 2f; /* addr below exception vectors */ \
\
cmplw r12,r10; \
bgt+ 2f; /* addr above exception vectors */ \
\
cmplw r12,r10; \
bgt+ 2f; /* addr above exception vectors */ \
\
+@@ -265,9 +273,9 @@ label:
2: mfspr r4,SPRN_DBSR; \
addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, debug_transfer_to_handler, ret_from_debug_exc)
2: mfspr r4,SPRN_DBSR; \
addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, debug_transfer_to_handler, ret_from_debug_exc)
CRITICAL_EXCEPTION_PROLOG; \
\
/* \
CRITICAL_EXCEPTION_PROLOG; \
\
/* \
+@@ -287,8 +295,8 @@ label:
cmplw r12,r10; \
blt+ 2f; /* addr below exception vectors */ \
\
cmplw r12,r10; \
blt+ 2f; /* addr below exception vectors */ \
\
cmplw r12,r10; \
bgt+ 2f; /* addr above exception vectors */ \
\
cmplw r12,r10; \
bgt+ 2f; /* addr above exception vectors */ \
\
+@@ -318,7 +326,6 @@ label:
2: mfspr r4,SPRN_DBSR; \
addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)
2: mfspr r4,SPRN_DBSR; \
addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)
START_EXCEPTION(InstructionStorage) \
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
START_EXCEPTION(InstructionStorage) \
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
+@@ -68,7 +68,9 @@ _ENTRY(_start);
mr r29,r5
mr r28,r6
mr r27,r7
mr r29,r5
mr r28,r6
mr r27,r7
/* We try to not make any assumptions about how the boot loader
* setup or used the TLBs. We invalidate all mappings from the
/* We try to not make any assumptions about how the boot loader
* setup or used the TLBs. We invalidate all mappings from the
+@@ -167,7 +169,28 @@ skpinv: addi r6,r6,1 /* Increment */
lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */
mtspr SPRN_MAS0,r7
lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */
mtspr SPRN_MAS0,r7
+@@ -177,12 +200,10 @@ skpinv: addi r6,r6,1 /* Increment */
ori r6,r6,(MAS1_TSIZE(BOOKE_PAGESZ_4K))@l
mtspr SPRN_MAS1,r6
mfspr r6,SPRN_MAS2
ori r6,r6,(MAS1_TSIZE(BOOKE_PAGESZ_4K))@l
mtspr SPRN_MAS1,r6
mfspr r6,SPRN_MAS2
+@@ -232,8 +253,7 @@ skpinv: addi r6,r6,1 /* Increment */
ori r6,r6,PAGE_OFFSET@l
rlwimi r6,r7,0,20,31
mtspr SPRN_MAS2,r6
ori r6,r6,PAGE_OFFSET@l
rlwimi r6,r7,0,20,31
mtspr SPRN_MAS2,r6
tlbwe
/* 7. Jump to KERNELBASE mapping */
tlbwe
/* 7. Jump to KERNELBASE mapping */
+@@ -283,7 +303,10 @@ skpinv: addi r6,r6,1 /* Increment */
SET_IVOR(12, WatchdogTimer);
SET_IVOR(13, DataTLBError);
SET_IVOR(14, InstructionTLBError);
SET_IVOR(12, WatchdogTimer);
SET_IVOR(13, DataTLBError);
SET_IVOR(14, InstructionTLBError);
SET_IVOR(32, SPEUnavailable);
SET_IVOR(33, SPEFloatingPointData);
SET_IVOR(34, SPEFloatingPointRound);
SET_IVOR(32, SPEUnavailable);
SET_IVOR(33, SPEFloatingPointData);
SET_IVOR(34, SPEFloatingPointRound);
+@@ -718,7 +741,10 @@ interrupt_base:
* Local functions
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
* Local functions
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
+@@ -183,7 +183,7 @@ static int ibmebus_create_devices(const
ret = ibmebus_create_device(child);
if (ret) {
printk(KERN_ERR "%s: failed to create device (%i)",
ret = ibmebus_create_device(child);
if (ret) {
printk(KERN_ERR "%s: failed to create device (%i)",
of_node_put(child);
break;
}
of_node_put(child);
break;
}
+@@ -269,7 +269,7 @@ static ssize_t ibmebus_store_probe(struc
if (bus_find_device(&ibmebus_bus_type, NULL, path,
ibmebus_match_path)) {
printk(KERN_WARNING "%s: %s has already been probed\n",
if (bus_find_device(&ibmebus_bus_type, NULL, path,
ibmebus_match_path)) {
printk(KERN_WARNING "%s: %s has already been probed\n",
rc = -EEXIST;
goto out;
}
rc = -EEXIST;
goto out;
}
+@@ -279,7 +279,7 @@ static ssize_t ibmebus_store_probe(struc
of_node_put(dn);
} else {
printk(KERN_WARNING "%s: no such device node: %s\n",
of_node_put(dn);
} else {
printk(KERN_WARNING "%s: no such device node: %s\n",
+@@ -308,7 +308,7 @@ static ssize_t ibmebus_store_remove(stru
return count;
} else {
printk(KERN_WARNING "%s: %s not on the bus\n",
return count;
} else {
printk(KERN_WARNING "%s: %s not on the bus\n",
kfree(path);
return -ENODEV;
kfree(path);
return -ENODEV;
+@@ -337,14 +337,14 @@ static int __init ibmebus_bus_init(void)
err = of_bus_type_init(&ibmebus_bus_type, "ibmebus");
if (err) {
printk(KERN_ERR "%s: failed to register IBM eBus.\n",
err = of_bus_type_init(&ibmebus_bus_type, "ibmebus");
if (err) {
printk(KERN_ERR "%s: failed to register IBM eBus.\n",
return err;
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
return err;
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
+@@ -520,7 +520,7 @@ void iommu_free_table(struct iommu_table
unsigned int order;
if (!tbl || !tbl->it_map) {
unsigned int order;
if (!tbl || !tbl->it_map) {
+@@ -530,7 +530,7 @@ void iommu_free_table(struct iommu_table
for (i = 0; i < (tbl->it_size/64); i++) {
if (tbl->it_map[i] != 0) {
printk(KERN_WARNING "%s: Unexpected TCEs for %s\n",
for (i = 0; i < (tbl->it_size/64); i++) {
if (tbl->it_map[i] != 0) {
printk(KERN_WARNING "%s: Unexpected TCEs for %s\n",
}
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
}
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
+@@ -114,7 +114,7 @@ static inline void set_soft_enabled(unsi
: : "r" (enable), "i" (offsetof(struct paca_struct, soft_enabled)));
}
: : "r" (enable), "i" (offsetof(struct paca_struct, soft_enabled)));
}
{
/*
* get_paca()->soft_enabled = en;
{
/*
* get_paca()->soft_enabled = en;
+@@ -174,6 +174,7 @@ void local_irq_restore(unsigned long en)
#endif /* CONFIG_PPC64 */
int show_interrupts(struct seq_file *p, void *v)
#endif /* CONFIG_PPC64 */
int show_interrupts(struct seq_file *p, void *v)
+@@ -310,8 +311,21 @@ void do_IRQ(struct pt_regs *regs)
handler = &__do_IRQ;
irqtp->task = curtp->task;
irqtp->flags = 0;
handler = &__do_IRQ;
irqtp->task = curtp->task;
irqtp->flags = 0;
if (irqtp->flags)
set_bits(irqtp->flags, &curtp->flags);
} else
if (irqtp->flags)
set_bits(irqtp->flags, &curtp->flags);
} else
+@@ -357,7 +371,7 @@ void irq_ctx_init(void)
memset((void *)softirq_ctx[i], 0, THREAD_SIZE);
tp = softirq_ctx[i];
tp->cpu = i;
memset((void *)softirq_ctx[i], 0, THREAD_SIZE);
tp = softirq_ctx[i];
tp->cpu = i;
tp = hardirq_ctx[i];
--- a/arch/powerpc/kernel/isa-bridge.c
+++ b/arch/powerpc/kernel/isa-bridge.c
tp = hardirq_ctx[i];
--- a/arch/powerpc/kernel/isa-bridge.c
+++ b/arch/powerpc/kernel/isa-bridge.c
+@@ -80,13 +80,13 @@ static void __devinit pci_process_ISA_OF
* (size depending on dev->n_addr_cells)
* cell 5: the size of the range
*/
* (size depending on dev->n_addr_cells)
* cell 5: the size of the range
*/
goto inval_range;
isa_addr = range->isa_addr.a_lo;
goto inval_range;
isa_addr = range->isa_addr.a_lo;
+@@ -99,7 +99,7 @@ static void __devinit pci_process_ISA_OF
*/
if ((pci_addr != 0) || (isa_addr != 0)) {
printk(KERN_ERR "unexpected isa to pci mapping: %s\n",
*/
if ((pci_addr != 0) || (isa_addr != 0)) {
printk(KERN_ERR "unexpected isa to pci mapping: %s\n",
--- a/arch/powerpc/kernel/lparcfg.c
+++ b/arch/powerpc/kernel/lparcfg.c
--- a/arch/powerpc/kernel/lparcfg.c
+++ b/arch/powerpc/kernel/lparcfg.c
+@@ -226,7 +226,7 @@ static void parse_system_parameter_strin
unsigned char *local_buffer = kmalloc(SPLPAR_MAXLENGTH, GFP_KERNEL);
if (!local_buffer) {
printk(KERN_ERR "%s %s kmalloc failure at line %d \n",
unsigned char *local_buffer = kmalloc(SPLPAR_MAXLENGTH, GFP_KERNEL);
if (!local_buffer) {
printk(KERN_ERR "%s %s kmalloc failure at line %d \n",
+@@ -243,14 +243,14 @@ static void parse_system_parameter_strin
if (call_status != 0) {
printk(KERN_INFO
"%s %s Error calling get-system-parameter (0x%x)\n",
if (call_status != 0) {
printk(KERN_INFO
"%s %s Error calling get-system-parameter (0x%x)\n",
kfree(local_buffer);
return;
}
kfree(local_buffer);
return;
}
+@@ -484,10 +484,10 @@ static ssize_t lparcfg_write(struct file
current_weight = (resource >> 5 * 8) & 0xFF;
pr_debug("%s: current_entitled = %lu, current_weight = %u\n",
current_weight = (resource >> 5 * 8) & 0xFF;
pr_debug("%s: current_entitled = %lu, current_weight = %u\n",
retval = plpar_hcall_norets(H_SET_PPP, *new_entitled_ptr,
*new_weight_ptr);
retval = plpar_hcall_norets(H_SET_PPP, *new_entitled_ptr,
*new_weight_ptr);
+@@ -502,7 +502,7 @@ static ssize_t lparcfg_write(struct file
retval = -EINVAL;
} else {
printk(KERN_WARNING "%s: received unknown hv return code %ld",
retval = -EINVAL;
} else {
printk(KERN_WARNING "%s: received unknown hv return code %ld",
*/
struct lppaca lppaca[] = {
[0 ... (NR_CPUS-1)] = {
*/
struct lppaca lppaca[] = {
[0 ... (NR_CPUS-1)] = {
+@@ -66,32 +65,17 @@ struct slb_shadow slb_shadow[] __cacheli
* processors. The processor VPD array needs one entry per physical
* processor (not thread).
*/
* processors. The processor VPD array needs one entry per physical
* processor (not thread).
*/
#ifdef CONFIG_PPC32
extern void transfer_to_handler(void);
extern void do_IRQ(struct pt_regs *regs);
#ifdef CONFIG_PPC32
extern void transfer_to_handler(void);
extern void do_IRQ(struct pt_regs *regs);
+@@ -58,7 +54,6 @@ extern void program_check_exception(stru
extern void single_step_exception(struct pt_regs *regs);
extern int sys_sigreturn(struct pt_regs *regs);
extern void single_step_exception(struct pt_regs *regs);
extern int sys_sigreturn(struct pt_regs *regs);
EXPORT_SYMBOL(clear_pages);
EXPORT_SYMBOL(copy_page);
EXPORT_SYMBOL(ISA_DMA_THRESHOLD);
EXPORT_SYMBOL(clear_pages);
EXPORT_SYMBOL(copy_page);
EXPORT_SYMBOL(ISA_DMA_THRESHOLD);
+@@ -79,6 +74,7 @@ EXPORT_SYMBOL(strncpy);
EXPORT_SYMBOL(strcat);
EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(strcmp);
EXPORT_SYMBOL(strcat);
EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(strcmp);
EXPORT_SYMBOL(csum_partial);
EXPORT_SYMBOL(csum_partial_copy_generic);
EXPORT_SYMBOL(csum_partial);
EXPORT_SYMBOL(csum_partial_copy_generic);
+@@ -192,3 +188,4 @@ EXPORT_SYMBOL(intercept_table);
EXPORT_SYMBOL(__mtdcr);
EXPORT_SYMBOL(__mfdcr);
#endif
+EXPORT_SYMBOL(empty_zero_page);
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
EXPORT_SYMBOL(__mtdcr);
EXPORT_SYMBOL(__mfdcr);
#endif
+EXPORT_SYMBOL(empty_zero_page);
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
+@@ -868,11 +868,6 @@ int sys_execve(unsigned long a0, unsigne
flush_spe_to_thread(current);
error = do_execve(filename, (char __user * __user *) a1,
(char __user * __user *) a2, regs);
flush_spe_to_thread(current);
error = do_execve(filename, (char __user * __user *) a1,
(char __user * __user *) a2, regs);
putname(filename);
out:
return error;
putname(filename);
out:
return error;
+@@ -919,20 +914,6 @@ int validate_sp(unsigned long sp, struct
return valid_irq_stack(sp, p, nbytes);
}
return valid_irq_stack(sp, p, nbytes);
}
EXPORT_SYMBOL(validate_sp);
unsigned long get_wchan(struct task_struct *p)
EXPORT_SYMBOL(validate_sp);
unsigned long get_wchan(struct task_struct *p)
+@@ -944,15 +925,15 @@ unsigned long get_wchan(struct task_stru
return 0;
sp = p->thread.ksp;
return 0;
sp = p->thread.ksp;
if (!in_sched_functions(ip))
return ip;
}
if (!in_sched_functions(ip))
return ip;
}
+@@ -981,12 +962,12 @@ void show_stack(struct task_struct *tsk,
lr = 0;
printk("Call Trace:\n");
do {
lr = 0;
printk("Call Trace:\n");
do {
if (!firstframe || ip != lr) {
printk("["REG"] ["REG"] ", sp, ip);
print_symbol("%s", ip);
if (!firstframe || ip != lr) {
printk("["REG"] ["REG"] ", sp, ip);
print_symbol("%s", ip);
+@@ -1000,8 +981,8 @@ void show_stack(struct task_struct *tsk,
* See if this is an exception frame.
* We look for the "regshere" marker in the current frame.
*/
* See if this is an exception frame.
* We look for the "regshere" marker in the current frame.
*/
#include <asm/kexec.h>
#ifdef DEBUG
#include <asm/kexec.h>
#ifdef DEBUG
+@@ -436,7 +437,7 @@ early_param("mem", early_parse_mem);
* The device tree may be allocated beyond our memory limit, or inside the
* crash kernel region for kdump. If so, move it out of the way.
*/
* The device tree may be allocated beyond our memory limit, or inside the
* crash kernel region for kdump. If so, move it out of the way.
*/
{
unsigned long start, size;
void *p;
{
unsigned long start, size;
void *p;
+@@ -1040,6 +1041,87 @@ static void __init early_reserve_mem(voi
void __init early_init_devtree(void *params)
{
DBG(" -> early_init_devtree(%p)\n", params);
void __init early_init_devtree(void *params)
{
DBG(" -> early_init_devtree(%p)\n", params);
+@@ -1052,6 +1134,11 @@ void __init early_init_devtree(void *par
of_scan_flat_dt(early_init_dt_scan_rtas, NULL);
#endif
of_scan_flat_dt(early_init_dt_scan_rtas, NULL);
#endif
/* Retrieve various informations from the /chosen node of the
* device-tree, including the platform type, initrd location and
* size, TCE reserve, and more ...
/* Retrieve various informations from the /chosen node of the
* device-tree, including the platform type, initrd location and
* size, TCE reserve, and more ...
+@@ -1072,6 +1159,7 @@ void __init early_init_devtree(void *par
reserve_kdump_trampoline();
reserve_crashkernel();
early_reserve_mem();
reserve_kdump_trampoline();
reserve_crashkernel();
early_reserve_mem();
lmb_enforce_memory_limit(memory_limit);
lmb_analyze();
lmb_enforce_memory_limit(memory_limit);
lmb_analyze();
+@@ -1244,12 +1332,14 @@ EXPORT_SYMBOL(of_node_put);
*/
void of_attach_node(struct device_node *np)
{
*/
void of_attach_node(struct device_node *np)
{
+@@ -1260,8 +1350,9 @@ void of_attach_node(struct device_node *
void of_detach_node(struct device_node *np)
{
struct device_node *parent;
void of_detach_node(struct device_node *np)
{
struct device_node *parent;
parent = np->parent;
if (!parent)
parent = np->parent;
if (!parent)
+@@ -1292,7 +1383,7 @@ void of_detach_node(struct device_node *
of_node_set_flag(np, OF_DETACHED);
out_unlock:
of_node_set_flag(np, OF_DETACHED);
out_unlock:
}
#ifdef CONFIG_PPC_PSERIES
}
#ifdef CONFIG_PPC_PSERIES
+@@ -1373,20 +1464,21 @@ __initcall(prom_reconfig_setup);
int prom_add_property(struct device_node* np, struct property* prop)
{
struct property **next;
int prom_add_property(struct device_node* np, struct property* prop)
{
struct property **next;
#ifdef CONFIG_PROC_DEVICETREE
/* try to add to proc as well if it was initialized */
#ifdef CONFIG_PROC_DEVICETREE
/* try to add to proc as well if it was initialized */
+@@ -1406,9 +1498,10 @@ int prom_add_property(struct device_node
int prom_remove_property(struct device_node *np, struct property *prop)
{
struct property **next;
int prom_remove_property(struct device_node *np, struct property *prop)
{
struct property **next;
next = &np->properties;
while (*next) {
if (*next == prop) {
next = &np->properties;
while (*next) {
if (*next == prop) {
+@@ -1421,7 +1514,7 @@ int prom_remove_property(struct device_n
}
next = &(*next)->next;
}
}
next = &(*next)->next;
}
if (!found)
return -ENODEV;
if (!found)
return -ENODEV;
+@@ -1447,9 +1540,10 @@ int prom_update_property(struct device_n
struct property *oldprop)
{
struct property **next;
struct property *oldprop)
{
struct property **next;
next = &np->properties;
while (*next) {
if (*next == oldprop) {
next = &np->properties;
while (*next) {
if (*next == oldprop) {
+@@ -1463,7 +1557,7 @@ int prom_update_property(struct device_n
}
next = &(*next)->next;
}
}
next = &(*next)->next;
}
return -ENODEV;
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
return -ENODEV;
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
+@@ -2240,6 +2240,14 @@ static void __init fixup_device_tree_efi
if (rv != PROM_ERROR && (strcmp(prop, "chrp") == 0))
prom_setprop(node, "/", "device_type", "efika", sizeof("efika"));
if (rv != PROM_ERROR && (strcmp(prop, "chrp") == 0))
prom_setprop(node, "/", "device_type", "efika", sizeof("efika"));
#include <asm/udbg.h>
#include <asm/syscalls.h>
#include <asm/smp.h>
#include <asm/udbg.h>
#include <asm/syscalls.h>
#include <asm/smp.h>
+@@ -507,7 +507,7 @@ int rtas_error_rc(int rtas_rc)
break;
default:
printk(KERN_ERR "%s: unexpected RTAS error %d\n",
break;
default:
printk(KERN_ERR "%s: unexpected RTAS error %d\n",
}
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
}
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
+@@ -807,7 +807,7 @@ int __init rtas_flash_init(void)
rtas_block_ctor);
if (!flash_block_cache) {
printk(KERN_ERR "%s: failed to create block cache\n",
rtas_block_ctor);
if (!flash_block_cache) {
printk(KERN_ERR "%s: failed to create block cache\n",
}
--- a/arch/powerpc/kernel/rtas_pci.c
+++ b/arch/powerpc/kernel/rtas_pci.c
}
--- a/arch/powerpc/kernel/rtas_pci.c
+++ b/arch/powerpc/kernel/rtas_pci.c
+@@ -56,21 +56,6 @@ static inline int config_access_valid(st
int rtas_read_config(struct pci_dn *pdn, int where, int size, u32 *val)
{
int returnval = -1;
int rtas_read_config(struct pci_dn *pdn, int where, int size, u32 *val)
{
int returnval = -1;
+@@ -117,7 +102,7 @@ static int rtas_pci_read_config(struct p
for (dn = busdn->child; dn; dn = dn->sibling) {
struct pci_dn *pdn = PCI_DN(dn);
if (pdn && pdn->devfn == devfn
for (dn = busdn->child; dn; dn = dn->sibling) {
struct pci_dn *pdn = PCI_DN(dn);
if (pdn && pdn->devfn == devfn
return rtas_read_config(pdn, where, size, val);
}
return rtas_read_config(pdn, where, size, val);
}
+@@ -164,7 +149,7 @@ static int rtas_pci_write_config(struct
for (dn = busdn->child; dn; dn = dn->sibling) {
struct pci_dn *pdn = PCI_DN(dn);
if (pdn && pdn->devfn == devfn
for (dn = busdn->child; dn; dn = dn->sibling) {
struct pci_dn *pdn = PCI_DN(dn);
if (pdn && pdn->devfn == devfn
return rtas_write_config(pdn, where, size, val);
}
return PCIBIOS_DEVICE_NOT_FOUND;
return rtas_write_config(pdn, where, size, val);
}
return PCIBIOS_DEVICE_NOT_FOUND;
+@@ -326,7 +311,7 @@ int pcibios_remove_root_bus(struct pci_c
res = b->resource[0];
if (!res->flags) {
res = b->resource[0];
if (!res->flags) {
+@@ -334,13 +319,13 @@ int pcibios_remove_root_bus(struct pci_c
rc = pcibios_unmap_io_space(b);
if (rc) {
printk(KERN_ERR "%s: failed to unmap IO on bus %s\n",
rc = pcibios_unmap_io_space(b);
if (rc) {
printk(KERN_ERR "%s: failed to unmap IO on bus %s\n",
+@@ -348,13 +333,13 @@ int pcibios_remove_root_bus(struct pci_c
res = b->resource[i];
if (!res->flags && i == 0) {
printk(KERN_ERR "%s: no MEM resource for PHB %s\n",
res = b->resource[i];
if (!res->flags && i == 0) {
printk(KERN_ERR "%s: no MEM resource for PHB %s\n",
#include <asm/xmon.h>
#include <asm/cputhreads.h>
#include <asm/xmon.h>
#include <asm/cputhreads.h>
+@@ -167,6 +167,8 @@ static int show_cpuinfo(struct seq_file
unsigned short min;
if (cpu_id == NR_CPUS) {
unsigned short min;
if (cpu_id == NR_CPUS) {
#if defined(CONFIG_SMP) && defined(CONFIG_PPC32)
unsigned long bogosum = 0;
int i;
#if defined(CONFIG_SMP) && defined(CONFIG_PPC32)
unsigned long bogosum = 0;
int i;
+@@ -178,6 +180,13 @@ static int show_cpuinfo(struct seq_file
seq_printf(m, "timebase\t: %lu\n", ppc_tb_freq);
if (ppc_md.name)
seq_printf(m, "platform\t: %s\n", ppc_md.name);
seq_printf(m, "timebase\t: %lu\n", ppc_tb_freq);
if (ppc_md.name)
seq_printf(m, "platform\t: %s\n", ppc_md.name);
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
+@@ -172,6 +172,18 @@ int __init ppc_setup_l2cr(char *str)
}
__setup("l2cr=", ppc_setup_l2cr);
}
__setup("l2cr=", ppc_setup_l2cr);
#ifdef CONFIG_GENERIC_NVRAM
/* Generic nvram hooks used by drivers/char/gen_nvram.c */
#ifdef CONFIG_GENERIC_NVRAM
/* Generic nvram hooks used by drivers/char/gen_nvram.c */
+@@ -277,7 +289,7 @@ void __init setup_arch(char **cmdline_p)
if (ppc_md.panic)
setup_panic();
if (ppc_md.panic)
setup_panic();
#include <asm/firmware.h>
#include <asm/xmon.h>
#include <asm/udbg.h>
#include <asm/firmware.h>
#include <asm/xmon.h>
#include <asm/udbg.h>
+@@ -178,6 +179,9 @@ void __init early_setup(unsigned long dt
/* Enable early debugging if any specified (see udbg.h) */
udbg_early_init();
/* Enable early debugging if any specified (see udbg.h) */
udbg_early_init();
DBG(" -> early_setup(), dt_ptr: 0x%lx\n", dt_ptr);
/*
DBG(" -> early_setup(), dt_ptr: 0x%lx\n", dt_ptr);
/*
+@@ -510,7 +514,7 @@ void __init setup_arch(char **cmdline_p)
if (ppc_md.panic)
setup_panic();
if (ppc_md.panic)
setup_panic();
+}
--- a/arch/powerpc/kernel/sys_ppc32.c
+++ b/arch/powerpc/kernel/sys_ppc32.c
+}
--- a/arch/powerpc/kernel/sys_ppc32.c
+++ b/arch/powerpc/kernel/sys_ppc32.c
+@@ -368,11 +368,6 @@ long compat_sys_execve(unsigned long a0,
error = compat_do_execve(filename, compat_ptr(a1), compat_ptr(a2), regs);
error = compat_do_execve(filename, compat_ptr(a1), compat_ptr(a2), regs);
#include <asm/sections.h>
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
#include <asm/sections.h>
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
+@@ -139,7 +139,7 @@ static int vio_bus_remove(struct device
*/
int vio_register_driver(struct vio_driver *viodrv)
{
*/
int vio_register_driver(struct vio_driver *viodrv)
{
viodrv->driver.name);
/* fill in 'struct driver' fields */
viodrv->driver.name);
/* fill in 'struct driver' fields */
+@@ -184,7 +184,7 @@ struct vio_dev *vio_register_device_node
/* we need the 'device_type' property, in order to match with drivers */
if (of_node->type == NULL) {
printk(KERN_WARNING "%s: node %s missing 'device_type'\n",
/* we need the 'device_type' property, in order to match with drivers */
if (of_node->type == NULL) {
printk(KERN_WARNING "%s: node %s missing 'device_type'\n",
of_node->name ? of_node->name : "<unknown>");
return NULL;
}
of_node->name ? of_node->name : "<unknown>");
return NULL;
}
+@@ -192,7 +192,7 @@ struct vio_dev *vio_register_device_node
unit_address = of_get_property(of_node, "reg", NULL);
if (unit_address == NULL) {
printk(KERN_WARNING "%s: node %s missing 'reg'\n",
unit_address = of_get_property(of_node, "reg", NULL);
if (unit_address == NULL) {
printk(KERN_WARNING "%s: node %s missing 'reg'\n",
of_node->name ? of_node->name : "<unknown>");
return NULL;
}
of_node->name ? of_node->name : "<unknown>");
return NULL;
}
+@@ -227,7 +227,7 @@ struct vio_dev *vio_register_device_node
/* register with generic device framework */
if (device_register(&viodev->dev)) {
printk(KERN_ERR "%s: failed to register device %s\n",
/* register with generic device framework */
if (device_register(&viodev->dev)) {
printk(KERN_ERR "%s: failed to register device %s\n",
/* XXX free TCE table */
kfree(viodev);
return NULL;
/* XXX free TCE table */
kfree(viodev);
return NULL;
+@@ -258,7 +258,7 @@ static int __init vio_bus_init(void)
err = device_register(&vio_bus_device.dev);
if (err) {
printk(KERN_WARNING "%s: device_register returned %i\n",
err = device_register(&vio_bus_device.dev);
if (err) {
printk(KERN_WARNING "%s: device_register returned %i\n",
#include <asm-generic/vmlinux.lds.h>
#include <asm/cache.h>
#include <asm-generic/vmlinux.lds.h>
#include <asm/cache.h>
+@@ -33,7 +31,7 @@ SECTIONS
ALIGN_FUNCTION();
*(.text.head)
_text = .;
ALIGN_FUNCTION();
*(.text.head)
_text = .;
+@@ -58,7 +56,7 @@ SECTIONS
RODATA
/* Exception & bug tables */
RODATA
/* Exception & bug tables */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
+@@ -74,7 +72,7 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
__init_begin = .;
. = ALIGN(PAGE_SIZE);
__init_begin = .;
_sinittext = .;
INIT_TEXT
_einittext = .;
_sinittext = .;
INIT_TEXT
_einittext = .;
+@@ -83,11 +81,11 @@ SECTIONS
/* .exit.text is discarded at runtime, not link time,
* to deal with references from __bug_table
*/
/* .exit.text is discarded at runtime, not link time,
* to deal with references from __bug_table
*/
INIT_DATA
__vtop_table_begin = .;
*(.vtop_fixup);
INIT_DATA
__vtop_table_begin = .;
*(.vtop_fixup);
+@@ -103,19 +101,19 @@ SECTIONS
__con_initcall_start = .;
*(.con_initcall.init)
__con_initcall_end = .;
__con_initcall_start = .;
*(.con_initcall.init)
__con_initcall_end = .;
+@@ -124,14 +122,14 @@ SECTIONS
SECURITY_INIT
. = ALIGN(8);
SECURITY_INIT
. = ALIGN(8);
__start___fw_ftr_fixup = .;
*(__fw_ftr_fixup)
__stop___fw_ftr_fixup = .;
__start___fw_ftr_fixup = .;
*(__fw_ftr_fixup)
__stop___fw_ftr_fixup = .;
+@@ -139,14 +137,14 @@ SECTIONS
#endif
#ifdef CONFIG_BLK_DEV_INITRD
. = ALIGN(PAGE_SIZE);
#endif
#ifdef CONFIG_BLK_DEV_INITRD
. = ALIGN(PAGE_SIZE);
__per_cpu_start = .;
*(.data.percpu)
*(.data.percpu.shared_aligned)
__per_cpu_start = .;
*(.data.percpu)
*(.data.percpu.shared_aligned)
+@@ -154,7 +152,7 @@ SECTIONS
__machine_desc_start = . ;
*(.machine.desc)
__machine_desc_end = . ;
__machine_desc_start = . ;
*(.machine.desc)
__machine_desc_end = . ;
+@@ -172,25 +170,24 @@ SECTIONS
_sdata = .;
#ifdef CONFIG_PPC32
_sdata = .;
#ifdef CONFIG_PPC32
__toc_start = .;
*(.got)
*(.toc)
__toc_start = .;
*(.got)
*(.toc)
+@@ -207,26 +204,26 @@ SECTIONS
#else
. = ALIGN(16384);
#endif
#else
. = ALIGN(16384);
#endif
__nosave_begin = .;
*(.data.nosave)
. = ALIGN(PAGE_SIZE);
__nosave_begin = .;
*(.data.nosave)
. = ALIGN(PAGE_SIZE);
+@@ -237,7 +234,7 @@ SECTIONS
*(.dynbss)
--- a/arch/powerpc/lib/rheap.c
+++ b/arch/powerpc/lib/rheap.c
*(.dynbss)
--- a/arch/powerpc/lib/rheap.c
+++ b/arch/powerpc/lib/rheap.c
+@@ -54,7 +54,7 @@ static int grow(rh_info_t * info, int ma
new_blocks = max_blocks - info->max_blocks;
new_blocks = max_blocks - info->max_blocks;
if (block == NULL)
return -ENOMEM;
if (block == NULL)
return -ENOMEM;
+@@ -258,7 +258,7 @@ rh_info_t *rh_create(unsigned int alignm
if ((alignment & (alignment - 1)) != 0)
return ERR_PTR(-EINVAL);
if ((alignment & (alignment - 1)) != 0)
return ERR_PTR(-EINVAL);
--- a/arch/powerpc/lib/string.S
+++ b/arch/powerpc/lib/string.S
--- a/arch/powerpc/lib/string.S
+++ b/arch/powerpc/lib/string.S
+@@ -75,6 +75,20 @@ _GLOBAL(strcmp)
1: lbzu r0,1(r4)
--- a/arch/powerpc/math-emu/fabs.c
+++ b/arch/powerpc/math-emu/fabs.c
1: lbzu r0,1(r4)
--- a/arch/powerpc/math-emu/fabs.c
+++ b/arch/powerpc/math-emu/fabs.c
+@@ -9,7 +9,7 @@ fabs(u32 *frD, u32 *frB)
frD[1] = frB[1];
#ifdef DEBUG
frD[1] = frB[1];
#ifdef DEBUG
#endif
--- a/arch/powerpc/math-emu/fadd.c
+++ b/arch/powerpc/math-emu/fadd.c
#endif
--- a/arch/powerpc/math-emu/fadd.c
+++ b/arch/powerpc/math-emu/fadd.c
+@@ -14,7 +14,7 @@ fadd(void *frD, void *frA, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fadds.c
+++ b/arch/powerpc/math-emu/fadds.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fadds.c
+++ b/arch/powerpc/math-emu/fadds.c
+@@ -15,7 +15,7 @@ fadds(void *frD, void *frA, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fcmpo.c
+++ b/arch/powerpc/math-emu/fcmpo.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fcmpo.c
+++ b/arch/powerpc/math-emu/fcmpo.c
+@@ -15,7 +15,7 @@ fcmpo(u32 *ccr, int crfD, void *frA, voi
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fcmpu.c
+++ b/arch/powerpc/math-emu/fcmpu.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fcmpu.c
+++ b/arch/powerpc/math-emu/fcmpu.c
+@@ -14,7 +14,7 @@ fcmpu(u32 *ccr, int crfD, void *frA, voi
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fctiw.c
+++ b/arch/powerpc/math-emu/fctiw.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fctiw.c
+++ b/arch/powerpc/math-emu/fctiw.c
+@@ -16,7 +16,7 @@ fctiw(u32 *frD, void *frB)
#endif
--- a/arch/powerpc/math-emu/fctiwz.c
+++ b/arch/powerpc/math-emu/fctiwz.c
#endif
--- a/arch/powerpc/math-emu/fctiwz.c
+++ b/arch/powerpc/math-emu/fctiwz.c
+@@ -23,7 +23,7 @@ fctiwz(u32 *frD, void *frB)
__FPU_FPSCR = fpscr;
#ifdef DEBUG
__FPU_FPSCR = fpscr;
#ifdef DEBUG
#endif
--- a/arch/powerpc/math-emu/fdiv.c
+++ b/arch/powerpc/math-emu/fdiv.c
#endif
--- a/arch/powerpc/math-emu/fdiv.c
+++ b/arch/powerpc/math-emu/fdiv.c
+@@ -14,7 +14,7 @@ fdiv(void *frD, void *frA, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
#endif
__FP_UNPACK_D(A, frA);
#endif
__FP_UNPACK_D(A, frA);
+@@ -28,13 +28,13 @@ fdiv(void *frD, void *frA, void *frB)
if (A_c == FP_CLS_ZERO && B_c == FP_CLS_ZERO) {
ret |= EFLAG_VXZDZ;
#ifdef DEBUG
if (A_c == FP_CLS_ZERO && B_c == FP_CLS_ZERO) {
ret |= EFLAG_VXZDZ;
#ifdef DEBUG
--- a/arch/powerpc/math-emu/fdivs.c
+++ b/arch/powerpc/math-emu/fdivs.c
--- a/arch/powerpc/math-emu/fdivs.c
+++ b/arch/powerpc/math-emu/fdivs.c
+@@ -15,7 +15,7 @@ fdivs(void *frD, void *frA, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
#endif
__FP_UNPACK_D(A, frA);
#endif
__FP_UNPACK_D(A, frA);
+@@ -29,13 +29,13 @@ fdivs(void *frD, void *frA, void *frB)
if (A_c == FP_CLS_ZERO && B_c == FP_CLS_ZERO) {
ret |= EFLAG_VXZDZ;
#ifdef DEBUG
if (A_c == FP_CLS_ZERO && B_c == FP_CLS_ZERO) {
ret |= EFLAG_VXZDZ;
#ifdef DEBUG
--- a/arch/powerpc/math-emu/fmadd.c
+++ b/arch/powerpc/math-emu/fmadd.c
--- a/arch/powerpc/math-emu/fmadd.c
+++ b/arch/powerpc/math-emu/fmadd.c
+@@ -16,7 +16,7 @@ fmadd(void *frD, void *frA, void *frB, v
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmadds.c
+++ b/arch/powerpc/math-emu/fmadds.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmadds.c
+++ b/arch/powerpc/math-emu/fmadds.c
+@@ -17,7 +17,7 @@ fmadds(void *frD, void *frA, void *frB,
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmr.c
+++ b/arch/powerpc/math-emu/fmr.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmr.c
+++ b/arch/powerpc/math-emu/fmr.c
+@@ -9,7 +9,7 @@ fmr(u32 *frD, u32 *frB)
frD[1] = frB[1];
#ifdef DEBUG
frD[1] = frB[1];
#ifdef DEBUG
#endif
--- a/arch/powerpc/math-emu/fmsub.c
+++ b/arch/powerpc/math-emu/fmsub.c
#endif
--- a/arch/powerpc/math-emu/fmsub.c
+++ b/arch/powerpc/math-emu/fmsub.c
+@@ -16,7 +16,7 @@ fmsub(void *frD, void *frA, void *frB, v
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmsubs.c
+++ b/arch/powerpc/math-emu/fmsubs.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmsubs.c
+++ b/arch/powerpc/math-emu/fmsubs.c
+@@ -17,7 +17,7 @@ fmsubs(void *frD, void *frA, void *frB,
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmul.c
+++ b/arch/powerpc/math-emu/fmul.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmul.c
+++ b/arch/powerpc/math-emu/fmul.c
+@@ -14,7 +14,7 @@ fmul(void *frD, void *frA, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmuls.c
+++ b/arch/powerpc/math-emu/fmuls.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fmuls.c
+++ b/arch/powerpc/math-emu/fmuls.c
+@@ -15,7 +15,7 @@ fmuls(void *frD, void *frA, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fnabs.c
+++ b/arch/powerpc/math-emu/fnabs.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fnabs.c
+++ b/arch/powerpc/math-emu/fnabs.c
+@@ -9,7 +9,7 @@ fnabs(u32 *frD, u32 *frB)
frD[1] = frB[1];
#ifdef DEBUG
frD[1] = frB[1];
#ifdef DEBUG
#endif
--- a/arch/powerpc/math-emu/fneg.c
+++ b/arch/powerpc/math-emu/fneg.c
#endif
--- a/arch/powerpc/math-emu/fneg.c
+++ b/arch/powerpc/math-emu/fneg.c
+@@ -9,7 +9,7 @@ fneg(u32 *frD, u32 *frB)
frD[1] = frB[1];
#ifdef DEBUG
frD[1] = frB[1];
#ifdef DEBUG
#endif
--- a/arch/powerpc/math-emu/fnmadd.c
+++ b/arch/powerpc/math-emu/fnmadd.c
#endif
--- a/arch/powerpc/math-emu/fnmadd.c
+++ b/arch/powerpc/math-emu/fnmadd.c
+@@ -16,7 +16,7 @@ fnmadd(void *frD, void *frA, void *frB,
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fnmadds.c
+++ b/arch/powerpc/math-emu/fnmadds.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fnmadds.c
+++ b/arch/powerpc/math-emu/fnmadds.c
+@@ -17,7 +17,7 @@ fnmadds(void *frD, void *frA, void *frB,
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fnmsub.c
+++ b/arch/powerpc/math-emu/fnmsub.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fnmsub.c
+++ b/arch/powerpc/math-emu/fnmsub.c
+@@ -16,7 +16,7 @@ fnmsub(void *frD, void *frA, void *frB,
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fnmsubs.c
+++ b/arch/powerpc/math-emu/fnmsubs.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fnmsubs.c
+++ b/arch/powerpc/math-emu/fnmsubs.c
+@@ -17,7 +17,7 @@ fnmsubs(void *frD, void *frA, void *frB,
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fres.c
+++ b/arch/powerpc/math-emu/fres.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fres.c
+++ b/arch/powerpc/math-emu/fres.c
fres(void *frD, void *frB)
{
#ifdef DEBUG
fres(void *frD, void *frB)
{
#ifdef DEBUG
}
--- a/arch/powerpc/math-emu/frsp.c
+++ b/arch/powerpc/math-emu/frsp.c
}
--- a/arch/powerpc/math-emu/frsp.c
+++ b/arch/powerpc/math-emu/frsp.c
+@@ -12,7 +12,7 @@ frsp(void *frD, void *frB)
FP_DECL_D(B);
#ifdef DEBUG
FP_DECL_D(B);
#ifdef DEBUG
__FP_UNPACK_D(B, frB);
--- a/arch/powerpc/math-emu/frsqrte.c
+++ b/arch/powerpc/math-emu/frsqrte.c
__FP_UNPACK_D(B, frB);
--- a/arch/powerpc/math-emu/frsqrte.c
+++ b/arch/powerpc/math-emu/frsqrte.c
frsqrte(void *frD, void *frB)
{
#ifdef DEBUG
frsqrte(void *frD, void *frB)
{
#ifdef DEBUG
}
--- a/arch/powerpc/math-emu/fsel.c
+++ b/arch/powerpc/math-emu/fsel.c
}
--- a/arch/powerpc/math-emu/fsel.c
+++ b/arch/powerpc/math-emu/fsel.c
+@@ -11,7 +11,7 @@ fsel(u32 *frD, void *frA, u32 *frB, u32
FP_DECL_D(A);
#ifdef DEBUG
FP_DECL_D(A);
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fsqrt.c
+++ b/arch/powerpc/math-emu/fsqrt.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fsqrt.c
+++ b/arch/powerpc/math-emu/fsqrt.c
+@@ -13,7 +13,7 @@ fsqrt(void *frD, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(B, frB);
--- a/arch/powerpc/math-emu/fsqrts.c
+++ b/arch/powerpc/math-emu/fsqrts.c
__FP_UNPACK_D(B, frB);
--- a/arch/powerpc/math-emu/fsqrts.c
+++ b/arch/powerpc/math-emu/fsqrts.c
+@@ -14,7 +14,7 @@ fsqrts(void *frD, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(B, frB);
--- a/arch/powerpc/math-emu/fsub.c
+++ b/arch/powerpc/math-emu/fsub.c
__FP_UNPACK_D(B, frB);
--- a/arch/powerpc/math-emu/fsub.c
+++ b/arch/powerpc/math-emu/fsub.c
+@@ -14,7 +14,7 @@ fsub(void *frD, void *frA, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fsubs.c
+++ b/arch/powerpc/math-emu/fsubs.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/fsubs.c
+++ b/arch/powerpc/math-emu/fsubs.c
+@@ -15,7 +15,7 @@ fsubs(void *frD, void *frA, void *frB)
int ret = 0;
#ifdef DEBUG
int ret = 0;
#ifdef DEBUG
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/lfd.c
+++ b/arch/powerpc/math-emu/lfd.c
__FP_UNPACK_D(A, frA);
--- a/arch/powerpc/math-emu/lfd.c
+++ b/arch/powerpc/math-emu/lfd.c
+@@ -11,7 +11,7 @@ lfd(void *frD, void *ea)
if (copy_from_user(frD, ea, sizeof(double)))
return -EFAULT;
#ifdef DEBUG
if (copy_from_user(frD, ea, sizeof(double)))
return -EFAULT;
#ifdef DEBUG
#endif
--- a/arch/powerpc/math-emu/lfs.c
+++ b/arch/powerpc/math-emu/lfs.c
#endif
--- a/arch/powerpc/math-emu/lfs.c
+++ b/arch/powerpc/math-emu/lfs.c
+@@ -14,7 +14,7 @@ lfs(void *frD, void *ea)
if (copy_from_user(&f, ea, sizeof(float)))
--- a/arch/powerpc/math-emu/mcrfs.c
+++ b/arch/powerpc/math-emu/mcrfs.c
if (copy_from_user(&f, ea, sizeof(float)))
--- a/arch/powerpc/math-emu/mcrfs.c
+++ b/arch/powerpc/math-emu/mcrfs.c
+@@ -10,7 +10,7 @@ mcrfs(u32 *ccr, u32 crfD, u32 crfS)
u32 value, clear;
#ifdef DEBUG
u32 value, clear;
#ifdef DEBUG
#endif
clear = 15 << ((7 - crfS) << 2);
#endif
clear = 15 << ((7 - crfS) << 2);
+@@ -24,7 +24,7 @@ mcrfs(u32 *ccr, u32 crfD, u32 crfS)
*ccr |= (value << ((7 - crfD) << 2));
#ifdef DEBUG
*ccr |= (value << ((7 - crfD) << 2));
#ifdef DEBUG
return 0;
--- a/arch/powerpc/math-emu/mffs.c
+++ b/arch/powerpc/math-emu/mffs.c
return 0;
--- a/arch/powerpc/math-emu/mffs.c
+++ b/arch/powerpc/math-emu/mffs.c
+@@ -10,7 +10,7 @@ mffs(u32 *frD)
frD[1] = __FPU_FPSCR;
#ifdef DEBUG
frD[1] = __FPU_FPSCR;
#ifdef DEBUG
return 0;
--- a/arch/powerpc/math-emu/mtfsb0.c
+++ b/arch/powerpc/math-emu/mtfsb0.c
return 0;
--- a/arch/powerpc/math-emu/mtfsb0.c
+++ b/arch/powerpc/math-emu/mtfsb0.c
+@@ -11,7 +11,7 @@ mtfsb0(int crbD)
__FPU_FPSCR &= ~(1 << (31 - crbD));
#ifdef DEBUG
__FPU_FPSCR &= ~(1 << (31 - crbD));
#ifdef DEBUG
return 0;
--- a/arch/powerpc/math-emu/mtfsb1.c
+++ b/arch/powerpc/math-emu/mtfsb1.c
return 0;
--- a/arch/powerpc/math-emu/mtfsb1.c
+++ b/arch/powerpc/math-emu/mtfsb1.c
+@@ -11,7 +11,7 @@ mtfsb1(int crbD)
__FPU_FPSCR |= (1 << (31 - crbD));
#ifdef DEBUG
__FPU_FPSCR |= (1 << (31 - crbD));
#ifdef DEBUG
return 0;
--- a/arch/powerpc/math-emu/mtfsf.c
+++ b/arch/powerpc/math-emu/mtfsf.c
return 0;
--- a/arch/powerpc/math-emu/mtfsf.c
+++ b/arch/powerpc/math-emu/mtfsf.c
+@@ -38,7 +38,7 @@ mtfsf(unsigned int FM, u32 *frB)
__FPU_FPSCR |= (frB[1] & mask);
#ifdef DEBUG
__FPU_FPSCR |= (frB[1] & mask);
#ifdef DEBUG
return 0;
--- a/arch/powerpc/math-emu/mtfsfi.c
+++ b/arch/powerpc/math-emu/mtfsfi.c
return 0;
--- a/arch/powerpc/math-emu/mtfsfi.c
+++ b/arch/powerpc/math-emu/mtfsfi.c
+@@ -16,7 +16,7 @@ mtfsfi(unsigned int crfD, unsigned int I
__FPU_FPSCR |= (IMM & 0xf) << ((7 - crfD) << 2);
#ifdef DEBUG
__FPU_FPSCR |= (IMM & 0xf) << ((7 - crfD) << 2);
#ifdef DEBUG
return 0;
--- a/arch/powerpc/math-emu/stfd.c
+++ b/arch/powerpc/math-emu/stfd.c
return 0;
--- a/arch/powerpc/math-emu/stfd.c
+++ b/arch/powerpc/math-emu/stfd.c
+@@ -7,7 +7,7 @@ stfd(void *frS, void *ea)
#endif
--- a/arch/powerpc/math-emu/stfiwx.c
+++ b/arch/powerpc/math-emu/stfiwx.c
#endif
--- a/arch/powerpc/math-emu/stfiwx.c
+++ b/arch/powerpc/math-emu/stfiwx.c
stfiwx(u32 *frS, void *ea)
{
#ifdef DEBUG
stfiwx(u32 *frS, void *ea)
{
#ifdef DEBUG
if (copy_to_user(ea, &frS[1], sizeof(frS[1])))
--- a/arch/powerpc/math-emu/stfs.c
+++ b/arch/powerpc/math-emu/stfs.c
if (copy_to_user(ea, &frS[1], sizeof(frS[1])))
--- a/arch/powerpc/math-emu/stfs.c
+++ b/arch/powerpc/math-emu/stfs.c
+@@ -15,7 +15,7 @@ stfs(void *frS, void *ea)
__FP_UNPACK_D(A, frS);
--- a/arch/powerpc/mm/40x_mmu.c
+++ b/arch/powerpc/mm/40x_mmu.c
__FP_UNPACK_D(A, frS);
--- a/arch/powerpc/mm/40x_mmu.c
+++ b/arch/powerpc/mm/40x_mmu.c
+@@ -97,7 +97,7 @@ unsigned long __init mmu_mapin_ram(void)
phys_addr_t p;
v = KERNELBASE;
phys_addr_t p;
v = KERNELBASE;
if (__map_without_ltlbs)
--- a/arch/powerpc/mm/44x_mmu.c
+++ b/arch/powerpc/mm/44x_mmu.c
if (__map_without_ltlbs)
--- a/arch/powerpc/mm/44x_mmu.c
+++ b/arch/powerpc/mm/44x_mmu.c
+@@ -67,7 +67,7 @@ unsigned long __init mmu_mapin_ram(void)
/* Pin in enough TLBs to cover any lowmem not covered by the
* initial 256M mapping established in head_44x.S */
/* Pin in enough TLBs to cover any lowmem not covered by the
* initial 256M mapping established in head_44x.S */
--- a/arch/powerpc/mm/Makefile
+++ b/arch/powerpc/mm/Makefile
--- a/arch/powerpc/mm/Makefile
+++ b/arch/powerpc/mm/Makefile
+@@ -6,7 +6,7 @@ ifeq ($(CONFIG_PPC64),y)
EXTRA_CFLAGS += -mno-minimal-toc
endif
EXTRA_CFLAGS += -mno-minimal-toc
endif
+@@ -165,15 +162,15 @@ void invalidate_tlbcam_entry(int index)
void __init cam_mapin_ram(unsigned long cam0, unsigned long cam1,
unsigned long cam2)
{
void __init cam_mapin_ram(unsigned long cam0, unsigned long cam1,
unsigned long cam2)
{
+@@ -196,35 +193,32 @@ unsigned long __init mmu_mapin_ram(void)
void __init
adjust_total_lowmem(void)
{
void __init
adjust_total_lowmem(void)
{
+@@ -232,6 +226,6 @@ adjust_total_lowmem(void)
" CAM2=%ldMb residual: %ldMb\n",
__cam0 >> 20, __cam1 >> 20, __cam2 >> 20,
(total_lowmem - __cam0 - __cam1 - __cam2) >> 20);
" CAM2=%ldMb residual: %ldMb\n",
__cam0 >> 20, __cam1 >> 20, __cam2 >> 20,
(total_lowmem - __cam0 - __cam1 - __cam2) >> 20);
#include <asm/abs_addr.h>
#include <asm/tlbflush.h>
#include <asm/io.h>
#include <asm/abs_addr.h>
#include <asm/tlbflush.h>
#include <asm/io.h>
+@@ -191,6 +192,29 @@ int htab_bolt_mapping(unsigned long vsta
return ret < 0 ? ret : 0;
}
return ret < 0 ? ret : 0;
}
static int __init htab_dt_scan_seg_sizes(unsigned long node,
const char *uname, int depth,
void *data)
static int __init htab_dt_scan_seg_sizes(unsigned long node,
const char *uname, int depth,
void *data)
+@@ -434,6 +458,12 @@ void create_section_mapping(unsigned lon
_PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX,
mmu_linear_psize, mmu_kernel_ssize));
}
_PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX,
mmu_linear_psize, mmu_kernel_ssize));
}
#include <asm/sections.h>
#include "mmu_decl.h"
#include <asm/sections.h>
#include "mmu_decl.h"
+@@ -59,8 +59,8 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_ga
unsigned long total_memory;
unsigned long total_lowmem;
unsigned long total_memory;
unsigned long total_lowmem;
int boot_mapsize;
#ifdef CONFIG_PPC_PMAC
int boot_mapsize;
#ifdef CONFIG_PPC_PMAC
+@@ -95,10 +95,10 @@ int __map_without_ltlbs;
unsigned long __max_low_memory = MAX_LOW_MEM;
/*
unsigned long __max_low_memory = MAX_LOW_MEM;
/*
/*
* Check for command-line options that affect what MMU_init will do.
/*
* Check for command-line options that affect what MMU_init will do.
+@@ -131,10 +131,10 @@ void __init MMU_init(void)
/* 601 can only access 16MB at the moment */
if (PVR_VER(mfspr(SPRN_PVR)) == 1)
/* 601 can only access 16MB at the moment */
if (PVR_VER(mfspr(SPRN_PVR)) == 1)
/* parse args from command line */
MMU_setup();
/* parse args from command line */
MMU_setup();
+@@ -145,8 +145,8 @@ void __init MMU_init(void)
printk(KERN_WARNING "Only using first contiguous memory region");
}
printk(KERN_WARNING "Only using first contiguous memory region");
}
#ifdef CONFIG_FSL_BOOKE
/* Freescale Book-E parts expect lowmem to be mapped by fixed TLB
#ifdef CONFIG_FSL_BOOKE
/* Freescale Book-E parts expect lowmem to be mapped by fixed TLB
+@@ -157,9 +157,10 @@ void __init MMU_init(void)
if (total_lowmem > __max_low_memory) {
total_lowmem = __max_low_memory;
if (total_lowmem > __max_low_memory) {
total_lowmem = __max_low_memory;
lmb_analyze();
#endif /* CONFIG_HIGHMEM */
}
lmb_analyze();
#endif /* CONFIG_HIGHMEM */
}
+@@ -184,8 +185,6 @@ void __init MMU_init(void)
/* Map in I/O resources */
if (ppc_md.progress)
ppc_md.progress("MMU:setio", 0x302);
/* Map in I/O resources */
if (ppc_md.progress)
ppc_md.progress("MMU:setio", 0x302);
/* Initialize the context management stuff */
mmu_context_init();
/* Initialize the context management stuff */
mmu_context_init();
+@@ -208,7 +207,7 @@ void __init *early_get_page(void)
p = alloc_bootmem_pages(PAGE_SIZE);
} else {
p = __va(lmb_alloc_base(PAGE_SIZE, PAGE_SIZE,
p = alloc_bootmem_pages(PAGE_SIZE);
} else {
p = __va(lmb_alloc_base(PAGE_SIZE, PAGE_SIZE,
+@@ -276,7 +275,7 @@ static int __init setup_kcore(void)
kcore_mem = kmalloc(sizeof(struct kcore_list), GFP_ATOMIC);
if (!kcore_mem)
kcore_mem = kmalloc(sizeof(struct kcore_list), GFP_ATOMIC);
if (!kcore_mem)
void free_initmem(void)
{
void free_initmem(void)
{
+@@ -122,7 +121,7 @@ static int __init setup_kcore(void)
/* GFP_ATOMIC to avoid might_sleep warnings during boot */
kcore_mem = kmalloc(sizeof(struct kcore_list), GFP_ATOMIC);
if (!kcore_mem)
/* GFP_ATOMIC to avoid might_sleep warnings during boot */
kcore_mem = kmalloc(sizeof(struct kcore_list), GFP_ATOMIC);
if (!kcore_mem)
#include <asm/sections.h>
#include <asm/vdso.h>
#include <asm/sections.h>
#include <asm/vdso.h>
+@@ -111,7 +111,7 @@ int memory_add_physaddr_to_nid(u64 start
{
struct pglist_data *pgdata;
struct zone *zone;
{
struct pglist_data *pgdata;
struct zone *zone;
+@@ -175,7 +175,6 @@ void show_mem(void)
printk("Mem-info:\n");
show_free_areas();
printk("Mem-info:\n");
show_free_areas();
for_each_online_pgdat(pgdat) {
unsigned long flags;
pgdat_resize_lock(pgdat, &flags);
for_each_online_pgdat(pgdat) {
unsigned long flags;
pgdat_resize_lock(pgdat, &flags);
+@@ -217,9 +216,11 @@ void __init do_init_bootmem(void)
unsigned long total_pages;
int boot_mapsize;
unsigned long total_pages;
int boot_mapsize;
+@@ -245,18 +246,18 @@ void __init do_init_bootmem(void)
* present.
*/
#ifdef CONFIG_HIGHMEM
* present.
*/
#ifdef CONFIG_HIGHMEM
lmb.reserved.region[i].base;
reserve_bootmem(lmb.reserved.region[i].base,
adjusted_size, BOOTMEM_DEFAULT);
lmb.reserved.region[i].base;
reserve_bootmem(lmb.reserved.region[i].base,
adjusted_size, BOOTMEM_DEFAULT);
+@@ -326,7 +327,7 @@ void __init paging_init(void)
(top_of_ram - total_ram) >> 20);
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
#ifdef CONFIG_HIGHMEM
(top_of_ram - total_ram) >> 20);
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
#ifdef CONFIG_HIGHMEM
max_zone_pfns[ZONE_HIGHMEM] = top_of_ram >> PAGE_SHIFT;
#else
max_zone_pfns[ZONE_DMA] = top_of_ram >> PAGE_SHIFT;
max_zone_pfns[ZONE_HIGHMEM] = top_of_ram >> PAGE_SHIFT;
#else
max_zone_pfns[ZONE_DMA] = top_of_ram >> PAGE_SHIFT;
+@@ -381,7 +382,7 @@ void __init mem_init(void)
{
unsigned long pfn, highmem_mapnr;
{
unsigned long pfn, highmem_mapnr;
if (lmb_is_reserved(pfn << PAGE_SHIFT))
--- a/arch/powerpc/mm/mmu_decl.h
+++ b/arch/powerpc/mm/mmu_decl.h
if (lmb_is_reserved(pfn << PAGE_SHIFT))
--- a/arch/powerpc/mm/mmu_decl.h
+++ b/arch/powerpc/mm/mmu_decl.h
+@@ -48,9 +48,11 @@ extern unsigned int num_tlbcam_entries;
extern unsigned long ioremap_bot;
extern unsigned long __max_low_memory;
extern unsigned long ioremap_bot;
extern unsigned long __max_low_memory;
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
+@@ -281,12 +281,13 @@ int map_page(unsigned long va, phys_addr
*/
void __init mapin_ram(void)
{
*/
void __init mapin_ram(void)
{
+@@ -82,7 +82,6 @@ unsigned long __init mmu_mapin_ram(void)
#else
unsigned long tot, bl, done;
unsigned long max_size = (256<<20);
#else
unsigned long tot, bl, done;
unsigned long max_size = (256<<20);
if (__map_without_bats) {
printk(KERN_DEBUG "RAM mapped without BATs\n");
if (__map_without_bats) {
printk(KERN_DEBUG "RAM mapped without BATs\n");
+@@ -93,19 +92,13 @@ unsigned long __init mmu_mapin_ram(void)
/* Make sure we don't map a block larger than the
smallest alignment of the physical address. */
/* Make sure we don't map a block larger than the
smallest alignment of the physical address. */
done = (unsigned long)bat_addrs[2].limit - KERNELBASE + 1;
if ((done < tot) && !bat_addrs[3].limit) {
/* use BAT3 to cover a bit more */
done = (unsigned long)bat_addrs[2].limit - KERNELBASE + 1;
if ((done < tot) && !bat_addrs[3].limit) {
/* use BAT3 to cover a bit more */
+@@ -113,7 +106,7 @@ unsigned long __init mmu_mapin_ram(void)
for (bl = 128<<10; bl < max_size; bl <<= 1)
if (bl * 2 > tot)
break;
for (bl = 128<<10; bl < max_size; bl <<= 1)
if (bl * 2 > tot)
break;
done = (unsigned long)bat_addrs[3].limit - KERNELBASE + 1;
}
done = (unsigned long)bat_addrs[3].limit - KERNELBASE + 1;
}
+@@ -240,7 +233,7 @@ void __init MMU_init_hw(void)
*/
if ( ppc_md.progress ) ppc_md.progress("hash:find piece", 0x322);
Hash = __va(lmb_alloc_base(Hash_size, Hash_size,
*/
if ( ppc_md.progress ) ppc_md.progress("hash:find piece", 0x322);
Hash = __va(lmb_alloc_base(Hash_size, Hash_size,
#include <asm/iseries/hv_call.h>
--- a/arch/powerpc/oprofile/cell/spu_task_sync.c
+++ b/arch/powerpc/oprofile/cell/spu_task_sync.c
#include <asm/iseries/hv_call.h>
--- a/arch/powerpc/oprofile/cell/spu_task_sync.c
+++ b/arch/powerpc/oprofile/cell/spu_task_sync.c
+@@ -68,7 +68,7 @@ static struct cached_info *get_cached_in
if (spu_num >= num_spu_nodes) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: Invalid index %d into spu info cache\n",
if (spu_num >= num_spu_nodes) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: Invalid index %d into spu info cache\n",
ret_info = NULL;
goto out;
}
ret_info = NULL;
goto out;
}
+@@ -115,7 +115,7 @@ prepare_cached_spu_info(struct spu *spu,
if (!info) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: create vma_map failed\n",
if (!info) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: create vma_map failed\n",
retval = -ENOMEM;
goto err_alloc;
}
retval = -ENOMEM;
goto err_alloc;
}
+@@ -123,7 +123,7 @@ prepare_cached_spu_info(struct spu *spu,
if (!new_map) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: create vma_map failed\n",
if (!new_map) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: create vma_map failed\n",
retval = -ENOMEM;
goto err_alloc;
}
retval = -ENOMEM;
goto err_alloc;
}
+@@ -171,7 +171,7 @@ static int release_cached_info(int spu_i
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: "
"Invalid index %d into spu info cache\n",
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: "
"Invalid index %d into spu info cache\n",
goto out;
}
end = spu_index + 1;
goto out;
}
end = spu_index + 1;
+@@ -273,7 +273,7 @@ fail_no_image_cookie:
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: Cannot find dcookie for SPU binary\n",
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: Cannot find dcookie for SPU binary\n",
+@@ -467,7 +467,7 @@ int spu_sync_stop(void)
if (ret) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: spu_switch_event_unregister returned %d\n",
if (ret) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: spu_switch_event_unregister returned %d\n",
--- a/arch/powerpc/oprofile/cell/vma_map.c
+++ b/arch/powerpc/oprofile/cell/vma_map.c
--- a/arch/powerpc/oprofile/cell/vma_map.c
+++ b/arch/powerpc/oprofile/cell/vma_map.c
+@@ -72,7 +72,7 @@ vma_map_add(struct vma_to_fileoffset_map
kzalloc(sizeof(struct vma_to_fileoffset_map), GFP_KERNEL);
if (!new) {
printk(KERN_ERR "SPU_PROF: %s, line %d: malloc failed\n",
kzalloc(sizeof(struct vma_to_fileoffset_map), GFP_KERNEL);
if (!new) {
printk(KERN_ERR "SPU_PROF: %s, line %d: malloc failed\n",
vma_map_free(map);
return NULL;
}
vma_map_free(map);
return NULL;
}
+@@ -134,19 +134,19 @@ struct vma_to_fileoffset_map *create_vma
if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: Unexpected e_ident parsing SPU ELF\n",
if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: Unexpected e_ident parsing SPU ELF\n",
goto fail;
}
phdr_start = spu_elf_start + ehdr.e_phoff;
goto fail;
}
phdr_start = spu_elf_start + ehdr.e_phoff;
+@@ -232,7 +232,7 @@ struct vma_to_fileoffset_map *create_vma
if (overlay_tbl_offset < 0) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: Error finding SPU overlay table\n",
if (overlay_tbl_offset < 0) {
printk(KERN_ERR "SPU_PROF: "
"%s, line %d: Error finding SPU overlay table\n",
ovly_table = spu_elf_start + overlay_tbl_offset;
--- a/arch/powerpc/oprofile/op_model_cell.c
+++ b/arch/powerpc/oprofile/op_model_cell.c
ovly_table = spu_elf_start + overlay_tbl_offset;
--- a/arch/powerpc/oprofile/op_model_cell.c
+++ b/arch/powerpc/oprofile/op_model_cell.c
+@@ -216,7 +216,7 @@ static void pm_rtas_reset_signals(u32 no
* failure to stop OProfile.
*/
printk(KERN_WARNING "%s: rtas returned: %d\n",
* failure to stop OProfile.
*/
printk(KERN_WARNING "%s: rtas returned: %d\n",
}
static int pm_rtas_activate_signals(u32 node, u32 count)
}
static int pm_rtas_activate_signals(u32 node, u32 count)
+@@ -255,7 +255,7 @@ static int pm_rtas_activate_signals(u32
if (unlikely(ret)) {
printk(KERN_WARNING "%s: rtas returned: %d\n",
if (unlikely(ret)) {
printk(KERN_WARNING "%s: rtas returned: %d\n",
+@@ -560,7 +560,7 @@ static int cell_reg_setup(struct op_coun
if (unlikely(spu_rtas_token == RTAS_UNKNOWN_SERVICE)) {
printk(KERN_ERR
"%s: rtas token ibm,cbe-spu-perftools unknown\n",
if (unlikely(spu_rtas_token == RTAS_UNKNOWN_SERVICE)) {
printk(KERN_ERR
"%s: rtas token ibm,cbe-spu-perftools unknown\n",
+@@ -576,7 +576,7 @@ static int cell_reg_setup(struct op_coun
if (unlikely(pm_rtas_token == RTAS_UNKNOWN_SERVICE)) {
printk(KERN_ERR
"%s: rtas token ibm,cbe-perftools unknown\n",
if (unlikely(pm_rtas_token == RTAS_UNKNOWN_SERVICE)) {
printk(KERN_ERR
"%s: rtas token ibm,cbe-perftools unknown\n",
+@@ -853,7 +853,7 @@ static int pm_rtas_activate_spu_profilin
if (unlikely(ret)) {
printk(KERN_WARNING "%s: rtas returned: %d\n",
if (unlikely(ret)) {
printk(KERN_WARNING "%s: rtas returned: %d\n",
+@@ -949,7 +949,7 @@ static int cell_global_start_spu(struct
if (unlikely(ret != 0)) {
printk(KERN_ERR
"%s: rtas call ibm,cbe-spu-perftools failed, return = %d\n",
if (unlikely(ret != 0)) {
printk(KERN_ERR
"%s: rtas call ibm,cbe-spu-perftools failed, return = %d\n",
rtas_error = -EIO;
goto out;
}
rtas_error = -EIO;
goto out;
}
+@@ -1061,7 +1061,7 @@ static void cell_global_stop_spu(void)
if (unlikely(rtn_value != 0)) {
printk(KERN_ERR
"%s: rtas call ibm,cbe-spu-perftools failed, return = %d\n",
if (unlikely(rtn_value != 0)) {
printk(KERN_ERR
"%s: rtas call ibm,cbe-spu-perftools failed, return = %d\n",
static struct device_node *bcsr_node;
static void __iomem *bcsr_regs;
static struct device_node *bcsr_node;
static void __iomem *bcsr_regs;
+@@ -119,5 +120,6 @@ define_machine(ep405) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
static __initdata struct of_device_id kilauea_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id kilauea_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -54,5 +55,6 @@ define_machine(kilauea) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
static __initdata struct of_device_id makalu_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id makalu_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -54,5 +55,6 @@ define_machine(makalu) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
static struct of_device_id xilinx_of_bus_ids[] __initdata = {
{ .compatible = "xlnx,plb-v46-1.00.a", },
static struct of_device_id xilinx_of_bus_ids[] __initdata = {
{ .compatible = "xlnx,plb-v46-1.00.a", },
+@@ -48,5 +49,6 @@ define_machine(virtex) {
.probe = virtex_probe,
.init_IRQ = xilinx_intc_init_tree,
.get_irq = xilinx_intc_get_irq,
.probe = virtex_probe,
.init_IRQ = xilinx_intc_init_tree,
.get_irq = xilinx_intc_get_irq,
static __initdata struct of_device_id walnut_of_bus[] = {
{ .compatible = "ibm,plb3", },
static __initdata struct of_device_id walnut_of_bus[] = {
{ .compatible = "ibm,plb3", },
+@@ -61,5 +62,6 @@ define_machine(walnut) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
#endif /* __POWERPC_PLATFORMS_44X_44X_H */
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
#endif /* __POWERPC_PLATFORMS_44X_44X_H */
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
+@@ -67,6 +67,25 @@ config WARP
See http://www.pikatechnologies.com/ and follow the "PIKA for Computer
Telephony Developers" link for more information.
See http://www.pikatechnologies.com/ and follow the "PIKA for Computer
Telephony Developers" link for more information.
#config LUAN
# bool "Luan"
# depends on 44x
#config LUAN
# bool "Luan"
# depends on 44x
+@@ -122,6 +141,14 @@ config 440SPe
bool
select IBM_NEW_EMAC_EMAC4
bool
select IBM_NEW_EMAC_EMAC4
static __initdata struct of_device_id bamboo_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id bamboo_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -53,11 +52,11 @@ static int __init bamboo_probe(void)
}
define_machine(bamboo) {
}
define_machine(bamboo) {
static __initdata struct of_device_id ebony_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id ebony_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -66,6 +65,6 @@ define_machine(ebony) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
static __initdata struct of_device_id katmai_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id katmai_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -58,6 +57,6 @@ define_machine(katmai) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
};
--- a/arch/powerpc/platforms/44x/misc_44x.S
+++ b/arch/powerpc/platforms/44x/misc_44x.S
};
--- a/arch/powerpc/platforms/44x/misc_44x.S
+++ b/arch/powerpc/platforms/44x/misc_44x.S
+@@ -44,14 +44,3 @@ _GLOBAL(as1_writeb)
static __initdata struct of_device_id rainier_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id rainier_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -57,6 +57,6 @@ define_machine(rainier) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
static __initdata struct of_device_id sequoia_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id sequoia_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -58,6 +58,6 @@ define_machine(sequoia) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
static __initdata struct of_device_id taishan_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id taishan_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -68,6 +67,6 @@ define_machine(taishan) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
#ifdef CONFIG_MTD_NAND_NDFC
#ifdef CONFIG_MTD_NAND_NDFC
+@@ -100,6 +101,6 @@ static int warp_setup_nand_flash(void)
static __initdata struct of_device_id warp_of_bus[] = {
{ .compatible = "ibm,plb4", },
static __initdata struct of_device_id warp_of_bus[] = {
{ .compatible = "ibm,plb4", },
+@@ -49,7 +47,7 @@ define_machine(warp) {
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
--- a/arch/powerpc/platforms/52xx/lite5200.c
+++ b/arch/powerpc/platforms/52xx/lite5200.c
--- a/arch/powerpc/platforms/52xx/lite5200.c
+++ b/arch/powerpc/platforms/52xx/lite5200.c
+@@ -63,7 +63,7 @@ lite5200_fix_clock_config(void)
of_node_put(np);
if (!cdm) {
printk(KERN_ERR "%s() failed; expect abnormal behaviour\n",
of_node_put(np);
if (!cdm) {
printk(KERN_ERR "%s() failed; expect abnormal behaviour\n",
+@@ -98,7 +98,7 @@ lite5200_fix_port_config(void)
of_node_put(np);
if (!gpio) {
printk(KERN_ERR "%s() failed. expect abnormal behavior\n",
of_node_put(np);
if (!gpio) {
printk(KERN_ERR "%s() failed. expect abnormal behavior\n",
--- a/arch/powerpc/platforms/82xx/Kconfig
+++ b/arch/powerpc/platforms/82xx/Kconfig
--- a/arch/powerpc/platforms/82xx/Kconfig
+++ b/arch/powerpc/platforms/82xx/Kconfig
+@@ -11,7 +11,6 @@ config MPC8272_ADS
select 8260
select FSL_SOC
select PQ2_ADS_PCI_PIC if PCI
select 8260
select FSL_SOC
select PQ2_ADS_PCI_PIC if PCI
help
This option enables support for the MPC8272 ADS board
help
This option enables support for the MPC8272 ADS board
+@@ -22,7 +21,6 @@ config PQ2FADS
select 8260
select FSL_SOC
select PQ2_ADS_PCI_PIC if PCI
select 8260
select FSL_SOC
select PQ2_ADS_PCI_PIC if PCI
help
This option enables support for the PQ2FADS board
help
This option enables support for the PQ2FADS board
+@@ -31,7 +29,6 @@ config EP8248E
select 8272
select 8260
select FSL_SOC
select 8272
select 8260
select FSL_SOC
This enables support for the Embedded Planet EP8248E board.
--- a/arch/powerpc/platforms/83xx/mpc837x_rdb.c
+++ b/arch/powerpc/platforms/83xx/mpc837x_rdb.c
This enables support for the Embedded Planet EP8248E board.
--- a/arch/powerpc/platforms/83xx/mpc837x_rdb.c
+++ b/arch/powerpc/platforms/83xx/mpc837x_rdb.c
+@@ -46,6 +46,7 @@ static void __init mpc837x_rdb_setup_arc
static struct of_device_id mpc837x_ids[] = {
{ .type = "soc", },
{ .compatible = "soc", },
static struct of_device_id mpc837x_ids[] = {
{ .type = "soc", },
{ .compatible = "soc", },
#define CONTROL_OTG_PORT 0x00000020
--- a/arch/powerpc/platforms/83xx/usb.c
+++ b/arch/powerpc/platforms/83xx/usb.c
#define CONTROL_OTG_PORT 0x00000020
--- a/arch/powerpc/platforms/83xx/usb.c
+++ b/arch/powerpc/platforms/83xx/usb.c
+@@ -129,7 +129,7 @@ int mpc831x_usb_cfg(void)
if (immr_node && of_device_is_compatible(immr_node, "fsl,mpc8315-immr"))
clrsetbits_be32(immap + MPC83XX_SCCR_OFFS,
MPC8315_SCCR_USB_MASK,
if (immr_node && of_device_is_compatible(immr_node, "fsl,mpc8315-immr"))
clrsetbits_be32(immap + MPC83XX_SCCR_OFFS,
MPC8315_SCCR_USB_MASK,
else
clrsetbits_be32(immap + MPC83XX_SCCR_OFFS,
MPC83XX_SCCR_USB_MASK,
else
clrsetbits_be32(immap + MPC83XX_SCCR_OFFS,
MPC83XX_SCCR_USB_MASK,
+@@ -164,9 +164,15 @@ int mpc831x_usb_cfg(void)
/* Using on-chip PHY */
if (prop && (!strcmp(prop, "utmi_wide") ||
!strcmp(prop, "utmi"))) {
/* Using on-chip PHY */
if (prop && (!strcmp(prop, "utmi_wide") ||
!strcmp(prop, "utmi"))) {
/* Set PHY_CLK_SEL to ULPI */
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
/* Set PHY_CLK_SEL to ULPI */
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
+@@ -19,7 +19,6 @@ config MPC8540_ADS
config MPC8560_ADS
bool "Freescale MPC8560 ADS"
select DEFAULT_UIMAGE
config MPC8560_ADS
bool "Freescale MPC8560 ADS"
select DEFAULT_UIMAGE
select CPM2
help
This option enables support for the MPC 8560 ADS board
select CPM2
help
This option enables support for the MPC 8560 ADS board
+@@ -46,6 +45,12 @@ config MPC85xx_DS
help
This option enables support for the MPC85xx DS (MPC8544 DS) board
help
This option enables support for the MPC85xx DS (MPC8544 DS) board
config STX_GP3
bool "Silicon Turnkey Express GP3"
help
config STX_GP3
bool "Silicon Turnkey Express GP3"
help
+@@ -53,14 +58,12 @@ config STX_GP3
board.
select CPM2
select DEFAULT_UIMAGE
board.
select CPM2
select DEFAULT_UIMAGE
select TQM85xx
config TQM8541
select TQM85xx
config TQM8541
+@@ -68,7 +71,6 @@ config TQM8541
help
This option enables support for the TQ Components TQM8541 board.
select DEFAULT_UIMAGE
help
This option enables support for the TQ Components TQM8541 board.
select DEFAULT_UIMAGE
select TQM85xx
select CPM2
select TQM85xx
select CPM2
+@@ -77,7 +79,6 @@ config TQM8555
help
This option enables support for the TQ Components TQM8555 board.
select DEFAULT_UIMAGE
help
This option enables support for the TQ Components TQM8555 board.
select DEFAULT_UIMAGE
select TQM85xx
select CPM2
select TQM85xx
select CPM2
+@@ -86,7 +87,6 @@ config TQM8560
help
This option enables support for the TQ Components TQM8560 board.
select DEFAULT_UIMAGE
help
This option enables support for the TQ Components TQM8560 board.
select DEFAULT_UIMAGE
select TQM85xx
select CPM2
select TQM85xx
select CPM2
+@@ -99,7 +99,6 @@ config SBC8548
config SBC8560
bool "Wind River SBC8560"
select DEFAULT_UIMAGE
config SBC8560
bool "Wind River SBC8560"
select DEFAULT_UIMAGE
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
+@@ -10,3 +10,4 @@ obj-$(CONFIG_STX_GP3) += stx_gp3.o
obj-$(CONFIG_TQM85xx) += tqm85xx.o
obj-$(CONFIG_SBC8560) += sbc8560.o
obj-$(CONFIG_SBC8548) += sbc8548.o
obj-$(CONFIG_TQM85xx) += tqm85xx.o
obj-$(CONFIG_SBC8560) += sbc8560.o
obj-$(CONFIG_SBC8548) += sbc8548.o
+};
--- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+};
--- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+@@ -165,7 +165,7 @@ static void __init init_ioports(void)
int i;
for (i = 0; i < ARRAY_SIZE(mpc8560_ads_pins); i++) {
int i;
for (i = 0; i < ARRAY_SIZE(mpc8560_ads_pins); i++) {
#else
#define DBG(fmt, args...)
#endif
#else
#define DBG(fmt, args...)
#endif
+@@ -183,6 +184,18 @@ static int __init mpc8544_ds_probe(void)
*/
--- a/arch/powerpc/platforms/86xx/Kconfig
+++ b/arch/powerpc/platforms/86xx/Kconfig
*/
--- a/arch/powerpc/platforms/86xx/Kconfig
+++ b/arch/powerpc/platforms/86xx/Kconfig
+@@ -11,6 +11,12 @@ config MPC8641_HPCN
help
This option enables support for the MPC8641 HPCN board.
help
This option enables support for the MPC8641 HPCN board.
config MPC8610_HPCD
bool "Freescale MPC8610 HPCD"
select DEFAULT_UIMAGE
config MPC8610_HPCD
bool "Freescale MPC8610 HPCD"
select DEFAULT_UIMAGE
+@@ -24,7 +30,7 @@ config MPC8641
select FSL_PCI if PCI
select PPC_UDBG_16550
select MPIC
select FSL_PCI if PCI
select PPC_UDBG_16550
select MPIC
obj-$(CONFIG_MPC8610_HPCD) += mpc8610_hpcd.o
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
obj-$(CONFIG_MPC8610_HPCD) += mpc8610_hpcd.o
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+@@ -52,7 +52,7 @@ static int __init mpc8610_declare_of_pla
}
machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices);
}
machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices);
mpc86xx_hpcd_init_irq(void)
{
struct mpic *mpic1;
mpc86xx_hpcd_init_irq(void)
{
struct mpic *mpic1;
+@@ -200,7 +200,7 @@ static int __init mpc86xx_hpcd_probe(voi
unsigned int temp;
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
unsigned int temp;
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+@@ -55,7 +55,7 @@ static void mpc86xx_8259_cascade(unsigne
}
#endif /* CONFIG_PCI */
}
#endif /* CONFIG_PCI */
mpc86xx_hpcn_init_irq(void)
{
struct mpic *mpic1;
mpc86xx_hpcn_init_irq(void)
{
struct mpic *mpic1;
+@@ -162,7 +162,7 @@ mpc86xx_hpcn_setup_arch(void)
mpc86xx_hpcn_show_cpuinfo(struct seq_file *m)
{
struct device_node *root;
mpc86xx_hpcn_show_cpuinfo(struct seq_file *m)
{
struct device_node *root;
+@@ -190,13 +190,19 @@ static int __init mpc86xx_hpcn_probe(voi
{
unsigned long root = of_get_flat_dt_root();
{
unsigned long root = of_get_flat_dt_root();
+};
--- a/arch/powerpc/platforms/8xx/Kconfig
+++ b/arch/powerpc/platforms/8xx/Kconfig
+};
--- a/arch/powerpc/platforms/8xx/Kconfig
+++ b/arch/powerpc/platforms/8xx/Kconfig
+@@ -18,7 +18,6 @@ config MPC8XXFADS
config MPC86XADS
bool "MPC86XADS"
select CPM1
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
help
MPC86x Application Development System by Freescale Semiconductor.
The MPC86xADS is meant to serve as a platform for s/w and h/w
+@@ -27,7 +26,6 @@ config MPC86XADS
config MPC885ADS
bool "MPC885ADS"
select CPM1
config MPC885ADS
bool "MPC885ADS"
select CPM1
help
Freescale Semiconductor MPC885 Application Development System (ADS).
Also known as DUET.
help
Freescale Semiconductor MPC885 Application Development System (ADS).
Also known as DUET.
+@@ -37,7 +35,6 @@ config MPC885ADS
config PPC_EP88XC
bool "Embedded Planet EP88xC (a.k.a. CWH-PPC-885XN-VE)"
select CPM1
config PPC_EP88XC
bool "Embedded Planet EP88xC (a.k.a. CWH-PPC-885XN-VE)"
select CPM1
help
This enables support for the Embedded Planet EP88xC board.
help
This enables support for the Embedded Planet EP88xC board.
+@@ -47,7 +44,6 @@ config PPC_EP88XC
config PPC_ADDER875
bool "Analogue & Micro Adder 875"
select CPM1
config PPC_ADDER875
bool "Analogue & Micro Adder 875"
select CPM1
This enables support for the Analogue & Micro Adder 875
--- a/arch/powerpc/platforms/8xx/m8xx_setup.c
+++ b/arch/powerpc/platforms/8xx/m8xx_setup.c
This enables support for the Analogue & Micro Adder 875
--- a/arch/powerpc/platforms/8xx/m8xx_setup.c
+++ b/arch/powerpc/platforms/8xx/m8xx_setup.c
+@@ -111,17 +111,12 @@ void __init mpc8xx_calibrate_decr(void)
/* Processor frequency is MHz.
*/
/* Processor frequency is MHz.
*/
/* Perform some more timer/timebase initialization. This used
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
/* Perform some more timer/timebase initialization. This used
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
+@@ -290,13 +290,7 @@ config CPM2
config PPC_CPM_NEW_BINDING
bool
depends on CPM1 || CPM2
config PPC_CPM_NEW_BINDING
bool
depends on CPM1 || CPM2
tristate "Axon DDR2 memory device driver"
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
tristate "Axon DDR2 memory device driver"
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
+@@ -41,11 +41,13 @@ config 40x
bool "AMCC 40x"
select PPC_DCR_NATIVE
select PPC_UDBG_16550
bool "AMCC 40x"
select PPC_DCR_NATIVE
select PPC_UDBG_16550
#include <asm/firmware.h>
#include <asm/cell-regs.h>
#include <asm/firmware.h>
#include <asm/cell-regs.h>
+@@ -316,7 +316,7 @@ static void cell_iommu_setup_stab(struct
segments = max(dbase + dsize, fbase + fsize) >> IO_SEGMENT_SHIFT;
pr_debug("%s: iommu[%d]: segments: %lu\n",
segments = max(dbase + dsize, fbase + fsize) >> IO_SEGMENT_SHIFT;
pr_debug("%s: iommu[%d]: segments: %lu\n",
/* set up the segment table */
stab_size = segments * sizeof(unsigned long);
/* set up the segment table */
stab_size = segments * sizeof(unsigned long);
+@@ -343,7 +343,7 @@ static unsigned long *cell_iommu_alloc_p
(1 << 12) / sizeof(unsigned long));
ptab_size = segments * pages_per_segment * sizeof(unsigned long);
(1 << 12) / sizeof(unsigned long));
ptab_size = segments * pages_per_segment * sizeof(unsigned long);
iommu->nid, ptab_size, get_order(ptab_size));
page = alloc_pages_node(iommu->nid, GFP_KERNEL, get_order(ptab_size));
BUG_ON(!page);
iommu->nid, ptab_size, get_order(ptab_size));
page = alloc_pages_node(iommu->nid, GFP_KERNEL, get_order(ptab_size));
BUG_ON(!page);
+@@ -355,7 +355,7 @@ static unsigned long *cell_iommu_alloc_p
n_pte_pages = (pages_per_segment * sizeof(unsigned long)) >> 12;
pr_debug("%s: iommu[%d]: stab at %p, ptab at %p, n_pte_pages: %lu\n",
n_pte_pages = (pages_per_segment * sizeof(unsigned long)) >> 12;
pr_debug("%s: iommu[%d]: stab at %p, ptab at %p, n_pte_pages: %lu\n",
n_pte_pages);
/* initialise the STEs */
n_pte_pages);
/* initialise the STEs */
+@@ -394,7 +394,7 @@ static void cell_iommu_enable_hardware(s
if (cell_iommu_find_ioc(iommu->nid, &xlate_base))
panic("%s: missing IOC register mappings for node %d\n",
if (cell_iommu_find_ioc(iommu->nid, &xlate_base))
panic("%s: missing IOC register mappings for node %d\n",
iommu->cmd_regs = iommu->xlate_regs + IOC_IOCmd_Offset;
--- a/arch/powerpc/platforms/cell/pervasive.c
+++ b/arch/powerpc/platforms/cell/pervasive.c
iommu->cmd_regs = iommu->xlate_regs + IOC_IOCmd_Offset;
--- a/arch/powerpc/platforms/cell/pervasive.c
+++ b/arch/powerpc/platforms/cell/pervasive.c
+@@ -65,7 +65,7 @@ static void cbe_power_save(void)
break;
default:
printk(KERN_WARNING "%s: unknown configuration\n",
break;
default:
printk(KERN_WARNING "%s: unknown configuration\n",
mtspr(SPRN_TSC_CELL, thread_switch_control);
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
mtspr(SPRN_TSC_CELL, thread_switch_control);
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
+@@ -132,7 +132,7 @@ static int __init cbe_ptcal_enable_on_no
(unsigned int)(addr >> 32),
(unsigned int)(addr & 0xffffffff))) {
printk(KERN_ERR "%s: error enabling PTCAL on node %d!\n",
(unsigned int)(addr >> 32),
(unsigned int)(addr & 0xffffffff))) {
printk(KERN_ERR "%s: error enabling PTCAL on node %d!\n",
+@@ -162,7 +162,7 @@ static int __init cbe_ptcal_enable(void)
if (!size)
return -ENODEV;
if (!size)
return -ENODEV;
order = get_order(*size);
of_node_put(np);
order = get_order(*size);
of_node_put(np);
+@@ -180,7 +180,7 @@ static int __init cbe_ptcal_enable(void)
const u32 *nid = of_get_property(np, "node-id", NULL);
if (!nid) {
printk(KERN_ERR "%s: node %s is missing node-id?\n",
const u32 *nid = of_get_property(np, "node-id", NULL);
if (!nid) {
printk(KERN_ERR "%s: node %s is missing node-id?\n",
continue;
}
cbe_ptcal_enable_on_node(*nid, order);
continue;
}
cbe_ptcal_enable_on_node(*nid, order);
+@@ -195,13 +195,13 @@ static int cbe_ptcal_disable(void)
struct ptcal_area *area, *tmp;
int ret = 0;
struct ptcal_area *area, *tmp;
int ret = 0;
continue;
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
continue;
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
+@@ -165,7 +165,7 @@ static int __spu_trap_data_seg(struct sp
struct spu_slb slb;
int psize;
struct spu_slb slb;
int psize;
slb.esid = (ea & ESID_MASK) | SLB_ESID_V;
slb.esid = (ea & ESID_MASK) | SLB_ESID_V;
+@@ -215,7 +215,7 @@ static int __spu_trap_data_seg(struct sp
extern int hash_page(unsigned long ea, unsigned long access, unsigned long trap); //XXX
static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr)
{
extern int hash_page(unsigned long ea, unsigned long access, unsigned long trap); //XXX
static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr)
{
/* Handle kernel space hash faults immediately.
User hash faults need to be deferred to process context. */
/* Handle kernel space hash faults immediately.
User hash faults need to be deferred to process context. */
+@@ -351,7 +351,7 @@ spu_irq_class_1(int irq, void *data)
__spu_trap_data_seg(spu, dar);
spin_unlock(&spu->register_lock);
__spu_trap_data_seg(spu, dar);
spin_unlock(&spu->register_lock);
dar, dsisr);
if (stat & CLASS1_STORAGE_FAULT_INTR)
dar, dsisr);
if (stat & CLASS1_STORAGE_FAULT_INTR)
+@@ -726,7 +726,7 @@ static int __init init_spu_base(void)
if (ret < 0) {
printk(KERN_WARNING "%s: Error initializing spus\n",
if (ret < 0) {
printk(KERN_WARNING "%s: Error initializing spus\n",
--- a/arch/powerpc/platforms/cell/spu_callbacks.c
+++ b/arch/powerpc/platforms/cell/spu_callbacks.c
--- a/arch/powerpc/platforms/cell/spu_callbacks.c
+++ b/arch/powerpc/platforms/cell/spu_callbacks.c
+@@ -54,7 +54,7 @@ long spu_sys_callback(struct spu_syscall
long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6);
if (s->nr_ret >= ARRAY_SIZE(spu_syscall_table)) {
long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6);
if (s->nr_ret >= ARRAY_SIZE(spu_syscall_table)) {
--- a/arch/powerpc/platforms/cell/spu_manage.c
+++ b/arch/powerpc/platforms/cell/spu_manage.c
--- a/arch/powerpc/platforms/cell/spu_manage.c
+++ b/arch/powerpc/platforms/cell/spu_manage.c
+@@ -92,7 +92,7 @@ static int __init spu_map_interrupts_old
tmp = of_get_property(np->parent->parent, "node-id", NULL);
if (!tmp) {
tmp = of_get_property(np->parent->parent, "node-id", NULL);
if (!tmp) {
nid = spu->node;
} else
nid = tmp[0];
nid = spu->node;
} else
nid = tmp[0];
+@@ -296,7 +296,7 @@ static int __init of_enumerate_spus(int
ret = fn(node);
if (ret) {
printk(KERN_WARNING "%s: Error initializing %s\n",
ret = fn(node);
if (ret) {
printk(KERN_WARNING "%s: Error initializing %s\n",
+@@ -327,7 +327,7 @@ static int __init of_create_spu(struct s
if (!legacy_map) {
legacy_map = 1;
printk(KERN_WARNING "%s: Legacy device tree found, "
if (!legacy_map) {
legacy_map = 1;
printk(KERN_WARNING "%s: Legacy device tree found, "
}
ret = spu_map_device_old(spu);
if (ret) {
}
ret = spu_map_device_old(spu);
if (ret) {
+@@ -342,7 +342,7 @@ static int __init of_create_spu(struct s
if (!legacy_irq) {
legacy_irq = 1;
printk(KERN_WARNING "%s: Legacy device tree found, "
if (!legacy_irq) {
legacy_irq = 1;
printk(KERN_WARNING "%s: Legacy device tree found, "
if (ret) {
--- a/arch/powerpc/platforms/cell/spufs/coredump.c
+++ b/arch/powerpc/platforms/cell/spufs/coredump.c
if (ret) {
--- a/arch/powerpc/platforms/cell/spufs/coredump.c
+++ b/arch/powerpc/platforms/cell/spufs/coredump.c
+@@ -133,8 +133,6 @@ static struct spu_context *coredump_next
if (ctx->flags & SPU_CREATE_NOSCHED)
continue;
if (ctx->flags & SPU_CREATE_NOSCHED)
continue;
+@@ -157,6 +155,9 @@ int spufs_coredump_extra_notes_size(void
+@@ -239,6 +240,9 @@ int spufs_coredump_extra_notes_write(str
}
spu_release_saved(ctx);
}
spu_release_saved(ctx);
return 0;
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
return 0;
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
+@@ -1337,7 +1337,7 @@ static u64 spufs_signal1_type_get(struct
return ctx->ops->signal1_type_get(ctx);
}
DEFINE_SPUFS_ATTRIBUTE(spufs_signal1_type, spufs_signal1_type_get,
return ctx->ops->signal1_type_get(ctx);
}
DEFINE_SPUFS_ATTRIBUTE(spufs_signal1_type, spufs_signal1_type_get,
static int spufs_signal2_type_set(void *data, u64 val)
static int spufs_signal2_type_set(void *data, u64 val)
+@@ -1359,7 +1359,7 @@ static u64 spufs_signal2_type_get(struct
return ctx->ops->signal2_type_get(ctx);
}
DEFINE_SPUFS_ATTRIBUTE(spufs_signal2_type, spufs_signal2_type_get,
return ctx->ops->signal2_type_get(ctx);
}
DEFINE_SPUFS_ATTRIBUTE(spufs_signal2_type, spufs_signal2_type_get,
#if SPUFS_MMAP_4K
static unsigned long spufs_mss_mmap_nopfn(struct vm_area_struct *vma,
#if SPUFS_MMAP_4K
static unsigned long spufs_mss_mmap_nopfn(struct vm_area_struct *vma,
+@@ -1556,7 +1556,7 @@ void spufs_mfc_callback(struct spu *spu)
wake_up_all(&ctx->mfc_wq);
wake_up_all(&ctx->mfc_wq);
if (ctx->mfc_fasync) {
u32 free_elements, tagstatus;
unsigned int mask;
if (ctx->mfc_fasync) {
u32 free_elements, tagstatus;
unsigned int mask;
+@@ -1790,7 +1790,7 @@ static unsigned int spufs_mfc_poll(struc
if (tagstatus & ctx->tagwait)
mask |= POLLIN | POLLRDNORM;
if (tagstatus & ctx->tagwait)
mask |= POLLIN | POLLRDNORM;
return mask;
--- a/arch/powerpc/platforms/cell/spufs/run.c
+++ b/arch/powerpc/platforms/cell/spufs/run.c
return mask;
--- a/arch/powerpc/platforms/cell/spufs/run.c
+++ b/arch/powerpc/platforms/cell/spufs/run.c
+@@ -98,7 +98,7 @@ static int spu_setup_isolated(struct spu
!= MFC_CNTL_PURGE_DMA_COMPLETE) {
if (time_after(jiffies, timeout)) {
printk(KERN_ERR "%s: timeout flushing MFC DMA queue\n",
!= MFC_CNTL_PURGE_DMA_COMPLETE) {
if (time_after(jiffies, timeout)) {
printk(KERN_ERR "%s: timeout flushing MFC DMA queue\n",
+@@ -124,7 +124,7 @@ static int spu_setup_isolated(struct spu
status_loading) {
if (time_after(jiffies, timeout)) {
printk(KERN_ERR "%s: timeout waiting for loader\n",
status_loading) {
if (time_after(jiffies, timeout)) {
printk(KERN_ERR "%s: timeout waiting for loader\n",
ret = -EIO;
goto out_drop_priv;
}
ret = -EIO;
goto out_drop_priv;
}
+@@ -134,7 +134,7 @@ static int spu_setup_isolated(struct spu
if (!(status & SPU_STATUS_RUNNING)) {
/* If isolated LOAD has failed: run SPU, we will get a stop-and
* signal later. */
if (!(status & SPU_STATUS_RUNNING)) {
/* If isolated LOAD has failed: run SPU, we will get a stop-and
* signal later. */
ctx->ops->runcntl_write(ctx, SPU_RUNCNTL_RUNNABLE);
ret = -EACCES;
goto out_drop_priv;
ctx->ops->runcntl_write(ctx, SPU_RUNCNTL_RUNNABLE);
ret = -EACCES;
goto out_drop_priv;
+@@ -142,7 +142,7 @@ static int spu_setup_isolated(struct spu
if (!(status & SPU_STATUS_ISOLATED_STATE)) {
/* This isn't allowed by the CBEA, but check anyway */
if (!(status & SPU_STATUS_ISOLATED_STATE)) {
/* This isn't allowed by the CBEA, but check anyway */
ctx->ops->runcntl_write(ctx, SPU_RUNCNTL_STOP);
ret = -EINVAL;
goto out_drop_priv;
ctx->ops->runcntl_write(ctx, SPU_RUNCNTL_STOP);
ret = -EINVAL;
goto out_drop_priv;
+@@ -282,7 +282,7 @@ static int spu_handle_restartsys(struct
break;
default:
printk(KERN_WARNING "%s: unexpected return code %ld\n",
break;
default:
printk(KERN_WARNING "%s: unexpected return code %ld\n",
+@@ -323,6 +323,10 @@ static int spu_process_callback(struct s
ctx->ops->npc_write(ctx, npc);
--- a/arch/powerpc/platforms/cell/spufs/switch.c
+++ b/arch/powerpc/platforms/cell/spufs/switch.c
ctx->ops->npc_write(ctx, npc);
--- a/arch/powerpc/platforms/cell/spufs/switch.c
+++ b/arch/powerpc/platforms/cell/spufs/switch.c
+@@ -1815,6 +1815,7 @@ static void save_csa(struct spu_state *p
save_mfc_csr_ato(prev, spu); /* Step 24. */
save_mfc_tclass_id(prev, spu); /* Step 25. */
set_mfc_tclass_id(prev, spu); /* Step 26. */
save_mfc_csr_ato(prev, spu); /* Step 24. */
save_mfc_tclass_id(prev, spu); /* Step 25. */
set_mfc_tclass_id(prev, spu); /* Step 26. */
purge_mfc_queue(prev, spu); /* Step 27. */
wait_purge_complete(prev, spu); /* Step 28. */
setup_mfc_sr1(prev, spu); /* Step 30. */
purge_mfc_queue(prev, spu); /* Step 27. */
wait_purge_complete(prev, spu); /* Step 28. */
setup_mfc_sr1(prev, spu); /* Step 30. */
+@@ -1831,7 +1832,6 @@ static void save_csa(struct spu_state *p
save_ppuint_mb(prev, spu); /* Step 41. */
save_ch_part1(prev, spu); /* Step 42. */
save_spu_mb(prev, spu); /* Step 43. */
save_ppuint_mb(prev, spu); /* Step 41. */
save_ch_part1(prev, spu); /* Step 42. */
save_spu_mb(prev, spu); /* Step 43. */
--- a/arch/powerpc/platforms/celleb/beat.c
+++ b/arch/powerpc/platforms/celleb/beat.c
--- a/arch/powerpc/platforms/celleb/beat.c
+++ b/arch/powerpc/platforms/celleb/beat.c
+@@ -48,6 +48,7 @@ void beat_power_off(void)
}
u64 beat_halt_code = 0x1000000000000000UL;
}
u64 beat_halt_code = 0x1000000000000000UL;
+@@ -94,9 +95,8 @@ ssize_t beat_nvram_read(char *buf, size_
len = count;
if (len > BEAT_NVRW_CNT)
len = BEAT_NVRW_CNT;
len = count;
if (len > BEAT_NVRW_CNT)
len = BEAT_NVRW_CNT;
+@@ -121,9 +121,8 @@ ssize_t beat_nvram_write(char *buf, size
len = count;
if (len > BEAT_NVRW_CNT)
len = BEAT_NVRW_CNT;
len = count;
if (len > BEAT_NVRW_CNT)
len = BEAT_NVRW_CNT;
+@@ -149,13 +148,14 @@ int64_t beat_get_term_char(u64 vterm, u6
int64_t beat_put_term_char(u64 vterm, u64 len, u64 t1, u64 t2)
{
int64_t beat_put_term_char(u64 vterm, u64 len, u64 t1, u64 t2)
{
+@@ -163,8 +163,9 @@ int64_t beat_put_term_char(u64 vterm, u6
void beat_power_save(void)
{
void beat_power_save(void)
{
+@@ -261,7 +262,3 @@ static int __init beat_event_init(void)
}
device_initcall(beat_event_init);
}
device_initcall(beat_event_init);
void beat_power_off(void);
--- a/arch/powerpc/platforms/celleb/beat_wrapper.h
+++ b/arch/powerpc/platforms/celleb/beat_wrapper.h
void beat_power_off(void);
--- a/arch/powerpc/platforms/celleb/beat_wrapper.h
+++ b/arch/powerpc/platforms/celleb/beat_wrapper.h
+@@ -197,7 +197,8 @@ static inline s64 beat_put_characters_to
u64 b[2];
memcpy(b, buffer, len);
u64 b[2];
memcpy(b, buffer, len);
#endif
static DEFINE_SPINLOCK(beat_htab_lock);
#endif
static DEFINE_SPINLOCK(beat_htab_lock);
+@@ -116,7 +116,8 @@ static long beat_lpar_hpte_insert(unsign
hpte_r &= ~_PAGE_COHERENT;
spin_lock(&beat_htab_lock);
hpte_r &= ~_PAGE_COHERENT;
spin_lock(&beat_htab_lock);
spin_unlock(&beat_htab_lock);
--- a/arch/powerpc/platforms/celleb/interrupt.c
+++ b/arch/powerpc/platforms/celleb/interrupt.c
spin_unlock(&beat_htab_lock);
--- a/arch/powerpc/platforms/celleb/interrupt.c
+++ b/arch/powerpc/platforms/celleb/interrupt.c
+@@ -34,7 +34,7 @@ static DEFINE_SPINLOCK(beatic_irq_mask_l
static uint64_t beatic_irq_mask_enable[(MAX_IRQS+255)/64];
static uint64_t beatic_irq_mask_ack[(MAX_IRQS+255)/64];
static uint64_t beatic_irq_mask_enable[(MAX_IRQS+255)/64];
static uint64_t beatic_irq_mask_ack[(MAX_IRQS+255)/64];
/*
* In this implementation, "virq" == "IRQ plug number",
/*
* In this implementation, "virq" == "IRQ plug number",
+@@ -49,13 +49,13 @@ static inline void beatic_update_irq_mas
off = (irq_plug / 256) * 4;
masks[0] = beatic_irq_mask_enable[off + 0]
off = (irq_plug / 256) * 4;
masks[0] = beatic_irq_mask_enable[off + 0]
if (beat_set_interrupt_mask(irq_plug&~255UL,
masks[0], masks[1], masks[2], masks[3]) != 0)
panic("Failed to set mask IRQ!");
if (beat_set_interrupt_mask(irq_plug&~255UL,
masks[0], masks[1], masks[2], masks[3]) != 0)
panic("Failed to set mask IRQ!");
+@@ -96,7 +96,8 @@ static void beatic_end_irq(unsigned int
s64 err;
unsigned long flags;
s64 err;
unsigned long flags;
if ((err & 0xFFFFFFFF) != 0xFFFFFFF5) /* -11: wrong state */
panic("Failed to downcount IRQ! Error = %16lx", err);
if ((err & 0xFFFFFFFF) != 0xFFFFFFF5) /* -11: wrong state */
panic("Failed to downcount IRQ! Error = %16lx", err);
+@@ -138,7 +139,8 @@ static int beatic_pic_host_map(struct ir
struct irq_desc *desc = get_irq_desc(virq);
int64_t err;
struct irq_desc *desc = get_irq_desc(virq);
int64_t err;
return -EIO;
desc->status |= IRQ_LEVEL;
return -EIO;
desc->status |= IRQ_LEVEL;
+@@ -202,22 +204,22 @@ static inline unsigned int beatic_get_ir
beat_detect_pending_interrupts(i, pending);
__asm__ ("cntlzd %0,%1":"=r"(ub):
"r"(pending[0] & beatic_irq_mask_enable[i/64+0]
beat_detect_pending_interrupts(i, pending);
__asm__ ("cntlzd %0,%1":"=r"(ub):
"r"(pending[0] & beatic_irq_mask_enable[i/64+0]
if (ub != 64)
return i + ub + 192;
}
if (ub != 64)
return i + ub + 192;
}
+@@ -250,7 +252,7 @@ void __init beatic_init_IRQ(void)
/* Allocate an irq host */
beatic_host = irq_alloc_host(NULL, IRQ_HOST_MAP_NOMAP, 0,
/* Allocate an irq host */
beatic_host = irq_alloc_host(NULL, IRQ_HOST_MAP_NOMAP, 0,
irq_set_default_host(beatic_host);
--- a/arch/powerpc/platforms/celleb/scc_epci.c
+++ b/arch/powerpc/platforms/celleb/scc_epci.c
irq_set_default_host(beatic_host);
--- a/arch/powerpc/platforms/celleb/scc_epci.c
+++ b/arch/powerpc/platforms/celleb/scc_epci.c
+@@ -161,9 +161,9 @@ static PCI_IO_ADDR celleb_epci_make_conf
if (bus != hose->bus)
addr = celleb_epci_get_epci_cfg(hose) +
(((bus->number & 0xff) << 16)
if (bus != hose->bus)
addr = celleb_epci_get_epci_cfg(hose) +
(((bus->number & 0xff) << 16)
else
addr = celleb_epci_get_epci_cfg(hose) +
(((devfn & 0xff) << 8) | (where & 0xff));
else
addr = celleb_epci_get_epci_cfg(hose) +
(((devfn & 0xff) << 8) | (where & 0xff));
+@@ -174,7 +174,7 @@ static PCI_IO_ADDR celleb_epci_make_conf
}
static int celleb_epci_read_config(struct pci_bus *bus,
}
static int celleb_epci_read_config(struct pci_bus *bus,
static struct {
uint32_t offset;
static struct {
uint32_t offset;
+@@ -84,7 +84,7 @@ static int __init txx9_serial_config(cha
case 2:
--- a/arch/powerpc/platforms/celleb/spu_priv1.c
+++ b/arch/powerpc/platforms/celleb/spu_priv1.c
case 2:
--- a/arch/powerpc/platforms/celleb/spu_priv1.c
+++ b/arch/powerpc/platforms/celleb/spu_priv1.c
+@@ -183,8 +183,7 @@ static u64 resource_allocation_enable_ge
.int_mask_set = int_mask_set,
--- a/arch/powerpc/platforms/celleb/udbg_beat.c
+++ b/arch/powerpc/platforms/celleb/udbg_beat.c
.int_mask_set = int_mask_set,
--- a/arch/powerpc/platforms/celleb/udbg_beat.c
+++ b/arch/powerpc/platforms/celleb/udbg_beat.c
+@@ -54,7 +54,8 @@ static int udbg_getc_poll_beat(void)
if (inbuflen == 0) {
/* get some more chars. */
inbuflen = 0;
if (inbuflen == 0) {
/* get some more chars. */
inbuflen = 0;
if (rc != 0)
inbuflen = 0; /* otherwise inbuflen is garbage */
}
if (rc != 0)
inbuflen = 0; /* otherwise inbuflen is garbage */
}
+@@ -78,7 +79,7 @@ static int udbg_getc_beat(void)
if (ch == -1) {
/* This shouldn't be needed...but... */
volatile unsigned long delay;
if (ch == -1) {
/* This shouldn't be needed...but... */
volatile unsigned long delay;
return ch;
--- a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
return ch;
--- a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+@@ -117,11 +117,11 @@ static void __init mpc7448_hpc2_init_IRQ
(u32) mpic_paddr);
mpic = mpic_alloc(tsi_pic, mpic_paddr,
(u32) mpic_paddr);
mpic = mpic_alloc(tsi_pic, mpic_paddr,
+@@ -140,17 +140,17 @@ static void __init mpc7448_hpc2_init_IRQ
#ifdef CONFIG_PCI
tsi_pci = of_find_node_by_type(NULL, "pci");
if (tsi_pci == NULL) {
#ifdef CONFIG_PCI
tsi_pci = of_find_node_by_type(NULL, "pci");
if (tsi_pci == NULL) {
set_irq_data(cascade_pci_irq, mpic);
--- a/arch/powerpc/platforms/embedded6xx/prpmc2800.c
+++ b/arch/powerpc/platforms/embedded6xx/prpmc2800.c
set_irq_data(cascade_pci_irq, mpic);
--- a/arch/powerpc/platforms/embedded6xx/prpmc2800.c
+++ b/arch/powerpc/platforms/embedded6xx/prpmc2800.c
+@@ -49,13 +49,13 @@ static void __init prpmc2800_setup_arch(
* ioremap mpp and gpp registers in case they are later
* needed by prpmc2800_reset_board().
*/
* ioremap mpp and gpp registers in case they are later
* needed by prpmc2800_reset_board().
*/
b .__start_initialization_iSeries /* Start up the first processor */
--- a/arch/powerpc/platforms/iseries/ipl_parms.h
+++ b/arch/powerpc/platforms/iseries/ipl_parms.h
b .__start_initialization_iSeries /* Start up the first processor */
--- a/arch/powerpc/platforms/iseries/ipl_parms.h
+++ b/arch/powerpc/platforms/iseries/ipl_parms.h
+@@ -65,6 +65,4 @@ struct ItIplParmsReal {
u64 xRsvd13; // Reserved x38-x3F
};
u64 xRsvd13; // Reserved x38-x3F
};
.xDesc = 0xc8a5d9c4, /* "HvRD" ebcdic */
.xSize = sizeof(struct HvReleaseData),
.xVpdAreasPtrOffset = offsetof(struct naca_struct, xItVpdAreas),
.xDesc = 0xc8a5d9c4, /* "HvRD" ebcdic */
.xSize = sizeof(struct HvReleaseData),
.xVpdAreasPtrOffset = offsetof(struct naca_struct, xItVpdAreas),
+@@ -61,6 +61,63 @@ struct naca_struct naca = {
extern void system_reset_iSeries(void);
extern void machine_check_iSeries(void);
extern void data_access_iSeries(void);
extern void system_reset_iSeries(void);
extern void machine_check_iSeries(void);
extern void data_access_iSeries(void);
+@@ -129,7 +186,7 @@ struct ItLpNaca itLpNaca = {
};
/* May be filled in by the hypervisor so cannot end up in the BSS */
};
/* May be filled in by the hypervisor so cannot end up in the BSS */
/* May be filled in by the hypervisor so cannot end up in the BSS */
struct ItExtVpdPanel xItExtVpdPanel __attribute__((__section__(".data")));
/* May be filled in by the hypervisor so cannot end up in the BSS */
struct ItExtVpdPanel xItExtVpdPanel __attribute__((__section__(".data")));
+@@ -152,13 +209,54 @@ u64 xMsVpd[3400] __attribute__((__sec
/* Space for Recovery Log Buffer */
/* May be filled in by the hypervisor so cannot end up in the BSS */
/* Space for Recovery Log Buffer */
/* May be filled in by the hypervisor so cannot end up in the BSS */
/* The LparMap data is now located at offset 0x6000 in head.S
* It was put there so that the HvReleaseData could address it
* with a 32-bit offset as required by the iSeries hypervisor
/* The LparMap data is now located at offset 0x6000 in head.S
* It was put there so that the HvReleaseData could address it
* with a 32-bit offset as required by the iSeries hypervisor
+@@ -167,7 +265,7 @@ struct SpCommArea xSpCommArea = {
* the Naca via the HvReleaseData area. The HvReleaseData has the
* offset into the Naca of the pointer to the ItVpdAreas.
*/
* the Naca via the HvReleaseData area. The HvReleaseData has the
* offset into the Naca of the pointer to the ItVpdAreas.
*/
.xSlicDesc = 0xc9a3e5c1, /* "ItVA" */
.xSlicSize = sizeof(struct ItVpdAreas),
.xSlicVpdEntries = ItVpdMaxEntries, /* # VPD array entries */
.xSlicDesc = 0xc9a3e5c1, /* "ItVA" */
.xSlicSize = sizeof(struct ItVpdAreas),
.xSlicVpdEntries = ItVpdMaxEntries, /* # VPD array entries */
+@@ -185,7 +283,7 @@ struct ItVpdAreas itVpdAreas = {
.xSlicVpdLens = { /* VPD lengths */
0,0,0, /* 0 - 2 */
sizeof(xItExtVpdPanel), /* 3 Extended VPD */
.xSlicVpdLens = { /* VPD lengths */
0,0,0, /* 0 - 2 */
sizeof(xItExtVpdPanel), /* 3 Extended VPD */
0, /* 5 */
sizeof(struct ItIplParmsReal),/* 6 length of IPL parms */
26992, /* 7 length of MS VPD */
0, /* 5 */
sizeof(struct ItIplParmsReal),/* 6 length of IPL parms */
26992, /* 7 length of MS VPD */
+@@ -203,7 +301,7 @@ struct ItVpdAreas itVpdAreas = {
.xSlicVpdAdrs = { /* VPD addresses */
0,0,0, /* 0 - 2 */
&xItExtVpdPanel, /* 3 Extended VPD */
.xSlicVpdAdrs = { /* VPD addresses */
0,0,0, /* 0 - 2 */
&xItExtVpdPanel, /* 3 Extended VPD */
0, /* 5 */
&xItIplParmsReal, /* 6 IPL parms */
&xMsVpd, /* 7 MS Vpd */
0, /* 5 */
&xItIplParmsReal, /* 6 IPL parms */
&xMsVpd, /* 7 MS Vpd */
+@@ -219,10 +317,3 @@ struct ItVpdAreas itVpdAreas = {
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/string.h>
+@@ -586,7 +587,7 @@ static inline struct device_node *xlate_
static unsigned long last_jiffies;
static int num_printed;
static unsigned long last_jiffies;
static int num_printed;
}
--- a/arch/powerpc/platforms/iseries/release_data.h
+++ b/arch/powerpc/platforms/iseries/release_data.h
}
--- a/arch/powerpc/platforms/iseries/release_data.h
+++ b/arch/powerpc/platforms/iseries/release_data.h
+@@ -58,6 +58,6 @@ struct HvReleaseData {
char xRsvd3[20]; /* Reserved x2C-x3F */
};
char xRsvd3[20]; /* Reserved x2C-x3F */
};
#endif /* _ISERIES_RELEASE_DATA_H */
--- a/arch/powerpc/platforms/iseries/spcomm_area.h
+++ b/arch/powerpc/platforms/iseries/spcomm_area.h
#endif /* _ISERIES_RELEASE_DATA_H */
--- a/arch/powerpc/platforms/iseries/spcomm_area.h
+++ b/arch/powerpc/platforms/iseries/spcomm_area.h
+@@ -31,6 +31,4 @@ struct SpCommArea {
u8 xRsvd2[80]; // Reserved 030-07F
};
u8 xRsvd2[80]; // Reserved 030-07F
};
#endif /* _ISERIES_SPCOMM_AREA_H */
--- a/arch/powerpc/platforms/iseries/vpd_areas.h
+++ b/arch/powerpc/platforms/iseries/vpd_areas.h
#endif /* _ISERIES_SPCOMM_AREA_H */
--- a/arch/powerpc/platforms/iseries/vpd_areas.h
+++ b/arch/powerpc/platforms/iseries/vpd_areas.h
+@@ -80,9 +80,9 @@ struct ItVpdAreas {
u32 xPlicDmaLens[ItDmaMaxEntries];// Array of DMA lengths 080-0A7
u32 xPlicDmaToks[ItDmaMaxEntries];// Array of DMA tokens 0A8-0CF
u32 xSlicVpdLens[ItVpdMaxEntries];// Array of VPD lengths 0D0-12F
u32 xPlicDmaLens[ItDmaMaxEntries];// Array of DMA lengths 080-0A7
u32 xPlicDmaToks[ItDmaMaxEntries];// Array of DMA tokens 0A8-0CF
u32 xSlicVpdLens[ItVpdMaxEntries];// Array of VPD lengths 0D0-12F
#endif /* _ISERIES_VPD_AREAS_H */
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
#endif /* _ISERIES_VPD_AREAS_H */
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
+@@ -592,50 +592,3 @@ int maple_pci_get_legacy_ide_irq(struct
#include <asm/mpic.h>
#include <asm/rtas.h>
#include <asm/udbg.h>
#include <asm/mpic.h>
#include <asm/rtas.h>
#include <asm/udbg.h>
+@@ -319,7 +319,7 @@ static int __init maple_probe(void)
static struct pasdma_status *dma_status;
static struct pasdma_status *dma_status;
+@@ -43,6 +46,8 @@ static struct pci_dev *dma_pdev;
static DECLARE_BITMAP(txch_free, MAX_TXCH);
static DECLARE_BITMAP(rxch_free, MAX_RXCH);
static DECLARE_BITMAP(txch_free, MAX_TXCH);
static DECLARE_BITMAP(rxch_free, MAX_RXCH);
/* pasemi_read_iob_reg - read IOB register
* @reg: Register to read (offset into PCI CFG space)
/* pasemi_read_iob_reg - read IOB register
* @reg: Register to read (offset into PCI CFG space)
+@@ -373,6 +378,106 @@ void pasemi_dma_free_buf(struct pasemi_d
}
EXPORT_SYMBOL(pasemi_dma_free_buf);
}
EXPORT_SYMBOL(pasemi_dma_free_buf);
static void *map_onedev(struct pci_dev *p, int index)
{
struct device_node *dn;
static void *map_onedev(struct pci_dev *p, int index)
{
struct device_node *dn;
+@@ -410,6 +515,7 @@ int pasemi_dma_init(void)
struct resource res;
struct device_node *dn;
int i, intf, err = 0;
struct resource res;
struct device_node *dn;
int i, intf, err = 0;
u32 tmp;
if (!machine_is(pasemi))
u32 tmp;
if (!machine_is(pasemi))
+@@ -478,6 +584,44 @@ int pasemi_dma_init(void)
for (i = 0; i < MAX_RXCH; i++)
__set_bit(i, rxch_free);
for (i = 0; i < MAX_RXCH; i++)
__set_bit(i, rxch_free);
static u32 iob_l1_emptyval;
static u32 iob_l2_emptyval;
static u32 *iob_l2_base;
static u32 iob_l1_emptyval;
static u32 iob_l2_emptyval;
static u32 *iob_l2_base;
+@@ -219,7 +218,7 @@ int __init iob_init(struct device_node *
for (i = 0; i < 64; i++) {
/* Each L1 covers 32MB, i.e. 8K entries = 32K of ram */
regword = IOBMAP_L1E_V | (__pa(iob_l2_base + i*0x2000) >> 12);
for (i = 0; i < 64; i++) {
/* Each L1 covers 32MB, i.e. 8K entries = 32K of ram */
regword = IOBMAP_L1E_V | (__pa(iob_l2_base + i*0x2000) >> 12);
#include "pmac.h"
--- a/arch/powerpc/platforms/ps3/device-init.c
+++ b/arch/powerpc/platforms/ps3/device-init.c
#include "pmac.h"
--- a/arch/powerpc/platforms/ps3/device-init.c
+++ b/arch/powerpc/platforms/ps3/device-init.c
+@@ -499,41 +499,14 @@ static int __init ps3_register_graphics_
case PS3_DEV_TYPE_STOR_DISK:
result = ps3_setup_storage_dev(repo, PS3_MATCH_ID_STOR_DISK);
case PS3_DEV_TYPE_STOR_DISK:
result = ps3_setup_storage_dev(repo, PS3_MATCH_ID_STOR_DISK);
+@@ -572,6 +545,48 @@ static int ps3_register_repository_devic
static void ps3_find_and_add_device(u64 bus_id, u64 dev_id)
{
struct ps3_repository_device repo;
static void ps3_find_and_add_device(u64 bus_id, u64 dev_id)
{
struct ps3_repository_device repo;
+@@ -601,7 +616,7 @@ found:
pr_debug("%s:%u: device %lu:%lu found after %u retries\n",
__func__, __LINE__, bus_id, dev_id, retries);
pr_debug("%s:%u: device %lu:%lu found after %u retries\n",
__func__, __LINE__, bus_id, dev_id, retries);
+@@ -905,8 +920,7 @@ static int __init ps3_register_devices(v
ps3_register_graphics_devices();
ps3_register_graphics_devices();
#include <asm/ps3fb.h>
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
#include <asm/ps3fb.h>
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
+@@ -709,7 +709,7 @@ static unsigned int ps3_get_irq(void)
asm volatile("cntlzd %0,%1" : "=r" (plug) : "r" (x));
plug &= 0x3f;
asm volatile("cntlzd %0,%1" : "=r" (plug) : "r" (x));
plug &= 0x3f;
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
+@@ -95,6 +95,14 @@ static void ps3_power_off(void)
ps3_sys_manager_power_off(); /* never returns */
}
ps3_sys_manager_power_off(); /* never returns */
}
static void ps3_panic(char *str)
{
DBG("%s:%d %s\n", __func__, __LINE__, str);
static void ps3_panic(char *str)
{
DBG("%s:%d %s\n", __func__, __LINE__, str);
+@@ -105,7 +113,8 @@ static void ps3_panic(char *str)
printk(" Please press POWER button.\n");
printk("\n");
printk(" Please press POWER button.\n");
printk("\n");
}
#if defined(CONFIG_FB_PS3) || defined(CONFIG_FB_PS3_MODULE) || \
}
#if defined(CONFIG_FB_PS3) || defined(CONFIG_FB_PS3_MODULE) || \
+@@ -117,7 +126,7 @@ static void __init prealloc(struct ps3_p
p->address = __alloc_bootmem(p->size, p->align, __pa(MAX_DMA_ADDRESS));
if (!p->address) {
p->address = __alloc_bootmem(p->size, p->align, __pa(MAX_DMA_ADDRESS));
if (!p->address) {
+@@ -266,6 +275,7 @@ define_machine(ps3) {
.progress = ps3_progress,
.restart = ps3_restart,
.power_off = ps3_power_off,
.progress = ps3_progress,
.restart = ps3_restart,
.power_off = ps3_power_off,
#include "../cell/spufs/spufs.h"
#include "platform.h"
#include "../cell/spufs/spufs.h"
#include "platform.h"
+@@ -140,6 +141,12 @@ static void _dump_areas(unsigned int spe
pr_debug("%s:%d: shadow: %lxh\n", func, line, shadow);
}
pr_debug("%s:%d: shadow: %lxh\n", func, line, shadow);
}
unsigned long id;
--- a/arch/powerpc/platforms/pseries/Makefile
+++ b/arch/powerpc/platforms/pseries/Makefile
unsigned long id;
--- a/arch/powerpc/platforms/pseries/Makefile
+++ b/arch/powerpc/platforms/pseries/Makefile
+@@ -18,3 +18,4 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug-cpu
obj-$(CONFIG_HVC_CONSOLE) += hvconsole.o
obj-$(CONFIG_HVCS) += hvcserver.o
obj-$(CONFIG_HCALL_STATS) += hvCall_inst.o
+obj-$(CONFIG_PHYP_DUMP) += phyp_dump.o
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
obj-$(CONFIG_HVC_CONSOLE) += hvconsole.o
obj-$(CONFIG_HVCS) += hvcserver.o
obj-$(CONFIG_HCALL_STATS) += hvCall_inst.o
+obj-$(CONFIG_PHYP_DUMP) += phyp_dump.o
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
+@@ -945,7 +945,6 @@ static void *early_enable_eeh(struct dev
unsigned int rets[3];
struct eeh_early_enable_info *info = data;
int ret;
unsigned int rets[3];
struct eeh_early_enable_info *info = data;
int ret;
const u32 *class_code = of_get_property(dn, "class-code", NULL);
const u32 *vendor_id = of_get_property(dn, "vendor-id", NULL);
const u32 *device_id = of_get_property(dn, "device-id", NULL);
const u32 *class_code = of_get_property(dn, "class-code", NULL);
const u32 *vendor_id = of_get_property(dn, "vendor-id", NULL);
const u32 *device_id = of_get_property(dn, "device-id", NULL);
+@@ -959,8 +958,8 @@ static void *early_enable_eeh(struct dev
pdn->eeh_freeze_count = 0;
pdn->eeh_false_positives = 0;
pdn->eeh_freeze_count = 0;
pdn->eeh_false_positives = 0;
#ifdef DEBUG_LOW
#define DBG_LOW(fmt...) do { udbg_printf(fmt); } while(0)
#ifdef DEBUG_LOW
#define DBG_LOW(fmt...) do { udbg_printf(fmt); } while(0)
+@@ -203,7 +204,6 @@ void __init find_udbg_vterm(void)
struct device_node *stdout_node;
const u32 *termno;
const char *name;
struct device_node *stdout_node;
const u32 *termno;
const char *name;
/* find the boot console from /chosen/stdout */
if (!of_chosen)
/* find the boot console from /chosen/stdout */
if (!of_chosen)
+@@ -219,8 +219,6 @@ void __init find_udbg_vterm(void)
printk(KERN_WARNING "stdout node missing 'name' property!\n");
goto out;
}
printk(KERN_WARNING "stdout node missing 'name' property!\n");
goto out;
}
/* Check if it's a virtual terminal */
if (strncmp(name, "vty", 3) != 0)
/* Check if it's a virtual terminal */
if (strncmp(name, "vty", 3) != 0)
+@@ -234,15 +232,13 @@ void __init find_udbg_vterm(void)
udbg_putc = udbg_putcLP;
udbg_getc = udbg_getcLP;
udbg_getc_poll = udbg_getc_pollLP;
udbg_putc = udbg_putcLP;
udbg_getc = udbg_getcLP;
udbg_getc_poll = udbg_getc_pollLP;
}
out:
of_node_put(stdout_node);
}
out:
of_node_put(stdout_node);
+@@ -520,6 +516,20 @@ static void pSeries_lpar_hpte_invalidate
BUG_ON(lpar_rc != H_SUCCESS);
}
BUG_ON(lpar_rc != H_SUCCESS);
}
/* Flag bits for H_BULK_REMOVE */
#define HBR_REQUEST 0x4000000000000000UL
#define HBR_RESPONSE 0x8000000000000000UL
/* Flag bits for H_BULK_REMOVE */
#define HBR_REQUEST 0x4000000000000000UL
#define HBR_RESPONSE 0x8000000000000000UL
+@@ -597,6 +607,7 @@ void __init hpte_init_lpar(void)
ppc_md.hpte_updateboltedpp = pSeries_lpar_hpte_updateboltedpp;
ppc_md.hpte_insert = pSeries_lpar_hpte_insert;
ppc_md.hpte_remove = pSeries_lpar_hpte_remove;
ppc_md.hpte_updateboltedpp = pSeries_lpar_hpte_updateboltedpp;
ppc_md.hpte_insert = pSeries_lpar_hpte_insert;
ppc_md.hpte_remove = pSeries_lpar_hpte_remove;
}
--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
}
--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
+@@ -123,7 +123,7 @@ pcibios_pci_config_bridge(struct pci_dev
/* Add to children of PCI bridge dev->bus */
child_bus = pci_add_new_bus(dev->bus, dev, sec_busno);
if (!child_bus) {
/* Add to children of PCI bridge dev->bus */
child_bus = pci_add_new_bus(dev->bus, dev, sec_busno);
if (!child_bus) {
+early_param("phyp_dump_reserve_size", early_phyp_dump_reserve_size);
--- a/arch/powerpc/platforms/pseries/pseries.h
+++ b/arch/powerpc/platforms/pseries/pseries.h
+early_param("phyp_dump_reserve_size", early_phyp_dump_reserve_size);
--- a/arch/powerpc/platforms/pseries/pseries.h
+++ b/arch/powerpc/platforms/pseries/pseries.h
+@@ -38,4 +38,6 @@ extern void pSeries_final_fixup(void);
/* Poweron flag used for enabling auto ups restart */
extern unsigned long rtas_poweron_auto;
/* Poweron flag used for enabling auto ups restart */
extern unsigned long rtas_poweron_auto;
#endif /* _PSERIES_PSERIES_H */
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
#endif /* _PSERIES_PSERIES_H */
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
+@@ -222,14 +222,14 @@ static char * parse_next_property(char *
tmp = strchr(buf, ' ');
if (!tmp) {
printk(KERN_ERR "property parse failed in %s at line %d\n",
tmp = strchr(buf, ' ');
if (!tmp) {
printk(KERN_ERR "property parse failed in %s at line %d\n",
+@@ -238,12 +238,12 @@ static char * parse_next_property(char *
*length = simple_strtoul(tmp, &tmp, 10);
if (*length == -1) {
printk(KERN_ERR "property parse failed in %s at line %d\n",
*length = simple_strtoul(tmp, &tmp, 10);
if (*length == -1) {
printk(KERN_ERR "property parse failed in %s at line %d\n",
+@@ -252,12 +252,12 @@ static char * parse_next_property(char *
tmp += *length;
if (tmp > end) {
printk(KERN_ERR "property parse failed in %s at line %d\n",
tmp += *length;
if (tmp > end) {
printk(KERN_ERR "property parse failed in %s at line %d\n",
tmp++;
--- a/arch/powerpc/platforms/pseries/scanlog.c
+++ b/arch/powerpc/platforms/pseries/scanlog.c
tmp++;
--- a/arch/powerpc/platforms/pseries/scanlog.c
+++ b/arch/powerpc/platforms/pseries/scanlog.c
+@@ -195,31 +195,30 @@ const struct file_operations scanlog_fop
static int __init scanlog_init(void)
{
struct proc_dir_entry *ent;
static int __init scanlog_init(void)
{
struct proc_dir_entry *ent;
int fwnmi_active; /* TRUE if an FWNMI handler is present */
static void pseries_shared_idle_sleep(void);
int fwnmi_active; /* TRUE if an FWNMI handler is present */
static void pseries_shared_idle_sleep(void);
+@@ -127,14 +124,60 @@ void pseries_8259_cascade(unsigned int i
int naddr, n, i, opplen;
struct mpic *mpic;
int naddr, n, i, opplen;
struct mpic *mpic;
+@@ -167,43 +210,13 @@ static void __init pseries_mpic_init_IRQ
mpic_init(mpic);
/* Look for cascade */
mpic_init(mpic);
/* Look for cascade */
}
static void pseries_lpar_enable_pmcs(void)
}
static void pseries_lpar_enable_pmcs(void)
+@@ -235,7 +248,7 @@ static void __init pseries_discover_pic(
smp_init_pseries_mpic();
return;
} else if (strstr(typep, "ppc-xicp")) {
smp_init_pseries_mpic();
return;
} else if (strstr(typep, "ppc-xicp")) {
setup_kexec_cpu_down_xics();
smp_init_pseries_xics();
return;
setup_kexec_cpu_down_xics();
smp_init_pseries_xics();
return;
+@@ -393,6 +406,7 @@ static void pseries_dedicated_idle_sleep
{
unsigned int cpu = smp_processor_id();
unsigned long start_snooze;
{
unsigned int cpu = smp_processor_id();
unsigned long start_snooze;
/*
* Indicate to the HV that we are idle. Now would be
/*
* Indicate to the HV that we are idle. Now would be
+@@ -400,6 +414,7 @@ static void pseries_dedicated_idle_sleep
*/
get_lppaca()->idle = 1;
get_lppaca()->donate_dedicated_cpu = 1;
*/
get_lppaca()->idle = 1;
get_lppaca()->donate_dedicated_cpu = 1;
/*
* We come in with interrupts disabled, and need_resched()
/*
* We come in with interrupts disabled, and need_resched()
+@@ -432,6 +447,8 @@ static void pseries_dedicated_idle_sleep
}
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
}
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
+@@ -516,6 +516,8 @@ static struct irq_chip xics_pic_lpar = {
.set_affinity = xics_set_affinity
};
.set_affinity = xics_set_affinity
};
static int xics_host_match(struct irq_host *h, struct device_node *node)
{
static int xics_host_match(struct irq_host *h, struct device_node *node)
{
+@@ -526,23 +528,13 @@ static int xics_host_match(struct irq_ho
return !of_device_is_compatible(node, "chrp,iic");
}
return !of_device_is_compatible(node, "chrp,iic");
}
+@@ -561,27 +553,20 @@ static int xics_host_xlate(struct irq_ho
XICS_IRQ_SPURIOUS);
BUG_ON(xics_host == NULL);
irq_set_default_host(xics_host);
XICS_IRQ_SPURIOUS);
BUG_ON(xics_host == NULL);
irq_set_default_host(xics_host);
+@@ -655,52 +640,6 @@ static void __init xics_init_one_node(st
void __init xics_init_IRQ(void)
{
struct device_node *np;
void __init xics_init_IRQ(void)
{
struct device_node *np;
+@@ -733,8 +672,6 @@ void __init xics_init_IRQ(void)
--- a/arch/powerpc/platforms/pseries/xics.h
+++ b/arch/powerpc/platforms/pseries/xics.h
--- a/arch/powerpc/platforms/pseries/xics.h
+++ b/arch/powerpc/platforms/pseries/xics.h
+@@ -28,7 +28,4 @@ struct xics_ipi_struct {
extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned;
extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned;
#endif /* _POWERPC_KERNEL_XICS_H */
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
#endif /* _POWERPC_KERNEL_XICS_H */
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
+@@ -12,6 +12,7 @@ obj-$(CONFIG_U3_DART) += dart_iommu.o
obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o
obj-$(CONFIG_FSL_SOC) += fsl_soc.o
obj-$(CONFIG_FSL_PCI) += fsl_pci.o
obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o
obj-$(CONFIG_FSL_SOC) += fsl_soc.o
obj-$(CONFIG_FSL_PCI) += fsl_pci.o
obj-$(CONFIG_RAPIDIO) += fsl_rio.o
obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o
obj-$(CONFIG_QUICC_ENGINE) += qe_lib/
obj-$(CONFIG_RAPIDIO) += fsl_rio.o
obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o
obj-$(CONFIG_QUICC_ENGINE) += qe_lib/
+@@ -27,6 +28,7 @@ obj-$(CONFIG_PPC_INDIRECT_PCI) += indire
obj-$(CONFIG_PPC_I8259) += i8259.o
obj-$(CONFIG_IPIC) += ipic.o
obj-$(CONFIG_4xx) += uic.o
obj-$(CONFIG_PPC_I8259) += i8259.o
obj-$(CONFIG_IPIC) += ipic.o
obj-$(CONFIG_4xx) += uic.o
cpm8xx_t __iomem *cpmp; /* Pointer to comm processor space */
immap_t __iomem *mpc8xx_immr;
static cpic8xx_t __iomem *cpic_reg;
cpm8xx_t __iomem *cpmp; /* Pointer to comm processor space */
immap_t __iomem *mpc8xx_immr;
static cpic8xx_t __iomem *cpic_reg;
+@@ -229,12 +226,7 @@ void __init cpm_reset(void)
out_be32(&siu_conf->sc_sdcr, 1);
immr_unmap(siu_conf);
out_be32(&siu_conf->sc_sdcr, 1);
immr_unmap(siu_conf);
}
static DEFINE_SPINLOCK(cmd_lock);
}
static DEFINE_SPINLOCK(cmd_lock);
+@@ -257,7 +249,7 @@ int cpm_command(u32 command, u8 opcode)
if ((in_be16(&cpmp->cp_cpcr) & CPM_CR_FLG) == 0)
goto out;
if ((in_be16(&cpmp->cp_cpcr) & CPM_CR_FLG) == 0)
goto out;
ret = -EIO;
out:
spin_unlock_irqrestore(&cmd_lock, flags);
ret = -EIO;
out:
spin_unlock_irqrestore(&cmd_lock, flags);
+@@ -293,110 +285,6 @@ cpm_setbrg(uint brg, uint rate)
CPM_BRG_EN | CPM_BRG_DIV16);
}
CPM_BRG_EN | CPM_BRG_DIV16);
}
cpm_cpm2_t __iomem *cpmp; /* Pointer to comm processor space */
/* We allocate this here because it is used almost exclusively for
cpm_cpm2_t __iomem *cpmp; /* Pointer to comm processor space */
/* We allocate this here because it is used almost exclusively for
+@@ -71,15 +67,17 @@ void __init cpm2_reset(void)
/* Reclaim the DP memory for our use.
*/
/* Reclaim the DP memory for our use.
*/
}
static DEFINE_SPINLOCK(cmd_lock);
}
static DEFINE_SPINLOCK(cmd_lock);
+@@ -99,7 +97,7 @@ int cpm_command(u32 command, u8 opcode)
if ((in_be32(&cpmp->cp_cpcr) & CPM_CR_FLG) == 0)
goto out;
if ((in_be32(&cpmp->cp_cpcr) & CPM_CR_FLG) == 0)
goto out;
ret = -EIO;
out:
spin_unlock_irqrestore(&cmd_lock, flags);
ret = -EIO;
out:
spin_unlock_irqrestore(&cmd_lock, flags);
+@@ -347,95 +345,6 @@ int cpm2_smc_clk_setup(enum cpm_clk_targ
u32 res[3];
--- a/arch/powerpc/sysdev/cpm_common.c
+++ b/arch/powerpc/sysdev/cpm_common.c
u32 res[3];
--- a/arch/powerpc/sysdev/cpm_common.c
+++ b/arch/powerpc/sysdev/cpm_common.c
+@@ -58,7 +58,6 @@ void __init udbg_init_cpm(void)
static spinlock_t cpm_muram_lock;
static rh_block_t cpm_boot_muram_rh_block[16];
static rh_info_t cpm_muram_info;
static spinlock_t cpm_muram_lock;
static rh_block_t cpm_boot_muram_rh_block[16];
static rh_info_t cpm_muram_info;
+@@ -199,5 +198,3 @@ dma_addr_t cpm_muram_dma(void __iomem *a
return muram_pbase + ((u8 __iomem *)addr - muram_vbase);
}
EXPORT_SYMBOL(cpm_muram_dma);
return muram_pbase + ((u8 __iomem *)addr - muram_vbase);
}
EXPORT_SYMBOL(cpm_muram_dma);
+EXPORT_SYMBOL(fsl_upm_find);
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
+EXPORT_SYMBOL(fsl_upm_find);
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
+@@ -75,6 +75,33 @@ phys_addr_t get_immrbase(void)
EXPORT_SYMBOL(get_immrbase);
EXPORT_SYMBOL(get_immrbase);
#if defined(CONFIG_CPM2) || defined(CONFIG_QUICC_ENGINE) || defined(CONFIG_8xx)
static u32 brgfreq = -1;
#if defined(CONFIG_CPM2) || defined(CONFIG_QUICC_ENGINE) || defined(CONFIG_8xx)
static u32 brgfreq = -1;
+@@ -516,9 +543,9 @@ arch_initcall(fsl_i2c_of_init);
static int __init mpc83xx_wdt_init(void)
{
struct resource r;
static int __init mpc83xx_wdt_init(void)
{
struct resource r;
int ret;
np = of_find_compatible_node(NULL, "watchdog", "mpc83xx_wdt");
int ret;
np = of_find_compatible_node(NULL, "watchdog", "mpc83xx_wdt");
+@@ -528,19 +555,6 @@ static int __init mpc83xx_wdt_init(void)
memset(&r, 0, sizeof(r));
ret = of_address_to_resource(np, 0, &r);
memset(&r, 0, sizeof(r));
ret = of_address_to_resource(np, 0, &r);
+@@ -553,20 +567,16 @@ static int __init mpc83xx_wdt_init(void)
of_node_put(np);
nodev:
return ret;
of_node_put(np);
nodev:
return ret;
+@@ -735,547 +745,6 @@ err:
arch_initcall(fsl_usb_of_init);
arch_initcall(fsl_usb_of_init);
static int __init of_fsl_spi_probe(char *type, char *compatible, u32 sysclk,
struct spi_board_info *board_infos,
unsigned int num_board_infos,
static int __init of_fsl_spi_probe(char *type, char *compatible, u32 sysclk,
struct spi_board_info *board_infos,
unsigned int num_board_infos,
+@@ -1371,25 +840,9 @@ int __init fsl_spi_init(struct spi_board
sysclk = get_brgfreq();
#endif
if (sysclk == -1) {
sysclk = get_brgfreq();
#endif
if (sysclk == -1) {
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
+@@ -175,13 +175,16 @@ static inline void _mpic_write(enum mpic
switch(type) {
#ifdef CONFIG_PPC_DCR
case mpic_access_dcr:
switch(type) {
#ifdef CONFIG_PPC_DCR
case mpic_access_dcr:
+@@ -1000,7 +1003,7 @@ struct mpic * __init mpic_alloc(struct d
const char *name)
{
struct mpic *mpic;
const char *name)
{
struct mpic *mpic;
const char *vers;
int i;
int intvec_top;
const char *vers;
int i;
int intvec_top;
+@@ -1064,7 +1067,8 @@ struct mpic * __init mpic_alloc(struct d
/* Look for protected sources */
if (node) {
/* Look for protected sources */
if (node) {
const u32 *psrc =
of_get_property(node, "protected-sources", &psize);
if (psrc) {
const u32 *psrc =
of_get_property(node, "protected-sources", &psize);
if (psrc) {
+@@ -1107,8 +1111,7 @@ struct mpic * __init mpic_alloc(struct d
* in, try to obtain one
*/
if (paddr == 0 && !(mpic->flags & MPIC_USES_DCR)) {
* in, try to obtain one
*/
if (paddr == 0 && !(mpic->flags & MPIC_USES_DCR)) {
BUG_ON(reg == NULL);
paddr = of_translate_address(node, reg);
BUG_ON(paddr == OF_BAD_ADDR);
BUG_ON(reg == NULL);
paddr = of_translate_address(node, reg);
BUG_ON(paddr == OF_BAD_ADDR);
+@@ -1137,12 +1140,13 @@ struct mpic * __init mpic_alloc(struct d
* MPICs, num sources as well. On ISU MPICs, sources are counted
* as ISUs are added
*/
* MPICs, num sources as well. On ISU MPICs, sources are counted
* as ISUs are added
*/
/* Map the per-CPU registers */
for (i = 0; i < mpic->num_cpus; i++) {
/* Map the per-CPU registers */
for (i = 0; i < mpic->num_cpus; i++) {
+@@ -1161,7 +1165,7 @@ struct mpic * __init mpic_alloc(struct d
mpic->isu_mask = (1 << mpic->isu_shift) - 1;
/* Display version */
mpic->isu_mask = (1 << mpic->isu_shift) - 1;
/* Display version */
case 1:
vers = "1.0";
break;
case 1:
vers = "1.0";
break;
+@@ -1321,7 +1325,7 @@ void __init mpic_set_serial_int(struct m
void mpic_irq_set_priority(unsigned int irq, unsigned int pri)
{
void mpic_irq_set_priority(unsigned int irq, unsigned int pri)
{
struct mpic *mpic = mpic_find(irq, &is_ipi);
unsigned int src = mpic_irq_to_hw(irq);
unsigned long flags;
struct mpic *mpic = mpic_find(irq, &is_ipi);
unsigned int src = mpic_irq_to_hw(irq);
unsigned long flags;
+@@ -1344,7 +1348,7 @@ void mpic_irq_set_priority(unsigned int
unsigned int mpic_irq_get_priority(unsigned int irq)
{
unsigned int mpic_irq_get_priority(unsigned int irq)
{
struct mpic *mpic = mpic_find(irq, &is_ipi);
unsigned int src = mpic_irq_to_hw(irq);
unsigned long flags;
struct mpic *mpic = mpic_find(irq, &is_ipi);
unsigned int src = mpic_irq_to_hw(irq);
unsigned long flags;
+@@ -1406,11 +1410,6 @@ void mpic_cpu_set_priority(int prio)
mpic_cpu_write(MPIC_INFO(CPU_CURRENT_TASK_PRI), prio);
}
mpic_cpu_write(MPIC_INFO(CPU_CURRENT_TASK_PRI), prio);
}
void mpic_teardown_this_cpu(int secondary)
{
struct mpic *mpic = mpic_primary;
void mpic_teardown_this_cpu(int secondary)
{
struct mpic *mpic = mpic_primary;
+@@ -1430,6 +1429,10 @@ void mpic_teardown_this_cpu(int secondar
/* Set current processor priority to max */
mpic_cpu_write(MPIC_INFO(CPU_CURRENT_TASK_PRI), 0xf);
/* Set current processor priority to max */
mpic_cpu_write(MPIC_INFO(CPU_CURRENT_TASK_PRI), 0xf);
}
--- a/arch/powerpc/sysdev/mv64x60_dev.c
+++ b/arch/powerpc/sysdev/mv64x60_dev.c
}
--- a/arch/powerpc/sysdev/mv64x60_dev.c
+++ b/arch/powerpc/sysdev/mv64x60_dev.c
+@@ -127,7 +127,7 @@ static int __init mv64x60_mpsc_device_se
if (!prop)
return -ENODEV;
port_number = *(int *)prop;
if (!prop)
return -ENODEV;
port_number = *(int *)prop;
+@@ -136,6 +136,7 @@ static int __init mv64x60_mpsc_device_se
pdata.cache_mgmt = 1; /* All current revs need this set */
pdata.cache_mgmt = 1; /* All current revs need this set */
prop = of_get_property(np, "max_idle", NULL);
if (prop)
pdata.max_idle = *prop;
prop = of_get_property(np, "max_idle", NULL);
if (prop)
pdata.max_idle = *prop;
+@@ -205,30 +206,24 @@ error:
/*
* Create mv64x60_eth platform devices
*/
/*
* Create mv64x60_eth platform devices
*/
{
struct resource r[1];
struct mv643xx_eth_platform_data pdata;
{
struct resource r[1];
struct mv643xx_eth_platform_data pdata;
+@@ -239,16 +234,12 @@ static int __init mv64x60_eth_device_set
const phandle *ph;
int err;
const phandle *ph;
int err;
if (!prop)
return -ENODEV;
pdata.port_number = *prop;
if (!prop)
return -ENODEV;
pdata.port_number = *prop;
+@@ -301,7 +292,7 @@ static int __init mv64x60_eth_device_set
if (!pdev)
return -ENOMEM;
if (!pdev)
return -ENOMEM;
+@@ -345,21 +336,19 @@ static int __init mv64x60_i2c_device_set
memset(&pdata, 0, sizeof(pdata));
memset(&pdata, 0, sizeof(pdata));
pdev = platform_device_alloc(MV64XXX_I2C_CTLR_NAME, id);
if (!pdev)
pdev = platform_device_alloc(MV64XXX_I2C_CTLR_NAME, id);
if (!pdev)
+@@ -401,10 +390,7 @@ static int __init mv64x60_wdt_device_set
memset(&pdata, 0, sizeof(pdata));
memset(&pdata, 0, sizeof(pdata));
np = of_get_parent(np);
if (!np)
np = of_get_parent(np);
if (!np)
+@@ -441,27 +427,43 @@ error:
static int __init mv64x60_device_setup(void)
{
static int __init mv64x60_device_setup(void)
{
if (np) {
if ((err = mv64x60_wdt_device_setup(np, id)))
goto error;
if (np) {
if ((err = mv64x60_wdt_device_setup(np, id)))
goto error;
+@@ -489,10 +491,10 @@ static int __init mv64x60_add_mpsc_conso
--- a/arch/powerpc/sysdev/mv64x60_pci.c
+++ b/arch/powerpc/sysdev/mv64x60_pci.c
--- a/arch/powerpc/sysdev/mv64x60_pci.c
+++ b/arch/powerpc/sysdev/mv64x60_pci.c
+@@ -86,14 +86,14 @@ static int __init mv64x60_sysfs_init(voi
struct platform_device *pdev;
const unsigned int *prop;
struct platform_device *pdev;
const unsigned int *prop;
if (IS_ERR(pdev))
return PTR_ERR(pdev);
if (IS_ERR(pdev))
return PTR_ERR(pdev);
+@@ -166,6 +166,6 @@ void __init mv64x60_pci_init(void)
{
struct device_node *np;
{
struct device_node *np;
}
--- a/arch/powerpc/sysdev/mv64x60_pic.c
+++ b/arch/powerpc/sysdev/mv64x60_pic.c
}
--- a/arch/powerpc/sysdev/mv64x60_pic.c
+++ b/arch/powerpc/sysdev/mv64x60_pic.c
+@@ -238,13 +238,13 @@ void __init mv64x60_init_irq(void)
const unsigned int *reg;
unsigned long flags;
const unsigned int *reg;
unsigned long flags;
mv64x60_irq_reg_base = ioremap(paddr, reg[1]);
--- a/arch/powerpc/sysdev/mv64x60_udbg.c
+++ b/arch/powerpc/sysdev/mv64x60_udbg.c
mv64x60_irq_reg_base = ioremap(paddr, reg[1]);
--- a/arch/powerpc/sysdev/mv64x60_udbg.c
+++ b/arch/powerpc/sysdev/mv64x60_udbg.c
+@@ -85,7 +85,7 @@ static void mv64x60_udbg_init(void)
}
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
}
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
+@@ -527,6 +527,7 @@ static void __init ppc4xx_probe_pcix_bri
*
* ibm,plb-pciex-440spe
* ibm,plb-pciex-405ex
*
* ibm,plb-pciex-440spe
* ibm,plb-pciex-405ex
*
* Anything else will be rejected for now as they are all subtly
* different unfortunately.
*
* Anything else will be rejected for now as they are all subtly
* different unfortunately.
+@@ -645,7 +646,7 @@ static int __init ppc440spe_pciex_core_i
int time_out = 20;
/* Set PLL clock receiver to LVPECL */
int time_out = 20;
/* Set PLL clock receiver to LVPECL */
/* Shouldn't we do all the calibration stuff etc... here ? */
if (ppc440spe_pciex_check_reset(np))
/* Shouldn't we do all the calibration stuff etc... here ? */
if (ppc440spe_pciex_check_reset(np))
+@@ -659,8 +660,7 @@ static int __init ppc440spe_pciex_core_i
}
/* De-assert reset of PCIe PLL, wait for lock */
}
/* De-assert reset of PCIe PLL, wait for lock */
udelay(3);
while (time_out) {
udelay(3);
while (time_out) {
+@@ -712,9 +712,8 @@ static int ppc440spe_pciex_init_port_hw(
mtdcri(SDR0, port->sdr_base + PESDRn_440SPE_HSSL7SET1,
0x35000000);
}
mtdcri(SDR0, port->sdr_base + PESDRn_440SPE_HSSL7SET1,
0x35000000);
}
+@@ -775,6 +774,115 @@ static struct ppc4xx_pciex_hwops ppc440s
.setup_utl = ppc440speB_pciex_init_utl,
};
.setup_utl = ppc440speB_pciex_init_utl,
};
#endif /* CONFIG_44x */
#ifdef CONFIG_40x
#endif /* CONFIG_44x */
#ifdef CONFIG_40x
+@@ -830,17 +938,9 @@ static int ppc405ex_pciex_init_port_hw(s
* PCIe boards don't show this problem.
* This has to be re-tested and fixed in a later release!
*/
* PCIe boards don't show this problem.
* This has to be re-tested and fixed in a later release!
*/
dcr_write(port->dcrs, DCRO_PEGPL_CFG, 0x10000000); /* guarded on */
dcr_write(port->dcrs, DCRO_PEGPL_CFG, 0x10000000); /* guarded on */
+@@ -896,6 +996,8 @@ static int __init ppc4xx_pciex_check_cor
else
ppc4xx_pciex_hwops = &ppc440speB_pcie_hwops;
}
else
ppc4xx_pciex_hwops = &ppc440speB_pcie_hwops;
}
#endif /* CONFIG_44x */
#ifdef CONFIG_40x
if (of_device_is_compatible(np, "ibm,plb-pciex-405ex"))
#endif /* CONFIG_44x */
#ifdef CONFIG_40x
if (of_device_is_compatible(np, "ibm,plb-pciex-405ex"))
+@@ -1042,8 +1144,7 @@ static int __init ppc4xx_pciex_port_init
+}
--- a/arch/powerpc/sysdev/qe_lib/qe.c
+++ b/arch/powerpc/sysdev/qe_lib/qe.c
+}
--- a/arch/powerpc/sysdev/qe_lib/qe.c
+++ b/arch/powerpc/sysdev/qe_lib/qe.c
+@@ -55,7 +55,7 @@ struct qe_snum {
/* We allocate this here because it is used almost exclusively for
* the communication processor devices.
*/
/* We allocate this here because it is used almost exclusively for
* the communication processor devices.
*/
EXPORT_SYMBOL(qe_immr);
static struct qe_snum snums[QE_NUM_OF_SNUM]; /* Dynamically allocated SNUMs */
EXPORT_SYMBOL(qe_immr);
static struct qe_snum snums[QE_NUM_OF_SNUM]; /* Dynamically allocated SNUMs */
+@@ -156,7 +156,7 @@ EXPORT_SYMBOL(qe_issue_cmd);
*/
static unsigned int brg_clk = 0;
*/
static unsigned int brg_clk = 0;
{
struct device_node *qe;
unsigned int size;
{
struct device_node *qe;
unsigned int size;
+@@ -180,6 +180,7 @@ unsigned int get_brg_clk(void)
/* Program the BRG to the given sampling rate and multiplier
*
/* Program the BRG to the given sampling rate and multiplier
*
+@@ -197,7 +198,7 @@ int qe_setbrg(enum qe_clock brg, unsigne
if ((brg < QE_BRG1) || (brg > QE_BRG16))
return -EINVAL;
if ((brg < QE_BRG1) || (brg > QE_BRG16))
return -EINVAL;
if (divisor > QE_BRGC_DIVISOR_MAX + 1) {
div16 = QE_BRGC_DIV16;
if (divisor > QE_BRGC_DIVISOR_MAX + 1) {
div16 = QE_BRGC_DIV16;
+@@ -415,12 +416,6 @@ void qe_muram_dump(void)
}
EXPORT_SYMBOL(qe_muram_dump);
}
EXPORT_SYMBOL(qe_muram_dump);
#include <asm/prom.h>
#include <sysdev/fsl_soc.h>
#include <asm/prom.h>
#include <sysdev/fsl_soc.h>
+@@ -41,7 +42,7 @@ struct port_regs {
static int num_par_io_ports = 0;
int par_io_init(struct device_node *np)
static int num_par_io_ports = 0;
int par_io_init(struct device_node *np)
+@@ -165,7 +166,7 @@ int par_io_of_config(struct device_node
}
ph = of_get_property(np, "pio-handle", NULL);
}
ph = of_get_property(np, "pio-handle", NULL);
printk(KERN_ERR "pio-handle not available \n");
return -1;
}
printk(KERN_ERR "pio-handle not available \n");
return -1;
}
+@@ -200,7 +201,7 @@ static void dump_par_io(void)
in_be32(&par_io[i].cpodr));
--- a/arch/powerpc/sysdev/qe_lib/ucc_fast.c
+++ b/arch/powerpc/sysdev/qe_lib/ucc_fast.c
in_be32(&par_io[i].cpodr));
--- a/arch/powerpc/sysdev/qe_lib/ucc_fast.c
+++ b/arch/powerpc/sysdev/qe_lib/ucc_fast.c
+@@ -148,57 +148,57 @@ int ucc_fast_init(struct ucc_fast_info *
/* check if the UCC port number is in range. */
if ((uf_info->ucc_num < 0) || (uf_info->ucc_num > UCC_MAX_NUM - 1)) {
/* check if the UCC port number is in range. */
if ((uf_info->ucc_num < 0) || (uf_info->ucc_num > UCC_MAX_NUM - 1)) {
+@@ -207,7 +207,7 @@ int ucc_fast_init(struct ucc_fast_info *
/* Set the PHY base address */
uccf->uf_regs = ioremap(uf_info->regs, sizeof(struct ucc_fast));
if (uccf->uf_regs == NULL) {
/* Set the PHY base address */
uccf->uf_regs = ioremap(uf_info->regs, sizeof(struct ucc_fast));
if (uccf->uf_regs == NULL) {
+@@ -230,7 +230,7 @@ int ucc_fast_init(struct ucc_fast_info *
/* Set UCC to fast type */
ret = ucc_set_type(uf_info->ucc_num, UCC_SPEED_TYPE_FAST);
if (ret) {
/* Set UCC to fast type */
ret = ucc_set_type(uf_info->ucc_num, UCC_SPEED_TYPE_FAST);
if (ret) {
ucc_fast_free(uccf);
return ret;
}
ucc_fast_free(uccf);
return ret;
}
+@@ -270,7 +270,7 @@ int ucc_fast_init(struct ucc_fast_info *
qe_muram_alloc(uf_info->utfs, UCC_FAST_VIRT_FIFO_REGS_ALIGNMENT);
if (IS_ERR_VALUE(uccf->ucc_fast_tx_virtual_fifo_base_offset)) {
printk(KERN_ERR "%s: cannot allocate MURAM for TX FIFO\n",
qe_muram_alloc(uf_info->utfs, UCC_FAST_VIRT_FIFO_REGS_ALIGNMENT);
if (IS_ERR_VALUE(uccf->ucc_fast_tx_virtual_fifo_base_offset)) {
printk(KERN_ERR "%s: cannot allocate MURAM for TX FIFO\n",
uccf->ucc_fast_tx_virtual_fifo_base_offset = 0;
ucc_fast_free(uccf);
return -ENOMEM;
uccf->ucc_fast_tx_virtual_fifo_base_offset = 0;
ucc_fast_free(uccf);
return -ENOMEM;
+@@ -283,7 +283,7 @@ int ucc_fast_init(struct ucc_fast_info *
UCC_FAST_VIRT_FIFO_REGS_ALIGNMENT);
if (IS_ERR_VALUE(uccf->ucc_fast_rx_virtual_fifo_base_offset)) {
printk(KERN_ERR "%s: cannot allocate MURAM for RX FIFO\n",
UCC_FAST_VIRT_FIFO_REGS_ALIGNMENT);
if (IS_ERR_VALUE(uccf->ucc_fast_rx_virtual_fifo_base_offset)) {
printk(KERN_ERR "%s: cannot allocate MURAM for RX FIFO\n",
uccf->ucc_fast_rx_virtual_fifo_base_offset = 0;
ucc_fast_free(uccf);
return -ENOMEM;
uccf->ucc_fast_rx_virtual_fifo_base_offset = 0;
ucc_fast_free(uccf);
return -ENOMEM;
+@@ -314,7 +314,7 @@ int ucc_fast_init(struct ucc_fast_info *
ucc_set_qe_mux_rxtx(uf_info->ucc_num, uf_info->rx_clock,
COMM_DIR_RX)) {
printk(KERN_ERR "%s: illegal value for RX clock\n",
ucc_set_qe_mux_rxtx(uf_info->ucc_num, uf_info->rx_clock,
COMM_DIR_RX)) {
printk(KERN_ERR "%s: illegal value for RX clock\n",
ucc_fast_free(uccf);
return -EINVAL;
}
ucc_fast_free(uccf);
return -EINVAL;
}
+@@ -323,7 +323,7 @@ int ucc_fast_init(struct ucc_fast_info *
ucc_set_qe_mux_rxtx(uf_info->ucc_num, uf_info->tx_clock,
COMM_DIR_TX)) {
printk(KERN_ERR "%s: illegal value for TX clock\n",
ucc_set_qe_mux_rxtx(uf_info->ucc_num, uf_info->tx_clock,
COMM_DIR_TX)) {
printk(KERN_ERR "%s: illegal value for TX clock\n",
}
--- a/arch/powerpc/sysdev/qe_lib/ucc_slow.c
+++ b/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
+@@ -142,7 +142,7 @@ int ucc_slow_init(struct ucc_slow_info *
/* check if the UCC port number is in range. */
if ((us_info->ucc_num < 0) || (us_info->ucc_num > UCC_MAX_NUM - 1)) {
/* check if the UCC port number is in range. */
if ((us_info->ucc_num < 0) || (us_info->ucc_num > UCC_MAX_NUM - 1)) {
+@@ -161,7 +161,7 @@ int ucc_slow_init(struct ucc_slow_info *
uccs = kzalloc(sizeof(struct ucc_slow_private), GFP_KERNEL);
if (!uccs) {
printk(KERN_ERR "%s: Cannot allocate private data\n",
uccs = kzalloc(sizeof(struct ucc_slow_private), GFP_KERNEL);
if (!uccs) {
printk(KERN_ERR "%s: Cannot allocate private data\n",
+@@ -170,7 +170,7 @@ int ucc_slow_init(struct ucc_slow_info *
/* Set the PHY base address */
uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow));
if (uccs->us_regs == NULL) {
/* Set the PHY base address */
uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow));
if (uccs->us_regs == NULL) {
+@@ -189,7 +189,7 @@ int ucc_slow_init(struct ucc_slow_info *
uccs->us_pram_offset =
qe_muram_alloc(UCC_SLOW_PRAM_SIZE, ALIGNMENT_OF_UCC_SLOW_PRAM);
if (IS_ERR_VALUE(uccs->us_pram_offset)) {
uccs->us_pram_offset =
qe_muram_alloc(UCC_SLOW_PRAM_SIZE, ALIGNMENT_OF_UCC_SLOW_PRAM);
if (IS_ERR_VALUE(uccs->us_pram_offset)) {
ucc_slow_free(uccs);
return -ENOMEM;
}
ucc_slow_free(uccs);
return -ENOMEM;
}
+@@ -202,7 +202,7 @@ int ucc_slow_init(struct ucc_slow_info *
/* Set UCC to slow type */
ret = ucc_set_type(us_info->ucc_num, UCC_SPEED_TYPE_SLOW);
if (ret) {
/* Set UCC to slow type */
ret = ucc_set_type(us_info->ucc_num, UCC_SPEED_TYPE_SLOW);
if (ret) {
ucc_slow_free(uccs);
return ret;
}
ucc_slow_free(uccs);
return ret;
}
+@@ -216,7 +216,7 @@ int ucc_slow_init(struct ucc_slow_info *
qe_muram_alloc(us_info->rx_bd_ring_len * sizeof(struct qe_bd),
QE_ALIGNMENT_OF_BD);
if (IS_ERR_VALUE(uccs->rx_base_offset)) {
qe_muram_alloc(us_info->rx_bd_ring_len * sizeof(struct qe_bd),
QE_ALIGNMENT_OF_BD);
if (IS_ERR_VALUE(uccs->rx_base_offset)) {
us_info->rx_bd_ring_len);
uccs->rx_base_offset = 0;
ucc_slow_free(uccs);
us_info->rx_bd_ring_len);
uccs->rx_base_offset = 0;
ucc_slow_free(uccs);
+@@ -227,7 +227,7 @@ int ucc_slow_init(struct ucc_slow_info *
qe_muram_alloc(us_info->tx_bd_ring_len * sizeof(struct qe_bd),
QE_ALIGNMENT_OF_BD);
if (IS_ERR_VALUE(uccs->tx_base_offset)) {
qe_muram_alloc(us_info->tx_bd_ring_len * sizeof(struct qe_bd),
QE_ALIGNMENT_OF_BD);
if (IS_ERR_VALUE(uccs->tx_base_offset)) {
uccs->tx_base_offset = 0;
ucc_slow_free(uccs);
return -ENOMEM;
uccs->tx_base_offset = 0;
ucc_slow_free(uccs);
return -ENOMEM;
+@@ -317,7 +317,7 @@ int ucc_slow_init(struct ucc_slow_info *
if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->rx_clock,
COMM_DIR_RX)) {
printk(KERN_ERR "%s: illegal value for RX clock\n",
if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->rx_clock,
COMM_DIR_RX)) {
printk(KERN_ERR "%s: illegal value for RX clock\n",
ucc_slow_free(uccs);
return -EINVAL;
}
ucc_slow_free(uccs);
return -EINVAL;
}
+@@ -325,7 +325,7 @@ int ucc_slow_init(struct ucc_slow_info *
if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->tx_clock,
COMM_DIR_TX)) {
printk(KERN_ERR "%s: illegal value for TX clock\n",
if (ucc_set_qe_mux_rxtx(us_info->ucc_num, us_info->tx_clock,
COMM_DIR_TX)) {
printk(KERN_ERR "%s: illegal value for TX clock\n",
}
--- a/arch/powerpc/sysdev/rtc_cmos_setup.c
+++ b/arch/powerpc/sysdev/rtc_cmos_setup.c
}
--- a/arch/powerpc/sysdev/rtc_cmos_setup.c
+++ b/arch/powerpc/sysdev/rtc_cmos_setup.c
+@@ -56,3 +56,5 @@ static int __init add_rtc(void)
return 0;
}
fs_initcall(add_rtc);
return 0;
}
fs_initcall(add_rtc);
+MODULE_LICENSE("GPL");
--- a/arch/powerpc/sysdev/tsi108_dev.c
+++ b/arch/powerpc/sysdev/tsi108_dev.c
+MODULE_LICENSE("GPL");
--- a/arch/powerpc/sysdev/tsi108_dev.c
+++ b/arch/powerpc/sysdev/tsi108_dev.c
+@@ -84,7 +84,7 @@ static int __init tsi108_eth_of_init(voi
ret = of_address_to_resource(np, 0, &r[0]);
DBG("%s: name:start->end = %s:0x%lx-> 0x%lx\n",
ret = of_address_to_resource(np, 0, &r[0]);
DBG("%s: name:start->end = %s:0x%lx-> 0x%lx\n",
+@@ -93,7 +93,7 @@ static int __init tsi108_eth_of_init(voi
r[1].end = irq_of_parse_and_map(np, 0);
r[1].flags = IORESOURCE_IRQ;
DBG("%s: name:start->end = %s:0x%lx-> 0x%lx\n",
r[1].end = irq_of_parse_and_map(np, 0);
r[1].flags = IORESOURCE_IRQ;
DBG("%s: name:start->end = %s:0x%lx-> 0x%lx\n",
platform_device_register_simple("tsi-ethernet", i++, &r[0],
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
platform_device_register_simple("tsi-ethernet", i++, &r[0],
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
+@@ -207,7 +207,7 @@ int __init tsi108_setup_pci(struct devic
/* PCI Config mapping */
tsi108_pci_cfg_base = (u32)ioremap(cfg_phys, TSI108_PCI_CFG_SIZE);
tsi108_pci_cfg_phys = cfg_phys;
/* PCI Config mapping */
tsi108_pci_cfg_base = (u32)ioremap(cfg_phys, TSI108_PCI_CFG_SIZE);
tsi108_pci_cfg_phys = cfg_phys;
tsi108_pci_cfg_base);
/* Fetch host bridge registers address */
tsi108_pci_cfg_base);
/* Fetch host bridge registers address */
+@@ -395,7 +395,7 @@ static int pci_irq_host_xlate(struct irq
static int pci_irq_host_map(struct irq_host *h, unsigned int virq,
irq_hw_number_t hw)
{ unsigned int irq;
static int pci_irq_host_map(struct irq_host *h, unsigned int virq,
irq_hw_number_t hw)
{ unsigned int irq;
#endif
#include "nonstdio.h"
#endif
#include "nonstdio.h"
+@@ -1244,15 +1243,12 @@ static void get_function_bounds(unsigned
static int xmon_depth_to_print = 64;
static int xmon_depth_to_print = 64;
#define REGS_OFFSET 16
#endif
#define REGS_OFFSET 16
#endif
+@@ -1318,7 +1314,7 @@ static void xmon_show_stack(unsigned lon
/* Look for "regshere" marker to see if this is
an exception frame. */
if (mread(sp + MARKER_OFFSET, &marker, sizeof(unsigned long))
/* Look for "regshere" marker to see if this is
an exception frame. */
if (mread(sp + MARKER_OFFSET, &marker, sizeof(unsigned long))
if (mread(sp + REGS_OFFSET, ®s, sizeof(regs))
!= sizeof(regs)) {
printf("Couldn't read registers at %lx\n",
if (mread(sp + REGS_OFFSET, ®s, sizeof(regs))
!= sizeof(regs)) {
printf("Couldn't read registers at %lx\n",
+@@ -1598,7 +1594,6 @@ void super_regs(void)
if (firmware_has_feature(FW_FEATURE_ISERIES)) {
struct paca_struct *ptrPaca;
struct lppaca *ptrLpPaca;
if (firmware_has_feature(FW_FEATURE_ISERIES)) {
struct paca_struct *ptrPaca;
struct lppaca *ptrLpPaca;
/* Dump out relevant Paca data areas. */
printf("Paca: \n");
/* Dump out relevant Paca data areas. */
printf("Paca: \n");
+@@ -1611,15 +1606,6 @@ void super_regs(void)
printf(" Saved Gpr3=%.16lx Saved Gpr4=%.16lx \n",
ptrLpPaca->saved_gpr3, ptrLpPaca->saved_gpr4);
printf(" Saved Gpr5=%.16lx \n", ptrLpPaca->saved_gpr5);
printf(" Saved Gpr3=%.16lx Saved Gpr4=%.16lx \n",
ptrLpPaca->saved_gpr3, ptrLpPaca->saved_gpr4);
printf(" Saved Gpr5=%.16lx \n", ptrLpPaca->saved_gpr5);
--- a/arch/ppc/8xx_io/fec.c
+++ b/arch/ppc/8xx_io/fec.c
--- a/arch/ppc/8xx_io/fec.c
+++ b/arch/ppc/8xx_io/fec.c
+@@ -520,7 +520,7 @@ fec_enet_interrupt(int irq, void * dev_i
#ifdef CONFIG_USE_MDIO
fec_enet_mii(dev);
#else
#ifdef CONFIG_USE_MDIO
fec_enet_mii(dev);
#else
#endif /* CONFIG_USE_MDIO */
}
#endif /* CONFIG_USE_MDIO */
}
+@@ -1441,7 +1441,7 @@ irqreturn_t mii_link_interrupt(int irq,
fecp->fec_ecntrl = ecntrl; /* restore old settings */
}
#else
fecp->fec_ecntrl = ecntrl; /* restore old settings */
}
#else
#ifndef CONFIG_RPXCLASSIC
--- a/arch/ppc/kernel/head.S
+++ b/arch/ppc/kernel/head.S
#ifndef CONFIG_RPXCLASSIC
--- a/arch/ppc/kernel/head.S
+++ b/arch/ppc/kernel/head.S
+@@ -701,23 +701,6 @@ load_up_altivec:
b fast_exception_return
/*
b fast_exception_return
/*
* and save the AltiVec registers in its thread_struct.
--- a/arch/ppc/mm/init.c
+++ b/arch/ppc/mm/init.c
* and save the AltiVec registers in its thread_struct.
--- a/arch/ppc/mm/init.c
+++ b/arch/ppc/mm/init.c
+@@ -109,7 +109,6 @@ void show_mem(void)
printk("Mem-info:\n");
show_free_areas();
printk("Mem-info:\n");
show_free_areas();
total++;
--- a/arch/ppc/platforms/radstone_ppc7d.c
+++ b/arch/ppc/platforms/radstone_ppc7d.c
total++;
--- a/arch/ppc/platforms/radstone_ppc7d.c
+++ b/arch/ppc/platforms/radstone_ppc7d.c
+@@ -512,7 +512,7 @@ static void __init ppc7d_init_irq(void)
i8259_init(0, 0);
mv64360_init_irq();
i8259_init(0, 0);
mv64360_init_irq();
+@@ -569,7 +569,7 @@ static int __init ppc7d_map_irq(struct p
};
const long min_idsel = 10, max_idsel = 14, irqs_per_slot = 4;
};
const long min_idsel = 10, max_idsel = 14, irqs_per_slot = 4;
dev->vendor, dev->device, PCI_FUNC(dev->devfn), idsel, pin);
return PCI_IRQ_TABLE_LOOKUP;
dev->vendor, dev->device, PCI_FUNC(dev->devfn), idsel, pin);
return PCI_IRQ_TABLE_LOOKUP;
+@@ -1300,7 +1300,7 @@ static void ppc7d_init2(void)
/* Wait for debugger? */
if (ppc7d_wait_debugger) {
/* Wait for debugger? */
if (ppc7d_wait_debugger) {
+@@ -1333,7 +1333,7 @@ static void ppc7d_init2(void)
ppc_md.set_rtc_time = ppc7d_set_rtc_time;
ppc_md.get_rtc_time = ppc7d_get_rtc_time;
ppc_md.set_rtc_time = ppc7d_set_rtc_time;
ppc_md.get_rtc_time = ppc7d_get_rtc_time;
/* Called from machine_init(), early, before any of the __init functions
--- a/arch/ppc/syslib/mpc52xx_setup.c
+++ b/arch/ppc/syslib/mpc52xx_setup.c
/* Called from machine_init(), early, before any of the __init functions
--- a/arch/ppc/syslib/mpc52xx_setup.c
+++ b/arch/ppc/syslib/mpc52xx_setup.c
+@@ -279,7 +279,7 @@ int mpc52xx_match_psc_function(int psc_i
int mpc52xx_set_psc_clkdiv(int psc_id, int clkdiv)
{
int mpc52xx_set_psc_clkdiv(int psc_id, int clkdiv)
{
u16 mclken_div;
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
u16 mclken_div;
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
+@@ -16,6 +16,7 @@ config SPARC64
bool
default y
select HAVE_IDE
bool
default y
select HAVE_IDE
Sun Microsystems, incorporated. This port covers the newer 64-bit
--- a/drivers/block/viodasd.c
+++ b/drivers/block/viodasd.c
Sun Microsystems, incorporated. This port covers the newer 64-bit
--- a/drivers/block/viodasd.c
+++ b/drivers/block/viodasd.c
+@@ -69,7 +69,7 @@ MODULE_LICENSE("GPL");
enum {
PARTITION_SHIFT = 3,
MAX_DISKNO = HVMAXARCHITECTEDVIRTUALDISKS,
enum {
PARTITION_SHIFT = 3,
MAX_DISKNO = HVMAXARCHITECTEDVIRTUALDISKS,
static DEFINE_SPINLOCK(viodasd_spinlock);
--- a/drivers/char/hvc_beat.c
+++ b/drivers/char/hvc_beat.c
static DEFINE_SPINLOCK(viodasd_spinlock);
--- a/drivers/char/hvc_beat.c
+++ b/drivers/char/hvc_beat.c
+@@ -78,8 +78,8 @@ static int hvc_beat_put_chars(uint32_t v
for (rest = cnt; rest > 0; rest -= nlen) {
nlen = (rest > 16) ? 16 : rest;
memcpy(kb, buf, nlen);
for (rest = cnt; rest > 0; rest -= nlen) {
nlen = (rest > 16) ? 16 : rest;
memcpy(kb, buf, nlen);
+@@ -117,20 +117,8 @@ static inline u32 buffer_icap_get_bram(v
**/
static inline bool buffer_icap_busy(void __iomem *base_address)
{
**/
static inline bool buffer_icap_busy(void __iomem *base_address)
{
/* Loads a partial bitstream from system memory. */
int buffer_icap_set_configuration(struct hwicap_drvdata *drvdata, u32 *data,
u32 Size);
/* Loads a partial bitstream from system memory. */
int buffer_icap_set_configuration(struct hwicap_drvdata *drvdata, u32 *data,
u32 Size);
+@@ -54,4 +52,7 @@ int buffer_icap_set_configuration(struct
int buffer_icap_get_configuration(struct hwicap_drvdata *drvdata, u32 *data,
u32 Size);
int buffer_icap_get_configuration(struct hwicap_drvdata *drvdata, u32 *data,
u32 Size);
#define XHI_WFO_MAX_VACANCY 1024 /* Max Write FIFO Vacancy, in words */
#define XHI_RFO_MAX_OCCUPANCY 256 /* Max Read FIFO Occupancy, in words */
#define XHI_WFO_MAX_VACANCY 1024 /* Max Write FIFO Vacancy, in words */
#define XHI_RFO_MAX_OCCUPANCY 256 /* Max Read FIFO Occupancy, in words */
+@@ -152,13 +145,35 @@ static inline void fifo_icap_start_readb
--- a/drivers/char/xilinx_hwicap/fifo_icap.h
+++ b/drivers/char/xilinx_hwicap/fifo_icap.h
--- a/drivers/char/xilinx_hwicap/fifo_icap.h
+++ b/drivers/char/xilinx_hwicap/fifo_icap.h
+@@ -56,6 +56,7 @@ int fifo_icap_set_configuration(
u32 *FrameBuffer,
u32 NumWords);
u32 *FrameBuffer,
u32 NumWords);
/* An array, which is set to true when the device is registered. */
static bool probed_devices[HWICAP_DEVICES];
static struct mutex icap_sem;
/* An array, which is set to true when the device is registered. */
static bool probed_devices[HWICAP_DEVICES];
static struct mutex icap_sem;
+@@ -250,8 +246,26 @@ static int hwicap_get_configuration_regi
* Create the data to be written to the ICAP.
*/
buffer[index++] = XHI_DUMMY_PACKET;
* Create the data to be written to the ICAP.
*/
buffer[index++] = XHI_DUMMY_PACKET;
buffer[index++] = hwicap_type_1_read(reg) | 1;
buffer[index++] = XHI_NOOP_PACKET;
buffer[index++] = XHI_NOOP_PACKET;
buffer[index++] = hwicap_type_1_read(reg) | 1;
buffer[index++] = XHI_NOOP_PACKET;
buffer[index++] = XHI_NOOP_PACKET;
+@@ -587,7 +601,7 @@ static int __devinit hwicap_setup(struct
probed_devices[id] = 1;
mutex_unlock(&icap_sem);
probed_devices[id] = 1;
mutex_unlock(&icap_sem);
drvdata = kzalloc(sizeof(struct hwicap_drvdata), GFP_KERNEL);
if (!drvdata) {
drvdata = kzalloc(sizeof(struct hwicap_drvdata), GFP_KERNEL);
if (!drvdata) {
+@@ -664,12 +678,14 @@ static int __devinit hwicap_setup(struct
static struct hwicap_driver_config buffer_icap_config = {
.get_configuration = buffer_icap_get_configuration,
.set_configuration = buffer_icap_set_configuration,
static struct hwicap_driver_config buffer_icap_config = {
.get_configuration = buffer_icap_get_configuration,
.set_configuration = buffer_icap_set_configuration,
.reset = fifo_icap_reset,
};
.reset = fifo_icap_reset,
};
+@@ -690,7 +706,7 @@ static int __devexit hwicap_remove(struc
dev_set_drvdata(dev, NULL);
mutex_lock(&icap_sem);
dev_set_drvdata(dev, NULL);
mutex_lock(&icap_sem);
mutex_unlock(&icap_sem);
return 0; /* success */
}
mutex_unlock(&icap_sem);
return 0; /* success */
}
+@@ -830,23 +846,12 @@ static int __init hwicap_module_init(voi
icap_class = class_create(THIS_MODULE, "xilinx_config");
mutex_init(&icap_sem);
icap_class = class_create(THIS_MODULE, "xilinx_config");
mutex_init(&icap_sem);
retval = platform_driver_register(&hwicap_platform_driver);
retval = platform_driver_register(&hwicap_platform_driver);
+@@ -871,7 +876,7 @@ static int __init hwicap_module_init(voi
static void __exit hwicap_module_cleanup(void)
{
static void __exit hwicap_module_cleanup(void)
{
--- a/drivers/char/xilinx_hwicap/xilinx_hwicap.h
+++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.h
--- a/drivers/char/xilinx_hwicap/xilinx_hwicap.h
+++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.h
+@@ -65,10 +65,27 @@ struct hwicap_drvdata {
};
struct hwicap_driver_config {
};
struct hwicap_driver_config {
void (*reset)(struct hwicap_drvdata *drvdata);
};
void (*reset)(struct hwicap_drvdata *drvdata);
};
+@@ -163,6 +180,13 @@ struct config_registers {
/* Constant to use for CRC check when CRC has been disabled */
#define XHI_DISABLED_AUTO_CRC 0x0000DEFCUL
/* Constant to use for CRC check when CRC has been disabled */
#define XHI_DISABLED_AUTO_CRC 0x0000DEFCUL
struct fsl_elbc_ctrl;
/* mtd information per set */
struct fsl_elbc_ctrl;
/* mtd information per set */
+@@ -261,7 +66,7 @@ struct fsl_elbc_ctrl {
/* device info */
struct device *dev;
/* device info */
struct device *dev;
int irq;
wait_queue_head_t irq_wait;
unsigned int irq_status; /* status read from LTESR by irq handler */
int irq;
wait_queue_head_t irq_wait;
unsigned int irq_status; /* status read from LTESR by irq handler */
+@@ -322,7 +127,7 @@ static void set_addr(struct mtd_info *mt
struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
int buf_num;
ctrl->page = page_addr;
int buf_num;
ctrl->page = page_addr;
+@@ -363,7 +168,7 @@ static int fsl_elbc_run_command(struct m
struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
/* Setup the FMR[OP] to execute without write protection */
out_be32(&lbc->fmr, priv->fmr | 3);
/* Setup the FMR[OP] to execute without write protection */
out_be32(&lbc->fmr, priv->fmr | 3);
+@@ -406,7 +211,7 @@ static void fsl_elbc_do_read(struct nand
{
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
{
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
if (priv->page_size) {
out_be32(&lbc->fir,
if (priv->page_size) {
out_be32(&lbc->fir,
+@@ -439,7 +244,7 @@ static void fsl_elbc_cmdfunc(struct mtd_
struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
+@@ -775,7 +580,7 @@ static int fsl_elbc_wait(struct mtd_info
{
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
{
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
if (ctrl->status != LTESR_CC)
return NAND_STATUS_FAIL;
if (ctrl->status != LTESR_CC)
return NAND_STATUS_FAIL;
+@@ -807,7 +612,7 @@ static int fsl_elbc_chip_init_tail(struc
struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct nand_chip *chip = mtd->priv;
struct fsl_elbc_mtd *priv = chip->priv;
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
unsigned int al;
/* calculate FMR Address Length field */
unsigned int al;
/* calculate FMR Address Length field */
+@@ -922,7 +727,7 @@ static void fsl_elbc_write_page(struct m
static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv)
{
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv)
{
struct fsl_elbc_ctrl *ctrl = priv->ctrl;
struct nand_chip *chip = &priv->chip;
dev_dbg(priv->dev, "eLBC Set Information for bank %d\n", priv->bank);
struct nand_chip *chip = &priv->chip;
dev_dbg(priv->dev, "eLBC Set Information for bank %d\n", priv->bank);
+@@ -986,7 +791,7 @@ static int fsl_elbc_chip_remove(struct f
static int fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl,
struct device_node *node)
{
static int fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl,
struct device_node *node)
{
struct fsl_elbc_mtd *priv;
struct resource res;
#ifdef CONFIG_MTD_PARTITIONS
struct fsl_elbc_mtd *priv;
struct resource res;
#ifdef CONFIG_MTD_PARTITIONS
+@@ -1083,7 +888,7 @@ err:
static int __devinit fsl_elbc_ctrl_init(struct fsl_elbc_ctrl *ctrl)
{
static int __devinit fsl_elbc_ctrl_init(struct fsl_elbc_ctrl *ctrl)
{
/* clear event registers */
setbits32(&lbc->ltesr, LTESR_NAND_MASK);
/* clear event registers */
setbits32(&lbc->ltesr, LTESR_NAND_MASK);
+@@ -1128,7 +933,7 @@ static int __devexit fsl_elbc_ctrl_remov
static irqreturn_t fsl_elbc_ctrl_irq(int irqno, void *data)
{
struct fsl_elbc_ctrl *ctrl = data;
static irqreturn_t fsl_elbc_ctrl_irq(int irqno, void *data)
{
struct fsl_elbc_ctrl *ctrl = data;
if (status) {
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
if (status) {
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
+@@ -219,7 +219,8 @@ obj-$(CONFIG_SMC911X) += smc911x.o
obj-$(CONFIG_BFIN_MAC) += bfin_mac.o
obj-$(CONFIG_DM9000) += dm9000.o
obj-$(CONFIG_FEC_8XX) += fec_8xx/
obj-$(CONFIG_BFIN_MAC) += bfin_mac.o
obj-$(CONFIG_DM9000) += dm9000.o
obj-$(CONFIG_FEC_8XX) += fec_8xx/
--- a/drivers/net/iseries_veth.c
+++ b/drivers/net/iseries_veth.c
--- a/drivers/net/iseries_veth.c
+++ b/drivers/net/iseries_veth.c
+@@ -308,7 +308,8 @@ static void veth_complete_allocation(voi
static int veth_allocate_events(HvLpIndex rlp, int number)
{
static int veth_allocate_events(HvLpIndex rlp, int number)
{
MODULE_LICENSE("GPL");
MODULE_AUTHOR ("Olof Johansson <olof@lixom.net>");
MODULE_DESCRIPTION("PA Semi PWRficient Ethernet driver");
MODULE_LICENSE("GPL");
MODULE_AUTHOR ("Olof Johansson <olof@lixom.net>");
MODULE_DESCRIPTION("PA Semi PWRficient Ethernet driver");
+@@ -94,6 +79,8 @@ static int debug = -1; /* -1 == use DEFA
module_param(debug, int, 0);
MODULE_PARM_DESC(debug, "PA Semi MAC bitmapped debugging message enable value");
module_param(debug, int, 0);
MODULE_PARM_DESC(debug, "PA Semi MAC bitmapped debugging message enable value");
static int translation_enabled(void)
{
#if defined(CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE)
static int translation_enabled(void)
{
#if defined(CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE)
+@@ -322,6 +309,104 @@ static int pasemi_mac_unmap_tx_skb(struc
return (nfrags + 3) & ~1;
}
return (nfrags + 3) & ~1;
}
static int pasemi_mac_setup_rx_resources(const struct net_device *dev)
{
struct pasemi_mac_rxring *ring;
static int pasemi_mac_setup_rx_resources(const struct net_device *dev)
{
struct pasemi_mac_rxring *ring;
+@@ -445,7 +530,7 @@ pasemi_mac_setup_tx_resources(const stru
cfg = PAS_DMA_TXCHAN_CFG_TY_IFACE |
PAS_DMA_TXCHAN_CFG_TATTR(mac->dma_if) |
PAS_DMA_TXCHAN_CFG_UP |
cfg = PAS_DMA_TXCHAN_CFG_TY_IFACE |
PAS_DMA_TXCHAN_CFG_TATTR(mac->dma_if) |
PAS_DMA_TXCHAN_CFG_UP |
if (translation_enabled())
cfg |= PAS_DMA_TXCHAN_CFG_TRD | PAS_DMA_TXCHAN_CFG_TRR;
if (translation_enabled())
cfg |= PAS_DMA_TXCHAN_CFG_TRD | PAS_DMA_TXCHAN_CFG_TRR;
+@@ -810,13 +895,21 @@ restart:
u64 mactx = TX_DESC(txring, i);
struct sk_buff *skb;
u64 mactx = TX_DESC(txring, i);
struct sk_buff *skb;
if (unlikely(mactx & XCT_MACTX_O))
/* Not yet transmitted */
break;
if (unlikely(mactx & XCT_MACTX_O))
/* Not yet transmitted */
break;
+@@ -1041,13 +1134,7 @@ static int pasemi_mac_open(struct net_de
{
struct pasemi_mac *mac = netdev_priv(dev);
unsigned int flags;
{
struct pasemi_mac *mac = netdev_priv(dev);
unsigned int flags;
flags = PAS_MAC_CFG_TXP_FCE | PAS_MAC_CFG_TXP_FPC(3) |
PAS_MAC_CFG_TXP_SL(3) | PAS_MAC_CFG_TXP_COB(0xf) |
flags = PAS_MAC_CFG_TXP_FCE | PAS_MAC_CFG_TXP_FPC(3) |
PAS_MAC_CFG_TXP_SL(3) | PAS_MAC_CFG_TXP_COB(0xf) |
+@@ -1064,6 +1151,19 @@ static int pasemi_mac_open(struct net_de
if (!mac->tx)
goto out_tx_ring;
if (!mac->tx)
goto out_tx_ring;
/* 0x3ff with 33MHz clock is about 31us */
write_iob_reg(PAS_IOB_DMA_COM_TIMEOUTCFG,
PAS_IOB_DMA_COM_TIMEOUTCFG_TCNT(0x3ff));
/* 0x3ff with 33MHz clock is about 31us */
write_iob_reg(PAS_IOB_DMA_COM_TIMEOUTCFG,
PAS_IOB_DMA_COM_TIMEOUTCFG_TCNT(0x3ff));
+@@ -1247,7 +1347,7 @@ static int pasemi_mac_close(struct net_d
{
struct pasemi_mac *mac = netdev_priv(dev);
unsigned int sta;
{
struct pasemi_mac *mac = netdev_priv(dev);
unsigned int sta;
rxch = rx_ring(mac)->chan.chno;
txch = tx_ring(mac)->chan.chno;
rxch = rx_ring(mac)->chan.chno;
txch = tx_ring(mac)->chan.chno;
+@@ -1292,6 +1392,13 @@ static int pasemi_mac_close(struct net_d
free_irq(mac->tx->chan.irq, mac->tx);
free_irq(mac->rx->chan.irq, mac->rx);
free_irq(mac->tx->chan.irq, mac->tx);
free_irq(mac->rx->chan.irq, mac->rx);
/* Free resources */
pasemi_mac_free_rx_resources(mac);
pasemi_mac_free_tx_resources(mac);
/* Free resources */
pasemi_mac_free_rx_resources(mac);
pasemi_mac_free_tx_resources(mac);
-@@ -1299,35 +1406,113 @@
+@@ -1299,35 +1406,113 @@ static int pasemi_mac_close(struct net_d
nfrags = skb_shinfo(skb)->nr_frags;
nfrags = skb_shinfo(skb)->nr_frags;
+@@ -1350,24 +1535,46 @@ static int pasemi_mac_start_tx(struct sk
TX_DESC(txring, fill) = mactx;
TX_DESC_INFO(txring, fill).dma = nfrags;
fill++;
TX_DESC(txring, fill) = mactx;
TX_DESC_INFO(txring, fill).dma = nfrags;
fill++;
+@@ -1441,12 +1648,33 @@ static int pasemi_mac_poll(struct napi_s
if (new_mtu < PE_MIN_MTU || new_mtu > PE_MAX_MTU)
return -EINVAL;
if (new_mtu < PE_MIN_MTU || new_mtu > PE_MAX_MTU)
return -EINVAL;
+@@ -1468,6 +1696,16 @@ static int pasemi_mac_change_mtu(struct
pasemi_mac_pause_rxint(mac);
pasemi_mac_clean_rx(rx_ring(mac), RX_RING_SIZE);
pasemi_mac_free_rx_buffers(mac);
pasemi_mac_pause_rxint(mac);
pasemi_mac_clean_rx(rx_ring(mac), RX_RING_SIZE);
pasemi_mac_free_rx_buffers(mac);
}
/* Change maxf, i.e. what size frames are accepted.
}
/* Change maxf, i.e. what size frames are accepted.
+@@ -1482,6 +1720,7 @@ static int pasemi_mac_change_mtu(struct
/* MTU + ETH_HLEN + VLAN_HLEN + 2 64B cachelines */
mac->bufsz = new_mtu + ETH_HLEN + ETH_FCS_LEN + LOCAL_SKB_ALIGN + 128;
/* MTU + ETH_HLEN + VLAN_HLEN + 2 64B cachelines */
mac->bufsz = new_mtu + ETH_HLEN + ETH_FCS_LEN + LOCAL_SKB_ALIGN + 128;
if (running) {
write_dma_reg(PAS_DMA_RXINT_RCMDSTA(mac->dma_if),
rcmdsta | PAS_DMA_RXINT_RCMDSTA_EN);
if (running) {
write_dma_reg(PAS_DMA_RXINT_RCMDSTA(mac->dma_if),
rcmdsta | PAS_DMA_RXINT_RCMDSTA_EN);
+@@ -1494,7 +1733,7 @@ static int pasemi_mac_change_mtu(struct
pasemi_mac_intf_enable(mac);
}
pasemi_mac_intf_enable(mac);
}
+@@ -1528,7 +1767,7 @@ pasemi_mac_probe(struct pci_dev *pdev, c
netif_napi_add(dev, &mac->napi, pasemi_mac_poll, 64);
dev->features = NETIF_F_IP_CSUM | NETIF_F_LLTX | NETIF_F_SG |
netif_napi_add(dev, &mac->napi, pasemi_mac_poll, 64);
dev->features = NETIF_F_IP_CSUM | NETIF_F_LLTX | NETIF_F_SG |
mac->lro_mgr.max_aggr = LRO_MAX_AGGR;
mac->lro_mgr.max_desc = MAX_LRO_DESCRIPTORS;
mac->lro_mgr.max_aggr = LRO_MAX_AGGR;
mac->lro_mgr.max_desc = MAX_LRO_DESCRIPTORS;
+@@ -1588,8 +1827,12 @@ pasemi_mac_probe(struct pci_dev *pdev, c
dev->mtu = PE_DEF_MTU;
/* 1500 MTU + ETH_HLEN + VLAN_HLEN + 2 64B cachelines */
mac->bufsz = dev->mtu + ETH_HLEN + ETH_FCS_LEN + LOCAL_SKB_ALIGN + 128;
dev->mtu = PE_DEF_MTU;
/* 1500 MTU + ETH_HLEN + VLAN_HLEN + 2 64B cachelines */
mac->bufsz = dev->mtu + ETH_HLEN + ETH_FCS_LEN + LOCAL_SKB_ALIGN + 128;
struct pasemi_mac_txring {
struct pasemi_dmachan chan; /* Must be first */
struct pasemi_mac_txring {
struct pasemi_dmachan chan; /* Must be first */
+@@ -51,6 +58,15 @@ struct pasemi_mac_rxring {
struct pasemi_mac *mac; /* Needed in intr handler */
};
struct pasemi_mac *mac; /* Needed in intr handler */
};
struct pasemi_mac {
struct net_device *netdev;
struct pci_dev *pdev;
struct pasemi_mac {
struct net_device *netdev;
struct pci_dev *pdev;
+@@ -60,10 +76,12 @@ struct pasemi_mac {
struct napi_struct napi;
int bufsz; /* RX ring buffer size */
struct napi_struct napi;
int bufsz; /* RX ring buffer size */
+@@ -74,6 +92,7 @@ struct pasemi_mac {
struct pasemi_mac_txring *tx;
struct pasemi_mac_rxring *rx;
struct pasemi_mac_txring *tx;
struct pasemi_mac_rxring *rx;
char tx_irq_name[10]; /* "eth%d tx" */
char rx_irq_name[10]; /* "eth%d rx" */
int link;
char tx_irq_name[10]; /* "eth%d tx" */
char rx_irq_name[10]; /* "eth%d rx" */
int link;
+@@ -90,6 +109,16 @@ struct pasemi_mac_buffer {
/* PCI register offsets and formats */
/* PCI register offsets and formats */
+@@ -101,6 +130,7 @@ enum {
PAS_MAC_CFG_ADR0 = 0x8c,
PAS_MAC_CFG_ADR1 = 0x90,
PAS_MAC_CFG_TXP = 0x98,
PAS_MAC_CFG_ADR0 = 0x8c,
PAS_MAC_CFG_ADR1 = 0x90,
PAS_MAC_CFG_TXP = 0x98,
PAS_MAC_IPC_CHNL = 0x208,
};
PAS_MAC_IPC_CHNL = 0x208,
};
+@@ -172,6 +202,8 @@ enum {
#define PAS_MAC_CFG_TXP_TIFG(x) (((x) << PAS_MAC_CFG_TXP_TIFG_S) & \
PAS_MAC_CFG_TXP_TIFG_M)
#define PAS_MAC_CFG_TXP_TIFG(x) (((x) << PAS_MAC_CFG_TXP_TIFG_S) & \
PAS_MAC_CFG_TXP_TIFG_M)
#define PAS_MAC_IPC_CHNL_DCHNO_M 0x003f0000
#define PAS_MAC_IPC_CHNL_DCHNO_S 16
#define PAS_MAC_IPC_CHNL_DCHNO(x) (((x) << PAS_MAC_IPC_CHNL_DCHNO_S) & \
#define PAS_MAC_IPC_CHNL_DCHNO_M 0x003f0000
#define PAS_MAC_IPC_CHNL_DCHNO_S 16
#define PAS_MAC_IPC_CHNL_DCHNO(x) (((x) << PAS_MAC_IPC_CHNL_DCHNO_S) & \
+@@ -181,4 +213,5 @@ enum {
#define PAS_MAC_IPC_CHNL_BCH(x) (((x) << PAS_MAC_IPC_CHNL_BCH_S) & \
PAS_MAC_IPC_CHNL_BCH_M)
#define PAS_MAC_IPC_CHNL_BCH(x) (((x) << PAS_MAC_IPC_CHNL_BCH_S) & \
PAS_MAC_IPC_CHNL_BCH_M)
+
--- a/drivers/net/ps3_gelic_net.c
+++ b/drivers/net/ps3_gelic_net.c
+
--- a/drivers/net/ps3_gelic_net.c
+++ b/drivers/net/ps3_gelic_net.c
+@@ -1266,6 +1266,85 @@ int gelic_net_set_rx_csum(struct net_dev
static struct ethtool_ops gelic_ether_ethtool_ops = {
.get_drvinfo = gelic_net_get_drvinfo,
.get_settings = gelic_ether_get_settings,
static struct ethtool_ops gelic_ether_ethtool_ops = {
.get_drvinfo = gelic_net_get_drvinfo,
.get_settings = gelic_ether_get_settings,
+@@ -1274,6 +1353,8 @@ static struct ethtool_ops gelic_ether_et
.set_tx_csum = ethtool_op_set_tx_csum,
.get_rx_csum = gelic_net_get_rx_csum,
.set_rx_csum = gelic_net_set_rx_csum,
.set_tx_csum = ethtool_op_set_tx_csum,
.get_rx_csum = gelic_net_get_rx_csum,
.set_rx_csum = gelic_net_set_rx_csum,
/**
--- a/drivers/net/ps3_gelic_net.h
+++ b/drivers/net/ps3_gelic_net.h
/**
--- a/drivers/net/ps3_gelic_net.h
+++ b/drivers/net/ps3_gelic_net.h
+@@ -182,12 +182,32 @@ enum gelic_lv1_net_control_code {
GELIC_LV1_GET_ETH_PORT_STATUS = 2,
GELIC_LV1_SET_NEGOTIATION_MODE = 3,
GELIC_LV1_GET_VLAN_ID = 4,
GELIC_LV1_GET_ETH_PORT_STATUS = 2,
GELIC_LV1_SET_NEGOTIATION_MODE = 3,
GELIC_LV1_GET_VLAN_ID = 4,
GELIC_LV1_ETHER_LINK_UP = 0x0000000000000001L,
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
GELIC_LV1_ETHER_LINK_UP = 0x0000000000000001L,
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
+@@ -3853,7 +3853,13 @@ static int ucc_geth_probe(struct of_devi
ugeth_vdbg("%s: IN", __FUNCTION__);
ugeth_vdbg("%s: IN", __FUNCTION__);
return -ENODEV;
--- a/drivers/net/ucc_geth_mii.c
+++ b/drivers/net/ucc_geth_mii.c
return -ENODEV;
--- a/drivers/net/ucc_geth_mii.c
+++ b/drivers/net/ucc_geth_mii.c
+@@ -203,9 +203,14 @@ static int uec_mdio_probe(struct of_devi
if ((res.start >= tempres.start) &&
(res.end <= tempres.end)) {
/* set this UCC to be the MII master */
if ((res.start >= tempres.start) &&
(res.end <= tempres.end)) {
/* set this UCC to be the MII master */
+obj-$(CONFIG_OF_I2C) += i2c.o
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
+obj-$(CONFIG_OF_I2C) += i2c.o
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
+@@ -117,6 +117,32 @@ int of_device_is_compatible(const struct
EXPORT_SYMBOL(of_device_is_compatible);
/**
EXPORT_SYMBOL(of_device_is_compatible);
/**
#include <asm/ps3.h>
#include "vuart.h"
#include <asm/ps3.h>
#include "vuart.h"
+@@ -187,6 +188,7 @@ enum ps3_sys_manager_next_op {
* controller, and bluetooth controller.
* @PS3_SM_WAKE_RTC:
* @PS3_SM_WAKE_RTC_ERROR:
* controller, and bluetooth controller.
* @PS3_SM_WAKE_RTC:
* @PS3_SM_WAKE_RTC_ERROR:
* @PS3_SM_WAKE_P_O_R: Power on reset.
*
* Additional wakeup sources when specifying PS3_SM_NEXT_OP_SYS_SHUTDOWN.
* @PS3_SM_WAKE_P_O_R: Power on reset.
*
* Additional wakeup sources when specifying PS3_SM_NEXT_OP_SYS_SHUTDOWN.
+@@ -200,10 +202,19 @@ enum ps3_sys_manager_wake_source {
PS3_SM_WAKE_DEFAULT = 0,
PS3_SM_WAKE_RTC = 0x00000040,
PS3_SM_WAKE_RTC_ERROR = 0x00000080,
PS3_SM_WAKE_DEFAULT = 0,
PS3_SM_WAKE_RTC = 0x00000040,
PS3_SM_WAKE_RTC_ERROR = 0x00000080,
* enum ps3_sys_manager_cmd - Command from system manager to guest.
*
* The guest completes the actions needed, then acks or naks the command via
* enum ps3_sys_manager_cmd - Command from system manager to guest.
*
* The guest completes the actions needed, then acks or naks the command via
+@@ -581,6 +592,23 @@ fail_id:
/**
* ps3_sys_manager_final_power_off - The final platform machine_power_off routine.
*
/**
* ps3_sys_manager_final_power_off - The final platform machine_power_off routine.
*
+@@ -601,13 +629,9 @@ static void ps3_sys_manager_final_power_
ps3_vuart_cancel_async(dev);
ps3_sys_manager_send_next_op(dev, PS3_SM_NEXT_OP_SYS_SHUTDOWN,
ps3_vuart_cancel_async(dev);
ps3_sys_manager_send_next_op(dev, PS3_SM_NEXT_OP_SYS_SHUTDOWN,
+@@ -638,14 +662,42 @@ static void ps3_sys_manager_final_restar
ps3_sys_manager_send_attr(dev, 0);
ps3_sys_manager_send_next_op(dev, PS3_SM_NEXT_OP_SYS_REBOOT,
ps3_sys_manager_send_attr(dev, 0);
ps3_sys_manager_send_next_op(dev, PS3_SM_NEXT_OP_SYS_REBOOT,
+@@ -50,10 +51,7 @@ void ps3_sys_manager_power_off(void)
if (ps3_sys_manager_ops.power_off)
ps3_sys_manager_ops.power_off(ps3_sys_manager_ops.dev);
if (ps3_sys_manager_ops.power_off)
ps3_sys_manager_ops.power_off(ps3_sys_manager_ops.dev);
}
void ps3_sys_manager_restart(void)
}
void ps3_sys_manager_restart(void)
+@@ -61,8 +59,14 @@ void ps3_sys_manager_restart(void)
if (ps3_sys_manager_ops.restart)
ps3_sys_manager_ops.restart(ps3_sys_manager_ops.dev);
if (ps3_sys_manager_ops.restart)
ps3_sys_manager_ops.restart(ps3_sys_manager_ops.dev);
+
--- a/drivers/serial/cpm_uart/cpm_uart.h
+++ b/drivers/serial/cpm_uart/cpm_uart.h
+
--- a/drivers/serial/cpm_uart/cpm_uart.h
+++ b/drivers/serial/cpm_uart/cpm_uart.h
+@@ -92,6 +92,9 @@ extern struct uart_cpm_port cpm_uart_por
/* these are located in their respective files */
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd);
/* these are located in their respective files */
void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd);
void cpm_uart_freebuf(struct uart_cpm_port *pinfo);
--- a/drivers/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/serial/cpm_uart/cpm_uart_core.c
void cpm_uart_freebuf(struct uart_cpm_port *pinfo);
--- a/drivers/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/serial/cpm_uart/cpm_uart_core.c
+@@ -966,24 +966,23 @@ static int cpm_uart_init_port(struct dev
if (!mem)
return -ENOMEM;
if (!mem)
return -ENOMEM;
}
pinfo->tx_nrfifos = TX_NUM_FIFO;
}
pinfo->tx_nrfifos = TX_NUM_FIFO;
+@@ -1007,7 +1006,7 @@ static int cpm_uart_init_port(struct dev
return cpm_uart_request_port(&pinfo->port);
out_pram:
return cpm_uart_request_port(&pinfo->port);
out_pram:
#include "cpm_uart.h"
/**************************************************************/
#include "cpm_uart.h"
/**************************************************************/
+@@ -54,6 +56,18 @@ void cpm_line_cr_cmd(struct uart_cpm_por
{
cpm_command(port->command, cmd);
}
{
cpm_command(port->command, cmd);
}
#include <linux/serial_core.h>
#include <linux/kernel.h>
#include <linux/serial_core.h>
#include <linux/kernel.h>
+@@ -54,6 +57,55 @@ void cpm_line_cr_cmd(struct uart_cpm_por
{
cpm_command(port->command, cmd);
}
{
cpm_command(port->command, cmd);
}
{
--- a/drivers/serial/of_serial.c
+++ b/drivers/serial/of_serial.c
{
--- a/drivers/serial/of_serial.c
+++ b/drivers/serial/of_serial.c
+@@ -56,7 +56,9 @@ static int __devinit of_platform_serial_
port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP
| UPF_FIXED_PORT;
port->dev = &ofdev->dev;
port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP
| UPF_FIXED_PORT;
port->dev = &ofdev->dev;
}
--- a/drivers/serial/ucc_uart.c
+++ b/drivers/serial/ucc_uart.c
}
--- a/drivers/serial/ucc_uart.c
+++ b/drivers/serial/ucc_uart.c
+@@ -1270,10 +1270,18 @@ static int ucc_uart_probe(struct of_devi
/* Get the UCC number (device ID) */
/* UCCs are numbered 1-7 */
/* Get the UCC number (device ID) */
/* UCCs are numbered 1-7 */
header-y += auxvec.h
header-y += ioctls.h
header-y += mman.h
header-y += auxvec.h
header-y += ioctls.h
header-y += mman.h
+@@ -23,7 +24,6 @@ header-y += sigcontext.h
header-y += statfs.h
header-y += ps3fb.h
header-y += statfs.h
header-y += ps3fb.h
struct mschunks_map {
--- a/include/asm-powerpc/bitops.h
+++ b/include/asm-powerpc/bitops.h
struct mschunks_map {
--- a/include/asm-powerpc/bitops.h
+++ b/include/asm-powerpc/bitops.h
+@@ -312,24 +312,26 @@ static __inline__ int fls(unsigned int x
asm ("cntlzw %0,%1" : "=r" (lz) : "r" (x));
return 32 - lz;
}
asm ("cntlzw %0,%1" : "=r" (lz) : "r" (x));
return 32 - lz;
}
((PG << 26) | (SBC << 21) | (MCN << 6) | OP)
--- a/include/asm-powerpc/cputhreads.h
+++ b/include/asm-powerpc/cputhreads.h
((PG << 26) | (SBC << 21) | (MCN << 6) | OP)
--- a/include/asm-powerpc/cputhreads.h
+++ b/include/asm-powerpc/cputhreads.h
+@@ -35,7 +35,7 @@ static inline cpumask_t cpu_thread_mask_
res = CPU_MASK_NONE;
for (i = 0; i < NR_CPUS; i += threads_per_core) {
res = CPU_MASK_NONE;
for (i = 0; i < NR_CPUS; i += threads_per_core) {
}
--- a/include/asm-powerpc/dcr-native.h
+++ b/include/asm-powerpc/dcr-native.h
}
--- a/include/asm-powerpc/dcr-native.h
+++ b/include/asm-powerpc/dcr-native.h
+@@ -82,6 +82,19 @@ static inline void __mtdcri(int base_add
spin_unlock_irqrestore(&dcr_ind_lock, flags);
}
spin_unlock_irqrestore(&dcr_ind_lock, flags);
}
#define mfdcri(base, reg) __mfdcri(DCRN_ ## base ## _CONFIG_ADDR, \
DCRN_ ## base ## _CONFIG_DATA, \
reg)
#define mfdcri(base, reg) __mfdcri(DCRN_ ## base ## _CONFIG_ADDR, \
DCRN_ ## base ## _CONFIG_DATA, \
reg)
+@@ -90,6 +103,10 @@ static inline void __mtdcri(int base_add
DCRN_ ## base ## _CONFIG_DATA, \
reg, data)
DCRN_ ## base ## _CONFIG_DATA, \
reg, data)
#endif /* __DCR_REGS_H__ */
--- a/include/asm-powerpc/exception.h
+++ b/include/asm-powerpc/exception.h
#endif /* __DCR_REGS_H__ */
--- a/include/asm-powerpc/exception.h
+++ b/include/asm-powerpc/exception.h
+@@ -228,18 +228,18 @@ label##_pSeries: \
BEGIN_FW_FTR_SECTION; \
stb r11,PACAHARDIRQEN(r13); \
END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES); \
BEGIN_FW_FTR_SECTION; \
stb r11,PACAHARDIRQEN(r13); \
END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES); \
+#endif /* __ASM_POWERPC_GPIO_H */
--- a/include/asm-powerpc/hw_irq.h
+++ b/include/asm-powerpc/hw_irq.h
+#endif /* __ASM_POWERPC_GPIO_H */
--- a/include/asm-powerpc/hw_irq.h
+++ b/include/asm-powerpc/hw_irq.h
+@@ -27,7 +27,7 @@ static inline unsigned long local_get_fl
{
unsigned long flags, zero;
{
unsigned long flags, zero;
+@@ -39,14 +39,15 @@ static inline unsigned long local_irq_di
#define QE_IMMAP_SIZE (1024 * 1024) /* 1MB from 1MB+IMMR */
#define QE_IMMAP_SIZE (1024 * 1024) /* 1MB from 1MB+IMMR */
+@@ -468,7 +469,7 @@ struct qe_immap {
u8 res18[0xC0000]; /* 0x140000 - 0x200000 */
} __attribute__ ((packed));
u8 res18[0xC0000]; /* 0x140000 - 0x200000 */
} __attribute__ ((packed));
#endif /* _ASM_POWERPC_LMB_H */
--- a/include/asm-powerpc/machdep.h
+++ b/include/asm-powerpc/machdep.h
#endif /* _ASM_POWERPC_LMB_H */
--- a/include/asm-powerpc/machdep.h
+++ b/include/asm-powerpc/machdep.h
+@@ -68,6 +68,8 @@ struct machdep_calls {
unsigned long vflags,
int psize, int ssize);
long (*hpte_remove)(unsigned long hpte_group);
unsigned long vflags,
int psize, int ssize);
long (*hpte_remove)(unsigned long hpte_group);
void (*flush_hash_range)(unsigned long number, int local);
/* special for kexec, to be called in real mode, linar mapping is
void (*flush_hash_range)(unsigned long number, int local);
/* special for kexec, to be called in real mode, linar mapping is
+@@ -196,9 +198,6 @@ struct machdep_calls {
May be NULL. */
void (*init)(void);
May be NULL. */
void (*init)(void);
unsigned long vdso_base;
--- a/include/asm-powerpc/mmu-hash32.h
+++ b/include/asm-powerpc/mmu-hash32.h
unsigned long vdso_base;
--- a/include/asm-powerpc/mmu-hash32.h
+++ b/include/asm-powerpc/mmu-hash32.h
+@@ -84,8 +84,6 @@ typedef struct {
unsigned long vdso_base;
} mm_context_t;
unsigned long vdso_base;
} mm_context_t;
#endif /* _ASM_POWERPC_MMU_HASH32_H_ */
--- a/include/asm-powerpc/mmu-hash64.h
+++ b/include/asm-powerpc/mmu-hash64.h
#endif /* _ASM_POWERPC_MMU_HASH32_H_ */
--- a/include/asm-powerpc/mmu-hash64.h
+++ b/include/asm-powerpc/mmu-hash64.h
+@@ -469,9 +469,6 @@ static inline unsigned long get_vsid(uns
VSID_MODULUS_256M)
#define KERNEL_VSID(ea) VSID_SCRAMBLE(GET_ESID(ea))
VSID_MODULUS_256M)
#define KERNEL_VSID(ea) VSID_SCRAMBLE(GET_ESID(ea))
#endif /* _ASM_POWERPC_MMU_HASH64_H_ */
--- a/include/asm-powerpc/paca.h
+++ b/include/asm-powerpc/paca.h
#endif /* _ASM_POWERPC_MMU_HASH64_H_ */
--- a/include/asm-powerpc/paca.h
+++ b/include/asm-powerpc/paca.h
+@@ -42,10 +42,7 @@ struct task_struct;
* Defines the layout of the paca.
*
* This structure is not directly accessed by firmware or the service
* Defines the layout of the paca.
*
* This structure is not directly accessed by firmware or the service
*/
struct paca_struct {
/*
*/
struct paca_struct {
/*
+@@ -55,14 +52,7 @@ struct paca_struct {
* avoid cacheline bouncing.
*/
* avoid cacheline bouncing.
*/
*
* Hardware register layout and descriptor formats for the on-board
* DMA engine on PA Semi PWRficient. Used by ethernet, function and security
*
* Hardware register layout and descriptor formats for the on-board
* DMA engine on PA Semi PWRficient. Used by ethernet, function and security
+@@ -40,6 +40,11 @@ enum {
PAS_DMA_COM_TXSTA = 0x104, /* Transmit Status Register */
PAS_DMA_COM_RXCMD = 0x108, /* Receive Command Register */
PAS_DMA_COM_RXSTA = 0x10c, /* Receive Status Register */
PAS_DMA_COM_TXSTA = 0x104, /* Transmit Status Register */
PAS_DMA_COM_RXCMD = 0x108, /* Receive Command Register */
PAS_DMA_COM_RXSTA = 0x10c, /* Receive Status Register */
+@@ -123,11 +128,16 @@ enum {
#define PAS_DMA_TXCHAN_TCMDSTA_DA 0x00000100
#define PAS_DMA_TXCHAN_CFG(c) (0x304+(c)*_PAS_DMA_TXCHAN_STRIDE)
#define PAS_DMA_TXCHAN_CFG_TY_IFACE 0x00000000 /* Type = interface */
#define PAS_DMA_TXCHAN_TCMDSTA_DA 0x00000100
#define PAS_DMA_TXCHAN_CFG(c) (0x304+(c)*_PAS_DMA_TXCHAN_STRIDE)
#define PAS_DMA_TXCHAN_CFG_TY_IFACE 0x00000000 /* Type = interface */
#define PAS_DMA_TXCHAN_CFG_WT_S 6
#define PAS_DMA_TXCHAN_CFG_WT(x) (((x) << PAS_DMA_TXCHAN_CFG_WT_S) & \
PAS_DMA_TXCHAN_CFG_WT_M)
#define PAS_DMA_TXCHAN_CFG_WT_S 6
#define PAS_DMA_TXCHAN_CFG_WT(x) (((x) << PAS_DMA_TXCHAN_CFG_WT_S) & \
PAS_DMA_TXCHAN_CFG_WT_M)
+@@ -394,11 +404,62 @@ enum {
XCT_COPY_LLEN_M)
#define XCT_COPY_SE 0x0000000000000001ull
XCT_COPY_LLEN_M)
#define XCT_COPY_SE 0x0000000000000001ull
#define CTRL_CMD_REG_S 0
#define CTRL_CMD_REG(x) ((((long)(x)) << CTRL_CMD_REG_S) & \
CTRL_CMD_REG_M)
#define CTRL_CMD_REG_S 0
#define CTRL_CMD_REG(x) ((((long)(x)) << CTRL_CMD_REG_S) & \
CTRL_CMD_REG_M)
+@@ -461,6 +522,16 @@ extern void *pasemi_dma_alloc_buf(struct
extern void pasemi_dma_free_buf(struct pasemi_dmachan *chan, int size,
dma_addr_t *handle);
extern void pasemi_dma_free_buf(struct pasemi_dmachan *chan, int size,
dma_addr_t *handle);
--- a/include/asm-powerpc/pci-bridge.h
+++ b/include/asm-powerpc/pci-bridge.h
--- a/include/asm-powerpc/pci-bridge.h
+++ b/include/asm-powerpc/pci-bridge.h
+@@ -117,7 +117,7 @@ struct pci_controller {
+@@ -235,7 +235,7 @@ extern void pcibios_fixup_new_pci_device
extern int pcibios_remove_root_bus(struct pci_controller *phb);
extern int pcibios_remove_root_bus(struct pci_controller *phb);
--- a/include/asm-powerpc/pgtable-ppc32.h
+++ b/include/asm-powerpc/pgtable-ppc32.h
--- a/include/asm-powerpc/pgtable-ppc32.h
+++ b/include/asm-powerpc/pgtable-ppc32.h
+@@ -98,9 +98,6 @@ extern int icache_44x_need_flush;
#define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE)
#define FIRST_USER_ADDRESS 0
#define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE)
#define FIRST_USER_ADDRESS 0
#define pte_ERROR(e) \
printk("%s:%d: bad pte %llx.\n", __FILE__, __LINE__, \
(unsigned long long)pte_val(e))
#define pte_ERROR(e) \
printk("%s:%d: bad pte %llx.\n", __FILE__, __LINE__, \
(unsigned long long)pte_val(e))
+@@ -420,7 +417,8 @@ extern int icache_44x_need_flush;
#define _PAGE_IO (_PAGE_KERNEL | _PAGE_NO_CACHE | _PAGE_GUARDED)
#define _PAGE_RAM (_PAGE_KERNEL | _PAGE_HWEXEC)
#define _PAGE_IO (_PAGE_KERNEL | _PAGE_NO_CACHE | _PAGE_GUARDED)
#define _PAGE_RAM (_PAGE_KERNEL | _PAGE_HWEXEC)
/* We want the debuggers to be able to set breakpoints anywhere, so
* don't write protect the kernel text */
#define _PAGE_RAM_TEXT _PAGE_RAM
/* We want the debuggers to be able to set breakpoints anywhere, so
* don't write protect the kernel text */
#define _PAGE_RAM_TEXT _PAGE_RAM
+@@ -692,7 +690,7 @@ extern pgprot_t phys_mem_access_prot(str
#define pmd_page_vaddr(pmd) \
((unsigned long) (pmd_val(pmd) & PAGE_MASK))
#define pmd_page(pmd) \
#define pmd_page_vaddr(pmd) \
((unsigned long) (pmd_val(pmd) & PAGE_MASK))
#define pmd_page(pmd) \
+#endif /* __ASM_POWERPC_PPC4xx_H__ */
--- a/include/asm-powerpc/ps3.h
+++ b/include/asm-powerpc/ps3.h
+#endif /* __ASM_POWERPC_PPC4xx_H__ */
--- a/include/asm-powerpc/ps3.h
+++ b/include/asm-powerpc/ps3.h
+@@ -434,8 +434,11 @@ struct ps3_sys_manager_ops {
};
void ps3_sys_manager_register_ops(const struct ps3_sys_manager_ops *ops);
};
void ps3_sys_manager_register_ops(const struct ps3_sys_manager_ops *ops);
const char *name;
--- a/include/asm-powerpc/ptrace.h
+++ b/include/asm-powerpc/ptrace.h
const char *name;
--- a/include/asm-powerpc/ptrace.h
+++ b/include/asm-powerpc/ptrace.h
+@@ -58,6 +58,11 @@ struct pt_regs {
#define __ARCH_WANT_COMPAT_SYS_PTRACE
#define STACK_FRAME_OVERHEAD 112 /* size of minimum stack frame */
#define __ARCH_WANT_COMPAT_SYS_PTRACE
#define STACK_FRAME_OVERHEAD 112 /* size of minimum stack frame */
/* Size of dummy stack frame allocated when calling signal handler. */
#define __SIGNAL_FRAMESIZE 128
/* Size of dummy stack frame allocated when calling signal handler. */
#define __SIGNAL_FRAMESIZE 128
+@@ -66,6 +71,10 @@ struct pt_regs {
#else /* __powerpc64__ */
#define STACK_FRAME_OVERHEAD 16 /* size of minimum stack frame */
#else /* __powerpc64__ */
#define STACK_FRAME_OVERHEAD 16 /* size of minimum stack frame */
#define __SIGNAL_FRAMESIZE 64
--- a/include/asm-powerpc/qe.h
+++ b/include/asm-powerpc/qe.h
#define __SIGNAL_FRAMESIZE 64
--- a/include/asm-powerpc/qe.h
+++ b/include/asm-powerpc/qe.h
+@@ -85,6 +85,7 @@ extern int par_io_data_set(u8 port, u8 p
/* QE internal API */
int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input);
enum qe_clock qe_clock_source(const char *source);
/* QE internal API */
int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input);
enum qe_clock qe_clock_source(const char *source);
int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier);
int qe_get_snum(void);
void qe_put_snum(u8 snum);
int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier);
int qe_get_snum(void);
void qe_put_snum(u8 snum);
+@@ -92,7 +93,16 @@ unsigned long qe_muram_alloc(int size, i
int qe_muram_free(unsigned long offset);
unsigned long qe_muram_alloc_fixed(unsigned long offset, int size);
void qe_muram_dump(void);
int qe_muram_free(unsigned long offset);
unsigned long qe_muram_alloc_fixed(unsigned long offset, int size);
void qe_muram_dump(void);
*
--- a/include/asm-powerpc/rwsem.h
+++ b/include/asm-powerpc/rwsem.h
*
--- a/include/asm-powerpc/rwsem.h
+++ b/include/asm-powerpc/rwsem.h
+@@ -32,11 +32,20 @@ struct rw_semaphore {
#define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
spinlock_t wait_lock;
struct list_head wait_list;
#define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
spinlock_t wait_lock;
struct list_head wait_list;
#define DECLARE_RWSEM(name) \
struct rw_semaphore name = __RWSEM_INITIALIZER(name)
#define DECLARE_RWSEM(name) \
struct rw_semaphore name = __RWSEM_INITIALIZER(name)
+@@ -46,12 +55,15 @@ extern struct rw_semaphore *rwsem_down_w
extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);
extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
+@@ -78,7 +90,7 @@ static inline int __down_read_trylock(st
+@@ -88,6 +100,11 @@ static inline void __down_write(struct r
rwsem_down_write_failed(sem);
}
rwsem_down_write_failed(sem);
}
#define __HAVE_ARCH_STRCAT
#define __HAVE_ARCH_MEMSET
#define __HAVE_ARCH_MEMCPY
#define __HAVE_ARCH_STRCAT
#define __HAVE_ARCH_MEMSET
#define __HAVE_ARCH_MEMCPY
+@@ -18,6 +19,7 @@ extern char * strcpy(char *,const char *
extern char * strncpy(char *,const char *, __kernel_size_t);
extern __kernel_size_t strlen(const char *);
extern int strcmp(const char *,const char *);
extern char * strncpy(char *,const char *, __kernel_size_t);
extern __kernel_size_t strlen(const char *);
extern int strcmp(const char *,const char *);
extern void * memcpy(void *,const void *,__kernel_size_t);
--- a/include/asm-powerpc/types.h
+++ b/include/asm-powerpc/types.h
extern void * memcpy(void *,const void *,__kernel_size_t);
--- a/include/asm-powerpc/types.h
+++ b/include/asm-powerpc/types.h
+@@ -84,6 +84,13 @@ typedef unsigned long long u64;
typedef __vector128 vector128;
typedef __vector128 vector128;
+#endif /* _LINUX_LMB_H */
--- a/include/linux/of.h
+++ b/include/linux/of.h
+#endif /* _LINUX_LMB_H */
--- a/include/linux/of.h
+++ b/include/linux/of.h
+@@ -62,6 +62,7 @@ extern struct property *of_find_property
int *lenp);
extern int of_device_is_compatible(const struct device_node *device,
const char *);
int *lenp);
extern int of_device_is_compatible(const struct device_node *device,
const char *);
+#endif /* __LINUX_OF_I2C_H */
--- a/lib/Kconfig
+++ b/lib/Kconfig
+#endif /* __LINUX_OF_I2C_H */
--- a/lib/Kconfig
+++ b/lib/Kconfig
+@@ -141,4 +141,7 @@ config HAS_DMA
config CHECK_SIGNATURE
bool
config CHECK_SIGNATURE
bool
endmenu
--- a/lib/Makefile
+++ b/lib/Makefile
endmenu
--- a/lib/Makefile
+++ b/lib/Makefile
+@@ -70,6 +70,8 @@ obj-$(CONFIG_FAULT_INJECTION) += fault-i
lib-$(CONFIG_GENERIC_BUG) += bug.o
lib-$(CONFIG_GENERIC_BUG) += bug.o
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
+@@ -58,6 +58,7 @@ static struct usb_driver usb_serial_driv
static int debug;
static struct usb_serial *serial_table[SERIAL_TTY_MINORS]; /* initially all NULL */
static DEFINE_MUTEX(table_lock);
static int debug;
static struct usb_serial *serial_table[SERIAL_TTY_MINORS]; /* initially all NULL */
static DEFINE_MUTEX(table_lock);
+@@ -903,7 +904,7 @@ int usb_serial_probe(struct usb_interfac
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
port->bulk_in_size = buffer_size;
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
port->bulk_in_buffer = kmalloc (buffer_size, GFP_KERNEL);
port->bulk_in_size = buffer_size;
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
port->bulk_in_buffer = kmalloc (buffer_size, GFP_KERNEL);
+@@ -1315,3 +1316,5 @@ MODULE_LICENSE("GPL");
module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");
module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");
--- a/init/main.c
+++ b/init/main.c
--- a/init/main.c
+++ b/init/main.c
+@@ -775,7 +775,7 @@ static int noinline init_post(void)
numa_default_policy();
if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
numa_default_policy();
if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
--- a/fs/jffs2/erase.c
+++ b/fs/jffs2/erase.c
--- a/fs/jffs2/erase.c
+++ b/fs/jffs2/erase.c
+@@ -35,6 +35,8 @@ static void jffs2_erase_block(struct jff
{
int ret;
uint32_t bad_offset;
{
int ret;
uint32_t bad_offset;
#ifdef __ECOS
ret = jffs2_flash_erase(c, jeb);
if (!ret) {
#ifdef __ECOS
ret = jffs2_flash_erase(c, jeb);
if (!ret) {
+@@ -47,6 +49,11 @@ static void jffs2_erase_block(struct jff
D1(printk(KERN_DEBUG "jffs2_erase_block(): erase block %#08x (range %#08x-%#08x)\n",
jeb->offset, jeb->offset, jeb->offset + c->sector_size));
D1(printk(KERN_DEBUG "jffs2_erase_block(): erase block %#08x (range %#08x-%#08x)\n",
jeb->offset, jeb->offset, jeb->offset + c->sector_size));
#include <linux/types.h>
#ifdef __KERNEL__
#include <linux/types.h>
#ifdef __KERNEL__
+@@ -232,4 +236,6 @@ struct itimerval {
*/
#define TIMER_ABSTIME 0x01
*/
#define TIMER_ABSTIME 0x01
#ifdef __KERNEL__
#define DECLARE_BITMAP(name,bits) \
#ifdef __KERNEL__
#define DECLARE_BITMAP(name,bits) \
+@@ -161,6 +169,8 @@ typedef unsigned long blkcnt_t;
#endif /* __KERNEL_STRICT_NAMES */
#endif /* __KERNEL_STRICT_NAMES */
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
+@@ -93,6 +93,9 @@ check-lxdialog := $(srctree)/$(src)/lxd
# we really need to do so. (Do not call gcc as part of make mrproper)
HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
# we really need to do so. (Do not call gcc as part of make mrproper)
HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
--- a/drivers/net/wireless/hostap/hostap_ap.c
+++ b/drivers/net/wireless/hostap/hostap_ap.c
--- a/drivers/net/wireless/hostap/hostap_ap.c
+++ b/drivers/net/wireless/hostap/hostap_ap.c
+@@ -2397,13 +2397,13 @@ int prism2_ap_get_sta_qual(local_info_t
addr[count].sa_family = ARPHRD_ETHER;
memcpy(addr[count].sa_data, sta->addr, ETH_ALEN);
if (sta->last_rx_silence == 0)
addr[count].sa_family = ARPHRD_ETHER;
memcpy(addr[count].sa_data, sta->addr, ETH_ALEN);
if (sta->last_rx_silence == 0)
qual[count].updated = sta->last_rx_updated;
sta->last_rx_updated = IW_QUAL_DBM;
qual[count].updated = sta->last_rx_updated;
sta->last_rx_updated = IW_QUAL_DBM;
+@@ -2468,13 +2468,13 @@ int prism2_ap_translate_scan(struct net_
memset(&iwe, 0, sizeof(iwe));
iwe.cmd = IWEVQUAL;
if (sta->last_rx_silence == 0)
memset(&iwe, 0, sizeof(iwe));
iwe.cmd = IWEVQUAL;
if (sta->last_rx_silence == 0)
#endif /* HOSTAP_CONFIG_H */
--- a/drivers/net/wireless/hostap/hostap.h
+++ b/drivers/net/wireless/hostap/hostap.h
#endif /* HOSTAP_CONFIG_H */
--- a/drivers/net/wireless/hostap/hostap.h
+++ b/drivers/net/wireless/hostap/hostap.h
+@@ -89,6 +89,7 @@ extern const struct iw_handler_def hosta
extern const struct ethtool_ops prism2_ethtool_ops;
int hostap_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
extern const struct ethtool_ops prism2_ethtool_ops;
int hostap_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
#endif /* HOSTAP_H */
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
#endif /* HOSTAP_H */
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
+@@ -933,6 +933,7 @@ static int hfa384x_set_rid(struct net_de
--- a/drivers/net/wireless/hostap/hostap_info.c
+++ b/drivers/net/wireless/hostap/hostap_info.c
--- a/drivers/net/wireless/hostap/hostap_info.c
+++ b/drivers/net/wireless/hostap/hostap_info.c
+@@ -434,6 +434,11 @@ static void handle_info_queue_linkstatus
}
/* Get BSSID if we have a valid AP address */
}
/* Get BSSID if we have a valid AP address */
netif_carrier_on(local->ddev);
--- a/drivers/net/wireless/hostap/hostap_ioctl.c
+++ b/drivers/net/wireless/hostap/hostap_ioctl.c
netif_carrier_on(local->ddev);
--- a/drivers/net/wireless/hostap/hostap_ioctl.c
+++ b/drivers/net/wireless/hostap/hostap_ioctl.c
+@@ -1500,23 +1500,20 @@ static int prism2_txpower_hfa386x_to_dBm
return (unsigned char) tmp;
}
return (unsigned char) tmp;
}
+@@ -4076,3 +4073,35 @@ int hostap_ioctl(struct net_device *dev,
--- a/include/linux/stddef.h
+++ b/include/linux/stddef.h
--- a/include/linux/stddef.h
+++ b/include/linux/stddef.h
+@@ -16,6 +16,7 @@ enum {
#undef offsetof
#ifdef __compiler_offsetof
#undef offsetof
#ifdef __compiler_offsetof
+@@ -23,6 +24,5 @@ enum {
#else
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif
#else
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif
--- a/scripts/gen_initramfs_list.sh
+++ b/scripts/gen_initramfs_list.sh
--- a/scripts/gen_initramfs_list.sh
+++ b/scripts/gen_initramfs_list.sh
+@@ -125,7 +125,7 @@ parse() {
str="${ftype} ${name} ${location} ${str}"
;;
"nod")
str="${ftype} ${name} ${location} ${str}"
;;
"nod")
local maj=`field 5 ${dev}`
local min=`field 6 ${dev}`
maj=${maj%,}
local maj=`field 5 ${dev}`
local min=`field 6 ${dev}`
maj=${maj%,}
+@@ -135,7 +135,7 @@ parse() {
str="${ftype} ${name} ${str} ${dev} ${maj} ${min}"
;;
"slink")
str="${ftype} ${name} ${str} ${dev} ${maj} ${min}"
;;
"slink")
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
+@@ -627,12 +627,10 @@ static int __devinit m25p_probe(struct s
struct mtd_partition *parts = NULL;
int nr_parts = 0;
struct mtd_partition *parts = NULL;
int nr_parts = 0;
-Index: linux-2.6.25.17/include/linux/spi/spi_gpio.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.25.17/include/linux/spi/spi_gpio.h 2008-10-18 23:32:31.000000000 +0200
+--- /dev/null
++++ b/include/linux/spi/spi_gpio.h
@@ -0,0 +1,72 @@
+/*
+ * spi_gpio interface to platform code
@@ -0,0 +1,72 @@
+/*
+ * spi_gpio interface to platform code
+int spi_gpio_next_id(void);
+
+#endif /* _LINUX_SPI_SPI_GPIO */
+int spi_gpio_next_id(void);
+
+#endif /* _LINUX_SPI_SPI_GPIO */
-Index: linux-2.6.25.17/drivers/spi/spi_gpio.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.25.17/drivers/spi/spi_gpio.c 2008-10-18 23:31:27.000000000 +0200
+--- /dev/null
++++ b/drivers/spi/spi_gpio.c
@@ -0,0 +1,249 @@
+/*
+ * Bitbanging SPI bus driver using GPIO API
@@ -0,0 +1,249 @@
+/*
+ * Bitbanging SPI bus driver using GPIO API
+MODULE_AUTHOR("Piot Skamruk <piotr.skamruk at gmail.com>");
+MODULE_DESCRIPTION("Platform independent GPIO bitbanging SPI driver");
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Piot Skamruk <piotr.skamruk at gmail.com>");
+MODULE_DESCRIPTION("Platform independent GPIO bitbanging SPI driver");
+MODULE_LICENSE("GPL v2");
-Index: linux-2.6.25.17/drivers/spi/Kconfig
-===================================================================
---- linux-2.6.25.17.orig/drivers/spi/Kconfig 2008-10-18 23:30:41.000000000 +0200
-+++ linux-2.6.25.17/drivers/spi/Kconfig 2008-10-18 23:30:43.000000000 +0200
+--- a/drivers/spi/Kconfig
++++ b/drivers/spi/Kconfig
@@ -100,6 +100,19 @@ config SPI_BUTTERFLY
inexpensive battery powered microcontroller evaluation board.
This same cable can be used to flash new firmware.
@@ -100,6 +100,19 @@ config SPI_BUTTERFLY
inexpensive battery powered microcontroller evaluation board.
This same cable can be used to flash new firmware.
config SPI_IMX
tristate "Freescale iMX SPI controller"
depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL
config SPI_IMX
tristate "Freescale iMX SPI controller"
depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL
-Index: linux-2.6.25.17/drivers/spi/Makefile
-===================================================================
---- linux-2.6.25.17.orig/drivers/spi/Makefile 2008-10-18 23:30:41.000000000 +0200
-+++ linux-2.6.25.17/drivers/spi/Makefile 2008-10-18 23:30:43.000000000 +0200
+--- a/drivers/spi/Makefile
++++ b/drivers/spi/Makefile
@@ -16,6 +16,7 @@ obj-$(CONFIG_SPI_BFIN) += spi_bfin5xx.
obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o
obj-$(CONFIG_SPI_AU1550) += au1550_spi.o
@@ -16,6 +16,7 @@ obj-$(CONFIG_SPI_BFIN) += spi_bfin5xx.
obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o
obj-$(CONFIG_SPI_AU1550) += au1550_spi.o
-Index: linux-2.6.25.17/drivers/mmc/host/gpiommc.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.25.17/drivers/mmc/host/gpiommc.c 2008-10-18 23:33:54.000000000 +0200
+--- /dev/null
++++ b/drivers/mmc/host/gpiommc.c
@@ -0,0 +1,605 @@
+/*
+ * Driver an MMC/SD card on a bitbanging GPIO SPI bus.
@@ -0,0 +1,605 @@
+/*
+ * Driver an MMC/SD card on a bitbanging GPIO SPI bus.
+ platform_driver_unregister(&gpiommc_plat_driver);
+}
+module_exit(gpiommc_modexit);
+ platform_driver_unregister(&gpiommc_plat_driver);
+}
+module_exit(gpiommc_modexit);
-Index: linux-2.6.25.17/drivers/mmc/host/Kconfig
-===================================================================
---- linux-2.6.25.17.orig/drivers/mmc/host/Kconfig 2008-10-18 23:30:41.000000000 +0200
-+++ linux-2.6.25.17/drivers/mmc/host/Kconfig 2008-10-18 23:32:54.000000000 +0200
+--- a/drivers/mmc/host/Kconfig
++++ b/drivers/mmc/host/Kconfig
@@ -130,3 +130,27 @@ config MMC_SPI
If unsure, or if your system has no SPI master driver, say N.
@@ -130,3 +130,27 @@ config MMC_SPI
If unsure, or if your system has no SPI master driver, say N.
+ help
+ This option automatically enables configfs support for gpiommc
+ if configfs is available.
+ help
+ This option automatically enables configfs support for gpiommc
+ if configfs is available.
-Index: linux-2.6.25.17/drivers/mmc/host/Makefile
-===================================================================
---- linux-2.6.25.17.orig/drivers/mmc/host/Makefile 2008-10-18 23:30:41.000000000 +0200
-+++ linux-2.6.25.17/drivers/mmc/host/Makefile 2008-10-18 23:32:54.000000000 +0200
+--- a/drivers/mmc/host/Makefile
++++ b/drivers/mmc/host/Makefile
@@ -17,4 +17,4 @@ obj-$(CONFIG_MMC_OMAP) += omap.o
obj-$(CONFIG_MMC_AT91) += at91_mci.o
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
obj-$(CONFIG_MMC_SPI) += mmc_spi.o
-
+obj-$(CONFIG_GPIOMMC) += gpiommc.o
@@ -17,4 +17,4 @@ obj-$(CONFIG_MMC_OMAP) += omap.o
obj-$(CONFIG_MMC_AT91) += at91_mci.o
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
obj-$(CONFIG_MMC_SPI) += mmc_spi.o
-
+obj-$(CONFIG_GPIOMMC) += gpiommc.o
-Index: linux-2.6.25.17/include/linux/mmc/gpiommc.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.25.17/include/linux/mmc/gpiommc.h 2008-10-18 23:34:21.000000000 +0200
+--- /dev/null
++++ b/include/linux/mmc/gpiommc.h
@@ -0,0 +1,69 @@
+/*
+ * Device driver for MMC/SD cards driven over a GPIO bus.
@@ -0,0 +1,69 @@
+/*
+ * Device driver for MMC/SD cards driven over a GPIO bus.
+int gpiommc_next_id(void);
+
+#endif /* LINUX_GPIOMMC_H_ */
+int gpiommc_next_id(void);
+
+#endif /* LINUX_GPIOMMC_H_ */
-Index: linux-2.6.25.17/Documentation/gpiommc.txt
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.25.17/Documentation/gpiommc.txt 2008-10-18 23:32:54.000000000 +0200
+--- /dev/null
++++ b/Documentation/gpiommc.txt
@@ -0,0 +1,97 @@
+GPIOMMC - Driver for an MMC/SD card on a bitbanging GPIO SPI bus
+================================================================
@@ -0,0 +1,97 @@
+GPIOMMC - Driver for an MMC/SD card on a bitbanging GPIO SPI bus
+================================================================
The gpiommc configfs context structure needs locking, as configfs
does not lock access between files.
The gpiommc configfs context structure needs locking, as configfs
does not lock access between files.
-Index: linux-2.6.25.17/drivers/mmc/host/gpiommc.c
-===================================================================
---- linux-2.6.25.17.orig/drivers/mmc/host/gpiommc.c 2008-10-18 23:33:54.000000000 +0200
-+++ linux-2.6.25.17/drivers/mmc/host/gpiommc.c 2008-10-18 23:34:33.000000000 +0200
+--- a/drivers/mmc/host/gpiommc.c
++++ b/drivers/mmc/host/gpiommc.c
@@ -140,6 +140,8 @@ struct gpiommc_configfs_device {
struct platform_device *pdev;
/* The configuration */
@@ -140,6 +140,8 @@ struct gpiommc_configfs_device {
struct platform_device *pdev;
/* The configuration */
---
--- a/include/asm-ppc/io.h
+++ b/include/asm-ppc/io.h
---
--- a/include/asm-ppc/io.h
+++ b/include/asm-ppc/io.h
+@@ -413,11 +413,21 @@ static inline unsigned int ioread16(void
static inline void iowrite8(u8 val, void __iomem *addr)
{
writeb(val, addr);
static inline void iowrite8(u8 val, void __iomem *addr)
{
writeb(val, addr);
+@@ -428,11 +438,21 @@ static inline void iowrite16(u16 val, vo
#
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
#
#
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
#
+@@ -381,13 +381,13 @@ ks8695p ARCH_KS8695P KS8695P 363
se4000 ARCH_SE4000 SE4000 364
quadriceps ARCH_QUADRICEPS QUADRICEPS 365
bronco ARCH_BRONCO BRONCO 366
se4000 ARCH_SE4000 SE4000 364
quadriceps ARCH_QUADRICEPS QUADRICEPS 365
bronco ARCH_BRONCO BRONCO 366
rcube ARCH_RCUBE RCUBE 374
rea_olv ARCH_REA_OLV REA_OLV 375
pxa_iphone ARCH_PXA_IPHONE PXA_IPHONE 376
rcube ARCH_RCUBE RCUBE 374
rea_olv ARCH_REA_OLV REA_OLV 375
pxa_iphone ARCH_PXA_IPHONE PXA_IPHONE 376
+@@ -1463,7 +1463,7 @@ artemis MACH_ARTEMIS ARTEMIS 1462
htctitan MACH_HTCTITAN HTCTITAN 1463
qranium MACH_QRANIUM QRANIUM 1464
adx_wsc2 MACH_ADX_WSC2 ADX_WSC2 1465
htctitan MACH_HTCTITAN HTCTITAN 1463
qranium MACH_QRANIUM QRANIUM 1464
adx_wsc2 MACH_ADX_WSC2 ADX_WSC2 1465
bboard MACH_BBOARD BBOARD 1467
cambria MACH_CAMBRIA CAMBRIA 1468
mt7xxx MACH_MT7XXX MT7XXX 1469
bboard MACH_BBOARD BBOARD 1467
cambria MACH_CAMBRIA CAMBRIA 1468
mt7xxx MACH_MT7XXX MT7XXX 1469
+@@ -1611,3 +1611,112 @@ kb9263 MACH_KB9263 KB9263 1612
mt7108 MACH_MT7108 MT7108 1613
smtr2440 MACH_SMTR2440 SMTR2440 1614
manao MACH_MANAO MANAO 1615
mt7108 MACH_MT7108 MT7108 1613
smtr2440 MACH_SMTR2440 SMTR2440 1614
manao MACH_MANAO MANAO 1615
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
+@@ -593,3 +593,6 @@ config CRYPTO_LZO
source "drivers/crypto/Kconfig"
endif # if CRYPTO
source "drivers/crypto/Kconfig"
endif # if CRYPTO
+
--- a/crypto/Makefile
+++ b/crypto/Makefile
+
--- a/crypto/Makefile
+++ b/crypto/Makefile
+@@ -65,6 +65,8 @@ obj-$(CONFIG_CRYPTO_LZO) += lzo.o
obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o
obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o
* All of these routines try to estimate how many bits of randomness a
* particular randomness source. They do this by keeping track of the
* first and second order deltas of the event timings.
* All of these routines try to estimate how many bits of randomness a
* particular randomness source. They do this by keeping track of the
* first and second order deltas of the event timings.
+@@ -669,6 +679,61 @@ void add_disk_randomness(struct gendisk
/*********************************************************************
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
/*********************************************************************
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
+@@ -202,6 +202,7 @@ asmlinkage long sys_dup(unsigned int fil
ret = dupfd(file, 0, 0);
return ret;
}
ret = dupfd(file, 0, 0);
return ret;
}
struct rand_pool_info {
int entropy_count;
int buf_size;
struct rand_pool_info {
int entropy_count;
int buf_size;
+@@ -48,6 +73,10 @@ extern void add_input_randomness(unsigne
unsigned int value);
extern void add_interrupt_randomness(int irq);
unsigned int value);
extern void add_interrupt_randomness(int irq);
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
+@@ -68,6 +68,9 @@ static void gpio_ensure_requested(struct
if (test_and_set_bit(FLAG_REQUESTED, &desc->flags) == 0) {
pr_warning("GPIO-%d autorequested\n", (int)(desc - gpio_desc));
desc_set_label(desc, "[auto]");
if (test_and_set_bit(FLAG_REQUESTED, &desc->flags) == 0) {
pr_warning("GPIO-%d autorequested\n", (int)(desc - gpio_desc));
desc_set_label(desc, "[auto]");
+@@ -177,6 +180,9 @@ int gpio_request(unsigned gpio, const ch
if (desc->chip == NULL)
goto done;
if (desc->chip == NULL)
goto done;
/* NOTE: gpio_request() can be called in early boot,
* before IRQs are enabled.
*/
/* NOTE: gpio_request() can be called in early boot,
* before IRQs are enabled.
*/
+@@ -184,8 +190,10 @@ int gpio_request(unsigned gpio, const ch
if (test_and_set_bit(FLAG_REQUESTED, &desc->flags) == 0) {
desc_set_label(desc, label ? : "?");
status = 0;
if (test_and_set_bit(FLAG_REQUESTED, &desc->flags) == 0) {
desc_set_label(desc, label ? : "?");
status = 0;
+@@ -209,9 +217,10 @@ void gpio_free(unsigned gpio)
spin_lock_irqsave(&gpio_lock, flags);
desc = &gpio_desc[gpio];
spin_lock_irqsave(&gpio_lock, flags);
desc = &gpio_desc[gpio];
/**
* struct gpio_chip - abstract a GPIO controller
/**
* struct gpio_chip - abstract a GPIO controller
+@@ -48,6 +49,7 @@ struct seq_file;
*/
struct gpio_chip {
char *label;
*/
struct gpio_chip {
char *label;
--- a/Documentation/gpio.txt
+++ b/Documentation/gpio.txt
--- a/Documentation/gpio.txt
+++ b/Documentation/gpio.txt
+@@ -107,6 +107,16 @@ type of GPIO controller, and on one part
The numbers need not be contiguous; either of those platforms could also
use numbers 2000-2063 to identify GPIOs in a bank of I2C GPIO expanders.
The numbers need not be contiguous; either of those platforms could also
use numbers 2000-2063 to identify GPIOs in a bank of I2C GPIO expanders.
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
+@@ -99,7 +99,7 @@ int gpiochip_add(struct gpio_chip *chip)
* dynamic allocation. We don't currently support that.
*/
* dynamic allocation. We don't currently support that.
*/
status = -EINVAL;
goto fail;
}
status = -EINVAL;
goto fail;
}
+@@ -174,7 +174,7 @@ int gpio_request(unsigned gpio, const ch
spin_lock_irqsave(&gpio_lock, flags);
spin_lock_irqsave(&gpio_lock, flags);
goto done;
desc = &gpio_desc[gpio];
if (desc->chip == NULL)
goto done;
desc = &gpio_desc[gpio];
if (desc->chip == NULL)
+@@ -209,7 +209,7 @@ void gpio_free(unsigned gpio)
unsigned long flags;
struct gpio_desc *desc;
unsigned long flags;
struct gpio_desc *desc;
WARN_ON(extra_checks);
return;
}
WARN_ON(extra_checks);
return;
}
+@@ -245,7 +245,7 @@ const char *gpiochip_is_requested(struct
{
unsigned gpio = chip->base + offset;
{
unsigned gpio = chip->base + offset;
return NULL;
if (test_bit(FLAG_REQUESTED, &gpio_desc[gpio].flags) == 0)
return NULL;
return NULL;
if (test_bit(FLAG_REQUESTED, &gpio_desc[gpio].flags) == 0)
return NULL;
+@@ -276,7 +276,7 @@ int gpio_direction_input(unsigned gpio)
spin_lock_irqsave(&gpio_lock, flags);
spin_lock_irqsave(&gpio_lock, flags);
goto fail;
chip = desc->chip;
if (!chip || !chip->get || !chip->direction_input)
goto fail;
chip = desc->chip;
if (!chip || !chip->get || !chip->direction_input)
+@@ -314,7 +314,7 @@ int gpio_direction_output(unsigned gpio,
spin_lock_irqsave(&gpio_lock, flags);
spin_lock_irqsave(&gpio_lock, flags);
goto fail;
chip = desc->chip;
if (!chip || !chip->set || !chip->direction_output)
goto fail;
chip = desc->chip;
if (!chip || !chip->set || !chip->direction_output)
+@@ -531,7 +531,7 @@ static int gpiolib_show(struct seq_file
/* REVISIT this isn't locked against gpio_chip removal ... */
/* REVISIT this isn't locked against gpio_chip removal ... */
struct seq_file;
struct module;
struct seq_file;
struct module;
+@@ -99,6 +105,16 @@ extern int __gpio_cansleep(unsigned gpio
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
+@@ -80,6 +80,33 @@ static inline struct gpio_chip *gpio_to_
return gpio_desc[gpio].chip;
}
return gpio_desc[gpio].chip;
}
/**
* gpiochip_add() - register a gpio_chip
* @chip: the chip to register, with chip->base initialized
/**
* gpiochip_add() - register a gpio_chip
* @chip: the chip to register, with chip->base initialized
+@@ -88,38 +115,49 @@ static inline struct gpio_chip *gpio_to_
* Returns a negative errno if the chip can't be registered, such as
* because the chip->base is invalid or already associated with a
* different chip. Otherwise it returns zero as a success code.
* Returns a negative errno if the chip can't be registered, such as
* because the chip->base is invalid or already associated with a
* different chip. Otherwise it returns zero as a success code.
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
+@@ -43,6 +43,7 @@ struct gpio_desc {
/* flag symbols are bit numbers */
#define FLAG_REQUESTED 0
#define FLAG_IS_OUT 1
/* flag symbols are bit numbers */
#define FLAG_REQUESTED 0
#define FLAG_IS_OUT 1
#ifdef CONFIG_DEBUG_FS
const char *label;
#ifdef CONFIG_DEBUG_FS
const char *label;
+@@ -88,9 +89,10 @@ static int gpiochip_find_base(int ngpio)
int base = -ENOSPC;
for (i = ARCH_NR_GPIOS - 1; i >= 0 ; i--) {
int base = -ENOSPC;
for (i = ARCH_NR_GPIOS - 1; i >= 0 ; i--) {
spare++;
if (spare == ngpio) {
base = i;
spare++;
if (spare == ngpio) {
base = i;
+@@ -98,7 +100,8 @@ static int gpiochip_find_base(int ngpio)
+@@ -108,6 +111,47 @@ static int gpiochip_find_base(int ngpio)
* Context: potentially before irqs or kmalloc will work
--- a/include/asm-generic/gpio.h
+++ b/include/asm-generic/gpio.h
* Context: potentially before irqs or kmalloc will work
--- a/include/asm-generic/gpio.h
+++ b/include/asm-generic/gpio.h
+@@ -74,6 +74,7 @@ struct gpio_chip {
extern const char *gpiochip_is_requested(struct gpio_chip *chip,
unsigned offset);
extern const char *gpiochip_is_requested(struct gpio_chip *chip,
unsigned offset);
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
+@@ -127,7 +127,7 @@ int __init gpiochip_reserve(int start, i
unsigned long flags;
int i;
unsigned long flags;
int i;
return -EINVAL;
spin_lock_irqsave(&gpio_lock, flags);
return -EINVAL;
spin_lock_irqsave(&gpio_lock, flags);
+@@ -170,7 +170,7 @@ int gpiochip_add(struct gpio_chip *chip)
unsigned id;
int base = chip->base;
unsigned id;
int base = chip->base;
&& base >= 0) {
status = -EINVAL;
goto fail;
&& base >= 0) {
status = -EINVAL;
goto fail;
+@@ -207,7 +207,7 @@ fail:
/* failures here can mean systems won't boot... */
if (status)
pr_err("gpiochip_add: gpios %d..%d (%s) not registered\n",
/* failures here can mean systems won't boot... */
if (status)
pr_err("gpiochip_add: gpios %d..%d (%s) not registered\n",
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
+@@ -166,14 +166,19 @@ static struct usb_device_id id_table []
{ USB_DEVICE(0x1199, 0x6815) }, /* Sierra Wireless MC8775 */
{ USB_DEVICE(0x03f0, 0x1e1d) }, /* HP hs2300 a.k.a MC8775 */
{ USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */
{ USB_DEVICE(0x1199, 0x6815) }, /* Sierra Wireless MC8775 */
{ USB_DEVICE(0x03f0, 0x1e1d) }, /* HP hs2300 a.k.a MC8775 */
{ USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */
BOARD:=ps3
BOARDNAME:=Sony PS3 Game Console
BOARD:=ps3
BOARDNAME:=Sony PS3 Game Console
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
FEATURES:=squashfs jffs2 ext2 vdi
SUBTARGETS=generic
FEATURES:=squashfs jffs2 ext2 vdi
SUBTARGETS=generic
-LINUX_VERSION:=2.6.25.17
+LINUX_VERSION:=2.6.25.19
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += kmod-natsemi kmod-ne2k-pci
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += kmod-natsemi kmod-ne2k-pci