]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
11 years agoENGR00174232 [mx6q perfmon]PDM No. TKT055916: remove workaround for TO1.1
Tony Lin [Fri, 10 Feb 2012 09:06:21 +0000 (17:06 +0800)]
ENGR00174232 [mx6q perfmon]PDM No. TKT055916: remove workaround for TO1.1

remove the workaround
For TO1.0: bit16 of GPR11 must be set to enable perfmon
For TO1.1 and later: bit0 of GPR11 is enable bit for perfmon.
                     set 1/0 to enable/disable perfmon

add workaround for mx6dl

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00170126 mx6q sabresd: add GPIO key device
Xinyu Chen [Fri, 10 Feb 2012 08:05:07 +0000 (16:05 +0800)]
ENGR00170126 mx6q sabresd: add GPIO key device

Add volume up/down and power GPIO key button

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174229-2 imx6_defconf: add sensors devices drivers
Xinyu Chen [Fri, 10 Feb 2012 08:02:47 +0000 (16:02 +0800)]
ENGR00174229-2 imx6_defconf: add sensors devices drivers

Add 3-axis accelerometer (mma8451) driver.
Add Digital Magnetometer (mag3110) driver.
Add Ambient Light sensor (isl29023) driver.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174229-1 mx6q sabresd: add sensors devices
Xinyu Chen [Fri, 10 Feb 2012 07:58:02 +0000 (15:58 +0800)]
ENGR00174229-1 mx6q sabresd: add sensors devices

Add 3-axis accelerometer (mma8451) device.
Add Digital Magnetometer (mag3110) device.
Add Ambient Light sensor (isl29023) device.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174212 isl29023: fix build error of isl29023 light sensor
Xinyu Chen [Fri, 10 Feb 2012 07:55:59 +0000 (15:55 +0800)]
ENGR00174212 isl29023: fix build error of isl29023 light sensor

the platform data and irq set type interface is changed.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174127 mag3110: merge the mag3110 sensor driver
Xinyu Chen [Fri, 10 Feb 2012 07:54:41 +0000 (15:54 +0800)]
ENGR00174127 mag3110: merge the mag3110 sensor driver

Merge mag3110 drivers from sensor team.
The drivers are updated with chip position configure
in driver, export set delay interface to userspace and
use polling mode instead of interrupt mode.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00174024 mma8451: update 3-axis accelerometer driver
Xinyu Chen [Fri, 10 Feb 2012 07:50:27 +0000 (15:50 +0800)]
ENGR00174024 mma8451: update 3-axis accelerometer driver

Merge mma8451 drivers from sensor team.
The drivers are updated with chip position configure
in driver, export enable and position interface to userspace.

Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
11 years agoENGR00173857 MX6Q: add 600M work point
Zhang Jiejing [Wed, 11 Jan 2012 06:20:15 +0000 (14:20 +0800)]
ENGR00173857 MX6Q: add 600M work point

Add a 600M work point for better suit for cpufreq driver.

For current MX6Q clock tree, the most near 600M working point
is 624M, so we use 624M as 600M working point.

We found we have 200/400/800/1G working point is not very
good for cpufreq adjustment, since we don't have a uniform
working point distribution, since the interactive governor
is using cpu usage to adjust frequency, eg, 60% CPU, going
to 600M working point, if above a threshold (%85 default)
will going to max frequency directly.

From the [sheet] , you can see in game case, it will have much
chance in 400M working point, between 400M and 800M working
point, there is a gap, so the 400M will be most used frequency.
we add 600 WP to fill this gap, and make game case have
better experience.

[sheet] http://wiki.freescale.net/download/attachments/
40052424/Compare.xlsx?version=1&modificationDate=1326086907000

Wiki About this:
http://wiki.freescale.net/display/MADAndroid
/i.MX6Q+Performance+and+Power+Optimization

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
11 years agoENGR00173463 i.mx6dl: vpu: disable iram usage
Sammy He [Fri, 10 Feb 2012 07:38:01 +0000 (15:38 +0800)]
ENGR00173463 i.mx6dl: vpu: disable iram usage

Disable vpu iram since mx6dl platform iram isn't enough
for vpu after VDOA/audio used it.

Signed-off-by: Sammy He <r62914@freescale.com>
11 years agoENGR00174224 [MX6Q]: Add new AR6003 driver to 3.0.15 into default config
Ryan QIAN [Fri, 10 Feb 2012 08:02:11 +0000 (16:02 +0800)]
ENGR00174224 [MX6Q]: Add new AR6003 driver to 3.0.15 into default config

- Add cfg80211, Atheros Wifi driver into default kernel config.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174033-2 MX6 PCIE: add pcie RC driver
Richard Zhu [Wed, 8 Feb 2012 06:58:41 +0000 (14:58 +0800)]
ENGR00174033-2 MX6 PCIE: add pcie RC driver

Add PCIE RC driver on MX6 platforms.
Based on iwl4965agn pcie wifi device, verified the following
features.
* Link up is stable
* map the CFG, IO and MEM spaces, and CFG/MEM spaces can accessed

Signed-off-by: Richard Zhu <r65037@freescale.com>
11 years agoENGR00174033-1 MX6 PCIE: add pcie RC driver
Richard Zhu [Wed, 8 Feb 2012 06:57:56 +0000 (14:57 +0800)]
ENGR00174033-1 MX6 PCIE: add pcie RC driver

Add PCIE RC driver on MX6 platforms.
Based on iwl4965agn pcie wifi device, verified the following
features.
* Link up is stable
* map the CFG, IO and MEM spaces, and CFG/MEM spaces can be accessed

