]> git.kernelconcepts.de Git - karo-tx-linux.git/log
karo-tx-linux.git
10 years agoENGR00275459 mx6sl: csi/v4l: fix kernel dump when do repeated streamon/streamoff v3.0.35-fsl_4.1.0
Robby Cai [Thu, 15 Aug 2013 12:18:15 +0000 (20:18 +0800)]
ENGR00275459 mx6sl: csi/v4l: fix kernel dump when do repeated streamon/streamoff

When do stream on/off in pair repeatedly without close the v4l device,
the kernel dump happens:

Unable to handle kernel paging request at virtual address 00200200
pgd = c0004000
[00200200] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT
Modules linked in:
CPU: 0    Not tainted  (3.0.35-06027-gbbea887-dirty #21)
PC is at camera_callback+0x15c/0x1c8
LR is at 0x200200
pc : [<c03747d0>]    lr : [<00200200>]    psr: 20000193
sp : c0b0fed0  ip : 00200200  fp : daf1102c
r10: daf11034  r9 : 00100100  r8 : daf11098
r7 : daf11100  r6 : daf11034  r5 : daf11000  r4 : c0b0e000
r3 : 00000000  r2 : 00000001  r1 : 00000001  r0 : daf114b8
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 8cc8c059  DAC: 00000015

...

Process swapper (pid: 0, stack limit = 0xc0b0e2e8)
Stack: (0xc0b0fed0 to 0xc0b10000)
fec0:                                     c0374674 822a4000 daf11000 c0b87eb4
fee0: 00000000 00000027 c0b73904 c0b305e0 00000001 c0374090 da2bbbe0 c0b0e000
ff00: 00000000 c00acc58 00000000 c0098058 00989680 c0b305e0 c0b0e000 00000000
ff20: 00000002 00000001 c0b0e000 00000000 00000000 c00acdf8 00000000 c0b0e000
ff40: 9e4e7881 c0b305e0 c0b0e000 c00aee44 c00aed9c c0b43c6c 00000027 c00ac634
ff60: 00000270 c004257c ffffffff f2a00100 00000027 c00417cc 20000000 00000006
ff80: f40c4000 00000000 c0b0e000 c0b6a924 c0b1876c c0b18764 80004059 412fc09a
ffa0: 00000000 00000000 c0063a40 c0b0ffc0 c004f758 c0042690 80000013 ffffffff
ffc0: c004266c c004294c c0b1013c 00000000 c10960c0 c00088ec c0008334 00000000
ffe0: 00000000 c00337d4 10c53c7d c0b10060 c00337d0 80008040 00000000 00000000
[<c03747d0>] (camera_callback+0x15c/0x1c8) from [<c0374090>] (csi_irq_handler+
0x7c/0x160)
[<c0374090>] (csi_irq_handler+0x7c/0x160) from [<c00acc58>] (
handle_irq_event_percpu+0x50/0x19c)
[<c00acc58>] (handle_irq_event_percpu+0x50/0x19c) from [<c00acdf8>] (
handle_irq_event+0x54/0x84)
[<c00acdf8>] (handle_irq_event+0x54/0x84) from [<c00aee44>] (handle_fasteoi_irq
+0xa8/0x160)
[<c00aee44>] (handle_fasteoi_irq+0xa8/0x160) from [<c00ac634>] (
generic_handle_irq+0x2c/0x40)
[<c00ac634>] (generic_handle_irq+0x2c/0x40) from [<c004257c>] (handle_IRQ
+0x30/0x84)
[<c004257c>] (handle_IRQ+0x30/0x84) from [<c00417cc>] (__irq_svc+0x4c/0xa8)
[<c00417cc>] (__irq_svc+0x4c/0xa8) from [<c0042690>] (default_idle+0x24/0x28)
[<c0042690>] (default_idle+0x24/0x28) from [<c004294c>] (cpu_idle+0x8c/0xc0)
[<c004294c>] (cpu_idle+0x8c/0xc0) from [<c00088ec>] (start_kernel+0x294/0x2e4)
[<c00088ec>] (start_kernel+0x294/0x2e4) from [<80008040>] (0x80008040)
Code: e88c4200 e595c030 e5858030 e8881800 (e58c8000)
---[ end trace 224150c26d2bd5f7 ]---

The root cause is cam->enc_counter is not re-initialized to 0 when calls
STREAMOFF ioctl, and then in DQBUF ioctl wait_event_interruptible_timeout()
sees the condition is true and access cam->done_q queue which has no strict
check and could be empty.

This patch adds the re-initialization and the sanity check.
Also, add the pointer check for memcpy because the destination may be
NULL on UERSPTR mode.

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00275391 i.mx6d/q: disable the double linefill feature of PL310
Jason Liu [Tue, 13 Aug 2013 01:55:42 +0000 (09:55 +0800)]
ENGR00275391 i.mx6d/q: disable the double linefill feature of PL310

The L2 cache controller(PL310) version on the i.MX6D/Q is r3p1-50rel0
The L2 cache controller(PL310) version on the i.MX6DL/SOLO/SL is r3p2
But according to ARM PL310 errata: 752271
ID: 752271: Double linefill feature can cause data corruption
Fault Status: Present in: r3p0, r3p1, r3p1-50rel0. Fixed in r3p2
Workaround: The only workaround to this erratum is to disable the
double linefill feature. This is the default behavior.

[in the commit:c483abdca0011c1342bad42f16925dd5a2c7c091]
ENGR00271977-1 imx6_defconfig: enable PL310_ERRATA_769419

There is one error in the commit log, the correct PL310 version in
i.MX6DL/SOLO should be r3p2, not r3p1-50rel0.

so, PL310_ERRATA_769419, will not apply to i.MX6DL/SOLO. But since we build
one image to support both i.MX6Q and i.MX6DL/SOLO, the ideal solution is to
manage this errata in dynamic way. Someone did post the patches here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-January/145593.html

As the discussion on the above link, Russell King, the ARM arch maintainer said:

"As I already said, there is _no_ point making the barrier conditional;
it's probably more expensive to make it conditional than just to execute
it every time.  But we still might as well optimize it away if we are
running _only_ on platforms which _do_ _not_ have that errata."

So, we will turn on the PL310_ERRATA_769419 on both i.MX6D/Q and i.MX6DL/SOLO.

Signed-off-by: Jason Liu <r64343@freescale.com>
10 years agoENGR00274493 mx6sl: csi/v4l: Fix capture incorrect data with format UYVY
Robby Cai [Thu, 8 Aug 2013 09:45:17 +0000 (17:45 +0800)]
ENGR00274493 mx6sl: csi/v4l: Fix capture incorrect data with format UYVY

There's an interim buffer which should only be used when PxP CSC is used.
Otherwise the video buffer gets incorrect data by copying the content of
interim buffer. The patch fixes this by moving the memcpy to the right place.

Signed-off-by: Robby Cai <R63905@freescale.com>
(cherry picked from commit 8e0b8ff485dd7cdeabc653f1e27c271ac923710e)

10 years agoENGR00273432 DMA: imx-sdma: Allocate 4KB iram page size for bd
Nicolin Chen [Tue, 30 Jul 2013 06:49:29 +0000 (14:49 +0800)]
ENGR00273432 DMA: imx-sdma: Allocate 4KB iram page size for bd

One bd actually needs 4KB page size. So changed the iram_alloc()
size parameter to allocate a precise iram memory for bd.

This patch also removed the extra iram pool for SDMA due to its
insufficient total size: SDMA allows around 48 channels to work
simultaneously, so it's better to allocate memory from iram pool
directly.

[There will be 3KB size waste in sdma->channel_control, which is
640B but actually using 4KB due to 4KB alignment for iram pool.]

Acked-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00273973-2 Revert "ENGR00270573-1 [MX6SL]Add support for dynamic Power Gati
Robby Cai [Thu, 8 Aug 2013 03:34:19 +0000 (11:34 +0800)]
ENGR00273973-2 Revert "ENGR00270573-1 [MX6SL]Add support for dynamic Power Gati

This reverts commit 7b60e285b7b019185389326c2d989f5e42d9736e.

With the commit 881e21c1 and 7b60e285, the system will hang when do suspend
and resume stress test continuouly while run edpc test in the background.
Revert it now and revisit it later.

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00273973-1 Revert "ENGR00270573-2 [MX6SL]Add support for dynamic Power Gati
Robby Cai [Thu, 8 Aug 2013 03:34:02 +0000 (11:34 +0800)]
ENGR00273973-1 Revert "ENGR00270573-2 [MX6SL]Add support for dynamic Power Gati

This reverts commit 881e21c1275dcc40ccd63fb4fa46b990eeb4fb00.

With the commit 881e21c1 and 7b60e285, the system will hang when do suspend
and resume stress test continuouly while run edpc test in the background.
Revert it now and revisit it later.

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00274382 imx6q: fix can transceiver unwork on AI RevE baseboard
Dong Aisheng [Wed, 7 Aug 2013 12:20:27 +0000 (20:20 +0800)]
ENGR00274382 imx6q: fix can transceiver unwork on AI RevE baseboard

The transceiver TJA1041A on sabreauto RevE baseboard will
fail to transit to Normal state if EN/STBY is high by default
after board power up. So we set the EN/STBY initial state to low
first then to high to guarantee the state transition successfully.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
Acked-by: Jason Liu <r64343@freescale.com>
10 years agoENGR00273044 imx6_defconfig: enable CONFIG_USB_EHCI_TT_NEWSCHED
Peter Chen [Wed, 31 Jul 2013 03:44:35 +0000 (11:44 +0800)]
ENGR00273044 imx6_defconfig: enable CONFIG_USB_EHCI_TT_NEWSCHED

CONFIG_USB_EHCI_TT_NEWSCHED introduces a new schedule method
for periodic transfer, it can cover more peridic transfers which
introduced recently years.

Meanwhile, both PC and our 3.5.7 (and coming 3.10) enable it,
and have not found any issues, this commit also fixes a bug
this CR reported.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00272597 mx6-msl: usb: fix building warning when only build host driver
Peter Chen [Thu, 25 Jul 2013 06:28:04 +0000 (14:28 +0800)]
ENGR00272597 mx6-msl: usb: fix building warning when only build host driver

CC      arch/arm/mach-mx6/usb_h1.o
/home/b29397/work/projects/linux-2.6-imx/arch/arm/mach-mx6/usb_dr.c:
In function '_host_wakeup_enable':
/home/b29397/work/projects/linux-2.6-imx/arch/arm/mach-mx6/usb_dr.c:
522: warning: unused variable 'phy_reg'

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoFix for tcrypt test_ahash_speed function.
Winston Hudson [Sun, 21 Jul 2013 22:18:38 +0000 (15:18 -0700)]
Fix for tcrypt test_ahash_speed function.

This patch adds a null pointer check and explicitly frees memory in the
tcrypt.c function test_ahash_speed.

Signed-off-by: Winston Hudson <b45308@stc-mongo.am.freescale.net>
10 years agoENGR00272135 msl-mx6: usb-h1: Fix the bug that using the wrong register
Peter Chen [Tue, 23 Jul 2013 00:22:01 +0000 (08:22 +0800)]
ENGR00272135 msl-mx6: usb-h1: Fix the bug that using the wrong register

At host 1 code, we should use UH1_XXXX. The wrong register
access causing a bug that the u-disk disconnion at host 1
can't be recognized after system resume.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00272022 msl-mx6: usb: wait PHY clock stable explicitly
Peter Chen [Mon, 22 Jul 2013 04:05:24 +0000 (12:05 +0800)]
ENGR00272022 msl-mx6: usb: wait PHY clock stable explicitly

At mx6, if usb wakeup is not enabled, the PHY's power
will be off during the system suspend, so the dp/dm
will be unknown after the system resumes, it may wake up
controller at some boards since dp/dm's status satisfies
wake up condition. If the controller is waken up, the
PHCD will be cleared automatically.

According to IC requirement, after PHCD is cleared, we
need to wait 1ms before clear PHY's clock gate to wait
PHY's clock stable. At above condition, the PHCD is cleared
automatically, it may less than 1ms before we clear
PHY's clock gate, then, software operation to clear PHY's
clock gate will be useless. At this case, the PHY will works
abnormal, and cause the controller hang when we write some registers
(eg, portsc).

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00271977-2 imx6{s}_defconfig: enable ARM_ERRATA_775420
Jason Liu [Sat, 20 Jul 2013 03:23:29 +0000 (11:23 +0800)]
ENGR00271977-2 imx6{s}_defconfig: enable ARM_ERRATA_775420

the ARM core version we are using on the i.MX6 is
r2p10, thus, we need apply this ARM errata

Signed-off-by: Jason Liu <r64343@freescale.com>
10 years agoENGR00271977-1 imx6_defconfig: enable PL310_ERRATA_769419
Jason Liu [Sat, 20 Jul 2013 03:20:58 +0000 (11:20 +0800)]
ENGR00271977-1 imx6_defconfig: enable PL310_ERRATA_769419

The PL310 version we are using on the i.MX6Q/DL is r3p1-50rel0,
thus, we need enable this errata for i.MX6DQ/DL/SOLO.

i.MX6SL has the PL310 version: r3p2, no need enable this errata.

Signed-off-by: Jason Liu <r64343@freescale.com>
10 years agoARM: 7541/1: Add ARM ERRATA 775420 workaround
Simon Horman [Fri, 28 Sep 2012 01:12:45 +0000 (02:12 +0100)]
ARM: 7541/1: Add ARM ERRATA 775420 workaround

arm: Add ARM ERRATA 775420 workaround

Workaround for the 775420 Cortex-A9 (r2p2, r2p6,r2p8,r2p10,r3p0) erratum.
In case a date cache maintenance operation aborts with MMU exception, it
might cause the processor to deadlock. This workaround puts DSB before
executing ISB if an abort may occur on cache maintenance.

Based on work by Kouei Abe and feedback from Catalin Marinas.

Signed-off-by: Kouei Abe <kouei.abe.cp@rms.renesas.com>
[ horms@verge.net.au: Changed to implementation
  suggested by catalin.marinas@arm.com ]
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agoENGR00270573-2 [MX6SL]Add support for dynamic Power Gating of the display MIX
Ranjani Vaidyanathan [Fri, 12 Jul 2013 22:24:40 +0000 (17:24 -0500)]
ENGR00270573-2 [MX6SL]Add support for dynamic Power Gating of the display MIX

The display MIX can be power gated when EPDC, PXP and LCDIF are all inactive.
This will save around 1.5mW-1.8mW of power in system IDLE mode.
Need to re-initialize the EPDC and PXP whenever the display MIX is
powered up as all the register state is lost when the display MIX is
power gated.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00270573-1 [MX6SL]Add support for dynamic Power Gating of the display MIX
Ranjani Vaidyanathan [Fri, 12 Jul 2013 22:24:11 +0000 (17:24 -0500)]
ENGR00270573-1 [MX6SL]Add support for dynamic Power Gating of the display MIX

The display MIX can be power gated when EPDC, PXP and LCDIF are all inactive.
This will save around 1.5mW-1.8mW of power in system IDLE mode.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00255073 crypto: kernel dump when do crypto module speed test in single mode
Jason Liu [Fri, 19 Jul 2013 04:43:18 +0000 (12:43 +0800)]
ENGR00255073 crypto: kernel dump when do crypto module speed test in single mode

when do the crypto module speed test in single mode, meet the following dump:

Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = 8c804000
[00000000] *pgd=1c84b831, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1] PREEMPT SMP
Modules linked in: tcrypt(+)
CPU: 0    Tainted: G        W    (3.0.35-02642-g3a18d11-dirty #92)
PC is at __bug+0x1c/0x28
LR is at __bug+0x18/0x28
pc : [<80045390>]    lr : [<8004538c>]    psr: 60000013
sp : 8c925dd8  ip : a09b2000  fp : 881f8018
r10: 00000000  r9 : 881f8000  r8 : 8e5a0c08
r7 : 8c866840  r6 : 00000002  r5 : 00000010  r4 : 7f08bbe0
r3 : 00000000  r2 : 80ac9190  r1 : 80000093  r0 : 00000065
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c53c7d  Table: 1c80404a  DAC: 00000015
Process insmod (pid: 3994, stack limit = 0x8c9242f0)
Stack: (0x8c925dd8 to 0x8c926000)
5dc0:                                                       00000000 8004b548
5de0: 7f08bbe0 0f08bbe0 8db9a000 8c866840 8e5a0c08 803cd650 00000001 181f8038
5e00: 00000001 8db9a000 00000000 181f8038 881f8038 8b800000 00000010 1c866a70
5e20: 8db9a000 8db9a000 00000000 803cd26c 004eea5b 00000000 00000000 8db9a000
5e40: 8db9a000 80208db8 00000010 00000001 7f08b7b4 7f088b40 00000001 80aff320
5e60: 8e5330c0 80affe00 00000003 0000012c 8c866800 8c866840 00000000 00000000
5e80: 00000000 8c925e84 8c925e84 00000041 87654321 8b9c4be0 00000000 00001000
5ea0: 1c938000 87654321 8b9c4a0c 00000000 00001000 00000000 87654321 8b9bfd44
5ec0: 00000000 00001000 00000000 87654321 8b9c497e 00000000 00001000 00000000
5ee0: 7f08ba9c 7f08bbd0 7f08bbd0 000a7008 0000833c 80042284 7f08e000 8c924000
5f00: 00000000 7f08a3e0 7f08bbd0 000a7008 0000833c 00000010 7f08bbd0 000a7008
5f20: 0000833c 80042284 8c924000 7f08e06c 7f08ba90 00000000 000a7008 8003c588
5f40: 00000000 00000000 0000001f 00000020 00000017 00000014 00000012 00000000
5f60: 8c925f74 7f08ba90 00000000 000a7008 0000833c 80042284 8c924000 00000000
5f80: 00000000 800aae9c 8e4a6c80 800f307c 00000000 0000833c 7ee9adb4 7ee9aebf
5fa0: 00000080 80042100 0000833c 7ee9adb4 000a7020 0000833c 000a7008 7ee9aebf
5fc0: 0000833c 7ee9adb4 7ee9aebf 00000080 000001de 00000000 2ab5e000 00000000
5fe0: 7ee9abf0 7ee9abe0 0001a32c 2ac3e490 60000010 000a7020 aaaaaaaa aaaaaaaa
[<80045390>] (__bug+0x1c/0x28) from [<8004b548>]
 (___dma_single_cpu_to_dev+0xd4/0x108)
[<8004b548>] (___dma_single_cpu_to_dev+0xd4/0x108) from
[<803cd650>] (ahash_digest+0x3e4/0x61c)
[<803cd650>] (ahash_digest+0x3e4/0x61c) from
[<80208db8>] (crypto_ahash_op+0x40/0xf0)
[<80208db8>] (crypto_ahash_op+0x40/0xf0) from
[<7f088b40>] (test_ahash_speed.constprop.8+0x540/0x690 [tcrypt])
[<7f088b40>] (test_ahash_speed.constprop.8+0x540/0x690 [tcrypt]) from
[<7f08a3e0>] (do_test+0x1270/0x1dd0 [tcrypt])
[<7f08a3e0>] (do_test+0x1270/0x1dd0 [tcrypt]) from
[<7f08e06c>] (tcrypt_mod_init+0x6c/0xc8 [tcrypt])
[<7f08e06c>] (tcrypt_mod_init+0x6c/0xc8 [tcrypt]) from
[<8003c588>] (do_one_initcall+0x10c/0x170)
[<8003c588>] (do_one_initcall+0x10c/0x170) from
[<800aae9c>] (sys_init_module+0x74/0x19c)
[<800aae9c>] (sys_init_module+0x74/0x19c) from
[<80042100>] (ret_fast_syscall+0x0/0x30)
Code: e59f0010 e1a01003 eb131d31 e3a03000 (e5833000)

Signed-off-by: Hudson Winston <B45308@freescale.com>
Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com>
Signed-off-by: Jason Liu <r64343@freescale.com>
Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00271566 usb: otg: comment otg_statemachine which we do not need
Peter Chen [Wed, 17 Jul 2013 08:05:17 +0000 (16:05 +0800)]
ENGR00271566 usb: otg: comment otg_statemachine which we do not need

We have not implemented fully OTG support, so we can't call
otg_statemachine since the state machine may incorrect at current
dual-role switch design.
At existed code, it will call otg_statemachine, in fact, it doesn't
need. Besides, it causes one kernel dump at Sabreauto board due
to it calls gpio API at spin lock, but at Sabreauto board the
USB power GPIO is expanded by MAX7310 which calls i2c read/write
and will schedule itself.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00271718 ASoC: Fix check for symmetric rate enforcement
Nicolin Chen [Thu, 18 Jul 2013 12:05:07 +0000 (20:05 +0800)]
ENGR00271718 ASoC: Fix check for symmetric rate enforcement

This patch is copied from commit 25b7679136fd85b1e5197e36a0ca126163e89590
Just unable to cherry-pick due to different file names.

The ASoC core tries to not enforce symmetric rates when
two streams open simultaneously. It does so by checking
rtd->rate being zero. This works exactly once after booting
because it is not set to zero again when the streams close.
Fix this by setting rtd->rate when no active stream is left.

[This leads to lots of warnings about not enforcing the symmetry in some
situations as there's a race in the userspace API where we know we've
got two applications but don't know what rates they want to set.
-- broonie ]

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
10 years agoENGR00268119 ASoC: WM8962: Fix tilted left-right volume setting for ADC
Nicolin Chen [Fri, 21 Jun 2013 04:09:46 +0000 (12:09 +0800)]
ENGR00268119 ASoC: WM8962: Fix tilted left-right volume setting for ADC

In probe(), we set LEFT_ADC_VOLUME but failed to set RIGHT_ADC_VOLUME due to
typo during coding, thus fix it.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit ae3eb591ed9f61579a4217c6ddfd19d32e8f3cc5)

