summaryrefslogtreecommitdiff
path: root/drivers/usb
AgeCommit message (Collapse)Author
2013-07-25Merge remote-tracking branch 'fsl-linux-sdk/imx_3.0.35_4.1.0' into ↵guoyin.chen
imx_3.0.35_android
2013-07-19ENGR00271566 usb: otg: comment otg_statemachine which we do not needPeter Chen
We have not implemented fully OTG support, so we can't call otg_statemachine since the state machine may incorrect at current dual-role switch design. At existed code, it will call otg_statemachine, in fact, it doesn't need. Besides, it causes one kernel dump at Sabreauto board due to it calls gpio API at spin lock, but at Sabreauto board the USB power GPIO is expanded by MAX7310 which calls i2c read/write and will schedule itself. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-07-15ENGR00270802 usb: otg: delete redundant vbus off operationPeter Chen
The problem locates at: fsl_otg_start_host(fsm, 0); if (pdata->wake_up_enable) pdata->wake_up_enable(pdata, false); otg_drv_vbus(fsm, 0); fsl_otg_start_host(fsm, 0) internally calls fsl_otg_drv_vbus(), which does the same thing as otg_drv_vbus(fsm, 0). More critically, we need disable VBUS wakeup before close VBUS operation, otherwise unexpected VBUS wakeup will occur. The solution is to remove the call of fsl_otg_drv_vbus() in fsl_otg_start_host(). Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-07-15Merge remote-tracking branch 'fsl-linux-sdk/imx_3.0.35_4.1.0' into ↵guoyin.chen
imx_3.0.35_android Conflicts: arch/arm/mach-mx6/Kconfig arch/arm/mach-mx6/board-mx6q_arm2.c arch/arm/mach-mx6/board-mx6q_arm2.h arch/arm/mach-mx6/board-mx6q_hdmidongle.c arch/arm/mach-mx6/board-mx6q_sabreauto.c arch/arm/mach-mx6/board-mx6q_sabreauto.h arch/arm/mach-mx6/board-mx6q_sabrelite.c arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/mach-mx6/board-mx6q_sabresd.h arch/arm/mach-mx6/clock.c arch/arm/mach-mx6/pcie.c arch/arm/plat-mxc/include/mach/iomux-mx6q.h arch/arm/plat-mxc/include/mach/pcie.h drivers/dma/imx-sdma.c drivers/input/touchscreen/egalax_ts.c drivers/media/video/mxc/capture/csi_v4l2_capture.c drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c drivers/mxc/mlb/mxc_mlb150.c drivers/mxc/thermal/thermal.c drivers/net/fec.c drivers/usb/host/ehci-arc.c drivers/video/mxc/mxc_ipuv3_fb.c include/linux/fec.h sound/soc/imx/imx-wm8962.c
2013-06-19ENGR00262528-2 usb: host: the clock needs to be off if probe failsPeter Chen
The clock needs to be off if probe fails. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-06-19ENGR00266285-1 usb: gadget: using non-buffer & non-cache memory for dma bufferPeter Chen
It is the same issue with ENGR00217721, and it is also needed for normal usb case. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-05-10ENGR00261451-5 usb: gadget: delete usb_debounce_id_vbusPeter Chen
Since we move the debounce time into get the PHY out of low power mode function(f1ac6159, ENGR00261451-3: mx6-msl: usb: add debounce time for otgsc value), usb_debounce_id_vbus is useless now. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-05-10ENGR00261451-4 usb: host: Fix the bug that no id INT after system resumePeter Chen
- Fix the bug that no id interrupt after system resume if we plug ID cable during the system suspend periods. - It needs to consider OTG and non-OTG condition when handling system resume. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-05-10ENGR00261451-1 usb: host: purify platform resume handlerPeter Chen
- If the device is on the port during the system suspend, and the USB as system wakeup source is not enabled. We don't need to put the PHY into low power mode again after platform resume, since usb bus layer will handle it. If auto suspend is supported, the bus layer will put the PHY into low power mode. - Passed below two conditions for use cases, delete the useless handling code. 1. Tested plug usb devices (high/full/low speed) during the system suspend when usb wakeup is not enabled. 2. Tested unplug and replug usb devices (high/full/low speed) during the system suspended when usb wakeup is not enabled. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-05-06ENGR00261037-2: usb: fix the bug that mark lowpower flag wronglyPeter Chen
At default, we mark lowpower as true. After PHY initialization finishes, it should mark lowpower as false. Besides, at error patch, we need to mark lowpower as true. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-05-06ENGR00261037-1: usb: usb host works abnormal after unload gadget modulePeter Chen
If there is usb device on the OTG port when controller works at host mode, and at this time, we unload gadget module, the usbcmd.rs will be cleared, it is unexpected behavior. When the controller works at one mode(eg, host mode), the register should not be written by other mode driver (eg, devcie driver). The OTG driver does not consider this situation, and current i.mx FSL OTG driver does not support fully OTG function, so we remove the caller at fsl_otg_set_peripheral which will touch controller register. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-04-24ENGR00258491-3 usb: fix clock unmatch problem after unload modulePeter Chen
Move clock disable from MSL to driver Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-04-24ENGR00258491-1 usb: host: fix error at unload module pathPeter Chen
- When take the PHY out of low power mode, it needs to call PHY's API, only set controller register is not enough for some platforms - usb_put_hcd will free hcd, all hcd related operation should be prior to it. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-04-11ENGR00257130-7 usb: host: Disable wakeup when switch PHY from off to onPeter Chen
Disable wakeup interrupt, since there is wakeup when phcd from 1->0 if wakeup interrupt is enabled. The unexpected wakeup can be disappeared using this fix. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-04-11ENGR00257130-3 usb: host: open the PHY when changing wakeup settingPeter Chen
- Disable irq when we change wakeup setting as there is unexpected interrupt when we power PHY but enables wakeup. - Power PHY when we need to change wakeup setting, as some wakeup settings at PHY domain. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-04-03Merge remote-tracking branch 'fsl-linux-sdk/imx_3.0.35_4.0.0' into ↵guoyin.chen
imx_3.0.35_android Conflicts: drivers/net/fec.c
2013-03-22ENGR00255484-2 usb: ehci-arc: add NULL pointer check for pdata->pdevPeter Chen
The pdata->pdev is initialized at platform code, if init fails at first, it will be not initialized, and platform exit will not be called. This also fixes an oop when config usb module wrongly: Unable to handle kernel NULL pointer dereference at virtual address 0000005c pgd = ba1c4000 [0000005c] *pgd=4a145831, *pte=00000000, *ppte=00000000 Internal error: Oops: 17 [#1] PREEMPT SMP Modules linked in: ehci_hcd(+) usbcore CPU: 1 Not tainted (3.0.35-02451-ge361da1 #60) PC is at fsl_usb_host_uninit_ext+0xc/0x28 LR is at usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd] pc : [<80062b58>] lr : [<7f060934>] psr: a0000013 sp : ba11be80 ip : 00005027 fp : 000a76e0 r10: 00000048 r9 : ba11a000 r8 : bfd4d608 r7 : ffffffed r6 : bfd4d600 r5 : bfc84400 r4 : 80aaee48 r3 : 80062b4c r2 : 00000000 r1 : 60000093 r0 : 00000000 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 10c53c7d Table: 4a1c404a DAC: 00000015 Process modprobe (pid: 1555, stack limit = 0xba11a2f0) Stack: (0xba11be80 to 0xba11c000) be80: bfd97600 7f060934 00000000 00000000 bfd4d608 bfd4d608 80aca808 bfd4d63c bea0: 7f062bd4 80041704 ba11a000 00000000 000a76e0 802a5cec bfd4d608 802a4a14 bec0: bfd4d608 7f062bd4 bfd4d63c 00000000 80041704 802a4bac 7f062bd4 ba11bee8 bee0: 802a4b20 802a4254 bffd4040 bff03f38 7f065000 7f062bd4 80a934c8 bfc8cd20 bf00: 00000000 802a3be0 7f062b1c 7f062bd4 00000000 7f017ec8 7f062bd4 00000000 bf20: 7f065000 80041704 00000000 802a51a0 7f017ec8 80aae500 00000000 7f065000 bf40: 80041704 7f065058 000a79e8 8003b4c4 00000000 00000000 00000000 80a14834 bf60: 000a79e8 000a79e8 7f062c20 00000000 0000e67b 80041704 ba11a000 00000000 bf80: 000a76e0 800aa428 ba076740 800f58dc 000a79e8 0000e67b 00000000 000a75d0 bfa0: 00000080 80041580 0000e67b 00000000 000a79e8 0000e67b 000a75d0 000a76e0 bfc0: 0000e67b 00000000 000a75d0 00000080 000a6a78 00000008 000a76a0 000a76e0 bfe0: 7ec7ab50 7ec7ab40 0001a32c 2ace6490 20000010 000a79e8 4fffe821 4fffec21 [<80062b58>] (fsl_usb_host_uninit_ext+0xc/0x28) from [<7f060934>] (usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd]) [<7f060934>] (usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd]) from [<802a5cec>] (platform_drv_probe+0x18/0x1c) [<802a5cec>] (platform_drv_probe+0x18/0x1c) from [<802a4a14>] (driver_probe_device+0x98/0x1a4) [<802a4a14>] (driver_probe_device+0x98/0x1a4) from [<802a4bac>] (__driver_attach+0x8c/0x90) [<802a4bac>] (__driver_attach+0x8c/0x90) from [<802a4254>] (bus_for_each_dev+0x60/0x8c) [<802a4254>] (bus_for_each_dev+0x60/0x8c) from [<802a3be0>] (bus_add_driver+0x184/0x25c) [<802a3be0>] (bus_add_driver+0x184/0x25c) from [<802a51a0>] (driver_register+0x78/0x13c) [<802a51a0>] (driver_register+0x78/0x13c) from [<7f065058>] (ehci_hcd_init+0x58/0x88 [ehci_hcd]) [<7f065058>] (ehci_hcd_init+0x58/0x88 [ehci_hcd]) from [<8003b4c4>] (do_one_initcall+0x30/0x16c) [<8003b4c4>] (do_one_initcall+0x30/0x16c) from [<800aa428>] (sys_init_module+0x84/0x19c) [<800aa428>] (sys_init_module+0x84/0x19c) from [<80041580>] (ret_fast_syscall+0x0/0x30) Code: 80aaee48 e92d4010 e30e4e48 e34840aa (e590005c) ---[ end trace 719afdfe4af3a442 ]--- Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-22ENGR00255484-2 usb: ehci-arc: add NULL pointer check for pdata->pdevPeter Chen
The pdata->pdev is initialized at platform code, if init fails at first, it will be not initialized, and platform exit will not be called. This also fixes an oop when config usb module wrongly: Unable to handle kernel NULL pointer dereference at virtual address 0000005c pgd = ba1c4000 [0000005c] *pgd=4a145831, *pte=00000000, *ppte=00000000 Internal error: Oops: 17 [#1] PREEMPT SMP Modules linked in: ehci_hcd(+) usbcore CPU: 1 Not tainted (3.0.35-02451-ge361da1 #60) PC is at fsl_usb_host_uninit_ext+0xc/0x28 LR is at usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd] pc : [<80062b58>] lr : [<7f060934>] psr: a0000013 sp : ba11be80 ip : 00005027 fp : 000a76e0 r10: 00000048 r9 : ba11a000 r8 : bfd4d608 r7 : ffffffed r6 : bfd4d600 r5 : bfc84400 r4 : 80aaee48 r3 : 80062b4c r2 : 00000000 r1 : 60000093 r0 : 00000000 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 10c53c7d Table: 4a1c404a DAC: 00000015 Process modprobe (pid: 1555, stack limit = 0xba11a2f0) Stack: (0xba11be80 to 0xba11c000) be80: bfd97600 7f060934 00000000 00000000 bfd4d608 bfd4d608 80aca808 bfd4d63c bea0: 7f062bd4 80041704 ba11a000 00000000 000a76e0 802a5cec bfd4d608 802a4a14 bec0: bfd4d608 7f062bd4 bfd4d63c 00000000 80041704 802a4bac 7f062bd4 ba11bee8 bee0: 802a4b20 802a4254 bffd4040 bff03f38 7f065000 7f062bd4 80a934c8 bfc8cd20 bf00: 00000000 802a3be0 7f062b1c 7f062bd4 00000000 7f017ec8 7f062bd4 00000000 bf20: 7f065000 80041704 00000000 802a51a0 7f017ec8 80aae500 00000000 7f065000 bf40: 80041704 7f065058 000a79e8 8003b4c4 00000000 00000000 00000000 80a14834 bf60: 000a79e8 000a79e8 7f062c20 00000000 0000e67b 80041704 ba11a000 00000000 bf80: 000a76e0 800aa428 ba076740 800f58dc 000a79e8 0000e67b 00000000 000a75d0 bfa0: 00000080 80041580 0000e67b 00000000 000a79e8 0000e67b 000a75d0 000a76e0 bfc0: 0000e67b 00000000 000a75d0 00000080 000a6a78 00000008 000a76a0 000a76e0 bfe0: 7ec7ab50 7ec7ab40 0001a32c 2ace6490 20000010 000a79e8 4fffe821 4fffec21 [<80062b58>] (fsl_usb_host_uninit_ext+0xc/0x28) from [<7f060934>] (usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd]) [<7f060934>] (usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd]) from [<802a5cec>] (platform_drv_probe+0x18/0x1c) [<802a5cec>] (platform_drv_probe+0x18/0x1c) from [<802a4a14>] (driver_probe_device+0x98/0x1a4) [<802a4a14>] (driver_probe_device+0x98/0x1a4) from [<802a4bac>] (__driver_attach+0x8c/0x90) [<802a4bac>] (__driver_attach+0x8c/0x90) from [<802a4254>] (bus_for_each_dev+0x60/0x8c) [<802a4254>] (bus_for_each_dev+0x60/0x8c) from [<802a3be0>] (bus_add_driver+0x184/0x25c) [<802a3be0>] (bus_add_driver+0x184/0x25c) from [<802a51a0>] (driver_register+0x78/0x13c) [<802a51a0>] (driver_register+0x78/0x13c) from [<7f065058>] (ehci_hcd_init+0x58/0x88 [ehci_hcd]) [<7f065058>] (ehci_hcd_init+0x58/0x88 [ehci_hcd]) from [<8003b4c4>] (do_one_initcall+0x30/0x16c) [<8003b4c4>] (do_one_initcall+0x30/0x16c) from [<800aa428>] (sys_init_module+0x84/0x19c) [<800aa428>] (sys_init_module+0x84/0x19c) from [<80041580>] (ret_fast_syscall+0x0/0x30) Code: 80aaee48 e92d4010 e30e4e48 e34840aa (e590005c) ---[ end trace 719afdfe4af3a442 ]--- Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-06Merge remote-tracking branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidguoyin.chen
Conflicts: drivers/video/mxc/ldb.c
2013-03-06ENGR00251209-8 usb: fix the build error when building usb as loadable modulePeter Chen
export usb_suspend, usb_resume, and pm_mutex Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-06ENGR00251209-7 usb: mark phy's low power flag as false at probePeter Chen
PHY's low power flag was false at former logic, so this change should not affect functions. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-06ENGR00251209-5 usb: fix the system hang when unload gadget modulePeter Chen
- For gadget, the clock will be closed at platform code, so the driver should not be close clock beforehand. - For host, the PHY should not be low power mode when the host controller has still possibilities to use. Besides, the 5v should be off at last as some platform uses 5v for PHY's power. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-06ENGR00251209-2 usb: otg: fix the dp/dm will be floating when phy is no 3v3Peter Chen
For the design which the phy is no power (no 5v for VBUS), the PHY can't get dp/dm correctly, so it the port change interrpt is enabled or the host enters low power mode, the unexpected interrupt will occur. This commit will make the dp/dm as zero at otg configuration. For gadget-only, the same function is existed at probe. For host-only, the vbus will be on before port change interrupt is enabled. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-06ENGR00251209-8 usb: fix the build error when building usb as loadable modulePeter Chen
export usb_suspend, usb_resume, and pm_mutex Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-06ENGR00251209-7 usb: mark phy's low power flag as false at probePeter Chen
PHY's low power flag was false at former logic, so this change should not affect functions. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-06ENGR00251209-5 usb: fix the system hang when unload gadget modulePeter Chen
- For gadget, the clock will be closed at platform code, so the driver should not be close clock beforehand. - For host, the PHY should not be low power mode when the host controller has still possibilities to use. Besides, the 5v should be off at last as some platform uses 5v for PHY's power. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-06ENGR00251209-2 usb: otg: fix the dp/dm will be floating when phy is no 3v3Peter Chen
For the design which the phy is no power (no 5v for VBUS), the PHY can't get dp/dm correctly, so it the port change interrpt is enabled or the host enters low power mode, the unexpected interrupt will occur. This commit will make the dp/dm as zero at otg configuration. For gadget-only, the same function is existed at probe. For host-only, the vbus will be on before port change interrupt is enabled. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-02-27Merge remote-tracking branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidguoyin.chen
Conflicts: arch/arm/mach-mx6/Makefile arch/arm/mach-mx6/board-mx6dl_hdmidongle.h arch/arm/mach-mx6/board-mx6q_hdmidongle.c arch/arm/mach-mx6/board-mx6q_hdmidongle.h arch/arm/mach-mx6/board-mx6q_sabreauto.c arch/arm/mach-mx6/board-mx6q_sabrelite.c drivers/media/video/mxc/capture/csi_v4l2_capture.c drivers/media/video/mxc/capture/ipu_csi_enc.c drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_compiler.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c drivers/mxc/vpu/mxc_vpu.c drivers/usb/gadget/arcotg_udc.c drivers/video/mxc/mxc_ipuv3_fb.c drivers/video/mxc_hdmi.c include/linux/mxcfb.h sound/soc/imx/imx-wm8962.c
2013-02-04ENGR00220096 USB core: remove Logitech Quickcam E3500 form usb_quirk_listmake shi
Since Logitech Quickcam E3500 is defaultly listed in usb_quirk_list on current linux kernel. So the USB camera only supports reset resume, but doesn't support normal usb suspend/resume. Actually, the USB camera works abnormally after USB reset resume, but it works well after doing normal suspend/resume. Signed-off-by: make shi <b15407@freescale.com>
2013-02-01ENGR00242788: usb: host: disable stream mode due to IC problemPeter Chen
There is a bug at chipidea core, please see below synopsis problem title and its number. STAR 9000378958 Title: Non-Double Word Aligned Buffer Address Sometimes Causes Host to Hang on OUT Retry This problem will be showed when we use Ethernet device at host port, there is an errata ERR006308 for it. The workaround for this issue is to disable stream mode at register usbmode. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-01-28ENGR00241582 MX6 USB host: USB host certification patchmake shi
The patch include: - USB test mode on hub port and Root-hub port - support 3 types of message: too much hub ties for hub attachment too much power consumption for device attachment unsupported device class warning - support menuconfig select the FSL_USB_TEST_MODE, located in: -> Device Drivers -> USB support (USB_SUPPORT [=y]) -> FSL High-speed Electrical Test Mode support Signed-off-by: make shi <b15407@freescale.com>
2013-01-11ENGR00232755 USB: disable clock and abnormal wakeup when remove gadget drivermake shi
- In current bsp, the usb clock mismatch when rmmod gadget class driver. The clock should be turn off when gadget class driver unregister. - There is an abnormal usb wakeup interrupt happen if phy is no power without VBUS. If we unplug the usb cable after unregister usb gadget driver, it is difficult to handle the unexpected usb wakeup interrupt. SO we must call dr_discharge_line() to make sure no abnormal usb wakeup interrupt happen in usb unregister gadget class driver. Signed-off-by: make shi <b15407@freescale.com>
2013-01-05ENGR00237588: Add PTP ctrl request funcLiGang
PC maybe issue out MTP_REQ_GET_DEVICE_STATUS control request to query the device status when device in PTP mode. So it's necessary to add ctrl request function for PTP. Signed-off-by: LiGang <b41990@freescale.com>
2013-01-04Merge tag 'rel_imx_3.0.35_1.1.0' into imx_3.0.35_androidXinyu Chen
Conflicts: drivers/mxc/vpu/mxc_vpu.c drivers/usb/gadget/arcotg_udc.c sound/soc/imx/imx-wm8962.c
2012-12-17ENGR00236169 MX6 USB :kfree udc_controller when remove udc driverrel_imx_3.0.35_1.1.0make shi
Kree and reset udc_controller should be done when remove udc driver to avoid kernel dump during modprobe gadget driver after modprobe and rmmod udc driver. Signed-off-by: make shi <b15407@freescale.com>
2012-12-12ENGR00236169 MX6 USB :kfree udc_controller when remove udc drivermake shi
Kree and reset udc_controller should be done when remove udc driver to avoid kernel dump during modprobe gadget driver after modprobe and rmmod udc driver. Signed-off-by: make shi <b15407@freescale.com>
2012-12-06ENGR00234722 USB: fix Kernel dump issue after USB driver loadablemake shi
- It is better to disable otgsc and wake up interrupt to avoid an abnormal interrupt happen during USB driver being removed. - If the USB host is already at low power mode, only need turn on the clock, no need turn off the clock. - Need discharge dp and dm during USB driver being removed ,in order to avoid a wakeup interrupt happen. And if the USB otg is in host mode, we should clear discharge dp and dm in fsl_otg_set_host() during system boot up. Signed-off-by: make shi <b15407@freescale.com>
2012-12-05ENGR00234722 USB: fix Kernel dump issue after USB driver loadablemake shi
- It is better to disable otgsc and wake up interrupt to avoid an abnormal interrupt happen during USB driver being removed. - If the USB host is already at low power mode, only need turn on the clock, no need turn off the clock. - Need discharge dp and dm during USB driver being removed ,in order to avoid a wakeup interrupt happen. And if the USB otg is in host mode, we should clear discharge dp and dm in fsl_otg_set_host() during system boot up. Signed-off-by: make shi <b15407@freescale.com>
2012-12-03ENGR00234722 USB: fix Kernel dump issue after USB driver loadablemake shi
- It is better to disable otgsc and wake up interrupt to avoid an abnormal interrupt happen during USB driver being removed. - If the USB host is already at low power mode, only need turn on the clock, no need turn off the clock. - Need discharge dp and dm during USB driver being removed ,in order to avoid a wakeup interrupt happen. And if the USB otg is in host mode, we should clear discharge dp and dm in fsl_otg_set_host() during system boot up. Signed-off-by: make shi <b15407@freescale.com>
2012-11-30Merge remote-tracking branch 'fsl-linux-sdk/imx_3.0.35_1.1.0' into ↵Xinyu Chen
imx_3.0.35_android Conflicts: arch/arm/mach-mx6/board-mx6q_sabrelite.c arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/plat-mxc/cpufreq.c
2012-11-14ENGR00233051-04 Mx6 USB: driver implementation for OTG modulizationmake shi
- reset fsl_otg_dev to NULL after kfree - remove __exit_p prefix to make sure fsl_udc_remove is called when module unload Signed-off-by: make shi <b15407@freescale.com>
2012-11-08Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
Conflicts: arch/arm/plat-mxc/dvfs_core.c drivers/input/keyboard/mpr121.c drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c include/linux/i2c/mpr.h sound/soc/imx/imx-wm8962.c
2012-11-07ENGR00232583 Mx6 USB host: Set HCD_FLAG_HW_ACCESSIBLE flag after clock gatemake shi
There is a USB hang issue when do system suspend/resume test with a USB device plug in. The issue is caused by USB host driver accessing register when clock is off. Currently set HCD_FLAG_HW_ACCESSIBLE bit before open clock in ehci_fsl_bus_resume, it cause accessing register without clock. So we should change the code call order to avoid driver access register without clock. - Set HCD_FLAG_HW_ACCESSIBLE software flag after HW clock turn on - remove some unnecessary code in ehci_fsl_pre_irq Signed-off-by: make shi <b15407@freescale.com>
2012-11-01ENGR00231965 MX6 USB CV 3.0 test failTony LIU
- For USB CV 3.0 test, the gap between the ACK of set_address and the subsequent setup packet may be very little, say 500us, and if the latency we handle the ep completion is greater than this gap, there is no response to the subsequent packet. It will cause CV test fail - There is another way to set the address, it should set the bit 24 to 1 with the right address, and then IC controller will set the address when the IN req complete instead of SW do it. It is more fast so it can fix the CV 3.0 test fail issue Signed-off-by: Tony LIU <junjie.liu@freescale.com>
2012-10-15Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
2012-10-12ENGR00229354 Mx6 USB device: fix wrong handle for invalid USB_FEATURE requestsmake shi
There is a bug udc driver handle invalid USB_FEATURE requests in current bsp. The invalid USB_FEATURE request will be handled as a valid USB_FEATURE request. We should set protocol stall on ep0 to handle invalid USB_FEATURE requests. Signed-off-by: make shi <b15407@freescale.com>
2012-10-12ENGR00229338: usb: fix using lock before initialization problemPeter Chen
It will cause below problem if spin_lock debug is on: BUG: spinlock lockup on CPU#0, swapper/1, 9a0292a0 The reason is the lock is used before initialization. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2012-10-09Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
Conflicts: arch/arm/configs/imx6s_updater_defconfig arch/arm/include/asm/hardware/coresight.h arch/arm/kernel/etm.c arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/mach-mx6/cpu_op-mx6.c arch/arm/mach-mx6/mx6_suspend.S arch/arm/mach-mx6/pm.c arch/arm/mach-mx6/system.c arch/arm/plat-mxc/cpufreq.c drivers/mfd/mxc-hdmi-core.c drivers/power/sabresd_battery.c drivers/video/mxc/mxc_ipuv3_fb.c drivers/video/mxc_hdmi.c include/linux/mfd/mxc-hdmi-core.h
2012-09-29Merge branch 'jb' into imx_3.0.35_androidXinyu Chen
Conflicts: drivers/cpufreq/cpufreq_interactive.c fs/proc/base.c
2012-09-25ENGR00225131-05 MX6 USB: set stop_mode_config bit if wake up is enabledmake shi
IC designer had clarified that 1P1 can be turned off if we do not need support remote wakeup. So If there is no requirement for USB remote wake up, the 1P1 can be turn off. USB driver will support dynamically turn on(off) 1P1 during system suspend. 1P1 will be turn on depend on USB wakeup is enabled. - Set stop_mode_config bit if USB host need support USB remote wake up - Set stop_mode_config bit if USB device need support USB DP/DM wake up system Signed-off-by: make shi <b15407@freescale.com>