|
@@ -1650,6 +1650,9 @@ static int ite_suspend(struct pnp_dev *pdev, pm_message_t state)
|
|
|
|
|
|
ite_dbg("%s called", __func__);
|
|
|
|
|
|
+ /* wait for any transmission to end */
|
|
|
+ wait_event_interruptible(dev->tx_ended, !dev->transmitting);
|
|
|
+
|
|
|
spin_lock_irqsave(&dev->lock, flags);
|
|
|
|
|
|
/* disable all interrupts */
|
|
@@ -1670,15 +1673,10 @@ static int ite_resume(struct pnp_dev *pdev)
|
|
|
|
|
|
spin_lock_irqsave(&dev->lock, flags);
|
|
|
|
|
|
- if (dev->transmitting) {
|
|
|
- /* wake up the transmitter */
|
|
|
- wake_up_interruptible(&dev->tx_queue);
|
|
|
- } else {
|
|
|
- /* reinitialize hardware config registers */
|
|
|
- dev->params.init_hardware(dev);
|
|
|
- /* enable the receiver */
|
|
|
- dev->params.enable_rx(dev);
|
|
|
- }
|
|
|
+ /* reinitialize hardware config registers */
|
|
|
+ dev->params.init_hardware(dev);
|
|
|
+ /* enable the receiver */
|
|
|
+ dev->params.enable_rx(dev);
|
|
|
|
|
|
spin_unlock_irqrestore(&dev->lock, flags);
|
|
|
|