10 years agoENGR00271053-3 mx6sl: csi/v4l2: remove PAGE_ALIGN for image size calculation
Robby Cai [Mon, 15 Jul 2013 10:54:49 +0000 (18:54 +0800)]
ENGR00271053-3 mx6sl: csi/v4l2: remove PAGE_ALIGN for image size calculation

The driver should inform the upper-lever application the exact size of
the image. PAGE_ALIGN macro should be removed.

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00271053-2 mx6sl: csi/v4l2: add strict check for crop setting
Robby Cai [Mon, 15 Jul 2013 10:50:09 +0000 (18:50 +0800)]
ENGR00271053-2 mx6sl: csi/v4l2: add strict check for crop setting

add the strict check for crop setting in S_CROP ioctl

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00271053-1 mx6sl: csi/v4l2: add cropcap ioctl support
Robby Cai [Mon, 15 Jul 2013 10:46:28 +0000 (18:46 +0800)]
ENGR00271053-1 mx6sl: csi/v4l2: add cropcap ioctl support

- add the CROPCAP ioctrl support

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00271609 mmc: correct the wrong calculation of the boot size
Richard Zhu [Thu, 18 Jul 2013 04:39:11 +0000 (12:39 +0800)]
ENGR00271609 mmc: correct the wrong calculation of the boot size

