summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| | | | | * | ENGR00271136 Fix build break when CONFIG_CLK_DEBUG is disabledMahesh Mahadevan2013-07-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clk structure member name is defined only when CONFIG_CLK_DEBUG is enabled. Hence need to encapsulate the code with this config. Patch received from imx community: https://community.freescale.com/thread/308482 Signed-off-by: xiongweihuang Signed-off-by: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
| | | | | * | ARM: 7670/1: fix the memset fixNicolas Pitre2013-07-091-20/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 455bd4c430b0 ("ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations") attempted to fix a compliance issue with the memset return value. However the memset itself became broken by that patch for misaligned pointers. This fixes the above by branching over the entry code from the misaligned fixup code to avoid reloading the original pointer. Also, because the function entry alignment is wrong in the Thumb mode compilation, that fixup code is moved to the end. While at it, the entry instructions are slightly reworked to help dual issue pipelines. Signed-off-by: Nicolas Pitre <nico@linaro.org> Tested-by: Alexander Holler <holler@ahsoftware.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 418df63adac56841ef6b0f1fcf435bc64d4ed177)
| | | | | * | ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) ↵Ivan Djelic2013-07-091-41/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | optimizations Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on assumptions about the implementation of memset and similar functions. The current ARM optimized memset code does not return the value of its first argument, as is usually expected from standard implementations. For instance in the following function: void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter) { memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter)); waiter->magic = waiter; INIT_LIST_HEAD(&waiter->list); } compiled as: 800554d0 <debug_mutex_lock_common>: 800554d0: e92d4008 push {r3, lr} 800554d4: e1a00001 mov r0, r1 800554d8: e3a02010 mov r2, #16 ; 0x10 800554dc: e3a01011 mov r1, #17 ; 0x11 800554e0: eb04426e bl 80165ea0 <memset> 800554e4: e1a03000 mov r3, r0 800554e8: e583000c str r0, [r3, #12] 800554ec: e5830000 str r0, [r3] 800554f0: e5830004 str r0, [r3, #4] 800554f4: e8bd8008 pop {r3, pc} GCC assumes memset returns the value of pointer 'waiter' in register r0; causing register/memory corruptions. This patch fixes the return value of the assembly version of memset. It adds a 'mov' instruction and merges an additional load+store into existing load/store instructions. For ease of review, here is a breakdown of the patch into 4 simple steps: Step 1 ====== Perform the following substitutions: ip -> r8, then r0 -> ip, and insert 'mov ip, r0' as the first statement of the function. At this point, we have a memset() implementation returning the proper result, but corrupting r8 on some paths (the ones that were using ip). Step 2 ====== Make sure r8 is saved and restored when (! CALGN(1)+0) == 1: save r8: - str lr, [sp, #-4]! + stmfd sp!, {r8, lr} and restore r8 on both exit paths: - ldmeqfd sp!, {pc} @ Now <64 bytes to go. + ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go. (...) tst r2, #16 stmneia ip!, {r1, r3, r8, lr} - ldr lr, [sp], #4 + ldmfd sp!, {r8, lr} Step 3 ====== Make sure r8 is saved and restored when (! CALGN(1)+0) == 0: save r8: - stmfd sp!, {r4-r7, lr} + stmfd sp!, {r4-r8, lr} and restore r8 on both exit paths: bgt 3b - ldmeqfd sp!, {r4-r7, pc} + ldmeqfd sp!, {r4-r8, pc} (...) tst r2, #16 stmneia ip!, {r4-r7} - ldmfd sp!, {r4-r7, lr} + ldmfd sp!, {r4-r8, lr} Step 4 ====== Rewrite register list "r4-r7, r8" as "r4-r8". Signed-off-by: Ivan Djelic <ivan.djelic@parrot.com> Reviewed-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Dirk Behme <dirk.behme@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 455bd4c430b0c0a361f38e8658a0d6cb469942b5)
| | | | | * | ENGR00269935 Fix the build breakMahesh Mahadevan2013-07-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add missing parenthesis Signed-off-by: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
| | | | | * | ENGR00269604 Fix the set clock-rate for audio & videoMahesh Mahadevan2013-07-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is single method to set clock-rate for both audio and video pll-s in i.MX6q clock system implementation. That's possible due to they have similar set of registers with a different bases. But there is also one common register: CCM_ANALOG_MISC2, which contains post-dividers. In current implementation, independently of whether audio or video clock is going to be set, the mask 0xc0000000 is applied to MISC2 register. This means, that if the audio clock rate is changed, the video clock post-dividers possibly will be corrupted. This patch fixes the issue described above. Signed-off-by: Alexander Smirnov <alex.bluesman.smirnov@gmail.com> Signed-off-by: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
| | | | | * | ENGR00267089 mx6: Amend the definitions of ANADIG_ANA_MISC2_REGx_STEP_TIME_MASKPeter Chan2013-06-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correct the definitions of ANADIG_ANA_MISC2_REG0_STEP_TIME_MASK and ANADIG_ANA_MISC2_REG2_STEP_TIME_MASK to 0x03000000 and 0x30000000 respectively Signed-off-by: Peter Chan <B18700@freescale.com>
| | | | | * | ENGR00240112-2 crypto: caam: add ecb(aes) crypto algorithm to caam.Zhang Jiejing2013-06-171-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | | | | * | ENGR00240112-1 caam: fix user space crypto API support.Zhang Jiejing2013-06-171-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | | | | * | ENGR00181680-2 No audio when play 3 streams after 3~10 seconds sometimesb022472013-06-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | | | | * | ENGR00181680-1 No audio when play 3 streams after 3~10 seconds sometimesb022472013-06-172-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | | | | * | ENGR00266312 mx6dl: add i2c4 bus support for sabresd/auto, arm2 platformsFugang Duan2013-06-095-10/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | imx6dq have 3 i2c controllers and 5 ecspi,imx6dl have 4 i2c4 controllers and 4 ecspi. imx6dl i2c4 clock source is routed from pll3 through to ecspi_root gate. Add i2c4 bus support for sabresd/auto, and arm2 platforms. Signed-off-by: Fugang Duan <B38611@freescale.com>
| | | | | * | ENGR00265061 System hang when running the game lsh.emu.apkguoyin.chen2013-06-031-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The game will creat a lot of hr timer, and make cpu tick broadcast bit not been clear all time. It will cause user space thread not been scheduled. Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
| | | | | * | perf tools: Fix getrusage() related build failure on glibc trunkMarkus Trippelsdorf2013-05-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On a system running glibc trunk perf doesn't build: CC builtin-sched.o builtin-sched.c: In function ‘get_cpu_usage_nsec_parent’: builtin-sched.c:399:16: error: storage size of ‘ru’ isn’t known builtin-sched.c:403:2: error: implicit declaration of function ‘getrusage’ [-Werror=implicit-function-declaration] [...] Fix it by including sys/resource.h. Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/20120404084527.GA294@x4 Signed-off-by: Ingo Molnar <mingo@kernel.org>
| | | | | * | ENGR00259693 MX6DL/S-Enable routing of ENET interrupt to GPIORanjani Vaidyanathan2013-04-224-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to fix the performance issue on ENET when WAIT mode is activated, route the ENET interrupts to a GPIO on all MX6DL boards. This patch must be applied on top of: MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active 808863866d2c17aeb3e70a7fcd094bd96db4b601 bae4d40849f3acdd9663f5a0857c9415ed7e6d5d Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
| | | | | * | ENGR00259593 IPU/V4L2 output: Fix video ouput to video16 can not workWayne Zou2013-04-191-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert"ENGR00254931 IPUv3 Fb: Fix display twinkling issue during suspend/resume" This reverts commit 4bd475ba0603e10cdcab7e55f89599f7016cad25. That patch will lead to kernel crash when doing video playback on video16 with overlay on. The reason is that fb driver doesn't reallocate larger DMA buffer requested by V4L2 driver, while IPU hardware write to large DMA address. Other solution is needed for the original issue. kernel BUG at arch/arm/mm/dma-mapping.c:478! Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = 80004000 [00000000] *pgd=00000000 Internal error: Oops: 817 [#1] PREEMPT SMP Modules linked in: mxc_v4l2_capture ipu_csi_enc ipu_prp_enc ipu_fg_overlay_sdc ipu_bg_overlay_sdc ipu_still ov5640_camera_mipi ov5640_camera CPU: 0 Not tainted (3.0.35-2506-g556681e #1) PC is at __bug+0x1c/0x28 LR is at __bug+0x18/0x28 pc : [<800442ac>] lr : [<800442a8>] psr: 20000113 sp : 80a8fe88 ip : c09b2000 fp : 80aa3a70 r10: 80a90080 r9 : 00000040 r8 : bffecec4 r7 : 00000001 r6 : 00000002 r5 : 00000800 r4 : ce5c5e65 r3 : 00000000 r2 : 00000104 r1 : 0bfcf000 r0 : 00000033 Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 4a97404a DAC: 00000015 Process swapper (pid: 0, stack limit = 0x80a8e2f0) Stack: (0x80a8fe88 to 0x80a90000) fe80: 80afde30 8004a464 00000880 ffdfd6b0 bffec000 802fa678 fea0: bffec000 00000060 5e5c5e65 ce5c5e65 bffec250 80ad4c88 bffece4c 00000001 fec0: bffecec4 00000040 0000012c 8c009480 8c009488 80a90080 ffff9527 80423f58 fee0: 00000001 80a8e000 00000096 00000001 80a9004c 80a8e000 00000103 80af77e0 ff00: 00000000 80a90040 00000003 8007a034 00000096 00000000 80a8e000 0000000a ff20: 80a94c4c 80a8e000 80039c00 80a8e000 00000096 00000000 80a8e000 00000000 ff40: 00000000 8007a570 80aa3cc0 80041874 ffffffff f2a00100 00000096 00000002 ff60: 00000001 80040a0c 80af9140 80000093 00000001 00000000 80a8e000 80af1ce4 ff80: 80511044 80aa6e7c 1000406a 412fc09a 00000000 00000000 00000000 80a8ffb0 ffa0: 8004f648 80041b04 40000013 ffffffff 80041ae0 80041d08 00000001 80aa3b3c ffc0: 80af1c40 8002f538 8c005160 80008868 800082f8 00000000 00000000 8002f538 ffe0: 00000000 10c53c7d 80aa3a6c 8002f534 80aa6e74 10008040 00000000 00000000 [<800442ac>] (__bug+0x1c/0x28) from [<8004a464>] (___dma_single_dev_to_cpu+0x84/0x94) [<8004a464>] (___dma_single_dev_to_cpu+0x84/0x94) from [<802fa678>] (fec_rx_poll+0x228/0x2c8) [<802fa678>] (fec_rx_poll+0x228/0x2c8) from [<80423f58>] (net_rx_action+0xb0/0x17c) [<80423f58>] (net_rx_action+0xb0/0x17c) from [<8007a034>] (__do_softirq+0xac/0x140) [<8007a034>] (__do_softirq+0xac/0x140) from [<8007a570>] (irq_exit+0x94/0x9c) [<8007a570>] (irq_exit+0x94/0x9c) from [<80041874>] (handle_IRQ+0x50/0xac) [<80041874>] (handle_IRQ+0x50/0xac) from [<80040a0c>] (__irq_svc+0x4c/0xe8) [<80040a0c>] (__irq_svc+0x4c/0xe8) from [<80041b04>] (default_idle+0x24/0x28) [<80041d08>] (cpu_idle+0xc8/0x108) from [<80008868>] (start_kernel+0x248/0x288) [<80008868>] (start_kernel+0x248/0x288) from [<10008040>] (0x10008040) Signed-off-by: Wayne Zou <b36644@freescale.com>
| | | | | * | ENGR00259008: mlb: reduce iram usage amount in async modeTerry Lv2013-04-161-13/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In testing async mode on mx6q ard and mx6dl ard, driver always said "can not alloc rx buffer". Change async's ring buffer size from 2048 to 1536(MEP package size) and reduce the extra ring buffer for drop package, now the iram usage amount in async mode reduced from 34816 to 24576. Signed-off-by: Terry Lv <r65388@freescale.com>
| | | | | * | ENGR00258885 flexcan: fix errata ERR005641 that MB may fail to be sentDong Aisheng2013-04-161-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an issue from IC errata ERR005641 which is described as follows: ---------------------------------------------------------- FlexCAN does not transmit a message that is enabled to be transmitted in a specific moment during the arbitration process. The following conditions are necessary to have the issue. - Only one MB is configured to be transmitted - The write which enables the MB to be transmitted (write on Control status word) happens during a specific clock during the arbitration process. After this arbitration process occurs, the bus goes to Idle state and no new message is received on bus. For example: 1) MB13 is deactivated on RxIntermission (write 0x0 on CODE field from Control Status word) - First write on CODE 2) Reconfigure the ID and data fields 3) Enable the MB13 to be transmitted on BusIdle (write 0xC on Code field) - Second write on code 4) CAN bus keeps in Idle state 5) No write on Control status from any MB happens. During the second write on code (step 3), the write must happen one clock before the current MB13 is to be scanned by arbitration process. In this case, it does not detect the new code (0xC) and no new arbitration is scheduled. The suggested workaround which is implemented in this patch is: The workaround consists of executing two extra steps: 6. Reserve the first valid mailbox as an inactive mailbox (CODE=0b1000). If RX FIFO is disabled, this mailbox must be MB0. Otherwise, the first valid mailbox can be found by using table "RX FIFO filters" on FlexCAN3 chapter. 7. Write twice INACTIVE code (0b1000) into the first valid mailbox. Note: The first mailbox cannot be used for reception or transmission process. ------------------------------------------------------------- Note: Although the currently flexcan driver does not have the step 1 to run, it's also possible to meet this issue in theory because we can not predict when the arbitration is scheduled. With a modified can-utils/canfdttest tool simulating Pingpong test, we were able to reproduce this issue after running a about one day. After applying this patch, we ran six days and did not see the issue happen again on two mx6q sabrelite boards. Signed-off-by: Dong Aisheng <b29396@freescale.com>
| | | | | * | can: flexcan: Fix CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACKReuben Dowle2013-04-161-10/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the flexcan driver uses hardware local echo. This blindly echos all transmitted frames to all receiving sockets, regardless what CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACK are set to. This patch now submits transmitted frames to be echoed in the transmit complete interrupt, preserving the reference to the sending socket. This allows the can protocol to correctly handle the local echo. Further this patch moves tx_bytes statistic accounting into the tx_complete handler. Signed-off-by: Reuben Dowle <reuben.dowle@navico.com> [mkl: move tx_bytes accounting into tx_complete handler; cleanups] Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
| | | | | * | can: dev: let can_get_echo_skb() return dlc of CAN frameMarc Kleine-Budde2013-04-162-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | can_get_echo_skb() is usually called in the TX complete handler. The stats->tx_packets and stats->tx_bytes should be updated there, too. This patch simplifies to figure out the size of the sent CAN frame. Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
| | | | | * | ENGR00258733 WEIM-NOR: mtd: cfi_cmdset_0002: Do not release the mutex lockHuang Shijie2013-04-151-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The NOR may suffers a write-buffer timeout during the bonnie++/ubifs stress test. This patch is just a workaround to fix this issue. With this patch, the read/write/erase will do in the synchronous way. Signed-off-by: Huang Shijie <b32955@freescale.com>
| | | | | * | ENGR00258357-5: mlb: Use circle buf macros to replace old ringbuf mechanismTerry Lv2013-04-152-207/+371
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use circle buf to replace old ringbuf mechanism. Change to use circle buffer in read, write, rx isr and tx isr functions. In first design of MLB, it's using it's own mechanism to manage ring buffer, like in mxc_mlb.c. And then, I saw that kernel already had a serials of circ buffer macros which can be used to manage ring buffers. This patch is to use circle buffer macros to manage mlb internal ring buffers. For detail of circle buffers, you can refer to linux-2.6-imx/Documentation/circular-buffers.txt. Signed-off-by: Terry Lv <r65388@freescale.com>
| | | | | * | ENGR00258357-4: mlb: Group static variables to structure mlb_dataTerry Lv2013-04-151-433/+536
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Group static variables to structure mlb_data. Use mlb_data as platform data to be passed to file operation functions. Change accordingly functions for this change. Signed-off-by: Terry Lv <r65388@freescale.com>
| | | | | * | ENGR00258357-3: mlb: Reset whole CDR in init functionTerry Lv2013-04-151-46/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reset whole CDR in init function. This will make mlb connection to MITB more stable. This is a missed part in mx6 rm's mlb section, but new in mlb's latest spec DS62420AP2.pdf 12.1.1-1. Without this patch, mlb may receive irq from MITB during initialization. It might cause some connection issue that mlb can't receive data sometimes. It was treat to be MITB's fault before we get the latest spec. Signed-off-by: Terry Lv <r65388@freescale.com>
| | | | | * | ENGR00258357-2: mlb: Add more debug msgs in DEBUG modeTerry Lv2013-04-151-124/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes are: 1. Use print_hex_dump to print buffer in DEBUG mode. 2. Add more debug msgs. Signed-off-by: Terry Lv <r65388@freescale.com>
| | | | | * | ENGR00258357-1: mlb: Remove MLB150_ from macro define namesTerry Lv2013-04-151-354/+354
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove MLB150_ from macro define names to make code clean. Signed-off-by: Terry Lv <r65388@freescale.com>
| | | | | * | ENGR00257847-2 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is activeRanjani Vaidyanathan2013-04-122-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All of the interrupts from the ENET block are not routed to the GPC block. Hence ENET interrupts are not able to wake up the SOC when the system is in WAIT mode. And the ENET interrupt gets serviced only when another interrupt causes the SOC to exit WAIT mode. This impacts the ENET performance. To fix the issue two options: 1. Route the ENET interrupt to a GPIO. Need to enable the CONFIG_MX6_ENET_IRQ_TO_GPIO in the config. 2. If the GPIO mechanism cannot be used and is not enabled by the above mentioned config, the patch will disable entry to WAIT mode until ENET clock is active. When the ENET clock is disabled, WAIT mode will be automatically enetered. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
| | | | | * | ENGR00257847-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is activeRanjani Vaidyanathan2013-04-1212-30/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All of the interrupts from the ENET block are not routed to the GPC block. Hence ENET interrupts are not able to wake up the SOC when the system is in WAIT mode. And the ENET interrupt gets serviced only when another interrupt causes the SOC to exit WAIT mode. This impacts the ENET performance. To fix the issue two options: 1. Route the ENET interrupt to a GPIO. Need to enable the CONFIG_MX6_ENET_IRQ_TO_GPIO in the config. This patch provides support for routing the ENET interrupt to GPIO_1_6. Routing to this GPIO requires no HW board mods. If the GPIO_1_6 is being used for some other peripheral, this patch can be followed to route the ENET interrupt to any other GPIO though a HW mode maybe required. 2. If the GPIO mechanism cannot be used and is not enabled by the above mentioned config, the patch will disable entry to WAIT mode until ENET clock is active. When the ENET clock is disabled, WAIT mode will be automatically enetered. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
| | | | | * | ENGR00256417: MLB: can't receive data in wait modeTerry Lv2013-04-121-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For MLB uses iram for data transfer, and there's a missing of dependency on iram in MLB's clock setting, MLB can't receive data in wait mode. We need to add ocram clock dependency in MLB clock. Signed-off-by: Terry Lv <r65388@freescale.com>
| | | | | * | mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.cHarald Nordgard-Hansen2013-04-111-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When working on a problem with some flash chips that lock up during write-buffer operations, I think there may be a bug in the linux handling of chips using cfi_cmdset_0002.c. The datasheets I have found for a number of these chips all specify that when aborting a write-buffer command, it is not enough to use the standard reset. Rather a "write-to-buffer-reset command" is needed. This command is quite similar for all chips, the main variance seem to be if the final 0xF0 can go to any address or must go to addr_unlock1. The bug is then in the recovery handling when timing out at the end of do_write_buffer, where using the normal reset command is not sufficient. Without this change, if the write-buffer command fails then any following operations on the flash also fail. Signed-off-by: Harald Nordgard-Hansen <hhansen@pvv.org> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
| | | | | * | mtd: cfi_cmdset_0002: Micron M29EW bugfixes as per TN-13-07Gerlando Falauto2013-04-111-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the following issues with Micron's (formerly Numonyx) M29EW NOR flash chips, as documented on TN-13-07: - Correcting Erase Suspend Hang Ups (page 20) - Resolving the Delay After Resume Issue (page 22) Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com> 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>
| | | | | * | mtd: cfi_cmdset_0002: Slight cleanup of fixup messagesDavid Woodhouse2013-04-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These should be semicolons, not commas. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
| | | | | * | mtd: add fixup for S29NS512P NOR flash.Javier Martin2013-04-111-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Spansion S29NS512P flash uses a 16bit transfer to report number of sectors instead of two 8bit accesses as CFI specifies. Artem: remove warning message which said that we are applying the fixup - no need to scary the user unnecessarily. Signed-off-by: Javier Martin <javier.martin@vista-silicon.com> 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>
| | | | | * | mtd: chips: cfi_cmdset_0002: Match ENABLE_VPP()/DISABLE_VPP() callsPaul Parsons2013-04-111-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is part of a set which fixes unnecessary flash erase and write errors resulting from the MTD CFI driver turning off vpp while an erase is in progress. This patch ensures that only those flash operations which call ENABLE_VPP() can then call DISABLE_VPP(). Other operations should never call DISABLE_VPP(). Signed-off-by: Paul Parsons <lost.distance@yahoo.com> 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>
| | | | | * | mtd: cfi: AMD/Fujitsu compatibles: add panic write supportIra W. Snyder2013-04-111-0/+240
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the mtdoops driver to work on flash chips using the AMD/Fujitsu compatible command set. As the code comments note, the locks used throughout the normal code paths in the driver are ignored, so that the chance of writing out the kernel's last messages are maximized. Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu> 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>
| | | | | * | mtd: cleanup style on pr_debug messagesBrian Norris2013-04-111-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
| | | | | * | mtd: replace DEBUG() with pr_debug()Brian Norris2013-04-111-15/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Start moving away from the MTD_DEBUG_LEVEL messages. The dynamic debugging feature is a generic kernel feature that provides more flexibility. (See Documentation/dynamic-debug-howto.txt) Also fix some punctuation, indentation, and capitalization that went along with the affected lines. Signed-off-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
| | | | | * | ENGR00257755-4 ASoC: WM8962: Disable FLL when chip's not being usedNicolin Chen2013-04-101-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There might be a case that SYSCLK_SRC is not FLL, but FLL's still open. If so, next time we use FLL as SYSCLK_SRC, it won't work normally. This patch disabled FLL if FLL's enabled no matter what SYSCLK_SRC is. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com>
| | | | | * | ENGR00257755-3 Revert "ENGR00256933 ASoC: WM8962: Add delay after FLL-enable"Nicolin Chen2013-04-101-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 739325483d12276b80b34d7916e6cdb6d8774900. We already reverted FLL-enable code in set_fll(), so we don't need delay any more. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com>
| | | | | * | ENGR00257755-2 Revert "ENGR00256310 ASoC: imx-wm8962: Fix playback abnormally"Nicolin Chen2013-04-101-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 80dd80156772ff155aaf5420e41346674a9521f0. With this patch, WM8962 couldn't work normally after SabreSD power-on. So revert it and find a better solution. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com>
| | | | | * | ENGR00257755-1 Revert "ASoC: wm8962: Don't automatically enable and disable"Nicolin Chen2013-04-101-6/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e2bd4d2117e1c78cfd487fb10848f3361b358057. With this patch, WM8962 couldn't work normally after SabreSD power-on. So revert it and find a better solution. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com>
| | | | | * | ENGR00257947 mtd: use memcpy to replace the memcpy_fromioHuang Shijie2013-04-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the read of NOR, the kernel actually calls the inline_map_copy_from() to read the data out. And inline_map_copy_from() will use the memcpy_fromio() to do the real job. The memcpy_fromio macro maps _memcpy_fromio() in the current code. But the _memcpy_fromio() will use readb() to do the copy work one byte by one byte. This makes the read performance of NOR very slow(about 2~3MB/s). A similiar discussion could be found in: http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/003860.html This patch replace the memcpy_fromio with memcpy which is optimized by the kernel. The following is the result from mtd_speedtest with M29W256GL7AN6E: ================================================= mtd_speedtest: MTD device: 2 mtd_speedtest: not NAND flash, assume page size is 512 bytes. mtd_speedtest: MTD device size 4194304, eraseblock size 131072, page size 512, count of eraseblocks 32, pages per eraseblock 256, OOB size 0 mtd_speedtest: testing eraseblock write speed mtd_speedtest: eraseblock write speed is 845 KiB/s mtd_speedtest: testing eraseblock read speed mtd_speedtest: eraseblock read speed is 19504 KiB/s mtd_speedtest: testing page write speed mtd_speedtest: page write speed is 845 KiB/s mtd_speedtest: testing page read speed mtd_speedtest: page read speed is 19140 KiB/s mtd_speedtest: testing 2 page write speed mtd_speedtest: 2 page write speed is 846 KiB/s mtd_speedtest: testing 2 page read speed mtd_speedtest: 2 page read speed is 19320 KiB/s mtd_speedtest: Testing erase speed mtd_speedtest: erase speed is 233 KiB/s mtd_speedtest: Testing 2x multi-block erase speed mtd_speedtest: 2x multi-block erase speed is 225 KiB/s mtd_speedtest: Testing 4x multi-block erase speed mtd_speedtest: 4x multi-block erase speed is 224 KiB/s mtd_speedtest: Testing 8x multi-block erase speed mtd_speedtest: 8x multi-block erase speed is 225 KiB/s mtd_speedtest: Testing 16x multi-block erase speed mtd_speedtest: 16x multi-block erase speed is 225 KiB/s mtd_speedtest: Testing 32x multi-block erase speed mtd_speedtest: 32x multi-block erase speed is 225 KiB/s mtd_speedtest: Testing 64x multi-block erase speed mtd_speedtest: 64x multi-block erase speed is 224 KiB/s mtd_speedtest: finished ================================================= Signed-off-by: Huang Shijie <b32955@freescale.com>
| | | | | * | ENGR00257658 Revert "ENGR00256893-1 MX6Q/DL-Fix Ethernet performance issueJason Liu2013-04-0712-126/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 067c8dcfa79a169d86809272569fe734c4222c79. i.mx6dl/dq sabreauto/sabresd board will boot up failed randomly with this patch-set, thus revert it. [Jason] Signed-off-by: Jason Liu <r64343@freescale.com>
| | | | | * | ENGR00257658 Revert "ENGR00256893-2 MX6Q/DL-Fix Ethernet performance issueJason Liu2013-04-072-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 573bab0be2427d6664420eaf9d8e272dbe9d840f. i.mx6dl/dq sabreauto/sabresd board will boot up failed randomly with this patch-set, thus revert it. [Jason] Signed-off-by: Jason Liu <r64343@freescale.com>
| | | | | * | ENGR00255518 ipu/ipu3: using the kernel common help function div_u64Jason Liu2013-04-032-50/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't need invent the wheel to implement the wrap for the _do_div, we can use the kernel common helper function for the u64 divide with div_u64() function call This also fix the build break when CONFIG_DEBUG_SECTION_MISMATCH=y with GCC4.6.3 cross-compile toolchain. CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 drivers/built-in.o: In function `_do_div.part.1': clkdev.c:(.text+0x15c23c): undefined reference to `__aeabi_uldivmod' clkdev.c:(.text+0x15c25c): undefined reference to `__aeabi_uldivmod' clkdev.c:(.text+0x15c2bc): undefined reference to `__aeabi_uldivmod' clkdev.c:(.text+0x15c3ac): undefined reference to `__aeabi_uldivmod' clkdev.c:(.text+0x15c3d0): undefined reference to `__aeabi_uldivmod' This issue is caused by the wrongly optimized code produced by GCC, See the bug report here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48783 The similar build break issue report at: http://lists.infradead.org/pipermail/linux-mtd/2012-May/041677.html Signed-off-by: Jason Liu <r64343@freescale.com>
| | | | | * | ENGR00256918 IPUv3 common:Correct CSI_PRP_MEM disable routineLiu Ying2013-04-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For both CSI_MEMx and CSI_PRP_VF(ENC)_MEM capture channels, we disable them with the following sequence: 1) Wait for an idmac channel eof interrupt. 2) Disable CSI by clearing CSIx_EN in IPU_CONF register. 3) Disable idmac channel by clearing relevant bit in IPU_IDMAC_CH_EN_1 register and other settings. However, currently, we don't do 3) until CSI_PRP_VF(ENC)_MEM's idmac channel being not busy by a while loop check. In case, an external sensor is plugged out from the system or the sensor is somehow broken, we will be unable to get out of that infinite while loop. Since this check is unnecessary(we've already waited for an idmac eof interrupt), this patch simply removes it from the disable routine of CSI_PRP_VF(ENC)_MEM channel. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit 8136a50bd049d68f92604397f256e6067ef2b572)
| | | | | * | ENGR00255371 v4l2 fg overlay:workaround ipu warningLiu Ying2013-04-031-18/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is annoying ipu warning when doing preview by using v4l2 fg overlay component: /unit_tests/mxc_v4l2_overlay.out -iw 320 -ih 240 -ow 1280 -oh 720 -r 0 -fg -t 5 imx-ipuv3 imx-ipuv3.0: IDMAC12's EBA0 is not 8-byte aligned This warning can be seen only when preview size is bigger than 1024*1024(ipu device driver split mode is enabled). After debug, it appears that the unaligned buffer address is caused by input cropping for left strip, and this cropping is triggered by the split mode algrithm. The algrithm is complex, so currently this patch only changes the input pixel format of the ipu task from UYVY to NV12 to workaround this warning. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit aaf14db7afe5ce603857782e96033b259606594b)
| | | | | * | ENGR00253652 ov5640 dvp:Align iq setting with mipi cameraLiu Ying2013-04-031-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the OV FAE, the image quality(iq) setting is from 0x5000 register to 0x3a1f register in the camera's initialization setting. This patch aligns image quality setting of ov5640 dvp camera to ov5640 mipi camera. The registers whose values are changed are 0x5001, 0x5189, 0x518b, 0x518d, 0x518e, 0x518f, 0x5199, 0x519c and 0x519d. This change may improve the image quality of 5M/1M/VGA/QVGA taken pictures in Android according to test team observation. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit c4f92bf59c7e3b397f42e3eb28dfbd93278c8441)
| | | | | * | ENGR00237365: board-mx6q_sabreauto fix mipi-csi2 settingsAdrian Alonso2013-04-031-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Correct mipi-csi2 settings only one data line is used * Add mx6q_mipi_csi1_io_init ipu-csi setting callback use virtual channel 1 and attach it to CSI1 -> IPU0 * Set i2c slave address to 0x52 * Set ipu-csi clko_clk Signed-off-by: Adrian Alonso <aalonso@freescale.com>
| | | | | * | ENGR00254896 mx6: hdmidongle: Fix compile error.Zhang Xiaodong2013-04-031-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After enable PICE in kernel config, building will meet fatal error:linux/wakelock.h: No such file or directory Signed-off-by: Zhang Xiaodong <B39117@freescale.com>
| | | | | * | ENGR00243289 egalax_ts: Add support for single-touchEric Nelson2013-04-032-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for single-touch for the Egalax Touch driver Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com> Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@freescale.com>