linux.git
7 years agocpufreq: Add android's 'interactive' governor
Viresh Kumar [Tue, 17 May 2016 09:11:22 +0000 (14:41 +0530)]
cpufreq: Add android's 'interactive' governor

Interactive governor has lived in Android sources for a very long time
and this commit is based on the code present in following branch:

https://android.googlesource.com/kernel/common android-4.4

The Interactive governor is designed for latency-sensitive workloads,
such as interactive user interfaces like the mobile phones and tablets.
The interactive governor aims to be significantly more responsive to
ramp CPU quickly up when CPU-intensive activity begins.

Existing governors sample CPU load at a particular rate, typically every
X ms and then update the frequency from a work-handler.  This can lead
to under-powering UI threads for the period of time during which the
user begins interacting with a previously-idle system until the next
sample period happens.

The 'interactive' governor uses a different approach.

A real-time thread is used for scaling up, giving the remaining tasks
the CPU performance benefit, unlike existing governors which are more
likely to schedule ramp-up work to occur after your performance starved
tasks have completed.

The Android version of interactive governor also checks whether to scale
the CPU frequency up soon after coming out of idle.  When the CPU comes
out of idle, the governor check if the CPU sampling is overdue or not.
If yes, it immediately starts the sampling.  Otherwise, the utilization
hooks from the scheduler handle the sampling later.  If the CPU is very
busy from exiting idle to when the evaluation happens, then it assumes
that the CPU is under-powered and ramps it to MAX speed.

If the CPU was not sufficiently busy to immediately ramp to MAX speed,
then the governor evaluates the CPU load since the last speed
adjustment, choosing the highest value between that longer-term load or
the short-term load since idle exit to determine the CPU speed to ramp
to.

Idle notifiers will be be handled later and are not included for now.

The core of this code is written and maintained (in Android
repositories) by Mike Chan and Todd Poyner over a long period of time.

Vireshk has made changes to to the governor to align it with the current
practices followed with mainline governors, like using utilization hooks
from the scheduler and handling kobject (for governor's sysfs directory)
in a race free manner. And of course this included general cleanup of
the governor as well.

Signed-off-by: Mike Chan <mike@android.com>
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
V1->V2:
- Changes to fix compilation issues with updated mainline
- Timer APIs got updated
 - s/mod_timer_pinned/mod_timer
 - s/init_timer/init_timer_pinned
- Updated prototypes of cpufreq_frequency_table_target() and
  update_util_handler()

7 years agocpufreq: Move gov_attr_* macros to cpufreq.h
Viresh Kumar [Tue, 17 May 2016 07:27:06 +0000 (12:57 +0530)]
cpufreq: Move gov_attr_* macros to cpufreq.h

These macros can be reused by governors which don't use the common
governor code present in cpufreq_governor.c and should be moved to the
relevant header.

Now that they are getting moved to the right header file, reuse them in
schedutil governor as well (that required rename of show/store
routines).

Also create gov_attr_wo() macro for write-only sysfs files, this will be
used by Interactive governor in a later patch.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
7 years agoMLK-12072 thermal: imx: enable tempmon finish bit check on imx7d TO1.1
Bai Ping [Wed, 23 Dec 2015 08:52:57 +0000 (16:52 +0800)]
MLK-12072 thermal: imx: enable tempmon finish bit check on imx7d TO1.1

On i.MX7D TO1.0, the finish bit in tempmon module used for verify
the temp value is broken, so it can NOT be used for checking the temp
value. On TO1.1, this issue has been fixed, so we can use this bit
to verify if the temp value is valid.

Signed-off-by: Bai Ping <ping.bai@nxp.com>
7 years agoMLK-12076-3: dma: imx-sdma: add imx6ul device type
Robin Gong [Fri, 25 Dec 2015 02:06:27 +0000 (10:06 +0800)]
MLK-12076-3: dma: imx-sdma: add imx6ul device type

Add imx6ul device type to enable the ERR008517 workaround or not by dts.

Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit 17d6a090b7a39bfd7836a3685d20201dcb0fa25e)

7 years agoMLK-12076-2: firmare: imx: sdma: update ecspi tx script for ERR008517
Robin Gong [Fri, 25 Dec 2015 02:02:44 +0000 (10:02 +0800)]
MLK-12076-2: firmare: imx: sdma: update ecspi tx script for ERR008517

Since ERR008517(TKT238285) fixed on i.mx6ul, we need change script to
compatible all i.mx6 chips.

Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit 6970e2b497621e3f2fc4005d06bb8ca76d234074)

7 years agoMLK-12060 media: output: pxp_v4l2: Add filter function for dma_request_channel
Robby Cai [Fri, 25 Dec 2015 06:04:54 +0000 (14:04 +0800)]
MLK-12060 media: output: pxp_v4l2: Add filter function for dma_request_channel

Without the filter function, the dma_request_channel() API could possibly get
a sdma channel. The dma_request_channel() API does not return error but the
consequent operations on that channel will be invalid then the upper level
application expects to be stuck.

The patch added the filter functions to get right dma channel for the fix.

Signed-off-by: Robby Cai <robby.cai@nxp.com>
7 years agoMLK-12075 ARM: dts: remove imx7d-sdb-touch.dts
Haibo Chen [Thu, 24 Dec 2015 08:36:51 +0000 (16:36 +0800)]
MLK-12075 ARM: dts: remove imx7d-sdb-touch.dts

For imx7d-sdb TO1.1 board, the touch interrupt pin no
longer conflict with HDMI, so move touch support to
imx7d-sdb.dts. To compatible with TO1.0 board, still
use imx7d-sdb-reva-touch.dts to support touch.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-12058 ARM: dts: add audio support for imx7d-sdb revb board
Zidan Wang [Tue, 22 Dec 2015 06:15:13 +0000 (14:15 +0800)]
MLK-12058 ARM: dts: add audio support for imx7d-sdb revb board

add audio support for imx7d-sdb revb board.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
(cherry picked from commit e92712590a3572264283a4af90b54d3f195d3b4e)

7 years agoMLK-12057 ASoC: imx-wm8960: add headphone/micphone/headset jack support
Zidan Wang [Tue, 22 Dec 2015 06:04:04 +0000 (14:04 +0800)]
MLK-12057 ASoC: imx-wm8960: add headphone/micphone/headset jack support

Add headphone/micphone/headset jack support for different board.

There are headphone detect gpio and microphone detect gpio which
can be configured from device tree.
If headphone and microphone using the same gpio for jack detect,
it suppose to be a headset and will register a headphone jack for it.
If headphone and microphone using different gpio for jack detect,
it suppose not to be a headset, and will register headphone jack
and microphone jack respectively.

Is't not appropriate to set the adc data output in machine driver.
It will not be compatibly when we change hardware connection.
wm8960 codec driver has added "ADC Data Output Select" kcontrol,
so that we can set the ADC data output from user space.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
(cherry picked from commit 92f65b4bee51fabdfa3a3c191f511c2ec7cb18a1)

7 years agoMLK-12062: ov5647: Fix imx7d mipi csi phy failed to detect signal
Sandor Yu [Tue, 22 Dec 2015 08:08:28 +0000 (16:08 +0800)]
MLK-12062: ov5647: Fix imx7d mipi csi phy failed to detect signal

The patch is to fix the issue,
mipi csi unit test mx6s_v4l2_capture.out can not work in 2nd time.