The original calculation of the boot size is wrong.
Fix it by the right calculation.

Signed-off-by: Richard Zhu <r65037@freescale.com>
10 years agoENGR00271577 sdma: fix the compiling warning
Huang Shijie [Thu, 18 Jul 2013 02:48:47 +0000 (10:48 +0800)]
ENGR00271577 sdma: fix the compiling warning

In the imx6sl, we meet the compiling warning shows below:
--------------------------------------------------------------------
drivers/dma/imx-sdma.c: In function Pleasesdma_iram_free:
drivers/dma/imx-sdma.c:366: warning: passing argument 2 of
Pleasegen_pool_free makes integer from pointer without a cast
include/linux/genalloc.h:58: note: expected Pleaselong unsigned integer
but argument is of type Pleaselong unsigned int *Please
drivers/dma/imx-sdma.c: In function Pleasesdma_load_script:
drivers/dma/imx-sdma.c:452: warning: passing argument 2 of
Pleasesdma_iram_malloc makes pointer from integer without a cast
drivers/dma/imx-sdma.c:352: note: expected Pleaselong unsigned
int *Please but argument is of type Pleaselong unsigned integer
drivers/dma/imx-sdma.c:475: warning: passing argument 1 of
Pleasesdma_iram_free makes pointer from integer without a cast
drivers/dma/imx-sdma.c:361: note: expected Pleaselong unsigned
int *Please but argument is of type Pleasedma_addr_t
drivers/dma/imx-sdma.c: In function Pleasesdma_request_channel:
drivers/dma/imx-sdma.c:942: warning: passing argument 2 of
Pleasesdma_iram_malloc makes pointer from integer without a cast
drivers/dma/imx-sdma.c:352: note: expected Pleaselong unsigned int
*Please but argument is of type Pleaselong unsigned integer
drivers/dma/imx-sdma.c: In function Pleasesdma_free_chan_resources:
drivers/dma/imx-sdma.c:1109: warning: passing argument 1 of
Pleasesdma_iram_free makes pointer from integer without a cast
drivers/dma/imx-sdma.c:361: note: expected Pleaselong unsigned int
*Please but argument is of type Pleasedma_addr_t
drivers/dma/imx-sdma.c: In function Pleasesdma_init:
drivers/dma/imx-sdma.c:1505: warning: passing argument 2 of
Pleasesdma_iram_malloc from incompatible pointer type
drivers/dma/imx-sdma.c:352: note: expected Pleaselong unsigned int
*Please but argument is of type Pleasedma_addr_t *Please
--------------------------------------------------------------------