Signed-off-by: Richard Zhu <r65037@freescale.com>
11 years agoENGR00174128-3 Revert "Remove the discharge for VBUS and DP -3"
Peter Chen [Fri, 10 Feb 2012 02:39:37 +0000 (10:39 +0800)]
ENGR00174128-3 Revert "Remove the discharge for VBUS and DP -3"

This reverts commit cc9616316bf044382ec422da5a6d4ed007235a3d.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174128-2 Revert "Remove the discharge for VBUS and DP-2"
Peter Chen [Fri, 10 Feb 2012 02:35:32 +0000 (10:35 +0800)]
ENGR00174128-2 Revert "Remove the discharge for VBUS and DP-2"

This reverts commit 4f025d73de4a55077691096eacf60f90c3b9e7af.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174128-1 Revert "Remove the discharge for VBUS and DP-1"
Peter Chen [Thu, 9 Feb 2012 09:38:59 +0000 (17:38 +0800)]
ENGR00174128-1 Revert "Remove the discharge for VBUS and DP-1"

As dp/dm is floating with no usb cable and switch host mode to
device mode situation, it do needs this discharge dp patch
But, discharge vbus doesn't be needed at suspend_irq, so
keep it removing.

This reverts commit 0924b71278650fa3891a8f6ea70f91242ca6e5fd.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174094 i.MX6DL: Change CPU voltages to 1V
Nancy Chen [Thu, 9 Feb 2012 16:27:07 +0000 (10:27 -0600)]
ENGR00174094 i.MX6DL: Change CPU voltages to 1V

Change CPU voltages (0.95V and 0.85V) to 1V
CPU voltage should be above 1.0V for all CPU frequency
since L1 Cache power is connected to VDDARM internally.

Signed-off-by: Nancy Chen <Nancy.Chen@freescale.com>
11 years agoENGR00174152 i.mx6/clock: set ddr clock parent to pll2_mfd_400M
Jason Liu [Thu, 9 Feb 2012 06:09:58 +0000 (14:09 +0800)]
ENGR00174152 i.mx6/clock: set ddr clock parent to pll2_mfd_400M

on i.mx6dl, DDR clock is sourcing from pll2_mfd_400M, so, we need
set DDR/periph_clk parent to pll2_mfd_400M during clock init, which
will setup the clock usecount of pll2_mfd_400M correctly, otherwise,
when all the child device with clock source from pll2_mfd_400M turn
off, the pll2_mfd_400M will turns off automaticly, which will cause
system hang due to DDR clock is off when code is runing on it.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174124: Revert "[USB Host]change the default wakeup value of RH"
Peter Chen [Thu, 9 Feb 2012 09:07:44 +0000 (17:07 +0800)]
ENGR00174124: Revert "[USB Host]change the default wakeup value of RH"

This patch creates two bugs at current i.mx usb framework.
- The high speed device can't be recognized at the first time.
- The usb device can't be recognized after system resume with
usb vbus.

The reason why it creates bugs that it changes (auto)suspend/resume
process for usb core.

This reverts commit e5c4318450e1fe7c61950214e779658c6cea0da7.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00174103 [usb hsic] add usb hsic support for mx6dl
Tony LIU [Thu, 9 Feb 2012 02:41:08 +0000 (10:41 +0800)]
ENGR00174103 [usb hsic] add usb hsic support for mx6dl

- change the pad setting

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00174037-3 Add HSIC suspend/resume feature
Tony LIU [Wed, 8 Feb 2012 07:48:10 +0000 (15:48 +0800)]
ENGR00174037-3 Add HSIC suspend/resume feature

head file

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00174037-2 Add HSIC suspend/resume feature
Tony LIU [Wed, 8 Feb 2012 07:42:22 +0000 (15:42 +0800)]
ENGR00174037-2 Add HSIC suspend/resume feature

device part

- implement reset_device interface for HSIC host

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00174037-1 Add HSIC suspend/resume feature
Tony LIU [Wed, 8 Feb 2012 07:33:56 +0000 (15:33 +0800)]
ENGR00174037-1 Add HSIC suspend/resume feature

MSL part

- For HSIC, not connect nor disconnect, then WKCN,
  WKDC must not be set during suspend
- For HSIC, must set bit 21 in host control registry
  after device connected to host controller
- USB PHY 480M clock output must turn on to avoid about
  10ms delay before sending out resume signal
- HW_ANA_MISC clkgate delay must be set to 2 or 3 to
  avoid 24M OSCI not stable issue

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
11 years agoENGR00172342-2 EDID parse audio data blocks
Alan Tull [Wed, 8 Feb 2012 22:40:31 +0000 (16:40 -0600)]
ENGR00172342-2 EDID parse audio data blocks

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>
11 years agoENGR00172342-1 EDID parse audio data blocks
Alan Tull [Thu, 26 Jan 2012 17:37:01 +0000 (11:37 -0600)]
ENGR00172342-1 EDID parse audio data blocks

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>
11 years agoENGR00171353 MIPI_DSI: mipi display blank and unblank fail fixed
Wayne Zou [Thu, 2 Feb 2012 07:10:35 +0000 (15:10 +0800)]
ENGR00171353 MIPI_DSI: mipi display blank and unblank fail fixed

mipi display blank and unblank fail on HW board: MX6Q_ARM2 1G SN 0112
The host processor sends PCLK, HS and VS information to display modules
two frames before sleep-out command is sent.

Signed-off-by: Wayne Zou <b36644@freescale.com>
11 years agoENGR00174054-2: imx6_defconfig: enable CONFIG_COMPACTION
Jason Liu [Wed, 8 Feb 2012 08:14:05 +0000 (16:14 +0800)]
ENGR00174054-2: imx6_defconfig: enable CONFIG_COMPACTION

