]> git.kernelconcepts.de Git - karo-tx-linux.git/log
karo-tx-linux.git
10 years agoENGR00259693 MX6DL/S-Enable routing of ENET interrupt to GPIO v3.0.35-fsl
Ranjani Vaidyanathan [Fri, 19 Apr 2013 16:39:48 +0000 (11:39 -0500)]
ENGR00259693 MX6DL/S-Enable routing of ENET interrupt to GPIO

In order to fix the performance issue on ENET when WAIT mode
is activated, route the ENET interrupts to a GPIO on all MX6DL boards.

This patch must be applied on top of:
MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active
808863866d2c17aeb3e70a7fcd094bd96db4b601
bae4d40849f3acdd9663f5a0857c9415ed7e6d5d

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00259593 IPU/V4L2 output: Fix video ouput to video16 can not work
Wayne Zou [Fri, 19 Apr 2013 08:33:24 +0000 (16:33 +0800)]
ENGR00259593 IPU/V4L2 output: Fix video ouput to video16 can not work

Revert"ENGR00254931 IPUv3 Fb: Fix display twinkling issue during suspend/resume"

This reverts commit 4bd475ba0603e10cdcab7e55f89599f7016cad25.

That patch will lead to kernel crash when doing video playback on video16 with
overlay on. The reason is that fb driver doesn't reallocate larger DMA buffer
requested by V4L2 driver, while IPU hardware write to large DMA address.
Other solution is needed for the original issue.

kernel BUG at arch/arm/mm/dma-mapping.c:478!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = 80004000
[00000000] *pgd=00000000
Internal error: Oops: 817 [#1] PREEMPT SMP
Modules linked in: mxc_v4l2_capture ipu_csi_enc ipu_prp_enc ipu_fg_overlay_sdc
ipu_bg_overlay_sdc ipu_still ov5640_camera_mipi ov5640_camera
CPU: 0    Not tainted  (3.0.35-2506-g556681e #1)
PC is at __bug+0x1c/0x28
LR is at __bug+0x18/0x28
pc : [<800442ac>]    lr : [<800442a8>]    psr: 20000113
sp : 80a8fe88  ip : c09b2000  fp : 80aa3a70
r10: 80a90080  r9 : 00000040  r8 : bffecec4
r7 : 00000001  r6 : 00000002  r5 : 00000800  r4 : ce5c5e65
r3 : 00000000  r2 : 00000104  r1 : 0bfcf000  r0 : 00000033
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 4a97404a  DAC: 00000015
Process swapper (pid: 0, stack limit = 0x80a8e2f0)
Stack: (0x80a8fe88 to 0x80a90000)
fe80:                   80afde30 8004a464 00000880 ffdfd6b0 bffec000 802fa678
fea0: bffec000 00000060 5e5c5e65 ce5c5e65 bffec250 80ad4c88 bffece4c 00000001
fec0: bffecec4 00000040 0000012c 8c009480 8c009488 80a90080 ffff9527 80423f58
fee0: 00000001 80a8e000 00000096 00000001 80a9004c 80a8e000 00000103 80af77e0
ff00: 00000000 80a90040 00000003 8007a034 00000096 00000000 80a8e000 0000000a
ff20: 80a94c4c 80a8e000 80039c00 80a8e000 00000096 00000000 80a8e000 00000000
ff40: 00000000 8007a570 80aa3cc0 80041874 ffffffff f2a00100 00000096 00000002
ff60: 00000001 80040a0c 80af9140 80000093 00000001 00000000 80a8e000 80af1ce4
ff80: 80511044 80aa6e7c 1000406a 412fc09a 00000000 00000000 00000000 80a8ffb0
ffa0: 8004f648 80041b04 40000013 ffffffff 80041ae0 80041d08 00000001 80aa3b3c
ffc0: 80af1c40 8002f538 8c005160 80008868 800082f8 00000000 00000000 8002f538
ffe0: 00000000 10c53c7d 80aa3a6c 8002f534 80aa6e74 10008040 00000000 00000000
[<800442ac>] (__bug+0x1c/0x28) from [<8004a464>]
(___dma_single_dev_to_cpu+0x84/0x94)
[<8004a464>] (___dma_single_dev_to_cpu+0x84/0x94) from [<802fa678>]
(fec_rx_poll+0x228/0x2c8)
[<802fa678>] (fec_rx_poll+0x228/0x2c8) from [<80423f58>]
(net_rx_action+0xb0/0x17c)
[<80423f58>] (net_rx_action+0xb0/0x17c) from [<8007a034>]
(__do_softirq+0xac/0x140)
[<8007a034>] (__do_softirq+0xac/0x140) from [<8007a570>] (irq_exit+0x94/0x9c)
[<8007a570>] (irq_exit+0x94/0x9c) from [<80041874>] (handle_IRQ+0x50/0xac)
[<80041874>] (handle_IRQ+0x50/0xac) from [<80040a0c>] (__irq_svc+0x4c/0xe8)
[<80040a0c>] (__irq_svc+0x4c/0xe8) from [<80041b04>] (default_idle+0x24/0x28)
[<80041d08>] (cpu_idle+0xc8/0x108) from [<80008868>] (start_kernel+0x248/0x288)
[<80008868>] (start_kernel+0x248/0x288) from [<10008040>] (0x10008040)

Signed-off-by: Wayne Zou <b36644@freescale.com>
10 years agoENGR00259008: mlb: reduce iram usage amount in async mode
Terry Lv [Tue, 16 Apr 2013 11:05:54 +0000 (19:05 +0800)]
ENGR00259008: mlb: reduce iram usage amount in async mode

In testing async mode on mx6q ard and mx6dl ard, driver always said "can
not alloc rx buffer".
Change async's ring buffer size from 2048 to 1536(MEP package size) and
reduce the extra ring buffer for drop package, now the iram usage amount
in async mode reduced from 34816 to 24576.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00258885 flexcan: fix errata ERR005641 that MB may fail to be sent
Dong Aisheng [Fri, 12 Apr 2013 10:49:36 +0000 (18:49 +0800)]
ENGR00258885 flexcan: fix errata ERR005641 that MB may fail to be sent

This is an issue from IC errata ERR005641 which is described as follows:
----------------------------------------------------------
FlexCAN does not transmit a message that is enabled to be transmitted
in a specific moment during the arbitration process. The following
conditions are necessary to have the issue.
- Only one MB is configured to be transmitted
- The write which enables the MB to be transmitted (write on Control status
  word) happens during a specific clock during the arbitration process.

After this arbitration process occurs, the bus goes to Idle state and no
new message is received on bus.

For example:
1) MB13 is deactivated on RxIntermission (write 0x0 on CODE field from Control
Status word) - First write on CODE
2) Reconfigure the ID and data fields
3) Enable the MB13 to be transmitted on BusIdle (write 0xC on Code
field) - Second write on code
4) CAN bus keeps in Idle state
5) No write on Control status from any MB happens.
During the second write on code (step 3), the write must happen one clock
before the current MB13 is to be scanned by arbitration process.
In this case, it does not detect the new code (0xC) and no new arbitration is
scheduled.

The suggested workaround which is implemented in this patch is:
The workaround consists of executing two extra steps:
6. Reserve the first valid mailbox as an inactive mailbox (CODE=0b1000).
If RX FIFO is disabled, this mailbox must be MB0. Otherwise, the first
valid mailbox can be found by using table "RX FIFO filters" on FlexCAN3 chapter.
7. Write twice INACTIVE code (0b1000) into the first valid mailbox.
Note: The first mailbox cannot be used for reception or transmission process.
-------------------------------------------------------------

Note: Although the currently flexcan driver does not have the step 1 to run,
it's also possible to meet this issue in theory because we can not predict
when the arbitration is scheduled.

With a modified can-utils/canfdttest tool simulating Pingpong test, we were
able to reproduce this issue after running a about one day.
After applying this patch, we ran six days and did not see the issue happen
again on two mx6q sabrelite boards.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
10 years agocan: flexcan: Fix CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACK
Reuben Dowle [Mon, 31 Oct 2011 22:18:03 +0000 (11:18 +1300)]
can: flexcan: Fix CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACK

Currently the flexcan driver uses hardware local echo. This blindly
echos all transmitted frames to all receiving sockets, regardless what
CAN_RAW_RECV_OWN_MSGS and CAN_RAW_LOOPBACK are set to.

This patch now submits transmitted frames to be echoed in the transmit
complete interrupt, preserving the reference to the sending
socket. This allows the can protocol to correctly handle the local
echo.

Further this patch moves tx_bytes statistic accounting into the tx_complete
handler.

