From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Fri, 7 Jan 2011 21:16:28 +0000 (-0800)
Subject: Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=3e5b08cbbf78bedd316904ab0cf3b27119433ee5;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

Merge branch 'usb-next' of git://git./linux/kernel/git/gregkh/usb-2.6

* 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (144 commits)
  USB: add support for Dream Cheeky DL100B Webmail Notifier (1d34:0004)
  USB: serial: ftdi_sio: add support for TIOCSERGETLSR
  USB: ehci-mxc: Setup portsc register prior to accessing OTG viewport
  USB: atmel_usba_udc: fix freeing irq in usba_udc_remove()
  usb: ehci-omap: fix tll channel enable mask
  usb: ohci-omap3: fix trivial typo
  USB: gadget: ci13xxx: don't assume that PAGE_SIZE is 4096
  USB: gadget: ci13xxx: fix complete() callback for no_interrupt rq's
  USB: gadget: update ci13xxx to work with g_ether
  USB: gadgets: ci13xxx: fix probing of compiled-in gadget drivers
  Revert "USB: musb: pm: don't rely fully on clock support"
  Revert "USB: musb: blackfin: pm: make it work"
  USB: uas: Use GFP_NOIO instead of GFP_KERNEL in I/O submission path
  USB: uas: Ensure we only bind to a UAS interface
  USB: uas: Rename sense pipe and sense urb to status pipe and status urb
  USB: uas: Use kzalloc instead of kmalloc
  USB: uas: Fix up the Sense IU
  usb: musb: core: kill unneeded #include's
  DA8xx: assign name to MUSB IRQ resource
  usb: gadget: g_ncm added
  ...

Manually fix up trivial conflicts in USB Kconfig changes in:
	arch/arm/mach-omap2/Kconfig
	arch/sh/Kconfig
	drivers/usb/Kconfig
	drivers/usb/host/ehci-hcd.c
and annoying chip clock data conflicts in:
	arch/arm/mach-omap2/clock3xxx_data.c
	arch/arm/mach-omap2/clock44xx_data.c
---

3e5b08cbbf78bedd316904ab0cf3b27119433ee5
diff --cc arch/arm/mach-omap2/Kconfig
index 3e8c9e859f98,766727c4031d..1a2cf6226a55
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@@ -46,8 -44,7 +46,9 @@@ config ARCH_OMAP
  	select ARM_GIC
  	select PL310_ERRATA_588369
  	select ARM_ERRATA_720789
 +	select ARCH_HAS_OPP
 +	select PM_OPP if PM
+ 	select USB_ARCH_HAS_EHCI
  
  comment "OMAP Core Type"
  	depends on ARCH_OMAP2
diff --cc arch/arm/mach-omap2/board-4430sdp.c
index 1cb208b6e626,5aef69521e36..a70bdf28e2bc
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@@ -248,11 -223,22 +249,21 @@@ static void __init omap_4430sdp_init_ir
  	omap2_gp_clockevent_set_gptimer(1);
  #endif
  	gic_init_irq();
 -	omap_gpio_init();
  }
  
+ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
+ 	.port_mode[0]	= EHCI_HCD_OMAP_MODE_PHY,
+ 	.port_mode[1]	= EHCI_HCD_OMAP_MODE_UNKNOWN,
+ 	.port_mode[2]	= EHCI_HCD_OMAP_MODE_UNKNOWN,
+ 	.phy_reset	= false,
+ 	.reset_gpio_port[0]  = -EINVAL,
+ 	.reset_gpio_port[1]  = -EINVAL,
+ 	.reset_gpio_port[2]  = -EINVAL,
+ };
+ 
  static struct omap_musb_board_data musb_board_data = {
  	.interface_type		= MUSB_INTERFACE_UTMI,
- 	.mode			= MUSB_PERIPHERAL,
+ 	.mode			= MUSB_OTG,
  	.power			= 100,
  };
  
