|
@@ -942,23 +942,6 @@ static irqreturn_t nvt_cir_wake_isr(int irq, void *data)
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
|
-static void nvt_enable_cir(struct nvt_dev *nvt)
|
|
|
-{
|
|
|
- /* set function enable flags */
|
|
|
- nvt_cir_reg_write(nvt, CIR_IRCON_TXEN | CIR_IRCON_RXEN |
|
|
|
- CIR_IRCON_RXINV | CIR_IRCON_SAMPLE_PERIOD_SEL,
|
|
|
- CIR_IRCON);
|
|
|
-
|
|
|
- /* enable the CIR logical device */
|
|
|
- nvt_enable_logical_dev(nvt, LOGICAL_DEV_CIR);
|
|
|
-
|
|
|
- /* clear all pending interrupts */
|
|
|
- nvt_cir_reg_write(nvt, 0xff, CIR_IRSTS);
|
|
|
-
|
|
|
- /* enable interrupts */
|
|
|
- nvt_set_cir_iren(nvt);
|
|
|
-}
|
|
|
-
|
|
|
static void nvt_disable_cir(struct nvt_dev *nvt)
|
|
|
{
|
|
|
/* disable CIR interrupts */
|
|
@@ -984,9 +967,23 @@ static int nvt_open(struct rc_dev *dev)
|
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&nvt->nvt_lock, flags);
|
|
|
- nvt_enable_cir(nvt);
|
|
|
+
|
|
|
+ /* set function enable flags */
|
|
|
+ nvt_cir_reg_write(nvt, CIR_IRCON_TXEN | CIR_IRCON_RXEN |
|
|
|
+ CIR_IRCON_RXINV | CIR_IRCON_SAMPLE_PERIOD_SEL,
|
|
|
+ CIR_IRCON);
|
|
|
+
|
|
|
+ /* clear all pending interrupts */
|
|
|
+ nvt_cir_reg_write(nvt, 0xff, CIR_IRSTS);
|
|
|
+
|
|
|
+ /* enable interrupts */
|
|
|
+ nvt_set_cir_iren(nvt);
|
|
|
+
|
|
|
spin_unlock_irqrestore(&nvt->nvt_lock, flags);
|
|
|
|
|
|
+ /* enable the CIR logical device */
|
|
|
+ nvt_enable_logical_dev(nvt, LOGICAL_DEV_CIR);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|