Enable CONFIG_COMPACTION on imx6_defconfig to reduce
the external memory fragementation

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00174054-1: i.mx6_defconfig: sync imx6_defconfig with v3.0.15
Jason Liu [Wed, 8 Feb 2012 08:11:23 +0000 (16:11 +0800)]
ENGR00174054-1: i.mx6_defconfig: sync imx6_defconfig with v3.0.15

After upgrade kernel to 3.0.15, the defconfig also need
be updated to sync with the kernel version change

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173962 Added HDMI enable function
Sandor Yu [Wed, 8 Feb 2012 05:45:18 +0000 (13:45 +0800)]
ENGR00173962 Added HDMI enable function

Whenever IPU clock change or gating, the HDMI PHY should reset or config again,
otherwise the HDMI PHY will not work.
It is the root cause for Ubuntu can't show GUI to HDMI device when bootup
and GPU application tutorial4_es20 no output to HDMI device.
Added enable function in mxcfb_set_par() to fix aboved two issue.

Added HDMI initialization check, only one HDMI instanse supported.

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00174039 camera: modify camera drivers
Yuxi Sun [Wed, 8 Feb 2012 07:47:51 +0000 (15:47 +0800)]
ENGR00174039 camera: modify camera drivers

Modify ov3640 ov5640 ov5642 driver according to sensor data structure
change for dual camera switch

Signed-off-by: Yuxi Sun <b36102@freescale.com>
11 years agoENGR00173864 MX6Q ipu capture: add multi camera switch
Yuxi Sun [Mon, 6 Feb 2012 09:29:49 +0000 (17:29 +0800)]
ENGR00173864 MX6Q ipu capture: add multi camera switch

Add IOCTRL command V4L2_CID_MXC_SWITCH_CAM for multi camera switch

Signed-off-by: Yuxi Sun <b36102@freescale.com>
11 years agoENGR00173845 MX6Q SABRESD camera: add camera power down function
Yuxi Sun [Mon, 6 Feb 2012 05:45:05 +0000 (13:45 +0800)]
ENGR00173845 MX6Q SABRESD camera: add camera power down function

Add camera power down function and change default camera to ov5642
for parallel interface camera

Signed-off-by: Yuxi Sun <b36102@freescale.com>
11 years agoENGR00174038 [mx6 mmc]fix build err
Tony Lin [Wed, 8 Feb 2012 07:42:24 +0000 (15:42 +0800)]
ENGR00174038 [mx6 mmc]fix build err

fix build error:
incompatible pointer type

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00174031 [MX6Q] Support AR6003 SDIO wifi on kernel v3.0
Ryan QIAN [Wed, 8 Feb 2012 07:15:55 +0000 (15:15 +0800)]
ENGR00174031 [MX6Q] Support AR6003 SDIO wifi on kernel v3.0

- add macros and struct used in new ath6kl.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoAdd ath6kl cleaned up driver
Kalle Valo [Sun, 17 Jul 2011 21:22:30 +0000 (00:22 +0300)]
Add ath6kl cleaned up driver

Last May we started working on cleaning up ath6kl driver which is
currently in staging. The work has happened in a separate
ath6kl-cleanup tree:

http://git.kernel.org/?p=linux/kernel/git/kvalo/ath6kl-cleanup.git;a=summary

After over 1100 (!) patches we have now reached a state where I would
like to start discussing about pushing the driver to the wireless
trees and replacing the staging driver.

The driver is now a lot smaller and looks like a proper Linux driver.
The size of the driver (measured with simple wc -l) dropped from 49
kLOC to 18 kLOC and the number of the .c and .h files dropped from 107
to 22. Most importantly the number of subdirectories reduced from 26
to zero :)

There are two remaining checkpatch warnings in the driver which we
decided to omit for now:

drivers/net/wireless/ath/ath6kl/debug.c:31:
  WARNING: printk() should include KERN_ facility level
drivers/net/wireless/ath/ath6kl/sdio.c:527:
  WARNING: msleep < 20ms can sleep for up to 20ms;
  see Documentation/timers/timers-howto.txt

The driver has endian annotations for all the hardware specific
structures and there are no sparse errors. Unfortunately I don't have
any big endian hardware to test that right now.

We have been testing the driver both on x86 and arm platforms. The
code is also compiled with sparc and parisc cross compilers.

Notable missing features compared to the current staging driver are:

o HCI over SDIO support
o nl80211 testmode
o firmware logging
o suspend support

Testmode, firmware logging and suspend support will be added soon. HCI
over SDIO support will be more difficult as the HCI driver needs to
share code with the wifi driver. This is something we need to research
more.

Also I want to point out the changes I did for signed endian support.
As I wasn't able to find any support for signed endian annotations I
decided to follow what NTFS has done and added my own. Grep for sle16
and sle32, especially from wmi.h.

Various people have been working on the cleanup, the hall of
fame based on number of patches is:

   543  Vasanthakumar Thiagarajan
   403  Raja Mani
   252  Kalle Valo
    16  Vivek Natarajan
    12  Suraj Sumangala
     3  Joe Perches
     2  Jouni Malinen

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Vivek Natarajan <nataraja@qca.qualcomm.com>
Signed-off-by: Suraj Sumangala <surajs@qca.qualcomm.com>
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
11 years agoENGR00171642 [MX6Q_Lite]Power:suspend and resume stress test failed
Tony Lin [Wed, 8 Feb 2012 06:03:11 +0000 (14:03 +0800)]
ENGR00171642 [MX6Q_Lite]Power:suspend and resume stress test failed

