linux.git
5 years agoMLK-21940-7: ASoC: imx-ak5558: Support EASRC in this sound card
Shengjiu Wang [Tue, 4 Jun 2019 10:18:45 +0000 (18:18 +0800)]
MLK-21940-7: ASoC: imx-ak5558: Support EASRC in this sound card

Support EASRC in this sound card with FE-BE structure

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
5 years agoMLK-21940-6: ASoC: imx-wm8524: Support EASRC in this sound card
Shengjiu Wang [Mon, 3 Jun 2019 02:32:38 +0000 (10:32 +0800)]
MLK-21940-6: ASoC: imx-wm8524: Support EASRC in this sound card

Support EASRC in this sound card with FE-BE structure

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
5 years agoMLK-21940-5: ASoC: wm8524: remove constrain for FE-BE
Shengjiu Wang [Mon, 3 Jun 2019 02:32:28 +0000 (10:32 +0800)]
MLK-21940-5: ASoC: wm8524: remove constrain for FE-BE

The constraint is not needed for back end bistream for
the sample rate is fixed by dts and the constraint
is propagate to front end bistream for they share same
snd_soc_pcm_runtime.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
5 years agoMLK-21940-4: ASoC: fsl_easrc: Support the m2m function
Shengjiu Wang [Wed, 5 Jun 2019 02:46:25 +0000 (10:46 +0800)]
MLK-21940-4: ASoC: fsl_easrc: Support the m2m function

EASRC M2M function is not able to put upstream due to its self-designed
ioctl protocol. So make a single patch for it and make it merge
into P2P driver as simply as possible.

The patch can only be maintained internally unless some one designs a
new protocol or implement the originally protocol by using some common
approach provided by Linux Kernel.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
5 years agoMLK-21940-3: ASoC: fsl_easrc: Add support new asrc module
Shengjiu Wang [Wed, 5 Jun 2019 02:39:44 +0000 (10:39 +0800)]
MLK-21940-3: ASoC: fsl_easrc: Add support new asrc module

EASRC (Enhanced ASRC) is a new IP module found on i.MX8 MN. It is
different from old ASRC module.

The primary features for the EASRC are as follows:
1. 4 Contexts - groups of channels with an independent time base
2. Fully independent and concurrent context control
3. Simultaneous processing of up to 32 audio channels
4. Programmable filter charachteristics for each context
5. 32, 24, 20, and 16-bit fixed point audio sample support
6. 32-bit floating point audio sample support
7. 8kHz to 384kHz sample rate
8. 1/16 to 8x sample rate conversion ratio
9. Software control of fine conversion ratio

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
5 years agoMLK-21940-2: dt-bindings: sound: Add document for fsl,easrc
Shengjiu Wang [Wed, 5 Jun 2019 02:37:31 +0000 (10:37 +0800)]
MLK-21940-2: dt-bindings: sound: Add document for fsl,easrc

EASRC (Enhanced ASRC) is a new IP module found on i.MX8 MN. It is
different from old ASRC module.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
5 years agoMLK-21697-2: ASoC: hdmi-codec: Support mono channel
Shengjiu Wang [Fri, 19 Jul 2019 08:01:31 +0000 (16:01 +0800)]
MLK-21697-2: ASoC: hdmi-codec: Support mono channel

Support mono channel for HDMI

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
5 years agoMLK-21697-2: ASoC: imx-sii902x: Remove the operation for sii902x
Shengjiu Wang [Fri, 19 Jul 2019 07:59:36 +0000 (15:59 +0800)]
MLK-21697-2: ASoC: imx-sii902x: Remove the operation for sii902x

Move the operation for sii902x module to mxsfb_sii902x_audio.c
platform driver. change codec from dummy to hdmi-codec

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
5 years agoMLK-21697-1: video: fb: sii902x: Register audio platform driver
Shengjiu Wang [Fri, 19 Jul 2019 07:51:16 +0000 (15:51 +0800)]
MLK-21697-1: video: fb: sii902x: Register audio platform driver

Register audio platform driver, that audio can utilize the existing
hdmi-codec driver, which can help to add constraint from EDID.

Other benifit is to move the i2c operation from audio machine driver
to this platform driver, original handling is not formal

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
5 years agoMLK-20380: i2c: xenfront: fix i2cdetect bug
Flynn xu [Thu, 15 Nov 2018 08:30:24 +0000 (16:30 +0800)]
MLK-20380: i2c: xenfront: fix i2cdetect bug

The bug is when using i2cdetect in DomU, some i2c device will be
skiped, fixed this through add I2C_FUNC_SMBUS_QUICK functionality.

Signed-off-by: Flynn xu <flynn.xu@nxp.com>
(cherry picked from commit b0aa11bdc74e6cb15b18dc704d554364da1fe39a)

5 years agoMLK-20349 i2c: xen front: fix build warning
Peng Fan [Tue, 13 Nov 2018 10:19:01 +0000 (18:19 +0800)]
MLK-20349 i2c: xen front: fix build warning

Fixes build warning introduced by
90e818a0abcc("MLK-20342 i2c: xen-i2cback/front: Add i2c_smbus interface")

Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit 0c3f35ec9f5a78c6706eb0f58b96cc2524a6ab2a)

5 years agoMLK-20342 i2c: xen-i2cback/front: Add i2c_smbus interface
Flynn xu [Tue, 13 Nov 2018 09:46:50 +0000 (17:46 +0800)]
MLK-20342 i2c: xen-i2cback/front: Add i2c_smbus interface

Add smbus_xfer interface in xen-i2cback/front driver.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Flynn xu <flynn.xu@nxp.com>
(cherry picked from commit 5344f6c8efe9cabe72fbf6bd12fdb393a45a64c0)

5 years agoMLK-20319 i2c:xen-i2cfront: fix uninitalized variable
Flynn xu [Mon, 12 Nov 2018 05:43:56 +0000 (13:43 +0800)]
MLK-20319 i2c:xen-i2cfront: fix uninitalized variable

Fix uninitalized variable

Signed-off-by: Flynn xu <flynn.xu@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit a33b23fe75d79ef6f72faa6c94ac6bda6fab3919)

5 years agoMLK-20196-2 i2c: xen-i2cback: fix uninitalized variables
Peng Fan [Mon, 5 Nov 2018 08:29:46 +0000 (16:29 +0800)]
MLK-20196-2 i2c: xen-i2cback: fix uninitalized variables

Fix Coverity id 5186949 5187047, uninitialized variables.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit 3bd3e95a644c0f07479c471f3d8f6d98e99343e4)

5 years agoMLK-20196-1 i2c: xen-i2cback: fix num_msg usage
Peng Fan [Mon, 5 Nov 2018 08:57:34 +0000 (16:57 +0800)]
MLK-20196-1 i2c: xen-i2cback: fix num_msg usage

