diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-18 15:55:56 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-18 15:55:56 -0400 |
commit | 07198871dac00e9c250d647e1976d7aee527b805 (patch) | |
tree | 5c565a837cf55b0745fb099e14cff4fe9be65a69 /arch/arm/plat-s3c64xx | |
parent | dca230f00d737353e2dffae489c916b41971921f (diff) | |
parent | 01875d56ae9877f41d672d57524d90d3d4d00adf (diff) |
Merge branch 'next-s3c-fixes' of git://aeryn.fluff.org.uk/bjdooks/linux
Diffstat (limited to 'arch/arm/plat-s3c64xx')
-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 |
4 files changed, 18 insertions, 8 deletions
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, | |||
345 | if (!chan) | 345 | if (!chan) |
346 | return -EINVAL; | 346 | return -EINVAL; |
347 | 347 | ||
348 | buff = kzalloc(sizeof(struct s3c64xx_dma_buff), GFP_KERNEL); | 348 | buff = kzalloc(sizeof(struct s3c64xx_dma_buff), GFP_ATOMIC); |
349 | if (!buff) { | 349 | if (!buff) { |
350 | printk(KERN_ERR "%s: no memory for buffer\n", __func__); | 350 | printk(KERN_ERR "%s: no memory for buffer\n", __func__); |
351 | return -ENOMEM; | 351 | return -ENOMEM; |
352 | } | 352 | } |
353 | 353 | ||
354 | lli = dma_pool_alloc(dma_pool, GFP_KERNEL, &buff->lli_dma); | 354 | lli = dma_pool_alloc(dma_pool, GFP_ATOMIC, &buff->lli_dma); |
355 | if (!lli) { | 355 | if (!lli) { |
356 | printk(KERN_ERR "%s: no memory for lli\n", __func__); | 356 | printk(KERN_ERR "%s: no memory for lli\n", __func__); |
357 | ret = -ENOMEM; | 357 | ret = -ENOMEM; |
@@ -697,7 +697,7 @@ static int __init s3c64xx_dma_init(void) | |||
697 | 697 | ||
698 | printk(KERN_INFO "%s: Registering DMA channels\n", __func__); | 698 | printk(KERN_INFO "%s: Registering DMA channels\n", __func__); |
699 | 699 | ||
700 | dma_pool = dma_pool_create("DMA-LLI", NULL, 32, 16, 0); | 700 | dma_pool = dma_pool_create("DMA-LLI", NULL, sizeof(struct pl080s_lli), 16, 0); |
701 | if (!dma_pool) { | 701 | if (!dma_pool) { |
702 | printk(KERN_ERR "%s: failed to create pool\n", __func__); | 702 | printk(KERN_ERR "%s: failed to create pool\n", __func__); |
703 | return -ENOMEM; | 703 | 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 { | |||
26 | struct s3c64xx_dma_buff *next; | 26 | struct s3c64xx_dma_buff *next; |
27 | 27 | ||
28 | void *pw; | 28 | void *pw; |
29 | struct pl080_lli *lli; | 29 | struct pl080s_lli *lli; |
30 | dma_addr_t lli_dma; | 30 | dma_addr_t lli_dma; |
31 | }; | 31 | }; |
32 | 32 | ||
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 @@ | |||
194 | 194 | ||
195 | #define IRQ_EINT_GROUP(group, no) (IRQ_EINT_GROUP##group##_BASE + (no)) | 195 | #define IRQ_EINT_GROUP(group, no) (IRQ_EINT_GROUP##group##_BASE + (no)) |
196 | 196 | ||
197 | /* Define a group of interrupts for board-specific use (eg, for MFD | ||
198 | * interrupt controllers). */ | ||
199 | #define IRQ_BOARD_START (IRQ_EINT_GROUP9_BASE + IRQ_EINT_GROUP9_NR + 1) | ||
200 | |||
201 | #define IRQ_BOARD_NR 16 | ||
202 | |||
203 | #define IRQ_BOARD_END (IRQ_BOARD_START + IRQ_BOARD_NR) | ||
204 | |||
197 | /* Set the default NR_IRQS */ | 205 | /* Set the default NR_IRQS */ |
198 | 206 | ||
199 | #define NR_IRQS (IRQ_EINT_GROUP9_BASE + IRQ_EINT_GROUP9_NR + 1) | 207 | #define NR_IRQS (IRQ_BOARD_END + 1) |
200 | 208 | ||
201 | #endif /* __ASM_PLAT_S3C64XX_IRQS_H */ | 209 | #endif /* __ASM_PLAT_S3C64XX_IRQS_H */ |
202 | 210 | ||
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) | |||
302 | return -EINVAL; | 302 | return -EINVAL; |
303 | 303 | ||
304 | val = __raw_readl(reg); | 304 | val = __raw_readl(reg); |
305 | val &= ~(0xf << sclk->shift); | 305 | val &= ~(0xf << sclk->divider_shift); |
306 | val |= (div - 1) << sclk->shift; | 306 | val |= (div - 1) << sclk->divider_shift; |
307 | __raw_writel(val, reg); | 307 | __raw_writel(val, reg); |
308 | 308 | ||
309 | return 0; | 309 | return 0; |
@@ -328,6 +328,8 @@ static int s3c64xx_setparent_clksrc(struct clk *clk, struct clk *parent) | |||
328 | clksrc |= src_nr << sclk->shift; | 328 | clksrc |= src_nr << sclk->shift; |
329 | 329 | ||
330 | __raw_writel(clksrc, S3C_CLK_SRC); | 330 | __raw_writel(clksrc, S3C_CLK_SRC); |
331 | |||
332 | clk->parent = parent; | ||
331 | return 0; | 333 | return 0; |
332 | } | 334 | } |
333 | 335 | ||
@@ -343,7 +345,7 @@ static unsigned long s3c64xx_roundrate_clksrc(struct clk *clk, | |||
343 | if (rate > parent_rate) | 345 | if (rate > parent_rate) |
344 | rate = parent_rate; | 346 | rate = parent_rate; |
345 | else { | 347 | else { |
346 | div = rate / parent_rate; | 348 | div = parent_rate / rate; |
347 | 349 | ||
348 | if (div == 0) | 350 | if (div == 0) |
349 | div = 1; | 351 | div = 1; |