this patch fixes it.

Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00271344L Fix for ENGR00267024 introduced compilation warning
Jay Monkman [Tue, 16 Jul 2013 23:46:17 +0000 (18:46 -0500)]
ENGR00271344L Fix for ENGR00267024 introduced compilation warning

Fixed code so condition causing the warning never occurs.

Signed-off-by: Jay Monkman <jay.monkman@freescale.com>
10 years agoENGR00261419 MX6Q HDMI CEC: Unit test failed put TV to powerdown.
Sandor Yu [Wed, 10 Jul 2013 07:45:50 +0000 (15:45 +0800)]
ENGR00261419 MX6Q HDMI CEC: Unit test failed put TV to powerdown.

TV will been setting powerdown state when first run HDMI CEC unit
test on MX6Q, but failed in the secondly run and loop in print
message:
sleep for ready!
sleep for ready!
sleep for ready!
...

It is cause by cec interrupter been enabled before interrupter
polarity setting, controler will received fake interrupter,
and cec unit test will get wrong device state.

Fix the issue with move interrupter polarity setting code before
interrupter enabled.

Signed-off-by: Sandor Yu <R01008@freescale.com>
10 years agoENGR00269623 mlb150: fix compile warning
Dong Aisheng [Tue, 16 Jul 2013 08:19:54 +0000 (16:19 +0800)]
ENGR00269623 mlb150: fix compile warning

  CC [M]  drivers/gpu/drm/drm_global.o
drivers/mxc/mlb/mxc_mlb150.c: In function 'mxc_mlb150_open':
drivers/mxc/mlb/mxc_mlb150.c:1910: warning: format '%x'
expects type 'unsigned int', but argument 2 has type 'void *'
....

Signed-off-by: Dong Aisheng <b29396@freescale.com>
10 years agoENGR00270802 usb: otg: delete redundant vbus off operation
Peter Chen [Fri, 12 Jul 2013 05:45:49 +0000 (13:45 +0800)]
ENGR00270802 usb: otg: delete redundant vbus off operation

The problem locates at:

fsl_otg_start_host(fsm, 0);
if (pdata->wake_up_enable)
pdata->wake_up_enable(pdata, false);
otg_drv_vbus(fsm, 0);

fsl_otg_start_host(fsm, 0) internally calls fsl_otg_drv_vbus(), which does
the same thing as otg_drv_vbus(fsm, 0). More critically, we need disable
VBUS wakeup before close VBUS operation, otherwise unexpected VBUS
wakeup will occur. The solution is to remove the call of fsl_otg_drv_vbus()
in fsl_otg_start_host().

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00269468 IPUv3 dev:Silence an annoying warning message
Liu Ying [Fri, 12 Jul 2013 07:44:18 +0000 (15:44 +0800)]
ENGR00269468 IPUv3 dev:Silence an annoying warning message

We call the function ipu_calc_stripes_sizes() to calculate
stripe settings for vdi split mode. Chances are that the
parameters output_frame_width and maximal_stripe_width for the
function satisfy the relationship 'output_frame_width <=
maximal_stripe_width' and make the function return non-zero
value. This causes the IPU device driver generates an annoying
warning message, though the default stripe settings still can
work. This patch simply silences the warning message by reducing
the print log level from error to debug.

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

10 years agoENGR00270996 net:fec: fix fec probe fail due to gpio_irq check error
Fugang Duan [Mon, 15 Jul 2013 05:41:03 +0000 (13:41 +0800)]
ENGR00270996 net:fec: fix fec probe fail due to gpio_irq check error

Board files correctly define fec gpio irq to wake up wait mode since FEC
interrupt cannot connect to GPC, otherwise board files define fec gpio irq
to -1. So, fec probe function check the gpio irq to decide whether fec use
gpio irq or fec irq.

Current irq checking logic is incorrect. Correct the gpio irq checking.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00270697-2 net:fec: correct fec MDC clock source
Fugang Duan [Thu, 11 Jul 2013 11:07:50 +0000 (19:07 +0800)]
ENGR00270697-2 net:fec: correct fec MDC clock source

For imx6 serial silicon, fec MDC clock parent is ipg 66MHz.
The current clock file define the clock source is enet_pll8 50Mhz.
So, the MDC clock is more than 2.5Mhz after divider.

The phy Ar8031 work fine in current MDC clock, which shows the phy
have exceeding flexibility. Correct the parent clock source to make
MDC clock little than 2.5Mhz.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00270697-1 MX6: correct fec MDC clock source
Fugang Duan [Thu, 11 Jul 2013 10:59:20 +0000 (18:59 +0800)]
ENGR00270697-1 MX6: correct fec MDC clock source

For imx6 serial silicon, fec MDC clock parent is ipg 66MHz.
The current clock file define the clock source is enet_pll8 50Mhz.
So, the MDC clock is more than 2.5Mhz after divider.

The phy Ar8031 work fine in current MDC clock, which shows the phy
have exceeding flexibility. Correct the parent clock source to make
MDC clock little than 2.5Mhz.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00262502-2 [MX6Q/MX6DLS]Add commandline option to route enet irq to gpio
Ranjani Vaidyanathan [Tue, 9 Jul 2013 21:13:48 +0000 (16:13 -0500)]
ENGR00262502-2 [MX6Q/MX6DLS]Add commandline option to route enet irq to gpio

Add a command line option to route the ENET interrupts to the GPIO_1_6.
To route the ENET interrupts to GPIO_6 add "enet_gpio_6" to the
kernel command line.

Also remove the CONFIG option (MX6_ENET_IRQ_TO_GPIO).

This commit should be applied on top of following commits:
72c86f0b9a953e91bb1ed31021b71f337050bc28
808863866d2c17aeb3e70a7fcd094bd96db4b601
bae4d40849f3acdd9663f5a0857c9415ed7e6d5d

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00262502-1 [MX6Q/MX6DLS]Add commandline option to route enet irq to gpio
Ranjani Vaidyanathan [Tue, 9 Jul 2013 21:11:31 +0000 (16:11 -0500)]
ENGR00262502-1 [MX6Q/MX6DLS]Add commandline option to route enet irq to gpio

Add a command line option to route the ENET interrupts to the GPIO_1_6.
To route the ENET interrupts to GPIO_6 add "enet_gpio_6" to the
kernel command line.

Also remove the CONFIG option (MX6_ENET_IRQ_TO_GPIO).

This commit should be applied on top of following commits:
72c86f0b9a953e91bb1ed31021b71f337050bc28
808863866d2c17aeb3e70a7fcd094bd96db4b601
bae4d40849f3acdd9663f5a0857c9415ed7e6d5d

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
10 years agoENGR00269619 mxc vout:improve vb handling for 3 field deinterlacing
Liu Ying [Thu, 11 Jul 2013 08:21:48 +0000 (16:21 +0800)]
ENGR00269619 mxc vout:improve vb handling for 3 field deinterlacing

We need 2 video buffers to get a deinterlaced frame in VDI low motion
mode or medium motion mode. When there is no enough video buffer in
the active list, no one triggers the video buffer timer, then users
may be blocked at dqueue buffer ioctrl if they are in blocking mode.
In order to fix this issue, we may peek the first available video
buffer in the queue list so that the buffer may be taken as a reference
video buffer to do deinterlacing. If there is no video buffer in the
queue list, we should make users be able to trigger the timer again
when they queue buffers to the driver.

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

10 years agoENGR00270401 ASoC: imx-wm8962: Add parameters checking for hw_params
Nicolin Chen [Wed, 10 Jul 2013 06:36:00 +0000 (14:36 +0800)]
ENGR00270401 ASoC: imx-wm8962: Add parameters checking for hw_params