Signed-off-by: Reuben Dowle <reuben.dowle@navico.com>
[mkl: move tx_bytes accounting into tx_complete handler; cleanups]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
10 years agocan: dev: let can_get_echo_skb() return dlc of CAN frame
Marc Kleine-Budde [Mon, 10 Oct 2011 21:43:53 +0000 (23:43 +0200)]
can: dev: let can_get_echo_skb() return dlc of CAN frame

can_get_echo_skb() is usually called in the TX complete handler.
The stats->tx_packets and stats->tx_bytes should be updated there, too.
This patch simplifies to figure out the size of the sent CAN frame.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
10 years agoENGR00258733 WEIM-NOR: mtd: cfi_cmdset_0002: Do not release the mutex lock
Huang Shijie [Fri, 12 Apr 2013 07:33:11 +0000 (15:33 +0800)]
ENGR00258733 WEIM-NOR: mtd: cfi_cmdset_0002: Do not release the mutex lock

The NOR may suffers a write-buffer timeout during the bonnie++/ubifs stress
test. This patch is just a workaround to fix this issue.

With this patch, the read/write/erase will do in the synchronous way.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00258357-5: mlb: Use circle buf macros to replace old ringbuf mechanism
Terry Lv [Fri, 12 Apr 2013 07:44:46 +0000 (15:44 +0800)]
ENGR00258357-5: mlb: Use circle buf macros to replace old ringbuf mechanism

Use circle buf to replace old ringbuf mechanism.
Change to use circle buffer in read, write, rx isr and tx isr functions.
In first design of MLB, it's using it's own mechanism to manage ring
buffer, like in mxc_mlb.c.
And then, I saw that kernel already had a serials of circ buffer macros
which can be used to manage ring buffers.
This patch is to use circle buffer macros to manage mlb internal ring
buffers.
For detail of circle buffers, you can refer to
linux-2.6-imx/Documentation/circular-buffers.txt.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00258357-4: mlb: Group static variables to structure mlb_data
Terry Lv [Fri, 12 Apr 2013 07:33:56 +0000 (15:33 +0800)]
ENGR00258357-4: mlb: Group static variables to structure mlb_data

Group static variables to structure mlb_data.
Use mlb_data as platform data to be passed to file operation
functions.
Change accordingly functions for this change.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00258357-3: mlb: Reset whole CDR in init function
Terry Lv [Fri, 12 Apr 2013 07:18:50 +0000 (15:18 +0800)]
ENGR00258357-3: mlb: Reset whole CDR in init function

Reset whole CDR in init function. This will make mlb connection to MITB
more stable.
This is a missed part in mx6 rm's mlb section, but new in mlb's latest
spec DS62420AP2.pdf 12.1.1-1.
Without this patch, mlb may receive irq from MITB during initialization.
It might cause some connection issue that mlb can't receive data
sometimes. It was treat to be MITB's fault before we get the latest
spec.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00258357-2: mlb: Add more debug msgs in DEBUG mode
Terry Lv [Fri, 12 Apr 2013 04:16:10 +0000 (12:16 +0800)]
ENGR00258357-2: mlb: Add more debug msgs in DEBUG mode

Changes are:
1. Use print_hex_dump to print buffer in DEBUG mode.
2. Add more debug msgs.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00258357-1: mlb: Remove MLB150_ from macro define names
Terry Lv [Fri, 12 Apr 2013 04:08:07 +0000 (12:08 +0800)]
ENGR00258357-1: mlb: Remove MLB150_ from macro define names

Remove MLB150_ from macro define names to make code clean.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00257847-2 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active
Ranjani Vaidyanathan [Mon, 1 Apr 2013 21:03:31 +0000 (16:03 -0500)]
ENGR00257847-2 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active

All of the interrupts from the ENET block are not routed to
the GPC block. Hence ENET interrupts are not able to wake
up the SOC when the system is in WAIT mode. And the ENET
interrupt gets serviced only when another interrupt causes
the SOC to exit WAIT mode. This impacts the ENET performance.

To fix the issue two options:
1. Route the ENET interrupt to a GPIO. Need to enable the
CONFIG_MX6_ENET_IRQ_TO_GPIO in the config.
2. If the GPIO mechanism cannot be used and is not enabled
by the above mentioned config, the patch will disable entry
to WAIT mode until ENET clock is active. When the ENET clock
is disabled, WAIT mode will be automatically enetered.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00257847-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active
Ranjani Vaidyanathan [Mon, 1 Apr 2013 21:02:35 +0000 (16:02 -0500)]
ENGR00257847-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active

All of the interrupts from the ENET block are not routed to
the GPC block. Hence ENET interrupts are not able to wake
up the SOC when the system is in WAIT mode. And the ENET
interrupt gets serviced only when another interrupt causes
the SOC to exit WAIT mode. This impacts the ENET performance.

To fix the issue two options:
1. Route the ENET interrupt to a GPIO. Need to enable the
CONFIG_MX6_ENET_IRQ_TO_GPIO in the config.
This patch provides support for routing the ENET interrupt
to GPIO_1_6. Routing to this GPIO requires no HW board mods.
If the GPIO_1_6 is being used for some other peripheral,
this patch can be followed to route the ENET interrupt to
any other GPIO though a HW mode maybe required.
2. If the GPIO mechanism cannot be used and is not enabled
by the above mentioned config, the patch will disable entry
to WAIT mode until ENET clock is active. When the ENET clock
is disabled, WAIT mode will be automatically enetered.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00256417: MLB: can't receive data in wait mode
Terry Lv [Thu, 11 Apr 2013 09:05:00 +0000 (17:05 +0800)]
ENGR00256417: MLB: can't receive data in wait mode

For MLB uses iram for data transfer, and there's a missing of dependency
on iram in MLB's clock setting, MLB can't receive data in wait mode.
We need to add ocram clock dependency in MLB clock.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agomtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.c
Harald Nordgard-Hansen [Fri, 23 Nov 2012 22:11:03 +0000 (23:11 +0100)]
mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.c

When working on a problem with some flash chips that lock up during
write-buffer operations, I think there may be a bug in the linux
handling of chips using cfi_cmdset_0002.c.

The datasheets I have found for a number of these chips all specify that
when aborting a write-buffer command, it is not enough to use the
standard reset.  Rather a "write-to-buffer-reset command" is needed.
This command is quite similar for all chips, the main variance seem to
be if the final 0xF0 can go to any address or must go to addr_unlock1.

The bug is then in the recovery handling when timing out at the end of
do_write_buffer, where using the normal reset command is not sufficient.

Without this change, if the write-buffer command fails then any
following operations on the flash also fail.

Signed-off-by: Harald Nordgard-Hansen <hhansen@pvv.org>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: cfi_cmdset_0002: Micron M29EW bugfixes as per TN-13-07
Gerlando Falauto [Tue, 3 Jul 2012 07:09:47 +0000 (09:09 +0200)]
mtd: cfi_cmdset_0002: Micron M29EW bugfixes as per TN-13-07

Fix the following issues with Micron's (formerly Numonyx)
M29EW NOR flash chips, as documented on TN-13-07:
- Correcting Erase Suspend Hang Ups (page 20)
- Resolving the Delay After Resume Issue (page 22)

Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: cfi_cmdset_0002: Slight cleanup of fixup messages
David Woodhouse [Mon, 14 May 2012 04:34:24 +0000 (23:34 -0500)]
mtd: cfi_cmdset_0002: Slight cleanup of fixup messages

These should be semicolons, not commas.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: add fixup for S29NS512P NOR flash.
Javier Martin [Fri, 11 May 2012 10:15:41 +0000 (12:15 +0200)]
mtd: add fixup for S29NS512P NOR flash.

Spansion S29NS512P flash uses a 16bit transfer to report number
of sectors instead of two 8bit accesses as CFI specifies.

Artem: remove warning message which said that we are applying the
fixup - no need to scary the user unnecessarily.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: chips: cfi_cmdset_0002: Match ENABLE_VPP()/DISABLE_VPP() calls
Paul Parsons [Wed, 7 Mar 2012 14:11:16 +0000 (14:11 +0000)]
mtd: chips: cfi_cmdset_0002: Match ENABLE_VPP()/DISABLE_VPP() calls

This patch is part of a set which fixes unnecessary flash erase and write errors
resulting from the MTD CFI driver turning off vpp while an erase is in progress.
This patch ensures that only those flash operations which call ENABLE_VPP() can
then call DISABLE_VPP(). Other operations should never call DISABLE_VPP().

Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: cfi: AMD/Fujitsu compatibles: add panic write support
Ira W. Snyder [Fri, 6 Jan 2012 19:29:19 +0000 (11:29 -0800)]
mtd: cfi: AMD/Fujitsu compatibles: add panic write support

This allows the mtdoops driver to work on flash chips using the
AMD/Fujitsu compatible command set.

