EHCI : introduce a common ehci_setup
This allow to clean duplicated code in most of SOC driver. Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr> Acked-by: Alan Stern <stern@rowland.harvard.edu> Cc: stable <stable@kernel.org> # fixes 3.1 build error Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
236c448cb6
commit
2093c6b49c
@@ -768,6 +768,35 @@ static int ehci_run (struct usb_hcd *hcd)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int __maybe_unused ehci_setup (struct usb_hcd *hcd)
|
||||||
|
{
|
||||||
|
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
ehci->regs = (void __iomem *)ehci->caps +
|
||||||
|
HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase));
|
||||||
|
dbg_hcs_params(ehci, "reset");
|
||||||
|
dbg_hcc_params(ehci, "reset");
|
||||||
|
|
||||||
|
/* cache this readonly data; minimize chip reads */
|
||||||
|
ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params);
|
||||||
|
|
||||||
|
ehci->sbrn = HCD_USB2;
|
||||||
|
|
||||||
|
retval = ehci_halt(ehci);
|
||||||
|
if (retval)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
/* data structure init */
|
||||||
|
retval = ehci_init(hcd);
|
||||||
|
if (retval)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
ehci_reset(ehci);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
static irqreturn_t ehci_irq (struct usb_hcd *hcd)
|
static irqreturn_t ehci_irq (struct usb_hcd *hcd)
|
||||||
|
Reference in New Issue
Block a user