add bus suspend/resume function to prevent SDMMC suspend/resume stess test fail

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00173947-2 MX6Q/ARCH : enable the BBT support to ARM2
Huang Shijie [Tue, 7 Feb 2012 08:38:32 +0000 (16:38 +0800)]
ENGR00173947-2 MX6Q/ARCH : enable the BBT support to ARM2

enable the BBT support to ARM2 board.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173947-1 mtd/gpmi : add BBT support to gpmi nand driver
Huang Shijie [Mon, 30 Jan 2012 03:34:03 +0000 (11:34 +0800)]
ENGR00173947-1 mtd/gpmi : add BBT support to gpmi nand driver

Add a new field to gpmi_nand_platform_data{}.
Make the BBT support to board specific.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00172274-02 - IEEE-1588: rework ts_clk in MX6 ARIK CPU board.
Fugang Duan [Wed, 8 Feb 2012 03:39:25 +0000 (11:39 +0800)]
ENGR00172274-02 - IEEE-1588: rework ts_clk in MX6 ARIK CPU board.

Default use RMII 50MHz clock for ts_clk.
Test result:
Enet work fine at 100/1000Mbps in TO1.1 and Rigel.
IEEE 1588 timestamp is convergent for 25M & 50M & 100MHz
timestamp clock.

Signed-off-by: Fugang Duan <B38611@freescale.com>
11 years agoENGR00172274-01 - [MX6]: rework IEEE-1588 ts_clk in MX6Q ARIK CPU board.
Fugang Duan [Wed, 8 Feb 2012 03:26:58 +0000 (11:26 +0800)]
ENGR00172274-01 - [MX6]: rework IEEE-1588 ts_clk in MX6Q ARIK CPU board.

- Fix GPIO_16 IOMUX config.
- Config GPIO_16 pad to ENET_ANATOP_ETHERNET_REF_OUT.
- IEEE-1588 ts_clk, S/PDIF in and i2c3 are mutually exclusive,
  because all of them use GPIO_16, so it only for one function
  work at a moment.
- Test result:
    Enet work fine at 100/1000Mbps in TO1.1.
IEEE 1588 timestamp is convergent.

Signed-off-by: Fugang Duan <B38611@freescale.com>
11 years agoENGR00174021 MX6Q/ARCH : fix the section mismatch
Huang Shijie [Wed, 8 Feb 2012 03:19:07 +0000 (11:19 +0800)]
ENGR00174021 MX6Q/ARCH : fix the section mismatch

add __init to the gpmi_nand_platform_init() to make this
function store in the init.text section.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173926 Support eMMC ddr mode
Ryan QIAN [Wed, 8 Feb 2012 00:34:03 +0000 (08:34 +0800)]
ENGR00173926 Support eMMC ddr mode

- support 4bit/8bit ddr mode
- change cpu_is_mx6q() || cpu_is_mx6dl() to cpu_is_mx6()

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00174018 MX6Q/perfmon : fix the compiling error
Huang Shijie [Wed, 8 Feb 2012 02:16:06 +0000 (10:16 +0800)]
ENGR00174018 MX6Q/perfmon : fix the compiling error

reduce one parameter to fix the built error.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173869-9: i.mx6dl: add the misc drivers support
Jason Liu [Tue, 7 Feb 2012 06:30:42 +0000 (14:30 +0800)]
ENGR00173869-9: i.mx6dl: add the misc drivers support

This patch change is very trivial and simply just add
cpu_is_mx6dl() or using cpu_is_mx6 to replace cpu_is_mx6q

each driver owner will check it and adjust it accordingly later,
such as sdhc etc.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-8: i.mx6: ARM2: add i.mx6dl support
Jason Liu [Tue, 7 Feb 2012 06:26:23 +0000 (14:26 +0800)]
ENGR00173869-8: i.mx6: ARM2: add i.mx6dl support

i.mx6dl and i.mx6q share the same ARM2 board due to the pin-pin
compatible between them.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-7: i.mx6: sdma: add i.mx6dl support
Jason Liu [Tue, 7 Feb 2012 06:13:50 +0000 (14:13 +0800)]
ENGR00173869-7: i.mx6: sdma: add i.mx6dl support

add i.mx6dl support for sdma

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-6: i.mx6: gpio: add the i.mx6dl support
Jason Liu [Tue, 7 Feb 2012 06:12:25 +0000 (14:12 +0800)]
ENGR00173869-6: i.mx6: gpio: add the i.mx6dl support

add the i.mx6dl support for gpio

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-5: i.mx6: don't turn off MMDC clock on i.mx6dl
Jason Liu [Tue, 7 Feb 2012 06:09:59 +0000 (14:09 +0800)]
ENGR00173869-5: i.mx6: don't turn off MMDC clock on i.mx6dl

MMDC clock is from pll2_pfd_400M, thus we can't turn it off

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-4: i.mx6: add the i.mx6dl iomux support
Jason Liu [Tue, 7 Feb 2012 06:06:24 +0000 (14:06 +0800)]
ENGR00173869-4: i.mx6: add the i.mx6dl iomux support

externally, i.mx6dl is pin-pin compatible with i.mx6dq
internally, i.mx6dl is totally different with iomux setting

Checkpatch will throw some warnings in iomux-mx6dl.h file as:
WARNING: line over 80 characters

But for the readable, I intend not to fix these warnings, and linux
upstream also has so many such kind of cases

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-3: i.mx6: add the cpu_is_mx6dl() support
Jason Liu [Tue, 7 Feb 2012 06:00:21 +0000 (14:00 +0800)]
ENGR00173869-3: i.mx6: add the cpu_is_mx6dl() support

In order to support one image for i.mx6q and i.mx6dl, we introduce
the below functions by diff the value reading from ANATOP ID register.
cpu_is_mx6q() and cpu_is_mx6dl()

