]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
11 years agoENGR00220747 V4L2 out: Fix mosaic and flash issue if use VDOA input crop mode
Wayne Zou [Thu, 30 Aug 2012 09:20:06 +0000 (17:20 +0800)]
ENGR00220747 V4L2 out: Fix mosaic and flash issue if use VDOA input crop mode

Fix bug:
A lot of mosaic and flash issue if use VDOA mode when doing video playback
on stream H264_BP13_fc_320x136_29.97_444_AAC_48_130_2_vbr.mp4.

For this special stream, the frame size is 320x144 and the stream includes
input cropping information:320x136. It needs to use 320x144 frame size to
do tiled format conversion instead of 320x128 after alignment.

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00225912 ARM: etm: Add trace buffer support
Frank Li [Wed, 26 Sep 2012 06:05:57 +0000 (14:05 +0800)]
ENGR00225912 ARM: etm: Add trace buffer support

start trace:
echo 1 > echo 1 >/sys/devices/etm.0/trace_running

Notes: The other cores ptm also enabled by above command.

dump trace buffer:
echo v >/proc/sysrq-trigger

Decode trace buffer:
/unit_test/etm --pft-1.1 --sourceid-match 0 < /dev/tracebuf

Notes: this version need connect JTAG to make etm work.

Signed-off-by: Frank Li <Frank.Li@freescale.com>
11 years agoARM: etm: Add sysfs entry to enable return stack if supported
Arve Hjønnevåg [Wed, 4 Apr 2012 01:01:03 +0000 (18:01 -0700)]
ARM: etm: Add sysfs entry to enable return stack if supported

Change-Id: Icb73d60324ad0ddfc3e8a450a28bb3d90c702788
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Add sysfs entry to disable branch_output flag
Arve Hjønnevåg [Tue, 3 Apr 2012 23:15:36 +0000 (16:15 -0700)]
ARM: etm: Add sysfs entry to disable branch_output flag

Change-Id: Ib91208a2c33621aa2d7bd9aa72bfbc670d9d5f1d
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Add sysfs entry to set context-id-size
Arve Hjønnevåg [Tue, 3 Apr 2012 00:20:32 +0000 (17:20 -0700)]
ARM: etm: Add sysfs entry to set context-id-size

Change-Id: I520dfb6e593dac131de8b9b1db77f1c734f18c24
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Add sysfs entry to enable timestamps if supported
Arve Hjønnevåg [Tue, 3 Apr 2012 00:20:32 +0000 (17:20 -0700)]
ARM: etm: Add sysfs entry to enable timestamps if supported

Change-Id: Iff964ba2f6236ed81863e02ec7b3ec9fbc48044a
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Check arch version and disable data tracing for ptm
Arve Hjønnevåg [Tue, 3 Apr 2012 03:18:56 +0000 (20:18 -0700)]
ARM: etm: Check arch version and disable data tracing for ptm

Change-Id: If2cb7928d0711f48348443d882a12416be9c5910
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Wait for etm/ptm(s) to stop before requesting PowerDown
Arve Hjønnevåg [Thu, 29 Mar 2012 04:03:13 +0000 (21:03 -0700)]
ARM: etm: Wait for etm/ptm(s) to stop before requesting PowerDown

When PowerDown was requested at the same time as ProgBit, the
formatter flush command that follows could get stuck.

Change-Id: Iafb665f61f055819e64ca1dcb60398c656f593e4
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Power down etm(s) when tracing is not enabled
Arve Hjønnevåg [Thu, 24 Feb 2011 00:51:58 +0000 (16:51 -0800)]
ARM: etm: Power down etm(s) when tracing is not enabled

Without this change a saw an 18% increase in idle power consumption
on one deivce when trace support is compiled into the kernel. Now
I see the same increase only when tracing.

Change-Id: I21bb5ecf1b7d29ce3790ceeb5323409cc22d5a3b
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Support multiple ETMs/PTMs.
Arve Hjønnevåg [Sat, 5 Feb 2011 06:38:14 +0000 (22:38 -0800)]
ARM: etm: Support multiple ETMs/PTMs.

If more than one ETM or PTM are present, configure all of them
and enable the formatter in the ETB. This allows tracing on dual
core systems (e.g. omap4).

Change-Id: I028657d5cf2bee1b23f193d4387b607953b35888
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Return the entire trace buffer if it is empty after reset
Arve Hjønnevåg [Sat, 5 Feb 2011 06:38:14 +0000 (22:38 -0800)]
ARM: etm: Return the entire trace buffer if it is empty after reset

On some SOCs the read and write pointer are reset when the chip
resets, but the trace buffer content is preserved. If the status
bits indicates that the buffer is empty and we have never started
tracing, assume the buffer is full instead. This can be useful
if the system rebooted from a watchdog reset.

Change-Id: Iaf21c2c329c6059004ee1d38e3dfff66d7d28029
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Add some missing locks and error checks
Arve Hjønnevåg [Tue, 15 Feb 2011 05:09:51 +0000 (21:09 -0800)]
ARM: etm: Add some missing locks and error checks

It is not safe to call etm_lock or etb_lock without holding the
mutex since another thread may also have unlocked the registers.

Also add some missing checks for valid etb_regs in the etm sysfs
entries.

Change-Id: I939f76a6ea7546a8fc0d4ddafa2fd2b6f38103bb
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Configure data tracing
Arve Hjønnevåg [Tue, 1 Feb 2011 02:33:55 +0000 (18:33 -0800)]
ARM: etm: Configure data tracing

The old code enabled data tracing, but did not configure the
range. We now configure it to trace all data addresses by default,
and add a trace_data_range attribute to change the range or disable
data tracing.

Change-Id: I9d04e3e1ea0d0b4d4d5bcb93b1b042938ad738b2
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Allow range selection
Arve Hjønnevåg [Sat, 29 Jan 2011 07:44:43 +0000 (23:44 -0800)]
ARM: etm: Allow range selection

Trace kernel text segment by default as before, allow tracing of other
ranges by writing a range to /sys/devices/etm/trace_range, or to trace
everything by writing 0 0.

Change-Id: Ibb734ca820fedf79560b20536247f1e1700cdc71
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Don't try to clear the buffer full status after reading the buffer
Arve Hjønnevåg [Tue, 1 Feb 2011 05:34:47 +0000 (21:34 -0800)]
ARM: etm: Don't try to clear the buffer full status after reading the buffer

If the write address was at the end of the buffer, toggling the trace
capture bit would set the RAM-full status instead of clearing it, and
if any of the stop bits in the formatter is set toggling the trace
capture bit may not do anything.

Instead use the read position to find out if the data has already
been returned.

This also fixes the read function so it works when the trace buffer is
larger than the buffer passed in from user space. The old version
would reset the trace buffer pointers after every read, so the second
call to read would always return 0.

Change-Id: I75256abe2556adfd66fd5963e46f9e84ae4645e1
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Don't limit tracing to only non-secure code.
Arve Hjønnevåg [Sat, 29 Jan 2011 07:33:11 +0000 (23:33 -0800)]
ARM: etm: Don't limit tracing to only non-secure code.

On some systems kernel code is considered secure, and this code
already limits tracing to the kernel text segment which results
in no trace data.

Change-Id: I098a0753e874859446d098e1ee209f67fc13cd5d
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoARM: etm: Don't require clock control
Arve Hjønnevåg [Sat, 29 Jan 2011 07:12:32 +0000 (23:12 -0800)]
ARM: etm: Don't require clock control

If clk_get fail, assume the etb does not need a separate clock.

Change-Id: Ia0bf3f5391e94a60ea45876aa7afc8a88a7ec3bf
Signed-off-by: Arve Hjønnevåg <arve@android.com>
11 years agoENGR00225131-06 MX6 PM: clear stop_mode_config after system resume
make shi [Thu, 20 Sep 2012 09:20:14 +0000 (17:20 +0800)]
ENGR00225131-06 MX6 PM: clear stop_mode_config after system resume

- If stop_mode_config is set as 1, the USB otg vbus wakeup system can be
  supported
- After system resume, need clear stop_mode_config bit to keep the 1P1
  default off

Signed-off-by: make shi <b15407@freescale.com>
11 years agoENGR00225131-05 MX6 USB: set stop_mode_config bit if wake up is enabled
make shi [Thu, 20 Sep 2012 09:15:26 +0000 (17:15 +0800)]
ENGR00225131-05 MX6 USB: set stop_mode_config bit if wake up is enabled

IC designer had clarified that 1P1 can be turned off if we do not need support
remote wakeup. So If there is no requirement for USB remote wake up, the 1P1
can be turn off. USB driver will support dynamically turn on(off) 1P1 during
system suspend. 1P1 will be turn on depend on USB wakeup is enabled.

- Set stop_mode_config bit if USB host need support USB remote wake up
- Set stop_mode_config bit if USB device need support USB DP/DM wake
  up system

Signed-off-by: make shi <b15407@freescale.com>
11 years agoENGR00225131-04 MX6 USB: implement platform_phy_power_on for USB otg and h1
make shi [Thu, 20 Sep 2012 09:12:47 +0000 (17:12 +0800)]
ENGR00225131-04 MX6 USB: implement platform_phy_power_on for USB otg and h1

