summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2012-02-22ENGR00174734-3 usb: change function name for discharge data linerel_imx_3.0.15_12.02.013.0-imx6-12.02.01-201202221138Peter Chen
In order to reflect the function well, it needs to discharge both dp and dm, so change the function name. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2012-02-17ENGR00173964 make hdmi audio init dependent on hdmi video initAlan Tull
Don't show hdmi as an audio playback device if hdmi isn't configured on the command line. Signed-off-by: Alan Tull <r80115@freescale.com>
2012-02-10ENGR00174128-3 Revert "Remove the discharge for VBUS and DP -3"Peter Chen
This reverts commit cc9616316bf044382ec422da5a6d4ed007235a3d. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2012-02-09ENGR00174037-3 Add HSIC suspend/resume featureTony LIU
head file Signed-off-by: Tony LIU <junjie.liu@freescale.com>
2012-02-08ENGR00172342-2 EDID parse audio data blocksAlan Tull
Add functionality to parse Audio Data Blocks from EDID data to find out what modes of LPCM are suppored by the HDMI sink device. The parsed settings are saved in the hdmi mfd. The HDMI audio driver will check the settings when the audio stream is opened and will then apply appropriate constraints. If we are unable to read from the EDID, then we default to supporting Basic Audio as defined by the HDMI specification (stereo, 16 bit, 32KHz, 44.1KHz, 48KHz PCM). Signed-off-by: Alan Tull <r80115@freescale.com>
2012-02-08ENGR00173864 MX6Q ipu capture: add multi camera switchYuxi Sun
Add IOCTRL command V4L2_CID_MXC_SWITCH_CAM for multi camera switch Signed-off-by: Yuxi Sun <b36102@freescale.com>
2012-02-08ENGR00174038 [mx6 mmc]fix build errTony Lin
fix build error: incompatible pointer type Signed-off-by: Tony Lin <tony.lin@freescale.com>
2012-02-08ENGR00174031 [MX6Q] Support AR6003 SDIO wifi on kernel v3.0Ryan QIAN
- add macros and struct used in new ath6kl. Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-02-08ENGR00173947-1 mtd/gpmi : add BBT support to gpmi nand driverHuang Shijie
Add a new field to gpmi_nand_platform_data{}. Make the BBT support to board specific. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-02-07ENGR00173731-1 mxs-dma : rename the dma.h for mxs-dmaHuang Shijie
Move the header to a more common place. The mxs dma engine is not only used in mx23/mx28, but also used in mx50/mx6q. It will also be used in the future chips. rename it to mxs-dma.h Acked-by: Lily Zhang <r58066@freescale.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-02-06ENGR00173288-02 merge "[MX6Q]add SDHC3.0 support on uSDHC controller"Ryan QIAN
ENGR152547-03 [MX6Q]add SDHC3.0 support on uSDHC controller add voltage switch function due to SDHC3.0 spec requirement add tuning function due to SDHC3.0 spec requirement extend some functions to support SDR50 & SDR104 speed mode - adjust the sequence of current_limit and bus_speed_mode - add FSL specific tuning procedure Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-01-31ENGR00173397 MTD: add NAND_BBT_USE_FLASH macroHuang Shijie
add the new macro to fix a compiling error. Signed-off-by: Huang Shijie <b32955@freescale.com>
2012-01-31mtd: abstract last MTD partition parser argumentDmitry Eremin-Solenikov
Encapsulate last MTD partition parser argument into a separate structure. Currently it holds only 'origin' field for RedBoot parser, but will be extended in future to contain at least device_node for OF devices. Amended commentary to make kerneldoc happy Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Artem Bityutskiy <dedekind1@gmail.com>
2012-01-31mtd: add new API for handling MTD registrationDmitry Eremin-Solenikov
Lots (nearly all) mtd drivers contain nearly the similar code that calls parse_mtd_partitions, provides some platform-default values, if parsing fails, and registers mtd device. This is an aim to provide single implementation of this scenario: mtd_device_parse_register() which will handle all this parsing and defaults. Artem: amended comments Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2012-01-31clk: add helper functions clk_prepare_enable and clk_disable_unprepareRichard Zhao
It's for migrating to generic clk framework API. The helper functions help cases clk_enable/clk_disable is used in non-atomic context. For example, Call clk_enable in probe and clk_disable in remove. Signed-off-by: Richard Zhao <richard.zhao@linaro.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Cc: Russell King <linux@arm.linux.org.uk> Acked-by: Marek Vasut <marek.vasut@gmail.com>
2012-01-31clk: provide prepare/unprepare functionsRussell King
As discussed previously, there's the need on some platforms to run some parts of clk_enable() in contexts which can schedule. The solution which was agreed upon was to provide clk_prepare() and clk_unprepare() to contain this parts, while clk_enable() and clk_disable() perform the atomic part. This patch provides a common definition for clk_prepare() and clk_unprepare() in linux/clk.h, and provides an upgrade path for existing implementation and drivers: drivers can start using clk_prepare() and clk_unprepare() once this patch is merged without having to wait for platform support. Platforms can then start to provide these additional functions. Eventually, HAVE_CLK_PREPARE will be removed from the kernel, and everyone will have to provide these new APIs. Acked-by: Saravana Kannan <skannan@codeaurora.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-01-31dmaengine: move drivers to dma_transfer_directionVinod Koul
fixup usage of dma direction by introducing dma_transfer_direction, this patch moves dma/drivers/* to use new enum Cc: Jassi Brar <jaswinder.singh@linaro.org> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Viresh Kumar <viresh.kumar@st.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: Mika Westerberg <mika.westerberg@iki.fi> Cc: H Hartley Sweeten <hartleys@visionengravers.com> Cc: Li Yang <leoli@freescale.com> Cc: Zhang Wei <zw@zh-kernel.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: Shawn Guo <shawn.guo@freescale.com> Cc: Yong Wang <yong.y.wang@intel.com> Cc: Tomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com> Cc: Boojin Kim <boojin.kim@samsung.com> Cc: Barry Song <Baohua.Song@csr.com> Acked-by: Mika Westerberg <mika.westerberg@iki.fi> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Viresh Kumar <viresh.kumar@st.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-01-31dmaengine: add DMA_TRANS_NONE to dma_transfer_directionShawn Guo
Before dma_transfer_direction was introduced to replace dma_data_direction, some dmaengine device uses DMA_NONE of dma_data_direction for some talk with its client drivers. The mxs-dma and its clients mxs-mmc and gpmi-nand are such case. This patch adds DMA_TRANS_NONE to dma_transfer_direction and migrate the DMA_NONE use in mxs-dma to it. It also fixes the compile warning below. CC drivers/dma/mxs-dma.o drivers/dma/mxs-dma.c: In function ‘mxs_dma_prep_slave_sg’: drivers/dma/mxs-dma.c:420:16: warning: comparison between ‘enum dma_transfer_direction’ and ‘enum dma_data_direction’ Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-01-31linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.hPaul Gortmaker
The implicit presence of module.h and all its sub-includes was masking these implicit header usages: include/linux/dmaengine.h:684: warning: 'struct page' declared inside parameter list include/linux/dmaengine.h:684: warning: its scope is only this definition or declaration, which is probably not what you want include/linux/dmaengine.h:687: warning: 'struct page' declared inside parameter list include/linux/dmaengine.h:736:2: error: implicit declaration of function 'bitmap_zero' With input from Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2012-01-31dmaengine: add new enum dma_transfer_directionVinod Koul
This new enum removes usage of dma_data_direction for dma direction. The new enum cleans tells the DMA direction and mode This further paves way for merging the dmaengine _prep operations and also for interleaved dma Suggested-by: Jassi Brar <jaswinder.singh@linaro.org> Reviewed-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-01-31dmaengine: remove struct scatterlist for headerVinod Koul
Commit 90b44f8 introduces dmaengine_prep_slave_single API which adds scatterlist.h in dmaengine.h, so defining struct scatterlist is not required Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Dan Williams <dan.j.williams@intel.com>
2012-01-31dmaengine: add helper function for slave_singleVinod Koul
For clients which require a single slave transfer and dont want to be bothered about the scatterlist api, this helper gives simple API for this transfer and creates single scatterlist for DMA API Idea from Russell King Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2012-01-31net: remove mm.h inclusion from netdevice.hAlexey Dobriyan
Remove linux/mm.h inclusion from netdevice.h -- it's unused (I've checked manually). To prevent mm.h inclusion via other channels also extract "enum dma_data_direction" definition into separate header. This tiny piece is what gluing netdevice.h with mm.h via "netdevice.h => dmaengine.h => dma-mapping.h => scatterlist.h => mm.h". Removal of mm.h from scatterlist.h was tried and was found not feasible on most archs, so the link was cutoff earlier. Hope people are OK with tiny include file. Note, that mm_types.h is still dragged in, but it is a separate story. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-01-31ENGR00173284 merge "eMMC: Configure boot_partition_enable"Ryan QIAN
ENGR126228 eMMC: Configure boot_partition_enable Enable the configurations of the boot enable on the eMMC cards. Add the interface that used to configure the boot_bus_width In order to make sure that the re-read the ext-csd of card can be completed successfully, add the method to wait for the finish of the busy state. NOTE: The following are the valid inputs when configure the boot bus width of the eMMC cards. +--------------------------------------------------------------------+ | Bit7 Bit6 Bit5 | Bit4 Bit3 | Bit2 | Bit1 Bit0 | |----------------|----------------------------------|----------------| | X | BOOT_MODE | RESET_BOOT_BUS_WIDTH | BOOT_BUS_WIDTH | +--------------------------------------------------------------------+ Bit [4:3] : BOOT_MODE (non-volatile) 0x0 : Use single data rate + backward compatible timings in boot operation (default) 0x1 : Use single data rate + high speed timings in boot operation mode 0x2 : Use dual data rate in boot operation 0x3 : Reserved Bit [2]: RESET_BOOT_BUS_WIDTH (non-volatile) 0x0 : Reset bus width to x1, single data rate and backward compatible timings after boot operation (default) 0x1 : Retain boot bus width and boot mode after boot operation Bit[1:0] : BOOT_BUS_WIDTH (non-volatile) 0x0 : x1 (sdr) or x4 (ddr) bus width in boot operation mode (default) 0x1 : x4 (sdr/ddr) bus width in boot operation mode 0x2 : x8 (sdr/ddr) bus width in boot operation mode 0x3 : Reserved The following are the valid inputs when configure the boot partitions of the eMMC cards. +------------------------------------------------------------+ | Bit7 | Bit6 | Bit5 Bit4 Bit3 | Bit2 Bit1 Bit0 | |------|----------|-----------------------|------------------| | X | BOOT_ACK | BOOT_PARTITION_ENABLE | PARTITION_ACCESS | +------------------------------------------------------------+ Bit7: Reserved Bit6: always set to vaule '1' when boot_part is enabled Bit[5:3]: 0x0 : Device not boot enabled (default) 0x1 : Boot partition 1 enabled for boot 0x2 : Boot partition 2 enabled for boot 0x7 : User area enabled for boot Bit[2:0]: 0x0 : No access to boot partition (default) 0x1 : R/W boot partition 1 0x2 : R/W boot partition 2 So only the '0, 1, 2; 8, 9, 10; 16, 17, 18; 56, 57, 58' are valid parameters when configure the boot_partiton. Signed-off-by: Richard Zhu <r65037@freescale.com> Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-01-31ENGR00173283 merge "eMMC: Boot Partition switch func used in MFG tool"Ryan QIAN
ENGR125411 eMMC: Boot Partition switch func used in MFG tool User can get eMMC partitions info from user space layer in linux OS enviroment. User can do switch operations between the eMMC boot partitions and the user partition. User can access the eMMC boot partitions from user space layer in linux OS enviroment. NOTE:This func had been verified on TOSHIBA eMMC44 card only. Signed-off-by: Richard Zhu <r65037@freescale.com> Signed-off-by: Rob Herring <r.herring@freescale.com> Signed-off-by: Ryan QIAN <b32804@freescale.com>
2012-01-31mtd: fix compile error for gpmi-nandHuang Shijie
The driver gpmi-nand should compile at least. This patch adds the missing gpmi-nand.h to fix the compile error below. CC drivers/mtd/nand/gpmi-nand/gpmi-nand.o CC drivers/mtd/nand/gpmi-nand/gpmi-lib.o drivers/mtd/nand/gpmi-nand/gpmi-nand.c:25:33: fatal error: linux/mtd/gpmi-nand.h: No such file or directory drivers/mtd/nand/gpmi-nand/gpmi-lib.c:21:33: fatal error: linux/mtd/gpmi-nand.h: No such file or directory This header is grabbed from patch below, which has not been postponed for merging. [PATCH v8 1/4] ARM: mxs: add GPMI-NAND support for imx23/imx28 http://permalink.gmane.org/gmane.linux.drivers.mtd/37338 Signed-off-by: Huang Shijie <b32955@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-01-25ENGR00172752-2 Remove usless code in pfuze100 regulator driverNancy Chen
Remove usless code in pfuze100 regulator driver Signed-off-by: Robin Gong <b38343@freescale.com> Signed-off-by: Nancy Chen <Nancy.Chen@freescale.com>
2012-01-19ENGR00171564-1 MX6Q ARM2: Enable TVin based on AUTO BoardEven Xu
Add TVin struct to Head file. Signed-off-by: Even Xu <b21019@freescale.com>
2012-01-19ENGR00170444: [v3]imx6sabreauto adv7180 TVin portb37753
Kconfig and Makefile was modified in order to enable adv7180 driver for mx6q architecture. adv7180.c mutex was changed to semaphore as is described in "https://lwn.net/Articles/304725/ ". sensor data structure is added in fsl_devices.h. mxc_v4l2_capture.c condition in mxc_v4l2_sparam was removed because is going to be always true capture mode only have 1 possible value as is described in "https://lwn.net/Articles/235023/". ipu_capture.c clock divisor setup was added at init the csi. Signed-off-by: B37753 <B37753@freescale.com>
2012-01-09ENGR00171001-2 MX6Q PFUZE100: fix build warningsRobin Gong
fix build warnings on pfuze driver: arch/arm/mach-mx6/mx6q_sabreauto_pmic_pfuze100.c:388: warning: initialization from incompatible pointer type drivers/mfd/pfuze-core.c:523: warning: initialization from incompatible pointer type drivers/mfd/pfuze-core.c:412: warning: 'pfuze_add_subdevice' defined but not used Signed-off-by: Robin Gong <B38343@freescale.com>
2012-01-09ENGR00139278-3: Add MLB main driver for mx6qTerry Lv
Add MLB main driver for mx6q. Signed-off-by: Terry Lv <r65388@freescale.com>
2012-01-09ENGR00139278-2: Add MLB driver platform data structure for mx6qTerry Lv
Add MLB driver platform data structure. Signed-off-by: Terry Lv <r65388@freescale.com>
2012-01-09ENGR00170255-2 MX6Q PFUZE100: add pfuze100 driverRobin Gong
add pfuze core driver for mx6 Signed-off-by: Robin Gong <B38343@freescale.com>
2012-01-09ENGR00170627 imx-cs42888: overwrite codec_name if passed as platform dataAdrian Alonso
* Overwrite codec_name if passed as platform data * Add codec_name in mxc_audio_platform_data * Codec name follows the naming convention <codec>.<i2c-channel>-<codec i2c address> i.e. cs42888.0-0048 * For IMX6Q-ARD this name convention doesn't follow previous settings for imx6q platforms codec is on different i2c channel and can't be resolved by CONFIG macros on imx_3stack_dai data structure; So we overwrite in probe function by getting the correct value from plat_data->codec_name. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-01-09ENGR00170626 imx-cs42888: avoid codded gpio reset definitionAdrian Alonso
* Remove hard codded gpio reset definition * Add in mxc_audio_platform_data reset gpio reference to be able to pass gpio reset assignment in board definition file instead of a macro for each different board. * Add plat_data null check, return EINV if no set. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-01-09ENGR00169872-2 rework hdmi initialization and hotplug sequenceAlan Tull
This commit intends to implement the flowchart and details documented in the HDMI Transmitter Controller User Guide section entitled "Programming Model". Some input is also from the Synopsys API code. The HDMI specification requires HDMI to set itself to VGA DVI mode before reading the EDID. So follow this sequence when HDMI is hotplugged: 1. Hdmi connector is plugged in, HDMI video gets an interrupt. 2. Clear out video mode list. Add only VGA DVI mode to list. 3. Request VGA DVI mode (call fb_set_var()) 4. HDMI video driver will get FB_EVENT_MODE_CHANGE callback and call mxc_hdmi_setup() to set up HDMI. 5. Read the edid and add video modes from edid. Select the video mode that is similar to the command line default. 6. Request VGA DVI mode (call fb_set_var()) 7. HDMI video driver will get FB_EVENT_MODE_CHANGE callback and do mxc_hdmi_setup(). Also included is a workaround for an overflow condition in the HDMI. The frame composer has an arithmetic unit that gets updated every time we write to one of the FC registers. But sometimes, depending on the relation between the tmds and sfr clocks, it may happen that this unit doesn't get updated, even though the registers are holding correct values. The workaround for this is, after completing the controller configuration, to rewrite one of the FC registers (i.e. FC_INVIDCONF) three or four times with the same value, and then follow it up by a SW reset to the TMDS clock domain (MC_SWRSTZ). We clear the overflow condition as described above every time we change video mode. Also an overflow interupt handler will clear the overflow condition if it happens again. This overflow condition is expected (and not a problem) when we are in DVI (non-HDMI) mode, so we do not worry about it in that case. Signed-off-by: Alan Tull <alan.tull@freescale.com>
2012-01-09Revert "ENGR00125411 eMMC: Boot Partition switch func used in MFG tool"Jason Liu
This reverts commit 9f26eaa231cf2a19064c5589a3515bdd60af596a.
2012-01-09Revert "ENGR00126228 eMMC: Configure boot_partition_enable"Jason Liu
This reverts commit b35268ca923a8785ab311170b0a84210b3c7863e.
2012-01-09fix build errorJason Liu
Signed-off-by: Jason Liu <jason.hui@linaro.org>
2012-01-09ENGR00169661:Remove the discharge for VBUS and DPTony LIU
header file - remove the definition of discharge dp Signed-off-by: Tony LIU <junjie.liu@freescale.com>
2012-01-09ENGR00163669-1 mxc fb: remove FB_EVENT_PREMODE_CHANGE for mxc fb driversWayne Zou
remove FB_EVENT_PREMODE_CHANGE for mxc ldb/tve drivers add dispdrv setup interface for ldb/tve drivers re-structure the dispdrv framework for display devices Signed-off-by: Wayne Zou <b36644@freescale.com>
2012-01-09ENGR00163497-1 Add a "io_init" function to fsl camera platform dataEven Xu
Add a new member named "io_init" to fsl camera platform data, this Function can initialize IO of camera sensor before it works. Signed-off-by: Even Xu <b21019@freescale.com>
2012-01-09ENGR00161951-1 [mx6q]performance monitor driverTony Lin
add plt_init & plt_exit functions to structure, so that the driver would have chance to do platform specific init and exit Signed-off-by: Tony Lin <tony.lin@freescale.com>
2012-01-09ENGR00162583-3 usb header: avoid class driver access register after usb is offPeter Chen
- An well-behavior class driver should disable their endpoints after being notified disconnect with host, we use all endpoints are stopped (ep->stopped) to indicates the class driver will not visit device driver any more. the ep-stopped will be initialized as 1 for non-control endpoint it will be 0 after fsl_ep_enable, and be 1 after fsl_ep_disable. Where is a non-sleep wait routine at disconnect event for waiting all endpoints are stopped - Some controller's (like i.mx6q) DP will change from J to SE0 slowly after the cable disconnects with host, in that case there will be a wakeup interrupt after driver enables the wakeup interrupt. For i.mx6q, there is a discharge routine for DP after the disconnection. - Should not wait vbus to low during first otg switch, as the wait will be timeout when the usb cable is connecting to host. Signed-off-by: Peter Chen <peter.chen@freescale.com>
2012-01-09ENGR00162010-2 [Thermal]Add calibration to thermalAnson Huang
1. Read calibration from fuse to adjust formula for thermal driver; 2. For the parts that didn't contain valid calibration data, cooling device will be disabled; Signed-off-by: Anson Huang <b20788@freescale.com>
2012-01-09ENGR00143921-1 - EPDC/MAX17135: Add controls for V3P3 regulatorDanny Nold
- Added V3P3 regulator to max17135 - Added calls to enable/disable V3P3 regulator from EPDC driver - Improved Kconfig detail for max17135 MFD and HWMON entries Signed-off-by: Danny Nold <dannynold@freescale.com>
2012-01-09ENGR00161444 V4L2: Fix v4l2 capture build errorFrank Li
Fix v4l2 build error. revert mxc_v4l2.h to 01c98ebc63d Signed-off-by: Frank Li <Frank.Li@freescale.com>
2012-01-09ENGR00159982 - FEC: low power mode when FEC is no use.Fugang Duan
- Set phy AR8031 to save power mode when no cable connect. - Close enet clock gate when FEC is no use. Signed-off-by: Fugang Duan <B38611@freescale.com>
2012-01-09ENGR00160878-1 mxc v4l2 output: new mxc v4l2 output driver based on videobufJason Chen
This new v4l2 output driver is based on videobuf, using dma contig alloc method. It creates video dev node for each display framebuffer begin from /dev/video16 by default. If need post-processing, this driver will do it by ipu pp driver which support: - resizing - CSC - rotate - deinterlacing If no need post-processing, the IPU IC will be bypassed as old driver, the buf will be set to fb buffer directly by crack fb smem_start. The user should do setting before streamon like below: 1. set output crop 2. set ctrl like rotate/vflip/hflip/deinterlacing motion 3. set fmt 4. reqbuf The new features compare to old driver: - support multi-instance - support user point buffer - runtime suspend/resume For suspend/resume, still has chance to meet issue on mx6q, will fix later. This patch for head file. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00160875-1 ipuv3 dev: low performance if enable rotationJason Chen
1. no dma alloc for rot buf every time which will cost time. 2. fix split mode condition. 3. export some functions. This patch for common head file. Signed-off-by: Jason Chen <b02280@freescale.com>