As the code comments note, the locks used throughout the normal code
paths in the driver are ignored, so that the chance of writing out the
kernel's last messages are maximized.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: cleanup style on pr_debug messages
Brian Norris [Tue, 19 Jul 2011 17:06:10 +0000 (10:06 -0700)]
mtd: cleanup style on pr_debug messages

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agomtd: replace DEBUG() with pr_debug()
Brian Norris [Tue, 19 Jul 2011 17:06:09 +0000 (10:06 -0700)]
mtd: replace DEBUG() with pr_debug()

Start moving away from the MTD_DEBUG_LEVEL messages. The dynamic
debugging feature is a generic kernel feature that provides more
flexibility.

(See Documentation/dynamic-debug-howto.txt)

Also fix some punctuation, indentation, and capitalization that went
along with the affected lines.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00257755-4 ASoC: WM8962: Disable FLL when chip's not being used
Nicolin Chen [Mon, 8 Apr 2013 13:12:07 +0000 (21:12 +0800)]
ENGR00257755-4 ASoC: WM8962: Disable FLL when chip's not being used

There might be a case that SYSCLK_SRC is not FLL, but FLL's still open.
If so, next time we use FLL as SYSCLK_SRC, it won't work normally.

This patch disabled FLL if FLL's enabled no matter what SYSCLK_SRC is.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00257755-3 Revert "ENGR00256933 ASoC: WM8962: Add delay after FLL-enable"
Nicolin Chen [Tue, 9 Apr 2013 01:12:31 +0000 (09:12 +0800)]
ENGR00257755-3 Revert "ENGR00256933 ASoC: WM8962: Add delay after FLL-enable"

This reverts commit 739325483d12276b80b34d7916e6cdb6d8774900.

We already reverted FLL-enable code in set_fll(), so we don't need delay any
more.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00257755-2 Revert "ENGR00256310 ASoC: imx-wm8962: Fix playback abnormally"
Nicolin Chen [Mon, 8 Apr 2013 11:58:26 +0000 (19:58 +0800)]
ENGR00257755-2 Revert "ENGR00256310 ASoC: imx-wm8962: Fix playback abnormally"

This reverts commit 80dd80156772ff155aaf5420e41346674a9521f0.

With this patch, WM8962 couldn't work normally after SabreSD power-on.
So revert it and find a better solution.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00257755-1 Revert "ASoC: wm8962: Don't automatically enable and disable"
Nicolin Chen [Mon, 8 Apr 2013 11:38:34 +0000 (19:38 +0800)]
ENGR00257755-1 Revert "ASoC: wm8962: Don't automatically enable and disable"

This reverts commit e2bd4d2117e1c78cfd487fb10848f3361b358057.

With this patch, WM8962 couldn't work normally after SabreSD power-on.
So revert it and find a better solution.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00257947 mtd: use memcpy to replace the memcpy_fromio
Huang Shijie [Mon, 8 Apr 2013 08:56:46 +0000 (16:56 +0800)]
ENGR00257947 mtd: use memcpy to replace the memcpy_fromio

During the read of NOR, the kernel actually calls the inline_map_copy_from()
to read the data out. And inline_map_copy_from() will use the memcpy_fromio()
to do the real job.

The memcpy_fromio macro maps _memcpy_fromio() in the current code.
But the _memcpy_fromio() will use readb() to do the copy work one byte
by one byte. This makes the read performance of NOR very slow(about 2~3MB/s).

A similiar discussion could be found in:
http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/003860.html

This patch replace the memcpy_fromio with memcpy which is optimized by the
kernel.

The following is the result from mtd_speedtest with M29W256GL7AN6E:
=================================================
mtd_speedtest: MTD device: 2
mtd_speedtest: not NAND flash, assume page size is 512 bytes.
mtd_speedtest: MTD device size 4194304, eraseblock size 131072, page size 512,
count of eraseblocks 32, pages per eraseblock 256, OOB size 0
mtd_speedtest: testing eraseblock write speed
mtd_speedtest: eraseblock write speed is 845 KiB/s
mtd_speedtest: testing eraseblock read speed
mtd_speedtest: eraseblock read speed is 19504 KiB/s
mtd_speedtest: testing page write speed
mtd_speedtest: page write speed is 845 KiB/s
mtd_speedtest: testing page read speed
mtd_speedtest: page read speed is 19140 KiB/s
mtd_speedtest: testing 2 page write speed
mtd_speedtest: 2 page write speed is 846 KiB/s
mtd_speedtest: testing 2 page read speed
mtd_speedtest: 2 page read speed is 19320 KiB/s
mtd_speedtest: Testing erase speed
mtd_speedtest: erase speed is 233 KiB/s
mtd_speedtest: Testing 2x multi-block erase speed
mtd_speedtest: 2x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 4x multi-block erase speed
mtd_speedtest: 4x multi-block erase speed is 224 KiB/s
mtd_speedtest: Testing 8x multi-block erase speed
mtd_speedtest: 8x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 16x multi-block erase speed
mtd_speedtest: 16x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 32x multi-block erase speed
mtd_speedtest: 32x multi-block erase speed is 225 KiB/s
mtd_speedtest: Testing 64x multi-block erase speed
mtd_speedtest: 64x multi-block erase speed is 224 KiB/s
mtd_speedtest: finished
=================================================

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00257658 Revert "ENGR00256893-1 MX6Q/DL-Fix Ethernet performance issue
Jason Liu [Sun, 7 Apr 2013 01:10:25 +0000 (09:10 +0800)]
ENGR00257658 Revert "ENGR00256893-1 MX6Q/DL-Fix Ethernet performance issue

This reverts commit 067c8dcfa79a169d86809272569fe734c4222c79.

i.mx6dl/dq sabreauto/sabresd board will boot up failed
randomly with this patch-set, thus revert it. [Jason]

Signed-off-by: Jason Liu <r64343@freescale.com>
10 years agoENGR00257658 Revert "ENGR00256893-2 MX6Q/DL-Fix Ethernet performance issue
Jason Liu [Sun, 7 Apr 2013 01:08:42 +0000 (09:08 +0800)]
ENGR00257658 Revert "ENGR00256893-2 MX6Q/DL-Fix Ethernet performance issue

This reverts commit 573bab0be2427d6664420eaf9d8e272dbe9d840f.

i.mx6dl/dq sabreauto/sabresd board will boot up failed
randomly with this patch-set, thus revert it. [Jason]

Signed-off-by: Jason Liu <r64343@freescale.com>
10 years agoENGR00255518 ipu/ipu3: using the kernel common help function div_u64
Jason Liu [Wed, 3 Apr 2013 05:45:39 +0000 (13:45 +0800)]
ENGR00255518 ipu/ipu3: using the kernel common help function div_u64

We don't need invent the wheel to implement the wrap for the _do_div,
we can use the kernel common helper function for the u64 divide with
div_u64() function call

This also fix the build break when CONFIG_DEBUG_SECTION_MISMATCH=y with
GCC4.6.3 cross-compile toolchain.

CC      init/version.o
LD      init/built-in.o
LD      .tmp_vmlinux1
drivers/built-in.o: In function `_do_div.part.1':
clkdev.c:(.text+0x15c23c): undefined reference to `__aeabi_uldivmod'
clkdev.c:(.text+0x15c25c): undefined reference to `__aeabi_uldivmod'
clkdev.c:(.text+0x15c2bc): undefined reference to `__aeabi_uldivmod'
clkdev.c:(.text+0x15c3ac): undefined reference to `__aeabi_uldivmod'
clkdev.c:(.text+0x15c3d0): undefined reference to `__aeabi_uldivmod'

This issue is caused by the wrongly optimized code produced by GCC,
See the bug report here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48783

The similar build break issue report at:
http://lists.infradead.org/pipermail/linux-mtd/2012-May/041677.html

Signed-off-by: Jason Liu <r64343@freescale.com>
10 years agoENGR00256918 IPUv3 common:Correct CSI_PRP_MEM disable routine
Liu Ying [Mon, 1 Apr 2013 08:52:27 +0000 (16:52 +0800)]
ENGR00256918 IPUv3 common:Correct CSI_PRP_MEM disable routine

For both CSI_MEMx and CSI_PRP_VF(ENC)_MEM capture channels,
we disable them with the following sequence:
1) Wait for an idmac channel eof interrupt.
2) Disable CSI by clearing CSIx_EN in IPU_CONF register.
3) Disable idmac channel by clearing relevant bit in
   IPU_IDMAC_CH_EN_1 register and other settings.

However, currently, we don't do 3) until CSI_PRP_VF(ENC)_MEM's
idmac channel being not busy by a while loop check. In case, an
external sensor is plugged out from the system or the sensor is
somehow broken, we will be unable to get out of that infinite
while loop. Since this check is unnecessary(we've already
waited for an idmac eof interrupt), this patch simply removes
it from the disable routine of CSI_PRP_VF(ENC)_MEM channel.

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