WM8962 doesn't support asymmetric parameters for playback and capture,
so add hw_params check in machine driver to obviate some potential risks.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit 85059ec43e34662feca2c58b3a31cf93d79d00bc)

10 years agoENGR00263553 fb: Change type uint to unsigned int in struct mxcfb_update_data
Robby Cai [Wed, 10 Jul 2013 12:46:47 +0000 (20:46 +0800)]
ENGR00263553 fb: Change type uint to unsigned int in struct mxcfb_update_data

This file could be included in user-space application while uint is not quite
standard type. This patch changed to unsigned int to avoid to include specific
header file. This is requested from mm team.

Signed-off-by: Robby Cai <R63905@freescale.com>
(cherry picked from commit 318a325b8c19d1ba7c1451797da5a161e787c64d)

10 years agoENGR00255733 MX6SL: Enable DISPLAY power gating only on TO1.2
Robby Cai [Mon, 25 Mar 2013 08:04:40 +0000 (16:04 +0800)]
ENGR00255733 MX6SL: Enable DISPLAY power gating only on TO1.2

Add chip revision checking and only enable DISPLAY power gating on TO1.2

Signed-off-by: Robby Cai <R63905@freescale.com>
10 years agoENGR00269827 mx6sl: lcdif: fix lcd timing setting
Robby Cai [Fri, 5 Jul 2013 07:38:08 +0000 (15:38 +0800)]
ENGR00269827 mx6sl: lcdif: fix lcd timing setting

The commit 0c0334779a08cca6c5a509570c944fe229837a21
corrected the v_period/v_wait_cnt, h_period/h_wait_cnt caculation in elcdif
framebuffer driver but in WVGA panel timing setting the left_margin and
upper_margin includes the length of hsyn_len and vsyn_len.
Thus the timing setting for lcd panel is not correct.
This patch fixes it.

Signed-off-by: Robby Cai <R63905@freescale.com>
(cherry picked from commit 9c04adb3c7b95459153873556ff0566d837ee325)

10 years agoENGR00261293-2 mx6sl: csi/v4l2: add hflip/vflip/rotation support
Robby Cai [Thu, 4 Jul 2013 09:31:24 +0000 (17:31 +0800)]
ENGR00261293-2 mx6sl: csi/v4l2: add hflip/vflip/rotation support

Use ePxP to do the horizontal/vertical flip and rotation support

Signed-off-by: Robby Cai <R63905@freescale.com>
(cherry picked from commit d0b9c741601b766213af1332329963f4267cd0c6)

10 years agoENGR00261293-1 mx6sl: csi/v4l2: resize function not work for v4l2 capture
Robby Cai [Mon, 1 Jul 2013 06:28:22 +0000 (14:28 +0800)]
ENGR00261293-1 mx6sl: csi/v4l2: resize function not work for v4l2 capture

- the root cause is pxp input/output buffer for csi post-processing is
  same one, some part of content is overridded.
- use S_CROP ioctl to control crop, S_FMT to control output size.

Signed-off-by: Robby Cai <R63905@freescale.com>
(cherry picked from commit 9f3685ea1cd4e56b5d89bfbaf48920ba862edb49)

10 years agoENGR00265414-8 mxc: asrc: Improve channel setting interface
Nicolin Chen [Tue, 9 Jul 2013 08:09:58 +0000 (16:09 +0800)]
ENGR00265414-8 mxc: asrc: Improve channel setting interface

ASRC driver allows users to set channel number via PROC interface,
but only passes the total number equal 10.
This's not reasonable because ASRC can use total number lower than 10
if user assure each of them is an even number.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit d76d08c93550cf2de9b1eff569ad6c0928ba122c)

10 years agoENGR00265414-7 mxc: asrc: Set ASRC processing clock to recommended value
Nicolin Chen [Mon, 1 Jul 2013 08:53:37 +0000 (16:53 +0800)]
ENGR00265414-7 mxc: asrc: Set ASRC processing clock to recommended value

Set ASRC processing clock 56k/76k with the recommended value from spec.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit 0519d385f5ed78f3526b72a211ccf22ac77c102e)

10 years agoENGR00265414-6 mxc: asrc: Use same part of code for 3 pair configuration
Nicolin Chen [Mon, 1 Jul 2013 07:18:38 +0000 (15:18 +0800)]
ENGR00265414-6 mxc: asrc: Use same part of code for 3 pair configuration

The pair config code was prolix. Actually the three pair could use the same
part of code with different configurations. So remove the prolix code.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit feb58d669633b94f97f111d79f81cb4abf1bf2c1)

10 years agoENGR00265414-5 mxc: asrc: Remove duplicated code
Nicolin Chen [Tue, 4 Jun 2013 06:09:50 +0000 (14:09 +0800)]
ENGR00265414-5 mxc: asrc: Remove duplicated code

There's already a same section of code above the removed one.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit b69af65683f17bfa701fdbb2dd3a93f53dc3503b)

10 years agoENGR00265414-4 mxc: asrc: Reconstruct req_pair()
Nicolin Chen [Mon, 13 May 2013 09:39:28 +0000 (17:39 +0800)]
ENGR00265414-4 mxc: asrc: Reconstruct req_pair()

The old req_pair() constrained that only Pair B could afford 6 channels,
while actually not. So rewrite it to be more flexible.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit adbc9dbba6ee46c05c0878a8e3bab118981d62c7)

10 years agoENGR00265414-3 mxc: asrc: Add missing input clock and output clock
Nicolin Chen [Mon, 13 May 2013 09:22:07 +0000 (17:22 +0800)]
ENGR00265414-3 mxc: asrc: Add missing input clock and output clock

Added missing clock and revised the clock map for v2

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit c7e1b9af10cb579efaf7c4644170f6f8bee401e2)

10 years agoENGR00265414-2 mxc: asrc: Fix wrong comments for the I/O P/D offset
Nicolin Chen [Fri, 10 May 2013 03:34:37 +0000 (11:34 +0800)]
ENGR00265414-2 mxc: asrc: Fix wrong comments for the I/O P/D offset

The comments for the input/output prescaler and divider were swapped,
so reverse them.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit bb6347bc5acb1d59e001063968c18d1056807cf9)

10 years agoENGR00265414-1 mxc: asrc: Fix incorrect offset for output clock P/D of Pair C
Nicolin Chen [Fri, 10 May 2013 03:29:53 +0000 (11:29 +0800)]
ENGR00265414-1 mxc: asrc: Fix incorrect offset for output clock P/D of Pair C

The offset of output clock prescaler and divider were swapped, so reverse them.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit 4cda1ac12a8fdef84082212fb8fc5590c6c22fe7)

10 years agoENGR00270192 imx: pcie: toggle bit18 of grp1 fix pcie pm issue.
Richard Zhu [Tue, 9 Jul 2013 05:40:07 +0000 (13:40 +0800)]
ENGR00270192 imx: pcie: toggle bit18 of grp1 fix pcie pm issue.

Set bit18 of gpr1 before enter into supend, and clean it
after resume, can fix the following errata.
Errata ERR005723_PCIe PCIe does not support L2 Power Down.

Signed-off-by: Richard Zhu <r65037@freescale.com>
10 years agoENGR00255920-2 mxc vout:wait for 2 vsyncs when streamoff
Liu Ying [Wed, 10 Jul 2013 03:27:28 +0000 (11:27 +0800)]
ENGR00255920-2 mxc vout:wait for 2 vsyncs when streamoff

Some expiring video buffers may have been rendered to
display triple buffers for display. The relevant triple
buffers are set to be ready and depend on the display
hardware engine to switch them to be active on screen in
turn automatically. So, we need to wait for at least 2
vsyncs to make sure all of the expiring video buffers be
shown on display already.

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

10 years agoENGR00255920-1 mxc vout:Remove cancel_work_sync() when streamoff
Liu Ying [Wed, 10 Jul 2013 02:56:45 +0000 (10:56 +0800)]
ENGR00255920-1 mxc vout:Remove cancel_work_sync() when streamoff

We hope the queued works can be done before streamoff, since the
works will render expiring video buffers to display. But, the
function cancel_work_sync() cannot guarantee this. Instead, it
may cancel some queued works before they starts to work. This
patch removes the function call cancel_work_sync() when streamoff.
We rely on the function flush_workqueue() right after it to make
sure queued works be done before streamoff.

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

10 years agoENGR00270045: thermal: Add timeout for temperature update
Anson Huang [Mon, 8 Jul 2013 07:06:40 +0000 (15:06 +0800)]
ENGR00270045: thermal: Add timeout for temperature update

