]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
11 years agoENGR00174634 MIPI DSI: Add MIPI LCD ID detect and disable clock when no panel.
Wayne Zou [Thu, 16 Feb 2012 07:25:24 +0000 (15:25 +0800)]
ENGR00174634 MIPI DSI: Add MIPI LCD ID detect and disable clock when no panel.

1. Add MIPI LCD ID detection.
2. Disable MIPI clock when no MIPI LCD panel deteced.
3. Add timeout feature for register read/write to improve error handle.

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00174809 hdmi audio oops in hdmi_dma_mmap_copy
Alan Tull [Fri, 17 Feb 2012 21:15:35 +0000 (15:15 -0600)]
ENGR00174809 hdmi audio oops in hdmi_dma_mmap_copy

Runtime dma_area may be invalid after trigger stop command.
This will cause an oops in hdmi_dma_mmap_copy.  To fix this,
disable mmap copying with trigger stop command and also check
the runtime->dma_area before doing hdmi_dma_mmap_copy.

Signed-off-by: Alan Tull <r80115@freescale.com>
11 years agoENGR00173964 make hdmi audio init dependent on hdmi video init
Alan Tull [Fri, 17 Feb 2012 19:34:53 +0000 (13:34 -0600)]
ENGR00173964 make hdmi audio init dependent on hdmi video init

Don't show hdmi as an audio playback device if hdmi isn't
configured on the command line.

Signed-off-by: Alan Tull <r80115@freescale.com>
11 years agoENGR00174747 ASRC:fix spinlock bug
Chen Liangjun [Fri, 17 Feb 2012 06:33:50 +0000 (14:33 +0800)]
ENGR00174747 ASRC:fix spinlock bug

When use clk_enable and clk_disable function, system may enter
sleep. so these 2 funciton can not used surrounding with spin
lock/unlock. And the clk_enable/disable function already keep
the counter of open and close and it is no need to keep the counter
in driver.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
11 years agoENGR00174630 [MX6]Disable GPT serial clock
Anson Huang [Thu, 16 Feb 2012 10:13:38 +0000 (18:13 +0800)]
ENGR00174630 [MX6]Disable GPT serial clock

Currently we use 24MHz clock as GPT's clock
source, serial clock can be disabled, it sourced
from high freq clock, gating it can save ~8mA @VDDSOC.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00174732 ASRC:close core clock if ASRC idle
Chen Liangjun [Thu, 16 Feb 2012 08:15:36 +0000 (16:15 +0800)]
ENGR00174732 ASRC:close core clock if ASRC idle

Close ASRC core clock when ASRC device is not used.

Open ASRC core clock when an ASRC device is open. Close ASRC core
clock when an ASRC device is close.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
11 years agoENGR00174652 i.mx6: explicitly set the LPM mode to run mode during early bootup
Jason Liu [Thu, 16 Feb 2012 07:45:36 +0000 (15:45 +0800)]
ENGR00174652 i.mx6: explicitly set the LPM mode to run mode during early bootup

the reset value of LPM[1:0] in CCM_CLPCR register is b'01, which means
system will enter into wait mode on next assertion of dsm_request signal.

In order to avoid the system unexpectly enter the wait mode during bootup
we need set the LPM mode to run mode explicity during early boot up phase,

Anytime, we want system to enter the wait mode, the sw procedure is:

mxc_cpu_lp_set(LP_MODE) -> set CCM_CLPCR register -> system enter wait mode

This patch also fix linux kernel reboot stress test on i.mx6dl, without this
patch linux kernel reboot test will fail random with error like this:

