summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-09-14ENGR00224245 HDMI AUDIO: stop/start PCM while unplug,blank/plug, unblankrel_imx_3.0.35_12.09.013.0-imx6-12.09.01-201209132128Chen Liangjun
When unplug, blank happens, HDMI audio can't play properly. So in driver, audio pcm would be disconnected when event above happens. However, pulse audio can't process disconnect event properly and if an blank or unplug event happens, HDMI sink would lost and can't be back again. In this patch, instead of disconnecting audio PCM stream, triggering stop audio pcm while unplug and blank, triggering start again while plug and unblank if the audio pcm is triggerd stop in the unplug/blank event. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-09-13ENGR00223349-4 gpmi: enable the EDO support for mx6qHuang Shijie
Enable the EDO mode for mx6q. The following is the test result with the same nand chip (Micron MT29F32G08QAA) in mode 4: The test result without enable the EDO mode: ================================================= mtd_speedtest: MTD device: 2 mtd_speedtest: MTD device size 209715200, eraseblock size 524288, page size 4096, count of eraseblocks 400, pages per eraseblock 128, OOB size 218 mtd_speedtest: scanned 400 eraseblocks, 6 are bad mtd_speedtest: testing eraseblock write speed mtd_speedtest: eraseblock write speed is 1945 KiB/s mtd_speedtest: testing eraseblock read speed mtd_speedtest: eraseblock read speed is 3384 KiB/s mtd_speedtest: testing page write speed mtd_speedtest: page write speed is 1841 KiB/s mtd_speedtest: testing page read speed mtd_speedtest: page read speed is 3136 KiB/s mtd_speedtest: testing 2 page write speed mtd_speedtest: 2 page write speed is 1853 KiB/s mtd_speedtest: testing 2 page read speed mtd_speedtest: 2 page read speed is 3164 KiB/s mtd_speedtest: Testing erase speed mtd_speedtest: erase speed is 145441 KiB/s mtd_speedtest: Testing 2x multi-block erase speed mtd_speedtest: 2x multi-block erase speed is 146711 KiB/s mtd_speedtest: Testing 4x multi-block erase speed mtd_speedtest: 4x multi-block erase speed is 147139 KiB/s mtd_speedtest: Testing 8x multi-block erase speed mtd_speedtest: 8x multi-block erase speed is 147786 KiB/s mtd_speedtest: Testing 16x multi-block erase speed mtd_speedtest: 16x multi-block erase speed is 147569 KiB/s mtd_speedtest: Testing 32x multi-block erase speed mtd_speedtest: 32x multi-block erase speed is 147677 KiB/s mtd_speedtest: Testing 64x multi-block erase speed mtd_speedtest: 64x multi-block erase speed is 147677 KiB/s mtd_speedtest: finished ================================================= The test result enable the EDO mode: ================================================= mtd_speedtest: MTD device: 2 mtd_speedtest: MTD device size 209715200, eraseblock size 524288, page size 4096, count of eraseblocks 400, pages per eraseblock 128, OOB size 218 mtd_speedtest: scanned 400 eraseblocks, 6 are bad mtd_speedtest: testing eraseblock write speed mtd_speedtest: eraseblock write speed is 3733 KiB/s mtd_speedtest: testing eraseblock read speed mtd_speedtest: eraseblock read speed is 20413 KiB/s mtd_speedtest: testing page write speed mtd_speedtest: page write speed is 3603 KiB/s mtd_speedtest: testing page read speed mtd_speedtest: page read speed is 18966 KiB/s mtd_speedtest: testing 2 page write speed mtd_speedtest: 2 page write speed is 3668 KiB/s mtd_speedtest: testing 2 page read speed mtd_speedtest: 2 page read speed is 19686 KiB/s mtd_speedtest: Testing erase speed mtd_speedtest: erase speed is 146604 KiB/s mtd_speedtest: Testing 2x multi-block erase speed mtd_speedtest: 2x multi-block erase speed is 147354 KiB/s mtd_speedtest: Testing 4x multi-block erase speed mtd_speedtest: 4x multi-block erase speed is 147677 KiB/s mtd_speedtest: Testing 8x multi-block erase speed mtd_speedtest: 8x multi-block erase speed is 148002 KiB/s mtd_speedtest: Testing 16x multi-block erase speed mtd_speedtest: 16x multi-block erase speed is 147894 KiB/s mtd_speedtest: Testing 32x multi-block erase speed mtd_speedtest: 32x multi-block erase speed is 148329 KiB/s mtd_speedtest: Testing 64x multi-block erase speed mtd_speedtest: 64x multi-block erase speed is 148220 KiB/s mtd_speedtest: finished ================================================= We can see that there is 6 times performance improvement for reading when we enable the EDO mode. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-09-13ENGR00223349-3 gpmi: add a new field for HW_GPMI_CTRL1Huang Shijie
add the WRN_DLY_SEL field for HW_GPMI_CTRL1. This field is used as delay for gpmi write strobe. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-09-13ENGR00223349-2 gpmi: do not get the clock frequency in gpmi_begin()Huang Shijie
The current code will gets the clock frequency which is used by gpmi_nfc_compute_hardware_timing(). It makes the code a little mess. So move the `get clock frequency` code to the gpmi_nfc_compute_hardware_timing() itself. This makes the code tidy and clean. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-09-13ENGR00223349-1 gpmi: add a new field for HW_GPMI_TIMING1Huang Shijie
The gpmi_nfc_compute_hardware_timing{} should contains all the fields setting for gpmi timing registers. It already contains the fields for HW_GPMI_TIMING0 and HW_GPMI_CTRL1. So it is better to add a new field setting for HW_GPMI_TIMING1 in this data structure. This makes the code more clear in logic. This patch also changs some comments to make the code more readable. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-09-13ENGR00223816 HDMI AUDIO: fix kernel panic cause by accessing unavailable memoryChen Liangjun
HDMI audio driver is responsible for add IEC header into audio sample. In HDMI audio driver, a variable named rtd->appl_bytes is maintained to stand for how many audio sample have already processed. appl_bytes stands for how many audio sample the user space have already feed into kernel driver. So we use the connt = appl_bytes - rtd->appl_bytes to decide how many data need to be processed. And the processed data would be write into an preallocated buffer called hw_buf in driver. When doing seek operation, the appl_bytes changes in an wide range. So it is possible that the count value is far larger than the size of hw_buf and the memory access un-existed address error would happens. In this patch, Add check operation for count to avoid kernel panic. Kernel panic log: seeking: 0:00:18.000000000/0:03:0Unable to handle kernel paging request at virtual address ffdf0000 pgd = 80004000 [ffdf0000] *pgd=71e35811, *pte=00000000, *ppte=00000000 Internal error: Oops: 7 [#1] PREEMPT SMP Modules linked in: vivante drm galcore CPU: 0 Not tainted (3.0.35-2014-g7a9337b #1) PC is at hdmi_dma_mmap_copy+0x134/0x190 LR is at hdmi_dma_mmap_copy+0x5c/0x190 pc : [<803e1e4c>] lr : [<803e1d74>] psr: 800f0193 sp : 80a61e98 ip : ffdf0000 fp : ffdeffc0 r10: 00000055 r9 : ffdeff80 r8 : 0029b450 r7 : 00000060 r6 : ffdf0200 r5 : 00000240 r4 : 00000120 r3 : 00000000 r2 : ffdf0000 r1 : 00000000 r0 : 00000090 Flags: Nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 6d28804a DAC: 00000015 Process swapper (pid: 0, stack limit = 0x80a602f0) Stack: (0x80a61e98 to 0x80a62000) 1e80: 00000002 000037f1 1ea0: 00006000 e1d3a7e4 a00f0193 e1d3a780 e1dcab00 00a83100 00a83100 00006000 1ec0: 00006000 803e24f4 413187b9 00000000 0073001a e1dd1e00 00000001 00000001 1ee0: 00000080 00000093 80ac7070 80a66a80 00000001 800a5ca8 8c80e568 efb3e7b9 1f00: 00000055 80a66a80 80a66acc e1ea9bc0 00000093 00000000 80a60000 00000000 1f20: 00000000 800a5e14 80a66a80 80a66acc 0000107f 800a8198 80a71cc0 80038c00 1f40: 80a60000 800a5610 000001f0 80040830 ffffffff f2a00100 00000093 00000002 1f60: 00000001 8003f9cc 80ac5f60 800f0093 00000001 00000000 80a60000 80abeb64 1f80: 804e1a54 80a74e7c 1000406a 412fc09a 00000000 00000000 00000000 80a61fb0 1fa0: 8004d52c 80040ac4 400f0013 ffffffff 80040aa0 80040cbc 00000001 80a71b3c 1fc0: 80abeac0 8002e3c4 8c80b140 80008868 800082f8 00000000 00000000 8002e3c4 1fe0: 00000000 10c53c7d 80a71a6c 8002e3c0 80a74e74 10008040 00000000 00000000 [<803e1e4c>] (hdmi_dma_mmap_copy+0x134/0x190) from [<803e24f4>] (hdmi_dma_isr+0x17c/0x1a0) [<803e24f4>] (hdmi_dma_isr+0x17c/0x1a0) from [<800a5ca8>] (handle_irq_event_percpu+0x50/0x180) [<800a5ca8>] (handle_irq_event_percpu+0x50/0x180) from [<800a5e14>] (handle_irq_event+0x3c/0x5c) [<800a5e14>] (handle_irq_event+0x3c/0x5c) from [<800a8198>] (handle_fasteoi_irq+0xbc/0x154) [<800a8198>] (handle_fasteoi_irq+0xbc/0x154) from [<800a5610>] (generic_handle_irq+0x28/0x3c) [<800a5610>] (generic_handle_irq+0x28/0x3c) from [<80040830>] (handle_IRQ+0x4c/0xac) [<80040830>] (handle_IRQ+0x4c/0xac) from [<8003f9cc>] (__irq_svc+0x4c/0xe8) [<8003f9cc>] (__irq_svc+0x4c/0xe8) from [<80040ac4>] (default_idle+0x24/0x28) [<80040ac4>] (default_idle+0x24/0x28) from [<80040cbc>] (cpu_idle+0xbc/0xfc) [<80040cbc>] (cpu_idle+0xbc/0xfc) from [<80008868>] (start_kernel+0x248/0x288) [<80008868>] (start_kernel+0x248/0x288) from [<10008040>] (0x10008040) Code: c1a0c009 c08b6005 c1a0200b da00000a (e0d230b2) Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-09-13ENGR00224112 wm8962: correct lrclk mismatchGary Zhang
lrclk trigger settings between ssi and wm8962 are different, which causes L/R channel swap. Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-09-12ENGR00223964: CAAM: enable ahash feature in configTerry Lv
Enable ahash feature in mx6q config. Signed-off-by: Terry Lv <r65388@freescale.com>
2012-09-12ENGR00223911 wm8962: correct typoGary Zhang
correct typo for wm8962 description in Kconfig Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-09-12ENGR00223450 [MX6]Fix secondary cores BogoMIPs errorAnson Huang
After doing some suspend/resuem test, secondary cores BogoMIPs will be wrong, the root cause is that when cpufreq is changed, we only update the online cpus' loops_per_jiffy, and when secondary cores back to online, we skip the loops_per_jiffy calibration. During suspend/resume, the cpufreq can be changed during disabling/enabling secondary cores, which will make secondary cores loops_per_jiffy wrong, so here we need to update all possible cpus' loops_per_jiffy when cpufreq is changed. Signed-off-by: Anson Huang <b20788@freescale.com>
2012-09-12ENGR00221671 - i2c :imx : fix some i2c devices can not suspendFugang Duan
i2c device (isl29023) can not suspend once during hdmi audio suspend/resume test, and print log: pm_op(): i2c_device_pm_suspend+0x0/0x38 returns -4 PM: Device 2-0044 failed to suspend: error -4 PM: Some devices failed to suspend PM: resume of devices complete after 40.936 msecs Restarting tasks ... done. Because suspend function in isl29023 driver requires i2c bus to write isl29023 device. I2C apdater driver process any signal as exception during waiting the bus idle, so once user space sent out signal during suspend, I2C device cannot request bus. Using "fatal_signal_pending()" instead of "signal_pending()" to avoid the waiting of bus idle to be terminated by general signals except SIGKILL. After the change, i2c adapter can be terminated by kill signal from user space with "CTRL+C" or kill command operation. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-09-12ENGR00223249 : fix Ethernet performance downgrade issue.Fugang Duan
Ethernet performance is downgraded when wait mode on in 100Mbps mode. wait mode off: 100Mbps mode: tx bandwidth is 94Mbps rx bandwidth is 94Mbps wait mode on: 100Mbps mode: tx bandwidth is 30Mbps rx bandwidth is 94Mbps After apply the patch: wait mode on: 100Mbps mode: tx bandwidth is 94Mbps rx bandwidth is 94Mbps Wait mode on cause enet interrupt has long latency, which results in BD entries are full and stop tx queue, so cpus have more chance to enter wait mode. Incresing TX BD entries can properly accommodate the blance between BD request before tx packets and BD release after tx completion in interrupt process. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-09-07ENGR00223344 [Thermal]Fix clk enable flow bugAnson Huang
We should make sure clk_enable is called after clk_get. Signed-off-by: Anson Huang <b20788@freescale.com>
2012-09-06ENGR00223236-2 [MX6]Change the temperature range to -40C ~ 125CAnson Huang
Previous temperature range is -25C ~ 125C, according to latest datasheet, change it to -40C to 125C. Signed-off-by: Anson Huang <b20788@freescale.com>
2012-09-06ENGR00222954 Enable PLL3 in GPU power up flowLoren Huang
If GPU2D used PLL3 as root, we need enable PLL during GPU power up flow so that we can power up GPU2D properly. Till now, this issue can only be duplicated on Android. Signed-off-by: Loren Huang <b02279@freescale.com>
2012-09-06ENGR00223103 ESAI ASRC: clean build warningChen Liangjun
BUILD WARNING: WARNING: arch/arm/mach-mx6/built-in.o(.data+0x7e44): Section mismatch in reference from the variable sab_audio_data to the (unknown reference) .init.rodata:(unknown) The variable sab_audio_data references the (unknown reference) __initconst (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console In this patch, remove esai_p2p struct with init attribute. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-09-06ENGR00223056 Fix HDMI build warningSandor Yu
Fix HDMI build warning. drivers/video/mxc_hdmi.c: In function 'mxc_hdmi_set_mode': drivers/video/mxc_hdmi.c:1659: warning: assignment discards qualifiers from pointer target type drivers/video/mxc_hdmi.c: At top level: driver/video/mxc_hdmi.c:1398: warning: 'mxc_hdmi_enable_pins' defined but not used Remove unused function mxc_hdmi_enable_pins() and mxc_hdmi_disable_pins() from code. Fix defined but unused function build warning. Added pointer conversion from const poniter to non-const pointer. Signed-off-by: Sandor Yu <R01008@freescale.com>
2012-09-05ENGR00222078 power battery:fix charger attach detect missing after resumeRong Dian
1.config gpio dok for AC charger as wake up irq, config gpio uok for USB charger as wake up irq. 2.add AC/USB charger detect in resume,fix charger detect status update missing after attach AC/USB charger and resume system Signed-off-by: Rong Dian <b38775@freescale.com>
2012-09-05ENGR00223097 sabresd pfuze:increase VDDARM_IN&VDDSOC_IN to 1.475V for 1.2GRobin Gong
consider ripple, IR drop and pfuze tolerance, we need incrase VDDARM_IN and VDDSOC_IN to 1.475V. Signed-off-by: Robin Gong <B38343@freescale.com>
2012-09-05ENGR00223058 [MX6]Fix build warningAnson Huang
Fix below build warning: arch/arm/mach-mx6/irq.c: In function 'mx6_init_irq': arch/arm/mach-mx6/irq.c:106: warning: unused variable 'reg' arch/arm/mach-mx6/clock_mx6sl.c:1807: warning: function declaration isn't a prototype arch/arm/mach-mx6/clock_mx6sl.c:1535: warning: 'tzasc1_clk' defined but not used arch/arm/mach-mx6/clock_mx6sl.c:1576: warning: 'mx6per2_clk' defined but not used arch/arm/mach-mx6/clock_mx6sl.c:1708: warning: 'ocram_clk' defined but not used Signed-off-by: Anson Huang <b20788@freescale.com>
2012-09-05ENGR00221854 HDMI: suspend/resume hdmi_phy fail to lock.Sandor Yu
HDMI PHY init function will been called four times during system resume. The first call before pixel clock enable, so it will print PHY PLL unlock message, but the PHY PLL will locked in the next three times called. It will not affect HDMI PHY function. Change message print function dev_err to dev_dbg. Signed-off-by: Sandor Yu <R01008@freescale.com>
2012-09-05ENGR00222900 HDMI AUDIO: fix kernel panic when doing suspend-resume testChen Liangjun
In MX6 series, HDMI audio driver is responsible for add IEC header to audio samples. Driver would maintain variables to cover this work. The old driver would cause memory access exceeding issue: 1. Resume from an playback. In this case, variable maintained by ALSA is updated while variable maintained by HDMI driver is not updated. The mmap copy operation would run into error state due to misalignment. 2. underrun!!! The same error would happens as the items above. In this patch, add variable check while adding IED header. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-09-05ENGR00215870-2: board-mx6 sabreauto fix i2c3 pad settingsAdrian Alonso
* Fix i2c3 pad settings, i2c3 conflicts with weim-nor and spi-nor only in rev b target boards. * For rev B targets setup extra pads. * Fix indentation. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-09-05ENGR00215870-1 board-mx6 sabreauto rev B add extra padsAdrian Alonso
* For rev_b target board add extra pads table, separate pad definitions from I2C3 pad array Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-09-05ENGR00222836 Fix Kern BUG during Susp/Resu caused by SPDIF debug codeNicolin Chen
dump_reg() in msc_spdif.c will cause kernel BUG during Suspend/Resume, because of calling clk_enable() in an interrupt for playback. There's also a simular issue in capture case. Capture'd be stopped after resume for suspending. Signed-off-by: Nicolin Chen <b42378@freescale.com>
2012-09-05ENGR00222855 MX6 CPUFREQ: support three VDDSOC setpointsRobin Gong
On MX6Q/DL , there is only two set point of VDDSOC/VDDPU, one is 1.25V(1GHz), another is 1.175V. And in arch/arm/plat-mxc/cpufreq.c will judge whether the current cpu frequency is the highest set point(1G) or not to set the right VDDSOC/VDDPU. The logic is also match to dynamic ldo bypass function, since the change point is the highest set point too. But there is three set points of VDDSOC/VDDPU in MX6SL , so the logic in cpufreq.c need to change. Now VDDSOC/VDDPU will track with VDDARM fully. Signed-off-by: Robin Gong <B38343@freescale.com>
2012-09-05ENGR00222835 MX6x-Fix incorrect enabling/disabling of PLL1Ranjani Vaidyanathan
PLL1 was enabled without incrementing the usecount, and was thus not getting disabled under certain conditions. This causes 2 issues: 1. Increases the power. 2. Causes crashes on MX6SL in audio mode as ARM is switched to PLL1 assuming its in bypass when entering WAIT mode. But PLL1 is enabled and not in bypass state. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-05ENGR00222834 MX6x-A9 prefetcher should not access DDR before IO is restoredRanjani Vaidyanathan
Add enough nops to suspend code when exiting due to a pending interrupt. This is required so that we can guarantee that the prefetch unit will not bring DDR out of self-refresh before all of the DDR's IO pads are restored. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-05ENGR00222197 MX6 SabreSD:Set pwm backlight max density to 248Liu Ying
This patch changes pwm backlight max density from 255 to 248 to workaround Hannstar LVDS panel unstable backlight issue when density is set to 250 or 251. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit 8747626ca0bcdb6c9525e28d3fbb170db462a299)
2012-09-05ENGR00222157 MX6x-Fix bug in transitioning from low_bus to audio_bus mode.Ranjani Vaidyanathan
Ensure that the transtion from low bus freq mode to audio bus freq mode happens instantly. Don't schedule the delayed work in this case else there will be a pause in the audio playback. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-05ENGR00222257 MX6x-Prime TLB entries before DDR enters self-refresh.Ranjani Vaidyanathan
Need to ensure that no page table walk occurs in DDR when it is in self refresh and its IO pads are floated during suspend. Hence we need to make sure that the translation of all the addresses that the suspend code will access is in the TLB before DDR cannot be accessed anymore. So do a dummy read of IOMUX, MMDC, SRC and ANATOP regsiters. Also need to add a dsb to drain all the write buffers before DDR enters self-refresh. Also ensure that the LDO bypass enable is reset if an interrupt is pending before the system enters suspend. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-05ENGR00222134 MX6x - Fix race-conditions in low power code.Ranjani Vaidyanathan
Fix couple of race-conditions associated with low power IDLE code: 1. Ensure that bus freq mutex is used in the suspend/resume function 2. Ensure that the usecount of pll2 is incremented/decremented when ARM is switched to run from PLL2_PFD_400. And PLL2 is enabled/disabled when necessary. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-05ENGR00222133 MX6SL - Fix crashes caused by Low power IDLE supportRanjani Vaidyanathan
Need to ensure that the ARM_CLK rate stays exactly the same when moving ARM_CLK from PLL2_PFD_400 to PLL1 when system enters 24MHz state. Also need to ensure that PLL1 is enabled before relocking the PLL to the correct rate. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-05ENGR00221370 IPUv3:Clean up IPUv3 interrupt handlerLiu Ying
1) In the interrupt handler, we access sync interrupt control registers 2 times, and each time with spin lock being held and then released, which may cause potential racing on the registers. We see that as long as the racing happens with two displays enabled on the same IPU, one IPU display channel will lose EOF interrupt and it makes its fb's pan display ioctrl fail with timeout. This patch changes to hold the spin lock one time for the whole irq handler, as the handler should return quickly. Holding and releasing the spin lock unnecessarily may bring performance penalty as well. 2) We do not need to use spin_lock_irqsave() and spin_unlock_irqrestore() in the interrupt handler, as we are already in the hard irq context. Using spin_lock() and spin_unlock() is enough to protect the registers. 3) Clear an interrupt control bit as soon as its related handler finishes. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit c5d3731fa0880a65efafb4826d3722aacb79edd5)
2012-09-05ENGR00221218: imx6: remove redundant spi defineRobby Cai
There're two imx6q_add_ecspi() defines, remove one. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-09-05ENGR00221983 IPUv3:Correct ERR and SYNC interrupt line numbersLiu Ying
As we define ERR interrupt with 0 irq resource id and SYNC interrupt with 1 irq resource id in platform-imx_ipuv3.c, we wrongly assign them in IPUv3 driver. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit 52c9fc323e0f72e53de6fe0c6f7012fe7adf14b4)
2012-09-05ENGR00221975 Fix race condition in clock code.Ranjani Vaidyanathan
Need to ensure that check for usecount in clk_set_parent occurs within the protection of the clock mutex. Else there is a chance that the usecount can be decremented (and the clock disabled) after the check. Also add back the code to maintain the correct usecount for pll2_pfd_400. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-05ENGR00221974 MX6SL-Fix system hang/crash issue in low power IDLERanjani Vaidyanathan
Ensure that the pull-up is enabled when the DQS line of LPDDR2 is floated when DDR freq is dropped to 24MHz. This is required else its possible that the DDR will latch incorrect data when it exits self-refresh. CKE line should not be floated as it may cause DDR to incorrectly exit self-refresh mode. Also add 25 nops after the code that removes DDR from self-refresh. We need this to ensure that the prefetcher block in A9 does not access any instruction from DDR before the DDR exits self-refresh. The A9 prefetch depth is about 23, hence 25 nops. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-05ENGR00221970 MX6SL:Fix suspend/resume issue on MX6SLEVKRanjani Vaidyanathan
Make sure the Pull Ups are enabled on the DQS lines of LPDDR2 memory. Without that its possible that the data latched by the memory will be incorrect when exiting from self-refresh mode. So only set the drive strengths to 0 when floating the DDR IO pads before entering suspend. Also never float the CKE pad, this pin always needs to be driven, else the DDR may incorrectly exit self-refresh. Hence remove the line that was setting CKE drive strength to zero (GRP_CTLDS). Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
2012-09-03ENGR00215875-2: caam: fix descriptor buffer overrun in hash_digest_key()Steve Cornelius
HMAC keys often need to be reduced to under the size of a digest to be used. The driver does this psuedo-synchronously through the use of hash_digest_key(), which builds a sequence pointered job descriptor to perform this function. When this function built the job descriptor, it correctly accounted for the number of instructions and number of pointers that would go into its construction. However, it failed to account for the fact that both the sequence in and out pointers used extended lengths, adding 8 more bytes to the required job descriptor. This caused the descriptor to overrun the allocated buffer by that amount, resulting in memory corruptions. Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com> Signed-off-by: Terry Lv <r65388@freescale.com>
2012-09-03ENGR00215875-1: caam: improve initalization for context state savesSteve Cornelius
Multiple function in asynchronous hashing use a saved-state block, a.k.a. struct caam_hash_state, which holds a stash of information between requests (init/update/final). Certain values in this state block are loaded for processing using an inline-if, and when this is done, the potential for uninitialized data can pose conflicts. Therefore, this patch improves initialization of state data to prevent false assignments using uninitialized data in the state block. This patch addresses the following traceback, originating in ahash_final_ctx(), although a problem like this could certainly exhibit other symptoms: kernel BUG at arch/arm/mm/dma-mapping.c:465! Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = 80004000 [00000000] *pgd=00000000 Internal error: Oops: 805 [#1] PREEMPT SMP Modules linked in: CPU: 0 Not tainted (3.0.15-01752-gdd441b9-dirty #40) PC is at __bug+0x1c/0x28 LR is at __bug+0x18/0x28 pc : [<80043240>] lr : [<8004323c>] psr: 60000013 sp : e423fd98 ip : 60000013 fp : 0000001c r10: e4191b84 r9 : 00000020 r8 : 00000009 r7 : 88005038 r6 : 00000001 r5 : 2d676572 r4 : e4191a60 r3 : 00000000 r2 : 00000001 r1 : 60000093 r0 : 00000033 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 1000404a DAC: 00000015 Process cryptomgr_test (pid: 1306, stack limit = 0xe423e2f0) Stack: (0xe423fd98 to 0xe4240000) fd80: 11807fd1 80048544 fda0: 88005000 e4191a00 e5178040 8039dda0 00000000 00000014 2d676572 e4191008 fdc0: 88005018 e4191a60 00100100 e4191a00 00000000 8039ce0c e423fea8 00000007 fde0: e4191a00 e4227000 e5178000 8039ce18 e419183c 80203808 80a94a44 00000006 fe00: 00000000 80207180 00000000 00000006 e423ff08 00000000 00000007 e5178000 fe20: e41918a4 80a949b4 8c4844e2 00000000 00000049 74227000 8c4844e2 00000e90 fe40: 0000000e 74227e90 ffff8c58 80ac29e0 e423fed4 8006a350 8c81625c e423ff5c fe60: 00008576 e4002500 00000003 00030010 e4002500 00000003 e5180000 e4002500 fe80: e5178000 800e6d24 007fffff 00000000 00000010 e4001280 e4002500 60000013 fea0: 000000d0 804df078 00000000 00000000 00000000 00000000 00000000 00000000 fec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 fee0: 00000000 00000000 e4227000 e4226000 e4753000 e4752000 e40a5000 e40a4000 ff00: e41e7000 e41e6000 00000000 00000000 00000000 e423ff14 e423ff14 00000000 ff20: 00000400 804f9080 e5178000 e4db0b40 00000000 e4db0b80 0000047c 00000400 ff40: 00000000 8020758c 00000400 ffffffff 0000008a 00000000 e4db0b40 80206e00 ff60: e4049dbc 00000000 00000000 00000003 e423ffa4 80062978 e41a8bfc 00000000 ff80: 00000000 e4049db4 00000013 e4049db0 00000013 00000000 00000000 00000000 ffa0: e4db0b40 e4db0b40 80204cbc 00000013 00000000 00000000 00000000 80204cfc ffc0: e4049da0 80089544 80040a40 00000000 e4db0b40 00000000 00000000 00000000 ffe0: e423ffe0 e423ffe0 e4049da0 800894c4 80040a40 80040a40 00000000 00000000 [<80043240>] (__bug+0x1c/0x28) from [<80048544>] (___dma_single_dev_to_cpu+0x84) [<80048544>] (___dma_single_dev_to_cpu+0x84/0x94) from [<8039dda0>] (ahash_fina) [<8039dda0>] (ahash_final_ctx+0x180/0x428) from [<8039ce18>] (ahash_final+0xc/0) [<8039ce18>] (ahash_final+0xc/0x10) from [<80203808>] (crypto_ahash_op+0x28/0xc) [<80203808>] (crypto_ahash_op+0x28/0xc0) from [<80207180>] (test_hash+0x214/0x5) [<80207180>] (test_hash+0x214/0x5b8) from [<8020758c>] (alg_test_hash+0x68/0x8c) [<8020758c>] (alg_test_hash+0x68/0x8c) from [<80206e00>] (alg_test+0x7c/0x1b8) [<80206e00>] (alg_test+0x7c/0x1b8) from [<80204cfc>] (cryptomgr_test+0x40/0x48) [<80204cfc>] (cryptomgr_test+0x40/0x48) from [<80089544>] (kthread+0x80/0x88) [<80089544>] (kthread+0x80/0x88) from [<80040a40>] (kernel_thread_exit+0x0/0x8) Code: e59f0010 e1a01003 eb126a8d e3a03000 (e5833000) ---[ end trace d52a403a1d1eaa86 ]--- Signed-off-by: Steve Cornelius <steve.cornelius@freescale.com> Signed-off-by: Terry Lv <r65388@freescale.com>
2012-08-30ENGR00222005 mfgtool can't work on mx6sl evk boardTony LIU
- add imx6s_updater_defconfig to generate mx6sl firmware - add CONFIG_MACH_MX6SL_EVK=y - remove SMP for mx6sl - add CONFIG_MX6_INTER_LDO_BYPASS=y Signed-off-by: Tony LIU <junjie.liu@freescale.com>
2012-08-29ENGR00221902 [MX6]Fix udelay inaccurate issue during suspend/resumeAnson Huang
When system enter suspend, we increase CPUFreq to the highest point without update the global loops_per_jiffy, it will lead to udelay inaccurate during the last phase of suspend/resume. WB counter and RBC counter need at least two 32K cycles to finish, here we add 80us for safe. Signed-off-by: Anson Huang <b20788@freescale.com>
2012-08-29ENGR00221867 sabresd : support adjust VDDSOC if enable LDO bypassRobin Gong
support adjust VDDSOC if enable LDO bypass on mx6_sabresd board Signed-off-by: Robin Gong <B38343@freescale.com>
2012-08-29ENGR00221716-02 Mx6 USB host: add port speed define MACRO to arc_otg.hmake shi
Add port speed define MACRO to arc_otg.h. Signed-off-by: make shi <b15407@freescale.com>
2012-08-29ENGR00221716-01 Mx6 USB host: set disconnect bit should wait for resume finishedmake shi
For i.MX6DLTO1.1 and i.MX6DQTO1.2, the disconnection-bit can only be set after the resume finished, otherwise, the remote-wake-up may fail. Because if the device not switch to High-Speed 45ohm termination resistors mode, when the disconnection detection bit is set the disconnection detection circuit will detect a high speed disconnection by mistake. Signed-off-by: make shi <b15407@freescale.com>
2012-08-29ENGR00182456-3 HDMI VIDEO: abort audio when unblank and plugoutChen Liangjun
In this patch: 1. Close audio PCM stream when video unblank and plugout event happens. 2. Set HDMI cable and blank state into HDMI core driver when plug/unplug, blank/unblank events happens. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-08-29ENGR00182456-2 HDMI AUDIO: register/unregister when audio pcm open/closeChen Liangjun
In this patch: 1. Register substream into HDMI core driver when HDMI audio PCM is open. 2. Unregister substream out of HDMI core driver when HDMI audio PCM is close. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-08-29ENGR00182456-1 HDMI: Add interface for HDMI audio managementChen Liangjun
In this patch, add support for: 1. Interface for HDMI audio to register PCM into HDMI core driver. 2. Interface for HDMI video driver to stop HDMI audio 3. Interface for HDMI video driver to inform the state of HDMI cable and state of HDMI blank. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-08-29ENGR00221298 Fix tuner clock frequency on SSIAlejandro Sierra
Fix clock frequency configuration on SSI interface for the Tuner driver. Signed-off-by: Alejandro Sierra <b18039@freescale.com>