summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2013-08-05wandboard: modify mipi-csi to ipu mux setting3.0-wandboard-org-ts1John Weber
It appears that the default code copied from Freescale routes parallel CSI to IPU1, which is the IPU that we are using for MIPI-CSI. Change the route from parallel to MIPI
2013-08-04wandboard: Fix wand_reserve function for any wandboard versionStephan Rafin
(cherry picked from commit f77f22601e4f4bcbf3e14a48266a4fe3fa56e6e0)
2013-08-03wandboard: fix #ifdef to include line continuationJohn Weber
Fix error included when checkpatch errors were fixed
2013-08-03wandboard: Fix checkpatch errors and warningsJohn Weber
Running scripts/checkpatch.pl -f on baseboard-wand.c results in many formatting errors that are not critical but would cause some problems if we were to upstream this code.
2013-08-03wandboard: Remove hundreds of checkpatch errors warningswolfgar
2013-08-01wandboard: fix mipi-csi exclusion and reorgJohn Weber
Fix a small bug when excluding MIPI from the build configuration. There was a '2' missing at the end of the CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2 var. Also, reorganized the code so that all of the IPU capture, MIPI, and sensor init is called using wand_init_mipi_csi(), which is a stub now when MIPI is deslected.
2013-08-01Adapt video memory limit according to wandboard versionwolfgar
(cherry picked from commit 11a509c6d0958741af52fd85661c08975d1e271d)
2013-08-01Fix compilation when mipi-csi option is disabledwolfgar
2013-07-28Use 2GiB constant as memory limit for GPUwolfgar
(cherry picked from commit 1c1fd4c1721b3c778a583c41daaf6eaef86fc2f4)
2013-07-28Fix build when spdif support is not enabledwolfgar
(cherry picked from commit 65bdd402ba6967518794f3379339fb0a469a976c)
2013-07-28Enable to reserve GPU Memory in higher memory to avoid to shrink DMA zonewolfgar
(cherry picked from commit 26c6d7b49f9d59d43ec166a97eb2cb8d519d1441)
2013-07-28Set iMX6DQ/DL max speed back to 1GHzTapani
Commits 13c1310c and 7361e1f0 attempt to read undocumented memory bits (as of TRM released 2013-05-30) to determine CPU speed rating. This calculation appears to disable 1GHz mode for (some?) iMX6 Solo and DualLite CPUs sold by Freescale as 1GHz parts. This patch reverts the changes and hard-hacks the maximum speed to 1GHz for all iMX6 parts until more information is available. (cherry picked from commit 177c82740df1a817ccbe978ca687246e77a0718b)
2013-07-28Don't touch iMX6 SATA clock on other than iMX6Q.Tapani
The IOMUXC_GPR13 control register has different functionality on iMX6S/iMX6DL (cherry picked from commit 2a118bb2c07da80ad8906387d75c0b083ec9e619)
2013-07-28[RFC PATCH] i2c-imx.c: Add support for I2C bus fault recoveryDavid Jander
In the event that a I2C bus is disturbed, for instance by a slave missing a clock pulse, it is desirable to have a way to get the bus back working other than by power-cycling the whole system. This patch makes it possible to to have a special function in board support code issue an I2C reset, since the IMX peripheral is not capable of doing this, and it needs to be done by bit-banging the corresponding pins in GPIO mode. The reset function needs to check if the bus is hung by checking the state of SDA and issue a reset by pulsing SCL a few times as long as SDA is low. Signed-off-by: David Jander <david@xxxxxxxxxxx> Conflicts: drivers/i2c/busses/i2c-imx.c (cherry picked from commit c1c409c8e9f96e1bd16717733c7456497b42d558)
2013-07-28Fix compile break in arch/arm/plat-mxc/dvfs_core.c when SMP is configured ↵Tapani
without CPU_FREQ Conflicts: arch/arm/plat-mxc/dvfs_core.c (cherry picked from commit 1195fac5d0324c267660b706f5e347e003728d13)
2013-07-28Fix compile break when OTG is used as gadget peripheral controllerTapani
(cherry picked from commit 59d6b4294f5f43c75a9cf4b3cc12bca9bf122e24)
2013-07-17wandboard: update defconfig fileJohn Weber
Update the wandboard defconfig file to reflect a closer alignment to the default configurations of the Freescale reference boards. Here is a high-level summary of changes: - Disable SWAP, as we do not have a swap partition - Enable/disable certain ARM errata workarounds - Enable audio and SGTL5000 - Build all cpufreq modes - Touchscreen and keyboard input support - DRM support converted from built-in to modules - Added some USB gadget support - Added default crypto options and hardware crypto support (FSL CAAM)
2013-07-17wandboard: add mipi csi supportJohn Weber
Adds MIPI-CSI support for Wandboard Upstream-Status: Inappropriate
2013-07-17wandboard: Add wireless support to defconfigJohn Weber
2013-07-17wandboard: Add board supportJohn Weber
2013-07-15ENGR00271136 Fix build break when CONFIG_CLK_DEBUG is disabledMahesh Mahadevan
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>
2013-07-09ARM: 7670/1: fix the memset fixNicolas Pitre
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)
2013-07-09ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) ↵Ivan Djelic
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)
2013-07-05ENGR00269935 Fix the build breakMahesh Mahadevan
Add missing parenthesis Signed-off-by: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
2013-07-05ENGR00269604 Fix the set clock-rate for audio & videoMahesh Mahadevan
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>
2013-06-20ENGR00267089 mx6: Amend the definitions of ANADIG_ANA_MISC2_REGx_STEP_TIME_MASKPeter Chan
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>
2013-06-17ENGR00181680-1 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-09ENGR00266312 mx6dl: add i2c4 bus support for sabresd/auto, arm2 platformsFugang Duan
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>
2013-04-22ENGR00259693 MX6DL/S-Enable routing of ENET interrupt to GPIOrel_imx_3.0.35_4.0.03.0-imx6-3.0.35-4.0.0-ts1Ranjani Vaidyanathan
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>
2013-04-12ENGR00257847-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is activeRanjani Vaidyanathan
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>
2013-04-12ENGR00256417: MLB: can't receive data in wait modeTerry Lv
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>
2013-04-07ENGR00257658 Revert "ENGR00256893-1 MX6Q/DL-Fix Ethernet performance issueJason Liu
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>
2013-04-03ENGR00237365: board-mx6q_sabreauto fix mipi-csi2 settingsAdrian Alonso
* 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>
2013-04-03ENGR00254896 mx6: hdmidongle: Fix compile error.Zhang Xiaodong
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>
2013-04-03ENGR00256315-4 ARM: imx6: weim-nor: set proper PAD valueHuang Shijie
Set the proper pad values for the pins used for address. Signed-off-by: Huang Shijie <b32955@freescale.com>
2013-04-03ENGR00256315-3 ARM: WEIM-NOR: set the proper timingHuang Shijie
These timings are calculated from the M29W256GL7AN6E. Signed-off-by: Huang Shijie <b32955@freescale.com>
2013-04-03ENGR00256315-1 Revert "ENGR00244769-2 [NOR FLASH]-Improve WEIM NOR speed"Huang Shijie
This reverts commit 58209e14383520d58b1bf74e0e9f98f7d05b80c6. After apply these two patches, we can not pass the stress test. So revert these two patches. Signed-off-by: Huang Shijie <b32955@freescale.com>
2013-04-02ENGR00256893-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is activeRanjani Vaidyanathan
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>
2013-03-22ENGR00255484-3 msl: usb: add clock deinit at fail pathPeter Chen
If not, the clocks usage will be mismatch Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-22ENGR00255484-1 msl: usb: add NULL poiner check for fsl_xcvr_opsPeter Chen
Add NULL pointer check for global fsl_xcvr_ops Signed-off-by: Peter Chen <peter.chen@freescale.com>
2013-03-15ENGR00254442 Sabre ARD Include WEIM-NOR on imx6_updater_defconfigAlejandro Sierra
Sabre ARD include WEIM-NOR configuration update to enable higher bandwidth on this interface for mfg tool support (imx6_updater_defconfig). Signed-off-by: Alex Sierra <b18039@freescale.com>
2013-03-15ENGR00253355 ARM: imx6q/imx6dl: Set proper PAD value for WEIM NORHuang Shijie
Set proper pad value for WEIM NOR. Without setting these pad value the weim-nor can not work. Signed-off-by: Huang Shijie <b32955@freescale.com>
2013-03-15ENGR00254457 mx6dl: fix mx6dl TO1.1 can't enter 'mem'Robin Gong
The previous patch ENGR00251630 didn't notice mx6q_revision() will return -EINVAL and will match 'mx6q_revision()<IMX_CHIP_REVISION_1_1' ,then mx6dl TO1.1 will also change suspend state to 'standby'. Signed-off-by: Robin Gong <b38343@freescale.com>
2013-03-14ENGR00254267 MX6DL/MX6SL max freq: Fix max cpu freq at 1G on MX6DL ARDRobin Gong
For MX6DL,align max cpufreq judge by SPEED_GRADING fuse bit with MX6DQ. For MX6SL without the fuse bit, we need add condition check, if found arm_max_freq set by default , change to1G. Else decided by 'arm_freq' setting by cmdline. Signed-off-by: Robin Gong <b38343@freescale.com>
2013-03-13ENGR00253418 IMX6 SabreSD Display: Support LVDS1 and HDMI dual displayWayne Zou
Support LVDS1 and HDMI dual display on SabreSD Rev.C board on i.mx6 By default, LVDS uses LDB_SEP1 mode due to the hardware design. Signed-off-by: Wayne Zou <b36644@freescale.com>
2013-03-12ENGR00169384 imx6q: uart: config and enble uart5Jianzheng Zhou
Config clock,irq,mux pad,data entry, etc to setup uart5. Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
2013-03-12ENGR00252071-3: mxc_v4l2_capture: enable auto detect of ov5642/5640 in sabresdSheng Nan
- enable the auto detect for parallel ov5642 and ov5640 in sabresd board. Signed-off-by: Sheng Nan <b38800@freescale.com>
2013-03-12ENGR00252071-4: mxc_v4l2_capture: enable auto detect of ov5642/5640 in sabreliteSheng Nan
- enable the auto detect for parallel ov5642 and ov5640 in sabrelite board. Signed-off-by: Sheng Nan <b38800@freescale.com>
2013-03-06ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP accessWill Deacon
The vfp_enable function enables access to the VFP co-processor register space (cp10 and cp11) on the current CPU and must be called with preemption disabled. Unfortunately, the vfp_init late initcall does not disable preemption and can lead to an oops during boot if thread migration occurs at the wrong time and we end up attempting to access the FPSID on a CPU with VFP access disabled. This patch fixes the initcall to call vfp_enable from a non-preemptible context on each CPU and adds a BUG_ON(preemptible) to ensure that any similar problems are easily spotted in the future. Cc: stable@vger.kernel.org Reported-by: Hyungwoo Yang <hwoo.yang@gmail.com> Signed-off-by: Hyungwoo Yang <hyungwooy@nvidia.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> [Fix merge conflict] Signed-off-by: Jason Liu <r64343@freescale.com>
2013-03-06ENGR00251209-9 msl: usb: make global variable as drvdataPeter Chen
There is a bug when we try to remove wakeup module twice as g_ctrl is a globle variable, in fact, it is per controller wakeup driver, so the private data should be per device. Signed-off-by: Peter Chen <peter.chen@freescale.com>