--- a/arch/arm/common/vic.c
+++ b/arch/arm/common/vic.c
-@@ -69,12 +69,12 @@
+@@ -69,12 +69,12 @@ void __init vic_init(void __iomem *base,
/*
* Make sure we clear all existing interrupts
*/
}
for (i = 0; i < 16; i++) {
-@@ -82,7 +82,7 @@
+@@ -82,7 +82,7 @@ void __init vic_init(void __iomem *base,
writel(VIC_VECT_CNTL_ENABLE | i, reg);
}
+CONFIG_HAS_DMA=y
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -498,6 +498,13 @@
+@@ -498,6 +498,13 @@ config ARCH_S3C2410
BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
the Samsung SMDK2410 development board (and derivatives).
config ARCH_SHARK
bool "Shark"
select ISA
-@@ -590,6 +597,7 @@
+@@ -590,6 +597,7 @@ source "arch/arm/mach-orion5x/Kconfig"
source "arch/arm/mach-kirkwood/Kconfig"
source "arch/arm/plat-s3c24xx/Kconfig"
source "arch/arm/plat-s3c/Kconfig"
if ARCH_S3C2410
-@@ -601,6 +609,11 @@
+@@ -601,6 +609,11 @@ source "arch/arm/mach-s3c2442/Kconfig"
source "arch/arm/mach-s3c2443/Kconfig"
endif
source "arch/arm/mach-lh7a40x/Kconfig"
source "arch/arm/mach-imx/Kconfig"
-@@ -1256,6 +1269,8 @@
+@@ -1256,6 +1269,8 @@ source "drivers/usb/Kconfig"
source "drivers/uwb/Kconfig"
source "drivers/mmc/Kconfig"
source "drivers/memstick/Kconfig"
-@@ -1268,6 +1283,8 @@
+@@ -1268,6 +1283,8 @@ source "drivers/rtc/Kconfig"
source "drivers/dma/Kconfig"
source "drivers/auxdisplay/Kconfig"
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
-@@ -106,6 +106,8 @@
+@@ -106,6 +106,8 @@ SECTIONS
*(.got) /* Global offset table */
}
+ resume_dependency, int uart_index);
--- a/arch/arm/mach-s3c2410/include/mach/spi-gpio.h
+++ b/arch/arm/mach-s3c2410/include/mach/spi-gpio.h
-@@ -21,7 +21,15 @@
+@@ -21,7 +21,15 @@ struct s3c2410_spigpio_info {
int num_chipselect;
int bus_num;
--- a/arch/arm/mach-s3c2410/include/mach/spi.h
+++ b/arch/arm/mach-s3c2410/include/mach/spi.h
-@@ -22,5 +22,12 @@
+@@ -22,5 +22,12 @@ struct s3c2410_spi_info {
void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol);
};
-#endif /* __ASM_ARCH_VMALLOC_H */
--- a/arch/arm/mach-s3c2410/Kconfig
+++ b/arch/arm/mach-s3c2410/Kconfig
-@@ -9,6 +9,7 @@
+@@ -9,6 +9,7 @@ config CPU_S3C2410
depends on ARCH_S3C2410
select S3C2410_CLOCK
select S3C2410_GPIO
select CPU_LLSERIAL_S3C2410
select S3C2410_PM if PM
help
-@@ -32,11 +33,6 @@
+@@ -32,11 +33,6 @@ config S3C2410_GPIO
help
GPIO code for S3C2410 and similar processors
config SIMTEC_NOR
bool
help
-@@ -49,6 +45,12 @@
+@@ -49,6 +45,12 @@ config MACH_BAST_IDE
Internal node for machines with an BAST style IDE
interface
menu "S3C2410 Machines"
config ARCH_SMDK2410
-@@ -84,6 +86,7 @@
+@@ -84,6 +86,7 @@ config ARCH_BAST
select PM_SIMTEC if PM
select SIMTEC_NOR
select MACH_BAST_IDE
select ISA
help
Say Y here if you are using the Simtec Electronics EB2410ITX
-@@ -121,6 +124,7 @@
+@@ -121,6 +124,7 @@ config MACH_TCT_HAMMER
config MACH_VR1000
bool "Thorcom VR1000"
select PM_SIMTEC if PM
select SIMTEC_NOR
select MACH_BAST_IDE
select CPU_S3C2410
-@@ -130,7 +134,16 @@
+@@ -130,7 +134,16 @@ config MACH_VR1000
config MACH_QT2410
bool "QT2410"
select CPU_S3C2410
#include <plat/devs.h>
#include <plat/cpu.h>
-@@ -150,7 +151,7 @@
+@@ -150,7 +151,7 @@ static struct platform_device *amlm5900_
#endif
&s3c_device_adc,
&s3c_device_wdt,
&s3c_device_usb,
&s3c_device_rtc,
&s3c_device_usbgadget,
-@@ -233,6 +234,7 @@
+@@ -233,6 +234,7 @@ static void __init amlm5900_init(void)
#ifdef CONFIG_FB_S3C2410
s3c24xx_fb_set_platdata(&amlm5900_fb_info);
#endif
#include <mach/fb.h>
#include <linux/mtd/mtd.h>
-@@ -406,7 +406,7 @@
+@@ -406,7 +406,7 @@ static struct platform_device bast_sio =
* standard 100KHz i2c bus frequency
*/
.flags = 0,
.slave_addr = 0x10,
.bus_freq = 100*1000,
-@@ -553,7 +553,7 @@
+@@ -553,7 +553,7 @@ static struct platform_device *bast_devi
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_rtc,
&s3c_device_nand,
&bast_device_dm9k,
-@@ -588,7 +588,8 @@
+@@ -588,7 +588,8 @@ static void __init bast_map_io(void)
s3c24xx_register_clocks(bast_clocks, ARRAY_SIZE(bast_clocks));
s3c_device_nand.dev.platform_data = &bast_nand_info;
#include <plat/pm.h>
static struct map_desc h1940_iodesc[] __initdata = {
-@@ -129,6 +131,11 @@
+@@ -129,6 +131,11 @@ static struct s3c2410_udc_mach_info h194
.vbus_pin_inverted = 1,
};
/**
* Set lcd on or off
-@@ -183,9 +190,10 @@
+@@ -183,9 +190,10 @@ static struct platform_device *h1940_dev
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_leds,
&s3c_device_bluetooth,
};
-@@ -201,7 +209,7 @@
+@@ -201,7 +209,7 @@ static void __init h1940_map_io(void)
#ifdef CONFIG_PM_H1940
memcpy(phys_to_virt(H1940_SUSPEND_RESUMEAT), h1940_pm_return, 1024);
#endif
}
static void __init h1940_init_irq(void)
-@@ -214,7 +222,9 @@
+@@ -214,7 +222,9 @@ static void __init h1940_init(void)
u32 tmp;
s3c24xx_fb_set_platdata(&h1940_fb_info);
/* Turn off suspend on both USB ports, and switch the
* selectable USB port to USB device mode. */
-@@ -223,10 +233,9 @@
+@@ -223,10 +233,9 @@ static void __init h1940_init(void)
S3C2410_MISCCR_USBSUSPND0 |
S3C2410_MISCCR_USBSUSPND1, 0x0);
static struct map_desc n30_iodesc[] __initdata = {
/* nothing here yet */
-@@ -320,7 +320,7 @@
+@@ -320,7 +320,7 @@ static struct s3c2410fb_mach_info n30_fb
static struct platform_device *n30_devices[] __initdata = {
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
&s3c_device_usb,
&s3c_device_usbgadget,
-@@ -332,7 +332,7 @@
+@@ -332,7 +332,7 @@ static struct platform_device *n30_devic
static struct platform_device *n35_devices[] __initdata = {
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
&s3c_device_usbgadget,
&n35_button_device,
-@@ -501,7 +501,7 @@
+@@ -501,7 +501,7 @@ static void __init n30_init_irq(void)
static void __init n30_init(void)
{
s3c24xx_fb_set_platdata(&n30_fb_info);
#include <plat/cpu.h>
static struct map_desc otom11_iodesc[] __initdata = {
-@@ -94,7 +95,7 @@
+@@ -94,7 +95,7 @@ static struct platform_device *otom11_de
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
&s3c_device_rtc,
&otom_device_nor,
-@@ -109,6 +110,7 @@
+@@ -109,6 +110,7 @@ static void __init otom11_map_io(void)
static void __init otom11_init(void)
{
#include <plat/common-smdk.h>
#include <plat/devs.h>
-@@ -213,7 +214,7 @@
+@@ -213,7 +214,7 @@ static struct platform_device qt2410_led
/* SPI */
{
switch (cs) {
case BITBANG_CS_ACTIVE:
-@@ -247,7 +248,7 @@
+@@ -247,7 +248,7 @@ static struct platform_device *qt2410_de
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
&s3c_device_sdi,
&s3c_device_usbgadget,
-@@ -320,6 +321,24 @@
+@@ -320,6 +321,24 @@ static int __init qt2410_tft_setup(char
__setup("tft=", qt2410_tft_setup);
static void __init qt2410_map_io(void)
{
s3c24xx_init_io(qt2410_iodesc, ARRAY_SIZE(qt2410_iodesc));
-@@ -349,11 +368,12 @@
+@@ -349,11 +368,12 @@ static void __init qt2410_machine_init(v
s3c2410_gpio_setpin(S3C2410_GPB0, 1);
s3c24xx_udc_set_platdata(&qt2410_udc_cfg);
#include <plat/devs.h>
#include <plat/cpu.h>
-@@ -89,7 +90,7 @@
+@@ -89,7 +90,7 @@ static struct platform_device *smdk2410_
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
};
-@@ -102,6 +103,7 @@
+@@ -102,6 +103,7 @@ static void __init smdk2410_map_io(void)
static void __init smdk2410_init(void)
{
#include <plat/devs.h>
#include <plat/cpu.h>
-@@ -127,7 +128,7 @@
+@@ -127,7 +128,7 @@ static struct s3c2410_uartcfg tct_hammer
static struct platform_device *tct_hammer_devices[] __initdata = {
&s3c_device_adc,
&s3c_device_wdt,
&s3c_device_usb,
&s3c_device_rtc,
&s3c_device_usbgadget,
-@@ -146,6 +147,7 @@
+@@ -146,6 +147,7 @@ static void __init tct_hammer_map_io(voi
static void __init tct_hammer_init(void)
{
#include "usb-simtec.h"
#include "nor-simtec.h"
-@@ -334,7 +335,7 @@
+@@ -334,7 +335,7 @@ static struct platform_device *vr1000_de
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_adc,
&serial_device,
&vr1000_dm9k0,
-@@ -384,6 +385,7 @@
+@@ -384,6 +385,7 @@ static void __init vr1000_map_io(void)
static void __init vr1000_init(void)
{
i2c_register_board_info(0, vr1000_i2c_devs,
--- a/arch/arm/mach-s3c2410/Makefile
+++ b/arch/arm/mach-s3c2410/Makefile
-@@ -15,7 +15,8 @@
+@@ -15,7 +15,8 @@ obj-$(CONFIG_CPU_S3C2410_DMA) += dma.o
obj-$(CONFIG_CPU_S3C2410_DMA) += dma.o
obj-$(CONFIG_S3C2410_PM) += pm.o sleep.o
obj-$(CONFIG_S3C2410_GPIO) += gpio.o
# Machine support
-@@ -38,3 +39,5 @@
+@@ -38,3 +39,5 @@ obj-$(CONFIG_SIMTEC_NOR) += nor-simtec.o
# machine additions
obj-$(CONFIG_MACH_BAST_IDE) += bast-ide.o
/* Initial IO mappings */
-@@ -59,25 +63,28 @@
+@@ -59,25 +63,28 @@ void __init s3c2410_init_uarts(struct s3
* machine specific initialisation.
*/
tmp = __raw_readl(S3C2410_CLKDIVN);
-@@ -95,7 +102,13 @@
+@@ -95,7 +102,13 @@ void __init s3c2410_init_clocks(int xtal
* console to use them
*/
--- a/arch/arm/mach-s3c2412/clock.c
+++ b/arch/arm/mach-s3c2412/clock.c
-@@ -93,12 +93,6 @@
+@@ -93,12 +93,6 @@ static int s3c2412_upll_enable(struct cl
/* clock selections */
static struct clk clk_erefclk = {
.name = "erefclk",
.id = -1,
-@@ -773,5 +767,6 @@
+@@ -773,5 +767,6 @@ int __init s3c2412_baseclk_add(void)
s3c2412_clkcon_enable(clkp, 0);
}
static struct map_desc jive_iodesc[] __initdata = {
};
-@@ -450,14 +451,14 @@
+@@ -450,14 +451,14 @@ static struct spi_board_info __initdata
/* I2C bus and device configuration. */
[0] = {
I2C_BOARD_INFO("lis302dl", 0x1c),
.irq = IRQ_EINT14,
-@@ -470,7 +471,7 @@
+@@ -470,7 +471,7 @@ static struct platform_device *jive_devi
&s3c_device_usb,
&s3c_device_rtc,
&s3c_device_wdt,
&s3c_device_lcd,
&jive_device_lcdspi,
&jive_device_wm8750,
-@@ -492,7 +493,7 @@
+@@ -492,7 +493,7 @@ static int jive_pm_suspend(struct sys_de
* correct address to resume from. */
__raw_writel(0x2BED, S3C2412_INFORM0);
return 0;
}
-@@ -628,7 +629,7 @@
+@@ -628,7 +629,7 @@ static void __init jive_machine_init(voi
/* initialise the power management now we've setup everything. */
s3c_device_nand.dev.platform_data = &jive_nand_info;
-@@ -663,7 +664,7 @@
+@@ -663,7 +664,7 @@ static void __init jive_machine_init(voi
spi_register_board_info(jive_spi_devs, ARRAY_SIZE(jive_spi_devs));
#include <mach/fb.h>
#include <plat/s3c2410.h>
-@@ -105,7 +106,7 @@
+@@ -105,7 +106,7 @@ static struct platform_device *smdk2413_
&s3c_device_usb,
//&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
&s3c_device_usbgadget,
};
-@@ -142,6 +143,7 @@
+@@ -142,6 +143,7 @@ static void __init smdk2413_machine_init
s3c24xx_udc_set_platdata(&smdk2413_udc_cfg);
#include <plat/s3c2410.h>
#include <plat/s3c2412.h>
-@@ -122,7 +123,7 @@
+@@ -122,7 +123,7 @@ static struct s3c2410_platform_nand vstm
static struct platform_device *vstms_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_wdt,
&s3c_device_iis,
&s3c_device_rtc,
&s3c_device_nand,
-@@ -151,6 +152,7 @@
+@@ -151,6 +152,7 @@ static void __init vstms_map_io(void)
static void __init vstms_init(void)
{
--- a/arch/arm/mach-s3c2412/pm.c
+++ b/arch/arm/mach-s3c2412/pm.c
-@@ -85,7 +85,7 @@
+@@ -85,7 +85,7 @@ static struct sleep_save s3c2412_sleep[]
static int s3c2412_pm_suspend(struct sys_device *dev, pm_message_t state)
{
return 0;
}
-@@ -98,7 +98,7 @@
+@@ -98,7 +98,7 @@ static int s3c2412_pm_resume(struct sys_
tmp |= S3C2412_PWRCFG_STANDBYWFI_IDLE;
__raw_writel(tmp, S3C2412_PWRCFG);
#ifndef CONFIG_CPU_S3C2412_ONLY
void __iomem *s3c24xx_va_gpio2 = S3C24XX_VA_GPIO;
-@@ -136,7 +140,7 @@
+@@ -136,7 +140,7 @@ static void s3c2412_hard_reset(void)
* machine specific initialisation.
*/
{
/* move base of IO */
-@@ -153,20 +157,25 @@
+@@ -153,20 +157,25 @@ void __init s3c2412_map_io(struct map_de
/* register our io-tables */
iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc));
clk_mpll.rate = fclk;
-@@ -183,11 +192,17 @@
+@@ -183,11 +192,17 @@ void __init s3c2412_init_clocks(int xtal
printk("S3C2412: core %ld.%03ld MHz, memory %ld.%03ld MHz, peripheral %ld.%03ld MHz\n",
print_mhz(fclk), print_mhz(hclk), print_mhz(pclk));
s3c2412_baseclk_add();
}
-@@ -216,5 +231,8 @@
+@@ -216,5 +231,8 @@ int __init s3c2412_init(void)
{
printk("S3C2412: Initialising architecture\n");
+#endif /* _LINUX_FIQ_C_ISR_H */
--- a/arch/arm/mach-s3c2440/Kconfig
+++ b/arch/arm/mach-s3c2440/Kconfig
-@@ -22,12 +22,20 @@
+@@ -22,12 +22,20 @@ config S3C2440_DMA
help
Support for S3C2440 specific DMA code5A
select PM_SIMTEC if PM
select HAVE_PATA_PLATFORM
help
-@@ -37,6 +45,7 @@
+@@ -37,6 +45,7 @@ config MACH_ANUBIS
config MACH_OSIRIS
bool "Simtec IM2440D20 (OSIRIS) module"
select CPU_S3C2440
select PM_SIMTEC if PM
help
Say Y here if you are using the Simtec IM2440D20 module, also
-@@ -74,5 +83,30 @@
+@@ -74,5 +83,30 @@ config MACH_AT2440EVB
help
Say Y here if you are using the AT2440EVB development board
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
-@@ -404,7 +405,7 @@
+@@ -404,7 +405,7 @@ static struct platform_device *anubis_de
&s3c_device_usb,
&s3c_device_wdt,
&s3c_device_adc,
&s3c_device_rtc,
&s3c_device_nand,
&anubis_device_ide0,
-@@ -468,6 +469,7 @@
+@@ -468,6 +469,7 @@ static void __init anubis_map_io(void)
static void __init anubis_init(void)
{
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
-@@ -166,7 +167,7 @@
+@@ -166,7 +167,7 @@ static struct platform_device *at2440evb
&s3c_device_usb,
&s3c_device_wdt,
&s3c_device_adc,
&s3c_device_rtc,
&s3c_device_nand,
&at2440evb_device_eth,
-@@ -183,6 +184,7 @@
+@@ -183,6 +184,7 @@ static void __init at2440evb_map_io(void
static void __init at2440evb_init(void)
{
#include <plat/s3c2410.h>
#include <plat/s3c2440.h>
-@@ -107,7 +108,7 @@
+@@ -107,7 +108,7 @@ static struct platform_device *nexcoder_
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
&s3c_device_rtc,
&s3c_device_camif,
-@@ -142,6 +143,7 @@
+@@ -142,6 +143,7 @@ static void __init nexcoder_map_io(void)
static void __init nexcoder_init(void)
{
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
-@@ -335,7 +336,7 @@
+@@ -335,7 +336,7 @@ static struct i2c_board_info osiris_i2c_
/* Standard Osiris devices */
static struct platform_device *osiris_devices[] __initdata = {
&s3c_device_wdt,
&s3c_device_nand,
&osiris_pcmcia,
-@@ -398,6 +399,8 @@
+@@ -398,6 +399,8 @@ static void __init osiris_init(void)
sysdev_class_register(&osiris_pm_sysclass);
sysdev_register(&osiris_pm_sysdev);
#include <mach/fb.h>
#include <plat/clock.h>
-@@ -179,7 +179,7 @@
+@@ -179,7 +179,7 @@ static struct platform_device *rx3715_de
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
&s3c_device_nand,
};
-@@ -203,7 +203,7 @@
+@@ -203,7 +203,7 @@ static void __init rx3715_init_machine(v
#ifdef CONFIG_PM_H1940
memcpy(phys_to_virt(H1940_SUSPEND_RESUMEAT), h1940_pm_return, 1024);
#endif
#include <plat/s3c2410.h>
#include <plat/s3c2440.h>
-@@ -152,7 +153,7 @@
+@@ -152,7 +153,7 @@ static struct platform_device *smdk2440_
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_iis,
};
-@@ -166,6 +167,7 @@
+@@ -166,6 +167,7 @@ static void __init smdk2440_map_io(void)
static void __init smdk2440_machine_init(void)
{
s3c24xx_fb_set_platdata(&smdk2440_fb_info);
smdk_machine_init();
--- a/arch/arm/mach-s3c2440/Makefile
+++ b/arch/arm/mach-s3c2440/Makefile
-@@ -13,6 +13,7 @@
+@@ -13,6 +13,7 @@ obj-$(CONFIG_CPU_S3C2440) += s3c2440.o d
obj-$(CONFIG_CPU_S3C2440) += irq.o
obj-$(CONFIG_CPU_S3C2440) += clock.o
obj-$(CONFIG_S3C2440_DMA) += dma.o
# Machine support
-@@ -22,3 +23,6 @@
+@@ -22,3 +23,6 @@ obj-$(CONFIG_MACH_RX3715) += mach-rx3715
obj-$(CONFIG_ARCH_S3C2440) += mach-smdk2440.o
obj-$(CONFIG_MACH_NEXCODER_2440) += mach-nexcoder.o
obj-$(CONFIG_MACH_AT2440EVB) += mach-at2440evb.o
+
--- a/arch/arm/mach-s3c2440/s3c2440.c
+++ b/arch/arm/mach-s3c2440/s3c2440.c
-@@ -46,6 +46,9 @@
+@@ -46,6 +46,9 @@ int __init s3c2440_init(void)
s3c_device_wdt.resource[1].start = IRQ_S3C2440_WDT;
s3c_device_wdt.resource[1].end = IRQ_S3C2440_WDT;
static struct sys_device s3c2442_sysdev = {
.cls = &s3c2442_sysclass,
-@@ -30,5 +31,8 @@
+@@ -30,5 +31,8 @@ int __init s3c2442_init(void)
{
printk("S3C2442: Initialising architecture\n");
#include <plat/s3c2443.h>
#include <plat/clock.h>
#include <plat/cpu.h>
-@@ -145,12 +147,6 @@
+@@ -145,12 +147,6 @@ static unsigned long s3c2443_roundrate_c
/* clock selections */
static struct clk clk_mpllref = {
.name = "mpllref",
.parent = &clk_xtal,
-@@ -165,14 +161,6 @@
+@@ -165,14 +161,6 @@ static struct clk clk_mpll = {
};
#endif
static struct clk clk_i2s_ext = {
.name = "i2s-ext",
.id = -1,
-@@ -1011,22 +999,20 @@
+@@ -1011,22 +999,20 @@ static struct clk *clks[] __initdata = {
&clk_prediv,
};
pll = s3c2443_get_mpll(mpllcon, xtal);
clk_msysclk.rate = pll;
-@@ -1036,13 +1022,29 @@
+@@ -1036,13 +1022,29 @@ void __init s3c2443_init_clocks(int xtal
hclk /= s3c2443_get_hdiv(clkdiv0);
pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1);
s3c2443_clk_initparents();
for (ptr = 0; ptr < ARRAY_SIZE(clks); ptr++) {
-@@ -1056,7 +1058,7 @@
+@@ -1056,7 +1058,7 @@ void __init s3c2443_init_clocks(int xtal
}
clk_epll.rate = s3c2443_get_epll(epllcon, xtal);
clk_usb_bus.parent = &clk_usb_bus_host;
/* ensure usb bus clock is within correct rate of 48MHz */
-@@ -1105,4 +1107,6 @@
+@@ -1105,4 +1107,6 @@ void __init s3c2443_init_clocks(int xtal
(clkp->enable)(clkp, 0);
}
[0] = (x) | DMA_CH_VALID, \
--- a/arch/arm/mach-s3c2443/Kconfig
+++ b/arch/arm/mach-s3c2443/Kconfig
-@@ -24,6 +24,7 @@
+@@ -24,6 +24,7 @@ config MACH_SMDK2443
bool "SMDK2443"
select CPU_S3C2443
select MACH_SMDK
#include <plat/s3c2410.h>
#include <plat/s3c2440.h>
-@@ -103,8 +104,8 @@
+@@ -103,8 +104,8 @@ static struct s3c2410_uartcfg smdk2443_u
static struct platform_device *smdk2443_devices[] __initdata = {
&s3c_device_wdt,
};
static void __init smdk2443_map_io(void)
-@@ -116,6 +117,7 @@
+@@ -116,6 +117,7 @@ static void __init smdk2443_map_io(void)
static void __init smdk2443_machine_init(void)
{
}
--- a/arch/arm/mach-s3c2443/s3c2443.c
+++ b/arch/arm/mach-s3c2443/s3c2443.c
-@@ -81,10 +81,9 @@
+@@ -81,10 +81,9 @@ void __init s3c2443_init_uarts(struct s3
* machine specific initialisation.
*/
+}
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
-@@ -121,7 +121,10 @@
+@@ -121,7 +121,10 @@ endif
machine-$(CONFIG_ARCH_OMAP3) := omap2
plat-$(CONFIG_ARCH_OMAP) := omap
machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2400 s3c2412 s3c2440 s3c2442 s3c2443
machine-$(CONFIG_ARCH_IMX) := imx
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
-@@ -183,14 +183,14 @@
+@@ -183,14 +183,14 @@ config CPU_ARM926T
depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || \
MACH_VERSATILE_AB || ARCH_OMAP730 || \
ARCH_OMAP16XX || MACH_REALVIEW_EB || \
ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || \
ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || \
ARCH_AT91SAM9G20 || ARCH_AT91CAP9 || \
-@@ -400,9 +400,10 @@
+@@ -400,9 +400,10 @@ config CPU_FEROCEON_OLD_ID
# ARMv6
config CPU_V6
bool "Support ARM V6 processor"
#ifndef __ASSEMBLY__
/* struct s3c24xx_uart_clksrc
-@@ -224,7 +243,7 @@
+@@ -224,7 +243,7 @@ struct s3c2410_uartcfg {
* or platform_add_device() before the console_initcall()
*/
+#endif /* __PLAT_S3C_SDHCI_H */
--- a/arch/arm/plat-s3c/include/plat/uncompress.h
+++ b/arch/arm/plat-s3c/include/plat/uncompress.h
-@@ -28,7 +28,7 @@
+@@ -28,7 +28,7 @@ static void arch_detect_cpu(void);
/* defines for UART registers */
#include <plat/regs-serial.h>
/* working in physical space... */
#undef S3C2410_WDOGREG
-@@ -37,7 +37,7 @@
+@@ -37,7 +37,7 @@ static void arch_detect_cpu(void);
/* how many bytes we allow into the FIFO at a time in FIFO mode */
#define FIFO_MAX (14)
static __inline__ void
uart_wr(unsigned int reg, unsigned int val)
-@@ -139,6 +139,28 @@
+@@ -139,6 +139,28 @@ static void arch_decomp_error(const char
static void error(char *err);
static void
arch_decomp_setup(void)
{
-@@ -149,6 +171,12 @@
+@@ -149,6 +171,12 @@ arch_decomp_setup(void)
arch_detect_cpu();
arch_decomp_wdog_start();
select NO_IOPORT
help
Base platform code for any Samsung S3C device
-@@ -16,24 +16,24 @@
+@@ -16,24 +16,24 @@ config PLAT_S3C
config CPU_LLSERIAL_S3C2410_ONLY
bool
help
Selected if there is an S3C2440 (or register compatible) serial
low-level implementation needed
-@@ -57,6 +57,14 @@
+@@ -57,6 +57,14 @@ config S3C_BOOT_ERROR_RESET
Say y here to use the watchdog to reset the system if the
kernel decompressor detects an error during decompression.
comment "Power management"
config S3C2410_PM_DEBUG
-@@ -67,6 +75,15 @@
+@@ -67,6 +75,15 @@ config S3C2410_PM_DEBUG
Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
for more information.
config S3C2410_PM_CHECK
bool "S3C2410 PM Suspend Memory CRC"
depends on PLAT_S3C && PM && CRC32
-@@ -102,3 +119,73 @@
+@@ -102,3 +119,73 @@ config S3C_LOWLEVEL_UART_PORT
such as the `Uncompressing...` at start time. The value of
this configuration should be between zero and two. The port
must have been initialised by the boot-loader before use.
#include <plat/common-smdk.h>
#include <plat/devs.h>
-@@ -201,5 +201,5 @@
+@@ -201,5 +201,5 @@ void __init smdk_machine_init(void)
platform_add_devices(smdk_devs, ARRAY_SIZE(smdk_devs));
/* table of supported CPUs */
static const char name_s3c2400[] = "S3C2400";
-@@ -72,6 +62,7 @@
+@@ -72,6 +62,7 @@ static const char name_s3c2410[] = "S3C
static const char name_s3c2412[] = "S3C2412";
static const char name_s3c2440[] = "S3C2440";
static const char name_s3c2442[] = "S3C2442";
static const char name_s3c2443[] = "S3C2443";
static const char name_s3c2410a[] = "S3C2410A";
static const char name_s3c2440a[] = "S3C2440A";
-@@ -123,6 +114,15 @@
+@@ -123,6 +114,15 @@ static struct cpu_table cpu_ids[] __init
.name = name_s3c2442
},
{
.idcode = 0x32412001,
.idmask = 0xffffffff,
.map_io = s3c2412_map_io,
-@@ -169,23 +169,7 @@
+@@ -169,23 +169,7 @@ static struct map_desc s3c_iodesc[] __in
IODESC_ENT(UART)
};
static unsigned long s3c24xx_read_idcode_v5(void)
{
-@@ -231,6 +215,7 @@
+@@ -231,6 +215,7 @@ void __init s3c24xx_init_io(struct map_d
unsigned long idcode = 0x0;
/* initialise the io descriptors we need for initialisation */
iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc));
if (cpu_architecture() >= CPU_ARCH_ARMv5) {
-@@ -239,117 +224,7 @@
+@@ -239,117 +224,7 @@ void __init s3c24xx_init_io(struct map_d
idcode = s3c24xx_read_idcode_v4();
}
/* Serial port registrations */
-@@ -76,6 +78,19 @@
+@@ -76,6 +78,19 @@ static struct resource s3c2410_uart2_res
}
};
struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = {
[0] = {
.resources = s3c2410_uart0_resource,
-@@ -89,6 +104,10 @@
+@@ -89,6 +104,10 @@ struct s3c24xx_uart_resources s3c2410_ua
.resources = s3c2410_uart2_resource,
.nr_resources = ARRAY_SIZE(s3c2410_uart2_resource),
},
};
/* yart devices */
-@@ -105,13 +124,18 @@
+@@ -105,13 +124,18 @@ static struct platform_device s3c24xx_ua
.id = 2,
};
};
/* USB Host Controller */
-@@ -192,8 +216,8 @@
+@@ -192,8 +216,8 @@ void __init s3c24xx_fb_set_platdata(stru
static struct resource s3c_nand_resource[] = {
[0] = {
.flags = IORESOURCE_MEM,
}
};
-@@ -207,6 +231,23 @@
+@@ -207,6 +231,23 @@ struct platform_device s3c_device_nand =
EXPORT_SYMBOL(s3c_device_nand);
/* USB Device (Gadget)*/
static struct resource s3c_usbgadget_resource[] = {
-@@ -271,31 +312,6 @@
+@@ -271,31 +312,6 @@ struct platform_device s3c_device_wdt =
EXPORT_SYMBOL(s3c_device_wdt);
/* IIS */
static struct resource s3c_iis_resource[] = {
-@@ -382,8 +398,8 @@
+@@ -382,8 +398,8 @@ struct platform_device s3c_device_adc =
static struct resource s3c_sdi_resource[] = {
[0] = {
.flags = IORESOURCE_MEM,
},
[1] = {
-@@ -403,36 +419,6 @@
+@@ -403,36 +419,6 @@ struct platform_device s3c_device_sdi =
EXPORT_SYMBOL(s3c_device_sdi);
void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)
{
-@@ -215,3 +216,423 @@
+@@ -215,3 +216,423 @@ int s3c2410_gpio_irq2pin(unsigned int ir
}
EXPORT_SYMBOL(s3c2410_gpio_irq2pin);
static int s3c24xx_gpiolib_banka_input(struct gpio_chip *chip, unsigned offset)
{
return -EINVAL;
-@@ -125,7 +34,7 @@
+@@ -125,7 +34,7 @@ static int s3c24xx_gpiolib_banka_input(s
static int s3c24xx_gpiolib_banka_output(struct gpio_chip *chip,
unsigned offset, int value)
{
void __iomem *base = ourchip->base;
unsigned long flags;
unsigned long dat;
-@@ -151,9 +60,10 @@
+@@ -151,9 +60,10 @@ static int s3c24xx_gpiolib_banka_output(
return 0;
}
.chip = {
.base = S3C2410_GPA0,
.owner = THIS_MODULE,
-@@ -161,97 +71,87 @@
+@@ -161,97 +71,87 @@ static struct s3c24xx_gpio_chip gpios[]
.ngpio = 24,
.direction_input = s3c24xx_gpiolib_banka_input,
.direction_output = s3c24xx_gpiolib_banka_output,
#define irqdbf(x...)
#define irqdbf2(x...)
-@@ -25,8 +31,15 @@
+@@ -25,8 +31,15 @@ s3c_irqsub_mask(unsigned int irqno, unsi
{
unsigned long mask;
unsigned long submask;
mask = __raw_readl(S3C2410_INTMSK);
submask |= (1UL << (irqno - IRQ_S3CUART_RX0));
-@@ -39,6 +52,9 @@
+@@ -39,6 +52,9 @@ s3c_irqsub_mask(unsigned int irqno, unsi
/* write back masks */
__raw_writel(submask, S3C2410_INTSUBMSK);
}
-@@ -47,8 +63,15 @@
+@@ -47,8 +63,15 @@ s3c_irqsub_unmask(unsigned int irqno, un
{
unsigned long mask;
unsigned long submask;
mask = __raw_readl(S3C2410_INTMSK);
submask &= ~(1UL << (irqno - IRQ_S3CUART_RX0));
-@@ -57,6 +80,9 @@
+@@ -57,6 +80,9 @@ s3c_irqsub_unmask(unsigned int irqno, un
/* write back masks */
__raw_writel(submask, S3C2410_INTSUBMSK);
__raw_writel(mask, S3C2410_INTMSK);
--- a/arch/arm/plat-s3c24xx/include/plat/s3c2443.h
+++ b/arch/arm/plat-s3c24xx/include/plat/s3c2443.h
-@@ -16,7 +16,7 @@
+@@ -16,7 +16,7 @@ struct s3c2410_uartcfg;
extern int s3c2443_init(void);
}
static inline void
-@@ -155,9 +67,19 @@
+@@ -155,9 +67,19 @@ s3c_irq_maskack(unsigned int irqno)
{
unsigned long bitval = 1UL << (irqno - IRQ_EINT0);
unsigned long mask;
__raw_writel(bitval, S3C2410_SRCPND);
__raw_writel(bitval, S3C2410_INTPND);
-@@ -168,15 +90,25 @@
+@@ -168,15 +90,25 @@ static void
s3c_irq_unmask(unsigned int irqno)
{
unsigned long mask;
}
struct irq_chip s3c_irq_level_chip = {
-@@ -589,59 +521,6 @@
+@@ -589,59 +521,6 @@ s3c_irq_demux_extint4t7(unsigned int irq
}
}
/* s3c24xx_init_irq
*
* Initialise S3C2410 IRQ system
-@@ -672,26 +551,26 @@
+@@ -672,26 +551,26 @@ void __init s3c24xx_init_irq(void)
last = 0;
for (i = 0; i < 4; i++) {
help
Support for S3C2440 and S3C2442 Samsung Mobile CPU based systems.
-@@ -49,9 +63,31 @@
+@@ -49,9 +63,31 @@ config S3C2410_DMA_DEBUG
Enable debugging output for the DMA code. This option sends info
to the kernel log, at priority KERN_DEBUG.
endif
--- a/arch/arm/plat-s3c24xx/Makefile
+++ b/arch/arm/plat-s3c24xx/Makefile
-@@ -17,9 +17,8 @@
+@@ -17,9 +17,8 @@ obj-y += irq.o
obj-y += devs.o
obj-y += gpio.o
obj-y += gpiolib.o
# Architecture dependant builds
-@@ -28,7 +27,26 @@
+@@ -28,7 +27,26 @@ obj-$(CONFIG_CPU_S3C244X) += s3c244x-irq
obj-$(CONFIG_CPU_S3C244X) += s3c244x-clock.o
obj-$(CONFIG_PM_SIMTEC) += pm-simtec.o
obj-$(CONFIG_PM) += pm.o
#define PFX "s3c24xx-pm: "
static struct sleep_save core_save[] = {
-@@ -76,371 +67,26 @@
+@@ -76,371 +67,26 @@ static struct sleep_save core_save[] = {
SAVE_ITEM(S3C2410_BANKCON4),
SAVE_ITEM(S3C2410_BANKCON5),
{
unsigned long irqstate;
unsigned long pinstate;
-@@ -455,21 +101,21 @@
+@@ -455,21 +101,21 @@ static void s3c2410_pm_check_resume_pin(
if (!irqstate) {
if (pinstate == S3C2410_GPIO_IRQ)
{
int pin;
-@@ -479,336 +125,24 @@
+@@ -479,336 +125,24 @@ static void s3c2410_pm_configure_extint(
*/
for (pin = S3C2410_GPF0; pin <= S3C2410_GPF7; pin++) {
-}
--- a/arch/arm/plat-s3c24xx/pm-simtec.c
+++ b/arch/arm/plat-s3c24xx/pm-simtec.c
-@@ -61,7 +61,7 @@
+@@ -61,7 +61,7 @@ static __init int pm_simtec_init(void)
__raw_writel(gstatus4, S3C2410_GSTATUS4);
static struct map_desc s3c244x_iodesc[] __initdata = {
IODESC_ENT(CLKPWR),
-@@ -56,32 +59,37 @@
+@@ -56,32 +59,37 @@ void __init s3c244x_init_uarts(struct s3
s3c24xx_init_uartdevs("s3c2440-uart", s3c2410_uart_resources, cfg, no);
}
clkdiv = __raw_readl(S3C2410_CLKDIVN);
camdiv = __raw_readl(S3C2440_CAMDIVN);
-@@ -107,18 +115,24 @@
+@@ -107,18 +115,24 @@ void __init s3c244x_init_clocks(int xtal
}
hclk = fclk / hdiv;
s3c2410_baseclk_add();
}
-@@ -134,13 +148,13 @@
+@@ -134,13 +148,13 @@ static struct sleep_save s3c244x_sleep[]
static int s3c244x_suspend(struct sys_device *dev, pm_message_t state)
{
#include <linux/clk.h>
#include <linux/io.h>
-@@ -102,13 +101,13 @@
+@@ -102,13 +101,13 @@ static int s3c244x_clk_add(struct sys_de
if (clk_get_rate(clock_upll) > (94 * MHZ)) {
clk_usb_bus.rate = clk_get_rate(clock_upll) / 2;
stmfd sp!, { r4 - r12, lr }
@@ store co-processor registers
-@@ -84,7 +84,7 @@
+@@ -84,7 +84,7 @@ resume_with_mmu:
.ltorg
@@ the next bits sit in the .data segment, even though they
@@ accessed by the resume code before it can restore the MMU.
@@ This means that the variable has to be close enough for the
@@ code to read it... since the .text segment needs to be RO,
-@@ -92,19 +92,19 @@
+@@ -92,19 +92,19 @@ resume_with_mmu:
.data
*
* resume code entry for bootloader to call
*
-@@ -113,7 +113,7 @@
+@@ -113,7 +113,7 @@ s3c2410_sleep_save_phys:
* must not write to the code segment (code is read-only)
*/
mov r0, #PSR_I_BIT | PSR_F_BIT | SVC_MODE
msr cpsr_c, r0
-@@ -145,7 +145,7 @@
+@@ -145,7 +145,7 @@ ENTRY(s3c2410_cpu_resume)
mcr p15, 0, r1, c8, c7, 0 @@ invalidate I & D TLBs
mcr p15, 0, r1, c7, c7, 0 @@ invalidate I & D caches
#define TIMER_USEC_SHIFT 16
-@@ -177,11 +183,7 @@
+@@ -177,11 +183,7 @@ static void s3c2410_timer_setup (void)
tcfg1 &= ~S3C2410_TCFG1_MUX4_MASK;
tcfg1 |= S3C2410_TCFG1_MUX4_TCLK1;
} else {
* 70MHz are not values we can directly generate the timer
* value from, we need to pre-scale and divide before using it.
*
-@@ -189,19 +191,9 @@
+@@ -189,19 +191,9 @@ static void s3c2410_timer_setup (void)
* (8.45 ticks per usec)
*/
tcfg1 &= ~S3C2410_TCFG1_MUX4_MASK;
tcfg1 |= S3C2410_TCFG1_MUX4_DIV2;
-@@ -245,16 +237,244 @@
+@@ -245,16 +237,244 @@ static void s3c2410_timer_setup (void)
tcon |= S3C2410_TCON_T4START;
tcon &= ~S3C2410_TCON_T4MANUALUPD;
__raw_writel(tcon, S3C2410_TCON);
+
--- a/Documentation/arm/Samsung-S3C24XX/Suspend.txt
+++ b/Documentation/arm/Samsung-S3C24XX/Suspend.txt
-@@ -40,13 +40,13 @@
+@@ -40,13 +40,13 @@ Resuming
Machine Support
---------------
needs to setup anything else for power management support.
There is currently no support for over-riding the default method of
-@@ -74,7 +74,7 @@
+@@ -74,7 +74,7 @@ statuc void __init machine_init(void)
enable_irq_wake(IRQ_EINT0);
+#endif /* _WMI_HOST_H_ */
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
-@@ -141,6 +141,29 @@
+@@ -141,6 +141,29 @@ void bus_remove_file(struct bus_type *bu
}
EXPORT_SYMBOL_GPL(bus_remove_file);
};
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
-@@ -55,6 +55,11 @@
+@@ -55,6 +55,11 @@ static inline int device_is_not_partitio
*/
const char *dev_driver_string(const struct device *dev)
{
(dev->class ? dev->class->name : ""));
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
-@@ -69,9 +69,9 @@
+@@ -69,9 +69,9 @@ void device_pm_unlock(void)
*/
void device_pm_add(struct device *dev)
{
if (dev->parent->power.status >= DPM_SUSPENDING)
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
-@@ -66,6 +66,18 @@
+@@ -66,6 +66,18 @@ config VT_CONSOLE
If unsure, say Y.
/* i2c controller state */
-@@ -64,6 +62,7 @@
+@@ -64,6 +62,7 @@ struct s3c24xx_i2c {
unsigned int msg_ptr;
unsigned int tx_setup;
enum s3c24xx_i2c_state state;
unsigned long clkrate;
-@@ -71,7 +70,6 @@
+@@ -71,7 +70,6 @@ struct s3c24xx_i2c {
void __iomem *regs;
struct clk *clk;
struct device *dev;
struct resource *ioarea;
struct i2c_adapter adap;
-@@ -80,16 +78,7 @@
+@@ -80,16 +78,7 @@ struct s3c24xx_i2c {
#endif
};
/* s3c24xx_i2c_is2440()
*
-@@ -103,21 +92,6 @@
+@@ -103,21 +92,6 @@ static inline int s3c24xx_i2c_is2440(str
return !strcmp(pdev->name, "s3c2440-i2c");
}
/* s3c24xx_i2c_master_complete
*
* complete the message and wake up the caller, using the given return code,
-@@ -130,7 +104,7 @@
+@@ -130,7 +104,7 @@ static inline void s3c24xx_i2c_master_co
i2c->msg_ptr = 0;
i2c->msg = NULL;
i2c->msg_num = 0;
if (ret)
i2c->msg_idx = ret;
-@@ -141,19 +115,17 @@
+@@ -141,19 +115,17 @@ static inline void s3c24xx_i2c_master_co
static inline void s3c24xx_i2c_disable_ack(struct s3c24xx_i2c *i2c)
{
unsigned long tmp;
}
/* irq enable/disable functions */
-@@ -161,15 +133,23 @@
+@@ -161,15 +133,23 @@ static inline void s3c24xx_i2c_enable_ac
static inline void s3c24xx_i2c_disable_irq(struct s3c24xx_i2c *i2c)
{
unsigned long tmp;
tmp = readl(i2c->regs + S3C2410_IICCON);
writel(tmp | S3C2410_IICCON_IRQEN, i2c->regs + S3C2410_IICCON);
}
-@@ -177,10 +157,10 @@
+@@ -177,10 +157,10 @@ static inline void s3c24xx_i2c_enable_ir
/* s3c24xx_i2c_message_start
*
struct i2c_msg *msg)
{
unsigned int addr = (msg->addr & 0x7f) << 1;
-@@ -199,15 +179,15 @@
+@@ -199,15 +179,15 @@ static void s3c24xx_i2c_message_start(st
if (msg->flags & I2C_M_REV_DIR_ADDR)
addr ^= 1;
/* delay here to ensure the data byte has gotten onto the bus
* before the transaction is started */
-@@ -215,8 +195,8 @@
+@@ -215,8 +195,8 @@ static void s3c24xx_i2c_message_start(st
dev_dbg(i2c->dev, "iiccon, %08lx\n", iiccon);
writel(iiccon, i2c->regs + S3C2410_IICCON);
writel(stat, i2c->regs + S3C2410_IICSTAT);
}
-@@ -227,11 +207,11 @@
+@@ -227,11 +207,11 @@ static inline void s3c24xx_i2c_stop(stru
dev_dbg(i2c->dev, "STOP\n");
/* stop the transfer */
s3c24xx_i2c_master_complete(i2c, ret);
s3c24xx_i2c_disable_irq(i2c);
}
-@@ -241,7 +221,7 @@
+@@ -241,7 +221,7 @@ static inline void s3c24xx_i2c_stop(stru
/* is_lastmsg()
*
*/
static inline int is_lastmsg(struct s3c24xx_i2c *i2c)
-@@ -289,14 +269,14 @@
+@@ -289,14 +269,14 @@ static int i2s_s3c_irq_nextbyte(struct s
case STATE_STOP:
dev_err(i2c->dev, "%s: called in STATE_STOP\n", __func__);
if (iicstat & S3C2410_IICSTAT_LASTBIT &&
!(i2c->msg->flags & I2C_M_IGNORE_NAK)) {
/* ack was not received... */
-@@ -322,7 +302,7 @@
+@@ -322,7 +302,7 @@ static int i2s_s3c_irq_nextbyte(struct s
if (i2c->state == STATE_READ)
goto prepare_read;
* send a byte as well */
case STATE_WRITE:
-@@ -339,7 +319,7 @@
+@@ -339,7 +319,7 @@ static int i2s_s3c_irq_nextbyte(struct s
}
}
if (!is_msgend(i2c)) {
byte = i2c->msg->buf[i2c->msg_ptr++];
-@@ -359,9 +339,9 @@
+@@ -359,9 +339,9 @@ static int i2s_s3c_irq_nextbyte(struct s
dev_dbg(i2c->dev, "WRITE: Next Message\n");
i2c->msg_ptr = 0;
/* check to see if we need to do another message */
if (i2c->msg->flags & I2C_M_NOSTART) {
-@@ -375,7 +355,6 @@
+@@ -375,7 +355,6 @@ static int i2s_s3c_irq_nextbyte(struct s
goto retry_write;
} else {
/* send the new start */
s3c24xx_i2c_message_start(i2c, i2c->msg);
i2c->state = STATE_START;
-@@ -389,7 +368,7 @@
+@@ -389,7 +368,7 @@ static int i2s_s3c_irq_nextbyte(struct s
break;
case STATE_READ:
* something with it, and then work out wether we are
* going to do any more read/write
*/
-@@ -397,13 +376,13 @@
+@@ -397,13 +376,13 @@ static int i2s_s3c_irq_nextbyte(struct s
byte = readb(i2c->regs + S3C2410_IICDS);
i2c->msg->buf[i2c->msg_ptr++] = byte;
} else if (is_msgend(i2c)) {
/* ok, we've read the entire buffer, see if there
* is anything else we need to do */
-@@ -429,7 +408,7 @@
+@@ -429,7 +408,7 @@ static int i2s_s3c_irq_nextbyte(struct s
/* acknowlegde the IRQ and get back on with the work */
out_ack:
tmp &= ~S3C2410_IICCON_IRQPEND;
writel(tmp, i2c->regs + S3C2410_IICCON);
out:
-@@ -450,19 +429,19 @@
+@@ -450,19 +429,19 @@ static irqreturn_t s3c24xx_i2c_irq(int i
status = readl(i2c->regs + S3C2410_IICSTAT);
if (status & S3C2410_IICSTAT_ARBITR) {
/* pretty much this leaves us with the fact that we've
* transmitted or received whatever byte we last sent */
-@@ -485,16 +464,13 @@
+@@ -485,16 +464,13 @@ static int s3c24xx_i2c_set_master(struct
while (timeout-- > 0) {
iicstat = readl(i2c->regs + S3C2410_IICSTAT);
return -ETIMEDOUT;
}
-@@ -503,7 +479,8 @@
+@@ -503,7 +479,8 @@ static int s3c24xx_i2c_set_master(struct
* this starts an i2c transfer
*/
{
unsigned long timeout;
int ret;
-@@ -511,6 +488,15 @@
+@@ -511,6 +488,15 @@ static int s3c24xx_i2c_doxfer(struct s3c
if (i2c->suspended)
return -EIO;
ret = s3c24xx_i2c_set_master(i2c);
if (ret != 0) {
dev_err(i2c->dev, "cannot get bus (error %d)\n", ret);
-@@ -529,12 +515,12 @@
+@@ -529,12 +515,12 @@ static int s3c24xx_i2c_doxfer(struct s3c
s3c24xx_i2c_enable_irq(i2c);
s3c24xx_i2c_message_start(i2c, msgs);
spin_unlock_irq(&i2c->lock);
* noisy when doing an i2cdetect */
if (timeout == 0)
-@@ -591,19 +577,6 @@
+@@ -591,19 +577,6 @@ static const struct i2c_algorithm s3c24x
.functionality = s3c24xx_i2c_func,
};
/* s3c24xx_i2c_calcdivisor
*
* return the divisor settings for a given frequency
-@@ -643,7 +616,7 @@
+@@ -643,7 +616,7 @@ static inline int freq_acceptable(unsign
{
int diff = freq - wanted;
}
/* s3c24xx_i2c_clockrate
-@@ -655,7 +628,7 @@
+@@ -655,7 +628,7 @@ static inline int freq_acceptable(unsign
static int s3c24xx_i2c_clockrate(struct s3c24xx_i2c *i2c, unsigned int *got)
{
unsigned long clkin = clk_get_rate(i2c->clk);
unsigned int divs, div1;
u32 iiccon;
-@@ -663,10 +636,8 @@
+@@ -663,10 +636,8 @@ static int s3c24xx_i2c_clockrate(struct
int start, end;
i2c->clkrate = clkin;
dev_dbg(i2c->dev, "pdata %p, freq %lu %lu..%lu\n",
pdata, pdata->bus_freq, pdata->min_freq, pdata->max_freq);
-@@ -774,7 +745,7 @@
+@@ -774,7 +745,7 @@ static inline void s3c24xx_i2c_deregiste
/* s3c24xx_i2c_init
*
*/
static int s3c24xx_i2c_init(struct s3c24xx_i2c *i2c)
-@@ -785,15 +756,15 @@
+@@ -785,15 +756,15 @@ static int s3c24xx_i2c_init(struct s3c24
/* get the plafrom data */
writeb(pdata->slave_addr, i2c->regs + S3C2410_IICADD);
dev_info(i2c->dev, "slave address 0x%02x\n", pdata->slave_addr);
-@@ -831,12 +802,32 @@
+@@ -831,12 +802,32 @@ static int s3c24xx_i2c_init(struct s3c24
static int s3c24xx_i2c_probe(struct platform_device *pdev)
{
/* find the clock and enable it */
-@@ -878,7 +869,8 @@
+@@ -878,7 +869,8 @@ static int s3c24xx_i2c_probe(struct plat
goto err_ioarea;
}
/* setup info block for the i2c core */
-@@ -892,29 +884,23 @@
+@@ -892,29 +884,23 @@ static int s3c24xx_i2c_probe(struct plat
goto err_iomap;
/* find the IRQ for this unit (note, this relies on the init call to
ret = s3c24xx_i2c_register_cpufreq(i2c);
if (ret < 0) {
dev_err(&pdev->dev, "failed to register cpufreq notifier\n");
-@@ -944,7 +930,7 @@
+@@ -944,7 +930,7 @@ static int s3c24xx_i2c_probe(struct plat
s3c24xx_i2c_deregister_cpufreq(i2c);
err_irq:
err_iomap:
iounmap(i2c->regs);
-@@ -958,6 +944,7 @@
+@@ -958,6 +944,7 @@ static int s3c24xx_i2c_probe(struct plat
clk_put(i2c->clk);
err_noclk:
return ret;
}
-@@ -973,7 +960,7 @@
+@@ -973,7 +960,7 @@ static int s3c24xx_i2c_remove(struct pla
s3c24xx_i2c_deregister_cpufreq(i2c);
i2c_del_adapter(&i2c->adap);
clk_disable(i2c->clk);
clk_put(i2c->clk);
-@@ -982,6 +969,7 @@
+@@ -982,6 +969,7 @@ static int s3c24xx_i2c_remove(struct pla
release_resource(i2c->ioarea);
kfree(i2c->ioarea);
}
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
-@@ -455,11 +455,12 @@
+@@ -455,11 +455,12 @@ config I2C_PXA_SLAVE
I2C bus.
config I2C_S3C2410
tristate "Renesas SH7760 I2C Controller"
--- a/drivers/i2c/chips/Kconfig
+++ b/drivers/i2c/chips/Kconfig
-@@ -53,6 +53,26 @@
+@@ -53,6 +53,26 @@ config SENSORS_EEPROM
This driver can also be built as a module. If so, the module
will be called eeprom.
config SENSORS_PCF8574
tristate "Philips PCF8574 and PCF8574A (DEPRECATED)"
depends on EXPERIMENTAL && GPIO_PCF857X = "n"
-@@ -185,4 +205,23 @@
+@@ -185,4 +205,23 @@ config MCU_MPC8349EMITX
also register MCU GPIOs with the generic GPIO API, so you'll able
to use MCU pins as GPIOs.
endmenu
--- a/drivers/i2c/chips/Makefile
+++ b/drivers/i2c/chips/Makefile
-@@ -15,6 +15,8 @@
+@@ -15,6 +15,8 @@ obj-$(CONFIG_AT24) += at24.o
obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o
obj-$(CONFIG_SENSORS_MAX6875) += max6875.o
obj-$(CONFIG_SENSORS_PCA9539) += pca9539.o
obj-$(CONFIG_SENSORS_PCF8574) += pcf8574.o
obj-$(CONFIG_PCF8575) += pcf8575.o
obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o
-@@ -23,6 +25,8 @@
+@@ -23,6 +25,8 @@ obj-$(CONFIG_TPS65010) += tps65010.o
obj-$(CONFIG_MENELAUS) += menelaus.o
obj-$(CONFIG_SENSORS_TSL2550) += tsl2550.o
obj-$(CONFIG_MCU_MPC8349EMITX) += mcu_mpc8349emitx.o
/* ------------------------------------------------------------------------- */
/* Copyright (C) 1995-99 Simon G. Vogl
-@@ -158,10 +157,16 @@
+@@ -158,10 +157,16 @@ static int i2c_device_suspend(struct dev
if (!dev->driver)
return 0;
}
static int i2c_device_resume(struct device * dev)
-@@ -170,10 +175,16 @@
+@@ -170,10 +175,16 @@ static int i2c_device_resume(struct devi
if (!dev->driver)
return 0;
}
static void i2c_client_release(struct device *dev)
-@@ -1129,11 +1140,11 @@
+@@ -1129,11 +1140,11 @@ static int i2c_probe_address(struct i2c_
int err;
/* Make sure the address is valid */
struct gpio_keys_button *button;
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
-@@ -323,4 +323,21 @@
+@@ -323,4 +323,21 @@ config KEYBOARD_SH_KEYSC
To compile this driver as a module, choose M here: the
module will be called sh_keysc.
endif
--- a/drivers/input/keyboard/Makefile
+++ b/drivers/input/keyboard/Makefile
-@@ -14,6 +14,8 @@
+@@ -14,6 +14,8 @@ obj-$(CONFIG_KEYBOARD_LOCOMO) += locomo
obj-$(CONFIG_KEYBOARD_NEWTON) += newtonkbd.o
obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o
obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o
+MODULE_LICENSE("GPL");
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
-@@ -236,4 +236,25 @@
+@@ -236,4 +236,25 @@ config INPUT_GPIO_BUTTONS
To compile this driver as a module, choose M here: the
module will be called gpio-buttons.
+module_exit(lis302dl_exit);
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
-@@ -22,3 +22,6 @@
+@@ -22,3 +22,6 @@ obj-$(CONFIG_INPUT_UINPUT) += uinput.o
obj-$(CONFIG_INPUT_APANEL) += apanel.o
obj-$(CONFIG_INPUT_SGI_BTNS) += sgi_btns.o
obj-$(CONFIG_INPUT_GPIO_BUTTONS) += gpio_buttons.o
+MODULE_ALIAS("platform:pcf50633-input");
--- a/drivers/input/mousedev.c
+++ b/drivers/input/mousedev.c
-@@ -1016,6 +1016,7 @@
+@@ -1016,6 +1016,7 @@ static const struct input_device_id mous
.evbit = { BIT_MASK(EV_KEY) | BIT_MASK(EV_REL) },
.relbit = { BIT_MASK(REL_WHEEL) },
}, /* A separate scrollwheel */
{
.flags = INPUT_DEVICE_ID_MATCH_EVBIT |
INPUT_DEVICE_ID_MATCH_KEYBIT |
-@@ -1025,6 +1026,7 @@
+@@ -1025,6 +1026,7 @@ static const struct input_device_id mous
.absbit = { BIT_MASK(ABS_X) | BIT_MASK(ABS_Y) },
}, /* A tablet like device, at least touch detection,
two absolute axes */
INPUT_DEVICE_ID_MATCH_KEYBIT |
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
-@@ -11,6 +11,50 @@
+@@ -11,6 +11,50 @@ menuconfig INPUT_TOUCHSCREEN
if INPUT_TOUCHSCREEN
config TOUCHSCREEN_ADS7846
tristate "ADS7846/TSC2046 and ADS7843 based touchscreens"
depends on SPI_MASTER
-@@ -71,6 +115,25 @@
+@@ -71,6 +115,25 @@ config TOUCHSCREEN_FUJITSU
To compile this driver as a module, choose M here: the
module will be called fujitsu-ts.
config TOUCHSCREEN_GUNZE
tristate "Gunze AHL-51S touchscreen"
select SERIO
-@@ -376,4 +439,15 @@
+@@ -376,4 +439,15 @@ config TOUCHSCREEN_TOUCHIT213
To compile this driver as a module, choose M here: the
module will be called touchit213.
+
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
-@@ -31,3 +31,10 @@
+@@ -31,3 +31,10 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9705) +
wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712) += wm9712.o
wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713) += wm9713.o
obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
+};
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
-@@ -107,4 +107,6 @@
+@@ -107,4 +107,6 @@ source "drivers/uio/Kconfig"
source "drivers/xen/Kconfig"
source "drivers/staging/Kconfig"
endmenu
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
-@@ -33,7 +33,7 @@
+@@ -33,7 +33,7 @@ config LEDS_LOCOMO
config LEDS_S3C24XX
tristate "LED Support for Samsung S3C24XX GPIO LEDs"
help
This option enables support for LEDs connected to GPIO lines
on Samsung S3C24XX series CPUs, such as the S3C2410 and S3C2440.
-@@ -171,6 +171,18 @@
+@@ -171,6 +171,18 @@ config LEDS_DA903X
This option enables support for on-chip LED drivers found
on Dialog Semiconductor DA9030/DA9034 PMICs.
config LEDS_TRIGGERS
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
-@@ -56,8 +56,10 @@
+@@ -56,8 +56,10 @@ static ssize_t led_brightness_store(stru
if (count == size) {
ret = count;
+MODULE_LICENSE("GPL");
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
-@@ -24,6 +24,8 @@
+@@ -24,6 +24,8 @@ obj-$(CONFIG_LEDS_FSG) += leds-fsg.o
obj-$(CONFIG_LEDS_PCA955X) += leds-pca955x.o
obj-$(CONFIG_LEDS_DA903X) += leds-da903x.o
obj-$(CONFIG_LEDS_HP_DISK) += leds-hp-disk.o
obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
--- a/drivers/Makefile
+++ b/drivers/Makefile
-@@ -86,6 +86,7 @@
+@@ -86,6 +86,7 @@ obj-$(CONFIG_CPU_IDLE) += cpuidle/
obj-y += idle/
obj-$(CONFIG_MMC) += mmc/
obj-$(CONFIG_MEMSTICK) += memstick/
obj-$(CONFIG_NEW_LEDS) += leds/
obj-$(CONFIG_INFINIBAND) += infiniband/
obj-$(CONFIG_SGI_SN) += sn/
-@@ -98,6 +99,7 @@
+@@ -98,6 +99,7 @@ obj-$(CONFIG_DCA) += dca/
obj-$(CONFIG_HID) += hid/
obj-$(CONFIG_PPC_PS3) += ps3/
obj-$(CONFIG_OF) += of/
+
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
-@@ -153,6 +153,55 @@
+@@ -153,6 +153,55 @@ config MFD_WM8350_I2C
I2C as the control interface. Additional options must be
selected to enable support for the functionality of the chip.
obj-$(CONFIG_HTC_EGPIO) += htc-egpio.o
obj-$(CONFIG_HTC_PASIC3) += htc-pasic3.o
-@@ -31,4 +32,13 @@
+@@ -31,4 +32,13 @@ obj-$(CONFIG_MCP_UCB1200) += ucb1x00-ass
endif
obj-$(CONFIG_UCB1400_CORE) += ucb1400_core.o
+
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
-@@ -401,6 +401,11 @@
+@@ -401,6 +401,11 @@ config THINKPAD_ACPI_HOTKEY_POLL
If you are not sure, say Y here. The driver enables polling only if
it is strictly necessary to do so.
config ATMEL_SSC
tristate "Device driver for Atmel SSC peripheral"
depends on AVR32 || ARCH_AT91
-@@ -500,4 +505,9 @@
+@@ -500,4 +505,9 @@ config SGI_GRU_DEBUG
source "drivers/misc/c2port/Kconfig"
+
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
-@@ -33,3 +33,8 @@
+@@ -33,3 +33,8 @@ obj-$(CONFIG_SGI_XP) += sgi-xp/
obj-$(CONFIG_SGI_GRU) += sgi-gru/
obj-$(CONFIG_HP_ILO) += hpilo.o
obj-$(CONFIG_C2PORT) += c2port/
+MODULE_LICENSE("GPL");
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
-@@ -57,10 +57,11 @@
+@@ -57,10 +57,11 @@ static int mmc_schedule_delayed_work(str
/*
* Internal function. Flush all scheduled work from the MMC work queue.
*/
/**
* mmc_request_done - finish processing an MMC request
-@@ -495,7 +496,13 @@
+@@ -495,7 +496,13 @@ void mmc_set_timing(struct mmc_host *hos
*/
static void mmc_power_up(struct mmc_host *host)
{
if (mmc_host_is_spi(host)) {
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
-@@ -48,6 +48,18 @@
+@@ -48,6 +48,18 @@ config MMC_SDHCI_PCI
If unsure, say N.
depends on MMC_SDHCI_PCI
--- a/drivers/mmc/host/Makefile
+++ b/drivers/mmc/host/Makefile
-@@ -11,6 +11,7 @@
+@@ -11,6 +11,7 @@ obj-$(CONFIG_MMC_PXA) += pxamci.o
obj-$(CONFIG_MMC_IMX) += imxmmc.o
obj-$(CONFIG_MMC_SDHCI) += sdhci.o
obj-$(CONFIG_MMC_SDHCI_PCI) += sdhci-pci.o
#include "s3cmci.h"
-@@ -47,6 +56,9 @@
+@@ -47,6 +56,9 @@ static const int dbgmap_err = dbg_fail
static const int dbgmap_info = dbg_info | dbg_conf;
static const int dbgmap_debug = dbg_err | dbg_debug;
#define dbg(host, channels, args...) \
do { \
if (dbgmap_err & channels) \
-@@ -280,8 +292,11 @@
+@@ -280,8 +292,11 @@ static void do_pio_read(struct s3cmci_ho
* an even multiple of 4. */
if (fifo >= host->pio_bytes)
fifo = host->pio_bytes;
host->pio_bytes -= fifo;
host->pio_count += fifo;
-@@ -353,8 +368,11 @@
+@@ -353,8 +368,11 @@ static void do_pio_write(struct s3cmci_h
* words, so round down to an even multiple of 4. */
if (fifo >= host->pio_bytes)
fifo = host->pio_bytes;
host->pio_bytes -= fifo;
host->pio_count += fifo;
-@@ -373,7 +391,6 @@
+@@ -373,7 +391,6 @@ static void pio_tasklet(unsigned long da
{
struct s3cmci_host *host = (struct s3cmci_host *) data;
disable_irq(host->irq);
if (host->pio_active == XFER_WRITE)
-@@ -614,7 +631,6 @@
+@@ -614,7 +631,6 @@ irq_out:
spin_unlock_irqrestore(&host->complete_lock, iflags);
return IRQ_HANDLED;
}
/*
-@@ -1026,6 +1042,7 @@
+@@ -1026,6 +1042,7 @@ static void s3cmci_send_request(struct m
dbg(host, dbg_err, "data prepare error %d\n", res);
cmd->error = res;
cmd->data->error = res;
mmc_request_done(mmc, mrq);
return;
-@@ -1263,10 +1280,8 @@
+@@ -1263,10 +1280,8 @@ static int __devinit s3cmci_probe(struct
host->is2440 = is2440;
host->pdata = pdev->dev.platform_data;
spin_lock_init(&host->complete_lock);
tasklet_init(&host->pio_tasklet, pio_tasklet, (unsigned long) host);
-@@ -1379,6 +1394,18 @@
+@@ -1379,6 +1394,18 @@ static int __devinit s3cmci_probe(struct
mmc->f_min = host->clk_rate / (host->clk_div * 256);
mmc->f_max = host->clk_rate / host->clk_div;
if (host->pdata->ocr_avail)
mmc->ocr_avail = host->pdata->ocr_avail;
-@@ -1491,18 +1518,60 @@
+@@ -1491,18 +1518,60 @@ static int __devinit s3cmci_2440_probe(s
#ifdef CONFIG_PM
}
#else /* CONFIG_PM */
-@@ -1560,9 +1629,13 @@
+@@ -1560,9 +1629,13 @@ static void __exit s3cmci_exit(void)
module_init(s3cmci_init);
module_exit(s3cmci_exit);
/* FIXME: DMA Resource management ?! */
#define S3CMCI_DMA 0
-@@ -68,6 +71,13 @@
+@@ -68,6 +71,13 @@ struct s3cmci_host {
unsigned int ccnt, dcnt;
struct tasklet_struct pio_tasklet;
#endif
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
-@@ -73,6 +73,11 @@
+@@ -73,6 +73,11 @@ static void sdhci_dumpregs(struct sdhci_
readl(host->ioaddr + SDHCI_CAPABILITIES),
readl(host->ioaddr + SDHCI_MAX_CURRENT));
printk(KERN_DEBUG DRIVER_NAME ": ===========================================\n");
}
-@@ -731,6 +736,23 @@
+@@ -731,6 +736,23 @@ static void sdhci_set_transfer_mode(stru
writew(mode, host->ioaddr + SDHCI_TRANSFER_MODE);
}
static void sdhci_finish_data(struct sdhci_host *host)
{
struct mmc_data *data;
-@@ -744,6 +766,8 @@
+@@ -744,6 +766,8 @@ static void sdhci_finish_data(struct sdh
if (host->flags & SDHCI_USE_ADMA)
sdhci_adma_table_post(host, data);
else {
dma_unmap_sg(mmc_dev(host->mmc), data->sg,
data->sg_len, (data->flags & MMC_DATA_READ) ?
DMA_FROM_DEVICE : DMA_TO_DEVICE);
-@@ -883,13 +907,18 @@
+@@ -883,13 +907,18 @@ static void sdhci_finish_command(struct
static void sdhci_set_clock(struct sdhci_host *host, unsigned int clock)
{
writew(0, host->ioaddr + SDHCI_CLOCK_CONTROL);
if (clock == 0)
-@@ -926,6 +955,8 @@
+@@ -926,6 +955,8 @@ out:
host->clock = clock;
}
static void sdhci_set_power(struct sdhci_host *host, unsigned short power)
{
u8 pwr;
-@@ -999,12 +1030,13 @@
+@@ -999,12 +1030,13 @@ static void sdhci_request(struct mmc_hos
#endif
host->mrq = mrq;
sdhci_send_command(host, mrq->cmd);
mmiowb();
-@@ -1033,6 +1065,9 @@
+@@ -1033,6 +1065,9 @@ static void sdhci_set_ios(struct mmc_hos
sdhci_init(host);
}
sdhci_set_clock(host, ios->clock);
if (ios->power_mode == MMC_POWER_OFF)
-@@ -1136,7 +1171,7 @@
+@@ -1136,7 +1171,7 @@ static void sdhci_tasklet_card(unsigned
host = (struct sdhci_host*)param;
spin_lock_irqsave(&host->lock, flags);
if (!(readl(host->ioaddr + SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT)) {
if (host->mrq) {
printk(KERN_ERR "%s: Card removed during transfer!\n",
-@@ -1151,7 +1186,7 @@
+@@ -1151,7 +1186,7 @@ static void sdhci_tasklet_card(unsigned
tasklet_schedule(&host->finish_tasklet);
}
}
spin_unlock_irqrestore(&host->lock, flags);
mmc_detect_change(host->mmc, msecs_to_jiffies(200));
-@@ -1607,17 +1642,23 @@
+@@ -1607,17 +1642,23 @@ int sdhci_add_host(struct sdhci_host *ho
mmc_dev(host->mmc)->dma_mask = &host->dma_mask;
}
#define SDHCI_HOST_CONTROL 0x28
#define SDHCI_CTRL_LED 0x01
-@@ -270,6 +271,14 @@
+@@ -270,6 +271,14 @@ struct sdhci_host {
struct sdhci_ops {
int (*enable_dma)(struct sdhci_host *host);
};
-@@ -277,6 +286,8 @@
+@@ -277,6 +286,8 @@ extern struct sdhci_host *sdhci_alloc_ho
size_t priv_size);
extern void sdhci_free_host(struct sdhci_host *host);
return (void *)host->private;
--- a/drivers/mmc/host/sdhci-pci.c
+++ b/drivers/mmc/host/sdhci-pci.c
-@@ -392,6 +392,7 @@
+@@ -392,6 +392,7 @@ static int sdhci_pci_enable_dma(struct s
static struct sdhci_ops sdhci_pci_ops = {
.enable_dma = sdhci_pci_enable_dma,
#ifdef CONFIG_MTD_NAND_S3C2410_HWECC
static int hardware_ecc = 1;
-@@ -231,8 +231,6 @@
+@@ -231,8 +231,6 @@ static int s3c2410_nand_setrate(struct s
BUG();
}
local_irq_save(flags);
cfg = readl(info->regs + S3C2410_NFCONF);
-@@ -240,6 +238,8 @@
+@@ -240,6 +238,8 @@ static int s3c2410_nand_setrate(struct s
cfg |= set;
writel(cfg, info->regs + S3C2410_NFCONF);
local_irq_restore(flags);
return 0;
-@@ -438,7 +438,7 @@
+@@ -438,7 +438,7 @@ static int s3c2410_nand_correct_data(str
if ((diff0 & ~(1<<fls(diff0))) == 0)
return 1;
}
/* ECC functions
-@@ -530,7 +530,12 @@
+@@ -530,7 +530,12 @@ static void s3c2410_nand_read_buf(struct
static void s3c2440_nand_read_buf(struct mtd_info *mtd, u_char *buf, int len)
{
struct s3c2410_nand_info *info = s3c2410_nand_mtd_toinfo(mtd);
}
static void s3c2410_nand_write_buf(struct mtd_info *mtd, const u_char *buf, int len)
-@@ -645,17 +650,31 @@
+@@ -645,17 +650,31 @@ static int s3c2410_nand_remove(struct pl
}
#ifdef CONFIG_MTD_PARTITIONS
return add_mtd_device(&mtd->mtd);
}
#else
-@@ -684,9 +703,13 @@
+@@ -684,9 +703,13 @@ static void s3c2410_nand_init_chip(struc
chip->select_chip = s3c2410_nand_select_chip;
chip->chip_delay = 50;
chip->priv = nmtd;
switch (info->cpu_type) {
case TYPE_S3C2410:
chip->IO_ADDR_W = regs + S3C2410_NFDATA;
-@@ -726,7 +749,7 @@
+@@ -726,7 +749,7 @@ static void s3c2410_nand_init_chip(struc
nmtd->mtd.owner = THIS_MODULE;
nmtd->set = set;
chip->ecc.mode = NAND_ECC_HW;
--- a/drivers/net/wireless/libertas/if_sdio.c
+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -48,6 +48,7 @@
+@@ -48,6 +48,7 @@ module_param_named(fw_name, lbs_fw_name,
static const struct sdio_device_id if_sdio_ids[] = {
{ SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_LIBERTAS) },
{ /* end: all zeroes */ },
};
-@@ -72,7 +73,12 @@
+@@ -72,7 +73,12 @@ static struct if_sdio_model if_sdio_mode
.helper = "sd8686_helper.bin",
.firmware = "sd8686.bin",
},
peripherals to be configured by software, e.g. assign IRQ's or other
--- a/drivers/pnp/resource.c
+++ b/drivers/pnp/resource.c
-@@ -436,6 +436,7 @@
+@@ -436,6 +436,7 @@ int pnp_check_dma(struct pnp_dev *dev, s
}
}
/* check if the resource is already in use, skip if the
* device is active because it itself may be in use */
if (!dev->active) {
-@@ -443,6 +444,7 @@
+@@ -443,6 +444,7 @@ int pnp_check_dma(struct pnp_dev *dev, s
return 0;
free_dma(*dma);
}
+MODULE_LICENSE("GPL");
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
-@@ -68,4 +68,24 @@
+@@ -68,4 +68,24 @@ config BATTERY_BQ27x00
help
Say Y here to enable support for batteries with BQ27200(I2C) chip.
+
--- a/drivers/power/Makefile
+++ b/drivers/power/Makefile
-@@ -23,3 +23,9 @@
+@@ -23,3 +23,9 @@ obj-$(CONFIG_BATTERY_OLPC) += olpc_batte
obj-$(CONFIG_BATTERY_TOSA) += tosa_battery.o
obj-$(CONFIG_BATTERY_WM97XX) += wm97xx_battery.o
obj-$(CONFIG_BATTERY_BQ27x00) += bq27x00_battery.o
+MODULE_ALIAS("platform:pcf50633-mbc");
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -1113,6 +1113,7 @@
+@@ -1113,6 +1113,7 @@ int regulator_disable(struct regulator *
if (!regulator->enabled) {
printk(KERN_ERR "%s: not in use by this consumer\n",
__func__);
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
-@@ -73,4 +73,10 @@
+@@ -73,4 +73,10 @@ config REGULATOR_DA903X
Say y here to support the BUCKs and LDOs regulators found on
Dialog Semiconductor DA9030/DA9034 PMIC.
endif
--- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile
-@@ -11,5 +11,6 @@
+@@ -11,5 +11,6 @@ obj-$(CONFIG_REGULATOR_BQ24022) += bq240
obj-$(CONFIG_REGULATOR_WM8350) += wm8350-regulator.o
obj-$(CONFIG_REGULATOR_WM8400) += wm8400-regulator.o
obj-$(CONFIG_REGULATOR_DA903X) += da903x.o
+MODULE_ALIAS("platform:pcf50633-regulator");
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
-@@ -219,6 +219,18 @@
+@@ -219,6 +219,18 @@ config RTC_DRV_PCF8583
This driver can also be built as a module. If so, the module
will be called rtc-pcf8583.
help
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
-@@ -50,6 +50,8 @@
+@@ -50,6 +50,8 @@ obj-$(CONFIG_RTC_DRV_MAX6902) += rtc-max
obj-$(CONFIG_RTC_DRV_OMAP) += rtc-omap.o
obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o
obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o
* of these rtc blocks in */
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
-@@ -447,7 +447,7 @@
+@@ -447,7 +447,7 @@ config SERIAL_CLPS711X_CONSOLE
config SERIAL_SAMSUNG
tristate "Samsung SoC serial support"
select SERIAL_CORE
help
Support for the on-chip UARTs on the Samsung S3C24XX series CPUs,
-@@ -455,6 +455,16 @@
+@@ -455,6 +455,16 @@ config SERIAL_SAMSUNG
provide all of these ports, depending on how the serial port
pins are configured.
config SERIAL_SAMSUNG_DEBUG
bool "Samsung SoC serial debug"
depends on SERIAL_SAMSUNG && DEBUG_LL
-@@ -508,7 +518,20 @@
+@@ -508,7 +518,20 @@ config SERIAL_S3C2440
help
Serial port support for the Samsung S3C2440 and S3C2442 SoC
bool "DECstation DZ serial driver"
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
-@@ -41,6 +41,8 @@
+@@ -41,6 +41,8 @@ obj-$(CONFIG_SERIAL_S3C2400) += s3c2400.
obj-$(CONFIG_SERIAL_S3C2410) += s3c2410.o
obj-$(CONFIG_SERIAL_S3C2412) += s3c2412.o
obj-$(CONFIG_SERIAL_S3C2440) += s3c2440.o
/* macros to change one thing to another */
#define tx_enabled(port) ((port)->unused[0])
-@@ -136,8 +128,10 @@
+@@ -136,8 +128,10 @@ static void s3c24xx_serial_rx_disable(st
static void s3c24xx_serial_stop_tx(struct uart_port *port)
{
tx_enabled(port) = 0;
if (port->flags & UPF_CONS_FLOW)
s3c24xx_serial_rx_enable(port);
-@@ -146,11 +140,13 @@
+@@ -146,11 +140,13 @@ static void s3c24xx_serial_stop_tx(struc
static void s3c24xx_serial_start_tx(struct uart_port *port)
{
tx_enabled(port) = 1;
}
}
-@@ -158,9 +154,11 @@
+@@ -158,9 +154,11 @@ static void s3c24xx_serial_start_tx(stru
static void s3c24xx_serial_stop_rx(struct uart_port *port)
{
rx_enabled(port) = 0;
}
}
-@@ -241,7 +239,7 @@
+@@ -241,7 +239,7 @@ s3c24xx_serial_rx_chars(int irq, void *d
port->icount.rx++;
if (unlikely(uerstat & S3C2410_UERSTAT_ANY)) {
ch, uerstat);
/* check for break */
-@@ -384,13 +382,13 @@
+@@ -384,13 +382,13 @@ static void s3c24xx_serial_shutdown(stru
struct s3c24xx_uart_port *ourport = to_ourport(port);
if (ourport->tx_claimed) {
ourport->rx_claimed = 0;
rx_enabled(port) = 0;
}
-@@ -407,12 +405,11 @@
+@@ -407,12 +405,11 @@ static int s3c24xx_serial_startup(struct
rx_enabled(port) = 1;
return ret;
}
-@@ -422,12 +419,11 @@
+@@ -422,12 +419,11 @@ static int s3c24xx_serial_startup(struct
tx_enabled(port) = 1;
goto err;
}
-@@ -452,6 +448,8 @@
+@@ -452,6 +448,8 @@ static void s3c24xx_serial_pm(struct uar
{
struct s3c24xx_uart_port *ourport = to_ourport(port);
switch (level) {
case 3:
if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
-@@ -514,6 +512,7 @@
+@@ -514,6 +512,7 @@ s3c24xx_serial_setsource(struct uart_por
struct baud_calc {
struct s3c24xx_uart_clksrc *clksrc;
unsigned int calc;
unsigned int quot;
struct clk *src;
};
-@@ -523,6 +522,7 @@
+@@ -523,6 +522,7 @@ static int s3c24xx_serial_calcbaud(struc
struct s3c24xx_uart_clksrc *clksrc,
unsigned int baud)
{
unsigned long rate;
calc->src = clk_get(port->dev, clksrc->name);
-@@ -533,8 +533,24 @@
+@@ -533,8 +533,24 @@ static int s3c24xx_serial_calcbaud(struc
rate /= clksrc->divisor;
calc->clksrc = clksrc;
calc->quot--;
return 1;
-@@ -617,6 +633,30 @@
+@@ -617,6 +633,30 @@ static unsigned int s3c24xx_serial_getcl
return best->quot;
}
static void s3c24xx_serial_set_termios(struct uart_port *port,
struct ktermios *termios,
struct ktermios *old)
-@@ -629,6 +669,7 @@
+@@ -629,6 +669,7 @@ static void s3c24xx_serial_set_termios(s
unsigned int baud, quot;
unsigned int ulcon;
unsigned int umcon;
/*
* We don't support modem control lines.
-@@ -650,6 +691,7 @@
+@@ -650,6 +691,7 @@ static void s3c24xx_serial_set_termios(s
/* check to see if we need to change clock source */
if (ourport->clksrc != clksrc || ourport->baudclk != clk) {
s3c24xx_serial_setsource(port, clksrc);
if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) {
-@@ -661,6 +703,14 @@
+@@ -661,6 +703,14 @@ static void s3c24xx_serial_set_termios(s
ourport->clksrc = clksrc;
ourport->baudclk = clk;
}
switch (termios->c_cflag & CSIZE) {
-@@ -702,12 +752,16 @@
+@@ -702,12 +752,16 @@ static void s3c24xx_serial_set_termios(s
spin_lock_irqsave(&port->lock, flags);
dbg("uart: ulcon = 0x%08x, ucon = 0x%08x, ufcon = 0x%08x\n",
rd_regl(port, S3C2410_ULCON),
rd_regl(port, S3C2410_UCON),
-@@ -752,6 +806,8 @@
+@@ -752,6 +806,8 @@ static const char *s3c24xx_serial_type(s
return "S3C2440";
case PORT_S3C2412:
return "S3C2412";
default:
return NULL;
}
-@@ -827,14 +883,14 @@
+@@ -827,14 +883,14 @@ static struct uart_ops s3c24xx_serial_op
static struct uart_driver s3c24xx_uart_drv = {
.owner = THIS_MODULE,
.dev_name = "s3c2410_serial",
[0] = {
.port = {
.lock = __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[0].port.lock),
-@@ -859,7 +915,7 @@
+@@ -859,7 +915,7 @@ static struct s3c24xx_uart_port s3c24xx_
.line = 1,
}
},
[2] = {
.port = {
-@@ -872,10 +928,88 @@
+@@ -872,10 +928,88 @@ static struct s3c24xx_uart_port s3c24xx_
.flags = UPF_BOOT_AUTOCONF,
.line = 2,
}
/* s3c24xx_serial_resetport
*
* wrapper to call the specific reset for this port (reset the fifos
-@@ -890,6 +1024,93 @@
+@@ -890,6 +1024,93 @@ static inline int s3c24xx_serial_resetpo
return (info->reset_port)(port, cfg);
}
/* s3c24xx_serial_init_port
*
* initialise a single serial port from the platform device given
-@@ -914,8 +1135,11 @@
+@@ -914,8 +1135,11 @@ static int s3c24xx_serial_init_port(stru
if (port->mapbase != 0)
return 0;
/* setup info for port */
port->dev = &platdev->dev;
-@@ -943,18 +1167,26 @@
+@@ -943,18 +1167,26 @@ static int s3c24xx_serial_init_port(stru
dbg("resource %p (%lx..%lx)\n", res, res->start, res->end);
/* reset the fifos (and setup the uart) */
s3c24xx_serial_resetport(port, cfg);
-@@ -987,6 +1219,7 @@
+@@ -987,6 +1219,7 @@ int s3c24xx_serial_probe(struct platform
ourport = &s3c24xx_serial_ports[probe_index];
probe_index++;
dbg("%s: initialising port %p...\n", __func__, ourport);
-@@ -1002,6 +1235,10 @@
+@@ -1002,6 +1235,10 @@ int s3c24xx_serial_probe(struct platform
if (ret < 0)
printk(KERN_ERR "%s: failed to add clksrc attr.\n", __func__);
return 0;
probe_err:
-@@ -1015,6 +1252,7 @@
+@@ -1015,6 +1252,7 @@ int s3c24xx_serial_remove(struct platfor
struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);
if (port) {
device_remove_file(&dev->dev, &dev_attr_clock_source);
uart_remove_one_port(&s3c24xx_uart_drv, port);
}
-@@ -1038,6 +1276,16 @@
+@@ -1038,6 +1276,16 @@ static int s3c24xx_serial_suspend(struct
return 0;
}
static int s3c24xx_serial_resume(struct platform_device *dev)
{
struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);
-@@ -1049,6 +1297,9 @@
+@@ -1049,6 +1297,9 @@ static int s3c24xx_serial_resume(struct
clk_disable(ourport->clk);
uart_resume_port(&s3c24xx_uart_drv, port);
}
return 0;
-@@ -1059,6 +1310,12 @@
+@@ -1059,6 +1310,12 @@ int s3c24xx_serial_init(struct platform_
struct s3c24xx_uart_info *info)
{
dbg("s3c24xx_serial_init(%p,%p)\n", drv, info);
#ifdef CONFIG_PM
drv->suspend = s3c24xx_serial_suspend;
-@@ -1098,6 +1355,13 @@
+@@ -1098,6 +1355,13 @@ module_exit(s3c24xx_serial_modexit);
#ifdef CONFIG_SERIAL_SAMSUNG_CONSOLE
static struct uart_port *cons_uart;
static int
s3c24xx_serial_console_txrdy(struct uart_port *port, unsigned int ufcon)
-@@ -1122,9 +1386,21 @@
+@@ -1122,9 +1386,21 @@ static void
s3c24xx_serial_console_putchar(struct uart_port *port, int ch)
{
unsigned int ufcon = rd_regl(cons_uart, S3C2410_UFCON);
}
static void
-@@ -1219,7 +1495,7 @@
+@@ -1219,7 +1495,7 @@ static int s3c24xx_serial_init_ports(str
platdev_ptr = s3c24xx_uart_devs;
s3c24xx_serial_init_port(ptr, info, *platdev_ptr);
}
-@@ -1240,7 +1516,7 @@
+@@ -1240,7 +1516,7 @@ s3c24xx_serial_console_setup(struct cons
/* is this a valid port */
struct s3c24xx_uart_info {
char *name;
unsigned int type;
-@@ -21,6 +23,10 @@
+@@ -21,6 +23,10 @@ struct s3c24xx_uart_info {
unsigned long tx_fifoshift;
unsigned long tx_fifofull;
/* clock source control */
int (*get_clksrc)(struct uart_port *, struct s3c24xx_uart_clksrc *clk);
-@@ -33,12 +39,23 @@
+@@ -33,12 +39,23 @@ struct s3c24xx_uart_info {
struct s3c24xx_uart_port {
unsigned char rx_claimed;
unsigned char tx_claimed;
struct s3c24xx_spi {
--- a/drivers/spi/spi_s3c24xx_gpio.c
+++ b/drivers/spi/spi_s3c24xx_gpio.c
-@@ -91,7 +91,7 @@
+@@ -91,7 +91,7 @@ static void s3c2410_spigpio_chipselect(s
struct s3c2410_spigpio *sg = spidev_to_sg(dev);
if (sg->info && sg->info->chip_select)
}
static int s3c2410_spigpio_probe(struct platform_device *dev)
-@@ -100,6 +100,7 @@
+@@ -100,6 +100,7 @@ static int s3c2410_spigpio_probe(struct
struct spi_master *master;
struct s3c2410_spigpio *sp;
int ret;
master = spi_alloc_master(&dev->dev, sizeof(struct s3c2410_spigpio));
if (master == NULL) {
-@@ -112,9 +113,11 @@
+@@ -112,9 +113,11 @@ static int s3c2410_spigpio_probe(struct
platform_set_drvdata(dev, sp);
/* setup spi bitbang adaptor */
sp->bitbang.master = spi_master_get(master);
sp->bitbang.master->bus_num = info->bus_num;
-@@ -143,6 +146,22 @@
+@@ -143,6 +146,22 @@ static int s3c2410_spigpio_probe(struct
if (ret)
goto err_no_bitbang;
err_no_bitbang:
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
-@@ -1045,7 +1045,11 @@
+@@ -1045,7 +1045,11 @@ composite_resume(struct usb_gadget *gadg
/*-------------------------------------------------------------------------*/
static struct usb_gadget_driver composite_driver = {
.unbind = __exit_p(composite_unbind),
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
-@@ -122,11 +122,16 @@
+@@ -122,11 +122,16 @@ static inline bool has_rndis(void)
* Instead: allocate your own, using normal USB-IF procedures.
*/
/* For hardware that can't talk CDC, we use the same vendor ID that
* ARM Linux has used for ethernet-over-usb, both with sa1100 and
-@@ -147,8 +152,8 @@
+@@ -147,8 +152,8 @@ static inline bool has_rndis(void)
* used with CDC Ethernet, Linux 2.4 hosts will need updates to choose
* the non-RNDIS configuration.
*/
#include "s3c2410_udc.h"
-@@ -134,6 +134,8 @@
+@@ -134,6 +134,8 @@ static int dprintk(int level, const char
return 0;
}
#endif
static int s3c2410_udc_debugfs_seq_show(struct seq_file *m, void *p)
{
u32 addr_reg,pwr_reg,ep_int_reg,usb_int_reg;
-@@ -197,6 +199,7 @@
+@@ -197,6 +199,7 @@ static const struct file_operations s3c2
.release = single_release,
.owner = THIS_MODULE,
};
/* io macros */
-@@ -843,6 +846,7 @@
+@@ -843,6 +846,7 @@ static void s3c2410_udc_handle_ep(struct
u32 ep_csr1;
u32 idx;
if (likely (!list_empty(&ep->queue)))
req = list_entry(ep->queue.next,
struct s3c2410_request, queue);
-@@ -882,6 +886,8 @@
+@@ -882,6 +886,8 @@ static void s3c2410_udc_handle_ep(struct
if ((ep_csr1 & S3C2410_UDC_OCSR1_PKTRDY) && req) {
s3c2410_udc_read_fifo(ep,req);
}
}
}
-@@ -1890,6 +1896,7 @@
+@@ -1890,6 +1896,7 @@ static int s3c2410_udc_probe(struct plat
udc->vbus = 1;
}
if (s3c2410_udc_debugfs_root) {
udc->regs_info = debugfs_create_file("registers", S_IRUGO,
s3c2410_udc_debugfs_root,
-@@ -1897,6 +1904,7 @@
+@@ -1897,6 +1904,7 @@ static int s3c2410_udc_probe(struct plat
if (!udc->regs_info)
dev_warn(dev, "debugfs file creation failed\n");
}
dev_dbg(dev, "probe ok\n");
-@@ -2003,12 +2011,14 @@
+@@ -2003,12 +2011,14 @@ static int __init udc_init(void)
dprintk(DEBUG_NORMAL, "%s: version %s\n", gadget_name, DRIVER_VERSION);
#define valid_port(idx) ((idx) == 1 || (idx) == 2)
-@@ -308,6 +309,42 @@
+@@ -308,6 +309,42 @@ static void s3c2410_hcd_oc(struct s3c241
local_irq_restore(flags);
}
/* may be called without controller electrically present */
/* may be called with controller, bus, and devices active */
-@@ -325,6 +362,7 @@
+@@ -325,6 +362,7 @@ static void s3c2410_hcd_oc(struct s3c241
static void
usb_hcd_s3c2410_remove (struct usb_hcd *hcd, struct platform_device *dev)
{
usb_remove_hcd(hcd);
s3c2410_stop_hc(dev);
iounmap(hcd->regs);
-@@ -392,8 +430,15 @@
+@@ -392,8 +430,15 @@ static int usb_hcd_s3c2410_probe (const
if (retval != 0)
goto err_ioremap;
+MODULE_LICENSE("GPL");
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
-@@ -152,6 +152,13 @@
+@@ -152,6 +152,13 @@ config BACKLIGHT_OMAP1
the PWL module of OMAP1 processors. Say Y if your board
uses this hardware.
depends on BACKLIGHT_CLASS_DEVICE && SH_HP6XX
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
-@@ -12,6 +12,7 @@
+@@ -12,6 +12,7 @@ obj-$(CONFIG_LCD_TOSA) += tosa_lcd.o
obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o
obj-$(CONFIG_BACKLIGHT_ATMEL_PWM) += atmel-pwm-bl.o
obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o
obj-$(CONFIG_BACKLIGHT_OMAP1) += omap1_bl.o
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
-@@ -401,6 +401,9 @@
+@@ -401,6 +401,9 @@ static void fb_flashcursor(struct work_s
int c;
int mode;
acquire_console_sem();
if (ops && ops->currcon != -1)
vc = vc_cons[ops->currcon].d;
-@@ -3225,13 +3228,17 @@
+@@ -3225,13 +3228,17 @@ static void fbcon_get_requirement(struct
static int fbcon_event_notify(struct notifier_block *self,
unsigned long action, void *data)
{
+module_exit(jbt_exit);
--- a/drivers/video/display/Kconfig
+++ b/drivers/video/display/Kconfig
-@@ -21,4 +21,15 @@
+@@ -21,4 +21,15 @@ config DISPLAY_SUPPORT
comment "Display hardware drivers"
depends on DISPLAY_SUPPORT
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
-@@ -1918,6 +1918,30 @@
+@@ -1918,6 +1918,30 @@ config FB_TMIO_ACCELL
depends on FB_TMIO
default y
depends on FB && ARCH_S3C2410
--- a/drivers/video/logo/Kconfig
+++ b/drivers/video/logo/Kconfig
-@@ -77,6 +77,11 @@
+@@ -77,6 +77,11 @@ config LOGO_SUPERH_CLUT224
depends on SUPERH
default y
depends on M32R
--- a/drivers/video/logo/logo.c
+++ b/drivers/video/logo/logo.c
-@@ -35,6 +35,7 @@
+@@ -35,6 +35,7 @@ extern const struct linux_logo logo_supe
extern const struct linux_logo logo_superh_vga16;
extern const struct linux_logo logo_superh_clut224;
extern const struct linux_logo logo_m32r_clut224;
static int nologo;
module_param(nologo, bool, 0);
-@@ -115,6 +116,10 @@
+@@ -115,6 +116,10 @@ const struct linux_logo * __init_refok f
/* M32R Linux logo */
logo = &logo_m32r_clut224;
#endif
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--- a/drivers/video/logo/Makefile
+++ b/drivers/video/logo/Makefile
-@@ -15,6 +15,7 @@
+@@ -15,6 +15,7 @@ obj-$(CONFIG_LOGO_SUPERH_MONO) += logo_
obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o
obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o
obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
-@@ -109,6 +109,7 @@
+@@ -109,6 +109,7 @@ obj-$(CONFIG_FB_METRONOME) += met
obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o
obj-$(CONFIG_FB_SH7760) += sh7760fb.o
obj-$(CONFIG_FB_IMX) += imxfb.o
obj-$(CONFIG_FB_COBALT) += cobalt_lcdfb.o
--- a/drivers/video/s3c2410fb.c
+++ b/drivers/video/s3c2410fb.c
-@@ -1017,6 +1017,8 @@
+@@ -1017,6 +1017,8 @@ static int s3c2410fb_resume(struct platf
s3c2410fb_init_registers(fbinfo);
+MODULE_ALIAS("platform:s3c-fb");
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
-@@ -233,6 +233,12 @@
+@@ -233,6 +233,12 @@ config ORION5X_WATCHDOG
To compile this driver as a module, choose M here: the
module will be called orion5x_wdt.
# ARM26 Architecture
# AVR32 Architecture
-@@ -784,7 +790,7 @@
+@@ -784,7 +790,7 @@ config WATCHDOG_RTAS
tristate "RTAS watchdog"
depends on PPC_RTAS
help
will be called wdrtas.
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
-@@ -41,6 +41,7 @@
+@@ -41,6 +41,7 @@ obj-$(CONFIG_PNX4008_WATCHDOG) += pnx400
obj-$(CONFIG_IOP_WATCHDOG) += iop_wdt.o
obj-$(CONFIG_DAVINCI_WATCHDOG) += davinci_wdt.o
obj-$(CONFIG_ORION5X_WATCHDOG) += orion5x_wdt.o
--- a/fs/jffs2/background.c
+++ b/fs/jffs2/background.c
-@@ -95,13 +95,17 @@
+@@ -95,13 +95,17 @@ static int jffs2_garbage_collect_thread(
spin_unlock(&c->erase_completion_lock);
+#endif
--- a/include/linux/device.h
+++ b/include/linux/device.h
-@@ -48,6 +48,11 @@
+@@ -48,6 +48,11 @@ extern int __must_check bus_create_file(
struct bus_attribute *);
extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
struct bus_attribute *bus_attrs;
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
-@@ -123,6 +123,7 @@
+@@ -123,6 +123,7 @@ struct dentry;
#define FB_ACCEL_TRIDENT_3DIMAGE 51 /* Trident 3DImage */
#define FB_ACCEL_TRIDENT_BLADE3D 52 /* Trident Blade3D */
#define FB_ACCEL_TRIDENT_BLADEXP 53 /* Trident BladeXP */
+#endif
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
-@@ -225,6 +225,8 @@
+@@ -225,6 +225,8 @@ extern struct ratelimit_state printk_rat
extern int printk_ratelimit(void);
extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
unsigned int interval_msec);
+
--- a/include/linux/mmc/core.h
+++ b/include/linux/mmc/core.h
-@@ -129,6 +129,8 @@
+@@ -129,6 +129,8 @@ struct mmc_request {
struct mmc_host;
struct mmc_card;
#endif
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -713,7 +713,7 @@
+@@ -713,7 +713,7 @@ static inline int shmem_lock(struct file
}
#endif
struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags);
+#endif
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
-@@ -146,6 +146,12 @@
+@@ -146,6 +146,12 @@ struct pbe {
struct pbe *next;
};
+#endif
--- a/include/linux/vt.h
+++ b/include/linux/vt.h
-@@ -18,8 +18,19 @@
+@@ -18,8 +18,19 @@ extern int unregister_vt_notifier(struct
* resizing).
*/
#define MIN_NR_CONSOLES 1 /* must be at least 1 */
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
-@@ -244,6 +244,13 @@
+@@ -244,6 +244,13 @@ int snd_soc_dapm_nc_pin(struct snd_soc_c
int snd_soc_dapm_get_pin_status(struct snd_soc_codec *codec, char *pin);
int snd_soc_dapm_sync(struct snd_soc_codec *codec);
snd_soc_dapm_input = 0, /* input pin */
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -732,6 +732,15 @@
+@@ -720,6 +720,15 @@ config AIO
by some high performance threaded applications. Disabling
this option saves about 7k.
bool "Enable VM event counters for /proc/vmstat" if EMBEDDED
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
-@@ -380,6 +380,7 @@
+@@ -380,6 +380,7 @@ handle_level_irq(unsigned int irq, struc
out_unlock:
spin_unlock(&desc->lock);
}
/**
* handle_fasteoi_irq - irq handler for transparent controllers
-@@ -583,6 +584,7 @@
+@@ -583,6 +584,7 @@ __set_irq_handler(unsigned int irq, irq_
}
spin_unlock_irqrestore(&desc->lock, flags);
}
set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
-@@ -132,6 +132,9 @@
+@@ -132,6 +132,9 @@ static inline int suspend_test(int level
#endif /* CONFIG_PM_SLEEP */
#ifdef CONFIG_SUSPEND
#ifdef CONFIG_PM_TEST_SUSPEND
-@@ -322,6 +325,8 @@
+@@ -322,6 +325,8 @@ int suspend_devices_and_enter(suspend_st
if (!suspend_ops)
return -ENOSYS;
if (suspend_ops->begin) {
error = suspend_ops->begin(state);
if (error)
-@@ -365,6 +370,8 @@
+@@ -365,6 +370,8 @@ int suspend_devices_and_enter(suspend_st
Close:
if (suspend_ops->end)
suspend_ops->end();
return error;
Recover_platform:
-@@ -427,6 +434,8 @@
+@@ -427,6 +434,8 @@ static int enter_state(suspend_state_t s
return -EBUSY;
printk(KERN_INFO "PM: Syncing filesystems ... ");
/*
* Architectures can override it:
-@@ -67,6 +70,12 @@
+@@ -67,6 +70,12 @@ int console_printk[4] = {
int oops_in_progress;
EXPORT_SYMBOL(oops_in_progress);
/*
* console_sem protects the console_drivers list, and also
* provides serialisation for access to the entire console
-@@ -667,8 +676,39 @@
+@@ -667,8 +676,39 @@ asmlinkage int vprintk(const char *fmt,
/* Emit the output into the temporary buffer */
printed_len += vscnprintf(printk_buf + printed_len,
sizeof(printk_buf) - printed_len, fmt, args);
* appropriate log level tags, we insert them here
--- a/kernel/timer.c
+++ b/kernel/timer.c
-@@ -813,7 +813,11 @@
+@@ -813,7 +813,11 @@ static int cascade(struct tvec_base *bas
* don't have to detach them individually.
*/
list_for_each_entry_safe(timer, tmp, &tv_list, entry) {
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -1705,6 +1705,20 @@
+@@ -1705,6 +1705,20 @@ FILE LOCKING (flock() and fcntl()/lockf(
P: Matthew Wilcox
M: matthew@wil.cx
L: linux-fsdevel@vger.kernel.org
+MODULE_LICENSE("GPL");
--- a/mm/Makefile
+++ b/mm/Makefile
-@@ -22,6 +22,7 @@
+@@ -22,6 +22,7 @@ obj-$(CONFIG_NUMA) += mempolicy.o
obj-$(CONFIG_SPARSEMEM) += sparse.o
obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o
obj-$(CONFIG_SHMEM) += shmem.o
obj-$(CONFIG_SLOB) += slob.o
--- a/mm/tiny-shmem.c
+++ b/mm/tiny-shmem.c
-@@ -97,6 +97,22 @@
+@@ -97,6 +97,22 @@ put_memory:
}
EXPORT_SYMBOL_GPL(shmem_file_setup);
/**
* shmem_zero_setup - setup a shared anonymous mapping
* @vma: the vma to be mmapped is prepared by do_mmap_pgoff
-@@ -110,10 +126,8 @@
+@@ -110,10 +126,8 @@ int shmem_zero_setup(struct vm_area_stru
if (IS_ERR(file))
return PTR_ERR(file);
+
--- a/scripts/mkuboot.sh
+++ b/scripts/mkuboot.sh
-@@ -11,7 +11,7 @@
+@@ -11,7 +11,7 @@ if [ -z "${MKIMAGE}" ]; then
if [ -z "${MKIMAGE}" ]; then
# Doesn't exist
echo '"mkimage" command not found - U-Boot images will not be built' >&2
--- a/sound/soc/codecs/wm8753.c
+++ b/sound/soc/codecs/wm8753.c
-@@ -1584,6 +1584,9 @@
+@@ -1584,6 +1584,9 @@ static int wm8753_init(struct snd_soc_de
schedule_delayed_work(&codec->delayed_work,
msecs_to_jiffies(caps_charge));
/* set the update bits */
reg = wm8753_read_reg_cache(codec, WM8753_LDAC);
wm8753_write(codec, WM8753_LDAC, reg | 0x0100);
-@@ -1644,17 +1647,20 @@
+@@ -1644,17 +1647,20 @@ static int wm8753_i2c_probe(struct i2c_c
struct snd_soc_codec *codec = socdev->codec;
int ret;
{
struct snd_soc_codec *codec = i2c_get_clientdata(client);
kfree(codec->reg_cache);
-@@ -1675,6 +1681,7 @@
+@@ -1675,6 +1681,7 @@ static struct i2c_driver wm8753_i2c_driv
.probe = wm8753_i2c_probe,
.remove = wm8753_i2c_remove,
.id_table = wm8753_i2c_id,
};
static int wm8753_add_i2c_device(struct platform_device *pdev,
-@@ -1716,6 +1723,8 @@
+@@ -1716,6 +1723,8 @@ err_driver:
i2c_del_driver(&wm8753_i2c_driver);
return -ENODEV;
}
#endif
#if defined(CONFIG_SPI_MASTER)
-@@ -1783,7 +1792,7 @@
+@@ -1783,7 +1792,7 @@ static int wm8753_probe(struct platform_
struct wm8753_priv *wm8753;
int ret = 0;
setup = socdev->codec_data;
codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
-@@ -1820,6 +1829,7 @@
+@@ -1820,6 +1829,7 @@ static int wm8753_probe(struct platform_
#endif
if (ret != 0) {
kfree(codec->private_data);
kfree(codec);
}
-@@ -1857,7 +1867,6 @@
+@@ -1857,7 +1867,6 @@ static int wm8753_remove(struct platform
snd_soc_free_pcms(socdev);
snd_soc_dapm_free(socdev);
#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
#if defined(CONFIG_SPI_MASTER)
--- a/sound/soc/s3c24xx/Kconfig
+++ b/sound/soc/s3c24xx/Kconfig
-@@ -26,6 +26,15 @@
+@@ -26,6 +26,15 @@ config SND_S3C24XX_SOC_NEO1973_WM8753
Say Y if you want to add support for SoC audio on smdk2440
with the WM8753.
depends on SND_S3C24XX_SOC && MACH_SMDK2443
--- a/sound/soc/s3c24xx/Makefile
+++ b/sound/soc/s3c24xx/Makefile
-@@ -13,7 +13,10 @@
+@@ -13,7 +13,10 @@ obj-$(CONFIG_SND_S3C2412_SOC_I2S) += snd
snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o
snd-soc-smdk2443-wm9710-objs := smdk2443_wm9710.o
snd-soc-ln2440sbc-alc650-objs := ln2440sbc_alc650.o
#include <asm/plat-s3c24xx/regs-iis.h>
#include "../codecs/wm8753.h"
-@@ -585,7 +585,7 @@
+@@ -585,7 +585,7 @@ static struct snd_soc_machine neo1973 =
.num_links = ARRAY_SIZE(neo1973_dai),
};
.i2c_bus = 0,
.i2c_address = 0x1a,
};
-@@ -594,7 +594,7 @@
+@@ -594,7 +594,7 @@ static struct snd_soc_device neo1973_snd
.machine = &neo1973,
.platform = &s3c24xx_soc_platform,
.codec_dev = &soc_codec_dev_wm8753,
};
static int lm4857_i2c_probe(struct i2c_client *client,
-@@ -676,7 +676,7 @@
+@@ -676,7 +676,7 @@ static int __init neo1973_init(void)
{
int ret;
#include <mach/audio.h>
--- a/sound/soc/s3c24xx/s3c24xx-i2s.c
+++ b/sound/soc/s3c24xx/s3c24xx-i2s.c
-@@ -175,7 +175,7 @@
+@@ -175,7 +175,7 @@ static void s3c24xx_snd_rxctrl(int on)
static int s3c24xx_snd_lrsync(void)
{
u32 iiscon;
DBG("Entered %s\n", __func__);
-@@ -282,11 +282,14 @@
+@@ -282,11 +282,14 @@ static int s3c24xx_i2s_trigger(struct sn
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
s3c24xx_snd_rxctrl(1);
-@@ -306,7 +309,6 @@
+@@ -306,7 +309,6 @@ static int s3c24xx_i2s_trigger(struct sn
break;
}
--- a/sound/soc/s3c24xx/s3c24xx-pcm.c
+++ b/sound/soc/s3c24xx/s3c24xx-pcm.c
-@@ -168,7 +168,7 @@
+@@ -168,7 +168,7 @@ static int s3c24xx_pcm_hw_params(struct
prtd->params->client, NULL);
if (ret < 0) {
}
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
-@@ -1003,6 +1003,38 @@
+@@ -1003,6 +1003,38 @@ static ssize_t codec_reg_show(struct dev
}
static DEVICE_ATTR(codec_reg, 0444, codec_reg_show, NULL);
/**
* snd_soc_new_ac97_codec - initailise AC97 device
* @codec: audio codec
-@@ -1218,6 +1250,9 @@
+@@ -1218,6 +1250,9 @@ int snd_soc_register_card(struct snd_soc
mutex_unlock(&codec->mutex);
}
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
-@@ -1525,6 +1525,56 @@
+@@ -1525,6 +1525,56 @@ int snd_soc_dapm_get_pin_status(struct s
EXPORT_SYMBOL_GPL(snd_soc_dapm_get_pin_status);
/**