When req.num_msg is less than 2, also need initialze num_msg.
Also modify the if/else if to use num_msg

Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit 0ce331ed4a1dbbe8c1be4ee69e0f4d8f46c8fc53)

5 years agoMLK-21941: imx-hdp-cec: change CEC_TX_STATUS_ERROR to NACK
Shengjiu Wang [Thu, 18 Jul 2019 02:04:06 +0000 (10:04 +0800)]
MLK-21941: imx-hdp-cec: change CEC_TX_STATUS_ERROR to NACK

With commit cd7b7f509cd0 ("media: cec: check for non-OK/NACK
conditions while claiming a LA")

When set the LA, the cec stack try to transmit the message "0x55"
(5 is LA) before configure the LA, and check the return value
But our cec driver alway return ERROR, which cause the setting of
LA failure, so change the return value to be NACK.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
5 years agoMLK-22252 phy: mixel-lvds-combo: Configure CO divider to meet fvco range requirement
Liu Ying [Wed, 17 Jul 2019 07:08:07 +0000 (15:08 +0800)]
MLK-22252 phy: mixel-lvds-combo: Configure CO divider to meet fvco range requirement

As the below diagram shows, to achieve a particular serial clock rate,
we should choose an appropriate CO divider value(1/2/4/8) so that PLL
VCO frequency(fvco) is in specified range(640MHz ~ 1500MHz).

 ---------  640MHz ~ 1500MHz   ------------      --------------
| PLL VCO | ----------------> | CO divider | -> | serial clock |
 ---------                     ------------      --------------
                               1/2/4/8 div      7 * phy_clk_rate

This patch configures CO divider to be appropriate value to meet the fvco
range requirement.  This may address display flicker issue seen on some
SoC samples.

Signed-off-by: Liu Ying <victor.liu@nxp.com>
5 years agoMMFMWK-8572 VPU Decoder: not add frm_total_num if input data not including frame...
Shijie Qin [Wed, 17 Jul 2019 08:49:06 +0000 (16:49 +0800)]
MMFMWK-8572 VPU Decoder: not add frm_total_num if input data not including frame data

Firmware use the gap between input frames and parsed frames compare with
parse_threshold, if input data not including frame data shall not add
frm_total_num.
verify input and parsed frames count when finished

Signed-off-by: Shijie Qin <shijie.qin@nxp.com>
Reviewed-by: Zhou Peng <eagle.zhou@nxp.com>
Reviewed-by: ming_qian <ming.qian@nxp.com>
5 years agoMLK-17089-7: ASoC: fsl_mqs: support suspend & resume for imx8
Shengjiu Wang [Wed, 6 Dec 2017 03:30:02 +0000 (11:30 +0800)]
MLK-17089-7: ASoC: fsl_mqs: support suspend & resume for imx8

Base on latest power management design in MLK-17074, every driver
need to enter runtime suspend state in suspend, so the driver should
call the pm_runtime_force_suspend in suspend. with this implementation
the suspend function almost same as runtime suspend function. so remove
the suspend function, just use pm_runtime_force_suspend instead.

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

5 years agoMLK-17034-5: ASoC: fsl_mqs: Move clock operation to pm runtime function
Shengjiu Wang [Wed, 29 Nov 2017 07:32:21 +0000 (15:32 +0800)]
MLK-17034-5: ASoC: fsl_mqs: Move clock operation to pm runtime function

In imx8 when systerm enter suspend state, the power of subsystem will be
off, The clock enable state will be lost after resume, but the runtime
resume function will be called after resume by pm, so need to move clock
enablement to runtime resume and clock disablement to runtime suspend.
Then after resume the clock enable state can be recovered.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
5 years agoMGS-5035-3 [#imx-1597] enable dual-GPU frequency scaling
Xianzhong [Mon, 15 Jul 2019 19:04:51 +0000 (03:04 +0800)]
MGS-5035-3 [#imx-1597] enable dual-GPU frequency scaling

current solution only enable GPU frequency scaling on GPU0,
does not change GPU1, cause problem for device-cooling.

fix platform driver to enable dual-GPU frequency scaling.

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
5 years agoMGS-5035-2 [#ccc] add frequency scaling in device node
Xianzhong [Mon, 15 Jul 2019 17:37:26 +0000 (01:37 +0800)]
MGS-5035-2 [#ccc] add frequency scaling in device node

cat /sys/bus/platform/drivers/galcore/gpu3DClockScale

echo 16 > /sys/bus/platform/drivers/galcore/gpu3DClockScale

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
5 years agoMGS-5035-1 [#ccc] enable shader clock frequency scaling
Xianzhong [Mon, 15 Jul 2019 15:26:14 +0000 (23:26 +0800)]
MGS-5035-1 [#ccc] enable shader clock frequency scaling

currently GPU core clock frequency scaling is enabled,
the scaled clock cannot change GPU shader frequency.

enable shader frequency scaling with below setting:

  fscaleSh_clkSh = clkSh[7 :1 ];
  fscaleShLoad_clkSh = clkSh [0 ];
  enableAutoSh_clkSh = clkSh[16 ];
  disableAuto_clkSh = clkSh[17 ];

trick: write 0x10C to set new frequency scaling,
reset 0x10C to lock-up it before next change.

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
5 years agoMLK-21980: ASoC: imx-pcm-rpmsg: add debugfs_prefix for platform
Shengjiu Wang [Tue, 16 Jul 2019 10:55:17 +0000 (18:55 +0800)]
MLK-21980: ASoC: imx-pcm-rpmsg: add debugfs_prefix for platform

There is warning log after switching to component in driver:

[    2.135785] fsl-rpmsg-i2s rpmsg-i2s: ASoC: Failed to create component debugfs directory

The reason is there is two component attached with one device,
the components' name are same, then creating debugfs for second
component failed.

This patch is to add debugfs_prefix for platform component to fix
the warning issue.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
5 years agoMLK-22265 dt-bindings: pinctrl: imx8mm: Update head file
Anson Huang [Tue, 16 Jul 2019 01:56:48 +0000 (09:56 +0800)]
MLK-22265 dt-bindings: pinctrl: imx8mm: Update head file

Update i.MX8MM pinctrl head file according to reference manual
Rev.1, 03/2019.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Jacky Bai <ping.bai@nxp.com>
(cherry picked from commit 1deb822528206006de8e466c01ea8e782c51b0eb)

5 years agoMLK-22278:VPU Decoder: fix driver may don't alloc frames to firmware
ming_qian [Tue, 16 Jul 2019 05:38:00 +0000 (13:38 +0800)]
MLK-22278:VPU Decoder: fix driver may don't alloc frames to firmware

firmware may release frame buffer after
it has been queuen again.
so when qbuf, there may be no frames.
after release the frame, we can alloc it to frame again.

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-22022: ASoC: imx-si476x: Fix Failure at capture
Shengjiu Wang [Tue, 16 Jul 2019 05:31:44 +0000 (13:31 +0800)]
MLK-22022: ASoC: imx-si476x: Fix Failure at capture

With command: arecord -D hw:$num,0 -f dat | aplay -D hw:0,0 -f dat &

There is error:
fsl-ssi-dai 202c000.ssi: invalid slot width: 32
fsl-ssi-dai 202c000.ssi: failed to set dai tdm slot
imx-tuner-si476x sound-fm: ASoC: machine hw_params failed: -22

The reason is that slot width 32 is not valid and and set_sysclk
api is removed by commit b0a7043d5c2c ("ASoC: fsl_ssi: Caculate bit clock
rate using slot number and width").

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
5 years agoMLK-21773: media: m2m: add YUV24 support for ISI m2m driver
Guoniu.Zhou [Fri, 5 Jul 2019 07:58:16 +0000 (15:58 +0800)]
MLK-21773: media: m2m: add YUV24 support for ISI m2m driver

Add YUV24 format support for ISI memory to memory function and
remove YUV32 which is not supported by ISI.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit 94805a5a40cf9851cc92c320810e7ec35911fb16)

5 years agoMLK-21775-4: ASoC: fsl_micfil: synchronize HWVAD enable/disable
Viorel Suman [Fri, 12 Jul 2019 09:07:42 +0000 (12:07 +0300)]
MLK-21775-4: ASoC: fsl_micfil: synchronize HWVAD enable/disable

HWVAD may be disabled from different context - from userspace
via SYSFS interface, and from VAD interrupt context on VAD event
detection. Synchronize HVWAD enable/disable in order to get a
proper HWVAD state after each operation.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
5 years agoMLK-21775-3: ASoC: fsl_micfil: prepare for atomic context
Viorel Suman [Fri, 12 Jul 2019 08:46:26 +0000 (11:46 +0300)]
MLK-21775-3: ASoC: fsl_micfil: prepare for atomic context

Replace "sleep" calls with corresponding "delay" equivalents
in order to prepare the code for running in atomic context.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
5 years agoMLK-21775-2: ASoC: fsl_micfil: fix error handling in enable_hwvad
Viorel Suman [Fri, 12 Jul 2019 08:54:03 +0000 (11:54 +0300)]
MLK-21775-2: ASoC: fsl_micfil: fix error handling in enable_hwvad

The HWVAD_OFF state must be restored and device put back
in runtime_suspend in case if fsl_set_clock_params, fsl_micfil_reset
and init_hwvad calls return an error.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
5 years agoMLK-21775-1: ASoC: fsl_micfil: improve error logging messages
Viorel Suman [Fri, 12 Jul 2019 09:04:03 +0000 (12:04 +0300)]
MLK-21775-1: ASoC: fsl_micfil: improve error logging messages

Improve hwvad enable/disable related error logging messages.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
5 years agoMLK-22257: VPU Decoder: clear pending cmd if cmd is timeout
ming_qian [Fri, 12 Jul 2019 07:24:31 +0000 (15:24 +0800)]
MLK-22257: VPU Decoder: clear pending cmd if cmd is timeout

if cmd is timeout, driver will set hang_status,
if driver doesn't clear the pending cmd who is timeout,
driver will prevent the next cmd to execute.

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-22112-3 media: mipi_csi: replace reset flow for phy
Robby Cai [Fri, 14 Jun 2019 05:52:56 +0000 (13:52 +0800)]
MLK-22112-3 media: mipi_csi: replace reset flow for phy

After dispmix reset driver has been introduced, use reset control framework
to do the PHY reset for mipi csi.

BuildInfo:
 - ATF fecb1ef

Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 2f6744d6ba2045b51846fe6b8b280b854a12c475)

5 years agoMLK-22112-2 arm64: dts: define resets property for mipi csi
Robby Cai [Fri, 14 Jun 2019 05:51:20 +0000 (13:51 +0800)]
MLK-22112-2 arm64: dts: define resets property for mipi csi

The dispmix-reset device can be used to control MIPI CSI PHY reset.
Define 'resets' property for it to replace 'dispmix_gpr' usage.

Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 6a1711de8b1c79f87a7b6ffd592988c916a53202)

5 years agoMLK-22112-1 arm64: dts: imx8mm: decrease the iomem range for csi bridge
Robby Cai [Fri, 14 Jun 2019 02:19:55 +0000 (10:19 +0800)]
MLK-22112-1 arm64: dts: imx8mm: decrease the iomem range for csi bridge

it's conflicted with dispmix-reset device and will meet the following error.

[    1.630523] mx6s-csi 32e20000.csi1_bridge: can't request region for resource [mem 0x32e20000-0x32e2ffff]

decrease the range to avoid the conflict.

Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit b0e530f7598e6bc315e68adff310e9f7f5a452d9)

5 years agoMLK-22250: VPU Decoder: get seq info from event data instead of rpc
ming_qian [Thu, 11 Jul 2019 01:31:59 +0000 (09:31 +0800)]
MLK-22250: VPU Decoder: get seq info from event data instead of rpc
memory

There is rick getting seq info from rpc
It is also compatible with previous practices

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-22218 arm64: imx8qm: configure Open Drain for SIM_IO pin
Joakim Zhang [Fri, 5 Jul 2019 04:02:00 +0000 (12:02 +0800)]
MLK-22218 arm64: imx8qm: configure Open Drain for SIM_IO pin

Configure Open Drain for SIM_IO pin. SIM_IO should be configured to Open
Drain and Pull Up.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22217 mxc: emvsim: add value adjustment for cwt/bwt timer
Joakim Zhang [Sat, 1 Jun 2019 02:40:33 +0000 (10:40 +0800)]
MLK-22217 mxc: emvsim: add value adjustment for cwt/bwt timer

Add value adjustment for cwt/bwt timer, otherwise it will fail with
ultimate cwt/bwt value.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22216 mxc: emvsim: last character need be transmitted separately with no guard...
Joakim Zhang [Sat, 22 Jun 2019 07:07:41 +0000 (15:07 +0800)]
MLK-22216 mxc: emvsim: last character need be transmitted separately with no guard time

It can't receive when transmitting on EMVSIM IP. ICC will send response
quickly when Terminal transmits last character with guard time. If the
response came to Terminal before the guard time expired, the Terminal
would not receive the respone. So should transmit last character with no
guard time.

This patch intends to fix the communication failure when setting guard
time.

This will cause about 1 ETU delay before transmitting last character
(according to timing measured), but it does not matter.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22215 mxc: emvsim: correct irq mask and clear irq status before receiving
Joakim Zhang [Thu, 23 May 2019 04:08:17 +0000 (12:08 +0800)]
MLK-22215 mxc: emvsim: correct irq mask and clear irq status before receiving

Just clean up the code and normalize the code.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22214 mxc: emvsim: clean up the code in ATR stage
Joakim Zhang [Thu, 23 May 2019 01:49:15 +0000 (09:49 +0800)]
MLK-22214 mxc: emvsim: clean up the code in ATR stage

Clean up the code in ATR stage.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22213 mxc: emvsim: read TS character before updating value of GPCNT1
Joakim Zhang [Thu, 23 May 2019 01:17:47 +0000 (09:17 +0800)]
MLK-22213 mxc: emvsim: read TS character before updating value of GPCNT1

Should read TS character before updating value of GPCNT1, because TS
character will also cost 12 etus.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22211 mxc: emvsim: should not clear PEF/FEF flag in irq handler
Joakim Zhang [Tue, 4 Jun 2019 01:41:46 +0000 (09:41 +0800)]
MLK-22211 mxc: emvsim: should not clear PEF/FEF flag in irq handler

Shouldn't clear PEF/FEF flag in irq handler as they are just a flag which
can't trigger interrupt. And they will be check later in irq handler.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22210 mxc: emvsim: enable ICM mode
Joakim Zhang [Sat, 1 Jun 2019 06:19:51 +0000 (14:19 +0800)]
MLK-22210 mxc: emvsim: enable ICM mode

Once detected a valid TS, the ICM bit is cleared and the data format bit,
IC bit , is set to appropriate value depending on the data format
detected using the initial character.

When TS is 0x3B (direct convention) in cold reset, and then become 0x3F
(inverse convention) in warm reset, it will not in ICM mode.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22154 clk: imx: Correct the usb ctrl clock's parent
Jacky Bai [Tue, 2 Jul 2019 08:50:38 +0000 (16:50 +0800)]
MLK-22154 clk: imx: Correct the usb ctrl clock's parent

The USB_CTRL clock's parent clock should be from USB_BUS clock,
so correct it to maintain the correct clock relationship.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Anson Huang <Anson.Huang@nxp.com>
(cherry picked from commit 90f40d4d891cc7b321a52bd99b2ff4fe1c98cb93)

5 years agoMLK-21957-3: ASoC: fsl_sai: add bitcount and timestamp controls
Viorel Suman [Wed, 5 Jun 2019 13:46:32 +0000 (13:46 +0000)]
MLK-21957-3: ASoC: fsl_sai: add bitcount and timestamp controls

Bitcount and timestamp support added in SAI IP recently.
Add the related controls in SAI driver.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
5 years agoMLK-22247 sound: asoc: change micfil default settings
Irina Patru [Wed, 10 Jul 2019 11:13:28 +0000 (11:13 +0000)]
MLK-22247 sound: asoc: change micfil default settings

Previous default settings resulted in loose dynamic
range and low sound level.
New default configuration changes:
 - outgain = 2
 - quality mode = VLQ0
 - dc remover = bypass

Signed-off-by: Irina Patru <ioana-irina.patru@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
5 years agousb: chipidea: udc: workaround for endpoint conflict issue
Peter Chen [Mon, 17 Jun 2019 01:49:07 +0000 (09:49 +0800)]
usb: chipidea: udc: workaround for endpoint conflict issue

An endpoint conflict occurs when the USB is working in device mode
during an isochronous communication. When the endpointA IN direction
is an isochronous IN endpoint, and the host sends an IN token to
endpointA on another device, then the OUT transaction may be missed
regardless the OUT endpoint number. Generally, this occurs when the
device is connected to the host through a hub and other devices are
connected to the same hub.

The affected OUT endpoint can be either control, bulk, isochronous, or
an interrupt endpoint. After the OUT endpoint is primed, if an IN token
to the same endpoint number on another device is received, then the OUT
endpoint may be unprimed (cannot be detected by software), which causes
this endpoint to no longer respond to the host OUT token, and thus, no
corresponding interrupt occurs.

There is no good workaround for this issue, the only thing the software
could do is numbering isochronous IN from the highest endpoint since we
have observed most of device number endpoint from the lowest.

Cc: <stable@vger.kernel.org> #v3.14+
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit c19dffc0a9511a7d7493ec21019aefd97e9a111b)

5 years agoMLK-22251:VPU Decoder: send fw reset cmd directly
ming_qian [Thu, 11 Jul 2019 05:03:42 +0000 (13:03 +0800)]
MLK-22251:VPU Decoder: send fw reset cmd directly

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-22241-4 imx: include fsl_hvc.h
Peng Fan [Thu, 11 Jul 2019 00:59:36 +0000 (08:59 +0800)]
MLK-22241-4 imx: include fsl_hvc.h

Fix build break, this file was missed when adding xen 4.19 support.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 years agoMLK-22038: VPU Decoder: cancel work when suspend
ming_qian [Wed, 10 Jul 2019 01:34:59 +0000 (09:34 +0800)]
MLK-22038: VPU Decoder: cancel work when suspend

fix kernel panic when suspend

WARNING: CPU: 0 PID: 6579 at kernel/workqueue.c:2069
process_one_work+0x58/0x318

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-22241-3 arm: mm: xen: use __GPF_DMA32 for arm64
Peng Fan [Tue, 9 Jul 2019 08:11:34 +0000 (16:11 +0800)]
MLK-22241-3 arm: mm: xen: use __GPF_DMA32 for arm64

arm64 shares some code under arch/arm/xen, including mm.c.
However ZONE_DMA is removed by commit
ad67f5a6545("arm64: replace ZONE_DMA with ZONE_DMA32").
So to ARM64, need use __GFP_DMA32.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Jacky Bai <ping.bai@nxp.com>
5 years agoMLK-22241-2 imx: ipc: include back HVC SC
Peng Fan [Tue, 9 Jul 2019 08:07:39 +0000 (16:07 +0800)]
MLK-22241-2 imx: ipc: include back HVC SC

This is a porting from 4.14.98
commit <b042bb0ec66e> ("MLK-18592-1 soc: imx: use vendor hvc to communiate with SCU")
to make dom0 share same MU channel with XEN.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Jacky Bai <ping.bai@nxp.com>
5 years agoMLK-22241-1 arm64: dts: fix dom0/u
Peng Fan [Tue, 9 Jul 2019 08:05:03 +0000 (16:05 +0800)]
MLK-22241-1 arm64: dts: fix dom0/u

lvds/dpu related reg property changed, so need to update dom0 to
passthrought the original reg to domu, however xen only support
4KB page, so enlarge the passthrough area, this not hurt linux,
it only let xen create big stage 2 mapping.

Drop some reg property in DomU, because domu dts include
fsl-imx8qm-device.dtsi, need to align with dtsi to avoid override
reg, otherwise domu might access wrong reg.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Jacky Bai <ping.bai@nxp.com>
5 years agoMLK-20780 virtio_ring: check dma_mem for xen_domain
Peng Fan [Mon, 21 Jan 2019 02:44:49 +0000 (10:44 +0800)]
MLK-20780 virtio_ring: check dma_mem for xen_domain

on i.MX8QM, M4_1 is communicating with DomU using rpmsg with a fixed
address as the dma mem buffer which is predefined.

Without this patch, the flow is:
vring_map_one_sg -> vring_use_dma_api
                 -> dma_map_page
       -> __swiotlb_map_page
                ->swiotlb_map_page
->__dma_map_area(phys_to_virt(dma_to_phys(dev, dev_addr)), size, dir);
However we are using per device dma area for rpmsg, phys_to_virt
could not return a correct virtual address for virtual address in
vmalloc area. Then kernel panic.

With this patch, vring_use_dma_api will return false, and
vring_map_one_sg will return sg_phys(sg) which is the correct phys
address in the predefined memory region.
vring_map_one_sg -> vring_use_dma_api
                 -> sg_phys(sg)

Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit 484db6e6eb6b8d0ba2cfa946caa53616e23c0364)

5 years agoMLK-18789-3: arm64: defconfig: Add Seiko panel to defconfig
Robert Chiras [Fri, 10 Aug 2018 07:09:02 +0000 (10:09 +0300)]
MLK-18789-3: arm64: defconfig: Add Seiko panel to defconfig

Add Seiko 43WVF1G panel to our defconfig.
Needed for QXP eLCDIF.

Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
5 years agoMLK-18789-2: drm/bridge: Add driver for legacy Freescale Seiko 43WVFIG adapter
Robert Chiras [Mon, 8 Oct 2018 16:47:43 +0000 (19:47 +0300)]
MLK-18789-2: drm/bridge: Add driver for legacy Freescale Seiko 43WVFIG adapter

This is an adapter card made for the 4.3", 800x480, LCD panel Seiko
43WVFIG. The LCD panel is a 24bit DPI bus, while the adapter card has
two ports: 18-bit and 24-bit data input. For the 18-bit data input, the
adapter card is demuxing some of the data lines, in order to feed all of
the 24 lines needed by the LCD.
This driver handles both this use-cases.

Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
5 years agoMGS-4989 GPU: integrate 6.4.0.RC1 kernel driver
Xianzhong [Tue, 9 Jul 2019 17:10:51 +0000 (01:10 +0800)]
MGS-4989 GPU: integrate 6.4.0.RC1 kernel driver

include more bug-fixing for Vulkan 1.1 and NN driver

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
5 years agoMLK-22038: don't clear instance before reset firmware
ming_qian [Mon, 8 Jul 2019 05:33:42 +0000 (13:33 +0800)]
MLK-22038: don't clear instance before reset firmware

reset firmware may be called after snapshot,
in this case, we shouldn't clear instance,
otherwise, the stream will hang

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-22039: Revert "MLK-19365: crypto: ccm: Cache aligned auth_data"
Horia Geantă [Wed, 3 Jul 2019 13:12:38 +0000 (16:12 +0300)]
MLK-22039: Revert "MLK-19365: crypto: ccm: Cache aligned auth_data"

This reverts commit 486222e88ce3bbc5dd7727e48901d1bf507d3892.

Now that the IV update is done by CAAM engine, the cacheline sharing issue
is no longer noticed. Thus this fix is no longer needed.

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: Revert "MLK-14785 CAAM: Fix gcm.c to work correctly with CAAM"
Horia Geantă [Wed, 3 Jul 2019 13:12:23 +0000 (16:12 +0300)]
MLK-22039: Revert "MLK-14785 CAAM: Fix gcm.c to work correctly with CAAM"

This reverts commit 80e2831298dc83891d8e6b5d4d71b3692aa74e30.

Now that the IV update is done by CAAM engine, the cacheline sharing issue
is no longer noticed. Thus this fix is no longer needed.

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: Revert "crypto: gcm: Fixed compilation error"
Horia Geantă [Wed, 3 Jul 2019 13:12:12 +0000 (16:12 +0300)]
MLK-22039: Revert "crypto: gcm: Fixed compilation error"

This reverts commit 9134c5ada2853c883e632bc35a19759f282f6591.

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: Revert "MLK-19365: crypto: gcm: Cache aligned auth_data"
Horia Geantă [Wed, 3 Jul 2019 13:12:03 +0000 (16:12 +0300)]
MLK-22039: Revert "MLK-19365: crypto: gcm: Cache aligned auth_data"

This reverts commit dd624114c50b1a8cb1bec091e20eaf2539695cde.

Now that the IV update is done by CAAM engine, the cacheline sharing issue
is no longer noticed. Thus this fix is no longer needed.

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: crypto: caam - update IV using HW support
Horia Geantă [Mon, 10 Jun 2019 13:30:59 +0000 (16:30 +0300)]
MLK-22039: crypto: caam - update IV using HW support

Modify drivers to perform skcipher IV update using the crypto engine,
instead of performing the operation in SW.

Besides being more efficient, this also fixes IV update for CTR mode.

Output HW S/G table is appended with an entry pointing to the same
IV buffer used as input (which is now mapped BIDIRECTIONAL).

AS (Algorithm State) parameter of the OPERATION command is changed
from INIFINAL to INIT in descriptors used by ctr(aes), cbc(aes).
This is needed since in case FINAL bit is set, HW skips IV updating
in the Context Register for the last data block.

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit 334d37c9e26364511f0673ef155e2ad207316e90)

backported to imx_4.19.y

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: crypto: caam - use len instead of nents for bulding HW S/G table
Horia Geantă [Mon, 10 Jun 2019 13:30:58 +0000 (16:30 +0300)]
MLK-22039: crypto: caam - use len instead of nents for bulding HW S/G table

Currently, conversion of SW S/G table into HW S/G layout relies on
nents returned by sg_nents_for_len(sg, len).
However this leaves the possibility of HW S/G referencing more data
then needed: since buffer length in HW S/G entries is filled using
sg_dma_len(sg), the last entry in HW S/G table might have a length
that is bigger than needed for the crypto request.

This way of S/G table conversion is fine, unless after converting a table
more entries have to be appended to the HW S/G table.
In this case, crypto engine would access data from the S/G entry having
the incorrect length, instead of advancing in the S/G table.
This situation doesn't exist, but the upcoming implementation of
IV update for skcipher algorithms needs to add a S/G entry after
req->dst S/G (corresponding to output IV).

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit 059d73eea6409873446a858dd64a5bec9bf68b70)

