]> git.karo-electronics.de Git - linux-beck.git/commit
usb: gadget: mv_udc: refine the driver structure
authorNeil Zhang <zhangwm@marvell.com>
Wed, 12 Oct 2011 08:49:24 +0000 (16:49 +0800)
committerFelipe Balbi <balbi@ti.com>
Thu, 13 Oct 2011 17:41:56 +0000 (20:41 +0300)
commitdde34cc5019b51088c18ca789d4b1a20cf9bc617
tree8d9032db3b0ed2a21364c073cd327c46665c383c
parent8a9775ab71218690ac34bed9e237e2b968857d3a
usb: gadget: mv_udc: refine the driver structure

This patch do the following things:

1. Add header and Copyright for marvell usb driver.
2. Add mv_usb.h in include/linux/platform_data, make the driver
   fits all the marvell platform using the same ChipIdea usb ip.
3. Some SOC may has mutiple clock sources, so let me define it
   in mv_usb_platform_data and give two helper functions named
   udc_clock_enable/udc_clock_disable to deal with the clocks.
4. Different SOCs will have some difference in PHY initialization,
   so we will remove file mv_udc_phy.c and add two funtions in
   mv_usb_platform_data, let the platform relative driver to realize it.
5. Rewrite probe function according to the modification list above. Find
   it will kernel panic when probe failed. The root cause is as follows:
When probe failed, the error handle may call device_unregister()
which in return will call gadget_release.In current code,
gadget_release have two issues:
1: the_controller is a NULL pointer.
2: if we free udc here, then the following code in probe
   will access NULL pointer.

Signed-off-by: Neil Zhang <zhangwm@marvell.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/Makefile
drivers/usb/gadget/mv_udc.h
drivers/usb/gadget/mv_udc_core.c
drivers/usb/gadget/mv_udc_phy.c [deleted file]
include/linux/platform_data/mv_usb.h [new file with mode: 0644]