IC designer had clarified that 1P1 can be turned off if we do not need support
remote wakeup. So If there is no requirement for USB remote wake up, the 1P1
can be turn off. USB driver will support dynamically turn on(off) 1P1 during
system suspend. 1P1 will be turn on depend on USB wakeup is enabled.

Set stop_mode_config bit to turn on 1P1 during system suspend to support USB
host remote wake up or USB device DP/DM wake up.

Signed-off-by: make shi <b15407@freescale.com>
11 years agoENGR00225131-03 MX6 USB: add platform_phy_power_on platform data in head file
make shi [Thu, 20 Sep 2012 09:10:20 +0000 (17:10 +0800)]
ENGR00225131-03 MX6 USB: add platform_phy_power_on platform data in head file

IC designer had clarified that 1P1 can be turned off if we do not need support
remote wakeup. So If there is no requirement for USB remote wake up, the 1P1
can be turn off. USB driver will support dynamically turn on(off) 1P1 during
system suspend. 1P1 will be turn on depend on USB wakeup is enabled.

add platform_1p1_on platform data in head file.

Signed-off-by: make shi <b15407@freescale.com>
11 years agoENGR00225131-02 USB: revert ENGR00221317-02 stop_mode_config patch head file
make shi [Thu, 20 Sep 2012 07:14:58 +0000 (15:14 +0800)]
ENGR00225131-02 USB: revert ENGR00221317-02 stop_mode_config patch head file

IC designer had clarified that 1P1 can be turned off if we do not need support
remote wakeup. So If there is no requirement for USB remote wake up, the 1P1
can be turn off. USB driver will support dynamically turn on(off) 1P1 during
system suspend. 1P1 will be turn on depend on USB wakeup is enabled.

This reverts commit cc2e51368f2620a37370746eaf35f0b70674b31e.

Signed-off-by: make shi <b15407@freescale.com>
11 years agoENGR00225131-01 USB: revert ENGR00221317-02 about set stop_mode_config patch
make shi [Thu, 20 Sep 2012 07:11:46 +0000 (15:11 +0800)]
ENGR00225131-01 USB: revert ENGR00221317-02 about set stop_mode_config patch

IC designer had clarified that 1P1 can be turned off if we do not need support
remote wakeup. So If there is no requirement for USB remote wake up, the 1P1
can be turn off. USB driver will support dynamically turn on(off) 1P1 during
system suspend. 1P1 will be turn on depend on USB wakeup is enabled.

This reverts commit c6f69925f9d1f39ccc8c6fcc583122fcf03c105c.

Signed-off-by: make shi <b15407@freescale.com>
11 years agoENGR00225594 mmc: sdhci: remove calling enable clk in interrupt context
Ryan QIAN [Mon, 24 Sep 2012 07:25:36 +0000 (15:25 +0800)]
ENGR00225594 mmc: sdhci: remove calling enable clk in interrupt context

There's kernel warning without when insmod WiFi module as follows:

------------[ cut here ]------------
WARNING: at kernel/irq/handle.c:130 handle_irq_event_percpu+0x164/0x180()
irq 55 handler sdhci_irq+0x0/0x988 enabled interrupts
Modules linked in: ar6000
[<800471dc>] (unwind_backtrace+0x0/0xfc) from
[<80072fd0>] (warn_slowpath_common+0x4c/0x64)
[<80072fd0>] (warn_slowpath_common+0x4c/0x64) from
[<8007307c>] (warn_slowpath_fmt+0x30/0x40)
[<8007307c>] (warn_slowpath_fmt+0x30/0x40) from
[<800a9f54>] (handle_irq_event_percpu+0x164/0x180)
[<800a9f54>] (handle_irq_event_percpu+0x164/0x180) from
[<800a9fac>] (handle_irq_event+0x3c/0x5c)
[<800a9fac>] (handle_irq_event+0x3c/0x5c) from
[<800ac2a8>] (handle_fasteoi_irq+0x98/0x148)
[<800ac2a8>] (handle_fasteoi_irq+0x98/0x148) from
[<800a9a2c>] (generic_handle_irq+0x2c/0x38)
[<800a9a2c>] (generic_handle_irq+0x2c/0x38) from
[<80041f60>] (handle_IRQ+0x4c/0xb8)
[<80041f60>] (handle_IRQ+0x4c/0xb8) from
[<80040f8c>] (__irq_svc+0x4c/0xe8)
[<80040f8c>] (__irq_svc+0x4c/0xe8) from
[<800420e4>] (default_idle+0x24/0x28)
[<800420e4>] (default_idle+0x24/0x28) from
[<80042730>] (cpu_idle+0xbc/0xfc)
[<80042730>] (cpu_idle+0xbc/0xfc) from
[<80008904>] (start_kernel+0x248/0x288)
[<80008904>] (start_kernel+0x248/0x288) from
[<10008040>] (0x10008040)
---[ end trace 95ab51b95e0e8e5f ]---

it is caused by calling cancel_delayed_work_sync in sdhci_enable_clk, since
it will call spin_unlock_irq which will possibly enable irq in interrupt
context. if sdhci_enable_clk is called in interrupt context this warning
will be shown.

sdhci_enable_clk will be called in interrupt context in the following path:
sdhci_irq->mmc_signal_sdio_irq->mmc_signal_sdio_irq->sdhci_enable_sdio_irq->...
     |____________________interrupt context____________________________________

fix:
Remove calling sdhci_enable_clk in sdhci_enable_sdio_irq. For sdio cards, sdhci
clk will not be disabled, so it is save to remove it.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
Acked-by: Dong Aisheng <b29396@freescale.com>
11 years agoENGR00225534-2 mmc: sdhci: using cancel_work_sync instread of cancel_delayed_work
Dong Aisheng [Fri, 21 Sep 2012 10:33:06 +0000 (18:33 +0800)]
ENGR00225534-2 mmc: sdhci: using cancel_work_sync instread of cancel_delayed_work

We recently met an rarely happened sychronization issue which can cause
mmc timeout during transfer as follows:
[ OK ]onfiguring network interfaces...
[ OK ]ctivating swap...
mmc0: Timeout waiting for hardware interrupt.
mmc0: Timeout waiting for hardware interrupt.
mmc0: Timeout waiting for hardware interrupt.
mmcblk0: error -110 sending status command, retrying
mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0xd00
mmcblk0: error -110 transferring data, sector 9981952, nr 16, cmd response 0x900, card status 0xc00
end_request: I/O error, dev mmcblk0, sector 9981952

The root cause is that host uses cancel_delayed_work to cancel the delayed
clock disable work to avoid clock to be disabled if a new cmd
transfer request happens.
However, the work callback may already be running during the excution
of cancel_delayed_work which can not be cancelled and causes
the clock probably still to be disabled during cmd transfer,
then cmd timeout happens.

Using cancel_work_sync instead to wait for the completion of clock disable
first then we can make sure the clock can not be disabled during the cmd
transfer.

BTW, although the original code checks if in interrupt context, however,
it's still not interrupt context safe due to the unsafe platform_clk_ctrl,
so it's ok to directly use cancel_work_sync here and sdhci_enable_clk is
simply not allowed to be called in irq context.

Acked-by: Ryan QIAN <b32804@freescale.com>
Signed-off-by: Dong Aisheng <b29396@freescale.com>
11 years agoENGR00225534-1 mmc: core: move ->request() call from atomic context
Adrian Hunter [Fri, 21 Sep 2012 10:28:42 +0000 (18:28 +0800)]
ENGR00225534-1 mmc: core: move ->request() call from atomic context

mmc_request_done() is sometimes called from interrupt or other atomic
context.  Mostly all mmc_request_done() does is complete(), however it
contains code to retry on error, which uses ->request().  As the error
path is certainly not performance critical, this may be moved to the
waiting function mmc_wait_for_req_done().

This allows ->request() to use runtime PM get_sync() and guarantee it
is never in an atomic context.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ulf Hansson <ulf.hansson@stericsson.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Acked-by: Ryan QIAN <b32804@freescale.com>
Signed-off-by: Dong Aisheng <b29396@freescale.com>
11 years agoENGR00220342 mmc: sdhci:reform fix for dat1 glitch causes system panic
Jianzheng Zhou [Mon, 24 Sep 2012 01:50:59 +0000 (09:50 +0800)]
ENGR00220342 mmc: sdhci:reform fix for dat1 glitch causes system panic

refix this bug, sdhci_init should be done before request_irq to
clear those wild interrupts.
Former fix commit is 4e3a2b40a16b8d5065b680ab86df288515cdea9c.

Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
11 years agoENGR00224476 pgc: fix display power gating causes PxP processing timeout
Robby Cai [Wed, 12 Sep 2012 06:32:34 +0000 (14:32 +0800)]
ENGR00224476 pgc: fix display power gating causes PxP processing timeout