backported to imx_4.19.y

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: crypto: caam - limit output IV to CBC to work around CTR mode DMA issue
Ard Biesheuvel [Fri, 31 May 2019 08:13:06 +0000 (10:13 +0200)]
MLK-22039: crypto: caam - limit output IV to CBC to work around CTR mode DMA issue

The CAAM driver currently violates an undocumented and slightly
controversial requirement imposed by the crypto stack that a buffer
referred to by the request structure via its virtual address may not
be modified while any scatterlists passed via the same request
structure are mapped for inbound DMA.

This may result in errors like

  alg: aead: decryption failed on test 1 for gcm_base(ctr-aes-caam,ghash-generic): ret=74
  alg: aead: Failed to load transform for gcm(aes): -2

on non-cache coherent systems, due to the fact that the GCM driver
passes an IV buffer by virtual address which shares a cacheline with
the auth_tag buffer passed via a scatterlist, resulting in corruption
of the auth_tag when the IV is updated while the DMA mapping is live.

Since the IV that is returned to the caller is only valid for CBC mode,
and given that the in-kernel users of CBC (such as CTS) don't trigger the
same issue as the GCM driver, let's just disable the output IV generation
for all modes except CBC for the time being.

Fixes: 854b06f76879 ("crypto: caam - properly set IV after {en,de}crypt")
Cc: Horia Geanta <horia.geanta@nxp.com>
Cc: Iuliana Prodan <iuliana.prodan@nxp.com>
Reported-by: Sascha Hauer <s.hauer@pengutronix.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Horia Geanta <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit ed527b13d800dd515a9e6c582f0a73eca65b2e1b)