[   12.091220] Bad mode in interrupt handler detected
[   12.096056] Bad mode in interrupt handler detected
[   12.100851] Internal error: Oops - bad mode: 0 [#1] PREEMPT SMP

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174394 MX6Q_arm2/MX6Q_sabreauto: change ipu_id/disp_id for LDB config.
Wayne Zou [Tue, 14 Feb 2012 01:10:53 +0000 (09:10 +0800)]
ENGR00174394 MX6Q_arm2/MX6Q_sabreauto: change ipu_id/disp_id for LDB config.

MX6Q_arm2/MX6Q_sabreauto:  change ipu_id/disp_id for LDB configuration.
For, LDB_SEP0 mode, the disp_id should be 0, and sec_disp_id should be
1 on MX6Q, since the LDB channel 0 should be connected to IPU DI0.

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00174649 i.mx6dl: clock: set ipu1 clock to 270M, change ldb_di_clk parent
Wayne Zou [Thu, 16 Feb 2012 07:28:11 +0000 (15:28 +0800)]
ENGR00174649 i.mx6dl: clock: set ipu1 clock to 270M, change ldb_di_clk parent

Set ipu1 clock to 270M, source from pll3_pfd_540M for best performance.
And set ldb_di_clk parent to pll2_pfd_352M.

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00174540: i.mx6: anatop_regulator: LDO voltage print not correctly
Jason Liu [Wed, 15 Feb 2012 10:34:41 +0000 (18:34 +0800)]
ENGR00174540: i.mx6: anatop_regulator: LDO voltage print not correctly

The LDO voltage constraint not printed correctly:

print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal
print_constraints: vddsoc: 725 <--> 1300 mV at 700 mV fast normal
print_constraints: vdd2p5: 2000 <--> 2775 mV at 2000 mV fast normal
print_constraints: vdd1p1: 800 <--> 1400 mV at 700 mV fast normal
print_constraints: vdd3p0: 2800 <--> 3150 mV at 2625 mV fast normal

There due to one typo: << in the code, thus will make the LDO constraint print
not correctly, the patch will make the print correctly as the followings:

print_constraints: vddpu: 725 <--> 1300 mV at 1100 mV fast normal
print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal
print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal
print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal
print_constraints: vdd3p0: 2800 <--> 3150 mV at 3000 mV fast normal

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174532 [mx6Q]Change 2D clock to 480M
Larry Li [Wed, 15 Feb 2012 08:59:06 +0000 (16:59 +0800)]
ENGR00174532 [mx6Q]Change 2D clock to 480M

Change GPU2D core clock to 480M and use PLL3 as parent

Signed-off-by: Larry Li <b20787@freescale.com>
11 years agoENGR00174106-3 - EPDC fb: Support EPDC v2.0
Danny Nold [Tue, 14 Feb 2012 23:15:23 +0000 (17:15 -0600)]
ENGR00174106-3 - EPDC fb: Support EPDC v2.0

- Added new register definitions for EPDCv2.0
- Added support for 64 LUTs
- Conditionalized code for EPDC versions 1.0, 2.0, and 2.1
- Support for EPDC auto-waveform selection
- Support for collision test mode
- Support for PxP bypassing
- Support for LUT cancellation
- Support for new PxP limitations
- Support for collision minimization EPDC feature
- Added workaround for collision status bug (can't clear
IRQ before reading collision status for LUTs 16-63)

Signed-off-by: Danny Nold <dannynold@freescale.com>
11 years agoENGR00174106-2 - EPDC fb: Add waveform file for E Ink Pearl panel
Danny Nold [Thu, 9 Feb 2012 03:30:56 +0000 (21:30 -0600)]
ENGR00174106-2 - EPDC fb: Add waveform file for E Ink Pearl panel

- Added waveform firmware file for E Ink Pearl panel

Signed-off-by: Danny Nold <dannynold@freescale.com>
11 years agoENGR00174106-1 - EPDC fb: Support EPDC on MX 6DL/S
Danny Nold [Thu, 9 Feb 2012 03:28:42 +0000 (21:28 -0600)]
ENGR00174106-1 - EPDC fb: Support EPDC on MX 6DL/S

- Added EPDC and EPD PMIC (Maxim 17135) to MX6Q ARM2 board file
- Added EPDC-related IOMUX and GPIO settings
- Added EPDC clock configuration settings to clock file
- Updated config files with EPDC and Maxim 17135 config entries

Signed-off-by: Danny Nold <dannynold@freescale.com>
11 years agoENGR00172274-02 - [MX6]: rework IEEE-1588 in MX6Q Sabre-lite/sd board.
Fugang Duan [Tue, 14 Feb 2012 08:56:26 +0000 (16:56 +0800)]
ENGR00172274-02 - [MX6]: rework IEEE-1588 in MX6Q Sabre-lite/sd board.

- Config GPIO_16 pad to ENET_ANATOP_ETHERNET_REF_OUT.
- IEEE-1588 ts_clk and i2c3 are mutually exclusive, because
  all of them use GPIO_16, so it only for one function work
  at a moment.
- Test result:
TO1.1 IEEE 1588 is convergent in Sabrelite board.

Signed-off-by: Fugang Duan <B38611@freescale.com>
11 years agoENGR00174425: i.mx6: i.mx6dl: clock: set gpu2d_axi clock parent to mmdc0
Jason Liu [Tue, 14 Feb 2012 09:22:03 +0000 (17:22 +0800)]
ENGR00174425: i.mx6: i.mx6dl: clock: set gpu2d_axi clock parent to mmdc0

on i.mx6dl, gpu2d_axi clock is directly connected to mmdc0

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174423-2: i.mx6: clock: code clean up in pfd_set_rate
Jason Liu [Tue, 14 Feb 2012 09:20:20 +0000 (17:20 +0800)]
ENGR00174423-2: i.mx6: clock: code clean up in pfd_set_rate

code clean up by removing the dead code in function pfd_set_rate

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174423-1 i.mx6: cpu_op: code clean up
Jason Liu [Tue, 14 Feb 2012 09:14:40 +0000 (17:14 +0800)]
ENGR00174423-1 i.mx6: cpu_op: code clean up

code clean up by removing the un-expected mfd/mfn/mfi setting

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174381 imx6q-sabreauto: spdif remove tx clock settings
Adrian Alonso [Mon, 13 Feb 2012 20:15:00 +0000 (14:15 -0600)]
ENGR00174381 imx6q-sabreauto: spdif remove tx clock settings

* Sabreauto platform only supports spdif in (Rx)
  Remove unused Tx clock settings

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
11 years agoENGR00174299-3: Add ePxP config option in defconfig
Robby Cai [Mon, 13 Feb 2012 10:21:44 +0000 (18:21 +0800)]
ENGR00174299-3: Add ePxP config option in defconfig

add ePxP config option

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00174299-2: MSL part: add ePxP V2 driver
Robby Cai [Mon, 13 Feb 2012 08:46:52 +0000 (16:46 +0800)]
ENGR00174299-2: MSL part: add ePxP V2 driver

MSL part for ePxP v2 driver

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00174299-1: driver part: Add ePxP v2 DMAENGINE driver
Robby Cai [Mon, 13 Feb 2012 06:36:54 +0000 (14:36 +0800)]
ENGR00174299-1: driver part: Add ePxP v2 DMAENGINE driver

add ePxP v2 DMAENGINE driver

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00174437 ESAI: Add cs42888 build support in Makefile.
Lionel Xu [Tue, 14 Feb 2012 09:31:31 +0000 (17:31 +0800)]
ENGR00174437 ESAI: Add cs42888 build support in Makefile.

Add cs42888 build support.

Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
11 years agoENGR00174399 ASRC: fix mmap fail bug
Chen Liangjun [Tue, 14 Feb 2012 03:23:30 +0000 (11:23 +0800)]
ENGR00174399 ASRC: fix mmap fail bug

If output sample rate is less than input sample rate, it is possible
that the address of output dma buffer 0 can not be divided by page size.
Thus the mmap of output dma in the user space would fail and test
would fail.

let all output dma buffers allocate dma buffer together and we can
assure that the address of output dma buffer 0 can be divided by
page size.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
11 years agoENGR00174395 V4L2 capture: Driver improvement
Liu Ying [Mon, 13 Feb 2012 09:45:17 +0000 (17:45 +0800)]
ENGR00174395 V4L2 capture: Driver improvement

1) CSI module should be disabled first for CSI_MEM channel,
otherwise, the capture channels will hang after restarting
for several times.
2) Disable CSI module correctly for overlay. Move stopping
preview channel operation out of de-select interface.
3) Check cam->overlay_on is true in close function before
stopping preview.
4) Check cam->vf_start_sdc function before calling it.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
11 years agoENGR00174121-3 MX6: add max8903 driver in defconfig.
Zhang Jiejing [Mon, 13 Feb 2012 10:17:20 +0000 (18:17 +0800)]
ENGR00174121-3 MX6: add max8903 driver in defconfig.