10 years agoENGR00255371 v4l2 fg overlay:workaround ipu warning
Liu Ying [Wed, 27 Mar 2013 07:45:49 +0000 (15:45 +0800)]
ENGR00255371 v4l2 fg overlay:workaround ipu warning

There is annoying ipu warning when doing preview
by using v4l2 fg overlay component:
/unit_tests/mxc_v4l2_overlay.out -iw 320 -ih 240 -ow 1280
-oh 720 -r 0 -fg -t 5
imx-ipuv3 imx-ipuv3.0: IDMAC12's EBA0 is not 8-byte aligned
This warning can be seen only when preview size is bigger
than 1024*1024(ipu device driver split mode is enabled).
After debug, it appears that the unaligned buffer address
is caused by input cropping for left strip, and this
cropping is triggered by the split mode algrithm. The
algrithm is complex, so currently this patch only changes
the input pixel format of the ipu task from UYVY to NV12
to workaround this warning.

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

10 years agoENGR00253652 ov5640 dvp:Align iq setting with mipi camera
Liu Ying [Mon, 25 Mar 2013 03:32:36 +0000 (11:32 +0800)]
ENGR00253652 ov5640 dvp:Align iq setting with mipi camera

According to the OV FAE, the image quality(iq) setting is
from 0x5000 register to 0x3a1f register in the camera's
initialization setting. This patch aligns image quality
setting of ov5640 dvp camera to ov5640 mipi camera.
The registers whose values are changed are 0x5001, 0x5189,
0x518b, 0x518d, 0x518e, 0x518f, 0x5199, 0x519c and 0x519d.
This change may improve the image quality of 5M/1M/VGA/QVGA
taken pictures in Android according to test team observation.

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

10 years agoENGR00237365: board-mx6q_sabreauto fix mipi-csi2 settings
Adrian Alonso [Tue, 19 Feb 2013 16:49:19 +0000 (10:49 -0600)]
ENGR00237365: board-mx6q_sabreauto fix mipi-csi2 settings

* Correct mipi-csi2 settings only one data line is used
* Add mx6q_mipi_csi1_io_init ipu-csi setting callback
  use virtual channel 1 and attach it to CSI1 -> IPU0
* Set i2c slave address to 0x52
* Set ipu-csi clko_clk

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
10 years agoENGR00254896 mx6: hdmidongle: Fix compile error.
Zhang Xiaodong [Wed, 20 Mar 2013 08:06:35 +0000 (16:06 +0800)]
ENGR00254896 mx6: hdmidongle: Fix compile error.

After enable PICE in kernel config, building will meet
fatal error:linux/wakelock.h: No such file or directory

Signed-off-by: Zhang Xiaodong <B39117@freescale.com>
10 years agoENGR00243289 egalax_ts: Add support for single-touch
Eric Nelson [Thu, 30 Aug 2012 04:50:30 +0000 (21:50 -0700)]
ENGR00243289 egalax_ts: Add support for single-touch

Add support for single-touch for the Egalax Touch driver

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@freescale.com>
10 years agoENGR00256315-5 mtd: cfi_cmdset_0002: print @adr when write timeout occurs
Huang Shijie [Mon, 1 Apr 2013 09:32:00 +0000 (17:32 +0800)]
ENGR00256315-5 mtd: cfi_cmdset_0002: print @adr when write timeout occurs

Print out the @adr when the write timeout occurs.
This is useful to check if the write timeouts occur at the
same address.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00256315-4 ARM: imx6: weim-nor: set proper PAD value
Huang Shijie [Mon, 1 Apr 2013 05:54:09 +0000 (13:54 +0800)]
ENGR00256315-4 ARM: imx6: weim-nor: set proper PAD value

Set the proper pad values for the pins used for address.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00256315-3 ARM: WEIM-NOR: set the proper timing
Huang Shijie [Fri, 22 Mar 2013 07:14:08 +0000 (15:14 +0800)]
ENGR00256315-3 ARM: WEIM-NOR: set the proper timing

These timings are calculated from the M29W256GL7AN6E.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00256315-2 Revert "ENGR00244769-1 [NOR FLASH]-Improve WEIM NOR speed"
Huang Shijie [Tue, 26 Mar 2013 05:50:03 +0000 (13:50 +0800)]
ENGR00256315-2 Revert "ENGR00244769-1 [NOR FLASH]-Improve WEIM NOR speed"

This reverts commit 4020b38fe2f0283af7630dbed28ed32d64118a83.

After apply these two patches, we can not pass the stress test.
So revert these two patches.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00256315-1 Revert "ENGR00244769-2 [NOR FLASH]-Improve WEIM NOR speed"
Huang Shijie [Tue, 26 Mar 2013 05:49:37 +0000 (13:49 +0800)]
ENGR00256315-1 Revert "ENGR00244769-2 [NOR FLASH]-Improve WEIM NOR speed"

This reverts commit 58209e14383520d58b1bf74e0e9f98f7d05b80c6.

After apply these two patches, we can not pass the stress test.
So revert these two patches.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00256893-2 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active
Ranjani Vaidyanathan [Mon, 1 Apr 2013 21:03:31 +0000 (16:03 -0500)]
ENGR00256893-2 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active

All of the interrupts from the ENET block are not routed to
the GPC block. Hence ENET interrupts are not able to wake
up the SOC when the system is in WAIT mode. And the ENET
interrupt gets serviced only when another interrupt causes
the SOC to exit WAIT mode. This impacts the ENET performance.

To fix the issue two options:
1. Route the ENET interrupt to a GPIO. Need to enable the
CONFIG_MX6_ENET_IRQ_TO_GPIO in the config.
This patch provides support for routing the ENET interrupt
to GPIO_1_6. Routing to this GPIO requires no HW board mods.
If the GPIO_1_6 is being used for some other peripheral,
this patch can be followed to route the ENET interrupt to
any other GPIO though a HW mode maybe required.
2. If the GPIO mechanism cannot be used and is not enabled
by the above mentioned config, the patch will disable entry
to WAIT mode until ENET clock is active. When the ENET clock
is disabled, WAIT mode will be automatically enetered.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00256893-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active
Ranjani Vaidyanathan [Mon, 1 Apr 2013 21:02:35 +0000 (16:02 -0500)]
ENGR00256893-1 MX6Q/DL-Fix Ethernet performance issue when WAIT mode is active

All of the interrupts from the ENET block are not routed to
the GPC block. Hence ENET interrupts are not able to wake
up the SOC when the system is in WAIT mode. And the ENET
interrupt gets serviced only when another interrupt causes
the SOC to exit WAIT mode. This impacts the ENET performance.

To fix the issue two options:
1. Route the ENET interrupt to a GPIO. Need to enable the
CONFIG_MX6_ENET_IRQ_TO_GPIO in the config.
This patch provides support for routing the ENET interrupt
to GPIO_1_6. Routing to this GPIO requires no HW board mods.
If the GPIO_1_6 is being used for some other peripheral,
this patch can be followed to route the ENET interrupt to
any other GPIO though a HW mode maybe required.
2. If the GPIO mechanism cannot be used and is not enabled
by the above mentioned config, the patch will disable entry
to WAIT mode until ENET clock is active. When the ENET clock
is disabled, WAIT mode will be automatically enetered.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00256933 ASoC: WM8962: Add delay after FLL-enable
Nicolin Chen [Tue, 2 Apr 2013 07:27:01 +0000 (15:27 +0800)]
ENGR00256933 ASoC: WM8962: Add delay after FLL-enable

  There's a start-up time after FLL_ENA bit is set. While the driver didn't
run the delay code which already exists in the set_fll() function.
  This patch let the driver run into the delay section, and made it work more
perfectly.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00256310 ASoC: imx-wm8962: Fix playback abnormally slower issue
Nicolin Chen [Tue, 2 Apr 2013 05:39:25 +0000 (13:39 +0800)]
ENGR00256310 ASoC: imx-wm8962: Fix playback abnormally slower issue

  Previously, we didn't close FLL after playback/capture, which might cause
FLL work werid after a long time suspend.
  This patch manually disables FLL after playback/capture.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoASoC: wm8962: Don't automatically enable and disable FLL
Mark Brown [Fri, 27 Jan 2012 19:54:03 +0000 (19:54 +0000)]
ASoC: wm8962: Don't automatically enable and disable FLL

Only enable and disable the FLL when explicitly told to, supporting some
additional use cases and making the driver behaviour more standard.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit a968d9db3b3a9329587b09bd15f4981473c63a9d)

10 years agoENGR00256543 mx6: Update equation for thermal sensor on i.MX6DL
Anson Huang [Fri, 29 Mar 2013 01:44:41 +0000 (09:44 +0800)]
ENGR00256543 mx6: Update equation for thermal sensor on i.MX6DL