backported to imx_4.19.y

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: crypto: caam - print IV only when non NULL
Sascha Hauer [Thu, 23 May 2019 08:50:27 +0000 (10:50 +0200)]
MLK-22039: crypto: caam - print IV only when non NULL

Since eaed71a44ad9 ("crypto: caam - add ecb(*) support") the IV can be
NULL, so only dump it when it's non NULL as designated by the ivsize
variable.

Fixes: eaed71a44ad9 ("crypto: caam - add ecb(*) support")
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit f6b99b6e18657aa1222b0c51ad20ac674e764281)

backported to imx_4.19.y

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: crypto: caam - print debugging hex dumps after unmapping
Sascha Hauer [Thu, 16 May 2019 14:24:42 +0000 (16:24 +0200)]
MLK-22039: crypto: caam - print debugging hex dumps after unmapping

For encryption the destination pointer was still mapped, so the hex dump
may be wrong. The IV still contained the input IV while printing instead
of the output IV as intended.

For decryption the destination pointer was still mapped, so the hex dump
may be wrong. The IV dump was correct.

Do the hex dumps consistenly after the buffers have been unmapped and
in case of IV copied to their final destination.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit bb992bc418e12d4658d39e037f610e0d03940d86)

backported to imx_4.19.y

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22039: Revert "MLK-14611 Fix CBC mode support by returning a correct IV"
Horia Geantă [Tue, 2 Jul 2019 15:40:26 +0000 (18:40 +0300)]
MLK-22039: Revert "MLK-14611 Fix CBC mode support by returning a correct IV"