In ov5647 driver, clock and data lane will been setting to LP11 mode
when stream off. And the mode will been changed to LP00 mode
at the begin of ov5647 initialization.
If MIPI CSI DPHY in power on state, it will begin to work after
clock and data lane level changed, even ov5647 is not ready.
MIPI PHY may lose ov5647 signal.

Fixed the issue with:
i.  Stream off ov5647 when ov5647 driver probe.
ii. Add 5ms delay after software reset bit set.
iii.Setting both clock and data lane in LP00 when stream off.

Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit d351a9b3ad46309354a30b256be1a39c339effcd)

7 years agoMLK-12065 ARM: imx: imx7d: enable enet mdio open drain
Fugang Duan [Mon, 21 Dec 2015 09:58:42 +0000 (17:58 +0800)]
MLK-12065 ARM: imx: imx7d: enable enet mdio open drain

The management data input/output (MDIO) bus where often high-speed,
open-drain operation is required. i.MX7D TO1.0 ENET MDIO pin has no
open drain as IC ticket number: TKT252980, i.MX7D TO1.1 fix the issue.

Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit: a747abd5f01d278b91d1b6ee6628e1935cb7b23c)

Conflicts:
arch/arm/mach-imx/mach-imx7d.c

7 years agoMLK-12046-2 ARM: dts: imx6sl-evk.dts: add elan touch support
Haibo Chen [Tue, 22 Dec 2015 05:43:52 +0000 (13:43 +0800)]
MLK-12046-2 ARM: dts: imx6sl-evk.dts: add elan touch support

Add elan touch screen support on imx6sl-evk board.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-12046-1 imx_v7_defconfig: add elan touch screen support
Haibo Chen [Tue, 22 Dec 2015 07:57:07 +0000 (15:57 +0800)]
MLK-12046-1 imx_v7_defconfig: add elan touch screen support

Currently, we just use driver elan_ts.c, not elants_i2c.c. So this
patch change this.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-10142-1 touchscreen: elan: add elan touch screen driver support
Haibo Chen [Mon, 26 Jan 2015 05:30:40 +0000 (13:30 +0800)]
MLK-10142-1 touchscreen: elan: add elan touch screen driver support

Add elan touch screen driver in linux kernel.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
(cherry picked from commit 20180719c54760359d78544d55e4ac1fabaf6e8b)

7 years agoMLK-12047-3 imx_v7_defconfig: add imx7d_adc support
Haibo Chen [Tue, 22 Dec 2015 09:28:28 +0000 (17:28 +0800)]
MLK-12047-3 imx_v7_defconfig: add imx7d_adc support

Add imx7d_adc, default build into kernel

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-12043: ASoC: fsl: imx-cs42888: Add return value check
Shengjiu Wang [Tue, 22 Dec 2015 08:57:06 +0000 (16:57 +0800)]
MLK-12043: ASoC: fsl: imx-cs42888: Add return value check

Report by coverity (CID 18428). The return value need be checked
for snd_soc_dai_set_sysclk().

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
7 years agoMLK-12047-1 ARM: dts: imx6sx-sabreauto.dts: add ADC support
Haibo Chen [Mon, 21 Dec 2015 10:06:01 +0000 (18:06 +0800)]
MLK-12047-1 ARM: dts: imx6sx-sabreauto.dts: add ADC support

Add ADC support for imx6sx-sabreauto board.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-12042 ARM: dts: imx6sl.dtsi: add mmc aliase
Haibo Chen [Mon, 21 Dec 2015 02:50:48 +0000 (10:50 +0800)]
MLK-12042 ARM: dts: imx6sl.dtsi: add mmc aliase

This patch add mmc aliase support, to make every sd slot index
fixed.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-12049 ARM: dts: imx6qdl-sabreauto.dtsi: add usdhc1 support
Haibo Chen [Mon, 21 Dec 2015 03:22:38 +0000 (11:22 +0800)]
MLK-12049 ARM: dts: imx6qdl-sabreauto.dtsi: add usdhc1 support

Add usdhc1 support for the baseboard.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-12035 dts: imx7d-sdb-revb: add i.MX7d sdb revb support
Fugang Duan [Fri, 18 Dec 2015 04:05:44 +0000 (12:05 +0800)]
MLK-12035 dts: imx7d-sdb-revb: add i.MX7d sdb revb support

Base on i.MX7d sdb revb board change list, below modules has changed:
 - enet2 and epdc enable pin
 - usb_otg2 pwr enable pin
 - ov5647_mipi pwr pin
 - tsc2046 touch pendown pin
 - uart5 tx/rx pins
 - sensor INT pin
 - pcie power is controlled by por_b, not gpio_spi pin6
 - hdmi audio change to SAI3 from SAI1

The patch add the changes for revb, and keep the original functions for
reva board. Remove redundancy sim and enet dts files to avoid excessive
dts file for reva and revb.

After the patch, there have below diff:
- default dts file: imx7d-sdb.dts for revb board, imx7d-sdb-reva.dts for reva board
- remove enet, sim extended dts files, so these modules are enabled in default dts
  file for reva and revb board.

The change of expanded dts due to pin confliction:
- Keep the original expanded name of dts file for revb board, add suffix "-reva" in dts
  file name for reva board.
- Like:
  hdmi/codec audio:
    hdmi audio and wm8960 codec are enabled in default dts file for revb board,
    no extended dts files to separate them.
    Keep original extended dts files for reva board:
imx7d-sdb-reva-hdmi-audio.dts
imx7d-sdb-reva-wm8960.dts
  epdc:
    imx7d-sdb-epdc.dts is for revb board, imx7d-sdb-reva-epdc.dts is for reva board.
  gpmi-weim:
    imx7d-sdb-gpmi-weim.dtsi for revb, imx7d-sdb-reva-gpmi-weim.dtsi for reva.
  m4:
    imx7d-sdb-m4.dts for revb, imx7d-sdb-reva-m4.dts for reva.
  qspi:
    imx7d-sdb-qspi.dts for revb, imx7d-sdb-reva-qspi.dts for reva.
  touchscreen:
    imx7d-sdb-touch.dts for revb, imx7d-sdb-reva-touch.dts for reva.

Cherry picked from commit: 2be1a236696d, and disable sai3 since there have many
Transmit underrun on kernel 4.1.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Acked-by: Robby Cai <robby.cai@nxp.com>
Acked-by: Gao Pan <pandy.gao@nxp.com>
Acked-by: Peter Chen <peter.chen@freescale.com>
Acked-by: Chen Bough <Haibo.Chen@freescale.com>
Conflicts:
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx7d-sdb-epdc.dts
arch/arm/boot/dts/imx7d-sdb-gpmi-weim.dtsi
arch/arm/boot/dts/imx7d-sdb-m4.dts
arch/arm/boot/dts/imx7d-sdb-reva-epdc.dts
arch/arm/boot/dts/imx7d-sdb-touch.dts
arch/arm/boot/dts/imx7d-sdb.dts

7 years agoMLK-11920 video: fbdev: mxc ipuv3 fb: Use fb_set_var() to unblank a framebuffer
Liu Ying [Tue, 8 Dec 2015 09:20:16 +0000 (17:20 +0800)]
MLK-11920 video: fbdev: mxc ipuv3 fb: Use fb_set_var() to unblank a framebuffer