The root-cause is PxP need the clock to be on for synchronous reset.
This patch turned on PXP axi clock, and EPDC/LCDIF pix clock, and
EPDC/LCDIF axi clock before power up. The driver codes can guarantee
the clock setting be restored to the one before suspend.

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00223533 - FEC : fix net watchdog timeout due not refreshing TX timers
Fugang Duan [Tue, 18 Sep 2012 08:27:43 +0000 (16:27 +0800)]
ENGR00223533 - FEC : fix net watchdog timeout due not refreshing TX timers

When do overnight gpu stress test throught nfs, kernel dump as below:

------------[ cut here ]------------
WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0x284/0x2a8()
NETDEV WATCHDOG: eth0 (fec): transmit queue 0 timed out
Modules linked in: galcore imx2_wd_test [last unloaded: galcore]
[<80045854>] (unwind_backtrace+0x0/0xf8) from [<80070c2c>]
(warn_slowpath_common+0x4c/0x64)
<snip>

In sometime, ethernet cannot recover after watchdog timeout which
results in nfs no responding and system hang on.

The patch fixes the way that ->trans_start is refreshed to avoid watchdog
timeout during ethernet status change (such as speed, duplex), and re-init
fec to recover ethernet after watchdog timeout.

Signed-off-by: Fugang Duan <B38611@freescale.com>
11 years agoENGR00224700 IPUv3 FB:Support RGB24/RGB32/ABGR32 pixel formats
Liu Ying [Sat, 15 Sep 2012 16:06:43 +0000 (00:06 +0800)]
ENGR00224700 IPUv3 FB:Support RGB24/RGB32/ABGR32 pixel formats

Users may call FBIOPUT_VSCREENINFO framebuffer ioctrl to set
a framebuffer's pixel format by specifying bits_per_pixel field
and red/green/blue/transp fields of struct fb_var_screeninfo.
Users may also know a framebuffer's pixel format at which it is
working by calling FBIOGET_VSCREENINFO framebuffer ioctrl, red/
green/blue/transp bitfields of struct fb_var_screeninfo tell the
exact offset and length of each color component in a pixel. This
patch supports RGB24/RGB32/ABGR32 pixel formats with these 2 ioctrls.
To change the default pixel format when initializeing a framebuffer
at the first time, users may add 'fbpix=' option in framebuffer
kernel command line option, for example, 'video=mxcfb0:fbpix=ABGR32'
makes fb0's default pixel format be ABGR32. 'bpp=' option cannot
overwrite 'fbpix=' option, for example, 'video=mxfb0:fbpix=RGB24,
bpp=16' still makes fb0 work at RGB24 by default. To be back
compatible, this patch doesn't change the default pixel formats
(BGR24/BGR32/RGB565) for each bits_per_pixel, if users don't
provide valid 'fbpix=' option.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
11 years agoENGR00224910 IPUv3 fb:Correct logic to check BGR24 for if= option
Liu Ying [Wed, 19 Sep 2012 02:26:25 +0000 (10:26 +0800)]
ENGR00224910 IPUv3 fb:Correct logic to check BGR24 for if= option

This patch corrects the logic to check BGR24 pixel format for
'if=' option in kernel bootup command line of framebuffer.
After applying the patch, users may use 'if=BGR24' to specify
the display data format to be BGR24. For example, 'video=mxcfb0:
dev=lcd,LCD_VIDEO_NAME,if=BGR24' makes IPUv3 output BGR24 data
to fb0's lcd panel.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 7ab85674f63eb1388e44a61e17891f0e283c409a)

11 years agoENGR00224696 mx6:Improve DSM power stability
Anson Huang [Tue, 18 Sep 2012 04:24:29 +0000 (12:24 +0800)]
ENGR00224696 mx6:Improve DSM power stability

1. If weak 2P5 is not enabled in DSM, need to enable pull down
function to make sure its voltage is 0V;

2. WB_COUNT need to set to a higher value instead of the reset
value to make sure it function normally.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00221594 Add Dithering algorism support into EPDC driver
Daiyu Ko [Wed, 19 Sep 2012 16:15:43 +0000 (11:15 -0500)]
ENGR00221594 Add Dithering algorism support into EPDC driver

Adding Atkinson's dithering alorism implementation into our EPDC
Driver with Y8->Y1 and Y8->Y4 supported. Two EPDC flags have been
added to support the features. EPDC_FLAG_USE_DITHERING_Y1 and
EPDC_FLAG_USE_DITHERING_Y4.

Signed-off-by: Daiyu Ko <dko@freescale.com>
11 years agoENGR00219882 wm8962: avoid the digital volume changed by user
Gary Zhang [Thu, 13 Sep 2012 09:33:41 +0000 (17:33 +0800)]
ENGR00219882 wm8962: avoid the digital volume changed by user

Wolfson suggests that digital volume should not be changed by user
to avoid affecting SNR and dynamic range, and user should adjust
analog volume.

Signed-off-by: Gary Zhang <b13634@freescale.com>
11 years agoENGR00224938 HDMI audio: clear HDMI dma done bit before start
Chen Liangjun [Wed, 19 Sep 2012 05:30:27 +0000 (13:30 +0800)]
ENGR00224938 HDMI audio: clear HDMI dma done bit before start

HDMI hardware fix: signal of HDMI DMA DONE is hard connected to SDMA
event line. SDMA event is triggered by edge. If the HDMI DMA done is
already 1 before start, there would be no SDMA event being trigged after
HDMI generates another HDMI DONE signal.

In this patch, clear HDMI DONE bit before start HDMI audio DMA.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
11 years agoENGR00224513 V4L2 output: Avoid fb blank/unblank when open/close video device
Wayne Zou [Mon, 17 Sep 2012 07:48:15 +0000 (15:48 +0800)]
ENGR00224513 V4L2 output: Avoid fb blank/unblank when open/close video device

Initialize release variable to avoid fb blank/unblank
when open/close video device only.

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00224886 board-mx6q-sabreauto: remove camera control lines
Adrian Alonso [Thu, 13 Sep 2012 21:43:10 +0000 (16:43 -0500)]
ENGR00224886 board-mx6q-sabreauto: remove camera control lines

* Remove camera control lines, this gpio control lines are used by
  other periherals
* GPIO_4_5 correspond to RGMII_INT
* GPIO_3_24 correspond to CSI0_DAT5 parallel tv-in

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
11 years agoENGR00224467 GPU driver debug version build failure fix
Loren Huang [Mon, 17 Sep 2012 09:31:28 +0000 (17:31 +0800)]
ENGR00224467 GPU driver debug version build failure fix

-Fix a value name typo in gc_hal_kernel_hardware.c

Signed-off-by: Loren Huang <b02279@freescale.com>
11 years agoENGR00224275-2 board-mx6q-sabreauto: remove unsupported ov5640 camera
Adrian Alonso [Thu, 13 Sep 2012 16:26:56 +0000 (11:26 -0500)]
ENGR00224275-2 board-mx6q-sabreauto: remove unsupported ov5640 camera

* Remove unsupported camera device ov5640, there is no
  hardware module available for sabreauto target board.
  No mechanical connector compability with existing capture
  sensor.

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
11 years agoENGR00224275-1 board-mx6q-sabreauto: remove unsupported ov3640 camera
Adrian Alonso [Tue, 11 Sep 2012 23:25:42 +0000 (18:25 -0500)]
ENGR00224275-1 board-mx6q-sabreauto: remove unsupported ov3640 camera

* Remove unsupported camera device ov3640, there is no
  hardware module available for sabreauto target board.
* No mechanical connector compability with existing capture
  sensors.

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
11 years agoperf tools: Fix build against newer glibc
Josh Boyer [Thu, 18 Aug 2011 11:37:21 +0000 (07:37 -0400)]
perf tools: Fix build against newer glibc

Upstream glibc commit 295e904 added a definition for __attribute_const__
to cdefs.h.  This causes the following error when building perf:

util/include/linux/compiler.h:8:0: error: "__attribute_const__"
redefined [-Werror] /usr/include/sys/cdefs.h:226:0: note: this is the
location of the previous definition

Wrap __attribute_const__ in #ifndef as we do for __always_inline.

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20110818113720.GL2227@zod.bos.redhat.com
Signed-off-by: Josh Boyer <jwboyer@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
11 years agoENGR00224338 mx6:gpu:Make gpu as buildin driver by default
Loren Huang [Fri, 14 Sep 2012 08:08:20 +0000 (16:08 +0800)]
ENGR00224338 mx6:gpu:Make gpu as buildin driver by default

Make gpu as build-in driver to simplify gpu test and usage.

Signed-off-by: Loren Huang <b02279@freescale.com>
11 years agoENGR00224137 mx6 : restore VDD_PU in resume with the old value before suspend
Robin Gong [Thu, 13 Sep 2012 06:19:41 +0000 (14:19 +0800)]
ENGR00224137 mx6 : restore VDD_PU in resume with the old value before suspend

Before, VDD_PU regulator will be set 1.1V for ever, but now VDD_PU track with
VDD_ARM, so we can not restore with 1.1V when system resume back.We need save
the old value set when power off PU in suspend flow, and then restore it in
resume flow.
Signed-off-by: Robin Gong <B38343@freescale.com>
11 years agoENGR00224245 HDMI AUDIO: stop/start PCM while unplug,blank/plug, unblank
Chen Liangjun [Thu, 13 Sep 2012 13:28:11 +0000 (21:28 +0800)]
ENGR00224245 HDMI AUDIO: stop/start PCM while unplug,blank/plug, unblank

