summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pciradio.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/pciradio.c b/pciradio.c
index 8d058d7..8bdd53a 100644
--- a/pciradio.c
+++ b/pciradio.c
@@ -1172,7 +1172,6 @@ static int pciradio_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long
rad->bursttime[chan->chanpos - 1] = stack.p.data;
break;
case ZT_RADPAR_UIODATA:
- spin_lock_irqsave(&rad->lock,flags);
byte1 = __pciradio_getcreg(rad,8);
byte1 &= ~(1 << (chan->chanpos - 1));
byte1 &= ~(1 << (chan->chanpos + 3));
@@ -1182,7 +1181,6 @@ static int pciradio_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long
spin_unlock_irqrestore(&rad->lock,flags);
break;
case ZT_RADPAR_UIOMODE:
- spin_lock_irqsave(&rad->lock,flags);
byte1 = __pciradio_getcreg(rad,0xe);
byte1 &= ~(1 << (chan->chanpos - 1));
byte1 &= ~(1 << (chan->chanpos + 3));
@@ -1205,7 +1203,6 @@ static int pciradio_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long
if (rad->remmode[chan->chanpos - 1] == ZT_RADPAR_REM_RBI1)
{
/* set UIOA and UIOB for output */
- spin_lock_irqsave(&rad->lock,flags);
byte1 = __pciradio_getcreg(rad,0xe);
mask = (1 << (chan->chanpos - 1)) |
(1 << (chan->chanpos + 3));
@@ -1222,10 +1219,10 @@ static int pciradio_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long
interruptible_sleep_on_timeout(&mywait,10);
rad->lastremcmd = jiffies;
rbi_out(rad,chan->chanpos - 1,(unsigned char *)&stack.p.data);
+ spin_lock_irqsave(&rad->lock,flags);
break;
}
/* set UIOA and UIOB for output */
- spin_lock_irqsave(&rad->lock,flags);
byte1 = __pciradio_getcreg(rad,0xe);
mask = 1 << (chan->chanpos + 3); /* B an output */
byte2 = byte1 & (~mask);