The resolution of an overlay framebuffer could be at most the same to the
one of the relevant background framebuffer.  However, the resolution of a
HDMI monitor could be changed at runtime.  Thus, when we unblank the overlay
framebuffer, we should check it's resolution and start position in case it
exceeds the boundary of the background framebuffer.  This patch replaces
mxcfb_set_par() with fb_set_var() to implement the unblank operation so that
the logic contains the ->fb_check_var() path.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
7 years agoMLK-12036 imx: config: add the i.MX6UL config in imx_v7_mfg_defconfig
Han Xu [Thu, 17 Dec 2015 19:57:08 +0000 (13:57 -0600)]
MLK-12036 imx: config:  add the i.MX6UL config in imx_v7_mfg_defconfig

i.MX6UL config was missed in the imx_v7_mfg_defconfig, add it for
mfgtool.

Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoMLK-12033 ARM: dts: imx6qdl-sabreauto: add enet irq dts files to avoid conflict with MLB
Fugang Duan [Thu, 17 Dec 2015 03:32:40 +0000 (11:32 +0800)]
MLK-12033 ARM: dts: imx6qdl-sabreauto: add enet irq dts files to avoid conflict with MLB

ENET gpio irq pin conlict with MLB on i.MX6qdl sabreauto board, since enet
gpio irq is extended feature for performance improvement, so let MLB enable
in default dts file and newly create sabreauto enet irq dts files.

Signed-off-by: Fugang Duan <B38611@freescale.com>
7 years agoMLK-12027: ARM: dts: fix the sample rate clock not accurate for spdif tx
Shengjiu Wang [Wed, 16 Dec 2015 05:16:39 +0000 (13:16 +0800)]
MLK-12027: ARM: dts: fix the sample rate clock not accurate for spdif tx

Clock of spdif tx is derived from clk_ipg and clk_osc, which is not the
integer multiple size of sample rate, can't generate accurate clock for
each sample rate. Use pll4 as the clk_spdif's parent, because the clk_spdif
is the one of source clock of tx, use a proper frequency for pll4, then it
can generate more accurate clock for sample rate (32k,48k,96k,192k).

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
7 years agoMLK-11526-2 ARM: dts: add imx6qp sabresd board ldo enable support
Anson Huang [Wed, 9 Sep 2015 14:19:06 +0000 (22:19 +0800)]
MLK-11526-2 ARM: dts: add imx6qp sabresd board ldo enable support

Add LDO enable mode support for i.MX6QP SabreSD board.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit 4107e9c4f3d8f654e75770da0a8ed7f158c3e468)

7 years agoMLK-12016-5 dts: imx6sx-sabreauto: add flexcan support
Dong Aisheng [Wed, 16 Dec 2015 10:30:21 +0000 (18:30 +0800)]
MLK-12016-5 dts: imx6sx-sabreauto: add flexcan support

The CAN transceiver on MX6SX Sabreauto board seems in sleep mode
by default after power up the board. User has to press the wakeup
key on ARD baseboard before using the transceiver, or it may not
work properly when power up the board at the first time(warm reset
does not have such issue).

This patch operates the wake pin too besides stby/en pins by chaining
them together in regulator mode.

Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
7 years agoMLK-12016-4 dts: imx6: remove flexcan for pin conflict devices
Dong Aisheng [Wed, 16 Dec 2015 03:23:28 +0000 (11:23 +0800)]
MLK-12016-4 dts: imx6: remove flexcan for pin conflict devices

Removing flexcan for pin conflict devices such as ecspi/gpmi.

Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
7 years agoMLK-12016-3 dts: sabreauto: add flexcan support
Dong Aisheng [Wed, 6 Nov 2013 11:37:38 +0000 (19:37 +0800)]
MLK-12016-3 dts: sabreauto: add flexcan support

The flexcan1 is pin conflict with fec. So we add a new dts file with
flexcan1 enabled with fec disabled for user to use.

Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
7 years agoMLK-12016-2 dts: imx6sx: add flexcan stop mode support
Dong Aisheng [Mon, 24 Feb 2014 06:35:52 +0000 (14:35 +0800)]
MLK-12016-2 dts: imx6sx: add flexcan stop mode support

Add flexcan stop mode support.

Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
7 years agoMLK-12016-1 dts: imx6sx-sdb: add flexcan support
Dong Aisheng [Tue, 15 Dec 2015 12:10:15 +0000 (20:10 +0800)]
MLK-12016-1 dts: imx6sx-sdb: add flexcan support

CAN transceiver is different on RevA and RevB board.
It's active high on RevA while active low on Rev B.

Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
7 years agoMGS-1360 fix gpu kernel driver with built-in mode
Xianzhong [Wed, 16 Dec 2015 10:17:06 +0000 (18:17 +0800)]
MGS-1360 fix gpu kernel driver with built-in mode

gpu kernel driver is loadable by default, change to built-in mode.

Signed-off-by: Xianzhong <b07117@freescale.com>
7 years agoMLK-12029 ARM: dts: imx6qp-sabreauto.dts: add vmmc supply for usdhc3
Haibo Chen [Wed, 16 Dec 2015 10:00:30 +0000 (18:00 +0800)]
MLK-12029 ARM: dts: imx6qp-sabreauto.dts: add vmmc supply for usdhc3

For imx6qp-ard board, it is okay to use external regulator for card slot,
so this patch add vmmc-supply for usdhc3.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-11853 ARM: dts: imx6qp-sabreauto: remove the enet pin reconfig
Fugang Duan [Wed, 11 Nov 2015 02:39:33 +0000 (10:39 +0800)]
MLK-11853 ARM: dts: imx6qp-sabreauto: remove the enet pin reconfig

Tuning MMDC ZQ_PU_OFFSET impact DDR IO timing like the value is greater
than 0x9 causing enet lost packets due to the worse timing. Reinforce
ENET DDR IO drive strength can fix the issue. Use the default pin setting
can match the RGMII timing for AI board.

Worse timing cause performance drop, the performance has no drop after
enhancing the DDR IO pins drive strength. Pass over night test.

Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit: 5ceb746c0358c0851187a3f4f6f61d02e951eae0)

Conflicts:
arch/arm/boot/dts/imx6qp-sabreauto.dts

7 years agoMLK-12021 ARM: dts: add sim1 support for imx7d-sdb board
Gao Pan [Wed, 16 Dec 2015 08:38:34 +0000 (16:38 +0800)]
MLK-12021 ARM: dts: add sim1 support for imx7d-sdb board

Enable sim1 in imx7d-sdb.dts. To avoid the pin confict with epdc,
disable sim1 in imx7d-sdb-epdc.dts.

Signed-off-by: Gao Pan <B54642@freescale.com>
7 years agoMLK-11995-2 ARM: imx: add DDR pad low power mode for i.mx7d
Anson Huang [Fri, 11 Dec 2015 13:37:20 +0000 (21:37 +0800)]
MLK-11995-2 ARM: imx: add DDR pad low power mode for i.mx7d

In low power idle of i.MX7D, DDR controller should put
DDR pads into low power mode, TO1.1 adds this support,
after implementing this feature, NVCC_DRAM power can
be lower from ~6mA to ~2mA in low power idle mode.

Signed-off-by: Anson Huang <Anson.Huang@freescale.com>
7 years agoMLK-11995-1 ARM: imx: add i.mx7d TO1.1 DDR retension mode support
Anson Huang [Thu, 10 Dec 2015 17:15:23 +0000 (01:15 +0800)]
MLK-11995-1 ARM: imx: add i.mx7d TO1.1 DDR retension mode support

i.MX7D TO1.1 moves DDR retention mode support from SNVS to
IOMUXC_GPR, add support for this change.