When unplug, blank happens, HDMI audio can't play properly. So in
driver, audio pcm would be disconnected when event above happens.
However, pulse audio can't process disconnect event properly and if an
blank or unplug event happens, HDMI sink would lost and can't be back
again.

In this patch, instead of disconnecting audio PCM stream, triggering
stop audio pcm while unplug and blank, triggering start again while plug
and unblank if the audio pcm is triggerd stop in the unplug/blank event.
Signed-off-by: Chen Liangjun <b36089@freescale.com>
11 years agoENGR00223349-4 gpmi: enable the EDO support for mx6q
Huang Shijie [Tue, 28 Aug 2012 05:53:49 +0000 (13:53 +0800)]
ENGR00223349-4 gpmi: enable the EDO support for mx6q

Enable the EDO mode for mx6q.

The following is the test result with the same nand chip (Micron MT29F32G08QAA)
in mode 4:

The test result without enable the EDO mode:
=================================================
mtd_speedtest: MTD device: 2
mtd_speedtest: MTD device size 209715200, eraseblock size 524288,
page size 4096, count of eraseblocks 400,
pages per eraseblock 128, OOB size 218
mtd_speedtest: scanned 400 eraseblocks, 6 are bad
mtd_speedtest: testing eraseblock write speed
mtd_speedtest: eraseblock write speed is 1945 KiB/s
mtd_speedtest: testing eraseblock read speed
mtd_speedtest: eraseblock read speed is 3384 KiB/s
mtd_speedtest: testing page write speed
mtd_speedtest: page write speed is 1841 KiB/s
mtd_speedtest: testing page read speed
mtd_speedtest: page read speed is 3136 KiB/s
mtd_speedtest: testing 2 page write speed
mtd_speedtest: 2 page write speed is 1853 KiB/s
mtd_speedtest: testing 2 page read speed
mtd_speedtest: 2 page read speed is 3164 KiB/s
mtd_speedtest: Testing erase speed
mtd_speedtest: erase speed is 145441 KiB/s
mtd_speedtest: Testing 2x multi-block erase speed
mtd_speedtest: 2x multi-block erase speed is 146711 KiB/s
mtd_speedtest: Testing 4x multi-block erase speed
mtd_speedtest: 4x multi-block erase speed is 147139 KiB/s
mtd_speedtest: Testing 8x multi-block erase speed
mtd_speedtest: 8x multi-block erase speed is 147786 KiB/s
mtd_speedtest: Testing 16x multi-block erase speed
mtd_speedtest: 16x multi-block erase speed is 147569 KiB/s
mtd_speedtest: Testing 32x multi-block erase speed
mtd_speedtest: 32x multi-block erase speed is 147677 KiB/s
mtd_speedtest: Testing 64x multi-block erase speed
mtd_speedtest: 64x multi-block erase speed is 147677 KiB/s
mtd_speedtest: finished
=================================================

The test result enable the EDO mode:
=================================================
mtd_speedtest: MTD device: 2
mtd_speedtest: MTD device size 209715200, eraseblock size 524288,
page size 4096, count of eraseblocks 400,
pages per eraseblock 128, OOB size 218
mtd_speedtest: scanned 400 eraseblocks, 6 are bad
mtd_speedtest: testing eraseblock write speed
mtd_speedtest: eraseblock write speed is 3733 KiB/s
mtd_speedtest: testing eraseblock read speed
mtd_speedtest: eraseblock read speed is 20413 KiB/s
mtd_speedtest: testing page write speed
mtd_speedtest: page write speed is 3603 KiB/s
mtd_speedtest: testing page read speed
mtd_speedtest: page read speed is 18966 KiB/s
mtd_speedtest: testing 2 page write speed
mtd_speedtest: 2 page write speed is 3668 KiB/s
mtd_speedtest: testing 2 page read speed
mtd_speedtest: 2 page read speed is 19686 KiB/s
mtd_speedtest: Testing erase speed
mtd_speedtest: erase speed is 146604 KiB/s
mtd_speedtest: Testing 2x multi-block erase speed
mtd_speedtest: 2x multi-block erase speed is 147354 KiB/s
mtd_speedtest: Testing 4x multi-block erase speed
mtd_speedtest: 4x multi-block erase speed is 147677 KiB/s
mtd_speedtest: Testing 8x multi-block erase speed
mtd_speedtest: 8x multi-block erase speed is 148002 KiB/s
mtd_speedtest: Testing 16x multi-block erase speed
mtd_speedtest: 16x multi-block erase speed is 147894 KiB/s
mtd_speedtest: Testing 32x multi-block erase speed
mtd_speedtest: 32x multi-block erase speed is 148329 KiB/s
mtd_speedtest: Testing 64x multi-block erase speed
mtd_speedtest: 64x multi-block erase speed is 148220 KiB/s
mtd_speedtest: finished
=================================================

We can see that there is 6 times performance improvement for reading
when we enable the EDO mode.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00223349-3 gpmi: add a new field for HW_GPMI_CTRL1
Huang Shijie [Fri, 7 Sep 2012 06:37:47 +0000 (14:37 +0800)]
ENGR00223349-3 gpmi: add a new field for HW_GPMI_CTRL1

add the WRN_DLY_SEL field for HW_GPMI_CTRL1.
This field is used as delay for gpmi write strobe.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00223349-2 gpmi: do not get the clock frequency in gpmi_begin()
Huang Shijie [Fri, 7 Sep 2012 05:00:58 +0000 (13:00 +0800)]
ENGR00223349-2 gpmi: do not get the clock frequency in gpmi_begin()

The current code will gets the clock frequency which is used by
gpmi_nfc_compute_hardware_timing(). It makes the code a little mess.

So move the `get clock frequency` code to the
gpmi_nfc_compute_hardware_timing() itself. This makes the code tidy
and clean.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00223349-1 gpmi: add a new field for HW_GPMI_TIMING1
Huang Shijie [Fri, 7 Sep 2012 02:51:01 +0000 (10:51 +0800)]
ENGR00223349-1 gpmi: add a new field for HW_GPMI_TIMING1

The gpmi_nfc_compute_hardware_timing{} should contains all the
fields setting for gpmi timing registers. It already contains the fields
for HW_GPMI_TIMING0 and HW_GPMI_CTRL1.

So it is better to add a new field setting for HW_GPMI_TIMING1 in
this data structure. This makes the code more clear in logic.

This patch also changs some comments to make the code more readable.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00223816 HDMI AUDIO: fix kernel panic cause by accessing unavailable memory
Chen Liangjun [Wed, 12 Sep 2012 10:34:28 +0000 (18:34 +0800)]
ENGR00223816 HDMI AUDIO: fix kernel panic cause by accessing unavailable memory

HDMI audio driver is responsible for add IEC header into audio sample.
In HDMI audio driver, a variable named rtd->appl_bytes is maintained to
stand for how many audio sample have already processed. appl_bytes
stands for how many audio sample the user space have already feed into
kernel driver. So we use the connt = appl_bytes - rtd->appl_bytes to
decide how many data need to be processed. And the processed data would
be write into an preallocated buffer called hw_buf in driver.

When doing seek operation, the appl_bytes changes in an wide range. So
it is possible that the count value is far larger than the size of
hw_buf and the memory access un-existed address error would happens.

In this patch, Add check operation for count to avoid kernel panic.

