Skip to contentSkip to conversation

USB: Move runtime PM callbacks to usb_device_pm_ops

PATCH In review Rafael J. Wysocki 2 participants 5 messages Feb 16, 2011 – Feb 17, 2011 USB

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 USB: Move runtime PM callbacks to usb_device_pm_ops

From: Rafael J. Wysocki <[email protected]>

USB defines usb_device_type pointing to usb_device_pm_ops that provides system-wide PM callbacks only and usb_bus_type pointing to usb_bus_pm_ops that provides runtime PM callbacks only. However, the USB runtime PM callbacks may be defined in usb_device_pm_ops which makes it possible to drop usb_bus_pm_ops and will allow us to consolidate the handling of subsystems by the PM core code.

---

Hi Greg,

Would you mind if I merged the following patch? It is requisite for
https://patchwork.kernel.org/patch/552411/ which I think is the right thing to do and people seem to generally agree with me.

Alan has seen it and says it is fine.

Thanks,
Rafael

---
 drivers/usb/core/driver.c |   15 +++------------
 drivers/usb/core/usb.c    |    5 +++++
 drivers/usb/core/usb.h    |    3 +++
 3 files changed, 11 insertions(+), 12 deletions(-)
drivers/usb/core/driver.c +3 -12
Index: linux-2.6/drivers/usb/core/driver.c
===================================================================
@@ -1646,7 +1646,7 @@ static int autosuspend_check(struct usb_
 	return 0;
 }
 