Signed-off-by: Anson Huang <Anson.Huang@freescale.com>
7 years agoMLK-12010 ARM: dts: add emmc support for imx6sx-sdb board
Haibo Chen [Mon, 14 Dec 2015 10:23:44 +0000 (18:23 +0800)]
MLK-12010 ARM: dts: add emmc support for imx6sx-sdb board

Add emmc support for imx6sx-sdb board, due to this support
need remove sd4 sd card slot and solder an eMMC chip, so
this patch add imx6sx-sdb-emmc.dts file.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-11999: ARM: dts: change the platform compatibility for i.MX6qp gpmi dts
Han Xu [Fri, 11 Dec 2015 17:07:03 +0000 (11:07 -0600)]
MLK-11999: ARM: dts: change the platform compatibility for i.MX6qp gpmi dts

change the compatibility for i.MX6qp gpmi dts file to distinguish it
from i.MX6q

Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoMLK-11997 dts: add hdcp dts file for imx6qp sabresd board
Sandor Yu [Fri, 11 Dec 2015 09:00:08 +0000 (17:00 +0800)]
MLK-11997 dts: add hdcp dts file for imx6qp sabresd board

Add hdcp dts file for imx6qp sabresd board.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMGS-1274 gpu: Integrate 5.0.11.p8 driver
Shawn Xiao [Fri, 11 Dec 2015 08:51:47 +0000 (16:51 +0800)]
MGS-1274 gpu: Integrate 5.0.11.p8 driver

Once received Vivate 5.0.11.p8_early_pre driver, integrate the kernel
related part to kernel.

Signed-off-by: Shawn Xiao <b49994@freescale.com>
7 years agoMLK-11996 ARM: imx: fix ddr_type config error
Bai Ping [Fri, 11 Dec 2015 06:59:10 +0000 (14:59 +0800)]
MLK-11996 ARM: imx: fix ddr_type config error

The config option for getting DDR type should
be 'HAVE_IMX_MMDC' and 'HAVE_IMX_DDRC'. Otherwise,
get_ddr type will always return 0(DDR3).

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit 6e8048311f854184ae5f16c822e6f6f0fd122e54)

7 years agoMLK-11953: arm: dts: Fix HDMI compliance test 7-15 failed
Sandor Yu [Fri, 4 Dec 2015 10:05:28 +0000 (18:05 +0800)]
MLK-11953: arm: dts: Fix HDMI compliance test 7-15 failed

i.MX6QP SabreSD board HDMI compliance test 7-15 Vcec2 test failed,
the value is 0.403V, which should be 0.274V>Vcec2>0.196V.

Disable the pad internal PU resistor, and change the external PU
resistor(R647) from 47K to 100K.
With all the changes, the calculated voltage on CEC is 0.248V, and the
test value is 0.250V.

In the patch disable CEC pin internal PULL/Keep function.

Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit 0a9388ff8ef77778f5e81d8dbc980cacf87fc12b)

7 years agoMLK-11992: MX6 HDMI: Active HDCP keepout window when HDCP enable
Sandor Yu [Fri, 11 Dec 2015 07:57:16 +0000 (15:57 +0800)]
MLK-11992: MX6 HDMI: Active HDCP keepout window when HDCP enable

When HDCP running in repeater mode,
HDCP software workaround "HW_WA_HDCP_DC0" is working in
HDCP keepout window stop state.
It will cause HDCP compliance test 1B-01A failed.
So active HDCP keepout widows and 1B-01A is passed.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMLK-11985-2 ARM: imx: call __pa instead of virt_to_phys
Anson Huang [Wed, 9 Dec 2015 10:55:10 +0000 (18:55 +0800)]
MLK-11985-2 ARM: imx: call __pa instead of virt_to_phys

Use different API to fix below issue reported by coverity:

Out-of-bounds access (ARRAY_VS_SINGLETON),
ptr_arith: Using &iram_tlb_phys_addr as an array.
This might corrupt or misinterpret adjacent memory locations.

Signed-off-by: Anson Huang <Anson.Huang@freescale.com>
7 years agoMLK-11985-1 ARM: imx: fix coverity scan issues
Anson Huang [Wed, 9 Dec 2015 10:51:22 +0000 (18:51 +0800)]
MLK-11985-1 ARM: imx: fix coverity scan issues

1. Add return value check to fix below warning:

check_return: Calling of_property_read_u32 without
checking return value.

2. Improve code to fix below warning:

copy_paste_error: i in of_clk_get(dev->of_node, i)
looks like a copy-paste error.

Signed-off-by: Anson Huang <Anson.Huang@freescale.com>
7 years agoMLK-11988 uapi: fix header files missing problem while building linux-test
Gao Pan [Wed, 9 Dec 2015 07:33:53 +0000 (15:33 +0800)]
MLK-11988 uapi: fix header files missing problem while building linux-test

3 uapi header files(mxc_sim_interface.h, pxp_dma.h, pxp_device.h)
cannot be installed by the command "make headers_install" because
they are not in Kbuild list, which impacts the linux-test build.

This patch adds the 3 header files in Kbuild list.

Signed-off-by: Gao Pan <B54642@freescale.com>
7 years agoMLK-11894 imx: sema4: fix the out of bounds write
Richard Zhu [Thu, 26 Nov 2015 01:36:48 +0000 (09:36 +0800)]
MLK-11894 imx: sema4: fix the out of bounds write

Fix the out of bounds write, and the dereference before
null check.

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
(cherry picked from commit 775ff0727166535e9b1ba1f70167e6a33fee5f13)

7 years agoMLK-11979 arm: imx: enable rpmsg on imx6sx platforms
Richard Zhu [Fri, 6 Nov 2015 02:47:15 +0000 (10:47 +0800)]
MLK-11979 arm: imx: enable rpmsg on imx6sx platforms

enable rpmsg on imx6sx platforms
 - imx6sx sdb board
 - imx6sx sabreauto board

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
7 years agoMLK-11947 ARM: dts: add missing dtb names in Makefile for imx7d-sdb
Zidan Wang [Thu, 3 Dec 2015 05:01:57 +0000 (13:01 +0800)]
MLK-11947 ARM: dts: add missing dtb names in Makefile for imx7d-sdb

Making those dtb files to be complied by make dtbs command.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11115 arm: imx: double check m4 is enabled
Richard Zhu [Mon, 15 Jun 2015 10:26:37 +0000 (18:26 +0800)]
MLK-11115 arm: imx: double check m4 is enabled

Make a double check that m4 is enabled and run on imx7d

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
(cherry picked from commit 276fe0947a13c74dad003b0fc3735d389928c1e3)

7 years agoMLK-11016 arm: clk: enable m4 root clk when m4 core is running
Richard Zhu [Tue, 2 Jun 2015 07:23:59 +0000 (15:23 +0800)]
MLK-11016 arm: clk: enable m4 root clk when m4 core is running

M4 root clk shouldn't be turn off when M4 core is running

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
(cherry picked from commit 7a3734bd4d4a249d5d3e081fd6b6255da756a841)

7 years agoMGS-1087: ARM: dts: Add CMA setting to 7d dtsi
Shawn Xiao [Mon, 7 Dec 2015 02:54:45 +0000 (10:54 +0800)]
MGS-1087: ARM: dts: Add CMA setting to 7d dtsi

Since the cma setting has been moved to dts file. Add this partation to
7d dtsi to make cma pool building successful on 7d soc.

