summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2013-07-10ENGR00261293-2 mx6sl: csi/v4l2: add hflip/vflip/rotation supportRobby Cai
Use ePxP to do the horizontal/vertical flip and rotation support Signed-off-by: Robby Cai <R63905@freescale.com> (cherry picked from commit d0b9c741601b766213af1332329963f4267cd0c6)
2013-07-10ENGR00261293-1 mx6sl: csi/v4l2: resize function not work for v4l2 captureRobby Cai
- the root cause is pxp input/output buffer for csi post-processing is same one, some part of content is overridded. - use S_CROP ioctl to control crop, S_FMT to control output size. Signed-off-by: Robby Cai <R63905@freescale.com> (cherry picked from commit 9f3685ea1cd4e56b5d89bfbaf48920ba862edb49)
2013-07-10ENGR00265414-8 mxc: asrc: Improve channel setting interfaceNicolin Chen
ASRC driver allows users to set channel number via PROC interface, but only passes the total number equal 10. This's not reasonable because ASRC can use total number lower than 10 if user assure each of them is an even number. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit d76d08c93550cf2de9b1eff569ad6c0928ba122c)
2013-07-10ENGR00265414-7 mxc: asrc: Set ASRC processing clock to recommended valueNicolin Chen
Set ASRC processing clock 56k/76k with the recommended value from spec. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit 0519d385f5ed78f3526b72a211ccf22ac77c102e)
2013-07-10ENGR00265414-6 mxc: asrc: Use same part of code for 3 pair configurationNicolin Chen
The pair config code was prolix. Actually the three pair could use the same part of code with different configurations. So remove the prolix code. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit feb58d669633b94f97f111d79f81cb4abf1bf2c1)
2013-07-10ENGR00265414-5 mxc: asrc: Remove duplicated codeNicolin Chen
There's already a same section of code above the removed one. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit b69af65683f17bfa701fdbb2dd3a93f53dc3503b)
2013-07-10ENGR00265414-4 mxc: asrc: Reconstruct req_pair()Nicolin Chen
The old req_pair() constrained that only Pair B could afford 6 channels, while actually not. So rewrite it to be more flexible. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit adbc9dbba6ee46c05c0878a8e3bab118981d62c7)
2013-07-10ENGR00265414-3 mxc: asrc: Add missing input clock and output clockNicolin Chen
Added missing clock and revised the clock map for v2 Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit c7e1b9af10cb579efaf7c4644170f6f8bee401e2)
2013-07-10ENGR00265414-2 mxc: asrc: Fix wrong comments for the I/O P/D offsetNicolin Chen
The comments for the input/output prescaler and divider were swapped, so reverse them. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit bb6347bc5acb1d59e001063968c18d1056807cf9)
2013-07-10ENGR00265414-1 mxc: asrc: Fix incorrect offset for output clock P/D of Pair CNicolin Chen
The offset of output clock prescaler and divider were swapped, so reverse them. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com> (cherry picked from commit 4cda1ac12a8fdef84082212fb8fc5590c6c22fe7)
2013-07-10ENGR00255920-2 mxc vout:wait for 2 vsyncs when streamoffLiu Ying
Some expiring video buffers may have been rendered to display triple buffers for display. The relevant triple buffers are set to be ready and depend on the display hardware engine to switch them to be active on screen in turn automatically. So, we need to wait for at least 2 vsyncs to make sure all of the expiring video buffers be shown on display already. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit f7479db43eb2fa9bdb03c1ce99239a3136345105)
2013-07-10ENGR00255920-1 mxc vout:Remove cancel_work_sync() when streamoffLiu Ying
We hope the queued works can be done before streamoff, since the works will render expiring video buffers to display. But, the function cancel_work_sync() cannot guarantee this. Instead, it may cancel some queued works before they starts to work. This patch removes the function call cancel_work_sync() when streamoff. We rely on the function flush_workqueue() right after it to make sure queued works be done before streamoff. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit d88f6f7eaf3b78e667de46aa355cf366a1142e47)
2013-07-09ENGR00270045: thermal: Add timeout for temperature updateAnson Huang
Need to add timeout for temperature update, otherwise, if suspend comes during thermal sensor measurement, its power will be turned off, and after resume, the delay work thread will never get finish flag and result in thread forever loop, temperature will never get updated. And if we wait for the measurement finish before suspend, the time is too long for suspend, as one single measurement would take as long as 100ms which is not good for suspend, so just add a timeout. Signed-off-by: Anson Huang <b20788@freescale.com>
2013-07-08ENGR00264701-2 Add new ioctl to lock VPU deviceHongzhang Yang
Add VPU_IOC_LOCK_DEV to lock VPU device Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
2013-07-08ENGR00264650 VPU can not playback after driver reloadHongzhang Yang
Picked from 3.5.7 branch and removed linux version check Bug: VPU can not playback after driver reload - To reproduce (if VPU is never powered off) 0. Build VPU driver as a loadable module 1. Playback 2. Unload driver 3. Reload driver 4. Playback VPU was blocked in vpu_DecGetInitialInfo. Root cause: VPU is still alive after unload Solution: Reset VPU state before unload Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
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-07-05ENGR00264286 pfuze:fix LDO ramp up time calculate error.Robin Gong
fix the calculate error. Signed-off-by: Robin Gong <b38343@freescale.com>
2013-07-04ENGR00264875 enet: fix DMA map/unmap mismatchFugang Duan
Enable "CONFIG_DMA_API_DEBUG" in kernel, and system generate warning when run up. WARNING: /home/b29397/work/projects/linux-2.6-imx/lib/dma-debug.c:865 check_unmap+0x6f8/0x7d8() net eth0: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x00000000443d7040] [size=2048] [<80025f60>] (warn_slowpath_common+0x0/0x6c) from [<80026070>] (warn_slowpath_fmt+0x38/0x40) r9:00000000 r8:00000800 r7:807bfb0c r6:807a3d48 r5:00000000 It is dma memory map/unmap mismatch issue caused by kernel upgrade. Signed-off-by: Fugang Duan <B38611@freescale.com>
2013-07-03ENGR00269421 [IPU] - Y444 Format Conversion is not using correct bpp.Oliver Brown
Correct bytes per pixel for the Y444 pixel format. Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
2013-07-02ENGR00269245 MX6SL HDMI: print error message when HDMI cable pluginSandor Yu
When HDMI cable plugin, the frame buffer driver will print error message "can't do pan display when fb is blank", it is cause by sii902x driver call fb_set_var after fb power down. sii902x driver should not mangement fb blank state, it should only care its own power state. Remove fb_blank function and replace it with sii902x power management function. Signed-off-by: Sandor Yu <R01008@freescale.com>
2013-07-02ENGR00261285-02 Lcdif FB: Fix video timing settingSandor Yu
Correct HSYNC_PERIOD, VSYNC_PERIOD, HORIZONTAL_WAIT_CNT and VERTICAL_WAIT_CNT setting. In MX6SL RM, these parmeters define as followed: - HSYNC_PERIOD: Total number of CLK_DIS_LCDIFn cycles between two positive or two negative edges of the HSYNC signal. - VSYNC_PERIOD: Total number of units between two positive or two negative edges of the VSYNC signal. - HORIZONTAL_WAIT_CNT:In the DOTCLK mode, wait for this number of clocks from falling edge (or rising if HSYNC_POL is 1) of HSYNC signal to account for horizontal back porch plus the number of DOTCLKs before the moving picture information begins. - VERTICAL_WAIT_CNT: In the DOTCLK mode, it accounts for the veritcal back porch lines plus the number of horizontal lines before the moving picture begins. After apply the patch, run HDMI CTS with video mode 480p,720p and 1080p test case 7-16~7-19, 7-21~7-27 and 7-33 pass. Signed-off-by: Sandor Yu <R01008@freescale.com>
2013-07-01ENGR00261285-01 Remove unsupported function from sii902x drvierSandor Yu
Remove suspend/resume function in i2c driver struct. Sii902x power management function have implemented by fb interface. Signed-off-by: Sandor Yu <R01008@freescale.com>
2013-06-27ENGR00238991-03 MX6 Add HDCP functionSandor
The patch include HDMI HDCP patch kernel part: - Add HDMI DDC pin config function. - Add HDCP enable/disable system file. - Read EDID via HDMI internal I2C when HDCP enable. - Add hdcp_enable in the struct of hdmi_data_info. - Handle HDCP interrupter and set device event when HDCP state changed. - Add IOCTL for HDCP application to get HDMI configuration. Signed-off-by: Sandor <R01008@freescale.com>
2013-06-25ENGR00268442 mmc: remove the boot partition access codes on 3.0.35Richard Zhu
Regarding to the following community commit, remove all the boot partition access codes added before. - 371a689f64b0da140c3bcd3f55305ffa1c3a58ef mmc: MMC boot partitions support. Allows device MMC boot partitions to be accessed. MMC partitions are treated effectively as separate block devices on the same MMC card. - Boot partition access howto: - To enable write access to /dev/mmcblkXbootY, disable the forced read-only access with: echo 0 > /sys/block/mmcblkXbootY/force_ro To re-enable read-only access: echo 1 > /sys/block/mmcblkXbootY/force_ro - Signed-off-by: Richard Zhu <r65037@freescale.com>
2013-06-24ENGR00258998: mlb unit test should exit after click stop on mitbTerry Lv
This patch will do the following: 1. For mlb will not be able to know whether the final package is completely sent, add a delay for final package to be sent. 2. Adjust MLB's iram buffer usage. Old code will add addtional usage of iram buffer. 3. Code format change. 4. In resume function, calling init function after clock is enabled. Signed-off-by: Terry Lv <r65388@freescale.com>
2013-06-24ENGR00268385 v4l2 fg overlay:disable fb ywrap when enable overlayLiu Ying
This patch disables framebuffer ywrap flag when we enable overlay, because the display double buffers are not ywrapped. This may avoid wrong preview pictures on platforms which use NV12 pixel format for overlay framebuffer. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
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-06-17ENGR00240112-2 crypto: caam: add ecb(aes) crypto algorithm to caam.Zhang Jiejing
add ecb(aes) support for caam algorithm, the caam H/W support both ecb and cbc, add the algorithm into template. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
2013-06-17ENGR00240112-1 caam: fix user space crypto API support.Zhang Jiejing
This patch fix the CAAM support for Crypto User Space API support. in the dma_map_sg_chained() function, the chained mode will loop until the scatter list end, but when the scatter list end, it will return null and orignal code will set this to the sg list point used by dma_sync, so it will panic. When do chain dma, use a tmp do going through the list. Signed-off-by Zhang Jiejing <jiejing.zhang@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-06-14ENGR00267024 mx6q: Stop DMA memory fragmentationJay Monkman
Applied patch from customer to prevent DMA memory fragmentation. Customer reported system crashes due to running out of DMA-able memory while playing videos. Reported in CT42391649. Signed-off-by: Jay Monkman <jay.monkman@freescale.com>
2013-06-14ENGR00266881 mxc vout:Flush workqueue when change is needed for streamingLiu Ying
We currently call cancel_work_sync() to have all left work be done. But, this is not safe to make sure all left work being done successfully. Instead, chances are that some work may be cancelled before starting to be done, which may cause frame lost and make us hang at upcoming wait_event_interruptible() in videobuf_waiton() called from video buffer core v1 framework's dqbuf API. This patch replaces the function call cancel_work_sync() with flush_workqueue() to fix the issue. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
2013-06-14ENGR00266873 mxc vout:Release or invalidate previous buffers correctlyLiu Ying
Users may call VIDIOC_S_CTRL ioctrl to do rotation, such as 90 degree rotation, when a video is streaming in IC bypass mode. The runtime rotation setting may make the vout driver lose the track for a previous video buffer and finally cause the streaming hang. This patch releases that video buffer in this case and invalidates previous video buffers when necessary. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
2013-06-04ENGR00265465 gpu:Add global value for minimum 3D clock exportLoren Huang
Add global value gpu3DMinClock so that minimum 3D clock can be change by user. When gpu min clock is too low, it may cause IPU starvation issue in certain case. Use echo x > /sys/module/galcore/parameters/gpu3DMinClock to change it. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2013-06-03ENGR00265130 gpu:Correct section mismatch in gpu kernel driverLoren HUANG
-Remove the __devinit for suspend/resume function. -Replace __devinit to __devexit for remove function. Cherry-pick from 3.5.7 branch. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-05-30ENGR00264863 IPU: Fix interger overflow and check for invalid zero parameterWayne Zou
Fix interger overflow and check for invalid zero divider parameter Signed-off-by: Wayne Zou <b36644@freescale.com>
2013-05-29ENGR00264288-1 [GPU]Integrate 4.6.9p12 release kernel part codeLoren Huang
Integrate 4.6.9p12 release kernel part code. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2013-05-27ENGR00264275 [GPU]Correct suspend/resume calling after adding runtime pm.Loren HUANG
After enabling runtime pm the suspend/resume entry is changed. -Add new entry for suspend/resume in runtime pm frame work. -Add static define for all runtime pm function. Cherry-pick from 3.5.7 kernel branch. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-05-22ENGR00263304-3 IPUv3:Check NULL irq handler in ipu_request_irq()Liu Ying
To avoid NULL interrupt handler being called potentially in the IPU sync interrupt source handler, this patch adds sanity check on NULL interrupt handler in the function ipu_request_irq() for sync interrupts because the callers are likely to request a sync interrupt without specifying a handler. The error interrupts can still be enabled by this function without this kind of sanity check since we simply print out the relevant error interrupt register values in the IPU error interrupt source's handler. This patch also corrects _ipu_get() and _ipu_put() function call in the function ipu_request_irq() to make them be called in pair when handler has already been registered. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
2013-05-22ENGR00263304-2 IPUv3:Check NULL irq handler in ipu_enable_irq()Liu Ying
To avoid NULL interrupt handler being called potentially in the IPU sync interrupt source handler, this patch adds sanity check on NULL interrupt handler in the function ipu_enable_irq() before the relevant interrupt is enabled in the sync interrupt registers. The error interrupts can still be enabled by this function without this kind of sanity check since we simply print out the relevant error interrupt register values in the IPU error interrupt source's handler. This patch also makes the function return error code to it's callers if any error happens. Signed-off-by: Liu Ying <Ying.Liu@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>
2013-05-21ENGR00261884 fix system hang when thumbnail or playback interlace clipsRichard Liu
fix system hang when thumbnail or playback interlace clips Signed-off-by: Richard Liu <r66033@freescale.com>
2013-05-16ENGR00262748 Clean up regulator code for 3.5.7Loren HUANG
Remove gpu_regulator since 3.5.7 doesn't need it. Cherry-pick from 3.5.7 branch. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-05-16ENGR00261814-4 gpu: use new PU power on/off interfaceRobin Gong
use new PU power on/off interface in GPU driver Cherry-pick from 3.5.7 branch. Signed-off-by: Robin Gong <b38343@freescale.com> Acked-by: Lily Zhang
2013-05-15ENGR00262701 mxc v4l2 capture:Correct v4l2 internal master device nameLiu Ying
There could be two v4l2 internal master devices with the same name in the system if the name is in 'mxc_v4l2_cap<csi>' fashion, since there are two IPUs embedded in i.MX6Q and each IPU has two CSI ports. This patch changes the name to be in 'mxc_v4l2_cap<pdev->id>' fashion to fix the naming issue. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
2013-05-14ENGR00262270 IPUv3:Basic 16-bit generic data support for SMFC chanLiu Ying
This patch adds basic 16-bit generic data support for SMFC channel. Although we didn't verify capturing frames with 16-bit generic data, this could be a good starting point for developers to go on with. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
2013-05-10ENGR00261749 IPU device: Fix potential uninitialized variable in split modeTristan Lelong
Fix potential uninitialized variable in split mode Signed-off-by: Tristan Lelong <b44337@freescale.com> Signed-off-by: Wayne Zou <b36644@freescale.com>
2013-05-10ENGR00261928 IPU device: Check invalid parameters for frame width/heightWayne Zou
Check invalid parameters for frame width or frame height, which might be equal to zero. Signed-off-by: Wayne Zou <b36644@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>