linux/drivers/usb/musb
Grazvydas Ignotas c04352a590 usb: musb: fix some runtime_pm issues
When runtime_pm was originally added, it was done in rather confusing
way: omap2430_musb_init() (called from musb_init_controller) would do
runtime_pm_get_sync() and musb_init_controller() itself would do
runtime_pm_put to balance it out. This is not only confusing but also
wrong if non-omap2430 glue layer is used.

This confusion resulted in commit 772aed45b6 "usb: musb: fix
pm_runtime mismatch", that removed runtime_pm_put() from
musb_init_controller as that looked unbalanced, and also happened to
fix unrelated isp1704_charger crash. However this broke runtime PM
functionality (musb is now always powered, even without gadget active).

Avoid these confusing runtime pm dependences by making
musb_init_controller() and omap2430_musb_init() do their own runtime
get/put pairs; also cover error paths. Remove unneeded runtime_pm_put
in omap2430_remove too. isp1704_charger crash that motivated
772aed45b6 will be fixed by following patch.

Cc: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-04-10 19:11:43 +03:00
..
am35x.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
blackfin.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
blackfin.h usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
cppi_dma.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
cppi_dma.h headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
da8xx.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
davinci.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
davinci.h
Kconfig usb: musb: cleanup kconfig 2011-12-20 14:01:38 +02:00
Makefile usb: musb: use a Kconfig choice to pick the right DMA method 2011-12-12 11:51:41 +02:00
musb_core.c usb: musb: fix some runtime_pm issues 2012-04-10 19:11:43 +03:00
musb_core.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
musb_debug.h usb: musb: remove extern qualifier from musb_debug.h header 2011-12-21 13:21:02 +02:00
musb_debugfs.c usb: musb: debugfs: fix error check 2012-02-01 11:02:46 +02:00
musb_dma.h usb: musb: introduce api for dma code to check compatibility with usb request 2011-02-01 10:41:30 +02:00
musb_gadget_ep0.c usb: musb: headers cleanup 2011-12-12 11:51:52 +02:00
musb_gadget.c usb: core: hcd: make hcd->irq unsigned 2012-03-01 09:31:22 -08:00
musb_gadget.h usb: musb: gadget: do not poke with gadget's list_head 2011-02-17 21:11:46 +02:00
musb_host.c usb: musb: fix reset issue with full speed device 2011-12-14 09:32:51 +02:00
musb_host.h usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
musb_io.h usb: musb: fix a build error on mips 2012-02-03 09:29:13 +02:00
musb_regs.h usb: musb: tusb6010: fix compilation 2011-08-12 11:52:50 +03:00
musb_virthub.c usb: musb: Start using struct usb_otg 2012-02-13 13:52:54 +02:00
musbhsdma.c USB: irq: Remove IRQF_DISABLED 2011-09-18 01:39:36 -07:00
musbhsdma.h Merge branches 'devel-cleanup', 'devel-board', 'devel-early-init' and 'devel-ti816x' into omap-for-linus 2011-02-16 11:32:38 -08:00
omap2430.c usb: musb: fix some runtime_pm issues 2012-04-10 19:11:43 +03:00
omap2430.h USB: musb: get rid of omap_readl/writel 2010-03-02 14:54:38 -08:00
tusb6010_omap.c usb: musb: tusb6010: fix compilation 2011-08-12 11:52:50 +03:00
tusb6010.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
tusb6010.h
ux500_dma.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
ux500.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00