Use universal equation and 25C's calibration data to
get thermal sensor's ratio on i.MX6DL.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00256820-2 ASoC: imx-wm8962: Fix incorrect setting of wm8962's FLL source
Nicolin Chen [Mon, 1 Apr 2013 09:52:17 +0000 (17:52 +0800)]
ENGR00256820-2 ASoC: imx-wm8962: Fix incorrect setting of wm8962's FLL source

  WM8962's internal FLL is sourced from MCLK on SabreSD, while the machine
driver set its source to OSC, which's definitely wrong.
  So This patch changed its source to MCLK to prevent some potential issue.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00256820-1 ASoC: WM8962: revert FLL-disable before FLL-setting
Nicolin Chen [Mon, 1 Apr 2013 09:51:30 +0000 (17:51 +0800)]
ENGR00256820-1 ASoC: WM8962: revert FLL-disable before FLL-setting

  The patch at the commit 30293bc6 dropped FLL-disabling code from wm8962
driver, which was a work around for CR 00209905. Since we fixed the issue in
a better way(commit 018958f4), we don't need the work around any more.
  And in wm8962's datasheet, Wolfson suggests that driver should disable and
re-enable the FLL after the other registers're updated. So it's better for us
to revert the code to prevent some potential issue.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00254106 Avoid incorrect GPU frequency scaling be overwritten
Loren Huang [Sat, 30 Mar 2013 05:53:10 +0000 (13:53 +0800)]
ENGR00254106 Avoid incorrect GPU frequency scaling be overwritten

Correct code to remove unnecessary GPU frequency scaling updte.
This patch is from vivante.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
10 years agoENGR00256629 V4L2 output: Fix color bar issue on 1080p HDMI display
Wayne Zou [Mon, 25 Mar 2013 04:56:46 +0000 (12:56 +0800)]
ENGR00256629 V4L2 output: Fix color bar issue on 1080p HDMI display

When doing video playback on video16, which is also the first framebuffer
and used for fb console as well, there is a color bar on top of 1080p screen.
We need to make sure the correct vmode when doing pan display.

Signed-off-by: Wayne Zou <b36644@freescale.com>
10 years agoENGR00255104 The opening time of cs42888 is very long, about 400ms
b02247 [Fri, 29 Mar 2013 06:09:43 +0000 (14:09 +0800)]
ENGR00255104 The opening time of cs42888 is very long, about 400ms

In this commit 957bc47ffbad8532f0e8f6463946e8c04bc3176f, add msleep(400)
for reducing noise in the hw_params, but this time is very long for opening
device.
In this patch, remove this time and use the "Soft Ramp on Zero Crossings" to
reduce the noise.

Signed-off-by: b02247 <b02247@freescale.com>
10 years agoENGR00255406 net: fec: Workaround tx hang due to TDAR bit cleared by uDMA
Fugang Duan [Wed, 27 Mar 2013 10:23:16 +0000 (18:23 +0800)]
ENGR00255406 net: fec: Workaround tx hang due to TDAR bit cleared by uDMA

MTIP enet IP have one IC issue recorded at PDM ticket:TKT168103

The issue description:
The TDAR bit after being set by software is not acted upon by the ENET
module due to the timing of when the ENET state machine clearing the
TDAR bit occurring coincident or momentarily after the software sets
the bit.

The result:
The corresponding transmit packet for an incoming ping is delayed.

Workaround:
This forces the ENET module to check the Transmit buffer descriptor
and take action if the “ready” flag is set. Otherwise the ENET module
returns to idle mode.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00255322 Disable non-contiguous memory using for VG
Loren Huang [Thu, 28 Mar 2013 10:14:17 +0000 (18:14 +0800)]
ENGR00255322 Disable non-contiguous memory using for VG

Current OpenVG doesn't support to use non-contiguous memory.
Forbid VG to try to allocate non-contiguous memory when video
memory is used up temporarily.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang
10 years agoENGR00255111 battery: fix voltage decreased only while discharging
Robin Gong [Mon, 25 Mar 2013 06:27:42 +0000 (14:27 +0800)]
ENGR00255111 battery: fix voltage decreased only while discharging

If system run higher cpu loading with bigger current, such as GPU or VPU,
the voltage of battery will decrease down quickly  and rise up later.But the
battery driver only permit voltage decreasing while discharging before, in
other words, in the above case , the voltage will keep in very low level,
although the voltage will rise back again.

Now, remove the constrain in the code. Of course, with the patch, voltage will
down and rise back when run high loading user case, but it's better than
LOW ALWAYS, in worst case, the battery capacity will be 0 as test team reported

Please note :
Current battery capaity is not accurate because of hardware
design defect(ENGR00219632) on Sabresd.So please ignore the accuracy issue.

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00255481 mx6: Update equation for thermal sensor
Anson Huang [Wed, 13 Mar 2013 06:01:01 +0000 (14:01 +0800)]
ENGR00255481 mx6: Update equation for thermal sensor

Use universal equation and 25C's calibration data to
get thermal sensor's ratio.

If want to use old calibration method, please add
"use_calibration" into kernel command line.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00255491 ov5640: Fix build break by make modules
Robby Cai [Fri, 22 Mar 2013 05:27:11 +0000 (13:27 +0800)]
ENGR00255491 ov5640: Fix build break by make modules

Fix the kernel modules building error for mx6q/mx6dl as follows:

LD [M] drivers/usb/gadget/g_serial.o
Building modules, stage 2.
MODPOST 48 modules
ERROR: "csi_enable_mclk" [drivers/media/video/mxc/capture/ov5640_camera.ko]
undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00255484-3 msl: usb: add clock deinit at fail path
Peter Chen [Fri, 22 Mar 2013 05:46:23 +0000 (13:46 +0800)]
ENGR00255484-3 msl: usb: add clock deinit at fail path

If not, the clocks usage will be mismatch

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00255484-2 usb: ehci-arc: add NULL pointer check for pdata->pdev
Peter Chen [Fri, 22 Mar 2013 05:16:22 +0000 (13:16 +0800)]
ENGR00255484-2 usb: ehci-arc: add NULL pointer check for pdata->pdev

The pdata->pdev is initialized at platform code, if init
fails at first, it will be not initialized, and platform exit
will not be called. This also fixes an oop when config usb
module wrongly:

Unable to handle kernel NULL pointer dereference at virtual address 0000005c
pgd = ba1c4000
[0000005c] *pgd=4a145831, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] PREEMPT SMP
Modules linked in: ehci_hcd(+) usbcore
CPU: 1    Not tainted  (3.0.35-02451-ge361da1 #60)
PC is at fsl_usb_host_uninit_ext+0xc/0x28
LR is at usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd]
pc : [<80062b58>]    lr : [<7f060934>]    psr: a0000013
sp : ba11be80  ip : 00005027  fp : 000a76e0
r10: 00000048  r9 : ba11a000  r8 : bfd4d608
r7 : ffffffed  r6 : bfd4d600  r5 : bfc84400  r4 : 80aaee48
r3 : 80062b4c  r2 : 00000000  r1 : 60000093  r0 : 00000000
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c53c7d  Table: 4a1c404a  DAC: 00000015
Process modprobe (pid: 1555, stack limit = 0xba11a2f0)
Stack: (0xba11be80 to 0xba11c000)
be80: bfd97600 7f060934 00000000 00000000 bfd4d608 bfd4d608 80aca808 bfd4d63c
bea0: 7f062bd4 80041704 ba11a000 00000000 000a76e0 802a5cec bfd4d608 802a4a14
bec0: bfd4d608 7f062bd4 bfd4d63c 00000000 80041704 802a4bac 7f062bd4 ba11bee8
bee0: 802a4b20 802a4254 bffd4040 bff03f38 7f065000 7f062bd4 80a934c8 bfc8cd20
bf00: 00000000 802a3be0 7f062b1c 7f062bd4 00000000 7f017ec8 7f062bd4 00000000
bf20: 7f065000 80041704 00000000 802a51a0 7f017ec8 80aae500 00000000 7f065000
bf40: 80041704 7f065058 000a79e8 8003b4c4 00000000 00000000 00000000 80a14834
bf60: 000a79e8 000a79e8 7f062c20 00000000 0000e67b 80041704 ba11a000 00000000
bf80: 000a76e0 800aa428 ba076740 800f58dc 000a79e8 0000e67b 00000000 000a75d0
bfa0: 00000080 80041580 0000e67b 00000000 000a79e8 0000e67b 000a75d0 000a76e0
bfc0: 0000e67b 00000000 000a75d0 00000080 000a6a78 00000008 000a76a0 000a76e0
bfe0: 7ec7ab50 7ec7ab40 0001a32c 2ace6490 20000010 000a79e8 4fffe821 4fffec21
[<80062b58>] (fsl_usb_host_uninit_ext+0xc/0x28) from [<7f060934>]
(usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd])
[<7f060934>] (usb_hcd_fsl_probe+0x2c8/0x44c [ehci_hcd]) from [<802a5cec>]
(platform_drv_probe+0x18/0x1c)
[<802a5cec>] (platform_drv_probe+0x18/0x1c) from [<802a4a14>]
(driver_probe_device+0x98/0x1a4)
[<802a4a14>] (driver_probe_device+0x98/0x1a4) from [<802a4bac>]
(__driver_attach+0x8c/0x90)
[<802a4bac>] (__driver_attach+0x8c/0x90) from [<802a4254>]
(bus_for_each_dev+0x60/0x8c)
[<802a4254>] (bus_for_each_dev+0x60/0x8c) from [<802a3be0>]
(bus_add_driver+0x184/0x25c)
[<802a3be0>] (bus_add_driver+0x184/0x25c) from [<802a51a0>]
(driver_register+0x78/0x13c)
[<802a51a0>] (driver_register+0x78/0x13c) from [<7f065058>]
(ehci_hcd_init+0x58/0x88 [ehci_hcd])
[<7f065058>] (ehci_hcd_init+0x58/0x88 [ehci_hcd]) from [<8003b4c4>]
(do_one_initcall+0x30/0x16c)
[<8003b4c4>] (do_one_initcall+0x30/0x16c) from [<800aa428>]
(sys_init_module+0x84/0x19c)
[<800aa428>] (sys_init_module+0x84/0x19c) from [<80041580>]
(ret_fast_syscall+0x0/0x30)
Code: 80aaee48 e92d4010 e30e4e48 e34840aa (e590005c)
---[ end trace 719afdfe4af3a442 ]---

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00255484-1 msl: usb: add NULL poiner check for fsl_xcvr_ops
Peter Chen [Thu, 21 Mar 2013 02:12:07 +0000 (10:12 +0800)]
ENGR00255484-1 msl: usb: add NULL poiner check for fsl_xcvr_ops

