summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2013-04-08ENGR00256543 mx6: Update equation for thermal sensor on i.MX6DLimx-android-13.4.1.04Anson Huang
Use universal equation and 25C's calibration data to get thermal sensor's ratio on i.MX6DL. Signed-off-by: Anson Huang <b20788@freescale.com>
2013-04-08ENGR00255481 mx6: Update equation for thermal sensorAnson Huang
Use universal equation and 25C's calibration data to get thermal sensor's ratio. If want to use old calibration method, please add "use_calibration" into kernel command line. Signed-off-by: Anson Huang <b20788@freescale.com>
2013-03-21ENGR00241003-2 pfuze: using _sel interface to add delay supportAnson 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-11-12ENGR00233049 Fixed kernel panic in lower memory killerXianzhong
The kernel panic happen when normal memory is exhausted but high memory is available, The fix is to disable oom-killer in normal alloc_pages, oom-killer will be triggered when normal and highmem zones are exhausted. Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Lily Zhang
2012-11-12ENGR00232951 the force contiguous lowmem killerXianzhong
The killer only work when force contiguous memory allocation fail,the work routinue: 1. register task free callback 2. force contiguous lowmem shrink 1> initialize min_adj to 0, kill itself in case other process cannot be killed 2> polling all process and find the available process(higher oom_adj, higher gpu memory) 3> select the best available process and send SIGKILL to kill it 3. try to allocate force contiguous memory again 4. unregister task free and exit shrinking state when memory is ready Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Lily Zhang
2012-11-09Merge commit 'rel_imx_3.0.35_12.11.01_RC3' into imx_3.0.35_android_r13.4.yXinyu Chen
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-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-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-11-02Merge commit 'rel_imx_3.0.35_12.11.01_RC2' into imx_3.0.35_android_r13.4.yXinyu Chen
Conflicts: drivers/mxc/vpu/mxc_vpu.c
2012-11-01ENGR00232087-2 VPU: Fix suspend/resume bugsHongzhang Yang
1. Fix ENGR00230203 [Android_MX6DL_SD] Gallery: System hang after resume from suspend during video playback. 20% 2. Fix ENGR00231830 [MX6DL/S_SD] VPU: VPU encode can't finish and print "VPU blocking: timeout." if suspend/resume. 100% Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
2012-11-01ENGR00232005 mtd: fix the overflow of big mtd partitionsHuang Shijie
When the kernel parses the following cmdline #mtdparts=gpmi-nand:16m(boot),16m(kernel),1g(home),4g(test),-(usr) for a big nand chip Micron MT29F64G08AFAAAWP(8GB), we got the following wrong result: ............................................. "mtd: partition size too small (0)" ............................................. We can not get any partition. The "4g(test)" partition triggers a overflow of the "size". The memparse() returns 4g to the "size", but the size is "unsigned long" type, so a overflow occurs, the "size" becomes zero in the end. This patch changes the "size"/"offset" to "unsigned long long" type, and replaces the UINT_MAX with ULLONG_MAX for macros SIZE_REMAINING and OFFSET_CONTINUOUS. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-11-01mtd: support ONFI multi lun NANDMatthieu CASTET
With onfi a flash is organized into one or more logical units (LUNs). A" logical unit (LUN) is the minimum unit that can independently execute commands and report status. Mtd does not exploit LUN, so make it see a big single flash where size is lun_size * number_of_lun. Without this patch MT29F8G08ADBDAH4 size is 512MiB instead of 1GiB. Artem: split long line on 2 shorter ones. Signed-off-by: Matthieu Castet <matthieu.castet@parrot.com> Acked-by: Florian Fainelli <ffainelli@freebox.fr> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-11-01mtd: nand_flash_detect_onfi propagate busw infoMatthieu CASTET
there is a bug in nand_flash_detect_onfi, busw need to be passed by pointer to return it. Signed-off-by: Matthieu CASTET <matthieu.castet@parrot.com> Acked-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Artem Bityutskiy <dedekind1@gmail.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-10-31ENGR00230381 when unplug HDMI, the audio will be pending for a whileb02247
Revert "ENGR00224245 HDMI AUDIO: stop/start PCM while unplug,blank/plug,unblank" This reverts commit f8dd4f6fea093e46a30d5e438baa33702f626372. This patch is for pulse audio. which is not fit for Android. Signed-off-by: b02247 <b02247@freescale.com>
2012-10-31ENGR00230203 VPU: System hang after resume from suspend during video playbackguoyin.chen
Make VPU driver only recover the reg and running state only VPU being used Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
2012-10-29ENGR00231492 Android: MMC: remove sdhci async support to reduce sync() latency.Zhang Jiejing
The sdhci async mmc coomand support will batch too much write command, it will cause the thread call sync() become very slow, it will cause the sqlite operation become very slow. This patch will improve the latency of sqlite operation a lot, one test case, without this patch, the async() will wait for 6 write command, and with this patch, it only wait for one write command, in a slow SD card, the different will be 3000ms vs 500ms. Since this async() function not improve performance a lot for fast card(eMMC), but it will affect too much for slow card like TF card, remove this function. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
2012-10-26ENGR00230981-3 pfuze: add suspend voltage set interfaceRobin Gong
Implement set_suspend_voltage for buck switch of PF100, and set_suspend_enable /set_suspend_disable interface for LDO(VGENx). Signed-off-by: Robin Gong <b38343@freescale.com>
2012-10-25ENGR00230910 IPU: wrong display to downsize large resolution frame on split modeWayne Zou
Fix bug: IPU IC resize ratio overflow when downsizing large resolution frame using split mode, for example downsize 4080x2720 frame into 1920x1080 frame. Otherwise, the downsized frame is wrong. Signed-off-by: Wayne Zou <b36644@freescale.com>
2012-10-24Revert "ENGR00221197-2 Update gpu driver to check Soc temperature"Xinyu Chen
This reverts commit 60bad509d7060775a370d70e843ab12f6b50c5c5.
2012-10-24Revert "ENGR00222253 Merge vivante 4.6.9_p7 kernel part code"Xinyu Chen
This reverts commit c672fadbfe66e900048fcc04d6252fb842414433.
2012-10-24Revert "ENGR00229321 Integrate GPU 4.6.9p8 kernel part driver"Xinyu Chen
This reverts commit 515c4d4486a167a7741bcae804cbb357bc0d7fc1.
2012-10-24ENGR00230923 Revert " input: FSL MPR121 capacitive touch button."Zhang Jiejing
There was a mpr121_touchkey.c driver already upstream, the orignall driver by 2.6.35 kernel development should be removed to avoid duplicate. This reverts commit 3d6df22ad54a14bc8cebb7753c36f7b3cd811665. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
2012-10-24ENGR00230920-3 HDMI AUIDO: export symbol in HDMI core driverChen Liangjun
Export symbol in HDMI core driver to support HDMI AUDIO codec driver's loadable module build. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-10-24Merge remote branch 'fsl-linux-sdk/imx_3.0.35_12.11.01' into ↵Xinyu Chen
imx_3.0.35_android_r13.4.y 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/mx6sl_wfi.S arch/arm/mach-mx6/pm.c arch/arm/mach-mx6/system.c arch/arm/plat-mxc/cpufreq.c drivers/media/video/mxc/capture/ov5640_mipi.c drivers/mfd/mxc-hdmi-core.c drivers/mmc/host/sdhci.c drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c drivers/power/sabresd_battery.c drivers/video/mxc/mxc_ipuv3_fb.c include/linux/mfd/mxc-hdmi-core.h
2012-10-23ENGR00229938 pxp/v4l2: check return value of kmalloc against NULLRobby Cai
This is needed sanity check, because on Ubuntu it's likely that low memory will happen. This patch also makes this memory allocated from dma zone. 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-23ENGR00227965 EPDC: Init sequence leaves EDPC clocks onMichael Minnick
A small logic bug prevents the init sequence from properly turning off the clocks. This leads to the clocks being always on if the first update does not complete due to the screen being blanked. Signed-off-by: Michael Minnick <michael.minnick@freescale.com>
2012-10-23ENGR00229803-2 sii902x: add dependency on CONFIG_FB_MXC_ELCDIF_FBRobby Cai
Add dependency on CONFIG_FB_MXC_ELCDIF_FB, to avoid build error if as module. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-23ENGR00229803-1 lcdif: export mxcfb_elcdif_register_mode needed by sii902x driverRobby Cai
This is needed when build sii902x hdmi driver as module Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-23ENGR00229473 elcdif fb: fix lcd framebuffer potential recursive lockingRobby Cai
This can be detected by enabling CONFIG_LOCKDEP and CONFIG_PROVE_LOCKING The dump log: ============================================= [ INFO: possible recursive locking detected ] 3.0.35-02140-gb4181ce-dirty #959 --------------------------------------------- swapper/1 is trying to acquire lock: ((fb_notifier_list).rwsem){.+.+.+}, at: [<80088758>] __blocking_notifier_call_chain+0x44/0x88 but task is already holding lock: ((fb_notifier_list).rwsem){.+.+.+}, at: [<80088758>] __blocking_notifier_call_chain+0x44/0x88 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock((fb_notifier_list).rwsem); lock((fb_notifier_list).rwsem); *** DEADLOCK *** May be due to missing lock nesting notation 5 locks held by swapper/1: #0: (&__lockdep_no_validate__){+.+.+.}, at: [<8027f244>] __driver_attach+0x48/0x98 #1: (&__lockdep_no_validate__){+.+.+.}, at: [<8027f254>] __driver_attach+0x58/0x98 #2: (registration_lock){+.+.+.}, at: [<8023a17c>] register_framebuffer+0x18/0x24c #3: (&fb_info->lock){+.+.+.}, at: [<80238dc8>] lock_fb_info+0x18/0x3c #4: ((fb_notifier_list).rwsem){.+.+.+}, at: [<80088758>] __blocking_notifier_call_chain+0x44/0x88 stack backtrace: [<800405c4>] (unwind_backtrace+0x0/0xf8) from [<80097c78>] (__lock_acquire+0x1644/0x1c18) [<80097c78>] (__lock_acquire+0x1644/0x1c18) from [<80098748>] (lock_acquire+0x84/0x98) [<80098748>] (lock_acquire+0x84/0x98) from [<804d0aa8>] (down_read+0x34/0x44) [<804d0aa8>] (down_read+0x34/0x44) from [<80088758>] (__blocking_notifier_call_chain+0x44/0x88) [<80088758>] (__blocking_notifier_call_chain+0x44/0x88) from [<800887b4>] (blocking_notifier_call_chain+0x18/0x20) [<800887b4>] (blocking_notifier_call_chain+0x18/0x20) from [<802397e0>] (fb_set_var+0x264/0x290) [<802397e0>] (fb_set_var+0x264/0x290) from [<8024a320>] (lcd_init_fb+0x54/0x70) [<8024a320>] (lcd_init_fb+0x54/0x70) from [<8024a3f0>] (lcd_fb_event+0x44/0xb4) [<8024a3f0>] (lcd_fb_event+0x44/0xb4) from [<80088514>] (notifier_call_chain.isra.1+0x74/0xd0) [<80088514>] (notifier_call_chain.isra.1+0x74/0xd0) from [<80088774>] (__blocking_notifier_call_chain+0x60/0x88) [<80088774>] (__blocking_notifier_call_chain+0x60/0x88) from [<800887b4>] (blocking_notifier_call_chain+0x18/0x20) [<800887b4>] (blocking_notifier_call_chain+0x18/0x20) from [<8023a2d4>] (register_framebuffer+0x170/0x24c) [<8023a2d4>] (register_framebuffer+0x170/0x24c) from [<8024fe8c>] (mxc_elcdif_fb_probe+0x464/0x564) [<8024fe8c>] (mxc_elcdif_fb_probe+0x464/0x564) from [<8028031c>] (platform_drv_probe+0x18/0x1c) [<8028031c>] (platform_drv_probe+0x18/0x1c) from [<8027f0f0>] (driver_probe_device+0x90/0x19c) [<8027f0f0>] (driver_probe_device+0x90/0x19c) from [<8027f290>] (__driver_attach+0x94/0x98) [<8027f290>] (__driver_attach+0x94/0x98) from [<8027e2e4>] (bus_for_each_dev+0x5c/0x88) [<8027e2e4>] (bus_for_each_dev+0x5c/0x88) from [<8027eabc>] (bus_add_driver+0x188/0x250) [<8027eabc>] (bus_add_driver+0x188/0x250) from [<8027f750>] (driver_register+0x78/0x13c) [<8027f750>] (driver_register+0x78/0x13c) from [<8001c838>] (mxc_elcdif_fb_init+0x38/0x48) [<8001c838>] (mxc_elcdif_fb_init+0x38/0x48) from [<80035334>] (do_one_initcall+0x34/0x178) [<80035334>] (do_one_initcall+0x34/0x178) from [<80008968>] (kernel_init+0x84/0x124) [<80008968>] (kernel_init+0x84/0x124) from [<8003b614>] (kernel_thread_exit+0x0/0x8) In fact, we don't need support dynamically switch the framebuffer. so, we only need do once registeration in probe function. Signed-off-by: Robby Cai <R63905@freescale.com> Acked-by: Lily Zhang
2012-10-23ENGR00227728 csi/v4l: add V4L2_CAP_VIDEO_CAPTURE & V4L2_CAP_STREAMING capabilityRobby Cai
add V4L2_CAP_VIDEO_CAPTURE & V4L2_CAP_STREAMING capability for QUERYCAP ioctl. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-23ENGR00227873-1 pxp/v4l2: make the v4l2 output device index auto assignedRobby Cai
It used the hard-coded '0' for historical reason. This patch changes it to -1 to make video device minor to be automatically assigned. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-23ENGR00227726 csi: Disable csi clock when it's inactiveRobby Cai
Disable csi clock when inactive, otherwise this prevents system from entering low power mode. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-23ENGR00229222 mmc: esdhc: allow MMC and SDIO cards switched to 1.8V signallingRobby Cai
The current driver only allows SD cards to run at 1.8V. This patch allows MMC and SDIO cards to be switched to 1.8V signalling Acked-by: Dong Aisheng <b29396@freescale.com> Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-23ENGR00227890 ts: fix elan touch screen gets no response upon suspend/resumeRobby Cai
To reproduce: 1. let system enter suspend mode 2. touch the screen 3. after the system resumes, touch screen does not respond again. The cause: The touch screen interrupt is triggered by falling edge. During suspend stage, once the screen has ever been touched, then the interrupt line will be always pulled low. Since elan ts chip is always powered on and the interrupt gets no chance to be handled during suspend stage, the interrupt line can not recover to high to detect a new one. Workaround: Read out the pending data to make the touch screen come back alive. Signed-off-by: LiGang <b41990@freescale.com> Signed-off-by: Robby Cai <R63905@freescale.com>
2012-10-19ENGR00229905-1: adv7280 mipi csi2 tvin decoder supportAdrian Alonso
* Add ADV728x mipi csi2 tvin decoder support * Perform a hardware reset via i2c command * Load recommended initial config settings * Kconfig selection options * Makefile build rules Signed-off-by: Oscar Luna <r01160@freescale.com> Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-10-19ENGR00230378 Revert "mmc: sdhci:fix sdio suspend/resume timeout issue"Xinyu Chen
This reverts commit a4c30fb8c306939d06196d9324b991fccd6350e4. Signed-off-by: Xinyu Chen <xinyu.chen@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-17ENGR00229952 mxc_v4l2_capture: csi ic mem uses hard coded initial DMA base addrSheng Nan
When setup csi ic mem on the fly channel, the capture output buffer is initialized with hard coded dummy address 0xdeadbeaf This also causes IPU warning when use this channel: imx-ipuv3 imx-ipuv3.0: IDMAC20's EBA0 is not 8-byte aligned - use the pre-allocated dummy_frame.vaddress instead of 0xdeadbeaf Signed-off-by: Sheng Nan <b38800@freescale.com>
2012-10-17ENGR00229962 Capture: ov5642/ov5640: update sensor params even if s_parm failedSheng Nan
ioctl_s_parm for ov5642 and ov5640, it didn't check if sensor changed mode successfully. So it updates the sensor parameters with new framerate and new mode even if the sensor failed to change mode. The original framerate and mode is useful for the exposure calculation. It should keep consistent with sensor actual work mode. - This patch checks the return value of function which changes sensor mode If it succeed, update sensor parameters. Signed-off-by: Sheng Nan <b38800@freescale.com>
2012-10-16ENGR00224964-4 mxc_v4l2_capture: change capture stream off sequenceSheng Nan
Change v4l2 capture stream off sequence. Both CSI MEM and CSI IC MEM channel wait for idmac eof and disable csi firstly. The disable sequence is: - wait for idmac channel EOF, disable csi - disable idmac channel - disable smfc (CSI-->MEM channel) Signed-off-by: Sheng Nan <b38800@freescale.com> (cherry picked from commit 8d06743e323da3a65c7a488315ca33c7901f9bc8)
2012-10-16ENGR00224964-3 IPU: Capture: add csi wait4eof support of CSI-IC channelSheng Nan
current _ipu_csi_wait4eof only support CSI-->MEM channel - add support of CSI_PRP_ENC_MEM - add support of CSI_PRP_VF_MEM Signed-off-by: Sheng Nan <b38800@freescale.com> (cherry picked from commit 4ddc27dff9b806d8c21dbcf7a57a3608c422d1a4)
2012-10-16ENGR00224964-2 IPU: Capture: change csi disable sequenceSheng Nan
The recommended sequence for disable csi is, disable csi as soon as we get IDMAC eof interrupt. - add wait for eof when disable csi. - don't wait for eof when disable CSI-->MEM channel. Signed-off-by: Sheng Nan <b38800@freescale.com> (cherry picked from commit fb4b5a097f844905ec703d48fb4fc337df7eb9a0)
2012-10-16ENGR00224964-1 Capture: ov5642: 5M mode works at low frame rateSheng Nan
current setting of 5M (QSXGA) mode, sensor works at 2.5fps. the expected frame rate is 7.5fps. - use new ov5642 QSXGA firmware get from ov change sensor PLL settings 0x3010/0x3012 QSXGA frame rate changes from 2.5 -- 7.5fps - change mode between QSXGA@15fps and VGA@15fps go through quick change path. modify QSXGA_VGA quick change firmware due to the QSXGA PLL setting changes. keep value of 0x3010/0x3012 the same as VGA@15fps original value. Signed-off-by: Sheng Nan <b38800@freescale.com> (cherry picked from commit 23023bc7a100552451d3541ab34be348a8c32c3a)
2012-10-16ENGR00211376 Capture: ov5640_mipi: the QVGA is brighterSheng Nan
change ov5640_init_mode sequence according to ov's suggestion ov5640 support two method of size switching, scaling and subsampling exposure calculation when change size between scaling and subsampling - scaling: image size bigger than 1280*960 - subsampling: image size smaller than 1280*960 This patch changes the sequence of ov5640_init_mode() 1. setting mipi csi2 (no change). 2. check mode - if it is in INIT_MODE, go throught initial procedure - if sensor changes between scaling and subsampling, go through exposure calcualtion - otherwise, configure mode directly. 3. other procedures keep the same. Signed-off-by: Sheng Nan <b38800@freescale.com> (cherry picked from commit bb71ae44bcf04299483426fb3a6421e207504d3e)
2012-10-16ENGR00229353 Capture: ov5640 mipi: XVLK rename and value changeSheng Nan
- XVCLK equals MCLK/10000, currently XVCLK is hard set as 2200 - rename it in lower case Signed-off-by: Sheng Nan <b38800@freescale.com> (cherry picked from commit baca2279464019b44521e0a179d191ecb3a4eb6a)
2012-10-16ENGR00229350 Capture: ov5640 mipi: duplicated define of static variableSheng Nan
remove duplicated definition of prev_sysclk Signed-off-by: Sheng Nan <b38800@freescale.com> (cherry picked from commit 704a97ecad2c081038001de140d0f11fc4857cdb)
2012-10-16ENGR00229323 Capture: ov5640 mipi: code type warning generated by scriptSheng Nan
clear code type warning generated by script Signed-off-by: Sheng Nan <b38800@freescale.com> (cherry picked from commit d3a74f37a7f1062b26fc0ea159c28aef7633f05b)
2012-10-16ENGR00229321 Integrate GPU 4.6.9p8 kernel part driverLoren Huang
Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang