summaryrefslogtreecommitdiff
path: root/drivers/dma
AgeCommit message (Collapse)Author
2013-08-12Merge remote-tracking branch 'fsl-linux-sdk/imx_3.0.35_4.1.0' into ↵guoyin.chen
imx_3.0.35_android
2013-08-08ENGR00273432 DMA: imx-sdma: Allocate 4KB iram page size for bdNicolin Chen
One bd actually needs 4KB page size. So changed the iram_alloc() size parameter to allocate a precise iram memory for bd. This patch also removed the extra iram pool for SDMA due to its insufficient total size: SDMA allows around 48 channels to work simultaneously, so it's better to allocate memory from iram pool directly. [There will be 3KB size waste in sdma->channel_control, which is 640B but actually using 4KB due to 4KB alignment for iram pool.] Acked-by: Huang Shijie <b32955@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com>
2013-08-08ENGR00273973-1 Revert "ENGR00270573-2 [MX6SL]Add support for dynamic Power GatiRobby Cai
This reverts commit 881e21c1275dcc40ccd63fb4fa46b990eeb4fb00. With the commit 881e21c1 and 7b60e285, the system will hang when do suspend and resume stress test continuouly while run edpc test in the background. Revert it now and revisit it later. Signed-off-by: Robby Cai <R63905@freescale.com>
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-25ENGR00270573-2 [MX6SL]Add support for dynamic Power Gating of the display MIXRanjani Vaidyanathan
The display MIX can be power gated when EPDC, PXP and LCDIF are all inactive. This will save around 1.5mW-1.8mW of power in system IDLE mode. Need to re-initialize the EPDC and PXP whenever the display MIX is powered up as all the register state is lost when the display MIX is power gated. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2013-07-18ENGR00271577 sdma: fix the compiling warningHuang Shijie
In the imx6sl, we meet the compiling warning shows below: -------------------------------------------------------------------- drivers/dma/imx-sdma.c: In function Pleasesdma_iram_free: drivers/dma/imx-sdma.c:366: warning: passing argument 2 of Pleasegen_pool_free makes integer from pointer without a cast include/linux/genalloc.h:58: note: expected Pleaselong unsigned integer but argument is of type Pleaselong unsigned int *Please drivers/dma/imx-sdma.c: In function Pleasesdma_load_script: drivers/dma/imx-sdma.c:452: warning: passing argument 2 of Pleasesdma_iram_malloc makes pointer from integer without a cast drivers/dma/imx-sdma.c:352: note: expected Pleaselong unsigned int *Please but argument is of type Pleaselong unsigned integer drivers/dma/imx-sdma.c:475: warning: passing argument 1 of Pleasesdma_iram_free makes pointer from integer without a cast drivers/dma/imx-sdma.c:361: note: expected Pleaselong unsigned int *Please but argument is of type Pleasedma_addr_t drivers/dma/imx-sdma.c: In function Pleasesdma_request_channel: drivers/dma/imx-sdma.c:942: warning: passing argument 2 of Pleasesdma_iram_malloc makes pointer from integer without a cast drivers/dma/imx-sdma.c:352: note: expected Pleaselong unsigned int *Please but argument is of type Pleaselong unsigned integer drivers/dma/imx-sdma.c: In function Pleasesdma_free_chan_resources: drivers/dma/imx-sdma.c:1109: warning: passing argument 1 of Pleasesdma_iram_free makes pointer from integer without a cast drivers/dma/imx-sdma.c:361: note: expected Pleaselong unsigned int *Please but argument is of type Pleasedma_addr_t drivers/dma/imx-sdma.c: In function Pleasesdma_init: drivers/dma/imx-sdma.c:1505: warning: passing argument 2 of Pleasesdma_iram_malloc from incompatible pointer type drivers/dma/imx-sdma.c:352: note: expected Pleaselong unsigned int *Please but argument is of type Pleasedma_addr_t *Please -------------------------------------------------------------------- this patch fixes it. Signed-off-by: Huang Shijie <b32955@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-07-05ENGR00258366 dma: imx-sdma: make channel0 operations atomicHuang Shijie
This patch is rewrited by the patch : "2ccaef0520d18d0 dma: imx-sdma: make channel0 operations atomic" device_prep_dma_cyclic may be call in audio trigger function which is atomic context, so we make it atomic too. - change channel0 lock to spinlock. - Use polling to wait for channel0 finish running. Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
2013-06-17ENGR00181680-2 No audio when play 3 streams after 3~10 seconds sometimesb02247
sdma: bd is bufferable dma buffer, interrupt handler can not get correct data after sdma script updated. Which will cause there is no interrupt after failed period number times in the interrupt handler. This is a workaround. Signed-off-by: b02247 <b02247@freescale.com>
2013-05-21ENGR00262815-2 MX6SL-Add support for SDMA buffers in IRAMRanjani Vaidyanathan
Store SDMA channel and buffer descriptors in IRAM for MX6SL. This will improve the audio playback power when both the SDMA and audio buffers are all in IRAM. The DDR will be self-refresh for longer periods of time. Signed-off-by: Ranjani Vaidyanathan <ra5478@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-28ENGR00233569 SDMA: Add support for SDMA M2M copyGe Lei
Our SDMA code did not support SDMA M2M copy function before, we add SDMA M2M copy function in this patch, you can use 'sg' to use this function, you can refer to 'linux-test/module_test/mxc_sdma_memcopy_test.c' for how to use this function. Signed-off-by: Ge Lei <b42127@freescale.com>
2012-11-26ENGR00233569 SDMA: Add support for SDMA M2M copyGe Lei
Our SDMA code did not support SDMA M2M copy function before, we add SDMA M2M copy function in this patch, you can use 'sg' to use this function, you can refer to 'linux-test/module_test/mxc_sdma_memcopy_test.c' for how to use this function. Signed-off-by: Ge Lei <b42127@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-06ENGR00231773-6 SDMA: add event pending trigger interfaceChen Liangjun
When SDMA is use for periphal data transfer, dma request is trigger by FIFO level. If the SDMA is started after the start of periphal, SDMA would miss the first pulse and be not able to trigger itself. In this patch, add interface to trigger a dma request manully. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-02ENGR00232000: Fix "dmaengine: failed to get dma1chan0: (-22)" when bootRobby Cai
The log from [MX6DL/S_SD]: ... mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver ldb dmaengine: failed to get dma1chan0: (-22) dmaengine: failed to get dma1chan1: (-22) dmaengine: failed to get dma1chan2: (-22) dmaengine: failed to get dma1chan3: (-22) dmaengine: failed to get dma1chan4: (-22) dmaengine: failed to get dma1chan5: (-22) dmaengine: failed to get dma1chan6: (-22) dmaengine: failed to get dma1chan7: (-22) dmaengine: failed to get dma1chan8: (-22) dmaengine: failed to get dma1chan9: (-22) dmaengine: failed to get dma1chan10: (-22) dmaengine: failed to get dma1chan11: (-22) dmaengine: failed to get dma1chan12: (-22) dmaengine: failed to get dma1chan13: (-22) dmaengine: failed to get dma1chan14: (-22) dmaengine: failed to get dma1chan15: (-22) ... It happens when there are many DMA-engine drivers in the system and dmaengine_get() is called. dmaengine_get() will call dma_chan_get(), which will call device_alloc_chan_resources() literally on channels of available dma drivers unless reach -ENODEV. device_alloc_chan_resources() is implemented in the individual dma drivers, which could return -EINVAL rather than -ENODEV, then the above messages print out (doesn't hurt, however). Indeed, the dmaengine_get() and dmaengine_put() is not needed and thus removed. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-23ENGR00229665 pxp: correct crop settingRobby Cai
The settings in the PXP_PS_BUF, PXP_OUT_PS_ULC, and PXP_OUT_PS_LRC will determine the subset of the PS buffer, or clipped PS source buffer, that will be used in the output buffer. HW_PXP_OUT_PS_LRC should set the scaled output size rather than the origin size when scaling. Please refer to the "Clipping source images" section in RM for how it works. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-18ENGR00225520 SDMA:fix kernel dump occasionally during I2C stress testNicolin Chen
Stress test with I2C devices occasionally caused kernel dump and panic: ==========================dump=start========================== v4l_capture_testapp 0 TINFO : Color space conversion YUV420->RGB565X success! v4l_capture_testapp 0 TINFO : Color space conversion YUV420->RGB565X success! clean up environment...VPU interrupt received. Unable to handle kernel paging request at virtual address ffdf401a pgd = ba2a4000 [ffdf401a] *pgd=4fe1a811, *pte=00000000, *ppte=00000000 Internal error: Oops: 7 [#1] PREEMPT SMP Modules linked in: mxc_v4l2_capture ipu_still ipu_bg_overlay_sdc ipu_prp_enc ipu_fg_overlay_sdc ipu_csi_enc ov5642_camera camera_sensor_clock [last unloaded: ipu_csi_enc] CPU: 0 Not tainted (3.0.35-2039-g267e004 #1) PC is at sdma_int_handler+0x144/0x1a4 LR is at sdma_int_handler+0x70/0x1a4 pc : [<802663f4>] lr : [<80266320>] psr: 60000193 sp : ba3e7ca8 ip : bfee2100 fp : 00000001 r10: 80a67200 r9 : 80acbcf0 r8 : 00000003 r7 : 00000001 r6 : 00000001 r5 : 00000002 r4 : bfee20e0 r3 : ffdf4000 r2 : 00010104 r1 : ffdf4018 r0 : bfee2104 Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user Control: 10c53c7d Table: 4a2a404a DAC: 00000015 Process mxc_vpu_test.ou (pid: 3277, stack limit = 0xba3e62f0) Stack: (0xba3e7ca8 to 0xba3e8000) 7ca0: 80038f40 bfee2000 002977e3 bf9cda80 80a6724c 00000000 7cc0: 00000000 00000022 80acbcf0 80a67200 00000001 800a5cb8 0000f08f 00000000 [<802663f4>] (sdma_int_handler+0x144/0x1a4) from [<800a5cb8>] (handle_irq_event_percpu+0x50/0x180) [<800a5cb8>] (handle_irq_event_percpu+0x50/0x180) from [<800a5e24>] (handle_irq_event+0x3c/0x5c) [<800a5e24>] (handle_irq_event+0x3c/0x5c) from [<800a81a8>] (handle_fasteoi_irq+0xbc/0x154) [<800a81a8>] (handle_fasteoi_irq+0xbc/0x154) from [<800a5620>] (generic_handle_irq+0x28/0x3c) [<800a5620>] (generic_handle_irq+0x28/0x3c) from [<80040830>] (handle_IRQ+0x4c/0xac) [<80040830>] (handle_IRQ+0x4c/0xac) from [<8003f9cc>] (__irq_svc+0x4c/0xe8) [<8003f9cc>] (__irq_svc+0x4c/0xe8) from [<800764f4>] (__do_softirq+0x4c/0x140) [<800764f4>] (__do_softirq+0x4c/0x140) from [<80076a90>] (irq_exit+0x94/0x9c) [<80076a90>] (irq_exit+0x94/0x9c) from [<8003a1b4>] (do_local_timer+0x70/0x90) [<8003a1b4>] (do_local_timer+0x70/0x90) from [<8003f9cc>] (__irq_svc+0x4c/0xe8) Exception stack(0xba3e7de8 to 0xba3e7e30) [<8003f9cc>] (__irq_svc+0x4c/0xe8) from [<80071a88>] (vprintk+0x328/0x4a8) [<80071a88>] (vprintk+0x328/0x4a8) from [<804ddb28>] (printk+0x1c/0x2c) [<804ddb28>] (printk+0x1c/0x2c) from [<80390de0>] (vpu_ioctl+0x2cc/0x864) [<80390de0>] (vpu_ioctl+0x2cc/0x864) from [<800fc314>] (do_vfs_ioctl+0x80/0x54c) [<800fc314>] (do_vfs_ioctl+0x80/0x54c) from [<800fc818>] (sys_ioctl+0x38/0x5c) [<800fc818>] (sys_ioctl+0x38/0x5c) from [<8003ff80>] (ret_fast_syscall+0x0/0x30) Code: e594101c e5943038 e0811081 e0831101 (e5d13002) ---[ end trace 82daf36a5a07d470 ]--- Kernel panic - not syncing: Fatal exception in interrupt Rebooting in 60 seconds.. ==========================dump=end========================== This kernel dump only happened after one period of stress-test's done. From the dump info above, we just located the issue happened in SDMA driver. Regularly, it'd not be any problem when sdma_int_handler()'s called. But after tracing, we found that in those occasional times, the last one irq of a channel hadn't been responded while sdma_free_chan_resources() was already done. sdma_free_chan_resources() should be called in the end of the procedure. Any irq wouldn't occur after its resources're freed. But considering about stress test, the test scripts uses "kill" cmd to close aplay, which means pcm_free() might be called before last buffer's transmission was finished. Plus, many modules're working in the same time during the test. So CPU0, the only core can handle irq, would be busy with irq-handlings, while the other CPU cores(i.e. CPU1~3) might be idle and deal with free() much faster than CPU0's irq-handling. Then kernel panic. Since we know, in some extreme circumstances, the irq would not be handled in time, we can manually handle the irq ONLY IF we could still detect one irq to the channel in the beginning of free(), right before its resources's gonna be freed. This Patch added checking code in the beginning of sdma_free_chan_resources() to detect when the channel's gonna be freed if there's still one irq pended. If so, just handle the irq manually before we free it. Again, considering about sdma_int_handler() might be running at the same time, and if it already cleared the value of reg but hadn't handled the irq yet, also added code to pend free() until irq to the channel was handled. Signed-off-by: Nicolin Chen <b42378@freescale.com>
2012-10-15Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
2012-10-12ENGR00227835 imx6q: gpmi: fix the warning when no NAND chip exitsHuang Shijie
If there is no nand chip in the board, the kernel will prints out the following warning message: ------------[ cut here ]------------ WARNING: at arch/arm/plat-mxc/clock.c:63 clk_disable+0x48/0x90() clock enable/disable mismatch! clk apbh_dma_clk Modules linked in: [<80044f48>] (unwind_backtrace+0x0/0xfc) from [<80070ac0>] (warn_slowpath_common+0x4c/0x64) [<80070ac0>] (warn_slowpath_common+0x4c/0x64) from [<80070b6c>] (warn_slowpath_fmt+0x30/0x40) [<80070b6c>] (warn_slowpath_fmt+0x30/0x40) from [<8005ee60>] (clk_disable+0x48/0x90) [<8005ee60>] (clk_disable+0x48/0x90) from [<80255e48>] (dma_chan_put+0x4c/0x50) [<80255e48>] (dma_chan_put+0x4c/0x50) from [<80255f18>] (dma_release_channel+0x24/0x94) [<80255f18>] (dma_release_channel+0x24/0x94) from [<802ad8ec>] (release_resources+0x58/0x6c) [<802ad8ec>] (release_resources+0x58/0x6c) from [<80445964>] (gpmi_nand_probe+0x44c/0x4ec) [<80445964>] (gpmi_nand_probe+0x44c/0x4ec) from [<80281868>] (platform_drv_probe+0x18/0x1c) [<80281868>] (platform_drv_probe+0x18/0x1c) from [<80280590>] (driver_probe_device+0x98/0x1a4) [<80280590>] (driver_probe_device+0x98/0x1a4) from [<80280728>] (__driver_attach+0x8c/0x90) [<80280728>] (__driver_attach+0x8c/0x90) from [<8027fdd0>] (bus_for_each_dev+0x60/0x8c) [<8027fdd0>] (bus_for_each_dev+0x60/0x8c) from [<8027f75c>] (bus_add_driver+0x184/0x25c) [<8027f75c>] (bus_add_driver+0x184/0x25c) from [<80280d1c>] (driver_register+0x78/0x13c) [<80280d1c>] (driver_register+0x78/0x13c) from [<80022d80>] (gpmi_nand_init+0xc/0x3c) [<80022d80>] (gpmi_nand_init+0xc/0x3c) from [<80039478>] (do_one_initcall+0x30/0x16c) [<80039478>] (do_one_initcall+0x30/0x16c) from [<80008410>] (kernel_init+0x98/0x144) [<80008410>] (kernel_init+0x98/0x144) from [<8003ffb4>] (kernel_thread_exit+0x0/0x8) ---[ end trace c28d32057fe33a29 ]--- This mxs_dma_clk's usecount is not correctly changed which causes the kernel shows this warning. This patch adds proper clk_disable_unprepare/clk_prepare_enable in the mxs-dma driver to balance the mxs_dma_clk's usecount. Also put the mxs_dma_clk when the gpmi exits. Signed-off-by: Huang Shijie <b32955@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-29ENGR00225981-2 pxp: fix the coefficient for the YCbCr-RGB CSCRobby Cai
Fix the coefficient for the YCbCr-RGB Color space conversion. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-09-29ENGR00225981-1 pxp: add UYVY input pixel formatRobby Cai
The default camera output format is UYVY, PxP is used to convert UYVY to RGB565 for displaying on LCD. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-08-30Merge remote branch 'fsl-linux-sdk/imx_3.0.35_12.09.01' into imx_3.0.35_androidXinyu Chen
Conflicts: arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/mach-mx6/board-mx6sl_arm2.c arch/arm/mach-mx6/bus_freq.c arch/arm/mach-mx6/cpu_op-mx6.c arch/arm/plat-mxc/cpufreq.c
2012-08-24ENGR00220796-1: pxp: Add stride configuration for some pixel formatRobby Cai
Set correct PITCH (aka, stride) for AS, PS, Output buffer. This is needed for V4L2. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-08-10Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
2012-08-03ENGR00219360 SDMA: clean build warningChen Liangjun
Clean build warning: drivers/dma/imx-sdma.c: In function 'sdma_config_channel': drivers/dma/imx-sdma.c:763: warning: unused variable 'data' Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-08-03Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
2012-08-02ENGR00219160 SDMA: replace SDMA LOOP/NORMAL type with enum structChen Liangjun
For common DMA enguine, only slave_sg mode and cyclic mode is support. However, SDMA can meet more kinds of DMA operation mode requirement. The origin flags NORMAL and LOOP can no longer satisfy SDMA user's need. In this patch, 1 Construct a new enum sdma_mode to declare more kind of SDMA modes. This new variable would replace the old flags. 2 Init sdma_mode to unvalid every time allocating a SDMA channel to avoid last SDMA channel configuration's impact. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-08-01Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
Conflicts: drivers/mxc/vpu/mxc_vpu.c
2012-07-30ENGR00218013-3 SDMA:Add support for HDMI_SDMAChen Liangjun
1 Add support for HDMI_SDMA config. 2 Add support for HDMI_SDMA interrupt handler. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-25Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
Conflicts: arch/arm/configs/imx6_defconfig arch/arm/configs/imx6_updater_defconfig arch/arm/configs/imx6s_defconfig arch/arm/include/asm/dma-mapping.h arch/arm/kernel/smp.c arch/arm/mach-mx6/Kconfig arch/arm/mach-mx6/board-mx6dl_arm2.h arch/arm/mach-mx6/board-mx6dl_sabresd.h arch/arm/mach-mx6/board-mx6q_arm2.c arch/arm/mach-mx6/board-mx6q_arm2.h 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/board-mx6sl_arm2.c arch/arm/mach-mx6/board-mx6sl_arm2.h arch/arm/mach-mx6/board-mx6solo_sabreauto.h arch/arm/mach-mx6/bus_freq.c arch/arm/mach-mx6/clock.c arch/arm/mach-mx6/clock_mx6sl.c arch/arm/mach-mx6/cpu.c arch/arm/mach-mx6/crm_regs.h arch/arm/mach-mx6/devices-imx6q.h arch/arm/mach-mx6/devices.c arch/arm/mach-mx6/mx6_anatop_regulator.c arch/arm/mach-mx6/pcie.c arch/arm/mach-mx6/system.c arch/arm/mm/dma-mapping.c arch/arm/plat-mxc/devices/Makefile arch/arm/plat-mxc/devices/platform-imx-dcp.c arch/arm/plat-mxc/devices/platform-imx-ocotp.c arch/arm/plat-mxc/devices/platform-imx-rngb.c arch/arm/plat-mxc/devices/platform-mxc_hdmi.c arch/arm/plat-mxc/include/mach/devices-common.h arch/arm/plat-mxc/include/mach/esdhc.h arch/arm/plat-mxc/include/mach/iomux-mx6dl.h arch/arm/plat-mxc/include/mach/iomux-mx6q.h arch/arm/plat-mxc/include/mach/memory.h arch/arm/plat-mxc/include/mach/mx6.h arch/arm/plat-mxc/include/mach/mxc_edid.h arch/arm/plat-mxc/include/mach/mxc_hdmi.h arch/arm/plat-mxc/system.c drivers/Kconfig drivers/char/hw_random/fsl-rngc.c drivers/cpufreq/Makefile drivers/cpufreq/cpufreq_interactive.c drivers/crypto/Kconfig drivers/crypto/caam/caamalg.c drivers/crypto/caam/compat.h drivers/crypto/caam/ctrl.c drivers/crypto/caam/desc_constr.h drivers/crypto/caam/intern.h drivers/crypto/dcp.c drivers/dma/pch_dma.c drivers/input/keyboard/gpio_keys.c drivers/input/touchscreen/egalax_ts.c drivers/input/touchscreen/max11801_ts.c drivers/media/video/mxc/capture/Kconfig drivers/media/video/mxc/capture/adv7180.c drivers/media/video/mxc/capture/ipu_csi_enc.c drivers/media/video/mxc/capture/ipu_prp_vf_sdc.c drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c drivers/media/video/mxc/capture/mxc_v4l2_capture.c drivers/media/video/mxc/capture/ov5640_mipi.c drivers/media/video/mxc/output/mxc_vout.c drivers/misc/Kconfig drivers/misc/Makefile drivers/mmc/card/block.c drivers/mmc/core/mmc.c drivers/mmc/host/mmci.c drivers/mmc/host/sdhci-esdhc-imx.c drivers/mmc/host/sdhci.c drivers/mmc/host/sdhci.h drivers/mxc/Kconfig drivers/mxc/Makefile drivers/mxc/asrc/mxc_asrc.c drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.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/gc_hal_kernel_command.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c drivers/mxc/ipu3/ipu_device.c drivers/mxc/vpu/mxc_vpu.c drivers/net/fec.c drivers/net/wireless/Makefile drivers/power/sabresd_battery.c drivers/regulator/core.c drivers/tty/serial/imx.c drivers/usb/core/hub.c drivers/usb/gadget/arcotg_udc.c drivers/usb/gadget/fsl_updater.c drivers/usb/gadget/inode.c drivers/usb/host/ehci-hub.c drivers/video/mxc/ldb.c drivers/video/mxc/mipi_dsi.c drivers/video/mxc/mxc_dispdrv.c drivers/video/mxc/mxc_dispdrv.h drivers/video/mxc/mxc_edid.c drivers/video/mxc/mxc_elcdif_fb.c drivers/video/mxc/mxc_ipuv3_fb.c drivers/video/mxc/mxc_spdc_fb.c drivers/video/mxc_hdmi.c drivers/watchdog/imx2_wdt.c fs/proc/base.c include/linux/mmc/host.h include/linux/mmc/sdhci.h include/linux/mxc_v4l2.h kernel/power/main.c sound/soc/codecs/mxc_hdmi.c sound/soc/codecs/mxc_spdif.c sound/soc/codecs/wm8962.c sound/soc/imx/Kconfig sound/soc/imx/Makefile sound/soc/imx/imx-cs42888.c sound/soc/imx/imx-esai.c sound/soc/imx/imx-wm8958.c sound/soc/imx/imx-wm8962.c
2012-07-20ENGR00209570 - PxP : Add Y4 output format.Fugang Duan
- Add Y4 output format for SPDC. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-07-20dma/imx-sdma: use readl_relaxed/writel_relaxed and use writel when necessaryHuang Shijie
use readl_relaxed/writel_relaxed in most places, and use writel when enable channel, because it needs memory barrier. Signed-off-by: Richard Zhao <richard.zhao@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-07-20IMX/DMA : set the DMA direction in the sdma_control()Huang Shijie
Set the right DMA direction in the sdma_control(), else we will get the wrong log when enable the DYNAMIC_DEBUG. Signed-off-by: Huang Shijie <b32955@freescale.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-07-20ENGR00179628-1 SSI: enable dual-fifo feature as defaultGary Zhang
enable SSI dual-fifo feature as default setting Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00177241-3 mx6 close APBH DMA clock when no I/O operationAllen Xu
When there is no NAND I/O operation, close all the reference clock, include GPMI,BCH and APBH clock. Signed-off-by: Allen Xu <allen.xu@freescale.com>
2012-07-20ENGR00177235-1 SDMA: add p2p dma modeChen Liangjun
Add support for p2p(peripheral to peripheral) dma mode in SDMA module. 1 Add p2p script membership in struct sdma_channel to support device to device tranfer. 2 P2P dma script need more configure information then memory to peripheral or peripheral to memory script. we configure these information into watermark_level. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-20ENGR00177046: Add the platform dependency for PXP in KconfigRobby Cai
If there's no dependency, build will be broken when do `make ARCH=arm CROSS_COMPILE=<cross-compiler path> allmodconfig' `make' because PXP module will be turned on. This patch fixed it. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-07-20ENGR00174299-1: driver part: Add ePxP v2 DMAENGINE driverRobby Cai
add ePxP v2 DMAENGINE driver Signed-off-by: Robby Cai <R63905@freescale.com>
2012-07-20ENGR00173731-6 MX6Q/DMA : enable the mxs-dma for mx6qHuang Shijie
enable the mxs-dma for mx6q. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-07-20ENGR00173731-3 mxs-dma : rewrite the last parameter of mxs_dma_prep_slave_sg()Huang Shijie
[1] Background : The GPMI does ECC read page operation with a DMA chain consist of three DMA Command Structures. The middle one of the chain is used to enable the BCH, and read out the NAND page. The WAIT4END(wait for command end) is a comunication signal between the GPMI and MXS-DMA. [2] The current DMA code sets the WAIT4END bit at the last one, such as: +-----+ +-----+ +-----+ | cmd | ------------> | cmd | ------------------> | cmd | +-----+ +-----+ +-----+ ^ | | set WAIT4END here This chain works fine in the mx23/mx28. [3] But in the new GPMI version (used in MX50/MX60), the WAIT4END bit should be set not only at the last DMA Command Structure, but also at the middle one, such as: +-----+ +-----+ +-----+ | cmd | ------------> | cmd | ------------------> | cmd | +-----+ +-----+ +-----+ ^ ^ | | | | set WAIT4END here too set WAIT4END here If we do not set WAIT4END, the BCH maybe stalls in "ECC reading page" state. In the next ECC write page operation, a DMA-timeout occurs. This has been catched in the MX6Q board. [4] In order to fix the bug, rewrite the last parameter of mxs_dma_prep_slave_sg(), and use the dma_ctrl_flags: --------------------------------------------------------- DMA_PREP_INTERRUPT : append a new DMA Command Structrue. DMA_CTRL_ACK : set the WAIT4END bit for this DMA Command Structure. --------------------------------------------------------- [5] changes to the relative drivers: For gpmi-nand driver: use the new flags. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-07-20ENGR00173731-2 mxs-dma : use the new mxs-dma.hHuang Shijie
use the new header : mxs-dma.h. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-07-20dma: mxs-dma: convert to clk_prepare/clk_unprepareShawn Guo
The patch converts mxs-dma driver to clk_prepare/clk_unprepare by using helper functions clk_prepare_enable/clk_disable_unprepare. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Marek Vasut <marek.vasut@gmail.com> Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-07-20dma: mxs-dma: Don't use CLKGATE bits in CTRL0 to disable DMA channelsLothar Waßmann
This is how the original Freescale code (unintentionally) worked, because the code path which would have asserted the CLKGATE bit was never actually reached in their code. This fixes the nefarious "DMA timout" bug when multiple DMA channels (e.g. GPMI NAND and MMC) are used at the same time. If a better fix for this problem should be found, the clkgate handling could be reinstated. See http://lists.infradead.org/pipermail/linux-arm-kernel/2011-September/065228.html Also reverse the order of mxs_dma_disable_chan() and mxs_dma_reset_chan() in mxs_dma_control() because mxs_dma_reset_chan() can only work when the DMA channel is enabled. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-07-20dma: mxs-dma: make mxs_dma_prep_slave_sg() multi user safeLothar Waßmann
Using a static variable for counting the number of CCWs attached to a DMA channel when appending a new descriptor is not multi user safe. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-07-20dma: mxs-dma: Always leave mxs_dma_init() with the clock disabled.Lothar Waßmann
There is no need to have the clock enabled all the time the driver is loaded. It will be enabled anyway in mxs_dma_alloc_chan_resources() when a channel is actually going to be used. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-07-20dma: mxs-dma: fix a typo in commentLothar Waßmann
Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-07-20dmaengine: move drivers to dma_transfer_directionVinod Koul
fixup usage of dma direction by introducing dma_transfer_direction, this patch moves dma/drivers/* to use new enum Cc: Jassi Brar <jaswinder.singh@linaro.org> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Viresh Kumar <viresh.kumar@st.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: Mika Westerberg <mika.westerberg@iki.fi> Cc: H Hartley Sweeten <hartleys@visionengravers.com> Cc: Li Yang <leoli@freescale.com> Cc: Zhang Wei <zw@zh-kernel.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: Shawn Guo <shawn.guo@freescale.com> Cc: Yong Wang <yong.y.wang@intel.com> Cc: Tomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com> Cc: Boojin Kim <boojin.kim@samsung.com> Cc: Barry Song <Baohua.Song@csr.com> Acked-by: Mika Westerberg <mika.westerberg@iki.fi> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Viresh Kumar <viresh.kumar@st.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-07-20dmaengine: add DMA_TRANS_NONE to dma_transfer_directionShawn Guo
Before dma_transfer_direction was introduced to replace dma_data_direction, some dmaengine device uses DMA_NONE of dma_data_direction for some talk with its client drivers. The mxs-dma and its clients mxs-mmc and gpmi-nand are such case. This patch adds DMA_TRANS_NONE to dma_transfer_direction and migrate the DMA_NONE use in mxs-dma to it. It also fixes the compile warning below. CC drivers/dma/mxs-dma.o drivers/dma/mxs-dma.c: In function ‘mxs_dma_prep_slave_sg’: drivers/dma/mxs-dma.c:420:16: warning: comparison between ‘enum dma_transfer_direction’ and ‘enum dma_data_direction’ Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>