linux/drivers/usb/gadget
Kishon Vijay Abraham I 8ae8090c82 usb: gadget: udc-core: fix asymmetric calls in remove_driver
During modprobe of gadget driver, pullup is called after
udc_start. In order to make the exit path symmetric when
removing a gadget driver, call pullup before ->udc_stop.

This is needed to avoid issues with PM where udc_stop
disables the module completely (put IP in reset state,
cut functional and interface clocks, and so on), which
prevents us from accessing the IP's address space,
thus creating the possibility of an abort exception
when we try to access IP's address space after clocks
are off.

Cc: stable@vger.kernel.org
Signed-off-by: Partha Basak <p-basak2@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-04-10 19:11:49 +03:00
..
acm_ms.c usb: gadget: add new usb gadget for ACM and mass storage 2011-10-13 20:46:27 +03:00
amd5536udc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
amd5536udc.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
at91_udc.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
at91_udc.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
atmel_usba_udc.c ARM: device tree work 2012-03-27 16:47:35 -07:00
atmel_usba_udc.h
audio.c usb: gadget: Add Audio Class 2.0 Driver 2012-02-15 10:10:31 +02:00
cdc2.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
ci13xxx_msm.c usb: Convert all users to new usb_phy 2012-02-27 15:41:48 +02:00
ci13xxx_pci.c
ci13xxx_udc.c This merge is rather big. Here's what it contains: 2012-03-01 09:20:28 -08:00
ci13xxx_udc.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
composite.c usb: gadget: SS Isoc endpoints use comp_desc->bMaxBurst too 2012-01-24 15:42:57 +02:00
config.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
dbgp.c usb: gadget: rename usb_gadget_driver::speed to max_speed 2011-12-12 11:45:12 +02:00
dummy_hcd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
epautoconf.c This merge is rather big. Here's what it contains: 2012-03-01 09:20:28 -08:00
ether.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
f_acm.c usb: gadget: add usb3.0 descriptors to serial gadgets 2012-02-09 10:11:36 +02:00
f_ecm.c usb: gadget: Add Interface Association Descriptor to ECM 2012-01-30 11:17:26 +02:00
f_eem.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
f_fs.c usb: gadget: FunctionFS: clear FFS_FL_BOUND flag on unbind (bugfix) 2012-04-10 19:11:47 +03:00
f_hid.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
f_loopback.c usb: gadget: zero: fix bug in loopback autoresume handling 2012-01-30 11:10:20 +02:00
f_mass_storage.c This merge is rather big. Here's what it contains: 2012-03-01 09:20:28 -08:00
f_midi.c Allocate correct size (portably) in drivers/usb/gadget/f_midi.c::f_midi_bind() 2012-03-02 16:22:11 -08:00
f_ncm.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
f_obex.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
f_phonet.c f_phonet: fix skb truesize underestimation 2012-03-27 22:50:54 -04:00
f_rndis.c usb: gadget: update Michal Nazarewicz's email address 2012-01-24 11:45:11 +02:00
f_serial.c usb: gadget: add usb3.0 descriptors to serial gadgets 2012-02-09 10:11:36 +02:00
f_sourcesink.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
f_subset.c usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH 2012-03-13 14:29:33 -07:00
f_uac1.c usb: gadget: audio: Move string IDs to audio.c 2012-02-15 10:10:25 +02:00
f_uac2.c usb: gadget: Add Audio Class 2.0 Driver 2012-02-15 10:10:31 +02:00
f_uvc.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
f_uvc.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
file_storage.c usb/gadget: use common defines within the storage gadget 2012-02-28 11:08:33 -08:00
fsl_mxc_udc.c usb: fsl_mxc_udc.c: Remove compile-time dependency of MX35 SoC type 2011-11-29 23:19:04 +09:00
fsl_qe_udc.c usb: gadget: Clear usb_endpoint_descriptor inside the struct usb_ep on disable 2012-02-24 12:22:38 +02:00
fsl_qe_udc.h usb: fix a typo in a comment 2011-04-13 16:41:00 -07:00
fsl_udc_core.c usb: fsl_udc_core: prime status stage once data stage has primed 2012-04-10 19:11:44 +03:00
fsl_usb2_udc.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
fusb300_udc.c usb: gadget: rename usb_gadget_driver::speed to max_speed 2011-12-12 11:45:12 +02:00
fusb300_udc.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
g_ffs.c usb: gadget: FunctionFS: make module init & exit __init & __exit 2012-04-10 19:11:47 +03:00
g_zero.h
gadget_chips.h usb: gadget: introduce gadget_is_dwc3() 2011-08-22 16:00:46 -07:00
gmidi.c usb: Add module.h to drivers/usb consumers who really use it. 2011-10-31 19:31:25 -04:00
goku_udc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
goku_udc.h
hid.c USB: gadget: Make g_hid device class conform to spec. 2012-03-08 13:11:34 -08:00
imx_udc.c usb: gadget: rename usb_gadget_driver::speed to max_speed 2011-12-12 11:45:12 +02:00
imx_udc.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
inode.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-03-21 13:36:41 -07:00
Kconfig ARM: More device tree support updates 2012-03-28 12:34:33 -07:00
langwell_udc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
langwell_udc.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
m66592-udc.c usb: gadget: rename usb_gadget_driver::speed to max_speed 2011-12-12 11:45:12 +02:00
m66592-udc.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
Makefile usb: gadget: mv_udc: drop ARCH dependency 2011-12-20 12:55:06 +02:00
mass_storage.c usb: gadget: update Michal Nazarewicz's email address 2012-01-24 11:45:11 +02:00
multi.c usb: gadget: update Michal Nazarewicz's email address 2012-01-24 11:45:11 +02:00
mv_udc.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
mv_udc_core.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ncm.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
ndis.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
net2272.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
net2272.h USB: net2272: driver for PLX NET2272 USB device controller 2011-06-06 16:47:27 -07:00
net2280.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
net2280.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
nokia.c usb: gadget: add max_speed to usb_composite_driver 2011-07-01 14:27:05 -07:00
omap_udc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
omap_udc.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
pch_udc.c usb/gadget/pch_udc: Fix compile error 2012-03-06 07:00:14 -08:00
printer.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
pxa25x_udc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
pxa25x_udc.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
pxa27x_udc.c usb: otg: Convert all users to pass struct usb_otg for OTG functions 2012-02-27 15:41:52 +02:00
pxa27x_udc.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
r8a66597-udc.c usb: gadget: r8a66597: use generic map/unmap routines 2012-02-28 14:49:08 +02:00
r8a66597-udc.h usb: gadget: r8a66597-udc: add support for SUDMAC 2011-10-13 20:38:39 +03:00
rndis.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
rndis.h
s3c-hsotg.c usb: s3c-hsotg: Fix big buffers transfer in DMA mode 2012-04-10 19:11:46 +03:00
s3c-hsudc.c This merge is rather big. Here's what it contains: 2012-03-01 09:20:28 -08:00
s3c2410_udc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
s3c2410_udc.h misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
serial.c usb: gadget: add usb3.0 descriptors to serial gadgets 2012-02-09 10:11:36 +02:00
storage_common.c This merge is rather big. Here's what it contains: 2012-03-01 09:20:28 -08:00
u_ether.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
u_ether.h usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
u_phonet.h
u_serial.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
u_serial.h usb: gadget: add usb_endpoint_descriptor to struct usb_ep 2011-06-28 11:14:36 -07:00
u_uac1.c usb: gadget: Rename audio function to uac1 2012-02-15 10:09:48 +02:00
u_uac1.h usb: gadget: Rename audio function to uac1 2012-02-15 10:09:48 +02:00
udc-core.c usb: gadget: udc-core: fix asymmetric calls in remove_driver 2012-04-10 19:11:49 +03:00
usbstring.c USB: remove homegrown UTF conversion routine for gadgets 2011-11-18 10:51:01 -08:00
uvc.h Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2011-10-25 12:23:15 +02:00
uvc_queue.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
uvc_queue.h
uvc_v4l2.c Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2011-10-25 12:23:15 +02:00
uvc_video.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
webcam.c usb gadget: clean up FSF boilerplate text 2011-09-09 16:00:09 -07:00
zero.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30