Need to add timeout for temperature update, otherwise, if suspend
comes during thermal sensor measurement, its power will be turned
off, and after resume, the delay work thread will never get
finish flag and result in thread forever loop, temperature will
never get updated. And if we wait for the measurement finish before
suspend, the time is too long for suspend, as one single measurement
would take as long as 100ms which is not good for suspend, so just
add a timeout.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00264701-2 Add new ioctl to lock VPU device
Hongzhang Yang [Wed, 29 May 2013 10:23:05 +0000 (18:23 +0800)]
ENGR00264701-2 Add new ioctl to lock VPU device

Add VPU_IOC_LOCK_DEV to lock VPU device

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
10 years agoENGR00264701-1 Add new ioctl to lock VPU device
Hongzhang Yang [Wed, 29 May 2013 10:18:15 +0000 (18:18 +0800)]
ENGR00264701-1 Add new ioctl to lock VPU device

Add VPU_IOC_LOCK_DEV to lock VPU device

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
10 years agoENGR00264650 VPU can not playback after driver reload
Hongzhang Yang [Wed, 3 Jul 2013 07:20:12 +0000 (15:20 +0800)]
ENGR00264650 VPU can not playback after driver reload

Picked from 3.5.7 branch and removed linux version check

Bug: VPU can not playback after driver reload
- To reproduce (if VPU is never powered off)
0. Build VPU driver as a loadable module
1. Playback
2. Unload driver
3. Reload driver
4. Playback

VPU was blocked in vpu_DecGetInitialInfo.

Root cause:
VPU is still alive after unload

Solution:
Reset VPU state before unload

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
10 years agoENGR00269532 Correct @file comment in mxc_vpu.h
Hongzhang Yang [Wed, 3 Jul 2013 07:18:14 +0000 (15:18 +0800)]
ENGR00269532 Correct @file comment in mxc_vpu.h

Correct @file comment in mxc_vpu.h

Signed-off-by: Hongzhang Yang <Hongzhang.Yang@freescale.com>
10 years agoENGR00269935 Fix the build break
Mahesh Mahadevan [Fri, 5 Jul 2013 20:34:11 +0000 (15:34 -0500)]
ENGR00269935 Fix the build break

Add missing parenthesis

Signed-off-by: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
10 years agoENGR00269604 Fix the set clock-rate for audio & video
Mahesh Mahadevan [Wed, 26 Jun 2013 14:44:59 +0000 (09:44 -0500)]
ENGR00269604 Fix the set clock-rate for audio & video

There is single method to set clock-rate for both audio and video pll-s
in i.MX6q clock system implementation. That's possible due to they have
similar set of registers with a different bases. But there is also one
common register: CCM_ANALOG_MISC2, which contains post-dividers.

In current implementation, independently of whether audio or video clock
is going to be set, the mask 0xc0000000 is applied to MISC2 register.
This means, that if the audio clock rate is changed, the video clock
post-dividers possibly will be corrupted.

This patch fixes the issue described above.

Signed-off-by: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Signed-off-by: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
10 years agoENGR00258366 dma: imx-sdma: make channel0 operations atomic
Huang Shijie [Fri, 21 Jun 2013 07:51:53 +0000 (15:51 +0800)]
ENGR00258366 dma: imx-sdma: make channel0 operations atomic

This patch is rewrited by the patch :
"2ccaef0520d18d0 dma: imx-sdma: make channel0 operations atomic"

device_prep_dma_cyclic may be call in audio trigger function which is
atomic context, so we make it atomic too.

 - change channel0 lock to spinlock.
 - Use polling to wait for channel0 finish running.

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Huang Shijie <b32955@freescale.com>
10 years agoENGR00264286 pfuze:fix LDO ramp up time calculate error.
Robin Gong [Mon, 27 May 2013 05:44:11 +0000 (13:44 +0800)]
ENGR00264286 pfuze:fix LDO ramp up time calculate error.

fix the calculate error.

Signed-off-by: Robin Gong <b38343@freescale.com>
10 years agoENGR00269616 mx6: Unexpected enter WAIT mode cause IPU underrun
Anson Huang [Thu, 4 Jul 2013 01:37:34 +0000 (09:37 +0800)]
ENGR00269616 mx6: Unexpected enter WAIT mode cause IPU underrun

CCM state machine has restriction that, everytime enable
LPM mode, we need to make sure last wakeup from LPM mode
is a dsm_wakeup_signal, which means the wakeup source
must be seen by GPC, then CCM will clean its state machine
and re-sample necessary signal to decide whether it can
enter LPM mode. Here we use the forever pending irq #125,
unmask it before we enable LPM mode and mask it after LPM
is enabled, this flow will make sure CCM state machine in
reliable state before we enter LPM mode.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00264875 enet: fix DMA map/unmap mismatch
Fugang Duan [Thu, 4 Jul 2013 09:22:38 +0000 (17:22 +0800)]
ENGR00264875 enet: fix DMA map/unmap mismatch

Enable "CONFIG_DMA_API_DEBUG" in kernel, and system generate
warning when run up.

WARNING:
/home/b29397/work/projects/linux-2.6-imx/lib/dma-debug.c:865
check_unmap+0x6f8/0x7d8()
net eth0: DMA-API: device driver tries to free DMA memory it
has not allocated [device address=0x00000000443d7040] [size=2048]
[<80025f60>] (warn_slowpath_common+0x0/0x6c) from [<80026070>]
(warn_slowpath_fmt+0x38/0x40) r9:00000000 r8:00000800 r7:807bfb0c
r6:807a3d48 r5:00000000

It is dma memory map/unmap mismatch issue caused by kernel upgrade.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00269421 [IPU] - Y444 Format Conversion is not using correct bpp.
Oliver Brown [Tue, 2 Jul 2013 21:08:02 +0000 (16:08 -0500)]
ENGR00269421 [IPU] - Y444 Format Conversion is not using correct bpp.

Correct bytes per pixel for the Y444 pixel format.

Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
10 years agoENGR00269449 mx6q/sdl clk:Correct register writing for aclk_podf
Liu Ying [Wed, 3 Jul 2013 02:51:36 +0000 (10:51 +0800)]
ENGR00269449 mx6q/sdl clk:Correct register writing for aclk_podf

We need to pay attention to writing the 'CCM Serial Clock Multiplexer
Register 1' register since the write value/divider map and the read
value/divider for aclk_podf field are different. In order to keep
the divider value unchanged when writing the other fields of the
register, we need to fixup the write value.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00269245 MX6SL HDMI: print error message when HDMI cable plugin
Sandor Yu [Tue, 2 Jul 2013 06:55:04 +0000 (14:55 +0800)]
ENGR00269245 MX6SL HDMI: print error message when HDMI cable plugin

When HDMI cable plugin, the frame buffer driver will print error
message "can't do pan display when fb is blank", it is cause by
sii902x driver call fb_set_var after fb power down.

sii902x driver should not mangement fb blank state, it should only
care its own power state.
Remove fb_blank function and replace it
with sii902x power management function.

Signed-off-by: Sandor Yu <R01008@freescale.com>
10 years agoENGR00261285-02 Lcdif FB: Fix video timing setting
Sandor Yu [Mon, 1 Jul 2013 08:04:25 +0000 (16:04 +0800)]
ENGR00261285-02 Lcdif FB: Fix video timing setting

Correct HSYNC_PERIOD, VSYNC_PERIOD, HORIZONTAL_WAIT_CNT and
VERTICAL_WAIT_CNT setting.

In MX6SL RM, these parmeters define as followed:
- HSYNC_PERIOD: Total number of CLK_DIS_LCDIFn cycles between
two positive or two negative edges of the HSYNC signal.
- VSYNC_PERIOD: Total number of units between two positive
or two negative edges of the VSYNC signal.
- HORIZONTAL_WAIT_CNT:In the DOTCLK mode, wait for this number
of clocks from falling edge (or rising if HSYNC_POL is 1) of HSYNC
signal to account for horizontal back porch plus the number of
DOTCLKs before the moving picture information begins.
- VERTICAL_WAIT_CNT: In the DOTCLK mode, it accounts for
the veritcal back porch lines plus the number of horizontal lines
before the moving picture begins.

After apply the patch, run HDMI CTS with video mode 480p,720p and 1080p
test case 7-16~7-19, 7-21~7-27 and 7-33 pass.