Signed-off-by: Shawn Xiao <b49994@freescale.com>
7 years agoMLK-11949 mtd: gpmi: fix the typo in .bbm_in_data_chunk()
Fugang Duan [Thu, 3 Dec 2015 07:43:33 +0000 (15:43 +0800)]
MLK-11949 mtd: gpmi: fix the typo in .bbm_in_data_chunk()

Fix the typo in when check bch geometry ecc chunk0 and chunkn size.

Signed-off-by: Fugang Duan <B38611@freescale.com>
7 years agoMLK-11957 input: misc: fxls8471: remove unnecessary .kfree()
Fugang Duan [Thu, 3 Dec 2015 10:07:13 +0000 (18:07 +0800)]
MLK-11957 input: misc: fxls8471: remove unnecessary .kfree()

The driver kfree the global memory that is not correct. The patch
remove them.

Signed-off-by: Fugang Duan <B38611@freescale.com>
7 years agoMLK-11801 imx: mx7d: resolve conflicts with A7 and M4
Peng Fan [Fri, 30 Oct 2015 07:59:58 +0000 (15:59 +0800)]
MLK-11801 imx: mx7d: resolve conflicts with A7 and M4

M4 will use UART2, and RDC is configured that kernel can not
access. If still enable it, kernel will panic.

To validation board, disable gpio-keys, since m4 will use volume keys.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
(cherry picked from commit ccd54fd2096b8f3443bafd0b86499e1eda027fc9)

Conflicts:
arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-m4.dts

7 years agoMLK-11948: ASoC: fsl_esai: fix the channel swap issue after bootup
Shengjiu Wang [Thu, 3 Dec 2015 02:47:05 +0000 (10:47 +0800)]
MLK-11948: ASoC: fsl_esai: fix the channel swap issue after bootup

Patch 11626b6a79e27c716f3731b7dc2208631afbc665 is not a complete workaround.

The complete workaround is that: Each time playback/recording, firstly clear
the xSMA/xSMB, then enable TE/RE, then enable xSMB and xSMA (xSMB must be
enabled before xSMA).

Because the xSMA and xSMB is in enabled state after reset, so in original fix
the first time playback/recording after bootup, didn't follow the workaround
flow. There maybe still have channel swap issue.

The PDM ticket of this issue is TKT251104.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
7 years agoMLK-11942 ASoC: fsl_asrc_m2m: free pair after allocating m2m failed
Zidan Wang [Wed, 2 Dec 2015 03:02:12 +0000 (11:02 +0800)]
MLK-11942 ASoC: fsl_asrc_m2m: free pair after allocating m2m failed

free pair after allocating m2m failed. Reported by coverity.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
(cherry picked from commit 237a35db5b48b78250a019f891d9d746c3411d49)

7 years agoMLK-11933 mfd: mxc-hdmi-core: null check substream before using it
Zidan Wang [Tue, 1 Dec 2015 08:14:26 +0000 (16:14 +0800)]
MLK-11933 mfd: mxc-hdmi-core: null check substream before using it

null check substream before using it. Reported by coverity.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
(cherry picked from commit fad2b9c1285a34eab0dec9f90edc06ec94e70a61)

7 years agoMLK-10646: ARM: dts: Add independent dts for hdmi audio and wm8960 audio
Shengjiu Wang [Mon, 13 Apr 2015 06:24:38 +0000 (14:24 +0800)]
MLK-10646: ARM: dts: Add independent dts for hdmi audio and wm8960 audio

wm8960, hdmi can't be used together for they use same SAI interface.
Which is hardware limitation.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
(cherry picked from commit 56514bac9745ec263b84adc0479c0c0314902ab9)

7 years agoMLK-11944-2 ARM: dts: move CAN_STBY out of hog group to avoid pin conflict
Robby Cai [Wed, 2 Dec 2015 07:32:47 +0000 (15:32 +0800)]
MLK-11944-2 ARM: dts: move CAN_STBY out of hog group to avoid pin conflict

EPDC_DATA14 (can be used as CAN_STBY for flexcan) is also shared with EPDC.
To make EPDC work, need move it from hog pinctrl group to its own pinctrl
group to avoid the conflict.

Signed-off-by: Robby Cai <r63905@freescale.com>
7 years agoMLK-11944-1 ARM: dts: disable sii902x due to pin conflict with EPDC
Robby Cai [Wed, 2 Dec 2015 06:54:19 +0000 (14:54 +0800)]
MLK-11944-1 ARM: dts: disable sii902x due to pin conflict with EPDC

Disable sii902x to avoid pin conflict

Signed-off-by: Robby Cai <r63905@freescale.com>
7 years agoMLK-11800 dts: imx7d-sdb: correct flexcan stby gpio pin
Dong Aisheng [Fri, 30 Oct 2015 09:31:31 +0000 (17:31 +0800)]
MLK-11800 dts: imx7d-sdb: correct flexcan stby gpio pin

According to schematic, the pad used for CAN STBY signal
should be EPDC_DATA14, not GPIO1_IO07. So correct it.
And due to pin is conflict with epdc, so we also update
the imx7d-sdb-epdc.dts.

Reported-by: Peng Fan <Peng.Fan@freescale.com>
Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
(cherry picked from commit 9036478549729580a89db90835ee5c688acbc282)

Conflicts:
arch/arm/boot/dts/imx7d-sdb.dts

7 years agoMLK-11910 mxc: mlb: fix irq unsigned_compare issue
Fugang Duan [Thu, 26 Nov 2015 09:44:25 +0000 (17:44 +0800)]
MLK-11910 mxc: mlb: fix irq unsigned_compare issue

After coverity code check, it tips:
unsigned_compare: This less-than-zero comparison of an unsigned value is never true

Interrupt variable must be signed type.

Signed-off-by: Fugang Duan <B38611@freescale.com>
7 years agoMLK-11908 mfd: MAX17135: don't free i2c device client
Fugang Duan [Thu, 26 Nov 2015 08:31:14 +0000 (16:31 +0800)]
MLK-11908 mfd: MAX17135: don't free i2c device client

i2c device client shouldn't be freed by i2c device driver, there have
problems in below cases:
- one device match to different drivers, the second matched driver will
  cannot access i2c device client if it is freed by the first matched driver.
- one module driver insmod: the first insmod fail free client due to system
  low memory, after kswapd system free pages and has enough free pages, the
  second insmod will cause match failed.

Signed-off-by: Fugang Duan <B38611@freescale.com>
7 years agoMLK-10996 imx: qspi fix ddr delay setting
Peng Fan [Fri, 29 May 2015 01:12:22 +0000 (09:12 +0800)]
MLK-10996 imx: qspi fix ddr delay setting

For i.MX6UL and i.MX7D, ddr delay logic enable bit is changed from i.MX6SX.
If want to enable qspi ddr mode, ddr delay logic should be enabled.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
(cherry picked and merge from commit f28986825a7be1cbf2b5103ea110db28c96e74c7)
Signed-off-by: Han Xu <b45815@freescale.com>
Conflicts:
drivers/mtd/spi-nor/fsl-quadspi.c

7 years agoENGR00318063-14: ARM: imx6sx: set pll2_bus as the default parent of QSPI clock
Shawn Guo [Fri, 27 Jun 2014 08:32:46 +0000 (16:32 +0800)]
ENGR00318063-14: ARM: imx6sx: set pll2_bus as the default parent of QSPI clock

We already know that pll2_bus is the best parent of QSPI clock.  Let's
set it up in clock initialization as the default, so that we can save
those implicit parent switching and rate changing calls from clock
framework.

