Example #1
0
static int omap2430_musb_exit(struct musb *musb)
{
	del_timer_sync(&musb_idle_timer);

	omap2430_low_level_exit(musb);

	return 0;
}
Example #2
0
static int omap2430_musb_exit(struct musb *musb)
{

	omap2430_low_level_exit(musb);
	otg_put_transceiver(musb->xceiv);

	return 0;
}
Example #3
0
static int omap2430_musb_exit(struct musb *musb)
{
	del_timer_sync(&musb_idle_timer);

	omap2430_low_level_exit(musb);
	otg_put_transceiver(musb->xceiv);

	return 0;
}
static int omap2430_musb_exit(struct musb *musb)
{
	del_timer_sync(&musb_idle_timer);
	cancel_work_sync(&musb->otg_notifier_work);

	omap2430_low_level_exit(musb);
	usb_put_transceiver(musb->xceiv);

	return 0;
}
Example #5
0
static int omap2430_runtime_suspend(struct device *dev)
{
	struct omap2430_glue		*glue = dev_get_drvdata(dev);
	struct musb			*musb = glue_to_musb(glue);

	omap2430_low_level_exit(musb);
	otg_set_suspend(musb->xceiv, 1);

	return 0;
}
Example #6
0
static int omap2430_musb_exit(struct musb *musb)
{
	del_timer_sync(&musb_idle_timer);

	otg_unregister_notifier(musb->xceiv, &musb->nb);
	destroy_workqueue(musb->otg_notifier_wq);
	omap2430_low_level_exit(musb);
	otg_put_transceiver(musb->xceiv);

	return 0;
}
Example #7
0
static int omap2430_suspend(struct device *dev)
{
	struct omap2430_glue		*glue = dev_get_drvdata(dev);
	struct musb			*musb = glue_to_musb(glue);

	omap2430_low_level_exit(musb);
	otg_set_suspend(musb->xceiv, 1);
	omap2430_save_context(musb);
	clk_disable(glue->clk);

	return 0;
}
Example #8
0
static int omap2430_musb_exit(struct musb *musb)
{
	struct device *dev = musb->controller;
	struct omap2430_glue *glue = dev_get_drvdata(dev->parent);

	omap2430_low_level_exit(musb);
	phy_power_off(musb->phy);
	phy_exit(musb->phy);
	musb->phy = NULL;
	cancel_work_sync(&glue->omap_musb_mailbox_work);

	return 0;
}
Example #9
0
static int omap2430_runtime_suspend(struct device *dev)
{
	struct omap2430_glue		*glue = dev_get_drvdata(dev);
	struct musb			*musb = glue_to_musb(glue);

	musb->context.otg_interfsel = musb_readl(musb->mregs,
						OTG_INTERFSEL);

	omap2430_low_level_exit(musb);
	otg_set_suspend(musb->xceiv, 1);

	return 0;
}
static int omap2430_runtime_suspend(struct device *dev)
{
	struct omap2430_glue		*glue = dev_get_drvdata(dev);
	struct musb			*musb = glue_to_musb(glue);

	if (musb) {
		musb->context.otg_interfsel = musb_readl(musb->mregs,
				OTG_INTERFSEL);

		omap2430_low_level_exit(musb);
		phy_power_off(musb->phy);
	}

	return 0;
}
Example #11
0
int omap2430_async_suspend(struct musb *musb)
{
	struct platform_device *pdev
		= to_platform_device(musb->controller->parent);
	unsigned long flags = 0;
	int ret = 0;
	if (!pdev) {
		pr_err("%s pdev is null error\n", __func__);
		return -ENODEV;
	}

	dev_info(&pdev->dev, "%s async_resume %d +\n",
		__func__, musb->async_resume);

	mutex_lock(&musb->async_musb_lock);

	do {
		musb->async_resume--;
	} while (musb->reserve_async_suspend-- > 0);
	musb->reserve_async_suspend = 0;

	if (musb->async_resume > 0)
		;
	else if (musb->async_resume < 0) {
		musb->async_resume++;
		dev_err(&pdev->dev, "%s async_resume is fault\n", __func__);
	} else {
		spin_lock_irqsave(&musb->lock, flags);
		musb_async_suspend(musb);
		omap2430_low_level_exit(musb);
		otg_set_suspend(musb->xceiv, 1);
		spin_unlock_irqrestore(&musb->lock, flags);
		ret = omap_device_idle(pdev);
		if (ret < 0) {
			dev_err(&pdev->dev, "%s omap_device_idle error ret=%d\n",
				__func__, ret);
			mutex_unlock(&musb->async_musb_lock);
			return ret;
		}
	}
	mutex_unlock(&musb->async_musb_lock);
	dev_info(&pdev->dev, "%s async_resume %d -\n",
		__func__, musb->async_resume);
	return 0;
}
Example #12
0
static int omap2430_runtime_suspend(struct device *dev)
{
	struct omap2430_glue		*glue = dev_get_drvdata(dev);
	struct musb			*musb = glue_to_musb(glue);

	if (mutex_trylock(&musb->musb_lock)) {
		dev_info(dev, "runtime suspend\n");
		musb->context.otg_interfsel =
				musb_readl(musb->mregs,
						OTG_INTERFSEL);

		omap2430_low_level_exit(musb);
		otg_set_suspend(musb->xceiv, 1);
		mutex_unlock(&musb->musb_lock);
		return 0;
	}
	return -EBUSY;
}