enable max8903 in defconfig.

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
11 years agoENGR00174121-2 MX6Q_SABRESD: add battery chip support.
Zhang Jiejing [Mon, 13 Feb 2012 06:34:12 +0000 (14:34 +0800)]
ENGR00174121-2 MX6Q_SABRESD: add battery chip support.

add battery support.

support Charger plug in and detect, DC and USB.
support charging status query.

not support voltage reading due to HW design,
to support this will have more efforts so add this later if needed.

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
11 years agoENGR00174121-1 power: max8903 add support for dcm always high.
Zhang Jiejing [Thu, 9 Feb 2012 09:08:32 +0000 (17:08 +0800)]
ENGR00174121-1 power: max8903 add support for dcm always high.

add this to support MX6Q_SABRESD board hardware design.

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
11 years agoENGR00174296 [MX6_SD]USDHC: iNAND on board failed to work on ddr mode
Ryan QIAN [Tue, 14 Feb 2012 03:10:45 +0000 (11:10 +0800)]
ENGR00174296 [MX6_SD]USDHC: iNAND on board failed to work on ddr mode

- add delay in mmc_switch to improve compatibility.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174323 vpu: Fix system hang issue of multi-instances processing
Sammy He [Tue, 14 Feb 2012 02:09:05 +0000 (10:09 +0800)]
ENGR00174323 vpu: Fix system hang issue of multi-instances processing

VPU registers have been mapped with ioremap() at probe which
L_PTE_XN is 1, and the same physical address must be mapped multiple
times with same type when doing mmap() to user space, so also need
to set it to 1. Otherwise, there may be unexpected result in video
codec.
Here, Use new defined pgprot_noncachedxn for vm_page_prot in mmap().

Signed-off-by: Sammy He <r62914@freescale.com>
11 years agoENGR00174243 MIPI_DSI: mipi dsi panel enable should be after IPU init
Wayne Zou [Fri, 10 Feb 2012 08:42:07 +0000 (16:42 +0800)]
ENGR00174243 MIPI_DSI: mipi dsi panel enable should be after IPU init

MIPI_DSI: mipi dsi panel enable should be after IPU init,
due to ENGR00173962 change in the mxc_ipuv3_fb.c

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00174309:mx6/dl: gpu:enable 2d and 3d
Wu Guoxing [Mon, 13 Feb 2012 04:16:32 +0000 (12:16 +0800)]
ENGR00174309:mx6/dl: gpu:enable 2d and 3d

mx6dl do not have 3d shader core,
and 2d core clk is using 3d shader clock.

Signed-off-by: Wu Guoxing <b39297@freescale.com>
11 years agoENGR00174316 MX6Q ARM2: Fix ov5640_mipi IOMUX incorrect configure
Even Xu [Mon, 13 Feb 2012 07:10:15 +0000 (15:10 +0800)]
ENGR00174316 MX6Q ARM2: Fix ov5640_mipi IOMUX incorrect configure

One type error on ov5640_mipi IOMUX configure, fix it.

Signed-off-by: Even Xu <b21019@freescale.com>
11 years agoENGR00174315 MX6Q max7310 set the default value of PCIE PWR ctrl2 to low
Richard Zhu [Mon, 13 Feb 2012 05:32:38 +0000 (13:32 +0800)]
ENGR00174315 MX6Q max7310 set the default value of PCIE PWR ctrl2 to low

System would be halt, when the default value CTRL_2 is set to
high, change the default value to low.

root cause: System 3V3 would be dragged down to 1.5V for about 4ms.

Signed-off-by: Richard Zhu <r65037@freescale.com>
11 years agoENGR00174310 [MX6Q]USDHC: DDR50 mode for SD3.0 is not supported yet
Ryan QIAN [Mon, 13 Feb 2012 05:57:44 +0000 (13:57 +0800)]
ENGR00174310 [MX6Q]USDHC: DDR50 mode for SD3.0 is not supported yet

- change UHS-I mode selection to try SDR50 first, then DDR50.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174311: [MX6Q]USDHC: SD3.0 card failed to work
Ryan QIAN [Mon, 13 Feb 2012 05:41:29 +0000 (13:41 +0800)]
ENGR00174311: [MX6Q]USDHC: SD3.0 card failed to work

- add auto_tune back on pretuning to improve compatibility.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174307 [mx6 mmc]fix build warning
Tony Lin [Mon, 13 Feb 2012 04:58:39 +0000 (12:58 +0800)]
ENGR00174307 [mx6 mmc]fix build warning

mmc/core/bus.c:189: warning: initialization from incompatible pointer type

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00174301 [mx6dl perfmon]add workaround for TKT055916
Tony Lin [Mon, 13 Feb 2012 03:10:48 +0000 (11:10 +0800)]
ENGR00174301 [mx6dl perfmon]add workaround for TKT055916

bit16 of GPR11 must be set to enable performance monitor

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00174302 [MX6]Clean build warning
Anson Huang [Mon, 13 Feb 2012 03:31:41 +0000 (11:31 +0800)]
ENGR00174302 [MX6]Clean build warning

arch/arm/mach-mx6/clock.c:1749: warning: unused variable 'reg';

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00174295-02:[MX6]USDHC: ddr mode is masked on slots with no 1.8v support.
Ryan QIAN [Mon, 13 Feb 2012 01:38:16 +0000 (09:38 +0800)]
ENGR00174295-02:[MX6]USDHC: ddr mode is masked on slots with no 1.8v support.

