- 22 Aug, 2012 7 commits
-
-
Nancy Chen authored
[MX6SL]MMDC: DDR Controller's measure unit may return an incorrect value when operating below 100 MHz Signed-off-by:
Nancy Chen <Nancy.Chen@freescale.com>
-
Sandor Yu authored
In suspend/resume and HDMI plugin/plugout stress test, sometimes fbcon will call fb_set_par with parameter fb_var_screeninfo that xres anfd yres is zero. MX frame buffer driver can not correct handle this casue, it will cause IPU pixel clock gating/ungating mismatch. Check fb_var_screeninfo parameter in mxcfb_check_var and mxcfb_set_par function, returned if xres,yres zero. Signed-off-by:
Sandor Yu <R01008@freescale.com>
-
Ranjani Vaidyanathan authored
When ARM enters WFI in low power IDLE state, float the DDR IO pins to drop the power on the VDDHIGH rail. Need to run WFI code from IRAM since DDR needs to be put into self-refresh before changing the IO pins. Drop AHB to 8MHz and DDR to 1MHz when ARM is in WFI when in IDLE state. Set IPG_PERCLK to run at 3MHz, since we want to maintain a 1:2.5 ratio between PERCLK to AHB_CLK. Signed-off-by:
Ranjani Vaidyanathan <ra5478@freescale.com>
-
Wayne Zou authored
IPU: Clean up dead code Signed-off-by:
Wayne Zou <b36644@freescale.com>
-
Ryan QIAN authored
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>
-
Ryan QIAN authored
- set bounce buffer to 512KB from 64K, which is hw max seg size for fsl sd host controller - by enlarging the size of bounce buffer, it will reduce the number of irq on writing by merging small requests into a large one, which will improve writing throughput. - the side effect is that the reading throughput of 512KB bounce buffer is lower than the one of 64KB bounce buffer, when cpu freq is at 200Mhz. 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 test command: # dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=100 conv=fsync 3.2 Reading test 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: ------------------------------------------------------- | 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>
-
Liu Ying authored
This patch changes to use original sync mechanism for eof irq, which may improve pan-display or alpha buffer update performance. 1) Initialize flip_completion and alpha_flip_completion only once when fb is initialized instead of initializing it every time when pan display is called. 2) Clear and enable eof irq after selecting buffer ready. In this way, we have no chance to lose an interrupt, as selecting a new buffer ready doesn't make the eof irq come(from the newly selected buffer) before we clear the irq status and enable the irq. Otherwise, if we clear the irq status and enable the irq before we doing down in pan-display or alpha buffer update, we have chance(users call pan-display or alpha buffer update faster than vsync frequency and blocks at down()) to clear an unhandled irq, which may cause performance issue. Signed-off-by:
Liu Ying <Ying.Liu@freescale.com> (cherry picked from commit 67c2bd5edef363412a074e9b4130b5207dac8a7f)
-
- 21 Aug, 2012 9 commits
-
-
Robin Gong authored
ECSPI pin MX6DL_PAD_EIM_D17__ECSPI1_MISO is configured overlap by epdc MX6DL_PAD_EIM_D17__GPIO_3_17, so that SPI-NOR flash can't work normally. From schematic of ARM2 board, epdc and spi share this pin if plug epdc daughter board. But SPI-NOR is on ARM2 mother board, so it should be config well firstly. So we make sure SPI-NOR work successfully by default. But if enable epdc , SPI-NOR on ARM2 will work fail. Signed-off-by:
Robin Gong <B38343@freescale.com>
-
Wayne Zou authored
Disable LDB DI clock when suspend. Signed-off-by:
Wayne Zou <b36644@freescale.com>
-
Sandor Yu authored
EDID read will failed sometimes on some boards. Read EDID twice if first one failed. Signed-off-by:
Sandor Yu <R01008@freescale.com>
-
make shi authored
- Set MX6SL_PAD_HSIC_DAT and MX6SL_PAD_HSIC_STROBE pad DDR attribute as DDR3 - Add imx6sl_add_fsl_ehci_hs and imx6sl_add_fsl_usb2_hs_wakeup in usb_h2.c Signed-off-by:
make shi <b15407@freescale.com>
-
Huang Shijie authored
If we use the late_initcall(), then there is a time slot between the exit of early uart console and the real console: -->late_initcall(mxc_early_uart_console_disable) ...... -->imx_startup() In this time slot, the clock will be closed, so the log printed during the time slot is buffered, this is why we can not see the NFS's log. Change the late_initcall() to late_initcall_sync() which eliminates the time slot. Signed-off-by:
Huang Shijie <b32955@freescale.com>
-
Anson Huang authored
1. BUS freq's set low bus setpoint using delat work, which didn't have mutex lock, so in some scenarios, set high bus freq function can be called at the same time, we need to move mutex lock into these two routine; 2. Using pm notify to make sure bus freq set to high setpoint before supend and restore after resume. 3. Clear build warning. Signed-off-by:
Anson Huang <b20788@freescale.com>
-
Rong Dian authored
export thermal hot variable for GPU Signed-off-by:
Rong Dian <b38775@freescale.com>
-
Rong Dian authored
1.Avoiding system wrong reboot caused by error temperature without cancel_delayed_work before entering into suspend,so to cancel thermal_zone_device temperature polling temperature delayed_work before entering into suspend, reenable polling temperature delayed_work after entering into resume. 2.In anatop_thermal_suspend, turn off alarm firstly Signed-off-by:
Rong Dian <b38775@freescale.com>
-
make shi authored
In order to support USB remote wake up, we should keep the PLL3 enable and power bit all the time. We use BM_ANADIG_ANA_MISC2_CONTROL0 to control the PLL3 power off PLL3's power when PLL3 is not used by other module. PLL3 power design logic as below: usb1_pll_480_ctrl_power_int=hw_anadig_usb1_pll_480_ctrl_power && ((disable_480_p ll_n && ~hw_anadig_ana_misc2_control0 )||pwrctl_otg_wakeup || utmi_otg_suspendm) There are two basic case: - If USB is active and USB remote wakeup happen , Pll3 will be turn on. - If USB is not active and no remote wakeup happen, the PLL3 will be controlled by hw_anadig_ana_misc2_control0 bit. Signed-off-by:
make shi <b15407@freescale.com>
-
- 20 Aug, 2012 5 commits
-
-
Ranjani Vaidyanathan authored
The ENABLE bit is not set for all PLLs by default. Ensure that the pll_enable() function sets this bit for all PLLs. The pll_disable() function should not clear this bit for PLL1, PLL2, PLL3 and PLL7. The output of these PLLs maybe used even if they are bypassed. Signed-off-by:
Ranjani Vaidyanathan <ra5478@freescale.com>
-
Eric Sun authored
The problem is caused because the board init routine don't add the corresponding device node. Problem resolved after add them Signed-off-by:
Eric Sun <jian.sun@freescale.com>
-
Hongzhang Yang authored
Original design is VPU lib API StartOneFrame() enables clock, and VPU driver disables clock after codec done interrupt has been received. However there are known issues of interrupt handling as below: - VPU interrupt handling callback is not scheduled in time causing work queue overflow - JPU done interrupt is not received because JPU issues it while JPU buffer empty interrupt is still being served - VPU finishes a frame (!vpu_IsBusy) but VPU done interrupt is not received All above will cause clk_disable in interrupt handling not called, thus VPU clock count increases by 1. So I plan to resolve clock unbalance issue first by removing clk_disable from VPU driver interrupt handling. Interrupt problem will not affect clock issue any longer. 1. Driver: remove clk_disable from vpu_worker_callback 2.1. Lib: remove clk_enable from API GetOutputInfo 2.2. Lib: avoid disabling VPU clock when VPU is busy in SWReset 3. Test: replace GetOutputInfo with SWReset in decoder_close / encoder_close Signed-off-by:
Hongzhang Yang <Hongzhang.Yang@freescale.com>
-
Eric Sun authored
The problem is caused because "mx6_sabrelite_board_init" don't add the corresponding device node. Problem resolved after add them. Signed-off-by:
Eric Sun <jian.sun@freescale.com>
-
Lionel Xu authored
There is channel swap happened when playing stereo wav. According to the spec, the initial words should be written to the ETDR register, at least one word per enabled transmitter slot, to avoid any potential problem. Signed-off-by:
Lionel Xu <Lionel.Xu@freescale.com>
-
- 19 Aug, 2012 1 commit
-
-
Ranjani Vaidyanathan authored
Fix build break due to missing extern. Signed-off-by:
Ranjani Vaidyanathan <ra5478@freescale.com>
-
- 18 Aug, 2012 2 commits
-
-
Yuxi Sun authored
If this timeout is too small, it can't meet the require of some large frame such as 2592x1944 and 1080p, and the IDMAC maybe in a chaotic state, so at last access some invalid space caused the system hang. Signed-off-by:
Yuxi Sun <b36102@freescale.com>
-
Yuxi Sun authored
Add flush_work_sync and cancel_work_sync at the overlay stop to prevent moving data by DMA even when the space of those data address is freed. Signed-off-by: Yuxi Sun <b36102@freescale.com
-
- 17 Aug, 2012 8 commits
-
-
Ranjani Vaidyanathan authored
Add support for DDR freq change code in IRAM. Change PLL2 to bypass mode so that DDR is running off 24MHz OSC directly. ARM is now sourced from PLL1 (running at 800MHz) in this mode. This is required for the next step in IDLE mode optmization where all PLLs will be disabled when ARM enters WFI. Signed-off-by:
Ranjani Vaidyanathan <ra5478@freescale.com>
-
make shi authored
There is a limitation on mx6 phy low power flow. During phy enter low power mode and out of low power mode with OWIE bit active,there will be abnormal usb wakeup interrupt happen. So we should clear OWIE bit before phy out of low power mode. Signed-off-by:
make shi <b15407@freescale.com>
-
Gary Zhang authored
add support for audio codec wm8962 in mx6sololite evk board Signed-off-by:
Gary Zhang <b13634@freescale.com>
-
Chen Liangjun authored
When use ASRC ideal ratio mode for convert, PAIR C can't work properly. However, when use PAIR C for internal ratio mode or non ratio mode convert, it can work properly. In this patch, Use PAIR B for 6 channel convert as a workaround. Signed-off-by:
Chen Liangjun <b36089@freescale.com>
-
Chen Liangjun authored
When use no ideal-ratio mode for ESAI playback, CPU should provide accurate clock for input clock, which means input clock should be divided by input sample rate. However, all our clock is from 24M crystal and if the input sample rate equal to 44.1k or so, CPU can't provide these clock. In this patch, use ideal ratio mode thus CPU need not provide accurate clock which can be divided by 44.1k. Signed-off-by:
Chen Liangjun <b36089@freescale.com>
-
Chen Liangjun authored
When play audio in the way of aplay *, shutdown function would not be called and ASRC configuration would not be reconfigured. In this case, playback would sound noise. In this patch, put ASRC release operation into hw_free(). Signed-off-by:
Chen Liangjun <b36089@freescale.com>
-
Gary Zhang authored
for avoiding pop-noise adn setting audmux pad to 1.8v on evk, add pad ctrl for audmux iomux setting Signed-off-by:
Gary Zhang <b13634@freescale.com>
-
Gary Zhang authored
Original pad configuration does not provide enough bitfield width to config some bits, such as LVE bit and DDR_SEL bits. like gpr configuration, add a api to implement these special bits pad configuration, and user may call this api in board file. Signed-off-by:
Gary Zhang <b13634@freescale.com>
-
- 16 Aug, 2012 8 commits
-
-
Chen Liangjun authored
Channel swap caused by 2 reason: 1. To avoid ASRC underflow error, ASRC driver would prefill ASRC input FIFO with 160 samples. However, 160 can't be divided by 6. In this case, channel data miss alignment. In this patch, prefill ASRC input FIFO with 120, which can be divided by 2,4,6,8. 2. While start P2P playback, ESAI driver would first start SDMA, then ASRC, and last ESAI. While start ESAI, the data is not ready, thus ESAI underrun would happens and channel data miss alignment. In this patch, delay 1 ms between ASRC's start and ESAI's start. Signed-off-by:
Chen Liangjun <b36089@freescale.com>
-
Peter Chen authored
It is used to sync pdata->lowpower between wakeup interrupt and driver API. Signed-off-by:
Peter Chen <peter.chen@freescale.com>
-
Peter Chen authored
pdata->lowpower may be accessed at two drivers together, assumed the situation that host/device set phy to low power mode but still not set the flag lowpower, at this time the wakeup occurs, as the flag lowpower is still not set, the interrupt will be infinite loop as no one will serve it. This commit is for driver code and add protect at driver. Signed-off-by:
Peter Chen <peter.chen@freescale.com>
-
Peter Chen authored
pdata->lowpower may be accessed at two drivers together, assumed the situation that host/device set phy to low power mode but still not set the flag lowpower, at this time the wakeup occurs, as the flag lowpower is still not set, the interrupt will be infinite loop as no one will serve it. This commit is for MSL code and add protect at wakeup interrupt. Signed-off-by:
Peter Chen <peter.chen@freescale.com>
-
Robby Cai authored
Keep the corresponding rail of pfuze: VGEN4 and VGEN1 "always on". It's required for any IO pad configured as this voltage. It has to be always on, even in DSM mode. Signed-off-by:
Robby Cai <R63905@freescale.com>
-
Gary Zhang authored
Adjust pfuse settings for wm8962 Signed-off-by:
Gary Zhang <b13634@freescale.com>
-
Anson Huang authored
SOC/PU voltage need to following some rules according to latest datasheet: 1. SOC/PU CAP voltage must be 1.15V <= SOC/PU <= 1.3V; 2. SOC and PU must be same as they don't have level shift; 3. Adjust previous wrong voltage setting. If SOC/PU voltage is too low, may cause system crash on some chips, we have a board that easily crash with GPU working and doing some tar operation, with this voltage adjust, this issue fixed. Signed-off-by:
Anson Huang <b20788@freescale.com>
-
Nancy Chen authored
Fix not able to set high bus frequency from low bus frequency. Signed-off-by:
Nancy Chen <Nancy.Chen@freescale.com>
-