The layout for the register defines:
               Major  Minor
i.MX6Q1.1:       6300     01
i.MX6Q1.0:       6300     00
i.MX6DL1.0:      6100     00

For the common bits shared across all i.mx6 ports, we can use:
cpu_is_mx6() for it.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-2: i.mx6: add the i.mx6dl memory map and irq definion
Jason Liu [Tue, 7 Feb 2012 05:56:02 +0000 (13:56 +0800)]
ENGR00173869-2: i.mx6: add the i.mx6dl memory map and irq definion

i.mx6dl shares with almost the same memory layout with i.mx6d/q
except it adds some new fetures such as pxp/epdc etc.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173869-1: i.mx6: cosmetic the code
Jason Liu [Tue, 7 Feb 2012 05:45:51 +0000 (13:45 +0800)]
ENGR00173869-1: i.mx6: cosmetic the code

This is the cosmetic patch for the i.mx6 and make
the prepartion for the coming i.mx6dl support.

Why cosmetic? It's due to the code is a little bit
mess and want to make it clean and clear.

Signed-off-by: Jason Liu <r64343@freescale.com>
11 years agoENGR00173731-7 MX6Q/GPMI : add gpmi for mx6q
Huang Shijie [Wed, 1 Feb 2012 08:14:55 +0000 (16:14 +0800)]
ENGR00173731-7 MX6Q/GPMI : add gpmi for mx6q

add gpmi support to mx6q for the imx_3.0.15.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-6 MX6Q/DMA : enable the mxs-dma for mx6q
Huang Shijie [Wed, 1 Feb 2012 08:14:01 +0000 (16:14 +0800)]
ENGR00173731-6 MX6Q/DMA : enable the mxs-dma for mx6q

enable the mxs-dma for mx6q.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-5 MX6Q/ARCH :rename gpmi-nfc to gpmi-nand
Huang Shijie [Wed, 1 Feb 2012 08:39:46 +0000 (16:39 +0800)]
ENGR00173731-5 MX6Q/ARCH :rename gpmi-nfc to gpmi-nand

rename the gpmi-nfc to gpmi-nand.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-4 MX6Q/ARCH : add mxs_reset_block()
Huang Shijie [Wed, 1 Feb 2012 08:12:33 +0000 (16:12 +0800)]
ENGR00173731-4 MX6Q/ARCH : add mxs_reset_block()

add mxs_reset_block() for mx6q.
In order to keep the same code as the community, I reduce the
parameters to one.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-3 mxs-dma : rewrite the last parameter of mxs_dma_prep_slave_sg()
Huang Shijie [Wed, 18 Jan 2012 02:51:40 +0000 (10:51 +0800)]
ENGR00173731-3 mxs-dma : rewrite the last parameter of mxs_dma_prep_slave_sg()

[1] Background :
    The GPMI does ECC read page operation with a DMA chain consist of three DMA
    Command Structures. The middle one of the chain is used to enable the BCH,
    and read out the NAND page.

    The WAIT4END(wait for command end) is a comunication signal between
    the GPMI and MXS-DMA.

[2] The current DMA code sets the WAIT4END bit at the last one, such as:

    +-----+               +-----+                      +-----+
    | cmd | ------------> | cmd | ------------------>  | cmd |
    +-----+               +-----+                      +-----+
                                                          ^
                                                          |
                                                          |
                                                     set WAIT4END here

    This chain works fine in the mx23/mx28.

[3] But in the new GPMI version (used in MX50/MX60), the WAIT4END bit should
    be set not only at the last DMA Command Structure,
    but also at the middle one, such as:

    +-----+               +-----+                      +-----+
    | cmd | ------------> | cmd | ------------------>  | cmd |
    +-----+               +-----+                      +-----+
                             ^                            ^
                             |                            |
                             |                            |
                        set WAIT4END here too        set WAIT4END here

    If we do not set WAIT4END, the BCH maybe stalls in "ECC reading page" state.
    In the next ECC write page operation, a DMA-timeout occurs.
    This has been catched in the MX6Q board.

[4] In order to fix the bug, rewrite the last parameter of
    mxs_dma_prep_slave_sg(), and use the dma_ctrl_flags:
    ---------------------------------------------------------
      DMA_PREP_INTERRUPT : append a new DMA Command Structrue.
      DMA_CTRL_ACK       : set the WAIT4END bit for this DMA Command Structure.
    ---------------------------------------------------------

[5] changes to the relative drivers:
    For gpmi-nand driver: use the new flags.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-2 mxs-dma : use the new mxs-dma.h
Huang Shijie [Wed, 1 Feb 2012 07:26:54 +0000 (15:26 +0800)]
ENGR00173731-2 mxs-dma : use the new mxs-dma.h

use the new header : mxs-dma.h.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173731-1 mxs-dma : rename the dma.h for mxs-dma
Huang Shijie [Mon, 6 Feb 2012 02:47:02 +0000 (10:47 +0800)]
ENGR00173731-1 mxs-dma : rename the dma.h for mxs-dma

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>
11 years agoENGR00173615 [mx5 mmc]fix mx5 build error
Tony Lin [Thu, 2 Feb 2012 05:59:05 +0000 (13:59 +0800)]
ENGR00173615 [mx5 mmc]fix mx5 build error

fix build error on mx5 platforms

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00173615-2 [mx6q mmc]remove software workaround for TO1.1 and later
Tony Lin [Thu, 2 Feb 2012 05:59:05 +0000 (13:59 +0800)]
ENGR00173615-2 [mx6q mmc]remove software workaround for TO1.1 and later

