Dong Aisheng [Wed, 2 Nov 2011 11:12:52 +0000 (19:12 +0800)]
ENGR00161256-1 flexcan: convert driver to use platform ids
Using platform ids to handle differences between different SoCs.
The default rx fifo global mask register, newly introduced in mx6q,
is 0xffffffff and the reset value in Message buffers(can be reused as the
memory of rx fifo filter table) is none zero, it will wrongly cause the
can to be unable to recevie packets due to filter.
We need to clear it to make sure to receive all packets.
Anson Huang [Thu, 3 Nov 2011 07:51:35 +0000 (15:51 +0800)]
ENGR00161321 [MX6 ARM2]Disable Warm reset
Current warm reset is not working with MMDC_CH1 bypass
bit set, now we disable warm reset to workaround it for
the coming release. Then, wdog reset will be cold reset.
Terry Lv [Wed, 2 Nov 2011 09:14:39 +0000 (17:14 +0800)]
ENGR00161234-1: Enable ocotp clock for mx6q
Add clock enable code to driver.
OCOTP driver missed code to enable clock in driver.
Thus if ocotp clock is not enabled in clock.c, ocotp will not work.
Previously, only one static struct for ops existed for all
platform DMA drivers to share. Half of the ops are shared
functions which don't have stubs in the ALSA core. The
other half are initialized to point directly to ops in the
platform driver. This creates problems where each time
soc_new_pcm is called, the new platform driver's ops would
overwrite a subset of the ops.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
Fugang Duan [Wed, 2 Nov 2011 04:26:49 +0000 (12:26 +0800)]
ENGR00161207 - FEC: Add IEEE 1588 driver for imx6
- Support time stamp sync with networking master timer.
- Support ipg 40MHz clock, and precision is about 20ns.
- Don't support ipg 66MHz clock.
- Test flow:
1. Enable CONFIG_FEC_1588 in imx6_defconfig file.
2. Select pll3 for ipg clk 40M in uboot plugin code.
I. set reg 0x20c8028 value to 0x10000;
II.set reg 0x20c8024 value to 0x3040;
III. set reg 0x20c4014[25] to 0x1
IV. set reg 0x20c4014[12:10] to 0x5
3. Rebuid uboot and setup the ethernet environment.
4. Run the 1588 stack ptp_main in master and slave.
Anish Trivedi [Fri, 28 Oct 2011 18:07:00 +0000 (13:07 -0500)]
ENGR00161005-1 MX6Q Kernel Rename sabreauto to arm2 board
Machine layer patch.
Sabreauto is an inaccurate name for the Armadillo2 board that
this code is actually meant for. So, renamed "sabreauto" board file,
configs, and code to "arm2". Created a new machine id for
ARM2 board.
Alan Tull [Tue, 25 Oct 2011 20:41:55 +0000 (15:41 -0500)]
ENGR00160860-2 hdmi audio driver
Audio driver for i.Mx built-in HDMI Transmitter.
* Uses HDMI Transmitter's built-in DMA.
* Adds IEC958-style digital audio header info to the raw audio.
* Gets pixel clock from the IPU driver and calculates clock
regenerator values (cts and N).
* Move ipu_id, and disp_id from the HDMI's platform data to the
HDMI mfd's platform data. Saves them in the hdmi mfd.
* Add mfd functionality to update the clock regenerator values
when the hdmi changes the pixel clock rate or when requested
from the audio driver with a new audio sample rate.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
Alan Tull [Thu, 15 Sep 2011 20:51:33 +0000 (15:51 -0500)]
ENGR00160860-1 hdmi audio driver
Audio driver for i.Mx built-in HDMI Transmitter.
* Uses HDMI Transmitter's built-in DMA.
* Adds IEC958-style digital audio header info to the raw audio.
* Gets pixel clock from the IPU driver and calculates clock
regenerator values (cts and N).
* Move ipu_id, and disp_id from the HDMI's platform data to the
HDMI mfd's platform data. Saves them in the hdmi mfd.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
Anson Huang [Wed, 26 Oct 2011 03:14:34 +0000 (11:14 +0800)]
ENGR00160798 [MX6]Workaround for NFS
Disable SCU standby mode will prevent SOC enter
WAIT mode, so, by default, we would not enable
WAIT mode to make NFS work, to enable WAIT mode,
you should not use NFS, and pass "enable_wait_mode"
from uboot.
ENGR00160492: MX6-Disable PLL1 when CPU clk is below 400MHz.
When CPU frequency is below 400MHz (due to CPUFREQ or dvfs-core), we can source
pll1_sw_clk from PLL2_PFD_400M and disable PLL1. This can save some power.
Sammy He [Wed, 26 Oct 2011 12:46:39 +0000 (20:46 +0800)]
ENGR00160802-2 vpu: Check interrupt reason before disable clock
There may be more interrupt than PIC_DONE reported, we cannot disable
clock if picture isn't done since vpu is still in busy in the status.
This patch will check interrupt reason before clock is disabled.
Alan Tull [Wed, 26 Oct 2011 18:13:47 +0000 (13:13 -0500)]
ENGR00160862 unique id for each soc-audio device
On boards which have more than one soc-audio device, the initialization
of the first device will create a sysfs directory named
/sys/devices/platform/soc-audio and subsequent soc-audio devices will
fail to init because they try to create another sysfs directory of the
same name.
The solution is to have a unique number for each device such that
different boards having combinations will be OK.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
Huang Shijie [Wed, 26 Oct 2011 09:31:25 +0000 (17:31 +0800)]
ENGR00160834 UTP : replace kzalloc() with vmalloc()
When allocating large memory, such as 128K,
vmalloc() uses single page for the allocation process,
while kzalloc() has to consume a continuous pages for the allocation.
In low memory case, the kzalloc() may fails.
So use the vmalloc() instead.
Danny Nold [Mon, 24 Oct 2011 16:11:17 +0000 (11:11 -0500)]
ENGR00160692 - MXC HDMI: Unbalanced clk disable
HDMI IAHB clock was capable of being disabled twice consecutively
due to a race condition between enabling the HDMI interrupts
and disabling the HDMI clock. A spinlock has been added to protect
against the race condition.
Another race condition was present due to the driver handling
HPD (hotplug detect) and RX Sense interrupts separately. Only HPD
interrupts handled now, simplifying enable/disable flow and
eliminating the race condition.
One final race condition fixed during HDMI driver initialization.
IRQ request moved to after place where IAHB is disabled, to ensure
balanced enable/disable of IAHB clock.
Signed-off-by: Danny Nold <dannynold@freescale.com>
ENGR00160397: Fix build break caused by DVFS-CORE driver
loops_per_jiffy is a global variable for non-smp platforms.
For SMP platforms, loops_per_jiffy is a per_cpu variable.
Fix dvfs_core to adjust loops_per_jiffy for both configurations.
- Ensure HDMI clocks are disabled when leaving HDMI core probe function.
- Create HDMI core api to allow HDMI sub-drivers to init, enable, and
disable the HDMI IRQ. Required to optimally manage HDMI clocks,
allow IAHB to be disabled, and still have video and audio sub-drivers
able to receive interrupts.
- Update code to adjust for decoupled ISFR and IAHB clocks.
- Disable IAHB clocks whenever HDMI not plugged in.
Signed-off-by: Danny Nold <dannynold@freescale.com>
Anson Huang [Tue, 11 Oct 2011 12:15:21 +0000 (20:15 +0800)]
ENGR00159796 [MX6]Cooling of cpufreq should consider governor type
We need to consider governor type of cpufreq, previous
method is to change the cpufreq to the lower point, but
it would not work if the cpufreq governor is not userspace,
now we set the scaling max freq instead of cpu current freq,
this will make sure working for all the governor.
Anson Huang [Tue, 11 Oct 2011 12:03:16 +0000 (20:03 +0800)]
ENGR00159737 [Mx6]Add clock check for periph clk
For lpddr2 board, current freq only support up to
400MHz, in this case, periph clk will set to 400M
in uboot, so in clock init, we need to check
whether the ddr clock is set to 400M, if yes, then
we should set periph clk parent to pll2_pfd_400M.
Anson Huang [Sun, 9 Oct 2011 01:47:20 +0000 (09:47 +0800)]
ENGR00156635 [MX6]Dormant random resume fail
1. sometimes system can not resume successfully from
dormant mode, there is still some defect with L2 cache
array alive during dromant mode, add clean operation
before dormant to make sure data alignment between L2
and DRAM, after doing it, dormant mode can resume fine.
2. local time no need to do store and restore during
suspend/resume.
Eric Miao [Mon, 26 Sep 2011 02:46:27 +0000 (10:46 +0800)]
SAUCE: set correct rates before registering SPDIF codec DAI
BugLink: http://bugs.launchpad.net/bugs/855281
Playback/capture rates should be configured before the SPDIF codec
DAI is registered, according to the parameters that passed in by
the platform data. And this caused pulseaudio not working with the
SPDIF sound card.
Add work around to the reboot issue of SMP, with
SMP, all the CPUs need to do _rcu_barrier, if we
enqueue an rcu callback, we need to make sure CPU
tick to stay alive until we take care of those by
completing the appropriate grace period.
This work around only work when the reboot command
issue, so it didn't impact normal kernel feature.