diff options
Diffstat (limited to 'drivers/misc/mei/pci-me.c')
| -rw-r--r-- | drivers/misc/mei/pci-me.c | 52 | 
1 files changed, 7 insertions, 45 deletions
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c index b40ec0601ab..b8b5c9c3ad0 100644 --- a/drivers/misc/mei/pci-me.c +++ b/drivers/misc/mei/pci-me.c @@ -247,44 +247,14 @@ static void mei_remove(struct pci_dev *pdev)  	hw = to_me_hw(dev); -	mutex_lock(&dev->device_lock); - -	cancel_delayed_work(&dev->timer_work); -	mei_wd_stop(dev); +	dev_err(&pdev->dev, "stop\n"); +	mei_stop(dev);  	mei_pdev = NULL; -	if (dev->iamthif_cl.state == MEI_FILE_CONNECTED) { -		dev->iamthif_cl.state = MEI_FILE_DISCONNECTING; -		mei_cl_disconnect(&dev->iamthif_cl); -	} -	if (dev->wd_cl.state == MEI_FILE_CONNECTED) { -		dev->wd_cl.state = MEI_FILE_DISCONNECTING; -		mei_cl_disconnect(&dev->wd_cl); -	} - -	/* Unregistering watchdog device */  	mei_watchdog_unregister(dev); -	/* remove entry if already in list */ -	dev_dbg(&pdev->dev, "list del iamthif and wd file list.\n"); - -	if (dev->open_handle_count > 0) -		dev->open_handle_count--; -	mei_cl_unlink(&dev->wd_cl); - -	if (dev->open_handle_count > 0) -		dev->open_handle_count--; -	mei_cl_unlink(&dev->iamthif_cl); - -	dev->iamthif_current_cb = NULL; -	dev->me_clients_num = 0; - -	mutex_unlock(&dev->device_lock); - -	flush_scheduled_work(); -  	/* disable interrupts */  	mei_disable_interrupts(dev); @@ -308,28 +278,20 @@ static int mei_pci_suspend(struct device *device)  {  	struct pci_dev *pdev = to_pci_dev(device);  	struct mei_device *dev = pci_get_drvdata(pdev); -	int err;  	if (!dev)  		return -ENODEV; -	mutex_lock(&dev->device_lock); -	cancel_delayed_work(&dev->timer_work); +	dev_err(&pdev->dev, "suspend\n"); -	/* Stop watchdog if exists */ -	err = mei_wd_stop(dev); -	/* Set new mei state */ -	if (dev->dev_state == MEI_DEV_ENABLED || -	    dev->dev_state == MEI_DEV_RECOVERING_FROM_RESET) { -		dev->dev_state = MEI_DEV_POWER_DOWN; -		mei_reset(dev, 0); -	} -	mutex_unlock(&dev->device_lock); +	mei_stop(dev); + +	mei_disable_interrupts(dev);  	free_irq(pdev->irq, dev);  	pci_disable_msi(pdev); -	return err; +	return 0;  }  static int mei_pci_resume(struct device *device)  |