the card interrupt status bit workaround and TC interrupt comes earlier than
DMA interrupt workaround are not necessary for i.MX6Q TO1.1 and later

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00173615-1 [mx6q]add mx6q_revision to common header file
Tony Lin [Thu, 2 Feb 2012 05:59:05 +0000 (13:59 +0800)]
ENGR00173615-1 [mx6q]add mx6q_revision to common header file

the common API is needed by drivers to distinguish TO version

Signed-off-by: Tony Lin <tony.lin@freescale.com>
11 years agoENGR00173939 [MX6Q]: Skip sending S18R on SD slots doesnt support 1.8V
Ryan QIAN [Tue, 7 Feb 2012 06:43:09 +0000 (14:43 +0800)]
ENGR00173939 [MX6Q]: Skip sending S18R on SD slots doesnt support 1.8V

- checking whether host support MMC_VDD_165_195, before query
UHS mode supported by host controller.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00173846 MX6DQ_SD: add touch support for LVDS0 and LVDS1
Frank Li [Mon, 6 Feb 2012 04:54:28 +0000 (12:54 +0800)]
ENGR00173846 MX6DQ_SD: add touch support for LVDS0 and LVDS1

Add touch support.

Signed-off-by: Frank Li <Frank.Li@freescale.com>
11 years agoENGR00173288-02 merge "[MX6Q]add SDHC3.0 support on uSDHC controller"
Ryan QIAN [Tue, 31 Jan 2012 03:01:52 +0000 (11:01 +0800)]
ENGR00173288-02 merge "[MX6Q]add SDHC3.0 support on uSDHC controller"

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>
11 years agoENGR00173288-01 merge "[MX6Q]add SDHC3.0 support on uSDHC controller"
Ryan QIAN [Tue, 31 Jan 2012 02:58:38 +0000 (10:58 +0800)]
ENGR00173288-01 merge "[MX6Q]add SDHC3.0 support on uSDHC controller"

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

- add support for SD3.0.
- add workaround for accessing non-exist registers on FSL SDHC.

Signed-off-by: Ryan QIAN <b32804@freescale.com>
11 years agoENGR00173639 mx6q: clock: PLL3's power can be off at runtime at TO1.1
Peter Chen [Fri, 3 Feb 2012 06:31:35 +0000 (14:31 +0800)]
ENGR00173639 mx6q: clock: PLL3's power can be off at runtime at TO1.1

It is the fix for Design PDM TKT064178, IC has already verified it,
and no more power consumption for setting/clear this bit.

With this bit, the power of pll3 can be off even the power bit for pll3
is on. In order to support USB wakeup, the power bit for pll3 should
be always on, and the power of pll3 is controller by USB hardware and
this new added bit at runtime.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00173586-2 [MX6] Add support to source GPT from 24MHz
Ranjani Vaidyanathan [Thu, 2 Feb 2012 11:32:32 +0000 (05:32 -0600)]
ENGR00173586-2 [MX6] Add support to source GPT from 24MHz

On MX6Q TO1.1, MX6DL/S and MX6Solo, GPT can be sourced
from a constant source (better for frequency scaling).
Currently we set the GPT clock to 3MHz (24MHz div by 8).

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00173586-1 [MX6] Add support to source GPT from 24MHz
Ranjani Vaidyanathan [Thu, 2 Feb 2012 11:31:52 +0000 (05:31 -0600)]
ENGR00173586-1 [MX6] Add support to source GPT from 24MHz

On MX6Q TO1.1, MX6DL/S and MX6Solo, GPT can be sourced
from a constant source (better for frequency scaling).
Currently we set the GPT clock to 3MHz (24MHz div by 8).

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00173810 clean up rej file
Alan Tull [Fri, 3 Feb 2012 10:16:29 +0000 (04:16 -0600)]
ENGR00173810 clean up rej file

Makefile.rej got committed from doing cherry-pick for kernel
upgrade from 2.6.38 to 3.0.15

Signed-off-by: Alan Tull <r80115@freescale.com>
11 years agoENGR00171536 HDMI handle mmapped audio buffers
Alan Tull [Thu, 26 Jan 2012 10:37:10 +0000 (04:37 -0600)]
ENGR00171536 HDMI handle mmapped audio buffers

The ALSA userspace requires mmapped buffer access to support sample
rate conversion.

Our hardware requires the driver to add frame information to the pcm
data.  For non-mmap access, the snd_pcm_ops' copy routine will do it.
For mmap access, we have to do it in the isr.  This is not ideal, but
it will work.

Signed-off-by: Alan Tull <r80115@freescale.com>
11 years agoENGR00173645 [MX6]Implement low power actions into DSM
Anson Huang [Thu, 2 Feb 2012 10:05:40 +0000 (18:05 +0800)]
ENGR00173645 [MX6]Implement low power actions into DSM

1. Need to follow right programming model for wb_per_at_lpm
   ,zeroed wb_count each time exit from DSM and set it before
   entering DSM;
2. For TO1.1, need to set fet_odrive for better power gate.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00173659 MX6Q_UART Change Physical / Virtural Port mapping
Eric Sun [Thu, 2 Feb 2012 10:59:20 +0000 (18:59 +0800)]
ENGR00173659 MX6Q_UART Change Physical / Virtural Port mapping

For ARM2 and Sabreauto, change TTY0 to TTY3 (which is physical UART4)
For SabreSD, Change TTY3 to TTY0 (which is physical UART1)

Mapping Changed as the following
Physical Virtual
-------- --------
1 0
2 1
3 2
4 3