Add NULL pointer check for global fsl_xcvr_ops

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00255482 ASoC: HDMI-audio: Add error message for HDMI-video detect failure
Nicolin Chen [Fri, 22 Mar 2013 02:57:07 +0000 (10:57 +0800)]
ENGR00255482 ASoC: HDMI-audio: Add error message for HDMI-video detect failure

  HDMI-audio depends on HDMI-video. If users want to use HDMI-audio function,
they need to load HDMI-video first. Sometime users would forget to put video
info into U-boot cmdline, "video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24" for
example. That might cause HDMI-auido driver fail to detect HDMI-video.
  Previously, if this happened to system, driver only returned with "ENOMEM"
and system would print "Can't allocate memory". This might confuse users due
to the vague infomation. Users would be hard to figure out the root cause.
  So this patch just add some error message to give users a clear indication,
and changed the "ENOMEM" error number to the more precise "ENODEV".

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00255029 ASoC: spdif: fix clk_enable/disable() mismatched issue
Nicolin Chen [Wed, 20 Mar 2013 03:09:17 +0000 (11:09 +0800)]
ENGR00255029 ASoC: spdif: fix clk_enable/disable() mismatched issue

  The function might be returned if the CNEW wasn't detected, while in this
case the code won't disable the clk.
  This patch just fixed the mismatch.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00252064-3 camera: ov5640: fix missed setting for light_frequency
Robby Cai [Thu, 14 Mar 2013 09:58:01 +0000 (17:58 +0800)]
ENGR00252064-3 camera: ov5640: fix missed setting for light_frequency

Confirmed from OV, the missed setting for light_frequency need to be added.

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00252064-2 mx6sl: ov5640: need enable MCLK before read sensor ID
Robby Cai [Thu, 14 Mar 2013 08:51:00 +0000 (16:51 +0800)]
ENGR00252064-2 mx6sl: ov5640: need enable MCLK before read sensor ID

After the patch of auto-detection for sensor pushed, there's a need to
read sensor ID in probe function. But on MX6SL, MCLK is not enabled at
that time. So need to enable it before read sensor ID.

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00252064-1 csi/v4l: need power on sensor for its initialization
Robby Cai [Thu, 14 Mar 2013 08:37:09 +0000 (16:37 +0800)]
ENGR00252064-1 csi/v4l: need power on sensor for its initialization

Need power on the sensor for its initialization, otherwise the sensor can
not work properly.

Signed-off-by: Sheng Nan <b38800@freescale.com>
Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00254931 IPUv3 Fb: Fix display twinkling issue during suspend/resume
Wayne Zou [Tue, 19 Mar 2013 01:38:04 +0000 (09:38 +0800)]
ENGR00254931 IPUv3 Fb: Fix display twinkling issue during suspend/resume

Fix display twinkling issue when video playback on LVDS during suspend/resume.
The issue happens when the rootfs application Xfbdev calls fb_set_var() for IPU
BG fb to unblank the console, so it wants to reinitialize the IPU BG. However,
IPU FG is still being used for video playback.It is reasonable to refuse
reprogramme because of the resources confilct.

Signed-off-by: Wayne Zou <b36644@freescale.com>
10 years agoENGR00254442 Sabre ARD Include WEIM-NOR on imx6_updater_defconfig
Alejandro Sierra [Thu, 14 Mar 2013 21:58:46 +0000 (15:58 -0600)]
ENGR00254442 Sabre ARD Include WEIM-NOR on imx6_updater_defconfig

Sabre ARD include WEIM-NOR configuration update to
enable higher bandwidth on this interface for mfg tool
support (imx6_updater_defconfig).

Signed-off-by: Alex Sierra <b18039@freescale.com>
10 years agoENGR00253355 ARM: imx6q/imx6dl: Set proper PAD value for WEIM NOR
Huang Shijie [Fri, 15 Mar 2013 09:26:35 +0000 (17:26 +0800)]
ENGR00253355 ARM: imx6q/imx6dl: Set proper PAD value for WEIM NOR

Set proper pad value for WEIM NOR. Without setting these pad value
the weim-nor can not work.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00254457 mx6dl: fix mx6dl TO1.1 can't enter 'mem'
Robin Gong [Fri, 15 Mar 2013 04:37:04 +0000 (12:37 +0800)]
ENGR00254457 mx6dl: fix mx6dl TO1.1 can't enter 'mem'

The previous patch ENGR00251630 didn't notice mx6q_revision() will
return -EINVAL and will match 'mx6q_revision()<IMX_CHIP_REVISION_1_1'
,then mx6dl TO1.1 will also change suspend state to 'standby'.

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00254267 MX6DL/MX6SL max freq: Fix max cpu freq at 1G on MX6DL ARD
Robin Gong [Thu, 14 Mar 2013 09:19:44 +0000 (17:19 +0800)]
ENGR00254267 MX6DL/MX6SL max freq: Fix max cpu freq at 1G on MX6DL ARD

For MX6DL,align max cpufreq judge by SPEED_GRADING fuse bit with MX6DQ.
For MX6SL without the fuse bit, we need add condition check, if found
arm_max_freq set by default , change to1G. Else decided by 'arm_freq'
setting by cmdline.

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00243315-6 ADV7180:Remove unnecessary header files
Liu Ying [Fri, 8 Mar 2013 09:16:20 +0000 (17:16 +0800)]
ENGR00243315-6 ADV7180:Remove unnecessary header files

This patch removes unnesessary header files in the driver.

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

10 years agoENGR00243315-5 ADV7180:Power management adjustment
Liu Ying [Fri, 8 Mar 2013 09:01:28 +0000 (17:01 +0800)]
ENGR00243315-5 ADV7180:Power management adjustment

ADV7180 power down/on can be controlled by a gpio
pin or i2c register setting. The PDBP bit in 0x0f
register chooses the control source, and the PWRDWN
bit in 0x0f register chooses to power down the chip
or power on the chip if control source is i2c.
This patch removes all gpio pin power down/on code
after probe function and uses i2c to do power down/on
operation, as some boards may choose to not connect
ADV7180 power down pin with AP, however, AP's i2c bus
has to be connect with the ADV7180 chip.
Moveover, this patch also adds a 400ms sleep after
the chip is powered on, which is a workaround for
preview scrolling issue(we suspect that the chip
needs some time to in a stable status, so that it
may sends correct data to AP).

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

10 years agoENGR00243315-4 MXC V4L2 Capture:Improve debug info for s_std
Liu Ying [Fri, 8 Mar 2013 08:55:37 +0000 (16:55 +0800)]
ENGR00243315-4 MXC V4L2 Capture:Improve debug info for s_std

commit f8e1a3bb62eecf93a31a51c4dbe08a0214fa1d57 introduced an
annoying kernel log by changing a pure debug info to error level.
This patch reverts that change.

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