Kernel panic log:
seeking: 0:00:18.000000000/0:03:0Unable to handle kernel paging request
at virtual address ffdf0000
pgd = 80004000
[ffdf0000] *pgd=71e35811, *pte=00000000, *ppte=00000000
Internal error: Oops: 7 [#1] PREEMPT SMP
Modules linked in: vivante drm galcore
CPU: 0    Not tainted  (3.0.35-2014-g7a9337b #1)
PC is at hdmi_dma_mmap_copy+0x134/0x190
LR is at hdmi_dma_mmap_copy+0x5c/0x190
pc : [<803e1e4c>]    lr : [<803e1d74>]    psr: 800f0193
sp : 80a61e98  ip : ffdf0000  fp : ffdeffc0
r10: 00000055  r9 : ffdeff80  r8 : 0029b450
r7 : 00000060  r6 : ffdf0200  r5 : 00000240  r4 : 00000120
r3 : 00000000  r2 : ffdf0000  r1 : 00000000  r0 : 00000090
Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 6d28804a  DAC: 00000015
Process swapper (pid: 0, stack limit = 0x80a602f0)
Stack: (0x80a61e98 to 0x80a62000)
1e80:                                                       00000002
000037f1
1ea0: 00006000 e1d3a7e4 a00f0193 e1d3a780 e1dcab00 00a83100 00a83100
00006000
1ec0: 00006000 803e24f4 413187b9 00000000 0073001a e1dd1e00 00000001
00000001
1ee0: 00000080 00000093 80ac7070 80a66a80 00000001 800a5ca8 8c80e568
efb3e7b9
1f00: 00000055 80a66a80 80a66acc e1ea9bc0 00000093 00000000 80a60000
00000000
1f20: 00000000 800a5e14 80a66a80 80a66acc 0000107f 800a8198 80a71cc0
80038c00
1f40: 80a60000 800a5610 000001f0 80040830 ffffffff f2a00100 00000093
00000002
1f60: 00000001 8003f9cc 80ac5f60 800f0093 00000001 00000000 80a60000
80abeb64
1f80: 804e1a54 80a74e7c 1000406a 412fc09a 00000000 00000000 00000000
80a61fb0
1fa0: 8004d52c 80040ac4 400f0013 ffffffff 80040aa0 80040cbc 00000001
80a71b3c
1fc0: 80abeac0 8002e3c4 8c80b140 80008868 800082f8 00000000 00000000
8002e3c4
1fe0: 00000000 10c53c7d 80a71a6c 8002e3c0 80a74e74 10008040 00000000
00000000
[<803e1e4c>] (hdmi_dma_mmap_copy+0x134/0x190) from [<803e24f4>]
(hdmi_dma_isr+0x17c/0x1a0)
[<803e24f4>] (hdmi_dma_isr+0x17c/0x1a0) from [<800a5ca8>]
(handle_irq_event_percpu+0x50/0x180)
[<800a5ca8>] (handle_irq_event_percpu+0x50/0x180) from [<800a5e14>]
(handle_irq_event+0x3c/0x5c)
[<800a5e14>] (handle_irq_event+0x3c/0x5c) from [<800a8198>]
(handle_fasteoi_irq+0xbc/0x154)
[<800a8198>] (handle_fasteoi_irq+0xbc/0x154) from [<800a5610>]
(generic_handle_irq+0x28/0x3c)
[<800a5610>] (generic_handle_irq+0x28/0x3c) from [<80040830>]
(handle_IRQ+0x4c/0xac)
[<80040830>] (handle_IRQ+0x4c/0xac) from [<8003f9cc>]
(__irq_svc+0x4c/0xe8)
[<8003f9cc>] (__irq_svc+0x4c/0xe8) from [<80040ac4>]
(default_idle+0x24/0x28)
[<80040ac4>] (default_idle+0x24/0x28) from [<80040cbc>]
(cpu_idle+0xbc/0xfc)
[<80040cbc>] (cpu_idle+0xbc/0xfc) from [<80008868>]
(start_kernel+0x248/0x288)
[<80008868>] (start_kernel+0x248/0x288) from [<10008040>] (0x10008040)
Code: c1a0c009 c08b6005 c1a0200b da00000a (e0d230b2)

Signed-off-by: Chen Liangjun <b36089@freescale.com>
11 years agoENGR00224112 wm8962: correct lrclk mismatch
Gary Zhang [Wed, 12 Sep 2012 12:29:01 +0000 (20:29 +0800)]
ENGR00224112 wm8962: correct lrclk mismatch

lrclk trigger settings between ssi and wm8962 are different,
which causes L/R channel swap.

Signed-off-by: Gary Zhang <b13634@freescale.com>
11 years agoENGR00222253 Merge vivante 4.6.9_p7 kernel part code
Loren Huang [Sun, 9 Sep 2012 16:00:13 +0000 (00:00 +0800)]
ENGR00222253 Merge vivante 4.6.9_p7 kernel part code

Merge vivante 4.6.9 p7 kernel part code.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
11 years agoENGR00223964: CAAM: enable ahash feature in config
Terry Lv [Wed, 12 Sep 2012 06:06:15 +0000 (14:06 +0800)]
ENGR00223964: CAAM: enable ahash feature in config

Enable ahash feature in mx6q config.

Signed-off-by: Terry Lv <r65388@freescale.com>
11 years agoENGR00223679-3 battery: Fix codes formatting
Rong Dian [Wed, 12 Sep 2012 02:12:01 +0000 (10:12 +0800)]
ENGR00223679-3 battery: Fix codes formatting

Just fix codes formatting,there's no functionality
change in codes

Signed-off-by: Rong Dian <b38775@freescale.com>
11 years agoENGR00223679-2 battery: Add battery driver support for mx6sl_evk
Rong Dian [Mon, 10 Sep 2012 10:07:21 +0000 (18:07 +0800)]
ENGR00223679-2 battery: Add battery driver support for mx6sl_evk

Add battery driver support for mx6sl_evk.

Signed-off-by: Rong Dian <b38775@freescale.com>
11 years agoENGR00223679-1 mx6sl_evk: Add pin config for MAX8903
Rong Dian [Mon, 10 Sep 2012 09:55:11 +0000 (17:55 +0800)]
ENGR00223679-1 mx6sl_evk: Add pin config for MAX8903

Configure PINMUX for max8903 driver on mx6sl_evk board.

Signed-off-by: Rong Dian <b38775@freescale.com>
11 years agoENGR00223911 wm8962: correct typo
Gary Zhang [Wed, 12 Sep 2012 02:03:11 +0000 (10:03 +0800)]
ENGR00223911 wm8962: correct typo

correct typo for wm8962 description in Kconfig

Signed-off-by: Gary Zhang <b13634@freescale.com>
11 years agoENGR00223450 [MX6]Fix secondary cores BogoMIPs error
Anson Huang [Mon, 10 Sep 2012 18:41:54 +0000 (02:41 +0800)]
ENGR00223450 [MX6]Fix secondary cores BogoMIPs error

After doing some suspend/resuem test, secondary cores BogoMIPs
will be wrong, the root cause is that when cpufreq is changed,
we only update the online cpus' loops_per_jiffy, and when secondary
cores back to online, we skip the loops_per_jiffy calibration. During
suspend/resume, the cpufreq can be changed during disabling/enabling
secondary cores, which will make secondary cores loops_per_jiffy
wrong, so here we need to update all possible cpus' loops_per_jiffy
when cpufreq is changed.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00221671 - i2c :imx : fix some i2c devices can not suspend
Fugang Duan [Mon, 10 Sep 2012 05:05:26 +0000 (13:05 +0800)]
ENGR00221671 - i2c :imx : fix some i2c devices can not suspend

i2c device (isl29023) can not suspend once during hdmi
audio suspend/resume test, and print log:

pm_op(): i2c_device_pm_suspend+0x0/0x38 returns -4 PM: Device
2-0044 failed to suspend: error -4 PM: Some devices failed to
suspend PM: resume of devices complete after 40.936 msecs
Restarting tasks ... done.

Because suspend function in isl29023 driver requires i2c bus
to write isl29023 device. I2C apdater driver process any signal
as exception during waiting the bus idle, so once user space sent
out signal during suspend, I2C device cannot request bus.

Using "fatal_signal_pending()" instead of "signal_pending()"
to avoid the waiting of bus idle to be terminated by general
signals except SIGKILL. After the change, i2c adapter can be
terminated by kill signal from user space with "CTRL+C" or
kill command operation.

Signed-off-by: Fugang Duan <B38611@freescale.com>
11 years agoENGR00223365 [MX6DL]Update cpu setpoint
Anson Huang [Fri, 7 Sep 2012 14:14:11 +0000 (22:14 +0800)]
ENGR00223365 [MX6DL]Update cpu setpoint

Update CPU setpoint according to latest datasheet.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00221895 IPU Device: release IPU device resources when process is killed
Wayne Zou [Wed, 29 Aug 2012 09:34:51 +0000 (17:34 +0800)]
ENGR00221895 IPU Device: release IPU device resources when process is killed

Release IPU device resources when process is killed

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00223249 : fix Ethernet performance downgrade issue.
Fugang Duan [Thu, 6 Sep 2012 06:13:00 +0000 (14:13 +0800)]
ENGR00223249 : fix Ethernet performance downgrade issue.

Ethernet performance is downgraded when wait mode on in
100Mbps mode.
wait mode off:
100Mbps mode: tx bandwidth is 94Mbps
      rx bandwidth is 94Mbps
wait mode on:
100Mbps mode: tx bandwidth is 30Mbps
      rx bandwidth is 94Mbps
After apply the patch:
wait mode on:
100Mbps mode: tx bandwidth is 94Mbps
      rx bandwidth is 94Mbps

Wait mode on cause enet interrupt has long latency, which
results in BD entries are full and stop tx queue, so cpus
have more chance to enter wait mode.

Incresing TX BD entries can properly accommodate the blance
between BD request before tx packets and BD release after tx
completion in interrupt process.

Signed-off-by: Fugang Duan <B38611@freescale.com>
11 years agomtd: gpmi-nand: fix read page when reading to vmalloced area
Sascha Hauer [Tue, 26 Jun 2012 15:26:16 +0000 (17:26 +0200)]
mtd: gpmi-nand: fix read page when reading to vmalloced area

The gpmi-nand driver uses virt_addr_valid() to check whether a buffer
is suitable for dma. If it's not, a driver allocated buffer is used
instead. Then after a page read the driver allocated buffer must be
copied to the user supplied buffer. This does not happen since commit
7725cc85932bd02dd12c23108e0ef748c551ccba.

This patch fixes the issue. The bug is encountered with UBI which uses a
vmalloced buffer for the volume table.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Tested-by: snijsure@grid-net.com
Acked-by: Huang Shijie <b32955@freescale.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>
11 years agomtd: gpmi-nand: utilize oob_requested parameter
Brian Norris [Wed, 2 May 2012 17:15:02 +0000 (10:15 -0700)]
mtd: gpmi-nand: utilize oob_requested parameter

Don't read OOB if the caller didn't request it.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Huang Shijie <b32955@freescale.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>
11 years agomtd: nand: pass proper 'oob_required' parameter
Huang Shijie [Wed, 5 Sep 2012 08:47:02 +0000 (16:47 +0800)]
mtd: nand: pass proper 'oob_required' parameter

We now have an interface for notifying the nand_ecc_ctrl functions when OOB
data must be returned to the upper layers and when it may be left untouched.
This patch fills in the 'oob_required' parameter properly from
nand_do_{read,write}_ops. When utilized properly in the lower layers, this
parameter can improve performance and/or reduce complexity for NAND HW and SW
that can simply avoid transferring the OOB data.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Acked-by: Jiandong Zheng <jdzheng@broadcom.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
11 years agomtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces
Huang Shijie [Wed, 5 Sep 2012 08:30:53 +0000 (16:30 +0800)]
mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces

New NAND controllers can perform read/write via HW engines which don't expose
OOB data in their DMA mode. To reflect this, we should rework the nand_chip /
nand_ecc_ctrl interfaces that assume that drivers will always read/write OOB
data in the nand_chip.oob_poi buffer. A better interface includes a boolean
argument that explicitly tells the callee when OOB data is requested by the
calling layer (for reading/writing to/from nand_chip.oob_poi).

This patch adds the 'oob_required' parameter to each relevant {read,write}_page
interface; all 'oob_required' parameters are left unused for now. The next
patch will set the parameter properly in the nand_base.c callers, and follow-up
patches will make use of 'oob_required' in some of the callee functions.

Note that currently, there is no harm in ignoring the 'oob_required' parameter
and *always* utilizing nand_chip.oob_poi, but there can be
performance/complexity/design benefits from avoiding filling oob_poi in the
common case. I will try to implement this for some drivers which can be ported
easily.

Note: I couldn't compile-test all of these easily, as some had ARCH
dependencies.

[Huang Shijie: I remove the unused code for the other drivers.]

[dwmw2: Merge later 1/0 vs. true/false cleanup]
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Acked-by: Jiandong Zheng <jdzheng@broadcom.com>
Acked-by: Mike Dunn <mikedunn@newsguy.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>
11 years agoENGR00223344 [Thermal]Fix clk enable flow bug
Anson Huang [Fri, 7 Sep 2012 01:07:56 +0000 (09:07 +0800)]
ENGR00223344 [Thermal]Fix clk enable flow bug

We should make sure clk_enable is called after clk_get.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00223236-2 [MX6]Change the temperature range to -40C ~ 125C
Anson Huang [Thu, 6 Sep 2012 07:38:07 +0000 (15:38 +0800)]
ENGR00223236-2 [MX6]Change the temperature range to -40C ~ 125C

Previous temperature range is -25C ~ 125C, according to latest
datasheet, change it to -40C to 125C.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00222954 Enable PLL3 in GPU power up flow
Loren Huang [Thu, 6 Sep 2012 07:37:37 +0000 (15:37 +0800)]
ENGR00222954 Enable PLL3 in GPU power up flow

If GPU2D used PLL3 as root, we need enable PLL
during GPU power up flow so that we can power up
GPU2D properly.
Till now, this issue can only be duplicated on
Android.

Signed-off-by: Loren Huang <b02279@freescale.com>
11 years agoENGR00223103 ESAI ASRC: clean build warning
Chen Liangjun [Wed, 5 Sep 2012 08:45:18 +0000 (16:45 +0800)]
ENGR00223103 ESAI ASRC: clean build warning

BUILD WARNING:
WARNING: arch/arm/mach-mx6/built-in.o(.data+0x7e44): Section mismatch in
reference from the variable sab_audio_data to the (unknown reference)
.init.rodata:(unknown) The variable sab_audio_data references the
(unknown reference) __initconst (unknown) If the reference is valid then
annotate the variable with __init* or __refdata (see linux/init.h) or
name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

In this patch, remove esai_p2p struct with init attribute.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
11 years agoENGR00223056 Fix HDMI build warning
Sandor Yu [Wed, 5 Sep 2012 05:26:50 +0000 (13:26 +0800)]
ENGR00223056 Fix HDMI build warning

Fix HDMI build warning.
drivers/video/mxc_hdmi.c: In function 'mxc_hdmi_set_mode':
drivers/video/mxc_hdmi.c:1659: warning: assignment discards
 qualifiers from pointer target type
drivers/video/mxc_hdmi.c: At top level:
driver/video/mxc_hdmi.c:1398: warning: 'mxc_hdmi_enable_pins'
 defined but not used

Remove unused function mxc_hdmi_enable_pins() and mxc_hdmi_disable_pins()
from code. Fix defined but unused function build warning.
Added pointer conversion from const poniter to non-const pointer.

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00222078 power battery:fix charger attach detect missing after resume
Rong Dian [Mon, 3 Sep 2012 10:37:43 +0000 (18:37 +0800)]
ENGR00222078 power battery:fix charger attach detect missing after resume

1.config gpio dok for AC charger as wake up irq, config gpio uok
for USB charger as wake up irq.
2.add AC/USB charger detect in resume,fix charger detect status update
missing after attach AC/USB charger and resume system

Signed-off-by: Rong Dian <b38775@freescale.com>
11 years agoENGR00223097 sabresd pfuze:increase VDDARM_IN&VDDSOC_IN to 1.475V for 1.2G
Robin Gong [Wed, 5 Sep 2012 08:17:32 +0000 (16:17 +0800)]
ENGR00223097 sabresd pfuze:increase VDDARM_IN&VDDSOC_IN to 1.475V for 1.2G

consider ripple, IR drop and pfuze tolerance, we need incrase VDDARM_IN and
VDDSOC_IN to 1.475V.

Signed-off-by: Robin Gong <B38343@freescale.com>
11 years agoENGR00223058 [MX6]Fix build warning
Anson Huang [Wed, 5 Sep 2012 05:47:43 +0000 (13:47 +0800)]
ENGR00223058 [MX6]Fix build warning

Fix below build warning:

arch/arm/mach-mx6/irq.c: In function 'mx6_init_irq':
arch/arm/mach-mx6/irq.c:106: warning: unused variable 'reg'

arch/arm/mach-mx6/clock_mx6sl.c:1807:
warning: function declaration isn't a prototype
arch/arm/mach-mx6/clock_mx6sl.c:1535:
warning: 'tzasc1_clk' defined but not used
arch/arm/mach-mx6/clock_mx6sl.c:1576:
warning: 'mx6per2_clk' defined but not used
arch/arm/mach-mx6/clock_mx6sl.c:1708:
warning: 'ocram_clk' defined but not used

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00221854 HDMI: suspend/resume hdmi_phy fail to lock.
Sandor Yu [Wed, 5 Sep 2012 03:17:32 +0000 (11:17 +0800)]
ENGR00221854 HDMI: suspend/resume hdmi_phy fail to lock.

HDMI PHY init function will been called four times during system resume.
The first call before pixel clock enable, so it will print
PHY PLL unlock message, but the PHY PLL will locked in the next
three times called. It will not affect HDMI PHY function.

Change message print function dev_err to dev_dbg.

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00222900 HDMI AUDIO: fix kernel panic when doing suspend-resume test
Chen Liangjun [Tue, 4 Sep 2012 08:51:41 +0000 (16:51 +0800)]
ENGR00222900 HDMI AUDIO: fix kernel panic when doing suspend-resume test

In MX6 series, HDMI audio driver is responsible for add IEC header to
audio samples. Driver would maintain variables to cover this work.

The old driver would cause memory access exceeding issue:
1. Resume from an playback. In this case, variable maintained by ALSA is
updated while variable maintained by HDMI driver is not updated. The
mmap copy operation would run into error state due to misalignment.
2. underrun!!! The same error would happens as the items above.

In this patch, add variable check while adding IED header.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
11 years agoENGR00215870-2: board-mx6 sabreauto fix i2c3 pad settings
Adrian Alonso [Tue, 28 Aug 2012 21:35:20 +0000 (16:35 -0500)]
ENGR00215870-2: board-mx6 sabreauto fix i2c3 pad settings

* Fix i2c3 pad settings, i2c3 conflicts with weim-nor and
  spi-nor only in rev b target boards.
* For rev B targets setup extra pads.
* Fix indentation.

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
11 years agoENGR00215870-1 board-mx6 sabreauto rev B add extra pads
Adrian Alonso [Tue, 28 Aug 2012 21:28:25 +0000 (16:28 -0500)]
ENGR00215870-1 board-mx6 sabreauto rev B add extra pads

* For rev_b target board add extra pads table,
  separate pad definitions from I2C3 pad array

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
11 years agoENGR00222836 Fix Kern BUG during Susp/Resu caused by SPDIF debug code
Nicolin Chen [Fri, 31 Aug 2012 05:54:45 +0000 (13:54 +0800)]
ENGR00222836 Fix Kern BUG during Susp/Resu caused by SPDIF debug code

dump_reg() in msc_spdif.c will cause kernel BUG during Suspend/Resume,
because of calling clk_enable() in an interrupt for playback.

There's also a simular issue in capture case.
Capture'd be stopped after resume for suspending.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
11 years agoENGR00222855 MX6 CPUFREQ: support three VDDSOC setpoints
Robin Gong [Mon, 3 Sep 2012 07:17:01 +0000 (15:17 +0800)]
ENGR00222855 MX6 CPUFREQ: support three VDDSOC setpoints

On MX6Q/DL , there is only two set point of VDDSOC/VDDPU, one is 1.25V(1GHz),
another is 1.175V.  And in arch/arm/plat-mxc/cpufreq.c will judge whether the
current cpu frequency is the highest set point(1G) or not to set the right
VDDSOC/VDDPU. The logic is also match to dynamic ldo bypass function, since the
change point is the highest set point too. But there is three set points of
VDDSOC/VDDPU in MX6SL , so the logic in cpufreq.c need to change. Now
VDDSOC/VDDPU will track with VDDARM fully.

Signed-off-by: Robin Gong <B38343@freescale.com>
11 years agoENGR00215875-2: caam: fix descriptor buffer overrun in hash_digest_key()
Steve Cornelius [Thu, 30 Aug 2012 21:15:39 +0000 (14:15 -0700)]
ENGR00215875-2: caam: fix descriptor buffer overrun in hash_digest_key()

HMAC keys often need to be reduced to under the size of a digest to
be used. The driver does this psuedo-synchronously through the use of
hash_digest_key(), which builds a sequence pointered job descriptor to
perform this function.

When this function built the job descriptor, it correctly accounted for the
number of instructions and number of pointers that would go into its
construction. However, it failed to account for the fact that both the
sequence in and out pointers used extended lengths, adding 8 more bytes to
the required job descriptor. This caused the descriptor to overrun the
allocated buffer by that amount, resulting in memory corruptions.

Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com>
Signed-off-by: Terry Lv <r65388@freescale.com>
11 years agoENGR00215875-1: caam: improve initalization for context state saves
Steve Cornelius [Tue, 14 Aug 2012 22:04:11 +0000 (15:04 -0700)]
ENGR00215875-1: caam: improve initalization for context state saves

Multiple function in asynchronous hashing use a saved-state block,
a.k.a. struct caam_hash_state, which holds a stash of information
between requests (init/update/final). Certain values in this state
block are loaded for processing using an inline-if, and when this
is done, the potential for uninitialized data can pose conflicts.
Therefore, this patch improves initialization of state data to
prevent false assignments using uninitialized data in the state block.

This patch addresses the following traceback, originating in
ahash_final_ctx(), although a problem like this could certainly
exhibit other symptoms:

kernel BUG at arch/arm/mm/dma-mapping.c:465!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = 80004000
[00000000] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT SMP
Modules linked in:
CPU: 0    Not tainted  (3.0.15-01752-gdd441b9-dirty #40)
PC is at __bug+0x1c/0x28
LR is at __bug+0x18/0x28
pc : [<80043240>]    lr : [<8004323c>]    psr: 60000013
sp : e423fd98  ip : 60000013  fp : 0000001c
r10: e4191b84  r9 : 00000020  r8 : 00000009
r7 : 88005038  r6 : 00000001  r5 : 2d676572  r4 : e4191a60
r3 : 00000000  r2 : 00000001  r1 : 60000093  r0 : 00000033
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 1000404a  DAC: 00000015
Process cryptomgr_test (pid: 1306, stack limit = 0xe423e2f0)
Stack: (0xe423fd98 to 0xe4240000)
fd80:                                                       11807fd1 80048544
fda0: 88005000 e4191a00 e5178040 8039dda0 00000000 00000014 2d676572 e4191008
fdc0: 88005018 e4191a60 00100100 e4191a00 00000000 8039ce0c e423fea8 00000007
fde0: e4191a00 e4227000 e5178000 8039ce18 e419183c 80203808 80a94a44 00000006
fe00: 00000000 80207180 00000000 00000006 e423ff08 00000000 00000007 e5178000
fe20: e41918a4 80a949b4 8c4844e2 00000000 00000049 74227000 8c4844e2 00000e90
fe40: 0000000e 74227e90 ffff8c58 80ac29e0 e423fed4 8006a350 8c81625c e423ff5c
fe60: 00008576 e4002500 00000003 00030010 e4002500 00000003 e5180000 e4002500
fe80: e5178000 800e6d24 007fffff 00000000 00000010 e4001280 e4002500 60000013
fea0: 000000d0 804df078 00000000 00000000 00000000 00000000 00000000 00000000
fec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
fee0: 00000000 00000000 e4227000 e4226000 e4753000 e4752000 e40a5000 e40a4000
ff00: e41e7000 e41e6000 00000000 00000000 00000000 e423ff14 e423ff14 00000000
ff20: 00000400 804f9080 e5178000 e4db0b40 00000000 e4db0b80 0000047c 00000400
ff40: 00000000 8020758c 00000400 ffffffff 0000008a 00000000 e4db0b40 80206e00
ff60: e4049dbc 00000000 00000000 00000003 e423ffa4 80062978 e41a8bfc 00000000
ff80: 00000000 e4049db4 00000013 e4049db0 00000013 00000000 00000000 00000000
ffa0: e4db0b40 e4db0b40 80204cbc 00000013 00000000 00000000 00000000 80204cfc
ffc0: e4049da0 80089544 80040a40 00000000 e4db0b40 00000000 00000000 00000000
ffe0: e423ffe0 e423ffe0 e4049da0 800894c4 80040a40 80040a40 00000000 00000000
[<80043240>] (__bug+0x1c/0x28) from [<80048544>] (___dma_single_dev_to_cpu+0x84)
[<80048544>] (___dma_single_dev_to_cpu+0x84/0x94) from [<8039dda0>] (ahash_fina)
[<8039dda0>] (ahash_final_ctx+0x180/0x428) from [<8039ce18>] (ahash_final+0xc/0)
[<8039ce18>] (ahash_final+0xc/0x10) from [<80203808>] (crypto_ahash_op+0x28/0xc)
[<80203808>] (crypto_ahash_op+0x28/0xc0) from [<80207180>] (test_hash+0x214/0x5)
[<80207180>] (test_hash+0x214/0x5b8) from [<8020758c>] (alg_test_hash+0x68/0x8c)
[<8020758c>] (alg_test_hash+0x68/0x8c) from [<80206e00>] (alg_test+0x7c/0x1b8)
[<80206e00>] (alg_test+0x7c/0x1b8) from [<80204cfc>] (cryptomgr_test+0x40/0x48)
[<80204cfc>] (cryptomgr_test+0x40/0x48) from [<80089544>] (kthread+0x80/0x88)
[<80089544>] (kthread+0x80/0x88) from [<80040a40>] (kernel_thread_exit+0x0/0x8)
Code: e59f0010 e1a01003 eb126a8d e3a03000 (e5833000)
---[ end trace d52a403a1d1eaa86 ]---

Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com>
Signed-off-by: Terry Lv <r65388@freescale.com>
11 years agoENGR00222148 [MX6SL]Shrink GPU reserved memory to 32M
Loren Huang [Mon, 3 Sep 2012 01:45:04 +0000 (09:45 +0800)]
ENGR00222148 [MX6SL]Shrink GPU reserved memory to 32M

MX6SL only has 512M memory.Shrinking GPU reserved memory to 32M
can help out of memory issue on MX6SL.This patch will increase
96M system memory, so it will help the case which requests lots
of system memory.Like multiple application running, etc.

And MX6SL doesn't have 3D, 32M is recommended by vivante.

Signed-off-by: Loren Huang <b02279@freescale.com>
11 years agoENGR00222835 MX6x-Fix incorrect enabling/disabling of PLL1
Ranjani Vaidyanathan [Sun, 2 Sep 2012 02:31:02 +0000 (21:31 -0500)]
ENGR00222835 MX6x-Fix incorrect enabling/disabling of PLL1

PLL1 was enabled without incrementing the usecount, and was
thus not getting disabled under certain conditions.
This causes 2 issues:
1. Increases the power.
2. Causes crashes on MX6SL in audio mode as ARM is switched
to PLL1 assuming its in bypass when entering WAIT mode. But PLL1
is enabled and not in bypass state.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00222834 MX6x-A9 prefetcher should not access DDR before IO is restored
Ranjani Vaidyanathan [Sun, 2 Sep 2012 15:32:35 +0000 (10:32 -0500)]
ENGR00222834 MX6x-A9 prefetcher should not access DDR before IO is restored

Add enough nops to suspend code when exiting due to a pending
interrupt. This is required so that we can guarantee that the
prefetch unit will not bring DDR out of self-refresh before
all of the DDR's IO pads are restored.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00222197 MX6 SabreSD:Set pwm backlight max density to 248
Liu Ying [Fri, 31 Aug 2012 09:19:24 +0000 (17:19 +0800)]
ENGR00222197 MX6 SabreSD:Set pwm backlight max density to 248

This patch changes pwm backlight max density from 255 to 248
to workaround Hannstar LVDS panel unstable backlight issue
when density is set to 250 or 251.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 8747626ca0bcdb6c9525e28d3fbb170db462a299)

11 years agoENGR00222157 MX6x-Fix bug in transitioning from low_bus to audio_bus mode.
Ranjani Vaidyanathan [Fri, 31 Aug 2012 03:55:14 +0000 (22:55 -0500)]
ENGR00222157 MX6x-Fix bug in transitioning from low_bus to audio_bus mode.

Ensure that the transtion from low bus freq mode to
audio bus freq mode happens instantly. Don't schedule
the delayed work in this case else there will be a pause
in the audio playback.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00222257 MX6x-Prime TLB entries before DDR enters self-refresh.
Ranjani Vaidyanathan [Sat, 1 Sep 2012 07:06:39 +0000 (02:06 -0500)]
ENGR00222257 MX6x-Prime TLB entries before DDR enters self-refresh.

Need to ensure that no page table walk occurs in DDR when it is in
self refresh and its IO pads are floated during suspend.
Hence we need to make sure that the translation of all the
addresses that the suspend code will access is in the TLB before
DDR cannot be accessed anymore.
So do a dummy read of IOMUX, MMDC, SRC and ANATOP regsiters.
Also need to add a dsb to drain all the write buffers before
DDR enters self-refresh.

Also ensure that the LDO bypass enable is reset if an interrupt
is pending before the system enters suspend.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00222134 MX6x - Fix race-conditions in low power code.
Ranjani Vaidyanathan [Thu, 30 Aug 2012 20:02:32 +0000 (15:02 -0500)]
ENGR00222134 MX6x - Fix race-conditions in low power code.

Fix couple of race-conditions associated with low power IDLE code:
1. Ensure that bus freq mutex is used in the suspend/resume function
2. Ensure that the usecount of pll2 is incremented/decremented when
ARM is switched to run from PLL2_PFD_400. And PLL2 is enabled/disabled
when necessary.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00222133 MX6SL - Fix crashes caused by Low power IDLE support
Ranjani Vaidyanathan [Thu, 30 Aug 2012 19:45:10 +0000 (14:45 -0500)]
ENGR00222133 MX6SL - Fix crashes caused by Low power IDLE support

Need to ensure that the ARM_CLK rate stays exactly the same
when moving ARM_CLK from PLL2_PFD_400 to PLL1 when system
enters 24MHz state. Also need to ensure that PLL1 is enabled
before relocking the PLL to the correct rate.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00221370 IPUv3:Clean up IPUv3 interrupt handler
Liu Ying [Thu, 30 Aug 2012 01:39:59 +0000 (09:39 +0800)]
ENGR00221370 IPUv3:Clean up IPUv3 interrupt handler

1) In the interrupt handler, we access sync interrupt
   control registers 2 times, and each time with spin
   lock being held and then released, which may cause
   potential racing on the registers. We see that
   as long as the racing happens with two displays
   enabled on the same IPU, one IPU display channel
   will lose EOF interrupt and it makes its fb's pan
   display ioctrl fail with timeout. This patch changes
   to hold the spin lock one time for the whole irq
   handler, as the handler should return quickly.
   Holding and releasing the spin lock unnecessarily
   may bring performance penalty as well.
2) We do not need to use spin_lock_irqsave() and
   spin_unlock_irqrestore() in the interrupt handler,
   as we are already in the hard irq context. Using
   spin_lock() and spin_unlock() is enough to protect
   the registers.
