USB: EHCI: move ehci_update_device() to ehci-lpm.c
In preparation for splitting the ehci-hcd driver into a core library and separate platform-specific driver modules, this patch (as1618) moves ehci_update_device() from a couple of platform-specific source files into ehci-lpm.c. This is where it should have been all along, since all it does is call a couple of other functions that are already in ehci-lpm.c. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Acked-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
acc0850340
commit
d39dbc8918
3 changed files with 20 additions and 35 deletions
|
@ -17,8 +17,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* this file is part of ehci-hcd.c */
|
/* this file is part of ehci-hcd.c */
|
||||||
static int __maybe_unused ehci_lpm_set_da(struct ehci_hcd *ehci,
|
|
||||||
int dev_addr, int port_num)
|
static int ehci_lpm_set_da(struct ehci_hcd *ehci, int dev_addr, int port_num)
|
||||||
{
|
{
|
||||||
u32 __iomem portsc;
|
u32 __iomem portsc;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ static int __maybe_unused ehci_lpm_set_da(struct ehci_hcd *ehci,
|
||||||
* this function is used to check if the device support LPM
|
* this function is used to check if the device support LPM
|
||||||
* if yes, mark the PORTSC register with PORT_LPM bit
|
* if yes, mark the PORTSC register with PORT_LPM bit
|
||||||
*/
|
*/
|
||||||
static int __maybe_unused ehci_lpm_check(struct ehci_hcd *ehci, int port)
|
static int ehci_lpm_check(struct ehci_hcd *ehci, int port)
|
||||||
{
|
{
|
||||||
u32 __iomem *portsc ;
|
u32 __iomem *portsc ;
|
||||||
u32 val32;
|
u32 val32;
|
||||||
|
@ -82,3 +82,20 @@ static int __maybe_unused ehci_lpm_check(struct ehci_hcd *ehci, int port)
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int __maybe_unused ehci_update_device(struct usb_hcd *hcd,
|
||||||
|
struct usb_device *udev)
|
||||||
|
{
|
||||||
|
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
||||||
|
int rc = 0;
|
||||||
|
|
||||||
|
if (!udev->parent) /* udev is root hub itself, impossible */
|
||||||
|
rc = -1;
|
||||||
|
/* we only support lpm device connected to root hub yet */
|
||||||
|
if (ehci->has_lpm && !udev->parent->parent) {
|
||||||
|
rc = ehci_lpm_set_da(ehci, udev->devnum, udev->portnum);
|
||||||
|
if (!rc)
|
||||||
|
rc = ehci_lpm_check(ehci, udev->portnum);
|
||||||
|
}
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
|
@ -379,22 +379,6 @@ static int ehci_pci_resume(struct usb_hcd *hcd, bool hibernated)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int ehci_update_device(struct usb_hcd *hcd, struct usb_device *udev)
|
|
||||||
{
|
|
||||||
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
|
||||||
int rc = 0;
|
|
||||||
|
|
||||||
if (!udev->parent) /* udev is root hub itself, impossible */
|
|
||||||
rc = -1;
|
|
||||||
/* we only support lpm device connected to root hub yet */
|
|
||||||
if (ehci->has_lpm && !udev->parent->parent) {
|
|
||||||
rc = ehci_lpm_set_da(ehci, udev->devnum, udev->portnum);
|
|
||||||
if (!rc)
|
|
||||||
rc = ehci_lpm_check(ehci, udev->portnum);
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct hc_driver ehci_pci_hc_driver = {
|
static const struct hc_driver ehci_pci_hc_driver = {
|
||||||
.description = hcd_name,
|
.description = hcd_name,
|
||||||
.product_desc = "EHCI Host Controller",
|
.product_desc = "EHCI Host Controller",
|
||||||
|
|
|
@ -19,22 +19,6 @@
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
static int ehci_update_device(struct usb_hcd *hcd, struct usb_device *udev)
|
|
||||||
{
|
|
||||||
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
|
||||||
int rc = 0;
|
|
||||||
|
|
||||||
if (!udev->parent) /* udev is root hub itself, impossible */
|
|
||||||
rc = -1;
|
|
||||||
/* we only support lpm device connected to root hub yet */
|
|
||||||
if (ehci->has_lpm && !udev->parent->parent) {
|
|
||||||
rc = ehci_lpm_set_da(ehci, udev->devnum, udev->portnum);
|
|
||||||
if (!rc)
|
|
||||||
rc = ehci_lpm_check(ehci, udev->portnum);
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct hc_driver vt8500_ehci_hc_driver = {
|
static const struct hc_driver vt8500_ehci_hc_driver = {
|
||||||
.description = hcd_name,
|
.description = hcd_name,
|
||||||
.product_desc = "VT8500 EHCI",
|
.product_desc = "VT8500 EHCI",
|
||||||
|
|
Loading…
Add table
Reference in a new issue