Esempio n. 1
0
static int exynos_ohci_remove(struct platform_device *pdev)
{
	struct exynos_ohci_hcd *exynos_ohci = platform_get_drvdata(pdev);
	struct usb_hcd *hcd = exynos_ohci->hcd;

	pm_runtime_disable(&pdev->dev);

	exynos_ohci->power_on = 0;
	exynos_pm_unregister_notifier(&exynos_ohci->lpa_nb);
	remove_ohci_sys_file(hcd_to_ohci(hcd));

	usb_remove_hcd(hcd);

	if (exynos_ohci->otg)
		exynos_ohci->otg->set_host(exynos_ohci->otg,
					&exynos_ohci->hcd->self);

	exynos_ohci_phy_disable(exynos_ohci);

	clk_disable_unprepare(exynos_ohci->clk);

	usb_put_hcd(hcd);

	return 0;
}
static int __devexit exynos_ohci_remove(struct platform_device *pdev)
{
	struct exynos4_ohci_platdata *pdata = pdev->dev.platform_data;
	struct exynos_ohci_hcd *exynos_ohci = platform_get_drvdata(pdev);
	struct usb_hcd *hcd = exynos_ohci->hcd;

	if (pdata && pdata->phy_resume)
		pdata->phy_resume(pdev, S5P_USB_PHY_HOST);

#ifdef CONFIG_USB_SUSPEND
	pm_runtime_put(hcd->self.controller);
	pm_runtime_disable(&pdev->dev);
#endif
	usb_remove_hcd(hcd);

	exynos_ohci->power_on = 0;
	remove_ohci_sys_file(hcd_to_ohci(hcd));

	if (pdata && pdata->phy_exit)
		pdata->phy_exit(pdev, S5P_USB_PHY_HOST);

	iounmap(hcd->regs);

	clk_disable(exynos_ohci->clk);
	clk_put(exynos_ohci->clk);

	usb_put_hcd(hcd);
	kfree(exynos_ohci);
	platform_set_drvdata(pdev, NULL);

	return 0;
}
Esempio n. 3
0
static int __devexit ohci_hcd_s5p_drv_remove(struct platform_device *pdev)
{
	struct s5p_ohci_platdata *pdata = pdev->dev.platform_data;
	struct s5p_ohci_hcd *s5p_ohci = platform_get_drvdata(pdev);
	struct usb_hcd *hcd = s5p_ohci->hcd;

	if (pdata && pdata->phy_resume)
		pdata->phy_resume(pdev, S5P_USB_PHY_HOST);

	usb_remove_hcd(hcd);

	s5p_ohci->power_on = 0;
	remove_ohci_sys_file(hcd_to_ohci(hcd));

	if (pdata && pdata->phy_exit)
		pdata->phy_exit(pdev, S5P_USB_PHY_HOST);

	iounmap(hcd->regs);

	clk_disable(s5p_ohci->clk);
	clk_put(s5p_ohci->clk);

	usb_put_hcd(hcd);
	kfree(s5p_ohci);
	platform_set_drvdata(pdev, NULL);

	return 0;
}