3) Clear an interrupt control bit as soon as its related
   handler finishes.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit c5d3731fa0880a65efafb4826d3722aacb79edd5)

11 years agoENGR00221983 IPUv3:Correct ERR and SYNC interrupt line numbers
Liu Ying [Thu, 30 Aug 2012 01:33:01 +0000 (09:33 +0800)]
ENGR00221983 IPUv3:Correct ERR and SYNC interrupt line numbers

As we define ERR interrupt with 0 irq resource id and SYNC
interrupt with 1 irq resource id in platform-imx_ipuv3.c,
we wrongly assign them in IPUv3 driver.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 52c9fc323e0f72e53de6fe0c6f7012fe7adf14b4)

11 years agoENGR00221218: imx6: remove redundant spi define
Robby Cai [Fri, 24 Aug 2012 09:40:59 +0000 (17:40 +0800)]
ENGR00221218: imx6: remove redundant spi define

There're two imx6q_add_ecspi() defines, remove one.

Signed-off-by: Robby Cai <R63905@freescale.com>
11 years agoENGR00222005 mfgtool can't work on mx6sl evk board
Tony LIU [Thu, 30 Aug 2012 06:22:30 +0000 (14:22 +0800)]
ENGR00222005 mfgtool can't work on mx6sl evk board