diff --cc arch/arm/mach-omap2/clock3xxx_data.c
index 9ab817e6c300,0579604d4f25..d3ab1c9e50b0
--- a/arch/arm/mach-omap2/clock3xxx_data.c
+++ b/arch/arm/mach-omap2/clock3xxx_data.c
@@@ -3275,17 -3267,18 +3275,18 @@@ static struct omap_clk omap3xxx_clks[] 
  	CLK(NULL,	"gfx_l3_ick",	&gfx_l3_ick,	CK_3430ES1),
  	CLK(NULL,	"gfx_cg1_ck",	&gfx_cg1_ck,	CK_3430ES1),
  	CLK(NULL,	"gfx_cg2_ck",	&gfx_cg2_ck,	CK_3430ES1),
 -	CLK(NULL,	"sgx_fck",	&sgx_fck,	CK_3430ES2 | CK_3517),
 -	CLK(NULL,	"sgx_ick",	&sgx_ick,	CK_3430ES2 | CK_3517),
 +	CLK(NULL,	"sgx_fck",	&sgx_fck,	CK_3430ES2PLUS | CK_3517 | CK_36XX),
 +	CLK(NULL,	"sgx_ick",	&sgx_ick,	CK_3430ES2PLUS | CK_3517 | CK_36XX),
  	CLK(NULL,	"d2d_26m_fck",	&d2d_26m_fck,	CK_3430ES1),
 -	CLK(NULL,	"modem_fck",	&modem_fck,	CK_343X),
 -	CLK(NULL,	"sad2d_ick",	&sad2d_ick,	CK_343X),
 -	CLK(NULL,	"mad2d_ick",	&mad2d_ick,	CK_343X),
 +	CLK(NULL,	"modem_fck",	&modem_fck,	CK_34XX | CK_36XX),
 +	CLK(NULL,	"sad2d_ick",	&sad2d_ick,	CK_34XX | CK_36XX),
 +	CLK(NULL,	"mad2d_ick",	&mad2d_ick,	CK_34XX | CK_36XX),
  	CLK(NULL,	"gpt10_fck",	&gpt10_fck,	CK_3XXX),
  	CLK(NULL,	"gpt11_fck",	&gpt11_fck,	CK_3XXX),
 -	CLK(NULL,	"cpefuse_fck",	&cpefuse_fck,	CK_3430ES2 | CK_AM35XX),
 -	CLK(NULL,	"ts_fck",	&ts_fck,	CK_3430ES2 | CK_AM35XX),
 -	CLK(NULL,	"usbtll_fck",	&usbtll_fck,	CK_3430ES2 | CK_AM35XX),
 +	CLK(NULL,	"cpefuse_fck",	&cpefuse_fck,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
 +	CLK(NULL,	"ts_fck",	&ts_fck,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
 +	CLK(NULL,	"usbtll_fck",	&usbtll_fck,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
+ 	CLK("ehci-omap.0",	"usbtll_fck",	&usbtll_fck,	CK_3430ES2 | CK_AM35XX),
  	CLK("omap-mcbsp.1",	"prcm_fck",	&core_96m_fck,	CK_3XXX),
  	CLK("omap-mcbsp.5",	"prcm_fck",	&core_96m_fck,	CK_3XXX),
  	CLK(NULL,	"core_96m_fck",	&core_96m_fck,	CK_3XXX),
@@@ -3309,26 -3302,27 +3310,27 @@@
  	CLK(NULL,	"core_12m_fck",	&core_12m_fck,	CK_3XXX),
  	CLK("omap_hdq.0", "fck",	&hdq_fck,	CK_3XXX),
  	CLK(NULL,	"ssi_ssr_fck",	&ssi_ssr_fck_3430es1,	CK_3430ES1),
 -	CLK(NULL,	"ssi_ssr_fck",	&ssi_ssr_fck_3430es2,	CK_3430ES2),
 +	CLK(NULL,	"ssi_ssr_fck",	&ssi_ssr_fck_3430es2,	CK_3430ES2PLUS | CK_36XX),
  	CLK(NULL,	"ssi_sst_fck",	&ssi_sst_fck_3430es1,	CK_3430ES1),
 -	CLK(NULL,	"ssi_sst_fck",	&ssi_sst_fck_3430es2,	CK_3430ES2),
 +	CLK(NULL,	"ssi_sst_fck",	&ssi_sst_fck_3430es2,	CK_3430ES2PLUS | CK_36XX),
  	CLK(NULL,	"core_l3_ick",	&core_l3_ick,	CK_3XXX),
- 	CLK("musb_hdrc",	"ick",	&hsotgusb_ick_3430es1,	CK_3430ES1),
- 	CLK("musb_hdrc",	"ick",	&hsotgusb_ick_3430es2,	CK_3430ES2PLUS | CK_36XX),
+ 	CLK("musb-omap2430",	"ick",	&hsotgusb_ick_3430es1,	CK_3430ES1),
 -	CLK("musb-omap2430",	"ick",	&hsotgusb_ick_3430es2,	CK_3430ES2),
++	CLK("musb-omap2430",	"ick",	&hsotgusb_ick_3430es2,	CK_3430ES2PLUS | CK_36XX),
  	CLK(NULL,	"sdrc_ick",	&sdrc_ick,	CK_3XXX),
  	CLK(NULL,	"gpmc_fck",	&gpmc_fck,	CK_3XXX),
 -	CLK(NULL,	"security_l3_ick", &security_l3_ick, CK_343X),
 -	CLK(NULL,	"pka_ick",	&pka_ick,	CK_343X),
 +	CLK(NULL,	"security_l3_ick", &security_l3_ick, CK_34XX | CK_36XX),
 +	CLK(NULL,	"pka_ick",	&pka_ick,	CK_34XX | CK_36XX),
  	CLK(NULL,	"core_l4_ick",	&core_l4_ick,	CK_3XXX),
 -	CLK(NULL,	"usbtll_ick",	&usbtll_ick,	CK_3430ES2 | CK_AM35XX),
 -	CLK("ehci-omap.0",	"usbtll_ick",	&usbtll_ick,	CK_3430ES2 | CK_AM35XX),
 -	CLK("mmci-omap-hs.2",	"ick",	&mmchs3_ick,	CK_3430ES2 | CK_AM35XX),
 -	CLK(NULL,	"icr_ick",	&icr_ick,	CK_343X),
 -	CLK("omap-aes",	"ick",	&aes2_ick,	CK_343X),
 -	CLK("omap-sham",	"ick",	&sha12_ick,	CK_343X),
 -	CLK(NULL,	"des2_ick",	&des2_ick,	CK_343X),
 +	CLK(NULL,	"usbtll_ick",	&usbtll_ick,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
++	CLK("ehci-omap.0",	"usbtll_ick",	&usbtll_ick,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
 +	CLK("mmci-omap-hs.2",	"ick",	&mmchs3_ick,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
 +	CLK(NULL,	"icr_ick",	&icr_ick,	CK_34XX | CK_36XX),
 +	CLK("omap-aes",	"ick",	&aes2_ick,	CK_34XX | CK_36XX),
 +	CLK("omap-sham",	"ick",	&sha12_ick,	CK_34XX | CK_36XX),
 +	CLK(NULL,	"des2_ick",	&des2_ick,	CK_34XX | CK_36XX),
  	CLK("mmci-omap-hs.1",	"ick",	&mmchs2_ick,	CK_3XXX),
  	CLK("mmci-omap-hs.0",	"ick",	&mmchs1_ick,	CK_3XXX),
 -	CLK(NULL,	"mspro_ick",	&mspro_ick,	CK_343X),
 +	CLK(NULL,	"mspro_ick",	&mspro_ick,	CK_34XX | CK_36XX),
  	CLK("omap_hdq.0", "ick",	&hdq_ick,	CK_3XXX),
  	CLK("omap2_mcspi.4", "ick",	&mcspi4_ick,	CK_3XXX),
  	CLK("omap2_mcspi.3", "ick",	&mcspi3_ick,	CK_3XXX),
@@@ -3361,14 -3355,17 +3363,17 @@@
  	CLK("omapdss",	"video_fck",	&dss_96m_fck,	CK_3XXX),
  	CLK("omapdss",	"dss2_fck",	&dss2_alwon_fck, CK_3XXX),
  	CLK("omapdss",	"ick",		&dss_ick_3430es1,	CK_3430ES1),
 -	CLK("omapdss",	"ick",		&dss_ick_3430es2,	CK_3430ES2 | CK_AM35XX),
 -	CLK(NULL,	"cam_mclk",	&cam_mclk,	CK_343X),
 -	CLK(NULL,	"cam_ick",	&cam_ick,	CK_343X),
 -	CLK(NULL,	"csi2_96m_fck",	&csi2_96m_fck,	CK_343X),
 -	CLK(NULL,	"usbhost_120m_fck", &usbhost_120m_fck, CK_3430ES2 | CK_AM35XX),
 -	CLK("ehci-omap.0",	"hs_fck", &usbhost_120m_fck, CK_3430ES2 | CK_AM35XX),
 -	CLK(NULL,	"usbhost_48m_fck", &usbhost_48m_fck, CK_3430ES2 | CK_AM35XX),
 -	CLK("ehci-omap.0",	"fs_fck", &usbhost_48m_fck, CK_3430ES2 | CK_AM35XX),
 -	CLK(NULL,	"usbhost_ick",	&usbhost_ick,	CK_3430ES2 | CK_AM35XX),
 -	CLK("ehci-omap.0",	"usbhost_ick",	&usbhost_ick,	CK_3430ES2 | CK_AM35XX),
 -	CLK(NULL,	"usim_fck",	&usim_fck,	CK_3430ES2),
 +	CLK("omapdss",	"ick",		&dss_ick_3430es2,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
 +	CLK(NULL,	"cam_mclk",	&cam_mclk,	CK_34XX | CK_36XX),
 +	CLK(NULL,	"cam_ick",	&cam_ick,	CK_34XX | CK_36XX),
 +	CLK(NULL,	"csi2_96m_fck",	&csi2_96m_fck,	CK_34XX | CK_36XX),
 +	CLK(NULL,	"usbhost_120m_fck", &usbhost_120m_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
++	CLK("ehci-omap.0",	"hs_fck", &usbhost_120m_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
 +	CLK(NULL,	"usbhost_48m_fck", &usbhost_48m_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
++	CLK("ehci-omap.0",	"fs_fck", &usbhost_48m_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
 +	CLK(NULL,	"usbhost_ick",	&usbhost_ick,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
++	CLK("ehci-omap.0",	"usbhost_ick",	&usbhost_ick,	CK_3430ES2PLUS | CK_AM35XX | CK_36XX),
 +	CLK(NULL,	"usim_fck",	&usim_fck,	CK_3430ES2PLUS | CK_36XX),
  	CLK(NULL,	"gpt1_fck",	&gpt1_fck,	CK_3XXX),
  	CLK(NULL,	"wkup_32k_fck",	&wkup_32k_fck,	CK_3XXX),
  	CLK(NULL,	"gpio1_dbck",	&gpio1_dbck,	CK_3XXX),
diff --cc arch/arm/mach-omap2/clock44xx_data.c
index c426adccad06,bfcd19f8368c..e8cb32fd7f13
--- a/arch/arm/mach-omap2/clock44xx_data.c
+++ b/arch/arm/mach-omap2/clock44xx_data.c
@@@ -3198,6 -2937,10 +3198,7 @@@ static struct omap_clk omap44xx_clks[] 
  	CLK(NULL,	"uart3_fck",			&uart3_fck,	CK_443X),
  	CLK(NULL,	"uart4_fck",			&uart4_fck,	CK_443X),
  	CLK(NULL,	"usb_host_fs_fck",		&usb_host_fs_fck,	CK_443X),
+ 	CLK("ehci-omap.0",	"fs_fck",		&usb_host_fs_fck,	CK_443X),
 -	CLK(NULL,	"usb_host_hs_utmi_p3_clk",	&usb_host_hs_utmi_p3_clk,	CK_443X),
 -	CLK(NULL,	"usb_host_hs_hsic60m_p1_clk",	&usb_host_hs_hsic60m_p1_clk,	CK_443X),
 -	CLK(NULL,	"usb_host_hs_hsic60m_p2_clk",	&usb_host_hs_hsic60m_p2_clk,	CK_443X),
  	CLK(NULL,	"utmi_p1_gfclk",		&utmi_p1_gfclk,	CK_443X),
  	CLK(NULL,	"usb_host_hs_utmi_p1_clk",	&usb_host_hs_utmi_p1_clk,	CK_443X),
  	CLK(NULL,	"utmi_p2_gfclk",		&utmi_p2_gfclk,	CK_443X),
diff --cc arch/sh/Kconfig
index e9e71120040c,430e46788609..fff252209f63
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@@ -348,7 -346,7 +348,8 @@@ config CPU_SUBTYPE_SH772
  	select CPU_SH3
  	select CPU_HAS_DSP
  	select SYS_SUPPORTS_CMT
 +	select ARCH_WANT_OPTIONAL_GPIOLIB
+ 	select USB_ARCH_HAS_OHCI
  	help
  	  Select SH7720 if you have a SH3-DSP SH7720 CPU.
  
@@@ -462,7 -458,8 +465,9 @@@ config CPU_SUBTYPE_SH778
  	select CPU_SHX3
  	select CPU_HAS_PTEAEX
  	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
 +	select ARCH_WANT_OPTIONAL_GPIOLIB
+ 	select USB_ARCH_HAS_OHCI
+ 	select USB_ARCH_HAS_EHCI
  
  config CPU_SUBTYPE_SHX3
  	bool "Support SH-X3 processor"
diff --cc drivers/usb/Kconfig
index 5a7c8f1d76c6,b8e70a982fd4..fceea5e4e02f
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@@ -41,7 -41,7 +41,8 @@@ config USB_ARCH_HAS_OHC
  	default y if MFD_TC6393XB
  	default y if ARCH_W90X900
  	default y if ARCH_DAVINCI_DA8XX
 +	default y if ARCH_CNS3XXX
+ 	default y if PLAT_SPEAR
  	# PPC:
  	default y if STB03xxx
  	default y if PPC_MPC52xx
@@@ -67,7 -62,9 +63,10 @@@ config USB_ARCH_HAS_EHC
  	default y if ARCH_AT91SAM9G45
  	default y if ARCH_MXC
  	default y if ARCH_OMAP3
 +	default y if ARCH_CNS3XXX
+ 	default y if ARCH_VT8500
+ 	default y if PLAT_SPEAR
+ 	default y if ARCH_MSM
  	default PCI
  
  # ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
diff --cc drivers/usb/host/ehci-hcd.c
index d0c8f7c03e05,72732daa3b3e..6fee3cd58efe
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@@ -1216,11 -1229,21 +1229,26 @@@ MODULE_LICENSE ("GPL")
  #define PLATFORM_DRIVER		ehci_octeon_driver
  #endif
  
 +#ifdef CONFIG_USB_CNS3XXX_EHCI
 +#include "ehci-cns3xxx.c"
 +#define PLATFORM_DRIVER		cns3xxx_ehci_driver
 +#endif
 +
+ #ifdef CONFIG_ARCH_VT8500
+ #include "ehci-vt8500.c"
+ #define	PLATFORM_DRIVER		vt8500_ehci_driver
+ #endif
+ 
+ #ifdef CONFIG_PLAT_SPEAR
+ #include "ehci-spear.c"
+ #define PLATFORM_DRIVER		spear_ehci_hcd_driver
+ #endif
+ 
+ #ifdef CONFIG_USB_EHCI_MSM
+ #include "ehci-msm.c"
+ #define PLATFORM_DRIVER		ehci_msm_driver
+ #endif
+ 
  #if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
      !defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER) && \
      !defined(XILINX_OF_PLATFORM_DRIVER)