Signed-off-by: Eric Sun <jian.sun@freescale.com>
11 years agoENGR00173617 Enable LVDS on MX6DQ sabresd board
Sandor Yu [Thu, 2 Feb 2012 06:01:32 +0000 (14:01 +0800)]
ENGR00173617 Enable LVDS on MX6DQ sabresd board

Enable AUX 5V when system bootup.
Enable PWM0 for LVDS backlight.

Signed-off-by: Sandor Yu <R01008@freescale.com>
11 years agoENGR00172391 [MX6]Remove unnecessary workaround of wdog for TO1.1
Anson Huang [Thu, 19 Jan 2012 09:07:02 +0000 (17:07 +0800)]
ENGR00172391 [MX6]Remove unnecessary workaround of wdog for TO1.1

On TO1.1, there is no such issue now, so remove the workaround,
as this is a very very low possibility to reproduce this issue, and the
workaround has very complicated logic, it is hard and non-necessary
to add SOC version check, so just remove it.

Signed-off-by: Anson Huang <b20788@freescale.com>
11 years agoENGR00173585: MX6: Added WAIT mode workaround for MX6Q TO1.1
Ranjani Vaidyanathan [Wed, 1 Feb 2012 13:32:32 +0000 (07:32 -0600)]
ENGR00173585: MX6: Added WAIT mode workaround for MX6Q TO1.1

There is small window where an interrupt can occur when the SOC is
in the process of entering WAIT mode. The ARM core responds to this
interrupt and can access the internal memories when their clocks are
disabled.
To avoid crashes generated due to this, WFI code should be executed
from non-cacheable IRAM and enough delay should added after the
WFI so that accesses to memories are prevented.

This workaround assumes that all interrupts are routed to CPU0 only.
This workaround is applicable to iMX6DL/Solo also.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
11 years agoENGR00171987 ipuv3 fb: add error handler for mxcfb_blank
Jason Chen [Fri, 13 Jan 2012 09:04:36 +0000 (17:04 +0800)]
ENGR00171987 ipuv3 fb: add error handler for mxcfb_blank

add error handler for mxcfb_blank.

Signed-off-by: Jason Chen <b02280@freescale.com>
(cherry picked from commit 1999793303187b4aa9ccbdfc53f9a4c6ab59e749)

11 years agoENGR00173378-2 usb: device: the udc stop flag should not be set at suspend
Peter Chen [Tue, 31 Jan 2012 06:10:49 +0000 (14:10 +0800)]
ENGR00173378-2 usb: device: the udc stop flag should not be set at suspend

It should not do re-enumeration at udc resume if the vbus is on and host
just sends suspend to device

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00173378-1 usb: device: Change judgement condition for resume occurrence
Peter Chen [Tue, 31 Jan 2012 05:34:20 +0000 (13:34 +0800)]
ENGR00173378-1 usb: device: Change judgement condition for resume occurrence

At former code, it uses portsc.fpr to indicate if the host sends
resume signal to device, but it has some limitations that if the code
can't be executed before the resume signal finishes, the portsc.fpr
will be cleared automatically.
Now, it uses usbsts.pci to judge host resume signal, this bit
will not be cleared before the non-wakeup interrupt handler is called,
and the wakeup code is executed before non-wakeup interrupt handler.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
11 years agoENGR00172395-2 MX6Q_ARM2: add sgtl5000 audio driver
Gary Zhang [Fri, 20 Jan 2012 03:01:31 +0000 (11:01 +0800)]
ENGR00172395-2 MX6Q_ARM2: add sgtl5000 audio driver

add sgtl5000 driver for MX6Q_ARM2 in config file

Signed-off-by: Gary Zhang <b13634@freescale.com>
11 years agoENGR00172395-1 MX6Q_ARM2: add sgtl5000 audio driver
Gary Zhang [Fri, 20 Jan 2012 02:42:38 +0000 (10:42 +0800)]
ENGR00172395-1 MX6Q_ARM2: add sgtl5000 audio driver

add sgtl5000 platform data.
VPC board is used to extend sgtl5000 hardware.

Signed-off-by: Gary Zhang <b13634@freescale.com>
11 years agoENGR00173406-2 MX6Q/IMX : fix compiling error.
Huang Shijie [Tue, 31 Jan 2012 11:10:43 +0000 (19:10 +0800)]
ENGR00173406-2 MX6Q/IMX : fix compiling error.

add dma header to fix the compiling error.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173406-1 MX6Q : fix compiling error
Huang Shijie [Tue, 31 Jan 2012 11:09:52 +0000 (19:09 +0800)]
ENGR00173406-1 MX6Q : fix compiling error

add the DMA header to fix the compiling error.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agoENGR00173397 MTD: add NAND_BBT_USE_FLASH macro
Huang Shijie [Tue, 31 Jan 2012 08:50:03 +0000 (16:50 +0800)]
ENGR00173397 MTD: add NAND_BBT_USE_FLASH macro

add the new macro to fix a compiling error.

Signed-off-by: Huang Shijie <b32955@freescale.com>
11 years agomtd: abstract last MTD partition parser argument
Dmitry Eremin-Solenikov [Fri, 10 Jun 2011 14:18:28 +0000 (18:18 +0400)]
mtd: abstract last MTD partition parser argument

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>
11 years agomtd: add new API for handling MTD registration
Dmitry Eremin-Solenikov [Fri, 25 Mar 2011 19:26:25 +0000 (22:26 +0300)]
mtd: add new API for handling MTD registration

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>
11 years agoclk: add helper functions clk_prepare_enable and clk_disable_unprepare
Richard Zhao [Tue, 15 Nov 2011 06:47:56 +0000 (14:47 +0800)]
clk: add helper functions clk_prepare_enable and clk_disable_unprepare

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>
11 years agoclk: provide prepare/unprepare functions
Russell King [Thu, 22 Sep 2011 10:30:50 +0000 (11:30 +0100)]
clk: provide prepare/unprepare functions

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>
11 years agodma: mxs-dma: convert to clk_prepare/clk_unprepare
Shawn Guo [Tue, 20 Dec 2011 05:54:00 +0000 (13:54 +0800)]
dma: mxs-dma: convert to clk_prepare/clk_unprepare