-static int usb_runtime_suspend(struct device *dev)
+int usb_runtime_suspend(struct device *dev)
 {
 	struct usb_device	*udev = to_usb_device(dev);
 	int			status;
@@ -1662,7 +1662,7 @@ static int usb_runtime_suspend(struct de
 	return status;
 }
 
-static int usb_runtime_resume(struct device *dev)
+int usb_runtime_resume(struct device *dev)
 {
 	struct usb_device	*udev = to_usb_device(dev);
 	int			status;
@@ -1674,7 +1674,7 @@ static int usb_runtime_resume(struct dev
 	return status;
 }
 
-static int usb_runtime_idle(struct device *dev)
+int usb_runtime_idle(struct device *dev)
 {
 	struct usb_device	*udev = to_usb_device(dev);
 
@@ -1686,19 +1686,10 @@ static int usb_runtime_idle(struct devic
 	return 0;
 }
 
-static const struct dev_pm_ops usb_bus_pm_ops = {
-	.runtime_suspend =	usb_runtime_suspend,
-	.runtime_resume =	usb_runtime_resume,
-	.runtime_idle =		usb_runtime_idle,
-};
-
 #endif /* CONFIG_USB_SUSPEND */
 
 struct bus_type usb_bus_type = {
 	.name =		"usb",
 	.match =	usb_device_match,
 	.uevent =	usb_uevent,
-#ifdef CONFIG_USB_SUSPEND
-	.pm =		&usb_bus_pm_ops,
-#endif
 };
drivers/usb/core/usb.h +3 -0
Index: linux-2.6/drivers/usb/core/usb.h
===================================================================
@@ -77,6 +77,9 @@ static inline int usb_port_resume(struct
 extern void usb_autosuspend_device(struct usb_device *udev);
 extern int usb_autoresume_device(struct usb_device *udev);
 extern int usb_remote_wakeup(struct usb_device *dev);
+extern int usb_runtime_suspend(struct device *dev);
+extern int usb_runtime_resume(struct device *dev);
+extern int usb_runtime_idle(struct device *dev);
 
 #else
 
drivers/usb/core/usb.c +5 -0
Index: linux-2.6/drivers/usb/core/usb.c
===================================================================
@@ -315,6 +315,11 @@ static const struct dev_pm_ops usb_devic
 	.thaw =		usb_dev_thaw,
 	.poweroff =	usb_dev_poweroff,
 	.restore =	usb_dev_restore,
+#ifdef CONFIG_USB_SUSPEND
+	.runtime_suspend =	usb_runtime_suspend,
+	.runtime_resume =	usb_runtime_resume,
+	.runtime_idle =		usb_runtime_idle,
+#endif
 };
 
 #endif	/* CONFIG_PM */
Acked-by on v1 1/1
#1 lore raw
Quoted 12 lines · Rafael J. Wysocki

From: Rafael J. Wysocki <[email protected]>

USB defines usb_device_type pointing to usb_device_pm_ops that provides system-wide PM callbacks only and usb_bus_type pointing to usb_bus_pm_ops that provides runtime PM callbacks only. However, the USB runtime PM callbacks may be defined in usb_device_pm_ops which makes it possible to drop usb_bus_pm_ops and will allow us to consolidate the handling of subsystems by the PM core code.

---

Quoted 7 lines

Hi Greg,

Would you mind if I merged the following patch? It is requisite for
https://patchwork.kernel.org/patch/552411/ which I think is the right thing to do and people seem to generally agree with me.

Alan has seen it and says it is fine.

Looks great to me, feel free to add:

to it and take it through your tree.

thanks,

greg k-h

Acked-by on v1 1/1
#2 lore raw
In reply to Rafael J. Wysocki
Quoted 12 lines · Rafael J. Wysocki

From: Rafael J. Wysocki <[email protected]>

USB defines usb_device_type pointing to usb_device_pm_ops that provides system-wide PM callbacks only and usb_bus_type pointing to usb_bus_pm_ops that provides runtime PM callbacks only. However, the USB runtime PM callbacks may be defined in usb_device_pm_ops which makes it possible to drop usb_bus_pm_ops and will allow us to consolidate the handling of subsystems by the PM core code.

---

Quoted 7 lines

Hi Greg,

Would you mind if I merged the following patch? It is requisite for
https://patchwork.kernel.org/patch/552411/ which I think is the right thing to do and people seem to generally agree with me.

Alan has seen it and says it is fine.

Looks great to me, feel free to add:

to it and take it through your tree.

thanks,

greg k-h

#3 lore raw
Quoted 19 lines · Greg KH
Quoted 18 lines · Rafael J. Wysocki

From: Rafael J. Wysocki <[email protected]>

USB defines usb_device_type pointing to usb_device_pm_ops that provides system-wide PM callbacks only and usb_bus_type pointing to usb_bus_pm_ops that provides runtime PM callbacks only. However, the USB runtime PM callbacks may be defined in usb_device_pm_ops which makes it possible to drop usb_bus_pm_ops and will allow us to consolidate the handling of subsystems by the PM core code.

---

Hi Greg,

Would you mind if I merged the following patch? It is requisite for
https://patchwork.kernel.org/patch/552411/ which I think is the right thing to do and people seem to generally agree with me.

Quoted 5 lines
Quoted 1 line

Alan has seen it and says it is fine.

Looks great to me, feel free to add:

to it and take it through your tree.

I will, thanks!

Rafael

#4 lore raw
In reply to Greg KH
Quoted 19 lines · Greg KH
Quoted 18 lines · Rafael J. Wysocki

From: Rafael J. Wysocki <[email protected]>

USB defines usb_device_type pointing to usb_device_pm_ops that provides system-wide PM callbacks only and usb_bus_type pointing to usb_bus_pm_ops that provides runtime PM callbacks only. However, the USB runtime PM callbacks may be defined in usb_device_pm_ops which makes it possible to drop usb_bus_pm_ops and will allow us to consolidate the handling of subsystems by the PM core code.

---

Hi Greg,

Would you mind if I merged the following patch? It is requisite for
https://patchwork.kernel.org/patch/552411/ which I think is the right thing to do and people seem to generally agree with me.

Quoted 5 lines
Quoted 1 line

Alan has seen it and says it is fine.

Looks great to me, feel free to add:

to it and take it through your tree.

I will, thanks!

Rafael