Hello. On 07-12-2010 19:39, Felipe Balbi wrote:
instead of using musb_platform_suspend_resume, we can use dev_pm_ops and let platform_device core handle when to call musb_core's suspend and glue layer's suspend.
Signed-off-by: Felipe Balbi<balbi@xxxxxx>
[...]
diff --git a/drivers/usb/musb/blackfin.c b/drivers/usb/musb/blackfin.c index 8c9c5fc..df7c352 100644 --- a/drivers/usb/musb/blackfin.c +++ b/drivers/usb/musb/blackfin.c
[...]
@@ -406,27 +407,6 @@ static int bfin_musb_init(struct musb *musb) return 0; } -static int bfin_musb_suspend(struct musb *musb) -{ - if (is_host_active(musb)) - /* - * During hibernate gpio_vrsel will change from high to low - * low which will generate wakeup event resume the system - * immediately. Set it to 0 before hibernate to avoid this - * wakeup event. - */ - gpio_set_value(musb->config->gpio_vrsel, 0); - - return 0; -} - -static int bfin_musb_resume(struct musb *musb) -{ - bfin_musb_reg_init(musb); - - return 0; -} - static int bfin_musb_exit(struct musb *musb) { gpio_free(musb->config->gpio_vrsel);
[...]
@@ -528,10 +505,49 @@ static int __exit bfin_remove(struct platform_device *pdev) return 0; } +#ifdef CONFIG_PM +static int bfin_suspend(struct device *dev) +{ + struct bfin_glue *glue = dev_get_drvdata(dev); + struct musb *musb = glue_to_musb(glue); + + if (is_host_active(musb)) + /* + * During hibernate gpio_vrsel will change from high to low + * low which will generate wakeup event resume the system + * immediately. Set it to 0 before hibernate to avoid this + * wakeup event. + */ + gpio_set_value(musb->config->gpio_vrsel, 0); + + return 0; +} + +static int bfin_resume(struct device *dev) +{ + struct bfin_glue *glue = dev_get_drvdata(dev); + struct musb *musb = glue_to_musb(glue); + + bfin_reg_init(musb);
Not bfin_musb_reg_init()? I don't see where you renamed it... WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html