- add imx6s_updater_defconfig to generate mx6sl firmware
- add CONFIG_MACH_MX6SL_EVK=y
- remove SMP for mx6sl
- add CONFIG_MX6_INTER_LDO_BYPASS=y

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00221975 Fix race condition in clock code.
Ranjani Vaidyanathan [Wed, 29 Aug 2012 22:05:11 +0000 (17:05 -0500)]
ENGR00221975 Fix race condition in clock code.

Need to ensure that check for usecount in clk_set_parent
occurs within the protection of the clock mutex. Else
there is a chance that the usecount can be decremented
(and the clock disabled) after the check.
Also add back the code to maintain the correct usecount
for pll2_pfd_400.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00221974 MX6SL-Fix system hang/crash issue in low power IDLE
Ranjani Vaidyanathan [Wed, 29 Aug 2012 19:46:02 +0000 (14:46 -0500)]
ENGR00221974 MX6SL-Fix system hang/crash issue in low power IDLE

Ensure that the pull-up is enabled when the DQS line of LPDDR2
is floated when DDR freq is dropped to 24MHz. This is required
else its possible that the DDR will latch incorrect data when it
exits self-refresh.
CKE line should not be floated as it may cause DDR to incorrectly
exit self-refresh mode.

Also add 25 nops after the code that removes DDR from self-refresh.
We need this to ensure that the prefetcher block in A9 does not
access any instruction from DDR before the DDR exits self-refresh.
The A9 prefetch depth is about 23, hence 25 nops.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00221970 MX6SL:Fix suspend/resume issue on MX6SLEVK
Ranjani Vaidyanathan [Wed, 29 Aug 2012 19:38:03 +0000 (14:38 -0500)]
ENGR00221970 MX6SL:Fix suspend/resume issue on MX6SLEVK