- check ocr_avail_sd & MMC_VDD_165_195 before set S18R bit to check whether
the host is support 1.8v support.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174295-01 Revert "ENGR173939 Skip sending S18R on slots with no 1.8V"
Ryan QIAN [Mon, 13 Feb 2012 00:40:44 +0000 (08:40 +0800)]
ENGR00174295-01 Revert "ENGR173939 Skip sending S18R on slots with no 1.8V"

- this patch will mask ddr mode support on the slots support ddr,
but no 1.8v support

This reverts commit 05b7fdd4d6103500f1e531b3e5bd91d97f40ee34.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174242 usb: device: Improve discharge dp operation
Peter Chen [Thu, 9 Feb 2012 09:04:59 +0000 (17:04 +0800)]
ENGR00174242 usb: device: Improve discharge dp operation

The discharge dp function needs to be added at below situation:
- USB cable is disconnected from the PC
- When the usb mode switchs to device mode

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174232 [mx6q perfmon]PDM No. TKT055916: remove workaround for TO1.1
Tony Lin [Fri, 10 Feb 2012 09:06:21 +0000 (17:06 +0800)]
ENGR00174232 [mx6q perfmon]PDM No. TKT055916: remove workaround for TO1.1

remove the workaround
For TO1.0: bit16 of GPR11 must be set to enable perfmon
For TO1.1 and later: bit0 of GPR11 is enable bit for perfmon.
                     set 1/0 to enable/disable perfmon

add workaround for mx6dl

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00170126 mx6q sabresd: add GPIO key device
Xinyu Chen [Fri, 10 Feb 2012 08:05:07 +0000 (16:05 +0800)]
ENGR00170126 mx6q sabresd: add GPIO key device

Add volume up/down and power GPIO key button

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174229-2 imx6_defconf: add sensors devices drivers
Xinyu Chen [Fri, 10 Feb 2012 08:02:47 +0000 (16:02 +0800)]
ENGR00174229-2 imx6_defconf: add sensors devices drivers

Add 3-axis accelerometer (mma8451) driver.
Add Digital Magnetometer (mag3110) driver.
Add Ambient Light sensor (isl29023) driver.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174229-1 mx6q sabresd: add sensors devices
Xinyu Chen [Fri, 10 Feb 2012 07:58:02 +0000 (15:58 +0800)]
ENGR00174229-1 mx6q sabresd: add sensors devices

Add 3-axis accelerometer (mma8451) device.
Add Digital Magnetometer (mag3110) device.
Add Ambient Light sensor (isl29023) device.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174212 isl29023: fix build error of isl29023 light sensor
Xinyu Chen [Fri, 10 Feb 2012 07:55:59 +0000 (15:55 +0800)]
ENGR00174212 isl29023: fix build error of isl29023 light sensor

the platform data and irq set type interface is changed.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174127 mag3110: merge the mag3110 sensor driver
Xinyu Chen [Fri, 10 Feb 2012 07:54:41 +0000 (15:54 +0800)]
ENGR00174127 mag3110: merge the mag3110 sensor driver

Merge mag3110 drivers from sensor team.
The drivers are updated with chip position configure
in driver, export set delay interface to userspace and
use polling mode instead of interrupt mode.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174024 mma8451: update 3-axis accelerometer driver
Xinyu Chen [Fri, 10 Feb 2012 07:50:27 +0000 (15:50 +0800)]
ENGR00174024 mma8451: update 3-axis accelerometer driver

Merge mma8451 drivers from sensor team.
The drivers are updated with chip position configure
in driver, export enable and position interface to userspace.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00173857 MX6Q: add 600M work point
Zhang Jiejing [Wed, 11 Jan 2012 06:20:15 +0000 (14:20 +0800)]
ENGR00173857 MX6Q: add 600M work point

Add a 600M work point for better suit for cpufreq driver.

For current MX6Q clock tree, the most near 600M working point
is 624M, so we use 624M as 600M working point.

We found we have 200/400/800/1G working point is not very
good for cpufreq adjustment, since we don't have a uniform
working point distribution, since the interactive governor
is using cpu usage to adjust frequency, eg, 60% CPU, going
to 600M working point, if above a threshold (%85 default)
will going to max frequency directly.

From the [sheet] , you can see in game case, it will have much
chance in 400M working point, between 400M and 800M working
point, there is a gap, so the 400M will be most used frequency.
we add 600 WP to fill this gap, and make game case have
better experience.

[sheet] http://wiki.freescale.net/download/attachments/
40052424/Compare.xlsx?version=1&modificationDate=1326086907000

Wiki About this:
http://wiki.freescale.net/display/MADAndroid
/i.MX6Q+Performance+and+Power+Optimization

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
11 years agoENGR00173463 i.mx6dl: vpu: disable iram usage
Sammy He [Fri, 10 Feb 2012 07:38:01 +0000 (15:38 +0800)]
ENGR00173463 i.mx6dl: vpu: disable iram usage

Disable vpu iram since mx6dl platform iram isn't enough
for vpu after VDOA/audio used it.

Signed-off-by: Sammy He <r62914@freescale.com>
11 years agoENGR00174224 [MX6Q]: Add new AR6003 driver to 3.0.15 into default config
Ryan QIAN [Fri, 10 Feb 2012 08:02:11 +0000 (16:02 +0800)]
ENGR00174224 [MX6Q]: Add new AR6003 driver to 3.0.15 into default config

- Add cfg80211, Atheros Wifi driver into default kernel config.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174033-2 MX6 PCIE: add pcie RC driver
Richard Zhu [Wed, 8 Feb 2012 06:58:41 +0000 (14:58 +0800)]
ENGR00174033-2 MX6 PCIE: add pcie RC driver