The patch converts mxs-dma driver to clk_prepare/clk_unprepare by
using helper functions clk_prepare_enable/clk_disable_unprepare.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
11 years agodma: mxs-dma: Don't use CLKGATE bits in CTRL0 to disable DMA channels
Lothar Waßmann [Thu, 8 Dec 2011 08:15:44 +0000 (09:15 +0100)]
dma: mxs-dma: Don't use CLKGATE bits in CTRL0 to disable DMA channels

This is how the original Freescale code (unintentionally) worked,
because the code path which would have asserted the CLKGATE bit was
never actually reached in their code.
This fixes the nefarious "DMA timout" bug when multiple DMA channels
(e.g. GPMI NAND and MMC) are used at the same time.
If a better fix for this problem should be found, the clkgate handling
could be reinstated.
See http://lists.infradead.org/pipermail/linux-arm-kernel/2011-September/065228.html

Also reverse the order of mxs_dma_disable_chan() and
mxs_dma_reset_chan() in mxs_dma_control() because mxs_dma_reset_chan()
can only work when the DMA channel is enabled.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
11 years agodma: mxs-dma: make mxs_dma_prep_slave_sg() multi user safe
Lothar Waßmann [Thu, 8 Dec 2011 08:15:43 +0000 (09:15 +0100)]
dma: mxs-dma: make mxs_dma_prep_slave_sg() multi user safe

Using a static variable for counting the number of CCWs attached to
a DMA channel when appending a new descriptor is not multi user safe.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
11 years agodma: mxs-dma: Always leave mxs_dma_init() with the clock disabled.
Lothar Waßmann [Thu, 8 Dec 2011 08:15:42 +0000 (09:15 +0100)]
dma: mxs-dma: Always leave mxs_dma_init() with the clock disabled.

There is no need to have the clock enabled all the time the driver is
loaded.
It will be enabled anyway in mxs_dma_alloc_chan_resources() when a
channel is actually going to be used.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
11 years agodma: mxs-dma: fix a typo in comment
Lothar Waßmann [Thu, 8 Dec 2011 08:15:41 +0000 (09:15 +0100)]
dma: mxs-dma: fix a typo in comment

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
11 years agodmaengine: move drivers to dma_transfer_direction
Vinod Koul [Thu, 13 Oct 2011 17:04:23 +0000 (22:34 +0530)]
dmaengine: move drivers to dma_transfer_direction

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>
11 years agoARM: mxs-dma: include <linux/dmaengine.h>
Dong Aisheng [Wed, 13 Jul 2011 03:40:54 +0000 (11:40 +0800)]
ARM: mxs-dma: include <linux/dmaengine.h>

Other files using dma.h may fail to compile as follows:
In file included from sound/soc/mxs/mxs-pcm.h:22,
                 from sound/soc/mxs/mxs-saif.h:112,
                 from sound/soc/mxs/mxs-sgtl5000.c:34:
arch/arm/mach-mxs/include/mach/dma.h:16: warning: 'struct dma_chan' declared inside parameter list
arch/arm/mach-mxs/include/mach/dma.h:16: warning: its scope is only this definition or declaration, which is probably not what you want
arch/arm/mach-mxs/include/mach/dma.h: In function 'mxs_dma_is_apbh':
arch/arm/mach-mxs/include/mach/dma.h:18: error: dereferencing pointer to incomplete type
arch/arm/mach-mxs/include/mach/dma.h: At top level:
arch/arm/mach-mxs/include/mach/dma.h:21: warning: 'struct dma_chan' declared inside parameter list
arch/arm/mach-mxs/include/mach/dma.h: In function 'mxs_dma_is_apbx':
arch/arm/mach-mxs/include/mach/dma.h:23: error: dereferencing pointer to incomplete type
make[3]: *** [sound/soc/mxs/mxs-sgtl5000.o] Error 1
make[2]: *** [sound/soc/mxs] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2

It seems it's better for dma.h to include dmaengine.h himself.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
11 years agodmaengine: add DMA_TRANS_NONE to dma_transfer_direction
Shawn Guo [Tue, 13 Dec 2011 15:48:03 +0000 (23:48 +0800)]
dmaengine: add DMA_TRANS_NONE to dma_transfer_direction

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>
11 years agolinux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
Paul Gortmaker [Fri, 29 Jul 2011 06:55:11 +0000 (16:55 +1000)]
linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h

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>
11 years agodmaengine: add new enum dma_transfer_direction
Vinod Koul [Thu, 13 Oct 2011 09:45:27 +0000 (15:15 +0530)]
dmaengine: add new enum dma_transfer_direction

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>
11 years agodmaengine: remove struct scatterlist for header
Vinod Koul [Tue, 9 Aug 2011 04:38:10 +0000 (10:08 +0530)]
dmaengine: remove struct scatterlist for header

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>
11 years agodmaengine: add helper function for slave_single
Vinod Koul [Mon, 25 Jul 2011 14:27:52 +0000 (19:57 +0530)]
dmaengine: add helper function for slave_single

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>
11 years agonet: remove mm.h inclusion from netdevice.h
Alexey Dobriyan [Thu, 16 Jun 2011 11:01:34 +0000 (11:01 +0000)]
net: remove mm.h inclusion from netdevice.h

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>