Tony Lin [Thu, 11 Aug 2011 09:35:20 +0000 (17:35 +0800)]
ENGR00139261 [MX6Q]support 8 bit MMC and eMMC DDR mode
enable 8 bit MMC mode according to mmc stack.
enable eMMC DDR mode according to mmc stack, but change
sdhci a little, since sdhci does not support DDR mode so
far.
Peter Chen [Thu, 11 Aug 2011 02:51:45 +0000 (10:51 +0800)]
ENGR00154704 usb-gadget: wmb is needed after dtd pointer is updated for armv7
At armv7 SoC, the dma_alloc_coherent returns non-cachable, but
bufferable region, so the driver needs to drain write buffer by
itself, if the controller needs to visit dma buffer immediately
after cpu writes
There is a discussion for this armv7 change:
http://marc.info/?t=127918539100004&r=1&w=2
For this issue, the next dtd pointer is invalid sometimes, the reason
is the region which is used to store dtd is dma buffer, so the data may
not be written to memory when the controller visit this data.
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Peter Chen [Wed, 10 Aug 2011 11:37:16 +0000 (19:37 +0800)]
ENGR00154703 usb-gadget: fix spin_lock recursion problem at SMP platform
- The spin_lock is at interrupt handler, so all code routines
using at interrupt handler are forbidden to hold spin_lock again
- Move the code which needs to be protected by spin_lock to workqueue,
and it will be called when workqueue is scheduled.
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Jason Chen [Thu, 4 Aug 2011 07:29:57 +0000 (15:29 +0800)]
ENGR00154108-3 mxc ldb: make ldb support two ipu in separate mode
make ldb support two ipu in separate mode
cmdline option changed:
"ldb=spl0/1" -- split mode on DI0/1
"ldb=dul0/1" -- dual mode on DI0/1
"ldb=sin0/1" -- single mode on LVDS0/1
"ldb=sep0/1" -- separate mode begin from LVDS0/1
there are two LVDS channels(LVDS0 and LVDS1) which can transfer video
datas, there two channels can be used as split/dual/single/separate mode.
split mode means display data from DI0 or DI1 will send to both channels
LVDS0+LVDS1.
dual mode means display data from DI0 or DI1 will be duplicated on LVDS0
and LVDS1, it said, LVDS0 and LVDS1 has the same content.
single mode means only work for DI0/DI1->LVDS0 or DI0/DI1->LVDS1.
separate mode means you can make DI0/DI1->LVDS0 and DI0/DI1->LVDS1 work
at the same time.
while when imx_timeout() may invoked in following stack:
run_timer_softirq():
--> spin_lock_irqsave(timer->base->lock, flags);
imx_timeout();
--> spin_lock_irqsave(&sport->port.lock, flags);
...;
--> spin_unlock_irqrestore(&sport->port.lock, flags);
spin_unlock_irqrestore(timer->base->lock, flags);
the above two cases hold lock with revert order, may
deadlock in SMP platform.
Anish Trivedi [Tue, 2 Aug 2011 21:23:28 +0000 (16:23 -0500)]
ENGR00154209 SNVS RTC: Update comments for errata number
Add TKT052983 errata number to comments field. This errata
requires reading the counter value twice until both
values match to ensure integrity of read value.
Anson Huang [Wed, 3 Aug 2011 01:47:32 +0000 (09:47 +0800)]
ENGR00154211 [MX6]Add workaround for wdog errata
Errata number:TKT039676
WDOG sw reset is generated by writing to its
control register. WDOG's reset is activated by
ipg_clk_s, and is de-activated (later) by a
synchronized CKIL (32KHz clock). On the other
hand SRC samples the WDOG reset with an
unsynchronized CKIL clock. If the write to WDOG
control register happens between the edges of
unsynchronized and synchronized CKIL clocks SRC
will miss the wdog reset pulse.
Anson Huang [Tue, 2 Aug 2011 09:24:15 +0000 (17:24 +0800)]
ENGR00154056-2 [MX6]Enable dormant mode in suspend
1. Enable dormant mode in suspend, which means arm
core will be powered off when enter wfi, the latest
command for stop mode and dormant mode are as below:
echo standby > /sys/power/state
-> stop mode with arm core power on
echo mem > /sys/power/state
-> stop mode with arm core power off
Sammy He [Thu, 28 Jul 2011 11:50:31 +0000 (19:50 +0800)]
ENGR00153830-2 vpu: Add VPU_IOC_REQ_VSHARE_MEM ioctl for shared memory
Add vmalloced memory for multi-instances shared memory, vpu lib
will call mmap for accessing the memory.
VPU_IOC_GET_SHARE_MEM ioctl is still reserved for some time since
vpu lib still uses it for mx5x now. Will remove it after mx5x changes
to this new added memory later.
ENGR00153913: MX6x - Fix bug in set_parent and set_rate functions in clock code
Some set_parent() functions in clock code were using incorrect mask
resulting in wrong parent being set for the clocks.
Fix by using the correct mask.
The pre and post dividers for certain clocks were set incorrectly,
fix this by using the correct number of bits for the dividers.
Fix the set_rate function for ipu1_di1_clk.
Jason Chen [Wed, 27 Jul 2011 08:16:46 +0000 (16:16 +0800)]
ENGR00153785 ipuv3: use ipu internal divider for external di clock
on imx6q, pll5 can only provide rate >=650M, and ipu_di_clk only has max
divider 8, so need use ipu internal clock divider for some low resolution
case. For example 640x480p60 need 25.2MHz pixel clock.
Jason Chen [Wed, 27 Jul 2011 06:13:58 +0000 (14:13 +0800)]
ENGR00153761 imx6q ipuv3: improve display quality
to avoid ipu starvation issue.
1. enable IPU AXI cache in uboot
2. set Qos to 7 for IPU to highest priority in uboot.
3. set AXI id to 0 for high priority IDMA channel in linux.
Jason Chen [Wed, 27 Jul 2011 06:06:18 +0000 (14:06 +0800)]
ENGR00153757 mxc_hdmi: fix build error of mxc_hdmi.c
Fix build error of below:
`mxc_hdmi_remove' referenced in section
`.data' of drivers/built-in.o: defined in discarded section
`.exit.text' of drivers/built-in.o`
Danny Nold [Tue, 26 Jul 2011 03:01:15 +0000 (22:01 -0500)]
ENGR00153670-4 - MXC HDMI: Add support for basic HDMI operation
- Add MXC HDMI to kconfig and makefile
- Add initial mxc_hdmi.c file to provide basic HDMI functionality:
- Basic HDMI output functional
- Support for reading EDID via I2C and registering
video modes with IPU
- Support for output from IPU1 DI0
- These features not yet added:
- Hotplug support
- Dual display with LVDS
- Power management
- Support for FB notifications
- Changes to IPU to allow HDMI to use source clocks that it needs
Signed-off-by: Danny Nold <dannynold@freescale.com>
Danny Nold [Tue, 26 Jul 2011 02:39:50 +0000 (21:39 -0500)]
ENGR00153670-2 - mach-mx6: Add support for MXC HDMI
- Add MXC HDMI initialization structures and calls to SABRE board file.
- Add HDMI clock definitions and functions for PLL5 (main video clock
used by HDMI).
Signed-off-by: Danny Nold <dannynold@freescale.com>
ENGR00153651-1 ESAI: Prepare MSL support for esai/cs42888 audio codec driver
1) Add machine specific code for esai/cs42888 driver support, including pad
control, clk setting, i2c setting, etc.
2) Enable audio support in default config.
Richard Zhu [Tue, 19 Jul 2011 05:42:29 +0000 (13:42 +0800)]
ENGR00153275-1 ahci L2638 add the standalone ahci temperature monitor
based on the 2.6.38 kernel mainline, refer to linux lm-sensors
architeture, add the standalone ahci temperature monitor driver
on fsl i.mx53 platforms.
Less than half sencond is used in one temperature read operation.
usage:
Use the following cmd to cat the i.mx53 soc temperature after
boot up i.mx53 system in user space.
for example:
...$ cat /sys/class/hwmon/hwmon1/device/temp1_input
61000
or run the following cmd after configure the lm-sensors
...$ sensors
imx-ahci-hwmon-isa-0000
Adapter: ISA adapter
temp1: +58.0 C
1. Copy mx6_secondary_startup to iRAM;
2. CPU0 reset CPUx, then waiting CPUx reset OK, and
clear CPUx's boot_entry;
3. CPUx reset OK, waiting CPU0 to clear its parameter;
4. All these steps done, CPUx go on boot;
Tony Lin [Fri, 15 Jul 2011 02:59:38 +0000 (10:59 +0800)]
ENGR00153160 fix card interrupt issue on uSDHC and eSDHC
uSDHC: card interrupt storm if we do not clear card interrupt
status by sw.
eSDHC: card interrupt will be lost if we do not set D3CD bit.
apply the workarounds in sdhci-esdhc-imx.c to avoid adding new
QUIRKs.
Mx6 not works when connnect to a 1G switch.
This is caused by phy_dev->supported != PHY_GBIT_FEATURES, more bits
will set to phy_dev->supported when negotiation complete.