shawn.guo: cherry-pick commit ecef6a715f1a from imx_3.10.y

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
(cherry picked and merge from commit dd32f1868a7c00c2d69424a14e48989d9c5bf103)
Signed-off-by: Han Xu <b45815@freescale.com>
Conflicts:
arch/arm/mach-imx/clk-imx6sx.c

7 years agoMLK-11940: add two more commands support for qspi
Han Xu [Mon, 23 Nov 2015 15:45:19 +0000 (09:45 -0600)]
MLK-11940: add two more commands support for qspi

add two more commands support for qspi on kernel 4.1, read EVCR and
write EVCR.

Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoENGR00279980 ubi: attach: do not return -EINVAL if the mtd->numeraseregions is 1
Huang Shijie [Wed, 18 Sep 2013 02:17:39 +0000 (10:17 +0800)]
ENGR00279980 ubi: attach: do not return -EINVAL if the mtd->numeraseregions is 1

If the master mtd does not have any slave mtd partitions,
and its numeraseregions is one(only has one erease block), and
we attach the master mtd with : ubiattach -m 0 -d 0

We will meet the error:
-------------------------------------------------------
root@freescale ~$ ubiattach /dev/ubi_ctrl -m 0 -d 0
UBI: attaching mtd0 to ubi0
UBI error: io_init: multiple regions, not implemented
ubiattach: error!: cannot attach mtd0
           error 22 (Invalid argument)
-------------------------------------------------------

In fact, if there is only one "erase block", we should not
prevent the attach.

This patch fixes it.

Signed-off-by: Huang Shijie <b32955@freescale.com>
(cherry picked from commit 361cdc47fc4c4db31c5485560cdabd94f409bd81)
(cherry picked from commit ebee7d74914fad3cf7223af84496811c9d2488a1)

7 years agoMLK-11573: ARM: dts: fix the iomux pin conflict for LPSR mode
Han Xu [Thu, 8 Oct 2015 23:16:02 +0000 (18:16 -0500)]
MLK-11573: ARM: dts: fix the iomux pin conflict for LPSR mode

add the pinctrl-1 for iomux in ecspi device tree to avoid conflict.

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit edacd0568487815ca3a0821c25912133cb6c1731)

7 years agoMLK-11335: mtd: qspi: enalbe LPSR for qspi
Han Xu [Thu, 30 Jul 2015 21:35:52 +0000 (16:35 -0500)]
MLK-11335: mtd: qspi: enalbe LPSR for qspi

The LPSR turns off the power for IOMUX when suspending so restore the
IOMUX when resuming.

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit 906d0c1381e865dc7c96a4bde6fe694f1ce089a9)

7 years agoMLK-11334: ARM: dts: enable qspi IOMUX sleep state for imx7d-12x12-lpddr3-arm2
Han Xu [Thu, 30 Jul 2015 21:33:53 +0000 (16:33 -0500)]
MLK-11334: ARM: dts: enable qspi IOMUX sleep state for imx7d-12x12-lpddr3-arm2

Enable qspi IOMUX sleep state for imx7d-12x12-lpddr3-arm2.

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit 73773c936b0c33e6e01e14c646749dfa3daaedad)

7 years agoMLK-11095: mtd:qspi: clear the DDR_EN bit on 6UL and 7D
Han Xu [Thu, 11 Jun 2015 19:50:47 +0000 (14:50 -0500)]
MLK-11095: mtd:qspi: clear the DDR_EN bit on 6UL and 7D

the obsolete bit DDR_EN on 6UL and 7D should be clear in case other
program set the bit and cause qspi probe fail.

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit d8b51cc358780f68e732522ee9bd6bd578dd6771)

7 years agoMLK-11087: mtd:qspi: support DDR Quad mode for Macronix mx25l51245g
Han Xu [Wed, 10 Jun 2015 22:14:01 +0000 (17:14 -0500)]
MLK-11087: mtd:qspi: support DDR Quad mode for Macronix mx25l51245g

Enable DDR quad mode for Macronix qspi chip mx25l51245g by setting Quad
bit in status register and enabling in dts file.

The LUT for SPINOR_OP_READ_1_4_4_D was initially designed for Spansion
qspi chip, so there is one cycle for "mode" after address and before
dummy. While Macronix qspi chip doesn't have this feature, so we just
take off one cycle in dts file to bypass this problem.

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked and merge from commit e03fdad1c7713a7db70112e00c4ae96848accd34)

7 years agoMLK-11061: ARM:dts: enable ddr quad mode for QSPI on 6UL ARM2 and 7D ARM2
Han Xu [Fri, 5 Jun 2015 20:09:18 +0000 (15:09 -0500)]
MLK-11061: ARM:dts: enable ddr quad mode for QSPI on 6UL ARM2 and 7D ARM2

Enable DDR Quad mode for QSPI on 6UL ARM2 and 7D ARM2 board to improve
the performance.

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked and merge from commit ba6c2f00b5b000996bf8acbbd62c30d8f8f61182)

7 years agoMLK-10868: ARM:dts: support 4 qspi chips on imx7d-12x12-lpddr3-arm2
Han Xu [Fri, 8 May 2015 16:00:18 +0000 (11:00 -0500)]
MLK-10868: ARM:dts: support 4 qspi chips on imx7d-12x12-lpddr3-arm2

enabled 4 qspi chips on imx7d-12x12-lpddr3-arm2 board in dts

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit a4e10bf5e94d883c06f41b2c61f80ce23946612b)

7 years agoMLK-10565-2: mtd: qspi: Support QSPI on i.MX7D SDB
Han Xu [Thu, 2 Apr 2015 20:01:41 +0000 (15:01 -0500)]
MLK-10565-2: mtd: qspi: Support QSPI on i.MX7D SDB

Add a new entry for MX25L51245G QSPI NOR chip.

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit 9f3f15ad1b0461d6b638c34599dd74d9c43fa01f)

7 years agoMLK-10565-1: ARM:dts: new dts for QSPI on i.MX7D SDB
Han Xu [Thu, 2 Apr 2015 19:58:29 +0000 (14:58 -0500)]
MLK-10565-1: ARM:dts: new dts for QSPI on i.MX7D SDB

Add a new dts file for QSPI on i.MX7D SDB, also changed dtb file order
to alphabetical order.

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked and merge from commit b24b9f69616f3d603f70740543e83ea71585c0ea)

7 years agoMLK-10521-1: ARM: dts: add new dts to support NAND on i.MX7D
Han Xu [Tue, 31 Mar 2015 19:47:19 +0000 (14:47 -0500)]
MLK-10521-1: ARM: dts: add new dts to support NAND on i.MX7D

Add new dts file for NAND on i.MX7D

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked and merge from commit 1464059618af514f211343d9f1cdd94999be705e)

7 years agoMLK-10497 ARM: dts: supported spi-nor on imx6qp sabreauto
Han Xu [Fri, 27 Mar 2015 16:23:08 +0000 (11:23 -0500)]
MLK-10497 ARM: dts: supported spi-nor on imx6qp sabreauto

add new dts to support spi-nor on imx6qp sabreauto

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked and merge from commit edb500d09c08effce28f8c45490372f38b037815)

7 years agoMLK-10205-1 ARM: dts: Create new dts for QSPI on i.MX7D
Han Xu [Wed, 28 Jan 2015 23:07:19 +0000 (07:07 +0800)]
MLK-10205-1 ARM: dts: Create new dts for QSPI on i.MX7D