Add PCIE RC driver on MX6 platforms.
Based on iwl4965agn pcie wifi device, verified the following
features.
* Link up is stable
* map the CFG, IO and MEM spaces, and CFG/MEM spaces can accessed

Signed-off-by: Richard Zhu <r65037@freescale.com>
11 years agoENGR00174033-1 MX6 PCIE: add pcie RC driver
Richard Zhu [Wed, 8 Feb 2012 06:57:56 +0000 (14:57 +0800)]
ENGR00174033-1 MX6 PCIE: add pcie RC driver

Add PCIE RC driver on MX6 platforms.
Based on iwl4965agn pcie wifi device, verified the following
features.
* Link up is stable
* map the CFG, IO and MEM spaces, and CFG/MEM spaces can be accessed

Signed-off-by: Richard Zhu <r65037@freescale.com>
11 years agoENGR00174128-3 Revert "Remove the discharge for VBUS and DP -3"
Peter Chen [Fri, 10 Feb 2012 02:39:37 +0000 (10:39 +0800)]
ENGR00174128-3 Revert "Remove the discharge for VBUS and DP -3"

This reverts commit cc9616316bf044382ec422da5a6d4ed007235a3d.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174128-2 Revert "Remove the discharge for VBUS and DP-2"
Peter Chen [Fri, 10 Feb 2012 02:35:32 +0000 (10:35 +0800)]
ENGR00174128-2 Revert "Remove the discharge for VBUS and DP-2"

This reverts commit 4f025d73de4a55077691096eacf60f90c3b9e7af.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174128-1 Revert "Remove the discharge for VBUS and DP-1"
Peter Chen [Thu, 9 Feb 2012 09:38:59 +0000 (17:38 +0800)]
ENGR00174128-1 Revert "Remove the discharge for VBUS and DP-1"

As dp/dm is floating with no usb cable and switch host mode to
device mode situation, it do needs this discharge dp patch
But, discharge vbus doesn't be needed at suspend_irq, so
keep it removing.

This reverts commit 0924b71278650fa3891a8f6ea70f91242ca6e5fd.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174094 i.MX6DL: Change CPU voltages to 1V
Nancy Chen [Thu, 9 Feb 2012 16:27:07 +0000 (10:27 -0600)]
ENGR00174094 i.MX6DL: Change CPU voltages to 1V

Change CPU voltages (0.95V and 0.85V) to 1V
CPU voltage should be above 1.0V for all CPU frequency
since L1 Cache power is connected to VDDARM internally.

Signed-off-by: Nancy Chen <Nancy.Chen@freescale.com>
11 years agoENGR00174152 i.mx6/clock: set ddr clock parent to pll2_mfd_400M
Jason Liu [Thu, 9 Feb 2012 06:09:58 +0000 (14:09 +0800)]
ENGR00174152 i.mx6/clock: set ddr clock parent to pll2_mfd_400M

on i.mx6dl, DDR clock is sourcing from pll2_mfd_400M, so, we need
set DDR/periph_clk parent to pll2_mfd_400M during clock init, which
will setup the clock usecount of pll2_mfd_400M correctly, otherwise,
when all the child device with clock source from pll2_mfd_400M turn
off, the pll2_mfd_400M will turns off automaticly, which will cause
system hang due to DDR clock is off when code is runing on it.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174124: Revert "[USB Host]change the default wakeup value of RH"
Peter Chen [Thu, 9 Feb 2012 09:07:44 +0000 (17:07 +0800)]
ENGR00174124: Revert "[USB Host]change the default wakeup value of RH"

This patch creates two bugs at current i.mx usb framework.
- The high speed device can't be recognized at the first time.
- The usb device can't be recognized after system resume with
usb vbus.

The reason why it creates bugs that it changes (auto)suspend/resume
process for usb core.

This reverts commit e5c4318450e1fe7c61950214e779658c6cea0da7.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174103 [usb hsic] add usb hsic support for mx6dl
Tony LIU [Thu, 9 Feb 2012 02:41:08 +0000 (10:41 +0800)]
ENGR00174103 [usb hsic] add usb hsic support for mx6dl

- change the pad setting

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00174037-3 Add HSIC suspend/resume feature
Tony LIU [Wed, 8 Feb 2012 07:48:10 +0000 (15:48 +0800)]
ENGR00174037-3 Add HSIC suspend/resume feature

head file

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00174037-2 Add HSIC suspend/resume feature
Tony LIU [Wed, 8 Feb 2012 07:42:22 +0000 (15:42 +0800)]
ENGR00174037-2 Add HSIC suspend/resume feature

device part

- implement reset_device interface for HSIC host

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00174037-1 Add HSIC suspend/resume feature
Tony LIU [Wed, 8 Feb 2012 07:33:56 +0000 (15:33 +0800)]
ENGR00174037-1 Add HSIC suspend/resume feature

MSL part

- For HSIC, not connect nor disconnect, then WKCN,
  WKDC must not be set during suspend
- For HSIC, must set bit 21 in host control registry
  after device connected to host controller
- USB PHY 480M clock output must turn on to avoid about
  10ms delay before sending out resume signal
- HW_ANA_MISC clkgate delay must be set to 2 or 3 to
  avoid 24M OSCI not stable issue

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00172342-2 EDID parse audio data blocks
Alan Tull [Wed, 8 Feb 2012 22:40:31 +0000 (16:40 -0600)]
ENGR00172342-2 EDID parse audio data blocks

Add functionality to parse Audio Data Blocks from EDID data to
find out what modes of LPCM are suppored by the HDMI sink device.

The parsed settings are saved in the hdmi mfd.  The HDMI audio driver
will check the settings when the audio stream is opened and will
then apply appropriate constraints.

If we are unable to read from the EDID, then we default to supporting
Basic Audio as defined by the HDMI specification (stereo, 16 bit,
32KHz, 44.1KHz, 48KHz PCM).

Signed-off-by: Alan Tull <r80115@freescale.com>
11 years agoENGR00172342-1 EDID parse audio data blocks
Alan Tull [Thu, 26 Jan 2012 17:37:01 +0000 (11:37 -0600)]
ENGR00172342-1 EDID parse audio data blocks

