summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2012-09-05Merge commit 'rel_imx_3.0.35_12.09.02_RC1' into imx_3.0.35_android_r13.5-betaJack Lee
Conflicts: arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/mach-mx6/board-mx6sl_arm2.c arch/arm/mach-mx6/bus_freq.c arch/arm/mach-mx6/cpu_op-mx6.c arch/arm/plat-mxc/cpufreq.c Signed-off-by: Jack Lee <jacklee@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-23ENGR00219601-02: mmc: sdhci: revise pre_req & post_req to improve performanceRyan QIAN
Test Env: 1. MX6DL SabreSD board. 2. On board eMMC (Sandisk: SDIN5C2-8G) running at 8-bit DDR @ 52MHz. 3. Test commands: 3.1 Writing command: # dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=100 conv=fsync 3.2 Reading command: # echo 1 > /proc/sys/vm/drop_caches # echo 1 > /proc/sys/vm/drop_caches # sleep 1 # dd if=/dev/mmcblk0 of=/dev/null bs=1M count=100 Performance result with this patch: ------------------------------------------------------- | CPU freq | SDMA (512KB) | SDMA (64KB) | ADMA | |----------+--------------+-------------+-------------| | 1Ghz | ~11MB/s (w) | ~5MB/s (w) | ~11MB/s (w) | | | ~25MB/s (r) | ~25MB/s (r) | ~23MB/s (r) | |----------+--------------+-------------+-------------| | 200Mhz | ~8MB/s (w) | ~5MB/s (w) | ~9MB/s (w) | | | ~16MB/s (r) | ~20MB/s (r) | ~13MB/s (r) | ------------------------------------------------------- Performance result without this patch: ------------------------------------------------------- | CPU freq | SDMA (512KB) | SDMA (64KB) | ADMA | |----------+--------------+-------------+-------------| | 1Ghz | ~10MB/s (w) | ~5MB/s (w) | ~10MB/s (w) | | | ~22MB/s (r) | ~23MB/s (r) | ~22MB/s (r) | |----------+--------------+-------------+-------------| | 200Mhz | ~8MB/s (w) | ~4MB/s (w) | ~8MB/s (w) | | | ~13MB/s (r) | ~16MB/s (r) | ~11MB/s (r) | ------------------------------------------------------- Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-08-22ENGR00219601-02: mmc: sdhci: revise pre_req & post_req to improve performanceRyan QIAN
Test Env: 1. MX6DL SabreSD board. 2. On board eMMC (Sandisk: SDIN5C2-8G) running at 8-bit DDR @ 52MHz. 3. Test commands: 3.1 Writing command: # dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=100 conv=fsync 3.2 Reading command: # echo 1 > /proc/sys/vm/drop_caches # echo 1 > /proc/sys/vm/drop_caches # sleep 1 # dd if=/dev/mmcblk0 of=/dev/null bs=1M count=100 Performance result with this patch: ------------------------------------------------------- | CPU freq | SDMA (512KB) | SDMA (64KB) | ADMA | |----------+--------------+-------------+-------------| | 1Ghz | ~11MB/s (w) | ~5MB/s (w) | ~11MB/s (w) | | | ~25MB/s (r) | ~25MB/s (r) | ~23MB/s (r) | |----------+--------------+-------------+-------------| | 200Mhz | ~8MB/s (w) | ~5MB/s (w) | ~9MB/s (w) | | | ~16MB/s (r) | ~20MB/s (r) | ~13MB/s (r) | ------------------------------------------------------- Performance result without this patch: ------------------------------------------------------- | CPU freq | SDMA (512KB) | SDMA (64KB) | ADMA | |----------+--------------+-------------+-------------| | 1Ghz | ~10MB/s (w) | ~5MB/s (w) | ~10MB/s (w) | | | ~22MB/s (r) | ~23MB/s (r) | ~22MB/s (r) | |----------+--------------+-------------+-------------| | 200Mhz | ~8MB/s (w) | ~4MB/s (w) | ~8MB/s (w) | | | ~13MB/s (r) | ~16MB/s (r) | ~11MB/s (r) | ------------------------------------------------------- Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-08-17ENGR00219910 IPUv3 fb: add vsync event report to user space.Zhang Jiejing
add vsync uevent report for user space. add a IOCTL to enable/disable vsync uevent report to user space. VSYNC uevent can let user space start draw just receive VSYNC irq, and keep the draw within 16.7 ms that make the draw will show in this frame, enhance the draw speed after receive input event. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
2012-08-16ENGR00220341-3 usb: add spin_lock at platform dataPeter Chen
It is used to sync pdata->lowpower between wakeup interrupt and driver API. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2012-08-14ENGR00220199 Add CPU governor trigger for GPU2D and GPUVG coreRichard Liu
Add CPU governor trigger for GPU2D and GPUVG core, without these trigger some benchmark show performance drop when enable CPU governor Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Lily Zhang
2012-08-14ENGR00220199 Add CPU governor trigger for GPU2D and GPUVG coreRichard Liu
Add CPU governor trigger for GPU2D and GPUVG core, without these trigger some benchmark show performance drop when enable CPU governor Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Lily Zhang
2012-08-10Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
2012-08-09ENGR00219837-1 HDMI: Add HDMI_SDMA support for RIGEL TO1.1Chen Liangjun
In RIGEL TO1.1, the same HDMI_SDMA fix is introduced as ARIK TO1.2. Add support for RIGEL TO1.1 for HDMI_SDMA functionality. In this patch: 1.Add hdmi_SDMA_check() interface to judge whether MX6 chip support HDMI_SDMA. 2.Replace mx6q_version() check with hdmi_SDMA_check() to support both ARIK To1.2 and RIGEL TO1.1. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-08-07ENGR00219578 ion: refine the ioctl of ION_IOC_PHYSXinyu Chen
The ioctl should return 0 when successful. And the physical address is returned by the parameter structures. Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
2012-08-01Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
Conflicts: drivers/mxc/vpu/mxc_vpu.c
2012-07-30ENGR00218421-2 ESAI_ASRC:Add support for p2p virtual device playbackChen Liangjun
In the origin code, ESAI driver supoprt audio p2p playback by setting input PCM data's sample rate thought amixer interface.It is ugly and request user application call amixer control interface everytime before and playback. In this patch, user can call the audio p2p playback by writing data to an special virtual device. Driver would automatically get the params of input PCM. At the same time, driver would get the output sample rate and word data. With the data abover, driver can set ASRC properly and audio p2p palyback is support. This patch mainly focus on: 1 clean old p2p playback way for ESAI. 2 Setup the output sample rate and word width to virtual device's substream_runtime's private data. Everytime the virtual device is called, the data abover is used for config ASRC, ESAI, and codec. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-27ENGR00182743-1 IPU: Add non-interleaved YUV444 pixel format supportWayne Zou
Define IPU_PIX_FMT_YUV444P macro for non-interleaved YUV444 pixel format Signed-off-by: Wayne Zou <b36644@freescale.com>
2012-07-25Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
Conflicts: arch/arm/configs/imx6_defconfig arch/arm/configs/imx6_updater_defconfig arch/arm/configs/imx6s_defconfig arch/arm/include/asm/dma-mapping.h arch/arm/kernel/smp.c arch/arm/mach-mx6/Kconfig arch/arm/mach-mx6/board-mx6dl_arm2.h arch/arm/mach-mx6/board-mx6dl_sabresd.h arch/arm/mach-mx6/board-mx6q_arm2.c arch/arm/mach-mx6/board-mx6q_arm2.h arch/arm/mach-mx6/board-mx6q_sabreauto.c arch/arm/mach-mx6/board-mx6q_sabreauto.h arch/arm/mach-mx6/board-mx6q_sabrelite.c arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/mach-mx6/board-mx6q_sabresd.h arch/arm/mach-mx6/board-mx6sl_arm2.c arch/arm/mach-mx6/board-mx6sl_arm2.h arch/arm/mach-mx6/board-mx6solo_sabreauto.h arch/arm/mach-mx6/bus_freq.c arch/arm/mach-mx6/clock.c arch/arm/mach-mx6/clock_mx6sl.c arch/arm/mach-mx6/cpu.c arch/arm/mach-mx6/crm_regs.h arch/arm/mach-mx6/devices-imx6q.h arch/arm/mach-mx6/devices.c arch/arm/mach-mx6/mx6_anatop_regulator.c arch/arm/mach-mx6/pcie.c arch/arm/mach-mx6/system.c arch/arm/mm/dma-mapping.c arch/arm/plat-mxc/devices/Makefile arch/arm/plat-mxc/devices/platform-imx-dcp.c arch/arm/plat-mxc/devices/platform-imx-ocotp.c arch/arm/plat-mxc/devices/platform-imx-rngb.c arch/arm/plat-mxc/devices/platform-mxc_hdmi.c arch/arm/plat-mxc/include/mach/devices-common.h arch/arm/plat-mxc/include/mach/esdhc.h arch/arm/plat-mxc/include/mach/iomux-mx6dl.h arch/arm/plat-mxc/include/mach/iomux-mx6q.h arch/arm/plat-mxc/include/mach/memory.h arch/arm/plat-mxc/include/mach/mx6.h arch/arm/plat-mxc/include/mach/mxc_edid.h arch/arm/plat-mxc/include/mach/mxc_hdmi.h arch/arm/plat-mxc/system.c drivers/Kconfig drivers/char/hw_random/fsl-rngc.c drivers/cpufreq/Makefile drivers/cpufreq/cpufreq_interactive.c drivers/crypto/Kconfig drivers/crypto/caam/caamalg.c drivers/crypto/caam/compat.h drivers/crypto/caam/ctrl.c drivers/crypto/caam/desc_constr.h drivers/crypto/caam/intern.h drivers/crypto/dcp.c drivers/dma/pch_dma.c drivers/input/keyboard/gpio_keys.c drivers/input/touchscreen/egalax_ts.c drivers/input/touchscreen/max11801_ts.c drivers/media/video/mxc/capture/Kconfig drivers/media/video/mxc/capture/adv7180.c drivers/media/video/mxc/capture/ipu_csi_enc.c drivers/media/video/mxc/capture/ipu_prp_vf_sdc.c drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c drivers/media/video/mxc/capture/mxc_v4l2_capture.c drivers/media/video/mxc/capture/ov5640_mipi.c drivers/media/video/mxc/output/mxc_vout.c drivers/misc/Kconfig drivers/misc/Makefile drivers/mmc/card/block.c drivers/mmc/core/mmc.c drivers/mmc/host/mmci.c drivers/mmc/host/sdhci-esdhc-imx.c drivers/mmc/host/sdhci.c drivers/mmc/host/sdhci.h drivers/mxc/Kconfig drivers/mxc/Makefile drivers/mxc/asrc/mxc_asrc.c drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c drivers/mxc/ipu3/ipu_device.c drivers/mxc/vpu/mxc_vpu.c drivers/net/fec.c drivers/net/wireless/Makefile drivers/power/sabresd_battery.c drivers/regulator/core.c drivers/tty/serial/imx.c drivers/usb/core/hub.c drivers/usb/gadget/arcotg_udc.c drivers/usb/gadget/fsl_updater.c drivers/usb/gadget/inode.c drivers/usb/host/ehci-hub.c drivers/video/mxc/ldb.c drivers/video/mxc/mipi_dsi.c drivers/video/mxc/mxc_dispdrv.c drivers/video/mxc/mxc_dispdrv.h drivers/video/mxc/mxc_edid.c drivers/video/mxc/mxc_elcdif_fb.c drivers/video/mxc/mxc_ipuv3_fb.c drivers/video/mxc/mxc_spdc_fb.c drivers/video/mxc_hdmi.c drivers/watchdog/imx2_wdt.c fs/proc/base.c include/linux/mmc/host.h include/linux/mmc/sdhci.h include/linux/mxc_v4l2.h kernel/power/main.c sound/soc/codecs/mxc_hdmi.c sound/soc/codecs/mxc_spdif.c sound/soc/codecs/wm8962.c sound/soc/imx/Kconfig sound/soc/imx/Makefile sound/soc/imx/imx-cs42888.c sound/soc/imx/imx-esai.c sound/soc/imx/imx-wm8958.c sound/soc/imx/imx-wm8962.c
2012-07-25ENGR00217721-2 add dma_pool_alloc_nonbufferable interfaceTony LIU
include/linux head file part - After USB driver prime a bulk transfer(whatever IN or OUT, take OUT for example) on ep1, only one dTD is primed, an USB Interrupt (bit 0 of USBSTS) will be issued, and find that endptcomplete register is 0x2 which means an OUT transfer on ep1 is completed, at this time the ep1 out queue head status is 0x1e18000, and next dtd pointer is 0x1 which means transfer is done and everything is OK, while the dTD token status is 0x2008080 which means this dTD is still active, not completed yet. - Audio SDMA and Ethernet have the similar issue - root cause is not found yet - work around: change the non-cacheable bufferable memory to non-cacheable non-bufferable memory to make this issue disappear. Signed-off-by: Tony LIU <junjie.liu@freescale.com>
2012-07-25ENGR00216013-1 memblock: add memblock_end_of_DRAM_with_reserved() function.Zhang Jiejing
add a function to check the end address including reserved memory, this API can provide the top address of phy memory, it can be used to check if the phy memory is valild in some driver like VPU. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
2012-07-25ENGR00217122 mmc: esdhc: move sd3.0 tuning routine into pltfmRyan QIAN
in mx6q/dl, move fsl tuning procedure into platform driver code from common code hacking. Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-07-25ENGR00215810-2 AHCI: sata drops to 1.5Gbps after suspend/resume several timesRichard Zhu
Add the AHCI platform suspend/resume function callback to fix this issue. Signed-off-by: Richard Zhu <r65037@freescale.com>
2012-07-20ENGR00214367-1 power_supply: add get_supplier_propertyRong Dian
add get_supplier_property interface. This patch was written by: Heikki Krogerus <heikki.krogerus@linux.intel.com> originally. Signed-off-by: Rong Dian <b38775@freescale.com>
2012-07-20ENGR00212318 ASRC:update to in/out width configChen Liangjun
The origin ASRC driver did not support input and output wordwidth config but an total wordwidth config instead. And the input wordwith and output wordwidth are all fixed to 24 bit. In this path, we do things below: 1 Update to use input wordwidth and output wordwidth config seperately instead of an total wordwidth config. 2 Set corresponding DMA(input/output) buswidth according ASRC's input and output wordwidth config. 3 Support 16/24 bit input wordwidth and 24 bit output wordwidth. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-20ENGR00212322-3 usb: add one platform data entry to store anatop base addressPeter Chen
It is used to usb charger detect, the charger detection process need to access anatop register. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2012-07-20ENGR00210075-3 - SPDC: Add Sipix driverFugang Duan
Add Sipix driver for electronic paper dispaly - Support RGB565 & Y4 formats with 800x600 resolution - Support synchronization update by waiting the last request update completed. - Support automated update using Linux deferred io mechanism - Support for panning(y-direction) - Support rotation with 90,180,and 270 degree. - Initial integration with ePXP, output Y4 format - Support specific waveform modes update. - Support Snapshot, Queue and Queue Merge update sheeme. - Support full and partial EPD screen updates. mode_1 & mode_2: partial update mode_0 & mode_3: full update - Align waveform mode with EPDC as below: mode_init = mode_0; mode_gc4 = mode_2; mode_A2 = mode_4, mode_du =mode_4; mode_gc8 = mode_1, mode_gc16 = mode_1, mode_gc32 = mode_1; Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-07-20ENGR00209062-2: mx6dq and mx6dl dual camera supportWu Guoxing
dual camera support for mx6q and mx6dl: 1. let mipi and parallel camera working on different csi 2. the two camera can work independently and synchronously 3. the two camera will be registered and different video device(/dev/video0, /dev/video1) 4. when both camera are working, the can not use the same ipu channel, that is, when camera one using PRP_ENC_MEM or PRP_VF_MEM channel, the other one can only use CSI_MEM this is the driver part. Signed-off-by: Wu Guoxing <b39297@freescale.com>
2012-07-20ENGR00209978-2: imx6sl: lcdif: update driver partRobby Cai
- use new console lock/unlock Board Rework Needed: - remove R572, R569, R611 to eliminate conflict with FEC modules. Signed-off-by: Robby Cai <R63905@freescale.com>
2012-07-20ENGR00182769 HDMI: No sound when playing audio in 480p modeSandor Yu
It is cause by HDMI audio driver can't get right pixel clock from IPU driver if pixel clock source from HSP clock not from DI clock. HDMI driver get pixel clock by call clk_get_rate() function, but the function return actually clock, in some videomode the actually pixel clock is not right equal the pixel clock in CEA spec. Get pixel clock from video mode struct instead of CCM register. 480P HDMI audio can work. Signed-off-by: Sandor Yu <R01008@freescale.com>
2012-07-20ENGR00209570 - PxP : Add Y4 output format.Fugang Duan
- Add Y4 output format for SPDC. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-07-20ENGR00181094-4: MAX8903: improve battery charger driverRong Dian
1.change the battery driver's name to sabresd_battery.c ,it means this driver is only special for sabersd boards. 2.fix battery charger function bugs and improve driver code. Signed-off-by: Rong Dian <b38775@freescale.com>
2012-07-20ENGR00181094-2: MAX8903: Add battery charger driverRong Dian
Add battery charger driver on SABRESD_rev.B board. Signed-off-by: Rong Dian <b38775@freescale.com>
2012-07-20ENGR00179601 Synopsys approved hdmi fifo workaround - rev 3Alan Tull
This patch includes some of the clk enable/disable changes from rev2 Check the version of the HDMI IP to determine whether the fifo threshold needs to be high. The i.Mx6dl version of the HDMI doesn't need the workaround. All other parts of the workaround are used for both parts for code simplicity. ---------------------------------------------------------- For i.Mxq, set the Threshold of audio fifo as: FIFO depth - 2 (fixed and independent of the number of channels actually used). Use unspecified length ahb bursts (using fixed INCRx will make the audio dma fail). Additionally and in order to get it working on all conditions it will be necessary to run the following sw steps at startup of video and audio (or when video changes or audio changes): 1-Configure AUD_N1 and AUD_CTS1 registers with final value and let the AUD_N2, AUD_N3, AUD_CTS2 and AUD_CTS3 to 0s. 2-Configure start and end addresses of audio DMA registers. 3-Start DMA operation 4-Configure the AUD_CTS2 and AUD_CTS3 with the final value. 5-Configure the AUD_N2 and AUD_N3 with final value. Signed-off-by: Alan Tull <r80115@freescale.com>
2012-07-20ENGR00179513-2 IPU: Add TILED_NV12_FRAME_SIZE macro for consistencyWayne Zou
VPU needs 4K align buffer address for tiled format data output. Use this macro for IPU/V4L2/Apps to calculate the frame/field size. Signed-off-by: Wayne Zou <b36644@freescale.com>
2012-07-20ENGR00179284-1 support ONFI NAND device on mx6q_arm2_pop boardAllen Xu
Add a platform data to indicate whether the board support ONFI nand Signed-off-by: Allen Xu <allen.xu@freescale.com>
2012-07-20ENGR00179123 AMFM I2C module to ARD platform for IMX6Q and IMX6DLAlejandro Sierra
Basic I2C module integration of AMFM module to ARD platform IMX6Q and IMX6DL rev A and rev B boards. Supported for kernel 3.0.15. Signed-off-by: Alejandro Sierra <b18039@freescale.com>
2012-07-20ENGR00178875-2 VDOA: Add vdoa support on i.MX6 SOC platformWayne Zou
Add tiled format macros: IPU_PIX_FMT_TILED_NV12 and IPU_PIX_FMT_TILED_NV12F Signed-off-by: Wayne Zou <b36644@freescale.com>
2012-07-20ENGR00179077 ASRC:delete unused variableChen Liangjun
Delete unused variable busy_lock in mxc_asrc.h. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-20ENGR00177281-5 WM8962: add record featureGary Zhang
1. add amic and dmic support. 2. update wm8962 codec driver Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00178290-2 mmc: sdhci: introduce QUIRK_BROKEN_AUTO_CMD23 for mx6Dong Aisheng
We observed a few commands timeout when using auto cmd23. The root cause is still unkonwn. This patch is a workaround to not use auto cmd23 temporarily. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2012-07-20ENGR00177302 ASRC: change clock managementChen Liangjun
1 close clock when asrc is not working. 2 enable the asrc core clock when user sucessfully request an ASRC pair and disable it when the pair is release.So the call from ESAI using the p2p DMA mode can be support. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-20ENGR00176177-2 Add irq count mechanism to interactive governorAnson Huang
Add irq count to CPUFreq as a freq change condition. Because some devices' working mode is unable to issue CPUFreq change because of low CPU loading, but the cpu freq will impact these devices' performace significantly. Interactive govervor will sample the cpu loading as well as the irq count which is registered. If the loading or the irq count exceed the threshold we set, governor will issue an CPUFreq change request. These devices' irq threshold and enable/disable can be modified via /sys/devices/system/cpu/cpufreq/interactive/irq_scaling echo 0xAABBBC to change the default setting as below AA : irq number BBB: threshold C :enable or disable Currently only enable USDHC3, USDHC4, GPU, SATA and USB by default, we can add device to the init struct which is located in arch/arm/mach-mx6/irq.c. Signed-off-by: Anson Huang <b20788@freescale.com>
2012-07-20ENGR00177745-1 Add interactive cpufreq governorAnson Huang
cpufreq: interactive: New 'interactive' governor This governor is designed for latency-sensitive workloads, such as interactive user interfaces. The interactive governor aims to be significantly more responsive to ramp CPU quickly up when CPU-intensive activity begins. Existing governors sample CPU load at a particular rate, typically every X ms. This can lead to under-powering UI threads for the period of time during which the user begins interacting with a previously-idle system until the next sample period happens. The 'interactive' governor uses a different approach. Instead of sampling the CPU at a specified rate, the governor will check whether to scale the CPU frequency up soon after coming out of idle. When the CPU comes out of idle, a timer is configured to fire within 1-2 ticks. If the CPU is very busy from exiting idle to when the timer fires then we assume the CPU is underpowered and ramp to MAX speed. If the CPU was not sufficiently busy to immediately ramp to MAX speed, then the governor evaluates the CPU load since the last speed adjustment, choosing the highest value between that longer-term load or the short-term load since idle exit to determine the CPU speed to ramp to. A realtime thread is used for scaling up, giving the remaining tasks the CPU performance benefit, unlike existing governors which are more likely to schedule rampup work to occur after your performance starved tasks have completed. The tuneables for this governor are: /sys/devices/system/cpu/cpufreq/interactive/min_sample_time: The minimum amount of time to spend at the current frequency before ramping down. This is to ensure that the governor has seen enough historic CPU load data to determine the appropriate workload. /sys/devices/system/cpu/cpufreq/interactive/go_maxspeed_load The CPU load at which to ramp to max speed. Signed-off-by: Anson Huang <b20788@freescale.com>
2012-07-20ENGR00171874 fix ASRC noise bug for i.MX6Chen Liangjun
Solve the ASRC noise: 1 change the DMA mode from normal mode to loop mode. 2 use dma_alloc_coherent alloc dma buffer instead of kzalloc. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-20ENGR00176299-3 usb host suspend/resume can't work randomlyTony LIU
head file part Signed-off-by: Tony LIU <junjie.liu@freescale.com>
2012-07-20ENGR00176649-1 sabrelite_SD ARD pfuze: update pfuze driver for pfuze100 1.0Robin Gong
Since some power rail is differnet between pfuze100 0.1 and pfuze100 1.0, remove PFUZE100_FIRST_VERSION and change PFUZE100_SW4_VOL6 define. Signed-off-by: Robin Gong <b38343@freescale.com>
2012-07-20ENGR00176147-3: usb: change data types for wakeup_eventPeter Chen
In order to know which wakeup event occurs for usb wakeup Signed-off-by: Peter Chen <peter.chen@freescale.com>
2012-07-20ENGR00176061-2 usb: otg: add discharge vbus flagPeter Chen
Add discharge vbus flag Signed-off-by: Peter Chen <peter.chen@freescale.com>
2012-07-20ENGR00175864 [MMC]pipeline mmc requestsTony Lin
the patch is based on a series of patches by Per Forlin the patch is sdhci host side implementation. using a toshiba SDHC3.0 card, the performance increases from 48.5MB/s to 52.4MB/s. cmd: dd if=/dev/mmcblk0 of=/dev/null bs=1M count=500 the performance results running@1GHz, 200MHz CPU freq are: 52.4MB/s -> 20.7MB/s Signed-off-by: Tony Lin <tony.lin@freescale.com>
2012-07-20ENGR00170526-2 AUDIO: Remove struct field rst_gpio to audio platform dataLionel Xu
Remove rst_gpio field to mxc_audio_platform_data. Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
2012-07-20mmc: queue: let host controllers specify maximum discard timeoutAdrian Hunter
Some host controllers will not operate without a hardware timeout that is limited in value. However large discards require large timeouts, so there needs to be a way to specify the maximum discard size. A host controller driver may now specify the maximum discard timeout possible so that max_discard_sectors can be calculated. However, for eMMC when the High Capacity Erase Group Size is not in use, the timeout calculation depends on clock rate which may change. For that case Preferred Erase Size is used instead. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Chris Ball <cjb@laptop.org>
2012-07-20mmc: block: allow get_card_status() to return error statusRussell King - ARM Linux
If the MMC_SEND_STATUS command is not successful, we should not return a zero status word, but instead allow the caller to know positively that an error occurred. Convert the open-coded get_card_status() to use the helper function, and provide definitions for the card state field. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Linus Walleij <linus.walleij@linaro.org> Tested-by: Pawel Moll <pawel.moll@arm.com> Signed-off-by: Chris Ball <cjb@laptop.org>
2012-07-20mmc: core: add non-blocking mmc request functionPer Forlin
Previously there has only been one function mmc_wait_for_req() to start and wait for a request. This patch adds: * mmc_start_req() - starts a request wihtout waiting If there is on ongoing request wait for completion of that request and start the new one and return. Does not wait for the new command to complete. This patch also adds new function members in struct mmc_host_ops only called from core.c: * pre_req - asks the host driver to prepare for the next job * post_req - asks the host driver to clean up after a completed job The intention is to use pre_req() and post_req() to do cache maintenance while a request is active. pre_req() can be called while a request is active to minimize latency to start next job. post_req() can be used after the next job is started to clean up the request. This will minimize the host driver request end latency. post_req() is typically used before ending the block request and handing over the buffer to the block layer. Add a host-private member in mmc_data to be used by pre_req to mark the data. The host driver will then check this mark to see if the data is prepared or not. Signed-off-by: Per Forlin <per.forlin@linaro.org> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Venkatraman S <svenkatr@ti.com> Tested-by: Sourav Poddar <sourav.poddar@ti.com> Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>