Signed-off-by: Sandor Yu <R01008@freescale.com>
10 years agoENGR00261285-01 Remove unsupported function from sii902x drvier
Sandor Yu [Mon, 1 Jul 2013 07:59:56 +0000 (15:59 +0800)]
ENGR00261285-01 Remove unsupported function from sii902x drvier

Remove suspend/resume function in i2c driver struct.
Sii902x power management function have implemented by fb interface.

Signed-off-by: Sandor Yu <R01008@freescale.com>
10 years agoENGR00269055 Fix build break
Jay Monkman [Fri, 28 Jun 2013 22:04:16 +0000 (17:04 -0500)]
ENGR00269055 Fix build break

    Minor correction that broke build - 2 lines were swapped.

Signed-off-by: Jay Monkman <jay.monkman@freescale.com>
10 years agoENGR00268893 mx6q/sdl clock:Correct emi_clk set/get rate in aclk_podf
Liu Ying [Fri, 28 Jun 2013 04:31:45 +0000 (12:31 +0800)]
ENGR00268893 mx6q/sdl clock:Correct emi_clk set/get rate in aclk_podf

The read/write values of aclk_podf[20:22] field in register 'CCM Serial
Clock Multiplexer Register 1' do not match with each other. The read/
write/divider values have the relationship described by the following
table:
============================================================
write value       read value        description
3b'000            3b'110            divided by 7
3b'001            3b'111            divided by 8
3b'010            3b'100            divided by 5
3b'011            3b'101            divided by 6
3b'100            3b'010            divided by 3
3b'101            3b'011            divided by 4
3b'110            3b'000            divided by 1
3b'111            3b'001            divided by 2(default)
============================================================

This patch corrects the emi_clk set/get rate functions according to
the above table. On i.MX6Q, emi_clk is used by MIPI CSI2 module as
ccm_pixel_clk, while on i.MX6SDL, it is not used by any module.
The patch may resolve the 1080P30 MIPI camera preview blur issue
indirectly by increasing ccm_pixel_clk for i.MX6Q.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00268864 Fix build break
Jay Monkman [Thu, 27 Jun 2013 20:11:52 +0000 (15:11 -0500)]
ENGR00268864 Fix build break

Minor correction that broke build.

Signed-off-by: Jay Monkman <jay.monkman@freescale.com>
10 years agoENGR00238991-03 MX6 Add HDCP function
Sandor [Sat, 27 Apr 2013 02:34:48 +0000 (10:34 +0800)]
ENGR00238991-03 MX6 Add HDCP function

The patch include HDMI HDCP patch kernel part:
- Add HDMI DDC pin config function.
- Add HDCP enable/disable system file.
- Read EDID via HDMI internal I2C when HDCP enable.
- Add hdcp_enable in the struct of hdmi_data_info.
- Handle HDCP interrupter and set device event
when HDCP state changed.
- Add IOCTL for HDCP application to get HDMI configuration.

Signed-off-by: Sandor <R01008@freescale.com>
10 years agoENGR00238991-02 MX6 HDCP add IOCTL command define
Sandor [Sat, 27 Apr 2013 02:33:34 +0000 (10:33 +0800)]
ENGR00238991-02 MX6 HDCP add IOCTL command define

Add HDCP IOCTL command define

Signed-off-by: Sandor <R01008@freescale.com>
10 years agoENGR00238991-01 MX6 SabreSD HDMI Adjust PHY config
Sandor [Sat, 27 Apr 2013 02:23:20 +0000 (10:23 +0800)]
ENGR00238991-01 MX6 SabreSD HDMI Adjust PHY config

Adjust MX6 SabreSD board HDMI PHY configuration
to pass HDMI CTS.

Signed-off-by: Sandor <R01008@freescale.com>
10 years agoENGR00267926 mx6: do not need to enable warm reset
Anson Huang [Tue, 25 Jun 2013 05:36:34 +0000 (13:36 +0800)]
ENGR00267926 mx6: do not need to enable warm reset

There is no need to enable warm reset of SRC_SCR
register when we only need to do a VPU reset.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00265476 MX6 SabreSD HDMI Compliance test 7-15 failed
Sandor [Tue, 4 Jun 2013 08:12:08 +0000 (16:12 +0800)]
ENGR00265476 MX6 SabreSD HDMI Compliance test 7-15 failed

MX6DQ/DL SabreSD board HDMI compliance test 7-15 failed, because VCEC2 is
0.276V, but the HDMI compliance test specification 1.4a requried
the VCEC2 should in the range 0.196V to 0.274V.
Remove R657(47K pull up resistance) in SabreSD board and setting
KEY_ROW2_HDMI_TX_CEC pin internal pull up to 100K, the VCEC2 is 0.245V,
pass 7-15 test.

Signed-off-by: Sandor <R01008@freescale.com>
10 years agoENGR00268442 mmc: remove the boot partition access codes on 3.0.35
Richard Zhu [Mon, 24 Jun 2013 04:51:41 +0000 (12:51 +0800)]
ENGR00268442 mmc: remove the boot partition access codes on 3.0.35

Regarding to the following community commit, remove all the boot
partition access codes added before.
-
371a689f64b0da140c3bcd3f55305ffa1c3a58ef
mmc: MMC boot partitions support.

Allows device MMC boot partitions to be accessed. MMC partitions are
treated effectively as separate block devices on the same MMC card.
-

Boot partition access howto:
-
To enable write access to /dev/mmcblkXbootY, disable the forced
read-only access with:

echo 0 > /sys/block/mmcblkXbootY/force_ro

To re-enable read-only access:

echo 1 > /sys/block/mmcblkXbootY/force_ro
-

Signed-off-by: Richard Zhu <r65037@freescale.com>
10 years agoENGR00268110 mx6: eim_clk div can't be used directly
Anson Huang [Fri, 21 Jun 2013 00:41:27 +0000 (08:41 +0800)]
ENGR00268110 mx6: eim_clk div can't be used directly

1. eim_clk's divider is bit[22:20], when read from this register,
the value of bit22 and bit21 are the opposite value of actual
value, so we need to handle it in clk get rate function of eim_clk.

2. For VPU running at 352M case on i.MX6Q, we need to set eim
clk to 176M, as its parent's freq is 352M. Otherwise, it is set
to 198M.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00258998: mlb unit test should exit after click stop on mitb
Terry Lv [Mon, 24 Jun 2013 12:02:34 +0000 (20:02 +0800)]
ENGR00258998: mlb unit test should exit after click stop on mitb

This patch will do the following:
1. For mlb will not be able to know whether the final package is
completely sent, add a delay for final package to be sent.
2. Adjust MLB's iram buffer usage. Old code will add addtional
usage of iram buffer.
3. Code format change.
4. In resume function, calling init function after clock is enabled.

Signed-off-by: Terry Lv <r65388@freescale.com>
10 years agoENGR00268385 v4l2 fg overlay:disable fb ywrap when enable overlay
Liu Ying [Mon, 24 Jun 2013 08:38:32 +0000 (16:38 +0800)]
ENGR00268385 v4l2 fg overlay:disable fb ywrap when enable overlay

This patch disables framebuffer ywrap flag when we enable overlay,
because the display double buffers are not ywrapped. This may avoid
wrong preview pictures on platforms which use NV12 pixel format for
overlay framebuffer.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00268112 pcie: emaluate the pcie ep as ram device, configure the bar#
Richard Zhu [Fri, 14 Jun 2013 01:18:09 +0000 (09:18 +0800)]
ENGR00268112 pcie: emaluate the pcie ep as ram device, configure the bar#

0x0110_0000 ~ 0x01EF_FFFF 14MB would be used for MEM allocation.
But the "IORESOURCE_SIZEALIGN" would be used during the Linux PCI/PCIe
subsystem probe/scan the bus and allocate the resources.

If the 8MB MEM is required, the start address 0x0180_0000 would be used
by Linux PCI/PCIe subsystem, trying to allocate the 8MB MEM space
(0x0180_0000 ~ 0x01FF_FFFF), this operation would be failed.

Because the address if outof 0x0110_0000 ~ 0x01EF_FFFF limitaion.

solution:
One method to allocate the 8MB(the biggest size of IO/MEM space) MEM
space on iMX6 PCIe RC.
Adjust the layout of the 16MB address space of iMX6 PCIe RC, like this:
* RC:
* 0x0100_0000 --- 0x01DF_FFFF 14MB IORESOURCE_MEM
* 0x01E0_0000 --- 0x01EF_FFFF 1MB IORESOURCE_IO
* 0x01F0_0000 --- 0x01FF_FFFF 1MB Cfg + MSI + Registers
The 8MB space would be allocated from 0x0100_0000 ~ 0x017F_FFFF.