Add functionality to parse Audio Data Blocks from EDID data to
find out what modes of LPCM are suppored by the HDMI sink device.

The parsed settings are saved in the hdmi mfd.  The HDMI audio driver
will check the settings when the audio stream is opened and will
then apply appropriate constraints.

If we are unable to read from the EDID, then we default to supporting
Basic Audio as defined by the HDMI specification (stereo, 16 bit,
32KHz, 44.1KHz, 48KHz PCM).

Signed-off-by: Alan Tull <r80115@freescale.com>
11 years agoENGR00171353 MIPI_DSI: mipi display blank and unblank fail fixed
Wayne Zou [Thu, 2 Feb 2012 07:10:35 +0000 (15:10 +0800)]
ENGR00171353 MIPI_DSI: mipi display blank and unblank fail fixed

mipi display blank and unblank fail on HW board: MX6Q_ARM2 1G SN 0112
The host processor sends PCLK, HS and VS information to display modules
two frames before sleep-out command is sent.

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00174054-2: imx6_defconfig: enable CONFIG_COMPACTION
Jason Liu [Wed, 8 Feb 2012 08:14:05 +0000 (16:14 +0800)]
ENGR00174054-2: imx6_defconfig: enable CONFIG_COMPACTION

Enable CONFIG_COMPACTION on imx6_defconfig to reduce
the external memory fragementation

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174054-1: i.mx6_defconfig: sync imx6_defconfig with v3.0.15
Jason Liu [Wed, 8 Feb 2012 08:11:23 +0000 (16:11 +0800)]
ENGR00174054-1: i.mx6_defconfig: sync imx6_defconfig with v3.0.15

After upgrade kernel to 3.0.15, the defconfig also need
be updated to sync with the kernel version change

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173962 Added HDMI enable function
Sandor Yu [Wed, 8 Feb 2012 05:45:18 +0000 (13:45 +0800)]
ENGR00173962 Added HDMI enable function

Whenever IPU clock change or gating, the HDMI PHY should reset or config again,
otherwise the HDMI PHY will not work.
It is the root cause for Ubuntu can't show GUI to HDMI device when bootup
and GPU application tutorial4_es20 no output to HDMI device.
Added enable function in mxcfb_set_par() to fix aboved two issue.

Added HDMI initialization check, only one HDMI instanse supported.

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00174039 camera: modify camera drivers
Yuxi Sun [Wed, 8 Feb 2012 07:47:51 +0000 (15:47 +0800)]
ENGR00174039 camera: modify camera drivers

Modify ov3640 ov5640 ov5642 driver according to sensor data structure
change for dual camera switch

Signed-off-by: Yuxi Sun <b36102@freescale.com>
11 years agoENGR00173864 MX6Q ipu capture: add multi camera switch
Yuxi Sun [Mon, 6 Feb 2012 09:29:49 +0000 (17:29 +0800)]
ENGR00173864 MX6Q ipu capture: add multi camera switch

Add IOCTRL command V4L2_CID_MXC_SWITCH_CAM for multi camera switch

Signed-off-by: Yuxi Sun <b36102@freescale.com>
11 years agoENGR00173845 MX6Q SABRESD camera: add camera power down function
Yuxi Sun [Mon, 6 Feb 2012 05:45:05 +0000 (13:45 +0800)]
ENGR00173845 MX6Q SABRESD camera: add camera power down function

Add camera power down function and change default camera to ov5642
for parallel interface camera

Signed-off-by: Yuxi Sun <b36102@freescale.com>
11 years agoENGR00174038 [mx6 mmc]fix build err
Tony Lin [Wed, 8 Feb 2012 07:42:24 +0000 (15:42 +0800)]
ENGR00174038 [mx6 mmc]fix build err

fix build error:
incompatible pointer type

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00174031 [MX6Q] Support AR6003 SDIO wifi on kernel v3.0
Ryan QIAN [Wed, 8 Feb 2012 07:15:55 +0000 (15:15 +0800)]
ENGR00174031 [MX6Q] Support AR6003 SDIO wifi on kernel v3.0

- add macros and struct used in new ath6kl.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoAdd ath6kl cleaned up driver
Kalle Valo [Sun, 17 Jul 2011 21:22:30 +0000 (00:22 +0300)]
Add ath6kl cleaned up driver

Last May we started working on cleaning up ath6kl driver which is
currently in staging. The work has happened in a separate
ath6kl-cleanup tree:

http://git.kernel.org/?p=linux/kernel/git/kvalo/ath6kl-cleanup.git;a=summary

After over 1100 (!) patches we have now reached a state where I would
like to start discussing about pushing the driver to the wireless
trees and replacing the staging driver.

The driver is now a lot smaller and looks like a proper Linux driver.
The size of the driver (measured with simple wc -l) dropped from 49
kLOC to 18 kLOC and the number of the .c and .h files dropped from 107
to 22. Most importantly the number of subdirectories reduced from 26
to zero :)

There are two remaining checkpatch warnings in the driver which we
decided to omit for now:

drivers/net/wireless/ath/ath6kl/debug.c:31:
  WARNING: printk() should include KERN_ facility level
drivers/net/wireless/ath/ath6kl/sdio.c:527:
  WARNING: msleep < 20ms can sleep for up to 20ms;
  see Documentation/timers/timers-howto.txt

The driver has endian annotations for all the hardware specific
structures and there are no sparse errors. Unfortunately I don't have
any big endian hardware to test that right now.

We have been testing the driver both on x86 and arm platforms. The
code is also compiled with sparc and parisc cross compilers.

Notable missing features compared to the current staging driver are:

o HCI over SDIO support
o nl80211 testmode
o firmware logging
o suspend support

Testmode, firmware logging and suspend support will be added soon. HCI
over SDIO support will be more difficult as the HCI driver needs to
share code with the wifi driver. This is something we need to research
more.