This reverts commit 618cb36b4c141a7a03a0ae3a6606843667619118.

This commit is no longer needed, since issue is fixed by
commit 854b06f76879 ("crypto: caam - properly set IV after {en,de}crypt")
which is already in the tree, plus commits
ed527b13d800 ("crypto: caam - limit output IV to CBC to work around CTR mode DMA issue")
059d73eea640 ("crypto: caam - use len instead of nents for bulding HW S/G table")
334d37c9e263 ("crypto: caam - update IV using HW support")
that are upstream and will be backported.

Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-22199: mxc-jpeg: Fix mxc-jpeg to build as module
Mirela Rabulea [Thu, 4 Jul 2019 14:38:18 +0000 (17:38 +0300)]
MLK-22199: mxc-jpeg: Fix mxc-jpeg to build as module

The error was:
ERROR: "mxc_jpeg_enc_mode_go" [drivers/media/platform/imx8/mxc-jpeg.ko]
undefined!...(mxc_jpeg_enc_mode_go is defined in mxc-jpeg-hw.c)

Change the Makefile to build mxc-jpeg-encdec object from
these two: mxc-jpeg-hw.o mxc-jpeg.o

Signed-off-by: Mirela Rabulea <mirela.rabulea@nxp.com>
Reviewed-by: Robert Chiras <robert.chiras@nxp.com>
5 years agoMLK-22206 VPU Decoder: modify vpu log print method
Shijie Qin [Fri, 5 Jul 2019 08:05:02 +0000 (16:05 +0800)]
MLK-22206 VPU Decoder: modify vpu log print method

