diff options
-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/s3c6400-clock.c | 8 |
3 files changed, 9 insertions, 7 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/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; |