Also I want to point out the changes I did for signed endian support.
As I wasn't able to find any support for signed endian annotations I
decided to follow what NTFS has done and added my own. Grep for sle16
and sle32, especially from wmi.h.

Various people have been working on the cleanup, the hall of
fame based on number of patches is:

   543  Vasanthakumar Thiagarajan
   403  Raja Mani
   252  Kalle Valo
    16  Vivek Natarajan
    12  Suraj Sumangala
     3  Joe Perches
     2  Jouni Malinen

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Vivek Natarajan <nataraja@qca.qualcomm.com>
Signed-off-by: Suraj Sumangala <surajs@qca.qualcomm.com>
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
11 years agoENGR00171642 [MX6Q_Lite]Power:suspend and resume stress test failed
Tony Lin [Wed, 8 Feb 2012 06:03:11 +0000 (14:03 +0800)]
ENGR00171642 [MX6Q_Lite]Power:suspend and resume stress test failed

add bus suspend/resume function to prevent SDMMC suspend/resume stess test fail

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00173947-2 MX6Q/ARCH : enable the BBT support to ARM2
Huang Shijie [Tue, 7 Feb 2012 08:38:32 +0000 (16:38 +0800)]
ENGR00173947-2 MX6Q/ARCH : enable the BBT support to ARM2

enable the BBT support to ARM2 board.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173947-1 mtd/gpmi : add BBT support to gpmi nand driver
Huang Shijie [Mon, 30 Jan 2012 03:34:03 +0000 (11:34 +0800)]
ENGR00173947-1 mtd/gpmi : add BBT support to gpmi nand driver

Add a new field to gpmi_nand_platform_data{}.
Make the BBT support to board specific.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00172274-02 - IEEE-1588: rework ts_clk in MX6 ARIK CPU board.
Fugang Duan [Wed, 8 Feb 2012 03:39:25 +0000 (11:39 +0800)]
ENGR00172274-02 - IEEE-1588: rework ts_clk in MX6 ARIK CPU board.

Default use RMII 50MHz clock for ts_clk.
Test result:
Enet work fine at 100/1000Mbps in TO1.1 and Rigel.
IEEE 1588 timestamp is convergent for 25M & 50M & 100MHz
timestamp clock.

Signed-off-by: Fugang Duan <B38611@freescale.com>
11 years agoENGR00172274-01 - [MX6]: rework IEEE-1588 ts_clk in MX6Q ARIK CPU board.
Fugang Duan [Wed, 8 Feb 2012 03:26:58 +0000 (11:26 +0800)]
ENGR00172274-01 - [MX6]: rework IEEE-1588 ts_clk in MX6Q ARIK CPU board.

- Fix GPIO_16 IOMUX config.
- Config GPIO_16 pad to ENET_ANATOP_ETHERNET_REF_OUT.
- IEEE-1588 ts_clk, S/PDIF in and i2c3 are mutually exclusive,
  because all of them use GPIO_16, so it only for one function
  work at a moment.
- Test result:
    Enet work fine at 100/1000Mbps in TO1.1.
IEEE 1588 timestamp is convergent.

Signed-off-by: Fugang Duan <B38611@freescale.com>
11 years agoENGR00174021 MX6Q/ARCH : fix the section mismatch
Huang Shijie [Wed, 8 Feb 2012 03:19:07 +0000 (11:19 +0800)]
ENGR00174021 MX6Q/ARCH : fix the section mismatch

add __init to the gpmi_nand_platform_init() to make this
function store in the init.text section.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173926 Support eMMC ddr mode
Ryan QIAN [Wed, 8 Feb 2012 00:34:03 +0000 (08:34 +0800)]
ENGR00173926 Support eMMC ddr mode

- support 4bit/8bit ddr mode
- change cpu_is_mx6q() || cpu_is_mx6dl() to cpu_is_mx6()

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174018 MX6Q/perfmon : fix the compiling error
Huang Shijie [Wed, 8 Feb 2012 02:16:06 +0000 (10:16 +0800)]
ENGR00174018 MX6Q/perfmon : fix the compiling error

reduce one parameter to fix the built error.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173869-9: i.mx6dl: add the misc drivers support
Jason Liu [Tue, 7 Feb 2012 06:30:42 +0000 (14:30 +0800)]
ENGR00173869-9: i.mx6dl: add the misc drivers support

This patch change is very trivial and simply just add
cpu_is_mx6dl() or using cpu_is_mx6 to replace cpu_is_mx6q

each driver owner will check it and adjust it accordingly later,
such as sdhc etc.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-8: i.mx6: ARM2: add i.mx6dl support
Jason Liu [Tue, 7 Feb 2012 06:26:23 +0000 (14:26 +0800)]
ENGR00173869-8: i.mx6: ARM2: add i.mx6dl support

i.mx6dl and i.mx6q share the same ARM2 board due to the pin-pin
compatible between them.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-7: i.mx6: sdma: add i.mx6dl support
Jason Liu [Tue, 7 Feb 2012 06:13:50 +0000 (14:13 +0800)]
ENGR00173869-7: i.mx6: sdma: add i.mx6dl support

add i.mx6dl support for sdma

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-6: i.mx6: gpio: add the i.mx6dl support
Jason Liu [Tue, 7 Feb 2012 06:12:25 +0000 (14:12 +0800)]
ENGR00173869-6: i.mx6: gpio: add the i.mx6dl support

add the i.mx6dl support for gpio

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-5: i.mx6: don't turn off MMDC clock on i.mx6dl
Jason Liu [Tue, 7 Feb 2012 06:09:59 +0000 (14:09 +0800)]
ENGR00173869-5: i.mx6: don't turn off MMDC clock on i.mx6dl

MMDC clock is from pll2_pfd_400M, thus we can't turn it off

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-4: i.mx6: add the i.mx6dl iomux support
Jason Liu [Tue, 7 Feb 2012 06:06:24 +0000 (14:06 +0800)]
ENGR00173869-4: i.mx6: add the i.mx6dl iomux support