Signed-off-by: Richard Zhu <r65037@freescale.com>
10 years agoENGR00267089 mx6: Amend the definitions of ANADIG_ANA_MISC2_REGx_STEP_TIME_MASK
Peter Chan [Mon, 17 Jun 2013 06:36:45 +0000 (14:36 +0800)]
ENGR00267089 mx6: Amend the definitions of ANADIG_ANA_MISC2_REGx_STEP_TIME_MASK

Correct the definitions of ANADIG_ANA_MISC2_REG0_STEP_TIME_MASK and
ANADIG_ANA_MISC2_REG2_STEP_TIME_MASK to 0x03000000 and 0x30000000 respectively

Signed-off-by: Peter Chan <B18700@freescale.com>
10 years agoENGR00262868 msl-mx6: usb: do not enable id wakeup interrupt for non-otg
Peter Chen [Tue, 18 Jun 2013 05:25:00 +0000 (13:25 +0800)]
ENGR00262868 msl-mx6: usb: do not enable id wakeup interrupt for non-otg

ID wakeup interrupt is only needed at OTG config.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00262528-2 usb: host: the clock needs to be off if probe fails
Peter Chen [Tue, 18 Jun 2013 00:30:51 +0000 (08:30 +0800)]
ENGR00262528-2 usb: host: the clock needs to be off if probe fails

The clock needs to be off if probe fails.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00262528-1 mx6-msl: usb: the static variables needs to be initialized
Peter Chen [Tue, 18 Jun 2013 00:24:35 +0000 (08:24 +0800)]
ENGR00262528-1 mx6-msl: usb: the static variables needs to be initialized

The static variables needs to be initialized at init function,
or the value may be incorrect during the module load/unload process.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00266285-3 mm: dmapool: export for normal case
Peter Chen [Sat, 8 Jun 2013 08:00:47 +0000 (16:00 +0800)]
ENGR00266285-3 mm: dmapool: export for normal case

It is the same issue with ENGR00217721, and it is also needed
for normal usb case.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00266285-2 mm: dmapool: export for normal case
Peter Chen [Sat, 8 Jun 2013 07:58:29 +0000 (15:58 +0800)]
ENGR00266285-2 mm: dmapool: export for normal case

It is the same issue with ENGR00217721, and it is also needed
for normal usb case.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00266285-1 usb: gadget: using non-buffer & non-cache memory for dma buffer
Peter Chen [Sat, 8 Jun 2013 07:55:25 +0000 (15:55 +0800)]
ENGR00266285-1 usb: gadget: using non-buffer & non-cache memory for dma buffer

It is the same issue with ENGR00217721, and it is also needed
for normal usb case.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
10 years agoENGR00267442 mx6: clk: some clock settings are incorrect
Anson Huang [Tue, 18 Jun 2013 05:57:33 +0000 (13:57 +0800)]
ENGR00267442 mx6: clk: some clock settings are incorrect

1. The ipg_per clock rate setting should be done after
its parent initilization done, otherwise it will get wrong
parent rate and lead to incorrect rate setting;

2. The parent info of emi_clk has been changed in latest RM,
need to update it according to RM, the parent info is as below:

2b'00: 396M PFD;
2b'01: PLL3;
2b'10: AXI;
2b'11: 352M PFD.

Signed-off-by: Anson Huang <b20788@freescale.com>
10 years agoENGR00240112-2 crypto: caam: add ecb(aes) crypto algorithm to caam.
Zhang Jiejing [Fri, 21 Sep 2012 01:52:36 +0000 (09:52 +0800)]
ENGR00240112-2 crypto: caam: add ecb(aes) crypto algorithm to caam.

add ecb(aes) support for caam algorithm, the caam H/W
support both ecb and cbc, add the algorithm into template.

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
10 years agoENGR00240112-1 caam: fix user space crypto API support.
Zhang Jiejing [Wed, 12 Sep 2012 10:04:49 +0000 (18:04 +0800)]
ENGR00240112-1 caam: fix user space crypto API support.

This patch fix the CAAM support for Crypto User Space API support.
in the dma_map_sg_chained() function, the chained mode will loop
until the scatter list end, but when the scatter list end, it will
return null and orignal code will set this to the sg list point
used by dma_sync, so it will panic.

When do chain dma, use a tmp do going through the list.

Signed-off-by Zhang Jiejing <jiejing.zhang@freescale.com>

10 years agoENGR00181680-2 No audio when play 3 streams after 3~10 seconds sometimes
b02247 [Mon, 14 May 2012 01:54:27 +0000 (09:54 +0800)]
ENGR00181680-2 No audio when play 3 streams after 3~10 seconds sometimes

sdma: bd is bufferable dma buffer, interrupt handler can not get correct
      data after sdma script updated. Which will cause there is no interrupt
      after failed period number times in the interrupt handler.
This is a workaround.

Signed-off-by: b02247 <b02247@freescale.com>
10 years agoENGR00181680-1 No audio when play 3 streams after 3~10 seconds sometimes
b02247 [Wed, 9 May 2012 09:30:41 +0000 (17:30 +0800)]
ENGR00181680-1 No audio when play 3 streams after 3~10 seconds sometimes

sdma: bd is bufferable dma buffer, interrupt handler can not get correct
      data after sdma script updated. Which will cause there is no interrupt
      after failed period number times in the interrupt handler.
This is a workaround.

Signed-off-by: b02247 <b02247@freescale.com>
10 years agoENGR00267024 mx6q: Stop DMA memory fragmentation
Jay Monkman [Fri, 14 Jun 2013 16:47:50 +0000 (11:47 -0500)]
ENGR00267024 mx6q: Stop DMA memory fragmentation

Applied patch from customer to prevent DMA memory
fragmentation. Customer reported system crashes due to running out of
DMA-able memory while playing videos. Reported in CT42391649.

Signed-off-by: Jay Monkman <jay.monkman@freescale.com>
10 years agoENGR00266881 mxc vout:Flush workqueue when change is needed for streaming
Liu Ying [Thu, 13 Jun 2013 04:50:27 +0000 (12:50 +0800)]
ENGR00266881 mxc vout:Flush workqueue when change is needed for streaming

We currently call cancel_work_sync() to have all left work be done. But,
this is not safe to make sure all left work being done successfully.
Instead, chances are that some work may be cancelled before starting
to be done, which may cause frame lost and make us hang at upcoming
wait_event_interruptible() in videobuf_waiton() called from video buffer
core v1 framework's dqbuf API. This patch replaces the function
call cancel_work_sync() with flush_workqueue() to fix the issue.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00266873 mxc vout:Release or invalidate previous buffers correctly
Liu Ying [Thu, 13 Jun 2013 03:49:56 +0000 (11:49 +0800)]
ENGR00266873 mxc vout:Release or invalidate previous buffers correctly

Users may call VIDIOC_S_CTRL ioctrl to do rotation, such as 90 degree
rotation, when a video is streaming in IC bypass mode. The runtime
rotation setting may make the vout driver lose the track for a previous
video buffer and finally cause the streaming hang. This patch releases
that video buffer in this case and invalidates previous video buffers
when necessary.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
10 years agoENGR00266312 mx6dl: add i2c4 bus support for sabresd/auto, arm2 platforms
Fugang Duan [Sun, 9 Jun 2013 06:43:52 +0000 (14:43 +0800)]
ENGR00266312 mx6dl: add i2c4 bus support for sabresd/auto, arm2 platforms

imx6dq have 3 i2c controllers and 5 ecspi,imx6dl have 4 i2c4
controllers and 4 ecspi. imx6dl i2c4 clock source is routed
from pll3 through to ecspi_root gate.

Add i2c4 bus support for sabresd/auto, and arm2 platforms.

Signed-off-by: Fugang Duan <B38611@freescale.com>
10 years agoENGR00265465 gpu:Add global value for minimum 3D clock export
Loren Huang [Tue, 4 Jun 2013 07:08:15 +0000 (15:08 +0800)]
ENGR00265465 gpu:Add global value for minimum 3D clock export

Add global value gpu3DMinClock so that minimum 3D clock can be change by user.
When gpu min clock is too low, it may cause IPU starvation issue in certain case.
Use echo x > /sys/module/galcore/parameters/gpu3DMinClock to change it.

Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Lily Zhang