Presented patch series fix several problems with S3C-HSOTG driver, thus now the Multi Function Gadget (MFG) is working correctly. Those commits consist of EP0 transfer management fixes (ZLP sending code and NAK management). Moreover the disconnect irq handler has been removed, since it is available only at HOST mode. Code for recovering from device disconnection and connection during ongoing transfer has been added as well. The s3c-hsotg driver has been adjusted to use newer usb_gadget_ops callbacks (namely udc_start and udc_stop) instead of deprecated ones. Moreover number of EPs is now read from a HW configuration register instead of statically defined value. The our_hsotg global variable has been removed and release function has been added as well to prevent warning messages. Tested with: - DFU gadget (various size of the sent data - also packet = MPS) - Ethernet gadget (CDC and RNDIS) - Multi Function Gadget (g_multi) HW: - Samsung's C210 Universal rev.0 - Samsung's C110 GONI --- Changes for v2: - Support for regulator_bulk_* - Number of EPs determined during runtime - Usage of udc_start and udc_stop methods instead of deprecated ones - Code preparation to move to dwc2 driver from s3c-hsotg Changes for v3: - Comments refactored to comply with kernel coding style - Doxygen functions descriptions added - Removal of our_hsotg global pointer variable Changes for v4: - Remove platform dependent code - Check if dynamically read number of EPs is not equal to zero - Release function added to prevent warnings Changes for v5: - Remove S3C_ prefix for register's definition - Replace the clk_enable() with clk_prepare_enable() and clk_disable() with clk_disable_unprepare() - error fallback code for failed request_irq Lukasz Majewski (18): usb:hsotg:samsung: Remove platform dependency from s3c-hsotg usb:hsotg:samsung: Remove platform dependent functions from s3c-hsotg usb:hsotg:samsung: Wrappers for USB PHY methods usb:hsotg:samsung: Use of regulator_bulk_* functions for USB regulators usb:hsotg:samsung: NAK management for EP0 (Setup stage of control transfers) usb:hsotg:samsung: Sending ZLP packet for IN EP0 transfers usb:hsotg:samsung: Extract core initialization function usb:hsotg:samsung: Remove Disconnect Interrupt handler usb:hsotg:samsung: Rename s3c_hsotg_disconnect function usb:hsotg:samsung: Cable disconnection recovery code usb:hsotg:samsung: Determine number of EPs from HW configuration register usb:hsotg:samsung: Use new udc_start and udc_stop callbacks usb:hsotg:samsung: Comments reorganization and cleanup usb:hsotg:samsung: Remove our_hsotg global pointer usb:hsotg:samsung: Add release function for hsotg device usb:hsotg:samsung: Remove the S3C_ prefix from registers definition. usb:hsotg:samsung: Use clk_prepare_enable and clk_disable_unprepare usb:hsotg:samsung: err_irq: support for probe function arch/arm/mach-exynos/mach-nuri.c | 2 +- arch/arm/mach-exynos/mach-universal_c210.c | 2 +- arch/arm/mach-s3c64xx/mach-crag6410.c | 2 +- arch/arm/mach-s3c64xx/mach-smartq.c | 2 +- arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 +- arch/arm/mach-s5pv210/mach-goni.c | 2 +- arch/arm/plat-samsung/devs.c | 2 +- .../arm/plat-samsung/include/plat/regs-usb-hsotg.h | 379 ----- arch/arm/plat-samsung/include/plat/udc-hs.h | 34 - drivers/usb/gadget/s3c-hsotg.c | 1635 +++++++++++--------- drivers/usb/gadget/s3c-hsotg.h | 377 +++++ include/linux/platform_data/s3c-hsotg.h | 35 + 12 files changed, 1355 insertions(+), 1119 deletions(-) delete mode 100644 arch/arm/plat-samsung/include/plat/regs-usb-hsotg.h delete mode 100644 arch/arm/plat-samsung/include/plat/udc-hs.h create mode 100644 drivers/usb/gadget/s3c-hsotg.h create mode 100644 include/linux/platform_data/s3c-hsotg.h -- 1.7.2.3 -- 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