]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - drivers/misc/atmel_pwm.c
Tegra CEC Support
[linux-2.6.git] / drivers / misc / atmel_pwm.c
index 0d5ce03cdff24cf5d683a3750bb2a56ba397b6e1..28f5aaa19d4a289b8b0cf9241f42ab641e4051ca 100644 (file)
@@ -1,6 +1,7 @@
 #include <linux/module.h>
 #include <linux/clk.h>
 #include <linux/err.h>
+#include <linux/slab.h>
 #include <linux/io.h>
 #include <linux/interrupt.h>
 #include <linux/platform_device.h>
@@ -211,8 +212,7 @@ int pwm_clk_alloc(unsigned prescale, unsigned div)
        if ((mr & 0xffff) == 0) {
                mr |= val;
                ret = PWM_CPR_CLKA;
-       }
-       if ((mr & (0xffff << 16)) == 0) {
+       } else if ((mr & (0xffff << 16)) == 0) {
                mr |= val << 16;
                ret = PWM_CPR_CLKB;
        }
@@ -329,10 +329,10 @@ static int __init pwm_probe(struct platform_device *pdev)
        p->pdev = pdev;
        p->mask = *mp;
        p->irq = irq;
-       p->base = ioremap(r->start, r->end - r->start + 1);
+       p->base = ioremap(r->start, resource_size(r));
        if (!p->base)
                goto fail;
-       p->clk = clk_get(&pdev->dev, "mck");
+       p->clk = clk_get(&pdev->dev, "pwm_clk");
        if (IS_ERR(p->clk)) {
                status = PTR_ERR(p->clk);
                p->clk = NULL;