diff options
Diffstat (limited to 'drivers/usb/core/driver.c')
-rw-r--r-- | drivers/usb/core/driver.c | 13 |
1 files changed, 0 insertions, 13 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index 8987cec9549d..ebcadaad89d1 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c | |||
@@ -473,11 +473,6 @@ static int usb_unbind_interface(struct device *dev) | |||
473 | pm_runtime_disable(dev); | 473 | pm_runtime_disable(dev); |
474 | pm_runtime_set_suspended(dev); | 474 | pm_runtime_set_suspended(dev); |
475 | 475 | ||
476 | /* Undo any residual pm_autopm_get_interface_* calls */ | ||
477 | for (r = atomic_read(&intf->pm_usage_cnt); r > 0; --r) | ||
478 | usb_autopm_put_interface_no_suspend(intf); | ||
479 | atomic_set(&intf->pm_usage_cnt, 0); | ||
480 | |||
481 | if (!error) | 476 | if (!error) |
482 | usb_autosuspend_device(udev); | 477 | usb_autosuspend_device(udev); |
483 | 478 | ||
@@ -1633,7 +1628,6 @@ void usb_autopm_put_interface(struct usb_interface *intf) | |||
1633 | int status; | 1628 | int status; |
1634 | 1629 | ||
1635 | usb_mark_last_busy(udev); | 1630 | usb_mark_last_busy(udev); |
1636 | atomic_dec(&intf->pm_usage_cnt); | ||
1637 | status = pm_runtime_put_sync(&intf->dev); | 1631 | status = pm_runtime_put_sync(&intf->dev); |
1638 | dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", | 1632 | dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", |
1639 | __func__, atomic_read(&intf->dev.power.usage_count), | 1633 | __func__, atomic_read(&intf->dev.power.usage_count), |
@@ -1662,7 +1656,6 @@ void usb_autopm_put_interface_async(struct usb_interface *intf) | |||
1662 | int status; | 1656 | int status; |
1663 | 1657 | ||
1664 | usb_mark_last_busy(udev); | 1658 | usb_mark_last_busy(udev); |
1665 | atomic_dec(&intf->pm_usage_cnt); | ||
1666 | status = pm_runtime_put(&intf->dev); | 1659 | status = pm_runtime_put(&intf->dev); |
1667 | dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", | 1660 | dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", |
1668 | __func__, atomic_read(&intf->dev.power.usage_count), | 1661 | __func__, atomic_read(&intf->dev.power.usage_count), |
@@ -1684,7 +1677,6 @@ void usb_autopm_put_interface_no_suspend(struct usb_interface *intf) | |||
1684 | struct usb_device *udev = interface_to_usbdev(intf); | 1677 | struct usb_device *udev = interface_to_usbdev(intf); |
1685 | 1678 | ||
1686 | usb_mark_last_busy(udev); | 1679 | usb_mark_last_busy(udev); |
1687 | atomic_dec(&intf->pm_usage_cnt); | ||
1688 | pm_runtime_put_noidle(&intf->dev); | 1680 | pm_runtime_put_noidle(&intf->dev); |
1689 | } | 1681 | } |
1690 | EXPORT_SYMBOL_GPL(usb_autopm_put_interface_no_suspend); | 1682 | EXPORT_SYMBOL_GPL(usb_autopm_put_interface_no_suspend); |
@@ -1715,8 +1707,6 @@ int usb_autopm_get_interface(struct usb_interface *intf) | |||
1715 | status = pm_runtime_get_sync(&intf->dev); | 1707 | status = pm_runtime_get_sync(&intf->dev); |
1716 | if (status < 0) | 1708 | if (status < 0) |
1717 | pm_runtime_put_sync(&intf->dev); | 1709 | pm_runtime_put_sync(&intf->dev); |
1718 | else | ||
1719 | atomic_inc(&intf->pm_usage_cnt); | ||
1720 | dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", | 1710 | dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", |
1721 | __func__, atomic_read(&intf->dev.power.usage_count), | 1711 | __func__, atomic_read(&intf->dev.power.usage_count), |
1722 | status); | 1712 | status); |
@@ -1750,8 +1740,6 @@ int usb_autopm_get_interface_async(struct usb_interface *intf) | |||
1750 | status = pm_runtime_get(&intf->dev); | 1740 | status = pm_runtime_get(&intf->dev); |
1751 | if (status < 0 && status != -EINPROGRESS) | 1741 | if (status < 0 && status != -EINPROGRESS) |
1752 | pm_runtime_put_noidle(&intf->dev); | 1742 | pm_runtime_put_noidle(&intf->dev); |
1753 | else | ||
1754 | atomic_inc(&intf->pm_usage_cnt); | ||
1755 | dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", | 1743 | dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", |
1756 | __func__, atomic_read(&intf->dev.power.usage_count), | 1744 | __func__, atomic_read(&intf->dev.power.usage_count), |
1757 | status); | 1745 | status); |
@@ -1775,7 +1763,6 @@ void usb_autopm_get_interface_no_resume(struct usb_interface *intf) | |||
1775 | struct usb_device *udev = interface_to_usbdev(intf); | 1763 | struct usb_device *udev = interface_to_usbdev(intf); |
1776 | 1764 | ||
1777 | usb_mark_last_busy(udev); | 1765 | usb_mark_last_busy(udev); |
1778 | atomic_inc(&intf->pm_usage_cnt); | ||
1779 | pm_runtime_get_noresume(&intf->dev); | 1766 | pm_runtime_get_noresume(&intf->dev); |
1780 | } | 1767 | } |
1781 | EXPORT_SYMBOL_GPL(usb_autopm_get_interface_no_resume); | 1768 | EXPORT_SYMBOL_GPL(usb_autopm_get_interface_no_resume); |