summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2013-01-28ENGR00241003-2 pfuze: using _sel interface to add delay supportrel_imx_3.0.35_1.1.2rel_imx_3.0.35_1.1.13.0-imx6-ts3Anson Huang
use regulator _sel interface set to support auto delay, as when regulator's voltage go up, it will take some time to ramp up to the required voltage, so the delay is necessary. _sel interface set support such function, now we switch to this interface set. Signed-off-by: Anson Huang <b20788@freescale.com>
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-12ENGR00236499 ASRC: fix build warningChen Liangjun
Remove unused function "asrc_get_output_buffer_size()" to fix build warning. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-12-12ENGR00236196: mxc_vout: add YV12 format support in enum fmt field.Sheng Nan
Since YV12 format is supported in mxc_v4l2_capture, it should be also supported in mxc_vout. Signed-off-by: Sheng Nan <b38800@freescale.com>
2012-12-12ENGR00235665: mxc_v4l2_capture: add YV12 format support in camera driverSheng Nan
Android CTS verifier have a must requirement for YV12 format. Since IPUv3 common driver has supported IPU_PIX_FMT_YVU420P pixel format, add the support of YV12 format in mxc_v4l2_capture. Signed-off-by: Sheng Nan <b38800@freescale.com>
2012-12-12ENGR00232530 Refine VPU suspend/resume according to open_countHongzhang Yang
1. Refine VPU suspend/resume according to open_count to completely fix bug: ENGR00230203 [Android_MX6DL_SD] Gallery: System hang after resume from suspend during video playback. 20% open_count == 0 case can be simplified because VPU is released (all instances are freed), so - clock is already off - context is no longer needed - power is already off on MX6 VPU reset is removed from resume because power is ensured to be off before entering resume on MX6 by calling regulator API. 2. Fix bug: VPU always busy after suspend/resume Error log (VPU refused to suspend due to VPU busy): pm_op(): platform_pm_suspend+0x0/0x54 returns -11 PM: Device mxc_vpu failed to suspend: error -11 PM: Some devices failed to suspend Root cause: - Suspend happened during vpu_Init(), somewhere after VPU lib started to download FW (when PC == 0), but before run FW. (BIT_BUSY_FLAG=1, BIT_CODE_RUN=1). - In such case, VPU resume downloaded FW and run VPU to idle because suspend was triggered after VPU was opened (active). - vpu_Init run VPU again with BIT_BUSY_FLAG=1. So VPU was trapped in idle loop but BIT_BUSY_FLAG was never cleared. VPU lib regarded VPU as always busy. Solution (in VPU resume): - run VPU FW only if VPU was opened and PC before suspend is not 0 - restore host register is required - download FW is required, because program memory is lost after power off. Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
2012-12-05ENGR00235626 FEC: Enable phy pause frame featureFugang Duan
Since some ethernet MAC flow control is relied on phy pause status, both link partners exchange information via auto neg to determine if both parties are capable of flow control. Advertise phy pause frame to avoid pause frame is not responsed by the other net node. Signed-off-by: Fugang Duan <B38611@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-11-29ENGR00234466 UART: Fix disablement of CTS signalAlejandro Sierra
On Uart driver, CTS signal were never disabled on the imx_set_mctrl function since the register was written inside of the conditional. if (mctrl & TIOCM_RTS) { temp |= UCR2_CTS; writel(temp, sport->port.membase + UCR2); } Signed-off-by: Alejandro Sierra <b18039@freescale.com>
2012-11-28ENGR00234236 1588: fix kernel build warningFugang Duan
Warning: no return statement in function returning non-void. fec_ptp_ioctl return zero when 1588 is not enable. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-11-28ENGR00235090 FEC: Workaround for FEC RX hang with stress testFugang Duan
When do Ethernet UDP stress overnight test with abundance of data transmission, RX path may hang-on. Dump the RX BD, found all BD "Empty" bit is cleared, which means CPU read BD status is not right and waiting here. Change BD memroy attribute from Normal to strongly ordered: changes the memory attribute of C=0, B=0 instead of C=0, B=1. Apply the change, the issue cannot be reproduced. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-11-28ENGR00234933 mmc: sdhci: invalid cd_gpio for always_present host controllerRyan QIAN
Issue: By default, cd_gpio is 0 for always presented host controller, which is a valid gpio. Then it will result to free_irq for 0 in esdhc_pltfm_exit for these always_present host controllers. Fix: Invalid cd_gpio if the controller is indicated to be always present. Acked-by: Dong Aisheng <b29396@freescale.com> Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-11-28ENGR00234781 input: add novatek touch screen driver.Zhang Jiejing
This patch add device drvier for novatek touch screen driver. This touch screen chip will be support because it have more populary screen size. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
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-28ENGR00234387 mx6sl: csi/v4l2: add V4L2_MEMORY_USERPTR supportRobby Cai
Add V4L2_MEMORY_USERPTR support for csi v4l2 capture Support V4L2_MEMORY_USERPTR and V4L2_MEMORY_MMAP now Signed-off-by: Robby Cai <R63905@freescale.com>
2012-11-28ENGR00234519 mmc: support eMMC v4.5 memory cardsRyan QIAN
Bypass eMMC version checking, so that eMMC v4.5 can work on current kernel as eMMC v4.4 cards, no specific v4.5 feature supported. Only basic read/write operations are supported, also ddr mode is supported. Acked-by: Dong Aisheng <b29396@freescale.com> Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-11-28ENGR00234362 Camera: ov5640_mipi: wait for sensor stable before streamonSheng Nan
ov5642 add some delay to wait for sensor stable after S_PARM. And ov5640_mipi should keep the same behavior. So the upper layer can trust the first frame comes out of ov5640_mipi. - delay added according to the recommended time from ov company Signed-off-by: Sheng Nan <b38800@freescale.com>
2012-11-28ENGR00234401: CAAM: Fix incorrect invalidate call for output ringSteve Cornelius
The job ring driver exhibited a hang condition in the top of caam_jr_dequeue() where a BUG_ON statement looks for a condition where the output ring is said to have valid entries by the ring logic, but the ring entries apparently have NULL descriptor pointers. In the initial ARM port of this driver, the cache flush call of the output ring content occured before the output ring read index register read occurred, exposing a condition where the driver sensed valid output entries, yet the entries written by the ring hardware were not invalidated, and therefore were not visible to the processor, appearing as false NULL entries. This patch relocates the invalidate call to immediately follow the check of the output read index, where it is required. Signed-off-by: Vicki Milhoan <vicki.milhoan@freescale.com> Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com> Signed-off-by: Terry Lv <r65388@freescale.com>
2012-11-28ENGR00233494 EPDC: Driver only supports 16 LUTsMichael Minnick
This bug was introduced by ENGR00229290 which fixed the problem of greater than 16 LUTs used when 5-bit waveform loaded. The bug is that now the driver is also restricted to using 16 LUTs in 4-bit mode. The fix is to correct the test of the EPDC_FORMAT register used to determine if a 5-bit waveform is loaded. Also removed the while loop in favor of a bitwise OR used to determine if a chosen LUT has yet to be acknowledged by the interrupt handler. Signed-off-by: Michael Minnick <michael.minnick@freescale.com>
2012-11-19ENGR00229852 csi/v4l: lower the priority of "working queue empty" messageRobby Cai
When pause the capture test program, the "working queue empty" message shows up repeatedly. However this message is expected to show up because there's no QBUF called. Change pr_err to pr_debug to keep it as debug level. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-11-19ENGR00232893 mx6sl: pxp/v4l2: add dependency on CONFIG_FB_MXC_ELCDIF_FBRobby Cai
Without this dependency, we have to manually disable CONFIG_VIDEO_MXC_PXP_V4L2 when disable CONFIG_FB_MXC_ELCDIF_FB. Otherwise, a build error shows up. This patch fixed it. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-11-19ENGR00231307 csi/camera: add some ioctlsRobby Cai
added ioctls are: VIDIOC_ENUM_FRAMEINTERVALS VIDIOC_ENUM_FRAMESIZES VIDIOC_ENUM_FMT VIDIOC_DBG_G_CHIP_IDENT Signed-off-by: Robby Cai <R63905@freescale.com>
2012-11-16ENGR00233800: CAAM: running sha_speed in cryptodev crashedTerry Lv
The reason is that when switching from SHA1 to SHA256, cryptodev will create a new session. But in this new session, the __ctx in allocated req is not fully initialized. Thus dma_buf in __ctx will be a random value. If the value is 0 or some address in DMA memory, that will be ok, otherwise, it will crashed in dma_unmap_single(). The calling sequence is: ahash_final_ctx=>try_buf_map_to_sec_sg()=>dma_unmap_single() When calling dma_unmap_single(), the parameter buf_dma is invalid in crash case. The error msg is: kernel BUG at arch/arm/mm/dma-mapping.c:478! requested hash CRYPTO_SHA2_256, Unable to handle kernel NULL pointer dereference at virtual address 00000000 got sha256 with driver sha256-caapgd = e4ea0000 m Encrypting in chunks of 256 b[00000000] *pgd=74edb831ytes: , *pte=00000000, *ppte=00000000 Internal error: Oops: 817 [#1] PREEMPT SMP Modules linked in: cryptodev CPU: 0 Not tainted (3.0.35-02200-ge392070-dirty #68) PC is at __bug+0x1c/0x28 LR is at __bug+0x18/0x28 pc : [<80044260>] lr : [<8004425c>] psr: 60000013 sp : e4ec7c40 ip : ea9a2000 fp : 00000010 r10: 883f8038 r9 : 883f8038 r8 : e4803060 r7 : 00000000 r6 : 00000001 r5 : 00000000 r4 : 6f66c10a r3 : 00000000 r2 : 80aafd5c r1 : 60000093 r0 : 00000033 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 10c53c7d Table: 74ea004a DAC: 00000015 Process sha_speed (pid: 2747, stack limit = 0xe4ec62f0) Stack: (0xe4ec7c40 to 0xe4ec8000) 7c40: 74803184 8004a424 e4803000 e4730c08 e4262840 803c50dc e4786f20 883f8000 7c60: 00000020 00000000 00000028 883f8018 e43ffcc0 e4803000 00000000 803c3d04 7c80: 00000004 80041104 e4ec6000 00000000 7efc4b64 803c3d10 e4774a3c 802079f8 7ca0: e43ffd1c e43ffcc0 00000000 7f0031a0 e4ec7e0c e43ffcc0 e4ec7e0c 7f00240c 7cc0: 00000100 e4786f20 e481bd40 e4ec7cd8 e4ec7cdc 7f0016b4 e4803200 00000000 7ce0: e4094480 00000000 7efc4b2c 00000004 80041104 7f001b64 8c81200c 00000000 7d00: 3fe1c2a2 2aba7e2c 00000000 00000000 00000000 00000000 00000000 2abc8870 7d20: 2abc8870 2abc8870 7efc4e10 00000000 2aba3000 00000000 2abc7f48 00000000 7d40: 00000000 00000000 00000000 00000000 00000000 00000000 2abc7f88 2abc7f80 7d60: 2abc7f50 2abc7f60 2abc7f68 00000000 00000000 00000000 2abc7f70 2abc7f78 7d80: 00000000 32616873 2a003635 00000000 00000000 2abc7fa0 2abc7fa8 2abc7fb0 7da0: 2abc7f90 00000000 00000000 2abc7f98 00000000 00000000 00000000 00000000 7dc0: 00000000 32616873 632d3635 006d6161 00000000 00000000 00000000 00000000 7de0: 2abc7fc0 2abc7fb8 00000000 2abc7fd0 00000000 00000000 00000000 00000000 7e00: 00000000 00000000 00000001 3fe1c2a2 00000000 00000100 00012008 00000000 7e20: 7efc4ab8 00000000 00000000 8006a120 e4044740 8c80ef40 00000001 00000000 7e40: 00000002 e4044740 e4ec7e7c 8006f5f4 e4ec6000 8007ffd4 e4348880 60000093 7e60: 00000000 80ae6de8 e4253200 8004e0fc 00000261 8028c0f4 e4877000 80ae6de8 7e80: e4786f20 e481bd40 00000261 8028c0f4 000059ac 00000000 36390b02 00000000 7ea0: e4cd7b6c e43488d0 8c80e4c4 00000038 e43488d0 802342dc 0000003f e43488d0 7ec0: 8c80e4b8 8c80e4b8 00000038 80090714 0000003f 8aafab02 00000000 80091134 7ee0: 8aafab02 0000003f e4ec6000 80a99cc0 e4eed510 7efc4b2c e4ef96e0 00000004 7f00: 80041104 800febd0 60a9b3cd e4786f20 e4348880 00000000 e4ec7f88 e43488d0 7f20: e4ec6000 00000000 00000000 80091408 00000000 00000001 00000001 e4ec7f78 7f40: 000059b1 00000000 fffffff7 80aedc50 80a8a0c0 00000000 00000000 e4ec7f90 7f60: 7efc4b20 e4ef96e0 7efc4b2c c01c6368 00000004 80041104 e4ec6000 00000000 7f80: 7efc4b64 800ff0d4 00000000 00000000 00000109 00000000 00000000 00008628 7fa0: 00000036 80040f80 00000000 00000000 00000004 c01c6368 7efc4b2c 7efc4b2c 7fc0: 00000000 00000000 00008628 00000036 00000000 00000000 2abc8000 7efc4b64 7fe0: 00000000 7efc4a90 00008b5c 2ac857bc 80000010 00000004 e28bd000 e8bd0800 [<80044260>] (__bug+0x1c/0x28) from [<8004a424>] (___dma_single_dev_to_cpu+0x84/0x94) [<8004a424>] (___dma_single_dev_to_cpu+0x84/0x94) from [<803c50dc>] (ahash_final_ctx+0x1a0/0x41c) [<803c50dc>] (ahash_final_ctx+0x1a0/0x41c) from [<803c3d10>] (ahash_final+0xc/0x10) [<803c3d10>] (ahash_final+0xc/0x10) from [<802079f8>] (crypto_ahash_op+0x28/0xc0) [<802079f8>] (crypto_ahash_op+0x28/0xc0) from [<7f0031a0>] (cryptodev_hash_final+0x30/0xc0 [cryptodev]) [<7f0031a0>] (cryptodev_hash_final+0x30/0xc0 [cryptodev]) from [<7f00240c>] (crypto_run+0x10c/0x398 [cryptodev]) [<7f00240c>] (crypto_run+0x10c/0x398 [cryptodev]) from [<7f001b64>] (cryptodev_ioctl+0x360/0x768 [cryptodev]) [<7f001b64>] (cryptodev_ioctl+0x360/0x768 [cryptodev]) from [<800febd0>] (do_vfs_ioctl+0x80/0x54c) [<800febd0>] (do_vfs_ioctl+0x80/0x54c) from [<800ff0d4>] (sys_ioctl+0x38/0x5c) [<800ff0d4>] (sys_ioctl+0x38/0x5c) from [<80040f80>] (ret_fast_syscall+0x0/0x30) Code: e59f0010 e1a01003 eb12fddb e3a03000 (e5833000) ---[ end trace 0057f6be00952f77 ]--- Signed-off-by: Terry Lv <r65388@freescale.com>
2012-11-16ENGR00233780 ASRC: limit output buffer size to avoid kernel dumpChen Liangjun
For ASRC memory to memory transfer, user would send driver input buffer and driver would copy converted output buffer into user's buffer. However, ASRC can't promise the ratio of output buffer size/input buffer size being equal to output sample rate/input sample rate.e.g, for convert from 8k to 48k and 1000 bytes input buffer size, ASRC may pop out 5999 bytes or 6001 bytes. If driver copy all 6001 bytes into user's buffer, kernel dump may happens cause of accessing unexisted buffer. In this patch, if ASRC output buffer size is larger than user's buffer size, discard exact part. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-16ENGR00233886 ASRC: init variable to fix build warningChen Liangjun
warning: Compiling warning on mainline imx_3.0.35 (potential bug): drivers/mxc/asrc/mxc_asrc.c: In function 'asrc_output_task_worker': drivers/mxc/asrc/mxc_asrc.c:961:68: warning: 't_size' may be used uninitialized in this function [-Wuninitialized] drivers/mxc/asrc/mxc_asrc.c:943:23: note: 't_size' was declared here In this patch, init t_size. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-15ENGR00233570-1 ASRC: Use hook to add support for ASRC loadableGe Lei
ASoC ESAI machine driver and pcm platform driver use the APIs from mxc_asrc.c, but once ASRC is used as a loadable module, these files can't find the APIs from this ko. In this patch, we use 'asrc_p2p_hook' to hook the APIs which will be used in ASoC ESAI machine driver and pcm platform driver. Signed-off-by: Ge Lei <b42127@freescale.com>
2012-11-15ENGR00233452 Integrate 4.6.9p9 GPU kernel part driverLoren Huang
Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-11-15ENGR00233577 ASRC: add spinlock to protect ASRC pair resourceChen Liangjun
when quit from ASRC driver with CTRL + C, driver close() would free output buffer and close clock. However, it is possible that the buffer is accessed by work task(work task is trigger by interrupt and it would not be stopped by CTRL + C). So ASRC driver should promise that its pair resource(buffer, SDMA channel, and clock) would not be accessed after it is released. In this patch, add protect for pair resource. Signed-off-by: Chen Liangjun <b36089@freescale.com>
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-14ENGR00233427 ASRC: add interface to modify ASRC input/output watermarkChen Liangjun
In this patch, add interface to modify ASRC input/output watermark. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-14ENGR00233380 IPUv3:Warn on sub-CPMEM EBA0 unalignment caseLiu Ying
IPUv3 CPMEM EBA sets buffer start address. EBA should be 8-byte aligned according to IPUv3 spec. This patch contains code change only to warn on alternative CPMEM entry's EBA0 unalignment case. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit 1a2f3dc6340d5cf93f2e4bcd5a9d4395fcc18cf1)
2012-11-13ENGR00232945-3: CAAM: Add core of SNVS state handler moduleSteve Cornelius
Add core of SNVS state handler module. Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com> Signed-off-by: Terry Lv <r65388@freescale.com>
2012-11-13ENGR00232945-2: CAAM: Add SNVS state handler startupSteve Cornelius
Add SNVS state handler startup to CAAM controller driver. Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com> Signed-off-by: Terry Lv <r65388@freescale.com>
2012-11-13ENGR00232945-1: CAAM: Add build environment for CAAM/SNVS handlersSteve Cornelius
Add build environment for CAAM/SNVS security violation handlers. Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com> Signed-off-by: Terry Lv <r65388@freescale.com>
2012-11-09ENGR00232528 - IEEE1588:imx6:Upgrade driver to support IXXAT stack V1.05.03Fugang Duan
Upgrade drivers to support IXXAT IEEE1588 stack V1.05.03. Ptp message protocol support IPv4, IPv6, and IEEE802.3 L2. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-11-08ENGR00232660 EPDC: Wrong panel loaded at bootMichael Minnick
The wrong EPDC panel can be loaded at boot time if the machine board file has multiple panel entries with the same video mode parameter values. To reproduce, select a particular panel with u-boot kernel command line parameters, for example: video=mxcepdcfb:XYZZY Add panel XYZZY to arch/arm/mach-mx6/board-mx6sl_evk.c after an existing entry. Use the same video mode parameter settings as the existing entry. On boot, the existing panel will be loaded instead of the XYZZY panel because it comes earlier in the list and happens to have the same video mode parameter values. Solution: If the video mode parameter settings specified in the call to msc_epdc_fb_set_par() match those of the panel already loaded by mxc_epdc_fb_probe(), don't execute a search for a new matching panel. Signed-off-by: Michael Minnick <michael.minnick@freescale.com>
2012-11-08ENGR00232930 Added default video mode check, make sure it is a CEA mode.Sandor Yu
When system bootup without HDMI plugin, the default modelist and default video mode will create. Match default video mode in default CEA modelist, make sure default video mode is a CEA mode. Signed-off-by: Sandor Yu <R01008@freescale.com>
2012-11-08ENGR00231273-02 mmc: sdhci: fix failed to call platform exit on removalRyan QIAN
Since sdhci_pltfm_data is stored in platform_device_id, but in sdhci_pltfm_remove, it tried to get sdhci_pltfm_data directly from pdev->dev.platform_data. It will result that it could not get the correct sdhci_pltfm_data, so that platform exit will not be called on sdhci module's removal. Acked-by: Dong Aisheng <b29396@freescale.com> Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-11-08ENGR00231273-01 mmc: sdhci: modularize sdhci driverRyan QIAN
Export sdhci_request to fix build error. Here's the error message: ERROR: "sdhci_request" [drivers/mmc/host/sdhci-platform.ko] undefined! Acked-by: Dong Aisheng <b29396@freescale.com> Signed-off-by: Ryan QIAN <b32804@freescale.com>
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-06ENGR00231266-3: adv7280_mipi_tvin add regulator supportAdrian Alonso
* Add regulator support Set regulator voltage and enable them On remove callback disable regulators * Add callbacks for target platform custom reset, power up/down and io pads configuration Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-11-06ENGR00231266-2: adv7280_mipi_tvin add i2c dummy client for csi configAdrian Alonso
* Add i2c dummy client for csi-tx register map config * adv7280 csi-tx reg banks are mapped in a different memory map and respond to a different i2c slave address that user can configure * Add default config helper function * Override slave csi-tx address if user provides a different value. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-11-06ENGR00231773-9 ASRC: increace convert speed while in ideal modeChen Liangjun
Increase convert speed while ASRC is working on ideal ratio mode to satisfy asrc plugin's timing request. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-06ENGR00231773-8 ASRC: prevent user app from processing input/output processingChen Liangjun
To finish a buffer convert in ASRC, user should 1. prepare input buffer, 2. prepare output buffer 3. wait for output buffer's completion 4.wait for input buffer's comletion. The flow make user application ugly. In this patch, pack steps above to 1 stop: ASRC_CONVERT. Signed-off-by: Chen Liangjun <b36089@freescale.com>
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-06ENGR00231773-5 ASRC: use poll mode to receive last period of ASRC dataChen Liangjun
ASRC driver use DMA to transfer data from ASRC output FIFO to memory. However, DMA way require the data number in ASRC output FIFO being larger than watermark level. Thus a dma request can trigger a DMA burst. For the last period of output data, its number is possiblely less than output FIFO watermark level. In this case, the output DMA would pending for the last period of output data until timeout. In this patch: 1 divide expected output data length into 2 parts: DMA part and poll part. Using DMA to get the DMA part data and poll mode to get the poll part. 2 to prevent user from processing these 2 parts above, kernel buffers would be untouchable. User application only need send its data buffer address to driver instead of query the kernel buffer. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-06ENGR00231773-4 ASRC: use scatter list and stall bit for asrc convertChen Liangjun
In the origin code, ASRC driver use cyclic way to process DMA task transfering data to/from ASRC input/output FIFO. In this case, it is necessary that user application should promise that the input buffer flow is continuous. If not, there would be 0 data be inserted into data flow. The output data would be noisy. In this patch, 1 use scatter list instead of cyclic SDMA: with scatter list, SDMA would stop when the applied scatter list nents are finished. 2 set stall bit for ASRC "memory->ASRC->memory" convert to stop ASRC convert when input data is not send into ASRC input FIFO in time. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-06ENGR00231773-3 ASRC: use kzalloc to allocate buffer to support scatterlistChen Liangjun
For ASRC's "memory -> ASRC -> memory" using, new driver would support model below: user input one buffer into ASRC and an corresponding output buffer would be poped out. There is no timing requirement between this input buffer and next input buffer. Thus driver would not use the cyclic way to config SDMA and scatterlist is used. buffer allocated by dma_alloc_coherent() can't support scatterlist well. In this patch, use kzalloc to allocate buffer to support scatterlist. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-06ENGR00231773-2 ASRC: add work struct for asrc output data receiveChen Liangjun
SDMA driver can't promise receive all output data generated. Cause when the data in output FIFO is less than ASRC output FIFO watermark, there would be no DMA request generated and thus no SDMA transfer would happens. In this patch, add work struct to support ASRC driver receive last part of data in OUTPUT FIFO in polling way. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-11-06ENGR00231773-1 ASRC: remove queue operation in ASRC driverChen Liangjun
According to ASRC memory->ASRC->memory requirement, driver should satisfy the feature below: user application would passed into one buffer and waiting until the output buffer is generated. In this case, only one buffer is on processing and it is no necessary to use the queue to do the convert. What is worse, queue operation would make the ASRC driver hard to understand and maintain. In this patch, remove the queue operation in ASRC driver. Signed-off-by: Chen Liangjun <b36089@freescale.com>