Robert Chiras [Fri, 8 Dec 2017 14:21:33 +0000 (16:21 +0200)]
MLK-17047-2: drm/imx: Fix suspend/resume for nwl_dsi-imx
This patch addresses two issues:
1. Always request/release bus_freq, not just on suspend/resume routines
2. Check if the driver is running when doing a suspend, so that we won't
enable it by mistake on resume.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Robert Chiras [Fri, 8 Dec 2017 14:19:15 +0000 (16:19 +0200)]
MLK-17047-1: drm/mxsfb: Fix suspend/resume
MXSFB should always request bus_freq when enabled and release bus_freq
when disabled. Also, when suspend/resume occurs, check if the driver is
running, so what we won't enable it by mistake in resume.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Robert Chiras [Fri, 8 Dec 2017 08:23:15 +0000 (10:23 +0200)]
MLK-17115: drm/mxsfb: Add support for vblank
Currently, the vblank support is not correctly implemented in MXSFB_DRM
driver. Thix patch addresses this issue, so that vblank will be
supported by MXSFB_DRM driver.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Laurentiu Palcu [Fri, 8 Dec 2017 13:54:19 +0000 (15:54 +0200)]
MLK-17805: drm: imx: dcss: fix resume without HDMI cable
When no HDMI cable is in, the device is runtime suspended. Hence,
there's nothing to resume in this case.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Laurentiu Palcu [Fri, 8 Dec 2017 12:42:05 +0000 (14:42 +0200)]
MLK-17140-2: drm: imx: dcss: Change CTXLD trigger values
After activating the PM QoS, the old triggers didn't work anymore. Also,
this will remove a hardcoded value that might not work for all
resolutions.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Laurentiu Palcu [Thu, 7 Dec 2017 10:57:19 +0000 (12:57 +0200)]
MLK-17140-1: drm: imx: dcss: add PM QoS
PM QoS is needed so that cpuidle doesn not influence DCSS performance.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Laurentiu Palcu [Wed, 6 Dec 2017 09:03:50 +0000 (11:03 +0200)]
MMFMWK-7806: drm: imx: dcss: check up/down scale ratios
When scaling up/down, DCSS has limits that cannot be exceeded. This
patch adds checks before the plane is updated and rejects those planes
that exceed the up/down scale limits.
Currently, the limit is 3:1 for downscaling and 1:3 for upscaling for
both video and graphics channels.
When support for WR_SCL/RD_SRC will be added, these limits will increase
to the following values:
* video: 7:1 downscale, 1:7 upscale
* graphics: 5:1 downscale, 1:5 upscale
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Fugang Duan [Fri, 8 Dec 2017 08:12:50 +0000 (16:12 +0800)]
MLK-17133-03 tty: serial: lpuart: directly terminate rx dma chans in .shutdown()
No need to wait dma_wait event, directly terminate rx dma chans
in .shutdown() callback.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Reviewed-by: Robin Gong <yibin.gong@nxp.com>
Fugang Duan [Fri, 8 Dec 2017 01:57:19 +0000 (09:57 +0800)]
MLK-17133-02 tty: serial: lpuart: add runtime pm support
Add runtime pm support to manage lpuart clock and its power domain
to save power in system idle and system suspend stages.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Reviewed-by: Robin Gong <yibin.gong@nxp.com>
Fugang Duan [Fri, 1 Dec 2017 06:27:39 +0000 (14:27 +0800)]
MLK-17133-01 tty: serial: lpuart: only enable wakeup interrupt when wakeup enabled
Current driver suppose system disable irq when wakeup is not enabled
like below follow, so it always enable the wakeup interrupt in .suspend_noirq().
dpm_suspend_noirq()
device_wakeup_arm_wake_irqs()
if (device_may_wakeup(wirq->dev))
enable_irq_wake(wirq->irq);
irq_set_irq_wake(irq, 1);
suspend_device_irqs();
if (irqd_is_wakeup_set(&desc->irq_data))
__disable_irq(desc);
device_suspend_noirq(dev);
...
But in i.MX8x chips, the gic-v3 chip->irq_disable() is not implemented,
so the device's irq line is not masked in noirq stage. Then lpuart interrupt
can wake up system even if it is not enabled as wakeup source.
To avoid the issue, only enable wakeup interrupt when it is enabled as
wakeup source.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Reviewed-by: Robin Gong <yibin.gong@nxp.com>
Dong Aisheng [Thu, 7 Dec 2017 12:23:53 +0000 (20:23 +0800)]
MLK-17124 imx8: pm-domains: fix clock rate may lost due to domain off during probe phase
With current design, there may be a clock state issue lost due to driver
probe fail and power domain go to OFF. Then the next driver probe using the
same domain and clocks may fail because the kernel already caches the last clk
settings, the next retry will return directly. As a result, driver may believe
the the clk setting is passed but actually no in HW. So a state mismatach
happenes between SW and HW.
This is actually a nature limitation with current design as there's no state
alignment mechanism between clk SW status and HW status. Power Domain and CLK
subsystem are two separate subsystems in current kernel design, re-architecure
the kernel power domain and clk probably is the best way to handle this issue.
However, this patch implements a quick workaround to trap the possible state
lost case and give the driver one more chance to re-set the clk when power
domain is enabled. This can tempororily fix this issue although may be not
be so good from architecture point of view.
One note is that as a parent clk rate restore will cause the clk recalc
to all possible child clks which may result in child clk previous state lost
due to power domain lost before, we have to first walk through all child clks
to retrieve the state via clk_hw_get_rate which bypassed the clk recalc,
then we can restore them one by one.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Robby Cai [Thu, 7 Dec 2017 12:22:25 +0000 (20:22 +0800)]
MLK-17058 media: csi: fix spurious warning message
When boot up with 4K HDMI display, and at same time do a capture with
720p (or above), meet following message.
[ 241.572132] mx6s-csi
30a90000.csi1_bridge:
82300000 !=
82300000
[ 241.604974] mx6s-csi
30a90000.csi1_bridge:
82700000 !=
82700000
[ 241.638305] mx6s-csi
30a90000.csi1_bridge:
82b00000 !=
82b00000
[ 241.704969] mx6s-csi
30a90000.csi1_bridge:
82300000 !=
82300000
...
cast the type of unsigned long to unsigned int before compare two variables
to fix it.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
(cherry picked from commit
0972b05917dd5bd3d6aa28e57b7181d647da28b8)
Robby Cai [Thu, 7 Dec 2017 07:05:42 +0000 (15:05 +0800)]
MLK-17116-2 media: mipi_csi: Adjust hs_settle and send_level for low resolution
Change the hs_settle and fifo_send_level setting for 640x480 and 720x480 input
resolution.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
(cherry picked from commit
3c081af366e250ff011319d80c5706ae7b8e38ca)
Robby Cai [Thu, 7 Dec 2017 07:00:33 +0000 (15:00 +0800)]
MLK-17116-1 media: camera: use simpler way for 20MHz mclk setting
For ov5640, the simpler way is to make PLL1 same. Here's changing PRE_DIV0.
"24MHz / 3" equals to "20MHz / 2.5", hereby the reg 3037[3:0] = 7.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
(cherry picked from commit
bf7d2bb06ca3bdf88a8aa86ac39b7d3f44134ea5)
Liu Ying [Mon, 19 Jun 2017 03:56:01 +0000 (11:56 +0800)]
MLK-15110-23 drm/imx: dpu: kms: Add prefetch support
This patch adds prefetch support so that we may use prefetch engine
where possible.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Thu, 22 Jun 2017 03:33:26 +0000 (11:33 +0800)]
MLK-15110-22 drm/imx: dpu: crtc: Evade the first dumb frame for DPR/PRG errata
To workaround the errata TKT320950, DPR/PRG need to evade the first dumb frame
which is generated by DPU. The way we achieve that is to bypass TCON(but set
the TCON sync signals and KA_CHUCK strobe signal up) before enabling the DPU
display controller, and then enable the display controller, wait for the frame
index starting to move and finally switch TCON to operation mode.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Thu, 22 Jun 2017 03:16:32 +0000 (11:16 +0800)]
MLK-15110-21 gpu: imx: dpu: framegen: Add timestamp support for frame index
This patch adds framegen timestamp support for the frame index feature.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Tue, 1 Aug 2017 03:28:16 +0000 (11:28 +0800)]
MLK-15110-20 gpu: imx: dpu: fetcheco: Fixup stride when we use prefetch
When we use prefetch, we use DPR and PRG to do frame input cropping.
Thus, the stride of fetcheco is the stride of cropped frame, which means
the value of the stride is cropped_width * bytes_per_pixel. Since the
pixel format has to be NV12 or NV21 when we use prefetch, we assume the
cropped_width stands for how many UV we have in bytes for one line, while
bytes_per_pixel should be 8bits for every U or V component. Also, to
address TKT339017, when we use prefetch engine for fetcheco, we need to
round the stride up to the fetcheco burst size, i.e., burst length
multiplies 8 bytes. According to TKT343664, the buffer base address has
to align to burst size, so we'll pick an appropriate burst size value in
fetcheco_source_stride().
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Wed, 28 Jun 2017 07:55:24 +0000 (15:55 +0800)]
MLK-15110-19 gpu: imx: dpu: fetchdecode: Fixup stride when we use prefetch
When we use prefetch, we use DPR and PRG to do frame input cropping. Thus,
the stride of fetchdecode is the stride of cropped frame, which means the
value of the stride is cropped_width * bytes_per_pixel. Also, to address
TKT339017, when we use prefetch engine for fetchdecode, we need to round
the frame stride up to the fetchdecode burst size, i.e., burst length
multiplies 8 bytes. According to TKT343664, the buffer base address has
to align to burst size, so we'll pick an appropriate burst size value in
fetchdecode_source_stride().
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 7 Aug 2017 05:24:21 +0000 (13:24 +0800)]
MLK-15110-18 gpu: imx: dpu: fetcheco: Add helper fetcheco_set_burstlength()
This patch adds helper fetcheco_set_burstlength() so that
the burst length of fetcheco can be set to appropriate value.
When we don't use prefetch engine, the burst length is set to
the maximal value - 16. When we use prefetch engine, the burst
length should make the buffer base address align to burst size
but not greater than 16. This alignment operation can address
the issue recorded by TKT343664.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 7 Aug 2017 05:19:35 +0000 (13:19 +0800)]
MLK-15110-17 gpu: imx: dpu: fetchdecode: Add helper fetchdecode_set_burstlength()
This patch adds helper fetchdecode_set_burstlength() so that
the burst length of fetchdecode can be set to appropriate value.
When we don't use prefetch engine, the burst length is set to
the maximal value - 16. When we use prefetch engine, the burst
length should make the buffer base address align to burst size
but not greater than 16. This alignment operation can address
the issue recorded by TKT343664.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Tue, 1 Aug 2017 05:03:36 +0000 (13:03 +0800)]
MLK-15110-16 gpu: imx: dpu: fetcheco: Add helpers to set/get fetcheco off pin
This patch adds some helpers to set/get fetcheco off pin.
We need to pin fetcheco off when the primary plane is disabled and the
relevant fetcheco is feed by prefetch engine.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 19 Jun 2017 03:39:56 +0000 (11:39 +0800)]
MLK-15110-15 gpu: imx: dpu: fetchdecode: Add DPR support
This patch adds DPR support for fetchdecode in the DPU base driver.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Fri, 18 Aug 2017 02:03:04 +0000 (10:03 +0800)]
MLK-15110-14 arm64: dts: fsl-imx8qxp-mek: Add DPR and PRG support
This patch adds DPR and PRG support.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 19 Jun 2017 06:03:16 +0000 (14:03 +0800)]
MLK-15110-13 arm64: dts: fsl-imx8qxp-lpddr4-arm2: Add DPR and PRG support
This patch adds DPR and PRG support.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 19 Jun 2017 06:01:29 +0000 (14:01 +0800)]
MLK-15110-12 arm64: dtsi: fsl-imx8qxp: Add DPR and PRG support
This patch adds DPR and PRG support.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Tue, 20 Jun 2017 09:39:22 +0000 (17:39 +0800)]
MLK-15110-11 arm64: dtsi: fsl-imx8qxp: Add DPR0/1 irq resources for DPU
The Display Prefetch Resolve(DPR) engine is the prefetch engine of DPU.
This patch adds the DPR0/1's irq resources for DPU.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 19 Jun 2017 05:50:15 +0000 (13:50 +0800)]
MLK-15110-10 clk: imx: clk-imx8qxp: Add IMX8QXP_DC0_DPR1_APB/B_CLK support
This patch adds IMX8QXP_DC0_DPR1_APB_CLK and IMX8QXP_DC0_DPR1_B_CLK clocks
support.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Thu, 7 Dec 2017 04:41:05 +0000 (12:41 +0800)]
MLK-15110-9 arm64: dts: fsl-imx8qm-mek: Add DPR and PRG support
This patch adds DPR and PRG support.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 19 Jun 2017 03:06:59 +0000 (11:06 +0800)]
MLK-15110-8 arm64: dts: fsl-imx8qm-lpddr4-arm2: Add DPR and PRG support
This patch adds DPR and PRG support.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 8 May 2017 04:58:17 +0000 (12:58 +0800)]
MLK-15110-7 arm64: dtsi: fsl-imx8qm: Add DPR and PRG support
This patch adds DPR and PRG support.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Tue, 20 Jun 2017 09:13:31 +0000 (17:13 +0800)]
MLK-15110-6 arm64: dtsi: fsl-imx8qm: Add DPR0/1/2/3 irq resources for DPU0/1
The Display Prefetch Resolve(DPR) engine is the prefetch engine of DPU.
This patch adds the DPR0/1/2/3's irq resources for DPU0/1.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Tue, 20 Jun 2017 08:59:23 +0000 (16:59 +0800)]
MLK-15110-5 gpu: imx: dpu: Name inner DPU interrupts explicitly
We will support DPR interrupts via DPU core driver.
In order to distinguish bewteen the inner DPU interrupts and the DPR
interrupts, let's rename some software stuffs which are related to
DPU interrupts so that they may show they are DPU inner explicitly.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 19 Jun 2017 05:05:23 +0000 (13:05 +0800)]
MLK-15110-4 gpu: imx: dpu: Select IMX8_PRG and IMX8_DPRC in Kconfig
Since we needs to use PRG and DPR in DPU base driver, let's select
the two drivers when we enable DPU.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 3 Jul 2017 05:07:23 +0000 (13:07 +0800)]
MLK-15110-3 gpu: imx: Add i.MX8 DPR(Display Prefetch Resolve) support
The Display Prefetch Resolve(DPR) is a processor of fetching display data
before the display pipeline which needs data to drive pixels in the active
display region. The data is transformed, or resolved from a variety of
tiled buffer formats into linear format. The DPR transaction sequences are
issued with a high level of DRAM efficiency. This patch adds the base
driver support for i.MX8qm/qxp DPR.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Mon, 3 Jul 2017 03:35:52 +0000 (11:35 +0800)]
MLK-15110-2 gpu: imx: Add i.MX8 PRG(Prefetch Resolve Gasket) support
The Pretch Resolve Gasket(PRG) is a digital core function as a gasket
interface between RTRAM controller and DPU. The main function of PRG
is to convert the AXI interface to RTRAM interface and remapping the
ARADDR to a RTRAM address. This patch adds the base driver support
for i.MX8qm/qxp PRG.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Liu Ying [Thu, 3 Aug 2017 08:00:46 +0000 (16:00 +0800)]
MLK-15110-1 drm/fourcc: Add Amphion tiled layout format modifier
Amphion VPU has a tiled layout using 8x128 pixel vertical strips,
where each strip contains 1x16 groups of 8x8 pixels in a row-major layout.
Signed-off-by: Song Bing <bing.song@nxp.com>
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Sandor Yu [Fri, 8 Dec 2017 08:23:59 +0000 (16:23 +0800)]
MLK-17126-6: arm64 dts: Add hdmi dts for imx8qm mek
Add fsl-imx8qm-mek-hdmi.dts for imx8qm mek board.
BuildInfo:
- SCFW
e0362348, IMX-MKIMAGE
9841373a, ATF
e173337
- U-Boot 2017.03-imx_v2017.03+g3535868
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Fri, 8 Dec 2017 08:23:07 +0000 (16:23 +0800)]
MLK-17126-5: arm64 dts: Move hdmi compatible srting
Move imx8qm hdmi/dp compatible srting from soc specific
dts to board specific dts.
BuildInfo:
- SCFW
e0362348, IMX-MKIMAGE
9841373a, ATF
e173337
- U-Boot 2017.03-imx_v2017.03+g3535868
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Fri, 8 Dec 2017 08:16:48 +0000 (16:16 +0800)]
MLK-17126-4: hdp: Fix V/Hsync polarity issue
Remove v/hsync polarity adjust function.
Add pixel link mux configuration function for imx8qm.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Fri, 8 Dec 2017 08:41:21 +0000 (16:41 +0800)]
MLK-17126-3: hdmi api: Fix h/v sync polarity issue
Fix H/V Sync polarity issue.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Thu, 7 Dec 2017 10:04:03 +0000 (18:04 +0800)]
MLK-17126-2: hdp: Support imx8qm HDMI function
Add phy reset before hdmi/dp phy init.
Reparent hdmi pixel clock to av_pll.
Combine DP and HDMI ipg clock function.
Add DP and HDMI pixel clock set rate function.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Fri, 8 Dec 2017 06:54:26 +0000 (14:54 +0800)]
MLK-17126-1: hdp api: workaround for imx8qm HDMI DDC R/W issue
HDMI DDC R/W function is not supported by imx8qm HDMI FW.
Skip the function for imx8qm before the issue is fixed in FW.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Peter Chen [Fri, 8 Dec 2017 08:25:19 +0000 (16:25 +0800)]
MLK-16976-6 ARM64: dts: fsl-imx8qxp: let USB have wakeup capability
Let PM code know USB has wake system up capability.
BuildInfo:
- SCFW
245582b, IMX-MKIMAGE
0ad6069a, ATF
6bd98a3
- U-Boot 2017.03-imx_v2017.03+gfa65b0a
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Fri, 8 Dec 2017 03:44:47 +0000 (11:44 +0800)]
MLK-16976-5 ARM64: dts: fsl-imx8qxp-mek: add 12V source capability for Type-C
The MEK hardware design supports 12V power source, update src-pdos for it.
And It doesn't support power sink, so remove additional sink PDOS setting.
BuildInfo:
- SCFW
245582b, IMX-MKIMAGE
0ad6069a, ATF
6bd98a3
- U-Boot 2017.03-imx_v2017.03+gfa65b0a
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Fri, 1 Dec 2017 06:13:06 +0000 (14:13 +0800)]
MLK-16976-4 usb: cdns3: add power management support
This patch set adds both runtime and system-level pm support.
For runtime-pm: both host and device wakeup events are supported.
For system-pm: only host wakeup events are supported, device wakeup
events are from other peripherals, and will support later.
BuildInfo:
- SCFW
245582b, IMX-MKIMAGE
0ad6069a, ATF
6bd98a3
- U-Boot 2017.03-imx_v2017.03+gfa65b0a
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Tue, 28 Nov 2017 06:09:23 +0000 (14:09 +0800)]
MLK-16976-3 ARM64: dts: fsl-imx8qm-mek: add USB support
- USB2 Dual-role support, and below rework is needed:
Remove R295, R296, R122, and install R116, R117, R127
- USB3 Dual-role support
BuildInfo:
- SCFW
245582b, IMX-MKIMAGE
0ad6069a, ATF
6bd98a3
- U-Boot 2017.03-imx_v2017.03+gfa65b0a
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Fri, 1 Dec 2017 03:10:29 +0000 (11:10 +0800)]
MLK-16976-2 ARM64: dts: fsl-imx8qm: let USB have wakeup capability
Let PM code know USB has wake system up capability.
BuildInfo:
- SCFW
245582b, IMX-MKIMAGE
0ad6069a, ATF
6bd98a3
- U-Boot 2017.03-imx_v2017.03+gfa65b0a
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Fri, 24 Nov 2017 09:15:04 +0000 (17:15 +0800)]
MLK-16976-1 ARM64: dts: fsl-imx8: add OTG register regions for Cadence USB3
Add OTG register regions for Cadence USB3.
BuildInfo:
- SCFW
245582b, IMX-MKIMAGE
0ad6069a, ATF
6bd98a3
- U-Boot 2017.03-imx_v2017.03+gfa65b0a
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Viorel Suman [Thu, 7 Dec 2017 13:54:56 +0000 (15:54 +0200)]
MLK-17089-8: ASoC: fsl_amix: 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: Viorel Suman <viorel.suman@nxp.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Robert Chiras [Thu, 7 Dec 2017 12:40:13 +0000 (14:40 +0200)]
MLK-17117: arm64: dts: fsl-imx8mq-evk: Add support for dual-display
Add a DTS file which will have both the lcdif and dcss nodes enabled and
configured.
The DCSS will work with HDMI output, while the eLCDIF will work with
ADV7535 DSI-HDMI converter.
Also, remove lcdif-rm67191.dts from Makefile, since lcdif is limited to
720p. This combination is no longer working, until we have the timings
for 720p for the MIPI panel.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Robert Chiras [Wed, 6 Dec 2017 15:43:30 +0000 (17:43 +0200)]
MLK-17090: drm/mxsfb: Update mxsfb with additional pixel formats
Since version 4 of eLCDIF, there are some registers that can do
transformations on the input data, like re-arranging the pixel
components. By doing that, we can support more pixel formats.
This patch adds support for X/ABGR and RGBX/A. Although, the local alpha
is not supported by eLCDIF, the alpha pixel formats were added to the
supported pixel formats but it will be ignored. This was necessary since
there are systems (like Android) that requires such pixel formats.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Yuchou Gan [Fri, 8 Dec 2017 16:22:11 +0000 (00:22 +0800)]
MGS-3495 [#imx-701] gpu failed to power off when nothing to be update
Merge fix patch from VSI. Tested on wayland,the power could be cut
off in a few seconds, if ctrl + c to terminate a running program making
gpu idle
Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
Reviewed-by: Yuchou Gan <yuchou.gan@nxp.com>
Reviewed-by: Xianzhong <xianzhong.li@nxp.com>
Li Jun [Fri, 8 Dec 2017 08:56:06 +0000 (16:56 +0800)]
MLK-17110 usb: dwc3: use system_freezable_wq for role change work
To avoid deadlock after system resume if the role changes notification
is sent while system resume, we need to drain the work handling until
thawed.
Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
Badhri Jagan Sridharan [Mon, 28 Aug 2017 17:23:21 +0000 (10:23 -0700)]
staging: typec: tcpm: Do not send PING msgs in TCPM
PING messages are used to monitor the connect/disconnect.
However, when PD is carried over CC, so this is not required.
Also, the spec does not clearly say if PD is possible when
Type-c is connected to Type-A/B. So, removing sending
PING messages altogether.
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit
f451ac9e4c6dd2c9ee5397a28a60084fc77f63d7)
Liu Ying [Thu, 7 Dec 2017 08:53:02 +0000 (16:53 +0800)]
MLK-17112 gpu: imx: dpu: Ensure the dpu core is late suspended & early resumed
The dpu core driver needs to do some cleanup work for the
upper layer drivers, so it should be late suspended and
early resumed. This patch ensures this by changing driver
PM hook definitions to use SET_LATE_SYSTEM_SLEEP_PM_OPS
instead of SET_SYSTEM_SLEEP_PM_OPS.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Bai Ping [Fri, 22 Sep 2017 06:58:49 +0000 (14:58 +0800)]
MLK-17104 drivers: clk: imx: change the VPU related clock flags of imx8mq
When the system reaches the passive critical trip point, VPU device cooling
need to change the clock rate on the fly. So change the VPU related clocks
flags to make sure the clock rate can be changed successfully.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Reviewed-by: Anson Huang <Anson.Huang@nxp.com>
Anson Huang [Wed, 6 Dec 2017 13:51:32 +0000 (21:51 +0800)]
MLK-17083 soc: imx: limit VPU/CPU bandwidth for lcdif on i.MX8MQ
Config NOC to limit bandwidth to 4GB for both VPU
and CPU to avoid lcdif flickering only when lcdif is enabled.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
(cherry picked from commit
8ab89ebeb94a423792bf588bdf2354c5960d8f13)
Robin Gong [Mon, 4 Dec 2017 07:35:09 +0000 (15:35 +0800)]
MLK-17094 dma: fsl-edma-v3: add suspend/resume to restore back channel registers
Add suspend to save channel registers and resume to restore them back since
edmav3 may powered off in suspend.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Han Xu [Thu, 7 Dec 2017 20:28:34 +0000 (14:28 -0600)]
MLK-17120: arm64: dts: assign the clock rate for GPMI NAND in DT
Assign the clock rate for GPMI NAND on i.MX8QXP ARM2 device tree.
To keep the same clock rate after system suspend/resume, we need to set
assign a clock rate for GPMI NAND, otherwise the timing register won't
match with the clock setting.
The code change also a workaround for SCU clock rate setting. NAND use a
very low clock freq (22Mhz) and safe timing to identify which chips were
connected. This low freq divide from high freq parent clock(1Ghz) caused
the SCU clock divider go beyond the limit (31)
SCU need to implement the clk_round_rate to found this issue and return
error value to upper layer. Right now assign 50Mhz for GPMI initial
clock as a workaround.
Signed-off-by: Han Xu <han.xu@nxp.com>
Frank Li [Mon, 4 Dec 2017 17:59:39 +0000 (11:59 -0600)]
MLK-17081 arm64: imx8mq: export chip unique id
cat /sys/devices/soc0/soc_uid
1b1331d6f0609502
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Li Jun [Wed, 6 Dec 2017 15:55:51 +0000 (23:55 +0800)]
MLK-17092 staging: typec: enable vbus voltage low alarm
We use vbus low voltage alarm to start vbus discharge to meet
timing requirement on turning off vbus for power swap from
source to sink, per type-C port controller spec(tcpci), the
Voltage Alarms Power status reporting is disabled by default,
so we need enable it at tcpci init.
Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
Li Jun [Wed, 6 Dec 2017 14:05:31 +0000 (22:05 +0800)]
MLK-17077 staging: typec: clear vbus change event in irq handler
For vbus change event, we need read the vbus status to clear
the alert. Current code do this in queue work, this has problem
on single core running, the queue work of vbus change may have
no chance to be scheduled as we continue receive the vbus change
event in threaded irq.
Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
Robert Chiras [Wed, 6 Dec 2017 09:31:48 +0000 (11:31 +0200)]
MLK-16986-5: arm64: dts: fsl-imx8mq.dtsi: Define max-res of lcdif node to 720p
Limit the maximum resolution supported by LCDIF to 1280x720, for better
performance when used with DCSS in dual-display mode.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com
Robert Chiras [Wed, 6 Dec 2017 09:31:21 +0000 (11:31 +0200)]
MLK-16986-4: drm/mxsfb: Add max-res property for MXSFB
For stability issues, we want to limit the maximum resolution supported
by the MXSFB (eLCDIF) driver.
This patch adds a new property which we can use to impose such
limitation.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com
Robert Chiras [Tue, 5 Dec 2017 16:36:02 +0000 (18:36 +0200)]
MLK-16986-3: drm/imx: Add a delay to enable function in nwl_dsi-imx
To allow the PLL to become stable before enabling the clocks, we may
need a delay. This patch adds a new property to specify this delay from
DTS file.
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Robert Chiras [Tue, 5 Dec 2017 07:34:14 +0000 (09:34 +0200)]
MLK-16986-2: drm/imx: Fix nwl_dsi-imx driver
Since the ADV7535 can change the DSI lanes used in mode_set, we need to
set up the Mixel PHY speed again, in enable() function, so that we will
take into account the new DSI lanes.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com
Robert Chiras [Tue, 5 Dec 2017 07:24:24 +0000 (09:24 +0200)]
MLK-16986-1: phy: Fix Mixel PHY driver best_match
When setting up the CM, CN and CO decimal values for DPHY PLL, these
values should only be rounded up when a "best_match" is requested. Some
DSI receivers requires the DSI clock to be exactly matched with the
pixel clock.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com
Eric Anholt [Thu, 8 Jun 2017 00:13:35 +0000 (17:13 -0700)]
drm/vc4: Add T-format scanout support.
The T tiling format is what V3D uses for textures, with no raster
support at all until later revisions of the hardware (and always at a
large 3D performance penalty). If we can't scan out V3D's format,
then we often need to do a relayout at some stage of the pipeline,
either right before texturing from the scanout buffer (common in X11
without a compositor) or between a tiled screen buffer right before
scanout (an option I've considered in trying to resolve this
inconsistency, but which means needing to use the dirty fb ioctl and
having some update policy).
T-format scanout lets us avoid either of those shadow copies, for a
massive, obvious performance improvement to X11 window dragging
without a compositor. Unfortunately, enabling a compositor to work
around the discrepancy has turned out to be too costly in memory
consumption for the Raspbian distribution.
Because the HVS operates a scanline at a time, compositing from T does
increase the memory bandwidth cost of scanout. On my 1920x1080@32bpp
display on a RPi3, we go from about 15% of system memory bandwidth
with linear to about 20% with tiled. However, for X11 this still ends
up being a huge performance win in active usage.
This patch doesn't yet handle src_x/src_y offsetting within the tiled
buffer. However, we fail to do so for untiled buffers already.
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: http://patchwork.freedesktop.org/patch/msgid/20170608001336.12842-1-eric@anholt.net
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
(cherry picked from commit
98830d91da082b0285d35bdf5b5ae98decac7df6)
Alexandre Courbot [Tue, 8 Nov 2016 07:50:42 +0000 (16:50 +0900)]
drm/tegra: Add tiling FB modifiers
Add FB modifiers to allow user-space to specify that a surface is in one
of the two tiling formats supported by Tegra chips, and add support in
the tegradrm driver to handle them properly. This is necessary for the
display controller to directly display buffers generated by the GPU.
This feature is intended to replace the dedicated IOCTL enabled
by TEGRA_STAGING and to provide a non-staging alternative to that
solution.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Thierry Reding <treding@nvidia.com>
(cherry picked from commit
5e91144dd702d068b22a75911c06104e56cb4858)
Philipp Zabel [Thu, 26 Jan 2017 15:32:17 +0000 (16:32 +0100)]
drm/fourcc: add vivante tiled layout format modifiers
Vivante GC hardware uses simple 4x4 tiled and nested 64x64 supertiled
formats as well as so-called split-tiled variants for dual-pipe
hardware, where even and odd tiles start at different base addresses.
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-By: Wladimir J. van der Laan <laanwj@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170126153217.26916-1-p.zabel@pengutronix.de
(cherry picked from commit
73f1a5858bf82f3bf2326af2d2adea7305c830de)
Rafael J. Wysocki [Sun, 30 Oct 2016 16:32:16 +0000 (17:32 +0100)]
driver core: Functional dependencies tracking support
Currently, there is a problem with taking functional dependencies
between devices into account.
What I mean by a "functional dependency" is when the driver of device
B needs device A to be functional and (generally) its driver to be
present in order to work properly. This has certain consequences
for power management (suspend/resume and runtime PM ordering) and
shutdown ordering of these devices. In general, it also implies that
the driver of A needs to be working for B to be probed successfully
and it cannot be unbound from the device before the B's driver.
Support for representing those functional dependencies between
devices is added here to allow the driver core to track them and act
on them in certain cases where applicable.
The argument for doing that in the driver core is that there are
quite a few distinct use cases involving device dependencies, they
are relatively hard to get right in a driver (if one wants to
address all of them properly) and it only gets worse if multiplied
by the number of drivers potentially needing to do it. Morever, at
least one case (asynchronous system suspend/resume) cannot be handled
in a single driver at all, because it requires the driver of A to
wait for B to suspend (during system suspend) and the driver of B to
wait for A to resume (during system resume).
For this reason, represent dependencies between devices as "links",
with the help of struct device_link objects each containing pointers
to the "linked" devices, a list node for each of them, status
information, flags, and an RCU head for synchronization.
Also add two new list heads, representing the lists of links to the
devices that depend on the given one (consumers) and to the devices
depended on by it (suppliers), and a "driver presence status" field
(needed for figuring out initial states of device links) to struct
device.
The entire data structure consisting of all of the lists of link
objects for all devices is protected by a mutex (for link object
addition/removal and for list walks during device driver probing
and removal) and by SRCU (for list walking in other case that will
be introduced by subsequent change sets). If CONFIG_SRCU is not
selected, however, an rwsem is used for protecting the entire data
structure.
In addition, each link object has an internal status field whose
value reflects whether or not drivers are bound to the devices
pointed to by the link or probing/removal of their drivers is in
progress etc. That field is only modified under the device links
mutex, but it may be read outside of it in some cases (introduced by
subsequent change sets), so modifications of it are annotated with
WRITE_ONCE().
New links are added by calling device_link_add() which takes three
arguments: pointers to the devices in question and flags. In
particular, if DL_FLAG_STATELESS is set in the flags, the link status
is not to be taken into account for this link and the driver core
will not manage it. In turn, if DL_FLAG_AUTOREMOVE is set in the
flags, the driver core will remove the link automatically when the
consumer device driver unbinds from it.
One of the actions carried out by device_link_add() is to reorder
the lists used for device shutdown and system suspend/resume to
put the consumer device along with all of its children and all of
its consumers (and so on, recursively) to the ends of those lists
in order to ensure the right ordering between all of the supplier
and consumer devices.
For this reason, it is not possible to create a link between two
devices if the would-be supplier device already depends on the
would-be consumer device as either a direct descendant of it or a
consumer of one of its direct descendants or one of its consumers
and so on.
There are two types of link objects, persistent and non-persistent.
The persistent ones stay around until one of the target devices is
deleted, while the non-persistent ones are removed automatically when
the consumer driver unbinds from its device (ie. they are assumed to
be valid only as long as the consumer device has a driver bound to
it). Persistent links are created by default and non-persistent
links are created when the DL_FLAG_AUTOREMOVE flag is passed
to device_link_add().
Both persistent and non-persistent device links can be deleted
with an explicit call to device_link_del().
Links created without the DL_FLAG_STATELESS flag set are managed
by the driver core using a simple state machine. There are 5 states
each link can be in: DORMANT (unused), AVAILABLE (the supplier driver
is present and functional), CONSUMER_PROBE (the consumer driver is
probing), ACTIVE (both supplier and consumer drivers are present and
functional), and SUPPLIER_UNBIND (the supplier driver is unbinding).
The driver core updates the link state automatically depending on
what happens to the linked devices and for each link state specific
actions are taken in addition to that.
For example, if the supplier driver unbinds from its device, the
driver core will also unbind the drivers of all of its consumers
automatically under the assumption that they cannot function
properly without the supplier. Analogously, the driver core will
only allow the consumer driver to bind to its device if the
supplier driver is present and functional (ie. the link is in
the AVAILABLE state). If that's not the case, it will rely on
the existing deferred probing mechanism to wait for the supplier
driver to become available.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit
9ed9895370aedd6032af2a9181c62c394d08223b)
Rafael J. Wysocki [Mon, 10 Oct 2016 12:37:56 +0000 (14:37 +0200)]
driver core: Add a wrapper around __device_release_driver()
Add an internal wrapper around __device_release_driver() that will
acquire device locks and do the necessary checks before calling it.
The next patch will make use of it.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit
4bdb35506b89cbbd150c1baa284e7c191698241f)
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>
Shengjiu Wang [Wed, 6 Dec 2017 02:48:20 +0000 (10:48 +0800)]
MLK-17089-6: ASoC: wm8962: 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.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Shengjiu Wang [Wed, 15 Nov 2017 09:54:36 +0000 (17:54 +0800)]
MLK-17089-5: ASoC: wm8962: restore the CLOCKING2 register
The CLOCKING2 is a volatile register, but some bits should
be restored when resume, for example SYSCLK_SRC. otherwise
the output clock is wrong
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Shengjiu Wang [Wed, 6 Dec 2017 02:42:30 +0000 (10:42 +0800)]
MLK-17089-4: ASoC: fsl_spdif: 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>
Shengjiu Wang [Wed, 6 Dec 2017 03:41:03 +0000 (11:41 +0800)]
MLK-17089-3: ASoC: wm8960: 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.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Shengjiu Wang [Wed, 6 Dec 2017 03:40:31 +0000 (11:40 +0800)]
MLK-17089-2: ASoC: fsl_esai: 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>
Shengjiu Wang [Wed, 6 Dec 2017 03:40:20 +0000 (11:40 +0800)]
MLK-17089-1: ASoC: fsl_sai: 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>
Guoniu.Zhou [Wed, 15 Nov 2017 11:10:38 +0000 (19:10 +0800)]
MLK-16823-1: mipi_csi: Add runtime suspend/resume
Add runtime suspend/resume features support for mipi csi.
For saving power, the mipi_csi turn off it's power domain
and clock after probe.
In order to share code with system pm suspend/resume, I
change system suspend/resume in this patch.
Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit
f88f4ac99b23e03b1cc1d87209875d6001dbbbe5)
Guoniu.Zhou [Wed, 15 Nov 2017 12:13:30 +0000 (20:13 +0800)]
MLK-16823-2: mipi_csi: Add runtime suspend/resume
Add runtime suspend/resume support for ISI. For saving
power, the ISI turn off it's power domain after probe.
Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit
d0cf6f32660c5b03fda5083fee578579f22c4d3b)
Liu Ying [Fri, 1 Dec 2017 08:39:54 +0000 (16:39 +0800)]
MLK-17059 drm/imx: dpu: crtc: Disable plane src stream ids if necessary in atomic flush
We've got chance to commit update for one display stream only instead of
always binding two display streams together for commit since the below
commit. Thus, we should disable plane source stream ids where necessary
only for one CRTC in ->atomic_flush().
Fixes:
7798441bb25e ("MLK-16771 drm/imx: dpu: kms: Change to use a better KMS")
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Robert Chiras [Mon, 27 Nov 2017 15:14:26 +0000 (17:14 +0200)]
MLK-16926-4: arm64: dts: fsl-imx8mq-evk: Add sync polarity for LCDIF use-cases
For some reasons, the sync polarity of the eLCDIF when used with NWL DSI
controller needs to be HIGH, so set it in the DTS nodes.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Robert Chiras [Mon, 27 Nov 2017 14:49:27 +0000 (16:49 +0200)]
MLK-16926-3: drm/imx: Add sync-pol to nwl_dsi-imx
Add a new dt property to the nwl_dsi-imx driver: sync-pol.
This property represents the sync polarity of the input signal to it's
internal DPI-to-DSI block.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Robert Chiras [Thu, 16 Nov 2017 11:28:55 +0000 (13:28 +0200)]
MLK-16926-2: drm/panel Update Raydium panel
If a GPIO pin is present, set it to LOW, so that the initial
configuration comes from a LOW value on that pin.
This patch was needed, since the panel driver had issues on MX8MQ.
Also, use the bus specific flags from display timings flags in order to
set them as display_info bus_flags.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Robert Chiras [Thu, 16 Nov 2017 11:48:56 +0000 (13:48 +0200)]
MLK-16926-1: arm64: dts: fsl-imx8mq-evk: Enable mipi-dsi with dcss
Enabled DCSS-DSI-ADV7535 and DCSS-DSI-RM67191 paths on MX8MQ EVK
development board.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Fabio Estevam [Fri, 5 May 2017 18:01:41 +0000 (15:01 -0300)]
MLK-16986-6: drm: mxsfb_crtc: Reset the eLCDIF controller
According to the eLCDIF initialization steps listed in the MX6SX
Reference Manual the eLCDIF block reset is mandatory.
Without performing the eLCDIF reset the display shows garbage content
when the kernel boots.
In earlier tests this issue has not been observed because the bootloader
was previously showing a splash screen and the bootloader display driver
does properly implement the eLCDIF reset.
Add the eLCDIF reset to the driver, so that it can operate correctly
independently of the bootloader.
Tested on a imx6sx-sdb board.
Cc: <stable@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1494007301-14535-1-git-send-email-fabio.estevam@nxp.com
Fabio Estevam [Thu, 2 Feb 2017 21:26:38 +0000 (19:26 -0200)]
MLK-16986-5: drm: mxsfb_crtc: Fix the framebuffer misplacement
Currently the framebuffer content is displayed with incorrect offsets
in both the vertical and horizontal directions.
The fbdev version of the driver does not show this problem. Breno Lima
dumped the eLCDIF controller registers on both the drm and fbdev drivers
and noticed that the VDCTRL3 register is configured incorrectly in the
drm driver.
The fbdev driver calculates the vertical and horizontal wait counts
of the VDCTRL3 register by doing: back porch + sync length.
Looking at the horizontal and vertical timing diagram from
include/drm/drm_modes.h this value corresponds to:
crtc_[hv]total - crtc_[hv]sync_start
So fix the VDCTRL3 register setting accordingly so that the eLCDIF
controller can properly show the framebuffer content in the correct
position.
Reported-by: Breno Lima <breno.lima@nxp.com>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Tested-by: Breno Lima <breno.lima@nxp.com>
Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Robert Chiras [Fri, 24 Nov 2017 12:04:24 +0000 (14:04 +0200)]
MLK-16986-4: drm: bridge: adv7511: set bus_flags and bus_format
For a proper initialization of the crtc driving the connector for this
bridge, we need to set the bus_formats and bus_flags of the connector's
display_info.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Robert Chiras [Fri, 24 Nov 2017 12:03:51 +0000 (14:03 +0200)]
MLK-16986-3: drm: mxsfb: fix connector handling
Since the MXSFB initially was just a simple display pipe using a
drm_panel, the drm_connector was created "in-house", by mxsfb driver.
But, with latest changes, mxsfb also supports a bridge. In case of a
drm_bridge, the the connector is created and initialized by that bridge.
So, for a proper initialization during start-up, we need to take into
consideration that connector, instead of our "in-house" connector.
The connector created and initialized by mxsfb will be used only when
this driver will have a panel.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Stefan Agner [Wed, 14 Dec 2016 20:48:09 +0000 (12:48 -0800)]
MLK-16986-2: drm: mxsfb: fix pixel clock polarity
The DRM subsystem specifies the pixel clock polarity from a
controllers perspective: DRM_BUS_FLAG_PIXDATA_NEGEDGE means
the controller drives the data on pixel clocks falling edge.
That is the controllers DOTCLK_POL=0 (Default is data launched
at negative edge).
Also change the data enable logic to be high active by default
and only change if explicitly requested via bus_flags. With
that defaults are:
- Data enable: high active
- Pixel clock polarity: controller drives data on negative edge
Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Stefan Agner [Thu, 15 Dec 2016 01:28:41 +0000 (17:28 -0800)]
MLK-16986-1: drm: mxsfb: use bus_format to determine LCD bus width
The LCD bus width does not need to align with the pixel format. The
LCDIF controller automatically converts between pixel formats and
bus width by padding or dropping LSBs.
The DRM subsystem has the notion of bus_format which allows to
determine what bus_formats are supported by the display. Choose the
first available or fallback to 24 bit if none are available.
Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
Bai Ping [Tue, 5 Dec 2017 02:04:50 +0000 (10:04 +0800)]
MLK-17082-02 ARM: dts: imx: Add dedicated dts for optee support on imx6sl/sll
Add dedicated dts file to support optee on imx6sl/sll. The OCRAM is resized
to make sure the OCRAM space used by TEE side is not visiable to no-secure
linux kernel side.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Bai Ping [Tue, 5 Dec 2017 02:00:54 +0000 (10:00 +0800)]
MLK-17082-01 ARM: imx: Add psci support in cpuidle for imx6sl/sll
Using PSCI to handle low power idle when linux is running in
no secure world. If the kernel is running in secure world, keep
using the method we used before.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Robin Gong [Mon, 4 Dec 2017 07:21:03 +0000 (15:21 +0800)]
MLK-17072-2: ARM64: dts: freescale: imx8qm/qxp: enable MU as wakeup source
Enable MU as wakeup source in dts.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Robin Gong [Mon, 4 Dec 2017 06:57:13 +0000 (14:57 +0800)]
MLK-17072-1: soc: imx: sc: ipc: enable MU interrupt as wakeup source
Currently, kernel still can be wakeup-ed by MU even without enabling it
as a wakeup source. That's because of MU never off in suspend and scfw
can wakeup A53 if MU interrupt not disabled or masked in GIC. But in a
corner case that the MU interrupt coming after suspend_device_irqs, MU
interrupt will be masked by below code in handle_fasteoi_irq:
if (unlikely(!desc->action || irqd_irq_disabled(&desc->irq_data))) {
desc->istate |= IRQS_PENDING;
mask_irq(desc);
goto out;
}
Thus, next MU interrupt after kernel suspend can't wakeup A53 since it's
masked in GIC and scfw can't see the 'wakeup' interrupt to power up A53.
But from kernel view, that's ok since MU interrupt not set to a wakeup
source. Enable MU as a wakeup source to follow the normal kernel wakeup
device/source flow.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Adrian Alonso [Fri, 1 Dec 2017 16:21:28 +0000 (10:21 -0600)]
MLK-16929-3: dts: arm64: fsl imx8mq evk pdm mic support
Add pdm mic support on imx8mq evk platform
Hardware modifications connect PDM mic:
PDM pin SAI-3 pad Test point
------------------------------------
BCLK SAI3_RXC TP1802
DATA SAI3_RXD TP1804
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Adrian Alonso [Thu, 14 Sep 2017 20:43:21 +0000 (15:43 -0500)]
MLK-16929-2: sound: soc: fsl: imx pdm mic driver over SAI
i.MX Sound SoC Audio support for PDM mics on SAI
Set audio recording hardware constrains, support
Sample rates: 8000, 16000, 32000, 48000, 64000
PDM decimation factor property fixed to 64
Number of channels: 1
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Shengjiu Wang [Thu, 23 Nov 2017 05:32:13 +0000 (13:32 +0800)]
MLK-16929-1: ASoC: fsl_sai: add bitclk_freq
Allow set SAI bit clock frequency trough snd_soc_dai_set_sysclk
function call on machine sound drivers.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>