externally, i.mx6dl is pin-pin compatible with i.mx6dq
internally, i.mx6dl is totally different with iomux setting

Checkpatch will throw some warnings in iomux-mx6dl.h file as:
WARNING: line over 80 characters

But for the readable, I intend not to fix these warnings, and linux
upstream also has so many such kind of cases

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-3: i.mx6: add the cpu_is_mx6dl() support
Jason Liu [Tue, 7 Feb 2012 06:00:21 +0000 (14:00 +0800)]
ENGR00173869-3: i.mx6: add the cpu_is_mx6dl() support

In order to support one image for i.mx6q and i.mx6dl, we introduce
the below functions by diff the value reading from ANATOP ID register.
cpu_is_mx6q() and cpu_is_mx6dl()

The layout for the register defines:
               Major  Minor
i.MX6Q1.1:       6300     01
i.MX6Q1.0:       6300     00
i.MX6DL1.0:      6100     00

For the common bits shared across all i.mx6 ports, we can use:
cpu_is_mx6() for it.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-2: i.mx6: add the i.mx6dl memory map and irq definion
Jason Liu [Tue, 7 Feb 2012 05:56:02 +0000 (13:56 +0800)]
ENGR00173869-2: i.mx6: add the i.mx6dl memory map and irq definion

i.mx6dl shares with almost the same memory layout with i.mx6d/q
except it adds some new fetures such as pxp/epdc etc.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-1: i.mx6: cosmetic the code
Jason Liu [Tue, 7 Feb 2012 05:45:51 +0000 (13:45 +0800)]
ENGR00173869-1: i.mx6: cosmetic the code

This is the cosmetic patch for the i.mx6 and make
the prepartion for the coming i.mx6dl support.

Why cosmetic? It's due to the code is a little bit
mess and want to make it clean and clear.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173731-7 MX6Q/GPMI : add gpmi for mx6q
Huang Shijie [Wed, 1 Feb 2012 08:14:55 +0000 (16:14 +0800)]
ENGR00173731-7 MX6Q/GPMI : add gpmi for mx6q

add gpmi support to mx6q for the imx_3.0.15.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-6 MX6Q/DMA : enable the mxs-dma for mx6q
Huang Shijie [Wed, 1 Feb 2012 08:14:01 +0000 (16:14 +0800)]
ENGR00173731-6 MX6Q/DMA : enable the mxs-dma for mx6q

enable the mxs-dma for mx6q.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-5 MX6Q/ARCH :rename gpmi-nfc to gpmi-nand
Huang Shijie [Wed, 1 Feb 2012 08:39:46 +0000 (16:39 +0800)]
ENGR00173731-5 MX6Q/ARCH :rename gpmi-nfc to gpmi-nand

rename the gpmi-nfc to gpmi-nand.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-4 MX6Q/ARCH : add mxs_reset_block()
Huang Shijie [Wed, 1 Feb 2012 08:12:33 +0000 (16:12 +0800)]
ENGR00173731-4 MX6Q/ARCH : add mxs_reset_block()

add mxs_reset_block() for mx6q.
In order to keep the same code as the community, I reduce the
parameters to one.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-3 mxs-dma : rewrite the last parameter of mxs_dma_prep_slave_sg()
Huang Shijie [Wed, 18 Jan 2012 02:51:40 +0000 (10:51 +0800)]
ENGR00173731-3 mxs-dma : rewrite the last parameter of mxs_dma_prep_slave_sg()

[1] Background :
    The GPMI does ECC read page operation with a DMA chain consist of three DMA
    Command Structures. The middle one of the chain is used to enable the BCH,
    and read out the NAND page.

    The WAIT4END(wait for command end) is a comunication signal between
    the GPMI and MXS-DMA.

[2] The current DMA code sets the WAIT4END bit at the last one, such as:

    +-----+               +-----+                      +-----+
    | cmd | ------------> | cmd | ------------------>  | cmd |
    +-----+               +-----+                      +-----+
                                                          ^
                                                          |
                                                          |
                                                     set WAIT4END here

    This chain works fine in the mx23/mx28.

[3] But in the new GPMI version (used in MX50/MX60), the WAIT4END bit should
    be set not only at the last DMA Command Structure,
    but also at the middle one, such as:

    +-----+               +-----+                      +-----+
    | cmd | ------------> | cmd | ------------------>  | cmd |
    +-----+               +-----+                      +-----+
                             ^                            ^
                             |                            |
                             |                            |
                        set WAIT4END here too        set WAIT4END here

    If we do not set WAIT4END, the BCH maybe stalls in "ECC reading page" state.
    In the next ECC write page operation, a DMA-timeout occurs.
    This has been catched in the MX6Q board.

[4] In order to fix the bug, rewrite the last parameter of
    mxs_dma_prep_slave_sg(), and use the dma_ctrl_flags:
    ---------------------------------------------------------
      DMA_PREP_INTERRUPT : append a new DMA Command Structrue.
      DMA_CTRL_ACK       : set the WAIT4END bit for this DMA Command Structure.
    ---------------------------------------------------------

[5] changes to the relative drivers:
    For gpmi-nand driver: use the new flags.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-2 mxs-dma : use the new mxs-dma.h
Huang Shijie [Wed, 1 Feb 2012 07:26:54 +0000 (15:26 +0800)]
ENGR00173731-2 mxs-dma : use the new mxs-dma.h

use the new header : mxs-dma.h.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-1 mxs-dma : rename the dma.h for mxs-dma
Huang Shijie [Mon, 6 Feb 2012 02:47:02 +0000 (10:47 +0800)]
ENGR00173731-1 mxs-dma : rename the dma.h for mxs-dma

Move the header to a more common place.
The mxs dma engine is not only used in mx23/mx28, but also used
in mx50/mx6q.  It will also be used in the future chips.

rename it to mxs-dma.h

Acked-by: Lily Zhang <r58066@freescale.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>