commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=e167e8ab75b86f6fab2d1e0f48241fa78191936b
branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk

Signed-off-by: Steven Miao <[email protected]>
Signed-off-by: Bob Liu <[email protected]>
---
 drivers/char/bfin_simple_timer.c |   15 +++------------
 1 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/drivers/char/bfin_simple_timer.c b/drivers/char/bfin_simple_timer.c
index b29c5e7..4245bb5 100644
--- a/drivers/char/bfin_simple_timer.c
+++ b/drivers/char/bfin_simple_timer.c
@@ -25,7 +25,6 @@
  *
  * Licensed under the GPL-2 or later.
  */
-
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/module.h>
@@ -128,9 +127,6 @@ timer_ioctl(struct file *filp, uint cmd, unsigned long arg)
 		width = get_gptimer_pwidth(t->id);
 		pr_debug(DRV_NAME ": TIMER_START: period=%lu, width=%lu\n",
 				period, width);
-		if (period < width)
-			return -EFAULT;
-
 		enable_gptimers(t->bit);
 		break;
 	case BFIN_SIMPLE_TIMER_STOP:
@@ -151,14 +147,8 @@ timer_isr(int irq, void *dev_id)
 {
 	int minor = (int)dev_id;
 	struct timer *t = &timer_code[minor];
-#if (MAX_BLACKFIN_GPTIMERS > 8)
-	int octet = BFIN_TIMER_OCTET(minor);
-#else
-	int octet = 0;
-#endif
-	unsigned long state = get_gptimer_status(octet);
-	if (state & t->irqbit) {
-		set_gptimer_status(octet, t->irqbit);
+	if (get_gptimer_intr(t->id)) {
+		clear_gptimer_intr(t->id);
 		t->isr_count++;
 	}
 	return IRQ_HANDLED;
@@ -201,6 +191,7 @@ timer_close(struct inode *inode, struct file *filp)
 	int minor = MINOR(inode->i_rdev);
 	struct timer *t = filp->private_data;;
 	disable_gptimers(t->bit);
+	peripheral_free(t->per_pin);
 	free_irq(t->irq, (void *)minor);
 	pr_debug(DRV_NAME ": device(%d) closed\n", minor);
 	return 0;
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to