Make sure the Pull Ups are enabled on the DQS lines of
LPDDR2 memory. Without that its possible that the data
latched by the memory will be incorrect when exiting from
self-refresh mode. So only set the drive strengths to 0
when floating the DDR IO pads before entering suspend.

Also never float the CKE pad, this pin always needs to be
driven, else the DDR may incorrectly exit self-refresh.
Hence remove the line that was setting CKE drive strength
to zero (GRP_CTLDS).

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00221902 [MX6]Fix udelay inaccurate issue during suspend/resume
Anson Huang [Wed, 29 Aug 2012 19:10:07 +0000 (03:10 +0800)]
ENGR00221902 [MX6]Fix udelay inaccurate issue during suspend/resume

When system enter suspend, we increase CPUFreq to the highest point
without update the global loops_per_jiffy, it will lead to udelay
inaccurate during the last phase of suspend/resume.

WB counter and RBC counter need at least two 32K cycles to finish,
here we add 80us for safe.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00221867 sabresd : support adjust VDDSOC if enable LDO bypass
Robin Gong [Wed, 29 Aug 2012 08:08:01 +0000 (16:08 +0800)]
ENGR00221867 sabresd : support adjust VDDSOC if enable LDO bypass

support adjust VDDSOC if enable LDO bypass on mx6_sabresd board
Signed-off-by: Robin Gong <B38343@freescale.com>
11 years agoENGR00221716-02 Mx6 USB host: add port speed define MACRO to arc_otg.h
make shi [Wed, 29 Aug 2012 09:53:38 +0000 (17:53 +0800)]
ENGR00221716-02 Mx6 USB host: add port speed define MACRO to arc_otg.h

Add port speed define MACRO to arc_otg.h.

Signed-off-by: make shi <b15407@freescale.com>
11 years agoENGR00221716-01 Mx6 USB host: set disconnect bit should wait for resume finished
make shi [Tue, 28 Aug 2012 09:12:07 +0000 (17:12 +0800)]
ENGR00221716-01 Mx6 USB host: set disconnect bit should wait for resume finished

For i.MX6DLTO1.1 and i.MX6DQTO1.2, the disconnection-bit can only be set after
the resume finished, otherwise, the remote-wake-up may fail. Because if the
device not switch to High-Speed 45ohm termination resistors mode, when the
disconnection  detection bit is set the disconnection detection circuit will
detect a high speed disconnection by mistake.

Signed-off-by: make shi <b15407@freescale.com>