10 years agoENGR00243315-3 MXC V4L2 Capture:Remove unnecessary mclk setting
Liu Ying [Fri, 8 Mar 2013 08:44:41 +0000 (16:44 +0800)]
ENGR00243315-3 MXC V4L2 Capture:Remove unnecessary mclk setting

commit f8e1a3bb62eecf93a31a51c4dbe08a0214fa1d57 added a hard
coding for csi_parma.mclk setting to 27MHz. The comment added by
that commit is totally wrong by telling that csi_param.mclk
would be a kind of 'pixel clock' set in 'csi_data_dest' register.
This patch removes the unnecessary mclk setting for csi_param.mclk
variable, since it is only valid for CSI test mode.

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

10 years agoENGR00243315-2 IPUv3 CSI:Remove test mode clock setting
Liu Ying [Fri, 8 Mar 2013 08:33:35 +0000 (16:33 +0800)]
ENGR00243315-2 IPUv3 CSI:Remove test mode clock setting

This patch removes test mode clock setting in function
ipu_csi_init_interface(), since the setting is only
necessary for function _ipu_csi_set_test_generator().
This unnecessary setting is added wrongly by commit
f8e1a3bb62eecf93a31a51c4dbe08a0214fa1d57.

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

10 years agoENGR00243315-1 IPUv3 CSI:Correct CCIR code1/2 for PAL and NTSC
Liu Ying [Fri, 8 Mar 2013 08:01:48 +0000 (16:01 +0800)]
ENGR00243315-1 IPUv3 CSI:Correct CCIR code1/2 for PAL and NTSC

We reversed CCIR code1/2 setting before, which may brings
captured frame quality issue(jaggy edge can be seen). This
patch revert that change.

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

10 years agoENGR00253927 IPU: Fix NULL pointer bug when BG EOF interrupt occur early
Wayne Zou [Tue, 12 Mar 2013 08:54:59 +0000 (16:54 +0800)]
ENGR00253927 IPU: Fix NULL pointer bug when BG EOF interrupt occur early

Fix NULL pointer bug when IPU BG EOF interrupt occur before register irq handler
It can be reproduced on MIPI DSI display on i.mx6dl SabreSD board.

The sequence is:
a) enable display channel
b) pan display (fb_set_var()) -> ipu_enable_irq
c) ipu_request_irq
If an EOF interrupt comes before c and after b, the issue happens.

Signed-off-by: Wayne Zou <b36644@freescale.com>
10 years agoENGR00253418 IMX6 SabreSD Display: Support LVDS1 and HDMI dual display
Wayne Zou [Fri, 8 Mar 2013 07:29:49 +0000 (15:29 +0800)]
ENGR00253418 IMX6 SabreSD Display: Support LVDS1 and HDMI dual display

Support LVDS1 and HDMI dual display on SabreSD Rev.C board on i.mx6
By default, LVDS uses LDB_SEP1 mode due to the hardware design.

Signed-off-by: Wayne Zou <b36644@freescale.com>
10 years agoENGR00253947 EPDC: fix reboot failure
Robby Cai [Tue, 12 Mar 2013 11:17:50 +0000 (19:17 +0800)]
ENGR00253947 EPDC: fix reboot failure

This patch is to

1) add clock enablement before access EPDC registers, otherwise system may hang.

And,
2) fix unbalanced disablement for PMIC regulators

------------[ cut here ]------------
WARNING: at drivers/regulator/core.c:1422 _regulator_disable+0xf8/0x12c()
unbalanced disables for VCOM
Modules linked in:
[<80040518>] (unwind_backtrace+0x0/0xf8) from [<800671d8>]
(warn_slowpath_common +0x4c/0x64)
[<800671d8>] (warn_slowpath_common+0x4c/0x64) from [<80067284>]
(warn_slowpath_fmt+0x30/0x40)
[<80067284>] (warn_slowpath_fmt+0x30/0x40) from [<8024ef60>]
(_regulator_disable+0xf8/0x12c)
[<8024ef60>] (_regulator_disable+0xf8/0x12c) from [<8024efc4>]
(regulator_disable+0x30/0x70)
[<8024efc4>] (regulator_disable+0x30/0x70) from [<80241044>]
(mxc_epdc_fb_shutdown+0x18/0x84)
[<80241044>] (mxc_epdc_fb_shutdown+0x18/0x84) from [<80277f64>]
(platform_drv_shutdown+0x18/0x1c)
[<80277f64>] (platform_drv_shutdown+0x18/0x1c) from [<802751d0>]
(device_shutdown+0xac/0x124)
[<802751d0>] (device_shutdown+0xac/0x124) from [<8007812c>]
(kernel_restart_prepare+0x30/0x38)
[<8007812c>] (kernel_restart_prepare+0x30/0x38) from [<80078140>]
(kernel_restart+0xc/0x48)
[<80078140>] (kernel_restart+0xc/0x48) from [<80078290>]
(sys_reboot+0x10c/0x1c4)
[<80078290>] (sys_reboot+0x10c/0x1c4) from [<8003ad40>]
(ret_fast_syscall+0x0/0x30)
---[ end trace e392f5dd2f75e1a5 ]---
------------[ cut here ]------------
WARNING: at drivers/regulator/core.c:1422 _regulator_disable+0xf8/0x12c()
unbalanced disables for DISPLAY
Modules linked in:
[<80040518>] (unwind_backtrace+0x0/0xf8) from [<800671d8>]
(warn_slowpath_common+0x4c/0x64)
[<800671d8>] (warn_slowpath_common+0x4c/0x64) from [<80067284>]
(warn_slowpath_fmt+0x30/0x40)
[<80067284>] (warn_slowpath_fmt+0x30/0x40) from [<8024ef60>]
(_regulator_disable+0xf8/0x12c)
[<8024ef60>] (_regulator_disable+0xf8/0x12c) from [<8024efc4>]
(regulator_disable+0x30/0x70)
[<8024efc4>] (regulator_disable+0x30/0x70) from [<8024104c>]
(mxc_epdc_fb_shutdown+0x20/0x84)
[<8024104c>] (mxc_epdc_fb_shutdown+0x20/0x84) from [<80277f64>]
(platform_drv_shutdown+0x18/0x1c)
[<80277f64>] (platform_drv_shutdown+0x18/0x1c) from [<802751d0>]
(device_shutdown+0xac/0x124)
[<802751d0>] (device_shutdown+0xac/0x124) from [<8007812c>]
(kernel_restart_prepare+0x30/0x38)
[<8007812c>] (kernel_restart_prepare+0x30/0x38) from [<80078140>]
(kernel_restart+0xc/0x48)
[<80078140>] (kernel_restart+0xc/0x48) from [<80078290>]
(sys_reboot+0x10c/0x1c4)
[<80078290>] (sys_reboot+0x10c/0x1c4) from [<8003ad40>]
(ret_fast_syscall+0x0/0x30)
---[ end trace e392f5dd2f75e1a6 ]---

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00253849 EPDC: fix build warnings in epdc fb driver
Robby Cai [Tue, 12 Mar 2013 06:59:49 +0000 (14:59 +0800)]
ENGR00253849 EPDC: fix build warnings in epdc fb driver

This patch is to fix the following warnings:

drivers/video/mxc/mxc_epdc_fb.c:5062:2: warning: initialization from
incompatible pointer type [enabled by default]
drivers/video/mxc/mxc_epdc_fb.c:5062:2: warning: (near initialization for
'mxc_epdc_fb_driver.shutdown') [enabled by default]

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00253835: CAAM: Fix build warnings in caamhash.c
Terry Lv [Tue, 12 Mar 2013 05:45:28 +0000 (13:45 +0800)]
ENGR00253835: CAAM: Fix build warnings in caamhash.c

A warning was find in caamhash.c:
linux-2.6-imx/drivers/crypto/caam/caamhash.c: In function
'ahash_update_ctx':
linux-2.6-imx/drivers/crypto/caam/caamhash.c:850: warning: 'desc' may be
used uninitialized in this function

This commit is to fix it.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00169384 imx6q: uart: config and enble uart5
Jianzheng Zhou [Mon, 11 Mar 2013 09:41:26 +0000 (17:41 +0800)]
ENGR00169384 imx6q: uart: config and enble uart5

Config clock,irq,mux pad,data entry, etc to setup uart5.

Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
10 years agoENGR00252782 mxc v4l2 capture:Support csi number attribution
Liu Ying [Tue, 5 Mar 2013 06:54:51 +0000 (14:54 +0800)]
ENGR00252782 mxc v4l2 capture:Support csi number attribution

This patch adds device attribution for video device to
show csi number to userspace. The pattern is in "ipux_csix"
fashion, which tells which ipu and csi is relevant to a
specific video device. In this way, userspace may figure
out different cameras even if they have the same type,
especially, android may use this to know back/front
cameras.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00252559: mxc_v4l2_capture: ov5640: incorrect warning for XGA@15fps
Sheng Nan [Mon, 4 Mar 2013 06:47:48 +0000 (14:47 +0800)]
ENGR00252559: mxc_v4l2_capture: ov5640: incorrect warning for XGA@15fps