vpu error log modify to non-maskable
VPU_WARN / VPU_EVENT / VPU_INFO info unified use bit map method

Signed-off-by: Shijie Qin <shijie.qin@nxp.com>
Reviewed-by: ming_qian <ming.qian@nxp.com>
5 years agoMLK-22195 VPU Decoder: ensure when framework update seqinfo which not be changed
Shijie Qin [Thu, 4 Jul 2019 11:27:51 +0000 (19:27 +0800)]
MLK-22195 VPU Decoder: ensure when framework update seqinfo which not be changed

FW maybe quickly parse twice different sequence header and report
seq_hdr_found event, need to ensure when frame update seqinfo which not
be changed

Signed-off-by: Shijie Qin <shijie.qin@nxp.com>
Reviewed-by: ming_qian <ming.qian@nxp.com>
5 years agoMLK-22201 mxc: mlb: fix interrupt rw lock dead lock
Clark Wang [Fri, 28 Jun 2019 09:10:36 +0000 (17:10 +0800)]
MLK-22201 mxc: mlb: fix interrupt rw lock dead lock

If read lock is called in mlb150_trans_complete_check, when the same
lock is called from interrupt at the same time it will result in:

[   73.688839] WARNING: inconsistent lock state
[   73.693116] 5.2.0-rc3-next-20190607-20092-ge32edc4b91df-dirty #38 Not tainted
[   73.700256] --------------------------------
[   73.704533] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-R} usage.
[   73.710546] mxc_mlb_test.ou/612 [HC0[0]:SC0[0]:HE1:SE1] takes:
[   73.716386] 554a05da (mlb_devinfo[1].tx_rbuf.rb_lock){-?--}, at: mxc_mlb150_ioctl+0x6a8/0x9a8
[   73.724937] {IN-HARDIRQ-W} state was registered at:
[   73.729827]   _raw_write_lock+0x28/0x38
[   73.733669]   mlb_tx_isr+0x54/0xf8
[   73.737078]   mlb_ahb_isr+0x98/0x124
[   73.740668]   __handle_irq_event_percpu+0x48/0x360
[   73.745467]   handle_irq_event_percpu+0x28/0x7c
[   73.750002]   handle_irq_event+0x38/0x5c
[   73.753934]   handle_fasteoi_irq+0xc0/0x17c
[   73.758125]   generic_handle_irq+0x20/0x34
[   73.762228]   __handle_domain_irq+0x64/0xe0
[   73.766422]   gic_handle_irq+0x4c/0xa8
[   73.770179]   __irq_svc+0x70/0x98
[   73.773506]   cpuidle_enter_state+0x164/0x574
[   73.777869]   cpuidle_enter_state+0x164/0x574
[   73.782232]   cpuidle_enter+0x28/0x38
[   73.785905]   do_idle+0x220/0x2c0
[   73.789226]   cpu_startup_entry+0x18/0x20
[   73.793247]   start_kernel+0x3f4/0x4a0