create a new dts file for QSPI verification on i.MX7D

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked and merge from commit 2888c54189b6126519cf4c05094891980f321917)

7 years agoMLK-10483: ARM: dts: add gpmi weim support for imx6qp
Han Xu [Thu, 12 Mar 2015 23:11:52 +0000 (18:11 -0500)]
MLK-10483: ARM: dts: add gpmi weim support for imx6qp

dts for gpmi nand and weim nor support for imx6qp sabreauto

Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked and merge from commit adb9c42a8be0bd148069540b089d2e762bec05e9)

7 years agoMLK-10189: ARM:dts: disable gpmi nand module in imx6qdl sabreauto dts
Allen Xu [Thu, 29 Jan 2015 17:57:44 +0000 (01:57 +0800)]
MLK-10189: ARM:dts: disable gpmi nand module in imx6qdl sabreauto dts

disable gpmi nand module in imx6qdl default dts since it conflicts with
uart3

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked from commit 54105e0ad2a4e30c5c048b5b9b233e49b4fba47d)

7 years agoMLK-9976: ARM: dts: NAND BBT inconsistency causes UBIFS randomly mount failed
Allen Xu [Tue, 9 Dec 2014 22:12:00 +0000 (06:12 +0800)]
MLK-9976: ARM: dts: NAND BBT inconsistency causes UBIFS randomly mount failed

NAND scans the bad blocks during kernel boots up, which invokes the
gpmi_ecc_read_oob function to check the badblock mark for each block. In
this function the oob data was raw read from NAND chip without ECC, so
it hardly to guarantee the consistency of the data considering the
possible bitflips. It found that in some MLC NAND the oob data changed
and consequently the BBT changed in different power cycles. This issue
may cause the UBIFS mount failed.

To fix this issue, add "nand_on_flash_bbt" option in dts to store the BBT
in NAND flash. On the first time kernel boot up, all bad blocks and
probably some fake bad block would be recognized and be recorded in
on-nand bad block table. From the second time boot, kernel will read BBT
from NAND Flash rather than calling gpmi_ecc_read_oob function to check
bad block.

No bad block would be missed when create BBT since the probability that
16bit bad block mark filps from 0x00 to 0xFF is extremely low.

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked and merge from commit d957353768a1b6d39b340b9d10b22fc42b0aa8e2)
(cherry picked from commit 7b7d3d683a24b23f33d6c08874f31fe50ef2fc76)

7 years agoMLK-11939: ARM: dts: Add ddrsmp to device tree for i.mx6sx sabreauto and sdb board
Han Xu [Fri, 13 Nov 2015 16:48:22 +0000 (10:48 -0600)]
MLK-11939: ARM: dts: Add ddrsmp to device tree for i.mx6sx sabreauto and sdb board

Add ddrsmp parameter to device tree for i.MX6SX Sabreauto/Sabresd board.

DDRSMP value:
0 ---- i.MX6SX Sabresd board (RevB and RevA)
2 ---- i.MX6SX Sabreauto board

The Sabresd RevA board also needs to reduce clock to 29Mhz according to
the Spansion spec.

Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoMLK-9920 mtd: fsl-quadspi: Add ddrsmp parameter to device tree
Ye.Li [Mon, 1 Dec 2014 09:28:47 +0000 (17:28 +0800)]
MLK-9920 mtd: fsl-quadspi: Add ddrsmp parameter to device tree

Since QSPI internal DDR sample point is relevant with board layout,
we can't use same value for all boards. Add ddrsmp parameter to device
tree for different i.MX6SX board.

Signed-off-by: Ye.Li <B37916@freescale.com>
(cherry picked and merge from commit c9115cc22d836b5b980ca20932a005ea61b20082)
(cherry picked from commit b0d9d9ce804247ccb2842bf53d2b32f14eed0309)

7 years agoMLK-11938: ARM: dts: add gpmi nand and qspi support on i.mx6sx sabreauto
Han Xu [Fri, 13 Nov 2015 16:29:35 +0000 (10:29 -0600)]
MLK-11938: ARM: dts: add gpmi nand and qspi support on i.mx6sx sabreauto

supports gpmi nand and qspi on i.mx6sx sabreauto platform.

Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoENGR00333049 ARM: dts: add dts file for ecspi on imx6q sabreauto
Allen Xu [Wed, 24 Sep 2014 20:01:57 +0000 (15:01 -0500)]
ENGR00333049 ARM: dts: add dts file for ecspi on imx6q sabreauto

add new dts file to support ecspi on imx6q sabreauto board.

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked and merge from commit ff87b56022d1d63003eff79a30bedf33271781fa)

7 years agoENGR00333048 ARM: dts: add new dts for gpmi and weim on imx6q sabreauto
Allen Xu [Wed, 24 Sep 2014 20:00:18 +0000 (15:00 -0500)]
ENGR00333048 ARM: dts: add new dts for gpmi and weim on imx6q sabreauto

new dts file to support gpmi/weim on imx6q sabreauto board.

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked and merge from commit d51a5439d7b996a26e842c8d4034668e4c7959ab)

7 years agoENGR00333047 ARM: dts: add new dts for ecspi on imx6dl sabreauto
Allen Xu [Wed, 24 Sep 2014 19:57:27 +0000 (14:57 -0500)]
ENGR00333047 ARM: dts: add new dts for ecspi on imx6dl sabreauto

new dts file to support ecspi on imx6dl sabreauto board.

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked and merge from commit 243e501dbec2b62148c6a470226abced76438eac)

7 years agoENGR00333046 ARM: dts: add new dts for gpmi and weim on imx6dl sabreauto
Allen Xu [Wed, 24 Sep 2014 19:54:11 +0000 (14:54 -0500)]
ENGR00333046 ARM: dts: add new dts for gpmi and weim on imx6dl sabreauto

dts file to support gpmi/weim on imx6dl sabreauto board.

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked and merge from commit 5a7a430325e2c104609c4e3d34d4d88dc95cc50e)

7 years agoMLK-9909 ARM: dts: add imx6sx sdb revA QSPI legacy support
Allen Xu [Sat, 22 Nov 2014 19:15:19 +0000 (13:15 -0600)]
MLK-9909 ARM: dts: add imx6sx sdb revA QSPI legacy support

add sdb revA board QSPI legacy support for Spansion QSPI chip.

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked and merge from commit 3fd143ae78007e58d1dc45bc829b462a12b93cd2)
(cherry picked from commit 8317ae5998a20b3303a2a9209c29ab5674e09dc3)

7 years agoMLK-9851 mtd: Change the mtd device driver build order for mfgtool
Allen Xu [Fri, 14 Nov 2014 16:36:07 +0000 (00:36 +0800)]
MLK-9851 mtd: Change the mtd device driver build order for mfgtool

i.MX6SX Sabreauto board enabled both NAND and QSPI1 drivrers, and by default,
NAND driver built first in kernel compiling, and it would be load first when
Kernel brought up.

Since we could not guarantee all boards mounted NAND chips, we wish the Kernel
could load QSPI driver first, when system mapped QSPI and NAND, the mtd device
index won't change dynamically, otherwise, the mfgtool may write images to the
inappropriate storage devices.

The code change moved the SPI driver at the prior position of NAND driver in
Makefile to solve this issue.

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked from commit 3d2d5724f7a2968b40c2ea0a70c09a3214da1496)
(cherry picked from commit b03ee70fdd1dfaa3be61817eb49d01d49cb107d3)

