Merge branch 'clk' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm
* 'clk' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: ARM: 7131/1: clkdev: Add Common Macro for clk_lookup clk: spi-pl022: convert to clk_prepare()/clk_unprepare() clk: timer-sp: convert to clk_prepare()/clk_unprepare() clk: sa1111: convert to clk_prepare()/clk_unprepare() clk: mmci: convert to clk_prepare()/clk_unprepare() clk: amba-pl011: convert to clk_prepare()/clk_unprepare() clk: amba-pl010: convert to clk_prepare()/clk_unprepare() clk: amba-clcd: convert to clk_prepare()/clk_unprepare() clk: amba bus: convert to clk_prepare()/clk_unprepare() clk: provide prepare/unprepare functions
This commit is contained in:
@@ -718,6 +718,10 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
ret = clk_prepare(sachip->clk);
|
||||
if (ret)
|
||||
goto err_clkput;
|
||||
|
||||
spin_lock_init(&sachip->lock);
|
||||
|
||||
sachip->dev = me;
|
||||
@@ -733,7 +737,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
|
||||
sachip->base = ioremap(mem->start, PAGE_SIZE * 2);
|
||||
if (!sachip->base) {
|
||||
ret = -ENOMEM;
|
||||
goto err_clkput;
|
||||
goto err_clk_unprep;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -809,6 +813,8 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
|
||||
|
||||
err_unmap:
|
||||
iounmap(sachip->base);
|
||||
err_clk_unprep:
|
||||
clk_unprepare(sachip->clk);
|
||||
err_clkput:
|
||||
clk_put(sachip->clk);
|
||||
err_free:
|
||||
@@ -835,6 +841,7 @@ static void __sa1111_remove(struct sa1111 *sachip)
|
||||
sa1111_writel(0, irqbase + SA1111_WAKEEN1);
|
||||
|
||||
clk_disable(sachip->clk);
|
||||
clk_unprepare(sachip->clk);
|
||||
|
||||
if (sachip->irq != NO_IRQ) {
|
||||
irq_set_chained_handler(sachip->irq, NULL);
|
||||
|
@@ -41,9 +41,17 @@ static long __init sp804_get_clock_rate(const char *name)
|
||||
return PTR_ERR(clk);
|
||||
}
|
||||
|
||||
err = clk_prepare(clk);
|
||||
if (err) {
|
||||
pr_err("sp804: %s clock failed to prepare: %d\n", name, err);
|
||||
clk_put(clk);
|
||||
return err;
|
||||
}
|
||||
|
||||
err = clk_enable(clk);
|
||||
if (err) {
|
||||
pr_err("sp804: %s clock failed to enable: %d\n", name, err);
|
||||
clk_unprepare(clk);
|
||||
clk_put(clk);
|
||||
return err;
|
||||
}
|
||||
@@ -52,6 +60,7 @@ static long __init sp804_get_clock_rate(const char *name)
|
||||
if (rate < 0) {
|
||||
pr_err("sp804: %s clock failed to get rate: %ld\n", name, rate);
|
||||
clk_disable(clk);
|
||||
clk_unprepare(clk);
|
||||
clk_put(clk);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user