DORMANTno replies

[PATCH 5/7] IrDA: sti/cli removal from EP7211 IrDA driver

From: Samuel Ortiz <hidden>
Date: 2006-02-09 21:32:24
Subsystem: networking drivers, the rest · Maintainers: Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds

This patch replaces the deprecated sti/cli routines with the corresponding
spin_lock ones.

Signed-off-by: David Chosrova <redacted>
Signed-off-by: Samuel Ortiz <redacted>
diff --git a/drivers/net/irda/ep7211_ir.c b/drivers/net/irda/ep7211_ir.c
index 3189626..6edf988 100644
--- a/drivers/net/irda/ep7211_ir.c
+++ b/drivers/net/irda/ep7211_ir.c
@@ -8,6 +8,7 @@
 #include <linux/delay.h>
 #include <linux/tty.h>
 #include <linux/init.h>
+#include <linux/spinlock.h>

 #include <net/irda/irda.h>
 #include <net/irda/irda_device.h>
@@ -15,6 +16,7 @@
 #include <asm/io.h>
 #include <asm/hardware.h>

+
 #define MIN_DELAY 25      /* 15 us, but wait a little more to be sure */
 #define MAX_DELAY 10000   /* 1 ms */
@@ -23,6 +25,7 @@ static void ep7211_ir_close(dongle_t *se
 static int  ep7211_ir_change_speed(struct irda_task *task);
 static int  ep7211_ir_reset(struct irda_task *task);

+static spinlock_t ep7211_lock;
 static struct dongle_reg dongle = {
 	.type = IRDA_EP7211_IR,
 	.open = ep7211_ir_open,
@@ -36,7 +39,7 @@ static void ep7211_ir_open(dongle_t *sel
 {
 	unsigned int syscon1, flags;

-	save_flags(flags); cli();
+	spin_lock_irqsave(&ep7211_lock, flags);

 	/* Turn on the SIR encoder. */
 	syscon1 = clps_readl(SYSCON1);
@@ -46,14 +49,14 @@ static void ep7211_ir_open(dongle_t *sel
 	/* XXX: We should disable modem status interrupts on the first
 		UART (interrupt #14). */

-	restore_flags(flags);
+	spin_lock_irqrestore(&ep7211_lock, flags);
 }

 static void ep7211_ir_close(dongle_t *self)
 {
 	unsigned int syscon1, flags;

-	save_flags(flags); cli();
+	spin_lock_irqsave(&ep7211_lock, flags);

 	/* Turn off the SIR encoder. */
 	syscon1 = clps_readl(SYSCON1);
@@ -63,7 +66,7 @@ static void ep7211_ir_close(dongle_t *se
 	/* XXX: If we've disabled the modem status interrupts, we should
 		reset them back to their original state. */

-	restore_flags(flags);
+	spin_lock_irqrestore(&ep7211_lock, flags);
 }

 /*
@@ -99,6 +102,7 @@ static int ep7211_ir_reset(struct irda_t
  */
 static int __init ep7211_ir_init(void)
 {
+	spin_lock_init(&ep7211_lock);
 	return irda_device_register_dongle(&dongle);
 }




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help