aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/rc/ite-cir.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c
index d1dec5c25324..e716b931cf7e 100644
--- a/drivers/media/rc/ite-cir.c
+++ b/drivers/media/rc/ite-cir.c
@@ -1650,6 +1650,9 @@ static int ite_suspend(struct pnp_dev *pdev, pm_message_t state)
1650 1650
1651 ite_dbg("%s called", __func__); 1651 ite_dbg("%s called", __func__);
1652 1652
1653 /* wait for any transmission to end */
1654 wait_event_interruptible(dev->tx_ended, !dev->transmitting);
1655
1653 spin_lock_irqsave(&dev->lock, flags); 1656 spin_lock_irqsave(&dev->lock, flags);
1654 1657
1655 /* disable all interrupts */ 1658 /* disable all interrupts */
@@ -1670,15 +1673,10 @@ static int ite_resume(struct pnp_dev *pdev)
1670 1673
1671 spin_lock_irqsave(&dev->lock, flags); 1674 spin_lock_irqsave(&dev->lock, flags);
1672 1675
1673 if (dev->transmitting) { 1676 /* reinitialize hardware config registers */
1674 /* wake up the transmitter */ 1677 dev->params.init_hardware(dev);
1675 wake_up_interruptible(&dev->tx_queue); 1678 /* enable the receiver */
1676 } else { 1679 dev->params.enable_rx(dev);
1677 /* reinitialize hardware config registers */
1678 dev->params.init_hardware(dev);
1679 /* enable the receiver */
1680 dev->params.enable_rx(dev);
1681 }
1682 1680
1683 spin_unlock_irqrestore(&dev->lock, flags); 1681 spin_unlock_irqrestore(&dev->lock, flags);
1684 1682