Fix this by always using irq save rw locks in trans_complete_check.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-22164 VPU Decoder: check input frame type before update to ring buffer
Shijie Qin [Fri, 5 Jul 2019 06:45:47 +0000 (14:45 +0800)]
MLK-22164 VPU Decoder: check input frame type before update to ring buffer

On Andorid, will re-transfer codec info after seek, hence need to
check it and insert sequence header for some format which inserted
header by driver, especailly for RV format.

Signed-off-by: Shijie Qin <shijie.qin@nxp.com>
Reviewed-by: ming_qian <ming.qian@nxp.com>
5 years agoMLK-22189: VPU Decoder: fix hang after set trick mode
ming_qian [Thu, 4 Jul 2019 02:27:20 +0000 (10:27 +0800)]
MLK-22189: VPU Decoder: fix hang after set trick mode

To avoid tsm buffer overflow,
driver will check the pre buffer count before enqueue data,
but after trick, tsm will be resync when enqueue the first data,
but now the pre buffer count may be too large,
driver will prevent enqueue data,
so the tsm can't be resync, it cause the hang.

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-21957-2: ASoC: fsl_sai: read SAI version and params in probe
Viorel Suman [Thu, 20 Jun 2019 10:25:15 +0000 (13:25 +0300)]
MLK-21957-2: ASoC: fsl_sai: read SAI version and params in probe

Read SAI IP version and parameters in probe function.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
(cherry picked from commit 53f74d740629b877e3703d770a3de93514c00092)

5 years agoMLK-21957-1: ASoC: fsl_sai: remove reset code from dai_probe
Viorel Suman [Tue, 18 Jun 2019 13:16:19 +0000 (16:16 +0300)]
MLK-21957-1: ASoC: fsl_sai: remove reset code from dai_probe

SAI software reset is done in runtime resume,
there is no need to do it in fsl_sai_dai_probe.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
(cherry picked from commit 0202e4297ee40dcadd67d7bb5cf86262b9389436)

5 years agoMLK-22197 ASoC: fsl_micfil: add micfil dc remover amixer control
Irina Patru [Thu, 4 Jul 2019 12:09:00 +0000 (15:09 +0300)]
MLK-22197 ASoC: fsl_micfil: add micfil dc remover amixer control

Add control for DC Remover Control register:
11b - DC Remover is bypassed
00b - DC Remover is cut-off at 21Hz
01b - DC Remover is cut-off at 83Hz
10b - DC Remover is cut-off at 152Hz

This control modifies DC mode for all channels. For more
information see DC Remover Block Diagram in micfil
reference manual.

Signed-off-by: Irina Patru <ioana-irina.patru@nxp.com>
5 years agoMLK-22165: VPU Decoder: ignore the invalid timestamp of codec data
ming_qian [Wed, 3 Jul 2019 08:04:10 +0000 (16:04 +0800)]
MLK-22165: VPU Decoder: ignore the invalid timestamp of codec data

To ensure the first timestamp after seek is valid,
the timestamp of codec data should be ignore,
and merge its size to the next frame.

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-22163: VPU Decoder: constraint value range of color aspects
ming_qian [Wed, 3 Jul 2019 03:09:06 +0000 (11:09 +0800)]
MLK-22163: VPU Decoder: constraint value range of color aspects

sPrimariesMap max 10
sMatrixCoeffsMap max 10
sTransfersMap max 18

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-22141: VPU Decoder: fix consumed length calculation error
ming_qian [Wed, 3 Jul 2019 01:50:26 +0000 (09:50 +0800)]
MLK-22141: VPU Decoder: fix consumed length calculation error

when check whether the rptr is cross over,
the stream size must be taken into account.

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
Reviewed-by: Zhou Peng <eagle.zhou@nxp.com>
5 years agoMLK-22138: VPU Decoder: distinguish seek and resolution change to avoid
ming_qian [Mon, 1 Jul 2019 02:08:36 +0000 (10:08 +0800)]
MLK-22138: VPU Decoder: distinguish seek and resolution change to avoid
hang on android

In resolution change, driver should avoid abort,
otherwise stream may hang.
In seek, driver shouldn't ignore abort,
otherwise the timestamp may be incorrect and led to hang on android.
So driver need distinguish seek and resolution change.
When do seek, output and capture will both be streamoff,
but resolution change, the output won't be streamoff.

Signed-off-by: ming_qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
5 years agoMLK-21953-03 arm64: imx8mn: Fix-up power domains ids
Abel Vesa [Mon, 1 Jul 2019 08:30:24 +0000 (11:30 +0300)]
MLK-21953-03 arm64: imx8mn: Fix-up power domains ids

When cherry-picked from imx_4.14.y, the power-domains
node was using domain-ids. In order to work on imx_4.19.y
the reg property has to be used instead. This also implies
the address-cells and size-cells properties have to be added.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
5 years agoSSI-73: crypto: caam - support for imx8mn
Iuliana Prodan [Fri, 14 Jun 2019 09:15:30 +0000 (12:15 +0300)]
SSI-73: crypto: caam - support for imx8mn

CAAM support for imx8mn is based on the existing imx8 support

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
5 years agoMLK-21880-3 drm/imx: lcdif-dsim: change DISPMIX reset for IMX8MN
Fancy Fang [Tue, 28 May 2019 05:57:43 +0000 (13:57 +0800)]
MLK-21880-3 drm/imx: lcdif-dsim: change DISPMIX reset for IMX8MN

According to the design spec for IMX8MN platform, the GPR reset
module for DISPMIX has some changes. So the reset code should be
adjusted accordingly. This is a temporary solution and will be
improved later.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
5 years agoMLK-21953-01 soc: imx: Add power domain driver support imx8mn
Jacky Bai [Mon, 10 Jun 2019 05:43:19 +0000 (13:43 +0800)]
MLK-21953-01 soc: imx: Add power domain driver support imx8mn

Add compatible string for i.MX8MN for power domain driver
support.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
5 years agoMLK-21871 net: fec: get mac address from fuse for imx8mn platform
Fugang Duan [Wed, 22 May 2019 08:35:14 +0000 (16:35 +0800)]
MLK-21871 net: fec: get mac address from fuse for imx8mn platform

Enable imx8mn platform to get mac address from efuse.

Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com>
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-21880-2 drm/imx: add IMX8MN compatible for LCDIF and DSIM
Fancy Fang [Tue, 28 May 2019 04:02:38 +0000 (12:02 +0800)]
MLK-21880-2 drm/imx: add IMX8MN compatible for LCDIF and DSIM