The following warning information should be displayed
only when the format is XGA and frame rate is 30fps:

pr_warning("ov5640: actual frame rate of XGA is 22.5fps\n");

Signed-off-by: Sheng Nan <b38800@freescale.com>
10 years agoENGR00252411: mxc_v4l2_capture: ov5642/ov5640 cannot both be set as build-in.
Sheng Nan [Mon, 4 Mar 2013 02:35:13 +0000 (10:35 +0800)]
ENGR00252411: mxc_v4l2_capture: ov5642/ov5640 cannot both be set as build-in.

ov5642 and ov5640 are inside choice "prompt "Select Camera/TV Decoder""
It prevents some modules are set as build-in at the same time.

All the cameras inside the choice are parallel cameras. There is no need to
include all of them inside a choice.

Know issues:
ADV7180 (out of the choice) and mipi ov camera (inside the choice)
can not be both selected for ARM2 board:
CSI0_MCLK pad is conflicted between adv7180 and mipi camera ext port.
Developers should know this.

Signed-off-by: Sheng Nan <b38800@freescale.com>
10 years agoENGR00252381: mxc_v4l2_capture: ov5640: incorrect return value of ov5640_probe
Sheng Nan [Fri, 1 Mar 2013 08:43:29 +0000 (16:43 +0800)]
ENGR00252381: mxc_v4l2_capture: ov5640: incorrect return value of ov5640_probe

ov5640_probe always return -1 when error happens. Actually we should use the
correct return value. For example, -ENODEV when no ov5640 is found.

Signed-off-by: Sheng Nan <b38800@freescale.com>
10 years agoENGR00252071-1: mxc_v4l2_capture: auto detection parallel ov5642 and ov5640
Sheng Nan [Fri, 1 Mar 2013 02:24:12 +0000 (10:24 +0800)]
ENGR00252071-1: mxc_v4l2_capture: auto detection parallel ov5642 and ov5640

Both ov5642 and ov5640 need to be supported for parallel port of
validation board and no code change is needed when change from one sensor
to another.

- Add additional common i2c id for ov5640 and ov5642 for auto dectection
- Since two sensors will be checked because of auto detection, so use warning
instead of error if sensor id don't match.
- Add found information to tell user which camera is found.

Signed-off-by: Sheng Nan <b38800@freescale.com>
10 years agoENGR00252071-2: mxc_v4l2_capture: ov5640_mipi: update probe print information
Sheng Nan [Fri, 1 Mar 2013 02:26:58 +0000 (10:26 +0800)]
ENGR00252071-2: mxc_v4l2_capture: ov5640_mipi: update probe print information

Because ov5642 and ov5640 changes the probe information due to auto detect,
ov5640_mipi should keep the same.

- Add found information to tell user ov5640_mipi is found.
- Use the same "not found" information as ov5642/ov5640.

Signed-off-by: Sheng Nan <b38800@freescale.com>
10 years agoENGR00252071-3: mxc_v4l2_capture: enable auto detect of ov5642/5640 in sabresd
Sheng Nan [Fri, 1 Mar 2013 02:30:02 +0000 (10:30 +0800)]
ENGR00252071-3: mxc_v4l2_capture: enable auto detect of ov5642/5640 in sabresd

- enable the auto detect for parallel ov5642 and ov5640 in sabresd board.

Signed-off-by: Sheng Nan <b38800@freescale.com>
10 years agoENGR00252071-4: mxc_v4l2_capture: enable auto detect of ov5642/5640 in sabrelite
Sheng Nan [Fri, 1 Mar 2013 02:30:36 +0000 (10:30 +0800)]
ENGR00252071-4: mxc_v4l2_capture: enable auto detect of ov5642/5640 in sabrelite

- enable the auto detect for parallel ov5642 and ov5640 in sabrelite board.

Signed-off-by: Sheng Nan <b38800@freescale.com>
10 years agoENGR00252162: mxc_v4l2_capture: ov5640: some formats have quality issue
Sheng Nan [Thu, 28 Feb 2013 10:26:38 +0000 (18:26 +0800)]
ENGR00252162: mxc_v4l2_capture: ov5640: some formats have quality issue

The following formats have quality issue:
- 30fps: 720p
- 15 fps: 1080p,qsxga

Quality issue happens on high resolutions.
So, increase the drive capability of ov5640 can fix this problem.

Signed-off-by: Sheng Nan <b38800@freescale.com>
10 years agoENGR00234501 ASoC: spdif: fix Ubuntu reboot hang issue
Nicolin Chen [Mon, 11 Mar 2013 09:09:14 +0000 (17:09 +0800)]
ENGR00234501 ASoC: spdif: fix Ubuntu reboot hang issue

  spdif driver registered kcontrol for ALSA subsystem controlling, while some
of those kcontrol functions lack of clk_enable() before register-accessing. So
system would definitely hang when those functions're called, which did happen
during reboot test on Ubuntu due to its pulse-audio.
  This patch added paired clk_en/disable() to those functions so as to pevent
system hang issue.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Tested-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00253290-2 ASoC: imx-wm8962: fix continuous playback distortion issue
Nicolin Chen [Fri, 8 Mar 2013 03:03:27 +0000 (11:03 +0800)]
ENGR00253290-2 ASoC: imx-wm8962: fix continuous playback distortion issue

  If DAC volume's set to a value that's lower than 0xd8, contineously FLL
setting of wm8962 in machine driver would cause playback distortion issue,
which happens to ENGR219882. so we have to put some another code in machine
driver to prevent distortion issue.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00253290-1 ASoC: wm8962: fix over-gained audio playback issue
Nicolin Chen [Fri, 8 Mar 2013 03:01:57 +0000 (11:01 +0800)]
ENGR00253290-1 ASoC: wm8962: fix over-gained audio playback issue

  We put some code to set default volumes in codec driver, but later we found
that one of volume was higher than 0db, which would cause over-gained volume.
  So this patch removed DAC default volume setting, and reverted the volume
interface of it to let user control the register from user space.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP access
Will Deacon [Fri, 11 May 2012 16:42:37 +0000 (17:42 +0100)]
ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP access

The vfp_enable function enables access to the VFP co-processor register
space (cp10 and cp11) on the current CPU and must be called with
preemption disabled. Unfortunately, the vfp_init late initcall does not
disable preemption and can lead to an oops during boot if thread
migration occurs at the wrong time and we end up attempting to access
the FPSID on a CPU with VFP access disabled.

This patch fixes the initcall to call vfp_enable from a non-preemptible
context on each CPU and adds a BUG_ON(preemptible) to ensure that any
similar problems are easily spotted in the future.

Cc: stable@vger.kernel.org
Reported-by: Hyungwoo Yang <hwoo.yang@gmail.com>
Signed-off-by: Hyungwoo Yang <hyungwooy@nvidia.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
[Fix merge conflict]
Signed-off-by: Jason Liu <r64343@freescale.com>
10 years agoENGR00251209-9 msl: usb: make global variable as drvdata
Peter Chen [Tue, 5 Mar 2013 03:21:04 +0000 (11:21 +0800)]
ENGR00251209-9 msl: usb: make global variable as drvdata

There is a bug when we try to remove wakeup module twice as
g_ctrl is a globle variable, in fact, it is per controller
wakeup driver, so the private data should be per device.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00251209-8 usb: fix the build error when building usb as loadable module
Peter Chen [Mon, 4 Mar 2013 09:42:52 +0000 (17:42 +0800)]
ENGR00251209-8 usb: fix the build error when building usb as loadable module

export usb_suspend, usb_resume, and pm_mutex

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00251209-7 usb: mark phy's low power flag as false at probe
Peter Chen [Mon, 4 Mar 2013 09:40:34 +0000 (17:40 +0800)]
ENGR00251209-7 usb: mark phy's low power flag as false at probe

PHY's low power flag was false at former logic, so this
change should not affect functions.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00251209-6 msl-mx6: usb: keep the phy lower flag as true defaultly
Peter Chen [Mon, 4 Mar 2013 09:35:02 +0000 (17:35 +0800)]
ENGR00251209-6 msl-mx6: usb: keep the phy lower flag as true defaultly

Keep the phy lower flag as true defaultly, the driver should mark
it as false when the driver begins to use PHY.
This fixes one bug that when build both host and gadget as loadable
modules, the phy lower flag is false if the related module is not
loaded, then, the wakeup interrupt will not be treated as happened
if host module is loaded, but gadget is not loaded, or vice verse.

Signed-off-by: Peter Chen <peter.chen@freescale.com>