7 years agoMLK-9943 ARM: dts: add new dts for nand support for 19x19 arm2
Allen Xu [Tue, 2 Dec 2014 19:23:39 +0000 (03:23 +0800)]
MLK-9943 ARM: dts: add new dts for nand support for 19x19 arm2

Add new dts file to support NAND for imx6sx 19x19 arm2 board.

Signed-off-by: Allen Xu <b45815@freescale.com>
(cherry picked and merge from commit bdc522d1773156f03b74d4711a60f81824184b40)

7 years agoENGR00318895-12 mtd: spi-nor: add DDR quad read flag for s25fl128s
Huang Shijie [Wed, 18 Jun 2014 02:01:50 +0000 (10:01 +0800)]
ENGR00318895-12 mtd: spi-nor: add DDR quad read flag for s25fl128s

This patch adds the DDR quad read flag for s25fl128s.

Signed-off-by: Huang Shijie <b32955@freescale.com>
(cherry picked from commit 7346749f8f1083943431063bdd49ea9429a96941)
Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoENGR00318895-11 mtd: fsl-quadspi: add DDR quad read support for Micron
Huang Shijie [Fri, 25 Apr 2014 05:51:15 +0000 (13:51 +0800)]
ENGR00318895-11 mtd: fsl-quadspi: add DDR quad read support for Micron

Add DDR quad read opcode and LUT sequence for Micron N25Q256A.

Signed-off-by: Huang Shijie <b32955@freescale.com>
(cherry picked from commit dc2a7430557dd3e102b56fdd6b6d0fe3b1e3e461)

7 years agoMLK-11937: mtd: spi-nor: add DDR quad read support for Micron
Han Xu [Fri, 25 Apr 2014 05:40:19 +0000 (13:40 +0800)]
MLK-11937: mtd: spi-nor: add DDR quad read support for Micron

This patch adds the DDR(or DTR) quad read support for the Micron
SPI NOR flash.

Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoENGR00318895-9: mtd: spi-nor: add more read transfer flags for n25q256a
Han Xu [Thu, 5 Nov 2015 17:04:33 +0000 (11:04 -0600)]
ENGR00318895-9: mtd: spi-nor: add more read transfer flags for n25q256a

The NOR flash can supports dual/quad/ddr-quad read.
Add more flags for these read transfers.

From the datasheet, the chip support the 64K sector erase operation.
So remove the SECT_4K for the chip which makes the flash_erase faster.

Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoMLK-11936: mtd: fsl-quadspi: add the DDR quad read support for Spansion NOR
Huang Shijie [Wed, 23 Apr 2014 02:20:35 +0000 (10:20 +0800)]
MLK-11936: mtd: fsl-quadspi: add the DDR quad read support for Spansion NOR

Add the DDR quad read support for the fsl-quadspi driver.

Check the "spi-nor,ddr-quad-read-dummy" DT property, if the DT node is exit,
it means we could enable the DDR quad read.

 (1) Test this patch with imx6sx-sdb board (Spansion s25fl128s)
     The clock rate is 66MHz.

 (2) The information of NOR flash:
     -----------------------------------------------
     root@imx6qdlsolo:~# mtdinfo /dev/mtd0
     mtd0
     Name:                           21e4000.qspi
     Type:                           nor
     Eraseblock size:                65536 bytes, 64.0 KiB
     Amount of eraseblocks:          256 (16777216 bytes, 16.0 MiB)
     Minimum input/output unit size: 1 byte
     Sub-page size:                  1 byte
     Character device major/minor:   90:0
     Bad blocks are allowed:         false
     Device is writable:             true
     -----------------------------------------------

 (3) Test this patch set with UBIFS & bonnie++:
     -----------------------------------------------
ubiattach /dev/ubi_ctrl -m 0
ubimkvol /dev/ubi0 -N test -m
mount -t ubifs ubi0:test tmp
bonnie++ -d tmp -u 0 -s 10 -r 5
     -----------------------------------------------

 (4) Test this patch with mtd_speedtest.ko

     root@imx6qdlsolo:~# insmod mtd_speedtest.ko dev=0
     =================================================
     mtd_speedtest: MTD device: 0
     mtd_speedtest: not NAND flash, assume page size is 512 bytes.
     mtd_speedtest: MTD device size 16777216, eraseblock size 65536, page size 512,
                    count of eraseblocks 256, pages per eraseblock 128, OOB size 0
     mtd_speedtest: testing eraseblock write speed
     mtd_speedtest: eraseblock write speed is 665 KiB/s
     mtd_speedtest: testing eraseblock read speed
     mtd_speedtest: eraseblock read speed is 49799 KiB/s
     mtd_speedtest: testing page write speed
     mtd_speedtest: page write speed is 662 KiB/s
     mtd_speedtest: testing page read speed
     mtd_speedtest: page read speed is 24236 KiB/s
     mtd_speedtest: testing 2 page write speed
     mtd_speedtest: 2 page write speed is 657 KiB/s
     mtd_speedtest: testing 2 page read speed
     mtd_speedtest: 2 page read speed is 32637 KiB/s
     mtd_speedtest: Testing erase speed
     mtd_speedtest: erase speed is 518 KiB/s
     mtd_speedtest: Testing 2x multi-block erase speed
     mtd_speedtest: 2x multi-block erase speed is 506 KiB/s
     mtd_speedtest: Testing 4x multi-block erase speed
     mtd_speedtest: 4x multi-block erase speed is 503 KiB/s
     mtd_speedtest: Testing 8x multi-block erase speed
     mtd_speedtest: 8x multi-block erase speed is 501 KiB/s
     mtd_speedtest: Testing 16x multi-block erase speed
     mtd_speedtest: 16x multi-block erase speed is 498 KiB/s
     mtd_speedtest: Testing 32x multi-block erase speed
     mtd_speedtest: 32x multi-block erase speed is 496 KiB/s
     mtd_speedtest: Testing 64x multi-block erase speed
     mtd_speedtest: 64x multi-block erase speed is 495 KiB/s
     mtd_speedtest: finished
     =================================================

  (5) Conclusion:
     The DDR quad read could be 49799 KiB/s.

Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Han Xu <b45815@freescale.com>
7 years agoENGR00318895-7 mtd: fsl-quadspi: use the information stored in spi-nor{}
Huang Shijie [Tue, 22 Apr 2014 09:47:14 +0000 (17:47 +0800)]
ENGR00318895-7 mtd: fsl-quadspi: use the information stored in spi-nor{}

We can get the read/write/erase opcode from the spi nor framework now.
What's more is that we can get the correct dummy cycles.

This patch uses the information stored in the spi_nor{} to remove the
hardcode in the fsl_qspi_init_lut().

Signed-off-by: Huang Shijie <b32955@freescale.com>
(cherry picked from commit 3a9f46be2a6d358924d69757858ec816764222d4)

7 years agoENGR00318895-6 Documentation: fsl-quadspi: update the document
Huang Shijie [Wed, 23 Apr 2014 03:59:26 +0000 (11:59 +0800)]
ENGR00318895-6 Documentation: fsl-quadspi: update the document

The patch updates the document by adding more information to describe the
DT proporties used by the Freescale Quadspi driver and the childs nodes.

For the child node for SPI NOR flash, we add the required property
("spi-max-frequency"), and refer to spi-nor-flash.txt for the optional
properties.

Signed-off-by: Huang Shijie <b32955@freescale.com>
(cherry picked from commit d7b296f51eb077b0c77580ad63ffd69ce722bf6c)