Age | Commit message (Collapse) | Author |
|
2G above address will be converted to gpu virtual address in i.MX6,
gpu baseaddr can be used to reduce contiguous memory address conversion,
the benifit for gpu applications and external memory consumers(VPU/IPU) have,
- gpu mmu performance penalty is reduce in most cases,
- more system memory can be exported for external use
Signed-off-by: Xianzhong <b07117@freescale.com>
|
|
gpu virtual memory cannot be allocated for external use
this issue occurs in ARD board with 2G above memory address
Signed-off-by: Xianzhong <b07117@freescale.com>
Acked-by: Jason Liu
|
|
ION memory is only used in camera for taking picture.
Default size is met for two buffers of 5M pixel YUV420.
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|
|
This patch updates IPUv3 IC RGB to YUV color space conversion
matrix's parameters to align with the default VIV GPU CSC
implementation so that we may pass relevant Android CTS test
cases.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 17b6dbef8eea2051a6c3819f3690c21948bd0e93)
|
|
Android Recovery UI framework uses FBIOPUT_VSCREENINFO with yoffset update
to update display.
Both elcdif and ipuv3 FB will set var.activate to be FB_ACTIVATE_FORCE in
driver's probe. User space will get the VSCREENINFO with activate been set
to FB_ACTIVE_FORCE. Each FBIOPUT_VSCREENINFO with only yoffset update will
make the driver reinit.The activate should be cleared once set_par() been
finished.
HDMI driver should only reinit hdmi only when the mode changed. fbmem will
broadcast MODE_CHANGE for each FBIOPUT_VSCREENINFO ioctl even it only have
yoffset update.
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|
|
It can fix the bugs that there is no SOF after resume sometimes.
Without SOF after resume the device will go to suspend again,
and host assumes it is disconnected and sends reset later.
Signed-off-by: Peter Chen <peter.chen@freescale.com>
|
|
this issue cause system boot with multi-user switch on JB4.3,
root cause is gpu memory cannot be multi-locked in same process,
gpu memory lock reference is added to allow multi-lock in kernel driver.
Signed-off-by: Xianzhong <b07117@freescale.com>
Acked-by: Jason Liu
|
|
add USB_VIDEO to kernel
Signed-off-by: Fang Hui <b31070@freescale.com>
|
|
Make onboard key pad can be met the normal android usage:
SW6: Volume +, SW7: Volume -, SW11: POWER, SW10: UP
SW13: DOWN, SW12: BACK, SW9:LEFT, SW8: RIGHT
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|
|
Change rule of cfg80211 and wireless driver to support rtl8723as.
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
|
|
Use savedefconfig to create imx6sl's compact defconfig.this will
make config real and clean.
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
|
|
Fixed by add check for cam->sensor
Signed-off-by: Fang Hui <b31070@freescale.com>
|
|
We enable WOW mode last commit, it will try to set mmc host's power
capability to keep power on at some points. Delete this act which is
bond with one force scan action. For we didn't add force scan function
in it. We are using runtime_pm feature to trigger scan when doing init.
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
|
|
imx_3.0.35_android
|
|
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>
|
|
Register boot SD's SDHC first
Make boot SD as no removeable and always present
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|
|
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>
|
|
V4L2_PIX_FMT_YUYV is the original format from camera and the source format
for CSI. This format may be needed on Android to do CSC before encoding.
We can now choose V4L2_PIX_FMT_YUYV or V4L2_PIX_FMT_UYVY for the CSI
output format.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
enable ion device for evk_6sl, so takepicture can use it's memory
Signed-off-by: Fang Hui <b31070@freescale.com>
|
|
Fix "Timeout Waiting for Hardware Interrupt on mmc1" issue in
suspend/resume which is caused by not keep power in host.
Enable WOW mode in card side to enable MMC_KEEP_POWER capability
of host will tackle this issue.
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
|
|
The baseAddress of contiguousVidMem is the actual physical address
which is not subtracted by gpu baseAddress, but the allocated physical address
has been subtracted by gpu baseAddress in gckVIDMEM_Lock,
so the invalid offset is produced and used to calculate the logical address.
Signed-off-by: Xianzhong <b07117@freescale.com>
Acked-by: Shawn Guo
|
|
imx_3.0.35_android
|
|
Remove CONFIG_IKCONFIG_PROC as android cts requirement
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|
|
Trinity discovered that we fail to check all 64 bits of
attr.config passed by user space, resulting to out-of-bounds
access of the perf_swevent_enabled array in
sw_perf_event_destroy().
Introduced in commit b0a873ebb ("perf: Register PMU
implementations").
Signed-off-by: Tommi Rantala <tt.rantala@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: davej@redhat.com
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Link: http://lkml.kernel.org/r/1365882554-30259-1-git-send-email-tt.rantala@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
|
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)
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
imx_3.0.35_android
|
|
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>
|
|
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>
|
|
imx_3.0.35_android
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Remove power keypad SW11(ROW1, COL2) related GPIO from imx_pm suspend
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|
|
enable the keypad as wake up source
Signed-off-by: b02247 <b02247@freescale.com>
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|
|
atheros wifi driver is compiled in hardware/imx/wlan. No need to
enable it in kernel.
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
|
|
Android Framework need the timestamp from VSYNC to driver the UI update
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|
|
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>
|
|
change cfg80211 sub-configs to enable rtl8723as.
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
|
|
Add wifi driver for rtl8723as. Need change some cfg80211 config for it also.
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
|
|
Align imx6s_android_defconfig with imx6_android_defconfig
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
|