Add a compatible string which includes 'imx8mn' for both
LCDIF and DSIM drivers.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
5 years agoMLK-22131 can: flexcan: fix CAN coverity issue
Joakim Zhang [Thu, 27 Jun 2019 09:56:14 +0000 (17:56 +0800)]
MLK-22131 can: flexcan: fix CAN coverity issue

Fix CAN coverty issue.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
5 years agoMLK-20290: mxc-jpeg: Inject a default Huffman table for the decoder
Mirela Rabulea [Wed, 26 Jun 2019 13:38:29 +0000 (16:38 +0300)]
MLK-20290: mxc-jpeg: Inject a default Huffman table for the decoder

So far, the configuration stream was used only for the encoder, but
it is actually possible to use it for the decoder too, in order to inject
a default Huffman table, because the CAST IP decoder gets stuck for jpegs
that do not contain any Huffman table.
Add dht_needed member in the context structure, and set it true when a
jpeg without any DHT marker is detected. In such case, the decoder will
also operate in 2 phases: first DHT injection, then user buffer decode;
this is done by chaining a configuration  descriptor before the decoding
descriptor. The configuration stream is set-up in the s_fmt ioctl with
the minimum resolution.

Also print an error when a jpeg smaller than the minimum size, 64x64
according to imx8qxp errata ERR050135, is detected.

Signed-off-by: Mirela Rabulea <mirela.rabulea@nxp.com>
Reviewed-by: Robert Chiras <robert.chiras@nxp.com>
5 years agoMLK-22133 VPU Decoder: check frame slice count for RV format
Shijie Qin [Fri, 28 Jun 2019 05:27:30 +0000 (13:27 +0800)]
MLK-22133 VPU Decoder: check frame slice count for RV format

Check calculated frame slice count in order to avoid alloc
exception memory due to abnormal slice count

Signed-off-by: Shijie Qin <shijie.qin@nxp.com>
Reviewed-by: ming_qian <ming.qian@nxp.com>
5 years agoMLK-22129 drm/imx: dpu: kms: Ensure array idx m >= 0 before accessing sources[]
Liu Ying [Fri, 28 Jun 2019 02:44:43 +0000 (10:44 +0800)]
MLK-22129 drm/imx: dpu: kms: Ensure array idx m >= 0 before accessing sources[]

This patch checks array index 'm' in function
dpu_atomic_assign_plane_source_per_crtc() to make sure it's
no less than zero before using it to access array sources[].

Detected by CoverityScan, CID#6231988 ("Negative array index read")

Signed-off-by: Liu Ying <victor.liu@nxp.com>
5 years agoMLK-21987-1 soc: imx: Add speed grading fuse check for i.MX8MN
Anson Huang [Mon, 10 Jun 2019 01:56:16 +0000 (09:56 +0800)]
MLK-21987-1 soc: imx: Add speed grading fuse check for i.MX8MN

Add speed grading fuse check to constrain CPU OPP according
to market segment and speed grading fuse map,

Market_Segment[1:0]:
'00' - Consumer 0C to 95C
'01' - Ext. Consumer -20C to 105C
'10' - Industrial -40C to 105C
'11' - Automotive -40C to 125C

SPEED_GRADING[5:0]:
SPEED_GRADE[5:4]    SPEED_GRADE[3:0]    MHz
      xx                0000            2300
      xx                0001            2200
      xx                0010            2100
      xx                0011            2000
      xx                0100            1900
      xx                0101            1800
      xx                0110            1700
      xx                0111            1600
      xx                1000            1500
      xx                1001            1400
      xx                1010            1300
      xx                1011            1200
      xx                1100            1100
      xx                1101            1000
      xx                1110             900
      xx                1111             800

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
5 years agoMLK-21823-5 soc: imx: Add i.MX8MN soc id driver support
Anson Huang [Fri, 24 May 2019 05:59:15 +0000 (13:59 +0800)]
MLK-21823-5 soc: imx: Add i.MX8MN soc id driver support

This patch adds new SoC i.MX8MN's soc id driver support.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
5 years agoMLK-21963-3 ARM64: dts: imx8m[mn]: Define resets for LCDIF and DSIM
Fancy Fang [Thu, 13 Jun 2019 05:25:34 +0000 (13:25 +0800)]
MLK-21963-3 ARM64: dts: imx8m[mn]: Define resets for LCDIF and DSIM

The dispmix-reset device can be used to control the LCDIF and
DSIM bus reset and clock enable. So define 'resets' property
for both LCDIF and DSIM for this purpose which will be used to
replace 'dispmix_gpr' usage.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
5 years agoMLK-21963-1 reset: Add driver for dispmix reset
Fancy Fang [Wed, 5 Jun 2019 10:04:17 +0000 (18:04 +0800)]
MLK-21963-1 reset: Add driver for dispmix reset

This is an reset driver to implement a reset controller
device DISPMIX on IMX8MM and IMX8MN platforms. Dispmix
reset is used to reset or enable related buses and clks
for the submodules in DISPMIX.

All the dispmix resets are divided into three subgroups:
sft_rstn, clk_en and mipi_rst, and each of them contains
several reset lines to control several different modules
on and off in DISPMIX which doesn't require the standard
reset flow, but only line assert and deassert operations.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
5 years agoMLK-21963-2 ARM64: dts: imx8m[mn]: Add 'dispmix-reset' device
Fancy Fang [Wed, 5 Jun 2019 10:54:17 +0000 (18:54 +0800)]
MLK-21963-2 ARM64: dts: imx8m[mn]: Add 'dispmix-reset' device

Create a new device node 'dispmix-reset' to describe the
reset controller in DISPMIX to control several submodules
bus and clock reset and enable. All the reset lines can be
divided into three groups: sft_rstn, clk_en and mipi_rst.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
5 years agoMLK-22096-2 arm64: dts: add i.MX8MN root/inmate dts
Peng Fan [Mon, 24 Jun 2019 09:47:43 +0000 (17:47 +0800)]
MLK-22096-2 arm64: dts: add i.MX8MN root/inmate dts

Add root inmate dts for jailhouse 1st and 2nd linux.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Jacky Bai <ping.bai@nxp.com>
5 years agoMLK-22075 arm64: dts: imx8mn: Update CPU OPP table
Anson Huang [Fri, 21 Jun 2019 01:26:17 +0000 (09:26 +0800)]
MLK-22075 arm64: dts: imx8mn: Update CPU OPP table

Update i.MX8MN CPU OPP table according to datasheet
Rev.B,06/2019.

According to design requirement, to achieve best CPU
performance, although DDR4 EVK board is working at NM
mode, but VDD_SOC will use 0.95v(OD mode) and VDD_ARM
can move between 0.95v and 1.0v, 0.95v to support
1.2GHz/1.4GHz, and 1.0v to support 1.5GHz.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>