diff options
author | Russell King | 2009-09-18 20:55:56 +0100 |
---|---|---|
committer | Russell King | 2009-09-18 20:55:56 +0100 |
commit | 07198871dac00e9c250d647e1976d7aee527b805 (patch) | |
tree | 5c565a837cf55b0745fb099e14cff4fe9be65a69 /arch | |
parent | dca230f00d737353e2dffae489c916b41971921f (diff) | |
parent | 01875d56ae9877f41d672d57524d90d3d4d00adf (diff) |
Merge branch 'next-s3c-fixes' of git://aeryn.fluff.org.uk/bjdooks/linux
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-s3c2410/Kconfig | 5 | ||||
-rw-r--r-- | arch/arm/mach-s3c2412/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm/mach-s3c2440/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-s3c6400/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c6410/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/plat-s3c64xx/dma.c | 6 | ||||
-rw-r--r-- | arch/arm/plat-s3c64xx/include/plat/dma-plat.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-s3c64xx/include/plat/irqs.h | 10 | ||||
-rw-r--r-- | arch/arm/plat-s3c64xx/s3c6400-clock.c | 8 |
9 files changed, 34 insertions, 8 deletions
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig index d8c023d4df30..3d4e9da3fa52 100644 --- a/arch/arm/mach-s3c2410/Kconfig +++ b/arch/arm/mach-s3c2410/Kconfig @@ -77,6 +77,7 @@ config ARCH_H1940 select CPU_S3C2410 select PM_H1940 if PM select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the HP IPAQ H1940 @@ -89,6 +90,7 @@ config MACH_N30 bool "Acer N30 family" select CPU_S3C2410 select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you want suppt for the Acer N30, Acer N35, Navman PiN570, Yakumo AlphaX or Airis NC05 PDAs. @@ -103,6 +105,7 @@ config ARCH_BAST select S3C24XX_DCLK select ISA select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the Simtec Electronics EB2410ITX development board (also known as BAST) @@ -111,6 +114,7 @@ config MACH_OTOM bool "NexVision OTOM Board" select CPU_S3C2410 select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the Nex Vision OTOM board @@ -154,6 +158,7 @@ config MACH_QT2410 bool "QT2410" select CPU_S3C2410 select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the Armzone QT2410 diff --git a/arch/arm/mach-s3c2412/Kconfig b/arch/arm/mach-s3c2412/Kconfig index 35c1bde89cf2..c2bdc4635d12 100644 --- a/arch/arm/mach-s3c2412/Kconfig +++ b/arch/arm/mach-s3c2412/Kconfig @@ -48,6 +48,7 @@ config MACH_JIVE bool "Logitech Jive" select CPU_S3C2412 select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the Logitech Jive. @@ -61,6 +62,7 @@ config MACH_SMDK2413 select MACH_S3C2413 select MACH_SMDK select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using an SMDK2413 @@ -84,6 +86,7 @@ config MACH_VSTMS bool "VMSTMS" select CPU_S3C2412 select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using an VSTMS board diff --git a/arch/arm/mach-s3c2440/Kconfig b/arch/arm/mach-s3c2440/Kconfig index 8ae1b288f7fa..d7bba919a77e 100644 --- a/arch/arm/mach-s3c2440/Kconfig +++ b/arch/arm/mach-s3c2440/Kconfig @@ -48,6 +48,7 @@ config MACH_OSIRIS select S3C2440_XTAL_12000000 select S3C2410_IOTIMING if S3C2440_CPUFREQ select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the Simtec IM2440D20 module, also known as the Osiris. @@ -57,6 +58,7 @@ config MACH_RX3715 select CPU_S3C2440 select S3C2440_XTAL_16934400 select PM_H1940 if PM + select S3C_DEV_NAND help Say Y here if you are using the HP iPAQ rx3715. @@ -66,6 +68,7 @@ config ARCH_S3C2440 select S3C2440_XTAL_16934400 select MACH_SMDK select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the SMDK2440. @@ -74,6 +77,7 @@ config MACH_NEXCODER_2440 select CPU_S3C2440 select S3C2440_XTAL_12000000 select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the Nex Vision NEXCODER 2440 Light Board @@ -88,6 +92,7 @@ config MACH_AT2440EVB bool "Avantech AT2440EVB development board" select CPU_S3C2440 select S3C_DEV_USB_HOST + select S3C_DEV_NAND help Say Y here if you are using the AT2440EVB development board @@ -97,6 +102,7 @@ config MACH_MINI2440 select EEPROM_AT24 select LEDS_TRIGGER_BACKLIGHT select SND_S3C24XX_SOC_S3C24XX_UDA134X + select S3C_DEV_NAND help Say Y here to select support for the MINI2440. Is a 10cm x 10cm board available via various sources. It can come with a 3.5" or 7" touch LCD. diff --git a/arch/arm/mach-s3c6400/Kconfig b/arch/arm/mach-s3c6400/Kconfig index f5af212066c3..770b72067e3d 100644 --- a/arch/arm/mach-s3c6400/Kconfig +++ b/arch/arm/mach-s3c6400/Kconfig @@ -26,6 +26,7 @@ config MACH_SMDK6400 bool "SMDK6400" select CPU_S3C6400 select S3C_DEV_HSMMC + select S3C_DEV_NAND select S3C6400_SETUP_SDHCI help Machine support for the Samsung SMDK6400 diff --git a/arch/arm/mach-s3c6410/Kconfig b/arch/arm/mach-s3c6410/Kconfig index f9d0f09f9761..53fc3ff657f7 100644 --- a/arch/arm/mach-s3c6410/Kconfig +++ b/arch/arm/mach-s3c6410/Kconfig @@ -102,6 +102,7 @@ config MACH_HMT bool "Airgoo HMT" select CPU_S3C6410 select S3C_DEV_FB + select S3C_DEV_NAND select S3C_DEV_USB_HOST select S3C64XX_SETUP_FB_24BPP select HAVE_PWM diff --git a/arch/arm/plat-s3c64xx/dma.c b/arch/arm/plat-s3c64xx/dma.c index 67aa93dbb69e..266a10745a85 100644 --- a/arch/arm/plat-s3c64xx/dma.c +++ b/arch/arm/plat-s3c64xx/dma.c @@ -345,13 +345,13 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id, if (!chan) return -EINVAL; - buff = kzalloc(sizeof(struct s3c64xx_dma_buff), GFP_KERNEL); + buff = kzalloc(sizeof(struct s3c64xx_dma_buff), GFP_ATOMIC); if (!buff) { printk(KERN_ERR "%s: no memory for buffer\n", __func__); return -ENOMEM; } - lli = dma_pool_alloc(dma_pool, GFP_KERNEL, &buff->lli_dma); + lli = dma_pool_alloc(dma_pool, GFP_ATOMIC, &buff->lli_dma); if (!lli) { printk(KERN_ERR "%s: no memory for lli\n", __func__); ret = -ENOMEM; @@ -697,7 +697,7 @@ static int __init s3c64xx_dma_init(void) printk(KERN_INFO "%s: Registering DMA channels\n", __func__); - dma_pool = dma_pool_create("DMA-LLI", NULL, 32, 16, 0); + dma_pool = dma_pool_create("DMA-LLI", NULL, sizeof(struct pl080s_lli), 16, 0); if (!dma_pool) { printk(KERN_ERR "%s: failed to create pool\n", __func__); return -ENOMEM; diff --git a/arch/arm/plat-s3c64xx/include/plat/dma-plat.h b/arch/arm/plat-s3c64xx/include/plat/dma-plat.h index 0c30dd986725..8f76a1e474d6 100644 --- a/arch/arm/plat-s3c64xx/include/plat/dma-plat.h +++ b/arch/arm/plat-s3c64xx/include/plat/dma-plat.h @@ -26,7 +26,7 @@ struct s3c64xx_dma_buff { struct s3c64xx_dma_buff *next; void *pw; - struct pl080_lli *lli; + struct pl080s_lli *lli; dma_addr_t lli_dma; }; diff --git a/arch/arm/plat-s3c64xx/include/plat/irqs.h b/arch/arm/plat-s3c64xx/include/plat/irqs.h index 743a70094d04..7956fd3bb194 100644 --- a/arch/arm/plat-s3c64xx/include/plat/irqs.h +++ b/arch/arm/plat-s3c64xx/include/plat/irqs.h @@ -194,9 +194,17 @@ #define IRQ_EINT_GROUP(group, no) (IRQ_EINT_GROUP##group##_BASE + (no)) +/* Define a group of interrupts for board-specific use (eg, for MFD + * interrupt controllers). */ +#define IRQ_BOARD_START (IRQ_EINT_GROUP9_BASE + IRQ_EINT_GROUP9_NR + 1) + +#define IRQ_BOARD_NR 16 + +#define IRQ_BOARD_END (IRQ_BOARD_START + IRQ_BOARD_NR) + /* Set the default NR_IRQS */ -#define NR_IRQS (IRQ_EINT_GROUP9_BASE + IRQ_EINT_GROUP9_NR + 1) +#define NR_IRQS (IRQ_BOARD_END + 1) #endif /* __ASM_PLAT_S3C64XX_IRQS_H */ diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c index febac1950d8e..9745852261e0 100644 --- a/arch/arm/plat-s3c64xx/s3c6400-clock.c +++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c @@ -302,8 +302,8 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate) return -EINVAL; val = __raw_readl(reg); - val &= ~(0xf << sclk->shift); - val |= (div - 1) << sclk->shift; + val &= ~(0xf << sclk->divider_shift); + val |= (div - 1) << sclk->divider_shift; __raw_writel(val, reg); return 0; @@ -328,6 +328,8 @@ static int s3c64xx_setparent_clksrc(struct clk *clk, struct clk *parent) clksrc |= src_nr << sclk->shift; __raw_writel(clksrc, S3C_CLK_SRC); + + clk->parent = parent; return 0; } @@ -343,7 +345,7 @@ static unsigned long s3c64xx_roundrate_clksrc(struct clk *clk, if (rate > parent_rate) rate = parent_rate; else { - div = rate / parent_rate; + div = parent_rate / rate; if (div == 0) div = 1; |