linux.git
6 years agoMLK-19252-6 drm/bridge: sec-dsim: improve DPHY TIMING configs
Fancy Fang [Tue, 21 Aug 2018 14:09:35 +0000 (22:09 +0800)]
MLK-19252-6 drm/bridge: sec-dsim: improve DPHY TIMING configs

The SEC provides a table to guide the DPHY TIMINGS config based
on the PLL output bit clock frequency for DSIM. So create the
table which is used by SEC LN14LPP DPHY with HS Timing v1.2 and
this table will be used by the SEC DSIM Bridge driver to help to
config the corresponding DPHY Timings correctly for each display
mode. Along with the table, a DPHY TIMING table entry 'compare'
method is implemented for the binary search when lookup the
suitable DPHY TIMING entry.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit eb899b434be6127db26c370bf200d8072eaf01c4)
(cherry picked from commit 3b23233dafd65d6ea8c1fa12e8992c58ebc412bc)
(cherry picked from commit f83d7cac521cb4d20ac2f9093354f55055189ff7)

6 years agoMLK-19252-5 drm/bridge: sec-dsim: improve PLL PMS configs
Fancy Fang [Thu, 16 Aug 2018 11:12:46 +0000 (19:12 +0800)]
MLK-19252-5 drm/bridge: sec-dsim: improve PLL PMS configs

Generally, different modes request different frequency bit clock,
so create a table to contain the PLL PMS config for each display
mode. This commit first contains several PLL PMS config entry for
several most popular CEA standard display modes.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 016ebc631e592e16848cd6426dd5b262a401746f)
(cherry picked from commit 5cddc84ba36c8107ec24f44a59351886181acdf1)
(cherry picked from commit c423258e23b9c6e7c3d777a856b370fc0715baff)

6 years agoMLK-19252-4 drm/bridge: sec-dsim: improve HT configs
Fancy Fang [Thu, 16 Aug 2018 06:00:26 +0000 (14:00 +0800)]
MLK-19252-4 drm/bridge: sec-dsim: improve HT configs

To make some DSI peripheral which can work only with 'Non-burst
with Sync Pulse mode' to display CEA standard timings, and there
is no common way to get the horizontal blanking timings for all
the display modes according to the test, and this is also related
with the data lanes used for data transfer, so create an horizontal
blanking parameters table for 2 and 4 data lanes mode respectively
for several popular CEA standard display modes.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 8fe1e3d77af5d380da4642c9f99c2dc59f5c5484)
(cherry picked from commit dbd661c160530e94e8c92c3272b77d74a72f48af)
(cherry picked from commit 31bf411cfeee65f9a15a9cf70ea9a9cda5203e2c)

6 years agoMLK-19252-3 drm/bridge: sec-dsim: workaround 3 data lanes case
Fancy Fang [Wed, 15 Aug 2018 06:14:21 +0000 (14:14 +0800)]
MLK-19252-3 drm/bridge: sec-dsim: workaround 3 data lanes case

According to a lot of tests and debug, for the Non-Burst with
Sync Pulse mode with 3 data lanes enable, the DSI peripheral
ADV7535 cannot display correctly, but the output timings seems
to be correct. Until now, the root cause for this issue still
cannot be found. So make this workaround to force to use 2 data
lanes when meeting the 3 lanes requests.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 6e7bc3bfd5b03da698a4024199bb696b792cc14e)
(cherry picked from commit 14f43f0aef26418e10f7840db726e990e557a2d1)
(cherry picked from commit 28dfae13bc259a99b8ee15f95e65b48cc7dbb2f8)

6 years agoMLK-19252-2 drm/bridge: adv7511: realize mode_fixup for lanes fixup
Fancy Fang [Wed, 15 Aug 2018 02:45:27 +0000 (10:45 +0800)]
MLK-19252-2 drm/bridge: adv7511: realize mode_fixup for lanes fixup

In the current implementation, the data lanes fixup is done in
the Bridge's mode_set() function which is too late to give the
upper layer Bridge a chance to check this change to be supported
or not and a chance to refuse this commit if it does not support
the requested data lanes number.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit c97f9febd7e42d7865921e2bb56648ebb13c0761)
(cherry picked from commit 36f25495a5c30e66e033cfd3d46d4693f50fc8f7)
(cherry picked from commit de7e9c83c7503255c512b5c78165ba7924c7269e)

6 years agoMLK-19252-1 drm/bridge: sec-dsim: move PLL check to DSIM Encoder
Fancy Fang [Wed, 15 Aug 2018 01:28:09 +0000 (09:28 +0800)]
MLK-19252-1 drm/bridge: sec-dsim: move PLL check to DSIM Encoder

Defer the PLL output check to the SEC DSIM Encoder's atomic check
from SEC DSIM Bridge's mode_fixup(), since in the attached DSI
device Bridge's mode_fixup(), it may change the data lanes number,
and this change is done after the SEC DSIM Bridge's mode_fixup().
And the DSIM Encoder's atomic check is the ideal place to do this
PLL check, since it happens after all the Bridges' mode_fixup()
done.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit c9bce66fed982383dde189c428d4c2ee2c2fc623)
(cherry picked from commit ead3666313e552296da7e7b5094579b47dbdc364)
(cherry picked from commit 6a8fa239b31eca24f32b350e3c7e3118684b7323)

6 years agoMLK-19537-3 drm/imx: sec-dsim_imx: remove dphy slave reset
Fancy Fang [Tue, 11 Sep 2018 07:26:39 +0000 (15:26 +0800)]
MLK-19537-3 drm/imx: sec-dsim_imx: remove dphy slave reset

Remove dphy slave reset and only keep master reset for mipi dsi

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

6 years agoMLK-19158-5 drm/imx: lcdif: add bus format check to CRTC's check
Fancy Fang [Sun, 12 Aug 2018 08:10:01 +0000 (16:10 +0800)]
MLK-19158-5 drm/imx: lcdif: add bus format check to CRTC's check

Add the check to LCDIF CRTC atomic check for the requested bus
format by encoder with the bus format which can be supported by
LCDIF CRTC to refuse unsupported case.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit e98afe9b6b20c2494c8570427b7811ed9ce202e8)
(cherry picked from commit 9f1bb920916492fba4b6c82f4c25203ce8090298)

6 years agoMLK-19158-4 drm/imx: lcdif: remove bus format check from PLANE's check
Fancy Fang [Sun, 12 Aug 2018 07:47:41 +0000 (15:47 +0800)]
MLK-19158-4 drm/imx: lcdif: remove bus format check from PLANE's check

Since the LCDIF output data width can be different from the data
width of input pixel data, so the bus format check in the plane's
atomic check is not correct anymore, and need to be removed.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 2245702e7905fa7b75aec92fdbb9ffeb33bdb6de)
(cherry picked from commit facd1962b0f89cf80435e458194189e55ef00fac)

6 years agoMLK-19158-3 gpu: imx: lcdif: fix output order for 16bpp BGR formats
Fancy Fang [Sun, 12 Aug 2018 04:02:43 +0000 (12:02 +0800)]
MLK-19158-3 gpu: imx: lcdif: fix output order for 16bpp BGR formats

The 16bpp BGR order pixel formats 'DRM_FORMAT_ABGR1555' and
'DRM_FORMAT_XBGR1555' also require to be re-ordered to RGB
order for display, just like the format 'DRM_FORMAT_BGR565'
does.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit f5cc4f4699570fe697d21cb47c54aa91b82c8458)
(cherry picked from commit f16eac4a32b333b8ccdadaebf540f2d2a522d240)

6 years agoMLK-19158-2 drm/imx: lcdif: improve output bus format config
Fancy Fang [Sun, 12 Aug 2018 00:58:43 +0000 (08:58 +0800)]
MLK-19158-2 drm/imx: lcdif: improve output bus format config

According to LCDIF specification, the input pixel data
width and the output pixel data width can be different,
and this conversion is done by LCDIF automatically. So
config the output data width according to the requested
bus format from the encoder, instead to be same with the
input pixel data width.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit bfd27f6d71d86a7f2fc8314f082565db3682b925)
(cherry picked from commit a5940ee5db21adc76721d33c2171aa593d9a8ea8)

6 years agoMLK-19158-1 drm/imx: sec-dsim_imx: add bus format check for ENCODER
Fancy Fang [Fri, 10 Aug 2018 14:40:18 +0000 (22:40 +0800)]
MLK-19158-1 drm/imx: sec-dsim_imx: add bus format check for ENCODER

The connector's 'display_info' usually includes all the bus
formats the display peripheral device can be accepted. And
the DRM adjusted display mode's 'private_flags' includes
bus format the DSIM bridge requested according to the DSI
device display format. Add the bus format check to the DSIM
encoder's atomic check to make sure these two bus formats
have intersection.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 6d804db82b95411ebad9fcfb43b3acecee5941d9)
(cherry picked from commit db574fd09da97c5f5c2f12b0aa47519969edd06f)

6 years agoMLK-19199 drm/imx: lcdif: replace FB width usage for cropping
Fancy Fang [Fri, 10 Aug 2018 04:22:18 +0000 (12:22 +0800)]
MLK-19199 drm/imx: lcdif: replace FB width usage for cropping

According to the comments of 'struct drm_framebuffer', its
'width' field refers to the logical width of the visible
area of the framebuffer. This may be unequal to the total
pixels number of a line. So use the 'pitches' field to
replace 'width' for the horizontal cropping feature.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 9a2bbbf971ed79b32ae1c7da2d62b8a72f3ccffd)
(cherry picked from commit 0649fa3e27916edf43dcb9f1edc965e2cf1175e1)

6 years agoMLK-19152-3 drm/imx: lcdif: add horizontal crop support to plane update
Fancy Fang [Tue, 7 Aug 2018 10:37:06 +0000 (18:37 +0800)]
MLK-19152-3 drm/imx: lcdif: add horizontal crop support to plane update

Add horizontal cropping support when atomic plane update is
running, and if the attached CRTC needs modeset. And if the
width of visible portion of plane is equal to the fb surface
width, the Pigeon Mode will be disabled, so cropping will be
disabled.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 30672b2b18a07a2926979cc533cbb84ea4a642dd)
(cherry picked from commit 3bdf9efa9f1ebb995c79a60da4d579d21310670d)

6 years agoMLK-19152-2 drm/imx: lcdif: force 'mode_changed' when fb width changed
Fancy Fang [Tue, 7 Aug 2018 09:41:39 +0000 (17:41 +0800)]
MLK-19152-2 drm/imx: lcdif: force 'mode_changed' when fb width changed

In DRM atomic modeset check, it will not check the fb's width
change, so in later atomic commit, it will not disable the CRTC
which has no mode changed. But for LCDIF, the fb width related
registers configuration can not be done when LCDIF is running.
So force 'mode_changed' to be true when fb width changed.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 518ff82756a39ff2d2f750596295baa4f5fca4c5)
(cherry picked from commit c399d83491cb80ca9d6b040cdf3e9d1e709785b2)

6 years agoMLK-19152-1 gpu: imx: lcdif: realize fb horizontal crop via Pigeon Mode
Fancy Fang [Tue, 7 Aug 2018 10:04:54 +0000 (18:04 +0800)]
MLK-19152-1 gpu: imx: lcdif: realize fb horizontal crop via Pigeon Mode

According to the LCDIF specification, the Legacy Mode does not
support cropping function in the horizontal direction, so add
Pigeon Mode which can support this kind of function. And when
enable this mode, the legacy horizontal timings configuration
should use stride value but not the active width, and related
pigeon configuration should use the active width but not the
stride value.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit e6da9542693dd585972897f62748a101f5726a74)
(cherry picked from commit 55a2e07dd598d996cb3fbb35e3a61058962f20a5)

6 years agoMLK-19112 gpu: imx: lcdif: change 'rpm_suspended' to be atomic counter
Fancy Fang [Thu, 2 Aug 2018 06:08:56 +0000 (14:08 +0800)]
MLK-19112 gpu: imx: lcdif: change 'rpm_suspended' to be atomic counter

Change the 'rpm_suspended' field to be an atomic type from
boolean type to make it have the counting ability which can
help to detect and avoid runtime suspend and resume calls
mismatch caused problems.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit dece6fbe51f9c0ea3cd42c52e1c174bd26ae70f1)
(cherry picked from commit 909a7d18608224861ef7a0aca6ba1e736a7570fa)

6 years agoMLK-19083 drm/imx: lcdif: remove untrue condition for pixel format set
Fancy Fang [Sun, 29 Jul 2018 11:09:31 +0000 (19:09 +0800)]
MLK-19083 drm/imx: lcdif: remove untrue condition for pixel format set

After supporting DISPMIX power domain, the LCDIF runtime
resume callback always write '0' to 'LCDIF_CTRL' register
which will clear previous pixel format related setting.
So the previous condition by comparing format change for
setting pixel format during plane atomic update is not
true anymore.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 5f84c69799456f28fd8182fd156e9067921e9a4e)
(cherry picked from commit 364fd1879c587fbdb80aa290df54609c30de7ef8)

6 years agoMLK-19082 drm/bridge: sec-dsim: wait 'ph_tx_done' for long packet send
Fancy Fang [Fri, 27 Jul 2018 14:50:17 +0000 (22:50 +0800)]
MLK-19082 drm/bridge: sec-dsim: wait 'ph_tx_done' for long packet send

According to a lot of tests, for long packet send, the packet
payload transfer done interrupt will be triggered no later than
the packet header transfer done interrupt. So, to make sure the
long packet has been send to the peripheral completely, wait
'ph_tx_done' interrupt instead of 'pl_tx_done' for long packet
transfer. Otherwise it may cause subsequent packet transfer
failed sometimes.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 69a5f44025c6ecb2fee16c1650a81198b501f284)
(cherry picked from commit 9f89a46266ecd905c701cc88e15d2303ac319acd)

6 years agoMLK-19017-7 drm/imx: sec-dsim_imx: add rpm status check for suspend/resume
Fancy Fang [Wed, 25 Jul 2018 07:42:51 +0000 (15:42 +0800)]
MLK-19017-7 drm/imx: sec-dsim_imx: add rpm status check for suspend/resume

Add runtime PM status check during runtime suspend and resume
to avoid unnecessary jobs if it is already in that state which
can avoid possible kernel warnings of clock disable/unprepare
mismatch during system suspend if it is alreay in runtime
suspended state.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 6f95c6fdc0de2fd4fe1d835c164f5e3cfb23e17d)
(cherry picked from commit b6f7433f5b795fa16c15ef9cb3551a371f42f25e)

6 years agoMLK-19017-6 drm/imx: add system pm support for SEC DSIM
Fancy Fang [Mon, 2 Jul 2018 10:41:16 +0000 (18:41 +0800)]
MLK-19017-6 drm/imx: add system pm support for SEC DSIM

Implement the suspend()/resume() callbacks to support system
power management functions for SEC DSIM.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit db3e9faa0278af6de5aaac008478123d0ebecb73)
(cherry picked from commit 549fb9fb7d4e29e72f4a5da707b3a378ee81081d)

6 years agoMLK-19017-5 drm/imx: add DISPMIX power domain support for SEC DSIM
Fancy Fang [Mon, 2 Jul 2018 10:33:28 +0000 (18:33 +0800)]
MLK-19017-5 drm/imx: add DISPMIX power domain support for SEC DSIM

After the DISPMIX power domain enabled, all the related registers
will drop their values once runtime pm suspend called. So in the
pm runtime resume process, the SEC DSIM de-reset and some init jobs
need to be done, and these jobs are no longer necessary to be done
during probe bind anymore.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 7a7f17f5fb66135629ef20a2b4780dfef2f0f0ce)
(cherry picked from commit 1f80017f237264f2c84579d8291de210b0ac746c)

6 years agoMLK-19017-4 gpu: imx: lcdif: add rpm status check for suspend/resume
Fancy Fang [Wed, 25 Jul 2018 07:25:37 +0000 (15:25 +0800)]
MLK-19017-4 gpu: imx: lcdif: add rpm status check for suspend/resume

Add runtime PM status check during runtime suspend and resume
to avoid unnecessary jobs if it is already in that state which
can avoid below kernel warnings during system suspend if it is
alreay in runtime suspended state:

[   21.772969] ------------[ cut here ]------------
[   21.772982] WARNING: CPU: 3 PID: 3328 at drivers/clk/clk.c:594 clk_core_disable+0x80/0x88
[   21.772986] Modules linked in:
[   21.772988]
[   21.772993] CPU: 3 PID: 3328 Comm: rtcwakeup.out Not tainted 4.9.88-05410-g9fa23e9ada2a #135
[   21.772995] Hardware name: FSL i.MX8MM EVK board (DT)
[   21.772997] task: ffff800074358c80 task.stack: ffff80007b40c000
[   21.773000] PC is at clk_core_disable+0x80/0x88
[   21.773003] LR is at clk_core_disable_lock+0x20/0x34
[   21.773005] pc : [<ffff0000084e1430>] lr : [<ffff0000084e1a5c>] pstate: 800001c5
[   21.773007] sp : ffff80007b40fa90
[   21.773010] x29: ffff80007b40fa90 x28: 0000000000000000
[   21.773014] x27: 0000000000000002 x26: ffff000009395000
[   21.773017] x25: ffff00000863473c x24: ffff0000092de3d0
[   21.773021] x23: ffff80007a53f870 x22: 0000000000000000
[   21.773024] x21: ffff00000862877c x20: ffff80007a049400
[   21.773027] x19: 0000000000000140 x18: 0000000000000002
[   21.773031] x17: 0000ffff93824858 x16: ffff00000822a200
[   21.773034] x15: 0000463fe3000000 x14: 0000000000000000
[   21.773037] x13: 0000000000000000 x12: 0000000000000000
[   21.773040] x11: 0000000000000000 x10: 0000000000000000
[   21.773044] x9 : 0000000040000000 x8 : 0000000000210d00
[   21.773047] x7 : 0000000000000000 x6 : 0010ed7f00000000
[   21.773051] x5 : ffff80007a53f9a8 x4 : 0000000000000000
[   21.773054] x3 : 0000000010c110c0 x2 : 0000000000000000
[   21.773057] x1 : 0000000000000000 x0 : ffff80007a049400
[   21.773058]
[   21.773060] ---[ end trace 4a8e187491f145ed ]---
[   21.773062] Call trace:
[   21.773065] Exception stack(0xffff80007b40f8b0 to 0xffff80007b40f9e0)
[   21.773068] f8a0:                                   0000000000000140 0000ffffffffffff
[   21.773071] f8c0: ffff80007b40fa90 ffff0000084e1430 00000000800001c5 000000000000003d
[   21.773074] f8e0: ffff80007b475c00 ffff80007b40c000 ffff80007b40c000 000000018020001e
[   21.773077] f900: ffff000008c53cec ffff80007b40c000 ffff80007b40f950 ffff0000085d3b9c
[   21.773081] f920: ffff80007b40f9b0 ffff0000085f3728 ffff80007b475c00 ffff80007b475c00
[   21.773084] f940: ffff80007b40f990 ffff0000085f2430 ffff80007b475c00 ffff80007abf8800
[   21.773087] f960: ffff80007a049400 0000000000000000 0000000000000000 0000000010c110c0
[   21.773090] f980: 0000000000000000 ffff80007a53f9a8 0010ed7f00000000 0000000000000000
[   21.773092] f9a0: 0000000000210d00 0000000040000000 0000000000000000 0000000000000000
[   21.773095] f9c0: 0000000000000000 0000000000000000 0000000000000000 0000463fe3000000
[   21.773098] [<ffff0000084e1430>] clk_core_disable+0x80/0x88
[   21.773101] [<ffff0000084e1a5c>] clk_core_disable_lock+0x20/0x34
[   21.773104] [<ffff0000084e1a8c>] clk_disable+0x1c/0x24
[   21.773110] [<ffff0000085c73a0>] lcdif_disable_clocks+0x1c/0x60
[   21.773113] [<ffff0000085c7718>] imx_lcdif_suspend+0x10/0x24
[   21.773118] [<ffff0000086287a0>] platform_pm_suspend+0x24/0x50
[   21.773123] [<ffff000008633b58>] dpm_run_callback.isra.12+0x30/0x8c
[   21.773126] [<ffff0000086345d4>] __device_suspend+0x110/0x278
[   21.773129] [<ffff000008635800>] dpm_suspend+0x114/0x240
[   21.773132] [<ffff000008635bfc>] dpm_suspend_start+0x6c/0x78
[   21.773137] [<ffff000008104e28>] suspend_devices_and_enter+0xbc/0x534
[   21.773139] [<ffff0000081054f8>] pm_suspend+0x258/0x2f4
[   21.773142] [<ffff000008104030>] state_store+0x80/0xf4
[   21.773147] [<ffff0000083e7ce8>] kobj_attr_store+0x14/0x24
[   21.773153] [<ffff00000825d974>] sysfs_kf_write+0x40/0x48
[   21.773156] [<ffff00000825cd48>] kernfs_fop_write+0xb8/0x1cc
[   21.773160] [<ffff0000081e2d00>] __vfs_write+0x28/0x110
[   21.773163] [<ffff0000081e3ae4>] vfs_write+0xa8/0x1a8
[   21.773166] [<ffff0000081e4ea0>] SyS_write+0x44/0xa0
[   21.773170] [<ffff0000080838d8>] __sys_trace_return+0x0/0x4
[   21.773184] ------------[ cut here ]------------
[   21.773188] WARNING: CPU: 3 PID: 3328 at drivers/clk/clk.c:476 clk_core_unprepare+0x88/0x98
[   21.773190] Modules linked in:
[   21.773192]
[   21.773195] CPU: 3 PID: 3328 Comm: rtcwakeup.out Tainted: G        W       4.9.88-05410-g9fa23e9ada2a #135
[   21.773196] Hardware name: FSL i.MX8MM EVK board (DT)
[   21.773198] task: ffff800074358c80 task.stack: ffff80007b40c000
[   21.773201] PC is at clk_core_unprepare+0x88/0x98
[   21.773204] LR is at clk_unprepare+0x28/0x34
[   21.773206] pc : [<ffff0000084e1320>] lr : [<ffff0000084e3130>] pstate: 60000145
[   21.773208] sp : ffff80007b40faa0
[   21.773211] x29: ffff80007b40faa0 x28: 0000000000000000
[   21.773215] x27: 0000000000000002 x26: ffff000009395000
[   21.773218] x25: ffff00000863473c x24: ffff0000092de3d0
[   21.773221] x23: ffff80007a53f870 x22: 0000000000000000
[   21.773225] x21: ffff00000862877c x20: ffff80007aafbf80
[   21.773228] x19: ffff80007aafb298 x18: 0000000000000002
[   21.773232] x17: 0000ffff93824858 x16: ffff00000822a200
[   21.773235] x15: 0000463fe3000000 x14: 0000000000000000
[   21.773238] x13: 0000000000000000 x12: 0000000000000000
[   21.773241] x11: 0000000000000000 x10: 0000000000000000
[   21.773245] x9 : 0000000040000000 x8 : 0000000000210d00
[   21.773248] x7 : 0000000000000000 x6 : 0010ed7f00000000
[   21.773251] x5 : ffff80007a53f9a8 x4 : ffff00000944b000
[   21.773255] x3 : 0000000000000000 x2 : ffff800074358c80
[   21.773258] x1 : 0000000000000000 x0 : ffff80007a049400
[   21.773259]
[   21.773260] ---[ end trace 4a8e187491f145ee ]---
[   21.773262] Call trace:
[   21.773264] Exception stack(0xffff80007b40f8c0 to 0xffff80007b40f9f0)
[   21.773267] f8c0: ffff80007aafb298 0000ffffffffffff ffff80007b40faa0 ffff0000084e1320
[   21.773270] f8e0: 0000000060000145 000000000000003d ffff80007b40c000 000000018020001e
[   21.773273] f900: ffff000008c53cec ffff80007b40c000 ffff80007b40f950 ffff0000085d3b9c
[   21.773276] f920: ffff80007b40f9b0 ffff0000085f3728 ffff80007b475c00 ffff80007b475c00
[   21.773279] f940: ffff80007b40f990 ffff0000085f2430 ffff80007b475c00 ffff80007abf8800
[   21.773282] f960: ffff80007a049400 0000000000000000 ffff80007a049400 0000000000000000
[   21.773285] f980: ffff800074358c80 0000000000000000 ffff00000944b000 ffff80007a53f9a8
[   21.773288] f9a0: 0010ed7f00000000 0000000000000000 0000000000210d00 0000000040000000
[   21.773291] f9c0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[   21.773293] f9e0: 0000000000000000 0000463fe3000000
[   21.773296] [<ffff0000084e1320>] clk_core_unprepare+0x88/0x98
[   21.773299] [<ffff0000084e3130>] clk_unprepare+0x28/0x34
[   21.773303] [<ffff0000085c73a8>] lcdif_disable_clocks+0x24/0x60
[   21.773306] [<ffff0000085c7718>] imx_lcdif_suspend+0x10/0x24
[   21.773309] [<ffff0000086287a0>] platform_pm_suspend+0x24/0x50
[   21.773312] [<ffff000008633b58>] dpm_run_callback.isra.12+0x30/0x8c
[   21.773315] [<ffff0000086345d4>] __device_suspend+0x110/0x278
[   21.773318] [<ffff000008635800>] dpm_suspend+0x114/0x240
[   21.773321] [<ffff000008635bfc>] dpm_suspend_start+0x6c/0x78
[   21.773324] [<ffff000008104e28>] suspend_devices_and_enter+0xbc/0x534
[   21.773327] [<ffff0000081054f8>] pm_suspend+0x258/0x2f4
[   21.773329] [<ffff000008104030>] state_store+0x80/0xf4
[   21.773332] [<ffff0000083e7ce8>] kobj_attr_store+0x14/0x24
[   21.773336] [<ffff00000825d974>] sysfs_kf_write+0x40/0x48
[   21.773339] [<ffff00000825cd48>] kernfs_fop_write+0xb8/0x1cc
[   21.773342] [<ffff0000081e2d00>] __vfs_write+0x28/0x110
[   21.773345] [<ffff0000081e3ae4>] vfs_write+0xa8/0x1a8
[   21.773347] [<ffff0000081e4ea0>] SyS_write+0x44/0xa0
[   21.773350] [<ffff0000080838d8>] __sys_trace_return+0x0/0x4

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit a6bac9bdebbdecf56575f6e361ad8f54e5263b95)
(cherry picked from commit defd91c3c0e6d237391027fc3e89c52f656357a1)

6 years agoMLK-19017-3 gpu: imx: add system pm support for LCDIF
Fancy Fang [Mon, 2 Jul 2018 09:37:37 +0000 (17:37 +0800)]
MLK-19017-3 gpu: imx: add system pm support for LCDIF

Implement the suspend()/resume() callbacks to support system
power management functions for LCDIF.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 7e00487012753cb370eab4ff5c05f76f7361297f)
(cherry picked from commit ad367beb841a15dc99ef2773f7843d2e83d18edd)

6 years agoMLK-19017-2 gpu: imx: add DISPMIX power domain support for LCDIF
Fancy Fang [Sun, 1 Jul 2018 06:22:50 +0000 (14:22 +0800)]
MLK-19017-2 gpu: imx: add DISPMIX power domain support for LCDIF

After the DISPMIX power domain enabled, all the related registers
will drop their values once runtime pm suspend called. So in the
pm runtime resume process, the LCDIF de-reset and some init jobs
need to be done, and these jobs are no longer necessary to be done
during probe stage anymore.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit f83aaaecaeb54d8b1231be2cb7175ce58682dae7)
(cherry picked from commit aa6a8be1f5e5107d02e58e4091e666a2d8fbfcc6)

6 years agoMLK-18605-15 dt-bindings: display: panel: add 'video-mode' prop for rm67191
Fancy Fang [Mon, 16 Jul 2018 12:52:14 +0000 (20:52 +0800)]
MLK-18605-15 dt-bindings: display: panel: add 'video-mode' prop for rm67191

Add a new property 'video-mode' binding for panel rm67191
which is used to specify a video data transfer mode.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 9dba8643d7b9c73a2b20ef517c79bb799f5ade3d)
(cherry picked from commit 6a427c8e9c4ae06cb84a7d8c70b7a95cf92b4206)

6 years agoMLK-18605-14 drm/imx: lcdif: adjust 'max_height' for '1080x1920' mode
Fancy Fang [Tue, 17 Jul 2018 00:26:53 +0000 (08:26 +0800)]
MLK-18605-14 drm/imx: lcdif: adjust 'max_height' for '1080x1920' mode

Change the maximum height limitation to 1920 to support
'1080x1920' resolution mode. It is a temporary work
around and will be improved later.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 44d0209e97e0c574af30dd7a7d7e059d4ddf996d)
(cherry picked from commit 884680d1decf63f5a9cb3ed4ef1b6452ad6d088a)

6 years agoMLK-18605-10 drm/bridge: sec-dsim: complete mipi panel support
Fancy Fang [Thu, 5 Jul 2018 07:14:26 +0000 (15:14 +0800)]
MLK-18605-10 drm/bridge: sec-dsim: complete mipi panel support

This patch adds mipi panel enable/disable during the dsim
bridge enable/disable procedure and implements required
callbacks and helper functions for dsi panel peripheral
support.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 4ef0a4e4ba0faca91e5b556fd13483aafdb64519)
(cherry picked from commit b43c58d9e04b331aa7468dd4ddf100ef40b766ab)

6 years agoMLK-18605-9 drm/bridge: sec-dsim: increase timeout values for BTA and LPRX
Fancy Fang [Mon, 16 Jul 2018 05:52:11 +0000 (13:52 +0800)]
MLK-18605-9 drm/bridge: sec-dsim: increase timeout values for BTA and LPRX

The current timeout values for 'BTA' and 'LPRX' in register
'DSIM_TIMEOUT' is not long enough for some dsi peripherals,
so increase them long enough for all current peripherals to
avoid timeout errors generation in some cases.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 8e2b86b317382635e74002a5b2a466804247e61a)
(cherry picked from commit cf7e6fc89b939684cb5ee66ff501db540981e222)

6 years agoMLK-18605-8 drm/bridge: sec-dsim: add non-continuous clock support
Fancy Fang [Fri, 13 Jul 2018 10:32:35 +0000 (18:32 +0800)]
MLK-18605-8 drm/bridge: sec-dsim: add non-continuous clock support

Complete the non-continuous clock mode support.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit cd216df51f322434e45d12b6721637f1d8159fe4)
(cherry picked from commit 4b907a32838bf45768a1f687539a09ed96cf53a6)

6 years agoMLK-18605-7 drm/bridge: sec-dsim: correct a register macro misspelt
Fancy Fang [Fri, 13 Jul 2018 02:39:21 +0000 (10:39 +0800)]
MLK-18605-7 drm/bridge: sec-dsim: correct a register macro misspelt

The macro 'CONFIG_NON_CONTINUOUS_CLOCK_LANE' has been misspelt
to 'CONFIG_NON_CONTINOUS_CLOCK_LANE'. So correct it.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 24a05825b7299fc2f60768468fafbbc9a33804ad)
(cherry picked from commit 3f20acbee9329e8a453879f06eaa34f336a43ea2)

6 years agoMLK-18605-6 drm/bridge: sec-dsim: add fifo pointers initialization
Fancy Fang [Fri, 6 Jul 2018 09:43:22 +0000 (17:43 +0800)]
MLK-18605-6 drm/bridge: sec-dsim: add fifo pointers initialization

All the DSIM fifo pointers should be better to be put into the
initialized state before enabling DSIM to transfer commands or
data.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 1c1624e48c83623a538f4af862367e6b3cbf8d67)
(cherry picked from commit 1c9d8b1cce6e173be29141fcf868529204e2c9a8)

6 years agoMLK-18605-5 drm/bridge: sec-dsim: correct 'DSIM_FIFOCTRL' offset
Fancy Fang [Fri, 6 Jul 2018 09:11:55 +0000 (17:11 +0800)]
MLK-18605-5 drm/bridge: sec-dsim: correct 'DSIM_FIFOCTRL' offset

According to the DSIM specification, the 'DSIM_FIFOCTRL'
register addr offset should be '0x4c' instead of '0x48'.
So correct it.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 31850816f3aea109aff6c4bbcb44221e7d74afb5)
(cherry picked from commit 0d6537496801653f4aad63fce9a30f94453c6c10)

6 years agoMLK-18605-4 drm/bridge: sec-dsim: refine data lanes stop state check
Fancy Fang [Wed, 13 Jun 2018 11:45:58 +0000 (19:45 +0800)]
MLK-18605-4 drm/bridge: sec-dsim: refine data lanes stop state check

When the attached dsi device does not use all the data lanes
to transfer data, data lanes stop state check should only
check the lanes used precisely, since unused lanes state is
not guaranteed to be in some stable state.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 6787ee8505ab16bf7bba38c721da0bfa87e9de0e)
(cherry picked from commit 6281e4f4b6e0d4f8a0f714fe2112f70f2865c540)

6 years agoMLK-18605-3 drm/bridge: sec-dsim: refuse unknown dsi device attach
Fancy Fang [Wed, 13 Jun 2018 11:01:39 +0000 (19:01 +0800)]
MLK-18605-3 drm/bridge: sec-dsim: refuse unknown dsi device attach

When a dsi device who is neither a bridge nor a panel requests
to be attached to the host, refuse this request directly.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 2e80acc8a611327fcc77d2e73515bc062cdc4233)
(cherry picked from commit 9ef87498c5406b44cd41b9592bdec9c948c962d2)

6 years agoMLK-18605-2 drm/bridge: sec-dsim: allow same panel can be re-attached
Fancy Fang [Wed, 13 Jun 2018 10:22:58 +0000 (18:22 +0800)]
MLK-18605-2 drm/bridge: sec-dsim: allow same panel can be re-attached

During the mode set procedure, some dsi client device may detach
itself first and then attach it again according to the target
display mode parameters. In this case, the dsi client device
should be allowed to be re-attached again. So this is also true
for panel device.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit f586625dd1a665c58b976405c7980b7414554481)
(cherry picked from commit 75f65aebfd661151811339d652e3704f5a7e3936)

6 years agoMLK-18605-1 drm/bridge: sec-dsim: add cleanup when detach dsi client
Fancy Fang [Wed, 13 Jun 2018 09:32:58 +0000 (17:32 +0800)]
MLK-18605-1 drm/bridge: sec-dsim: add cleanup when detach dsi client

When the dsi device is detached, the dsi parameters saved when
the dsi device is attached should be cleaned to avoid to be
misused. And besides, add some sanity check along with this
cleanup.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit a02c30a0ed8acc4a136d2281431fa4b07d66b933)
(cherry picked from commit 0b78ed9b7c61d2b703c1065850bd5f25ea30482f)

6 years agoMLK-19081 drm/bridge: sec-dsim: correct args of 'drm_bridge_attach' call
Fancy Fang [Sat, 28 Jul 2018 11:03:57 +0000 (19:03 +0800)]
MLK-19081 drm/bridge: sec-dsim: correct args of 'drm_bridge_attach' call

Obviously, according to the drm_bridge_attach()'s definition,
the passing arguments of its function call should be corrected
here.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit e04e4d286abf204b5db058018112026ad5d08271)

6 years agoMLK-18560 drm/imx: lcdif: refine bus format sanity check for plane
Fancy Fang [Mon, 11 Jun 2018 07:57:48 +0000 (15:57 +0800)]
MLK-18560 drm/imx: lcdif: refine bus format sanity check for plane

Add an function to get the LCDIF controller supported bus
formats according to the pixel format bpp. And change the
bus format sanity check in the plane's atomic check to see
if the bus format required by the peripheral attached to
LCDIF can be supported by LCDIF.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit f1d0c89ec48e6b76ddde9c55744ebb341f74ab3a)

6 years agoMLK-18535-12 dt-bindings: display: imx: add eLCDIF device node
Fancy Fang [Thu, 7 Jun 2018 06:09:34 +0000 (14:09 +0800)]
MLK-18535-12 dt-bindings: display: imx: add eLCDIF device node

Add the device-tree bindings for the display node eLCDIF
on i.MX platforms.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit b5bbc0b7aac35101edfa9bfe6079d97a2c847175)

6 years agoMLK-18535-10 drm/imx: lcdif: limit the maximum resolution to '1920x1080'
Fancy Fang [Wed, 6 Jun 2018 16:10:12 +0000 (00:10 +0800)]
MLK-18535-10 drm/imx: lcdif: limit the maximum resolution to '1920x1080'

For now, the higher resolution than '1920x1080' is not supported
yet. So limit the 'max_width' and 'max_height' of mode_config
to be 1920 and 1080.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 0ad9839e59978e2c425f6d7ffa9b4561598625b5)

6 years agoMLK-18535-9 ARM64: defconfig: enable 'IMX_SEC_DSIM' config
Fancy Fang [Sun, 3 Jun 2018 16:04:13 +0000 (00:04 +0800)]
MLK-18535-9 ARM64: defconfig: enable 'IMX_SEC_DSIM' config

Enable the 'IMX_SEC_DSIM' config by default in ARM64
defconfig.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 3a1bb280c4b5338dfb9c8a8b24929e02b7803aee)

6 years agoMLK-18535-8 drm/imx: sec_mipi_dsim-imx: add DSIM host driver
Fancy Fang [Wed, 6 Jun 2018 15:46:37 +0000 (23:46 +0800)]
MLK-18535-8 drm/imx: sec_mipi_dsim-imx: add DSIM host driver

The Samsung DSIM host driver mainly focuses on the config
related with soc platforms. And the controller itself config
has been moved to the sec-dsim bridge driver.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 941ef8c5fc870b72d18c1ec5abc69c5523647cba)

6 years agoMLK-18535-7 drm/bridge: sec-dsim: add bridge driver support
Fancy Fang [Wed, 6 Jun 2018 15:32:56 +0000 (23:32 +0800)]
MLK-18535-7 drm/bridge: sec-dsim: add bridge driver support

This is the abstracted bridge driver for Samsung MIPI DSIM
controller. This driver only foucses on the DSIM controller
itself configurations and never care about any config about
the platforms. So it can be shared by different platforms
without any modifications.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit beb9d163c755fe7ae960b79d85c0c1436a8dc057)

6 years agoMLK-18535-6 drm/imx: core: add LCDIF support
Fancy Fang [Wed, 6 Jun 2018 15:20:43 +0000 (23:20 +0800)]
MLK-18535-6 drm/imx: core: add LCDIF support

Allows the LCDIF to be one of the supported client
components. And set the 'legacyfb_depth' of LCDIF
to be 32.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit dae914b351853add6d506925cc0c9742ee698bc4)

6 years agoMLK-18535-5 drm/imx: add LCDIF DRM/KMS driver
Fancy Fang [Wed, 6 Jun 2018 14:52:35 +0000 (22:52 +0800)]
MLK-18535-5 drm/imx: add LCDIF DRM/KMS driver

This is a new DRM/KMS driver for LCDIF which conforms
to the IMX DRM Core framework. It provides support for
CRTCs, Planes and mode config of KMS.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit a104e928da7281a3089ff31afb2df979f35716b8)

6 years agoMLK-18535-4 ARM64: defconfig: enable 'IMX_LCDIF_CORE' config
Fancy Fang [Sun, 27 May 2018 08:40:13 +0000 (16:40 +0800)]
MLK-18535-4 ARM64: defconfig: enable 'IMX_LCDIF_CORE' config

Enable the 'IMX_LCDIF_CORE' config by default in ARM64
defconfig.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 09f1d5639676712f813cec99254abe29175ff9b3)

6 years agoMLK-18535-3 gpu: imx: add LCDIF core driver
Fancy Fang [Wed, 6 Jun 2018 14:26:28 +0000 (22:26 +0800)]
MLK-18535-3 gpu: imx: add LCDIF core driver

The LCDIF core driver is responsible to provide controller
registers configuration and create the platform devices for
the child port nodes. And the platform devices later will
attach to the corresponding DRM/KMS drivers via name match.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit ca168846dcfe6d498d33f4a977b21b25ca5c6c41)

6 years agoMLK-21257-5: arm64: dts: fix warnning when complie dts
Guoniu.Zhou [Wed, 27 Mar 2019 06:33:59 +0000 (14:33 +0800)]
MLK-21257-5: arm64: dts: fix warnning when complie dts

Because ov5640 device node has been in fsl-imx8qxp-mek-ov5640-rpmsg.dts,
so there is no need to another one.

In 4.19 kernel dts, local endpoint need to match one remote endpoint,
not for two or more, so delete redundant node.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-21257-4: arm64: dts: change compatible string for i2c node of mipi csi
Guoniu.Zhou [Wed, 27 Mar 2019 03:15:50 +0000 (11:15 +0800)]
MLK-21257-4: arm64: dts: change compatible string for i2c node of mipi csi

Because "fsl,imx8qm-lpi2c" was remove from of_device_id structure in
i2c-imx-lpi2c.c driver, so add "fsl,imx7ulp-lpi2c" in compatible string
of i2c node.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-21257-3: media: isi: fix some conflicts when do upgrade
Guoniu.Zhou [Wed, 27 Mar 2019 03:10:51 +0000 (11:10 +0800)]
MLK-21257-3: media: isi: fix some conflicts when do upgrade

Fix some conflicts when do kernel 4.19 upgrade

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-20923: ISI: improve ISI memory to memory performance
Guoniu.Zhou [Wed, 13 Feb 2019 10:50:39 +0000 (18:50 +0800)]
MLK-20923: ISI: improve ISI memory to memory performance

Refer to ISI validataion code, there is no need to enable ISI
mem2mem read done interrupt and driver can handle buffers in
frame received interrupt service

Remove 50ms delay when enable ISI AXI read, it will improve
performance obviously

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

6 years agoMLK-20595-2: camera: check camera's running state before suspend
Guoniu.Zhou [Mon, 17 Dec 2018 02:16:55 +0000 (10:16 +0800)]
MLK-20595-2: camera: check camera's running state before suspend

Check camera's running state before suspend for imx8qm/qxp
and don't support suspend when camera's running

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-19957-1: ISI: clean isi status before enable interrupt
Guoniu.Zhou [Wed, 17 Oct 2018 02:16:08 +0000 (10:16 +0800)]
MLK-19957-1: ISI: clean isi status before enable interrupt

Because ISI can't restore to default state after software
reset, the status value of exit will be maintained. If not
cleared, ISI will triggle fake interrupt after enableing irq,
but there is not ready for data.

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

6 years agoMLK-19901: ISI: manually clean isi status register
Guoniu.Zhou [Fri, 12 Oct 2018 02:55:41 +0000 (10:55 +0800)]
MLK-19901: ISI: manually clean isi status register

When QM run two linux and divide ISI resource into two
parts, channel 0-3 for one linux and channel 4-7 for the
other. If dom0 destroy domU which camera is running, then
restart domU. ISI will trigger interrupt immediately after
register irq handler when driver probe. The reason for this
is that status register of ISI isn't cleared. ISI have no
ablility to reset its register to defautl value expcept power
off all resource of ISI, but it can't be done in two os. So
manually clean status before registering irq when driver probe.

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

6 years agoMLK-19514-2: ISI: use ping-pong buffer of ISI
Guoniu.Zhou [Tue, 4 Sep 2018 10:05:38 +0000 (18:05 +0800)]
MLK-19514-2: ISI: use ping-pong buffer of ISI

1. Use ping-pong buffer of isi.
2. Add multi-plane support for m2m out queue. When
V4L2 m2m device support multi-plane, it should be
applied for both input and output, so add it.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-19343: ISI: add memory to memory support for qm and qxp
Guoniu.Zhou [Mon, 27 Aug 2018 10:28:23 +0000 (18:28 +0800)]
MLK-19343: ISI: add memory to memory support for qm and qxp

Add memory to memory support for qm and qxp. Because only
ISI channel0 can support memory to memory feature so this
feature only support one channel. User can use channel 0
as other function when it isn't used for m2m.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Sandor.yu <sandor.yu@nxp.com>
6 years agoMLK-19111: ISI: fix module installation fail issue
Guoniu.Zhou [Tue, 31 Jul 2018 09:41:20 +0000 (17:41 +0800)]
MLK-19111: ISI: fix module installation fail issue

If build ISI driver as module and insmod it after system
boot up, it will fail. Because lack of MODULE_LICENSE("GPL")
,insmod isi driver will print many unknown symbol messages

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Robby.Cai <robby.cai@nxp.com>
6 years agoMLK-19108: ISI: fix isi hang issue when open it many times
Guoniu.Zhou [Tue, 31 Jul 2018 07:58:41 +0000 (15:58 +0800)]
MLK-19108: ISI: fix isi hang issue when open it many times

When one ISI channel is receiving data, if an other process
just open it at the same time and then close, it will lead
to this channel hang. The reason is soft reset in release
callback, so it make the channel stop work. Add an counter
for open isi channel and really soft reset the channel when
the counter equal to zero.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Robby.Cai <robby.cai@nxp.com>
6 years agoMLK-18517-1: ISI: fix system reboot stress test from nfs fail
Guoniu.Zhou [Thu, 28 Jun 2018 01:47:54 +0000 (09:47 +0800)]
MLK-18517-1: ISI: fix system reboot stress test from nfs fail

1. System will dump painc message and hang when do system
reboot stress test. It caused by ISI HW reset function. When
user open the video device, it will get the device and driver
will turn on ISI power domain, but after that, ISI HW reset
will first turn off and then turn on it's power. During this
time, the process which open ISI channel 0 maybe sleep and
the other process which open other ISI channel will active but
the other channel power domain depend on channel 0. It leads to
system panic. So change msleep to udelay and move HW reset to
other place.

2. Refine ISI system and runtime suspend/resume.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-18482: ISI: fix isi resume fail issue
Guoniu.Zhou [Tue, 12 Jun 2018 08:56:14 +0000 (16:56 +0800)]
MLK-18482: ISI: fix isi resume fail issue

Driver enable clock will fail in isi system power resume
callback because isi power domain is power off after system
power suspend so driver need to get device before disable
clock in system power suspend/resume callback and then put
device after disable clock.

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

6 years agoMLK-17230-8: camera: add CI_PI in camera device framework
Guoniu.Zhou [Mon, 5 Feb 2018 08:26:38 +0000 (16:26 +0800)]
MLK-17230-8: camera: add CI_PI in camera device framework

Add CI_PI and ov5640 camera sensor support in camera device
framework. The data flow is "ov5640->ci_pi->isi_ch0". Disable
the other channels of ISI.

Reviewed-by: Sandor.Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit 37bc5d225e8a3eeb21fef5d94335d1edb2036988)

6 years agoMLK-16549-2: ISI: fix suspend/resume error issue
Guoniu.Zhou [Fri, 8 Dec 2017 11:32:34 +0000 (19:32 +0800)]
MLK-16549-2: ISI: fix suspend/resume error issue

Because ISI runtime suspend has disable clock before system
suspend. If driver does not know that and disable clock again
in system suspend callback. It will lead to isi clk count mis-
match.

Reviewed-by: Sandor.Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-16823-2: mipi_csi: Add runtime suspend/resume
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)

6 years agoMLK-17019 Correct Copyright
Peng Fan [Wed, 29 Nov 2017 03:48:04 +0000 (11:48 +0800)]
MLK-17019 Correct Copyright

Correct Copyright

Signed-off-by: Peng Fan <peng.fan@nxp.com>
6 years agoMLK-16695-3: mipi_csi: Change printk to dev_dbg
Guoniu.Zhou [Fri, 10 Nov 2017 03:09:21 +0000 (11:09 +0800)]
MLK-16695-3: mipi_csi: Change printk to dev_dbg

Messages in ISI irq handler are for debugging, so
change printk to dev_dbg for this purpose.

The width and height of image information need output
in debug process.

Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit e254c8408f69eca9b668af58d911f27a4fefc121)

6 years agoMLK-16695-2: mipi_csi: Add pm suspend and resume support
Guoniu.Zhou [Fri, 10 Nov 2017 03:01:46 +0000 (11:01 +0800)]
MLK-16695-2: mipi_csi: Add pm suspend and resume support

Add power manager suspend and resume support for ISI

Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-16062-2: i.MX8 imaging: Add debug log to imaging SS driver
Sandor Yu [Fri, 28 Jul 2017 03:08:27 +0000 (11:08 +0800)]
MLK-16062-2: i.MX8 imaging: Add debug log to imaging SS driver

Add debug log to imaging SS drivers.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-15124-04: image ss: Add mx8 image subsystem driver
Sandor Yu [Tue, 20 Jun 2017 07:37:16 +0000 (15:37 +0800)]
MLK-15124-04: image ss: Add mx8 image subsystem driver

Add mxc media device driver.
Add mx8 isi device driver.
Add mx8 mipi csi device driver.
Add max9286 sensor driver.
mxc isi driver support CSC and scaling function.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-20326-2: ISI: enable horizonal and vertical flip for mem2mem
Guoniu.Zhou [Fri, 9 Nov 2018 10:48:13 +0000 (18:48 +0800)]
MLK-20326-2: ISI: enable horizonal and vertical flip for mem2mem

Eanble horizonal and vertical flip for memory to memory function
of ISI

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-19514-2: ISI: use ping-pong buffer of ISI
Guoniu.Zhou [Tue, 4 Sep 2018 10:05:38 +0000 (18:05 +0800)]
MLK-19514-2: ISI: use ping-pong buffer of ISI

1. Use ping-pong buffer of isi.
2. Add multi-plane support for m2m out queue. When
V4L2 m2m device support multi-plane, it should be
applied for both input and output, so add it.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-19343: ISI: add memory to memory support for qm and qxp
Guoniu.Zhou [Mon, 27 Aug 2018 10:28:23 +0000 (18:28 +0800)]
MLK-19343: ISI: add memory to memory support for qm and qxp

Add memory to memory support for qm and qxp. Because only
ISI channel0 can support memory to memory feature so this
feature only support one channel. User can use channel 0
as other function when it isn't used for m2m.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Sandor.yu <sandor.yu@nxp.com>
6 years agoMLK-18517-1: ISI: fix system reboot stress test from nfs fail
Guoniu.Zhou [Thu, 28 Jun 2018 01:47:54 +0000 (09:47 +0800)]
MLK-18517-1: ISI: fix system reboot stress test from nfs fail

1. System will dump painc message and hang when do system
reboot stress test. It caused by ISI HW reset function. When
user open the video device, it will get the device and driver
will turn on ISI power domain, but after that, ISI HW reset
will first turn off and then turn on it's power. During this
time, the process which open ISI channel 0 maybe sleep and
the other process which open other ISI channel will active but
the other channel power domain depend on channel 0. It leads to
system panic. So change msleep to udelay and move HW reset to
other place.

2. Refine ISI system and runtime suspend/resume.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-16823-2: mipi_csi: Add runtime suspend/resume
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)

6 years agoMLK-16695-2: mipi_csi: Add pm suspend and resume support
Guoniu.Zhou [Fri, 10 Nov 2017 03:01:46 +0000 (11:01 +0800)]
MLK-16695-2: mipi_csi: Add pm suspend and resume support

Add power manager suspend and resume support for ISI

Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-15124-04: image ss: Add mx8 image subsystem driver
Sandor Yu [Tue, 20 Jun 2017 07:37:16 +0000 (15:37 +0800)]
MLK-15124-04: image ss: Add mx8 image subsystem driver

Add mxc media device driver.
Add mx8 isi device driver.
Add mx8 mipi csi device driver.
Add max9286 sensor driver.
mxc isi driver support CSC and scaling function.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-21257-2: media: mipi_csi_yav: fix build error for imx8mq mipi csi driver
Guoniu.Zhou [Wed, 27 Mar 2019 02:43:27 +0000 (10:43 +0800)]
MLK-21257-2: media: mipi_csi_yav: fix build error for imx8mq mipi csi driver

In the 4.19 kernel, v4l2 async framework move async subdev notifier operations
to a separate structure and simplify v4l2_async_subdev structure. So adapt to
the change in our driver.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-19362: media: csi: Fix "Hresponse" and "Rx fifo overflow" camera errors
Mirela Rabulea [Wed, 12 Sep 2018 08:50:54 +0000 (11:50 +0300)]
MLK-19362: media: csi: Fix "Hresponse" and "Rx fifo overflow" camera errors

When the register setting for fifo_send_level is set to high, some residual
data of a frame which cannot fill up to the send_level, will be sent with
the next frame data. In this case, for CSI receive dma, sometimes,
the vertical blanking is too short to finish the storage of the previous
frame before the next frame start, depending on the system bandwidth.

Tested on imx8mq-evk rev B4 and B3, with OV5640 camera.

This patch was proposed by Tom Zheng <haidong.zheng@nxp.com>

Signed-off-by: Mirela Rabulea <mirela.rabulea@nxp.com>
Reviewed-by: Robby Cai <robby.cai@nxp.com>
6 years agoMLK-17116-2 media: mipi_csi: Adjust hs_settle and send_level for low resolution
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)

6 years agoMLK-16977-2 media: v4l_cap: don't support suspend when camera is running
Robby Cai [Fri, 24 Nov 2017 10:52:54 +0000 (18:52 +0800)]
MLK-16977-2 media: v4l_cap: don't support suspend when camera is running

Don't support suspend/resume by checking if camera is running.

Signed-off-by: Robby Cai <robby.cai@nxp.com>
6 years agoMLK-16977-1 media: v4l_cap: implement S_FMT ioctl
Robby Cai [Fri, 24 Nov 2017 10:39:13 +0000 (18:39 +0800)]
MLK-16977-1 media: v4l_cap: implement S_FMT ioctl

gsteamer uses S_FMT ioctl to set the resolution instead of using
S_PARM ioctl. The S_PARM ioctl depends on the capture mode which is
not in the common way.
This patch uses a common method to set the picture resulotion.

Signed-off-by: Robby Cai <robby.cai@nxp.com>
6 years agoMLK-16943 mipi-csi: Add run time pm support
Robby Cai [Wed, 22 Nov 2017 10:58:59 +0000 (18:58 +0800)]
MLK-16943 mipi-csi: Add run time pm support

Add run time PM support for MIPI CSI (tested on iMX8MQ)

Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-16919-5 media: v4l2: add mipi csi driver on iMX8MQ
Robby Cai [Tue, 21 Nov 2017 20:59:06 +0000 (04:59 +0800)]
MLK-16919-5 media: v4l2: add mipi csi driver on iMX8MQ

Add a new version (yet another version) driver for MIPI CSI2.
The reason we use a separate version is that PHY setting is quit different,
and the existing MIPI CSI2 driver uses new Media Framework, while the camera
and CSI driver not yet. After convert all drivers to new Media Framework,
consider combine these two versions.

Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-21257-1: media: fix build error for QM/QXP camera driver
Guoniu.Zhou [Wed, 27 Mar 2019 02:31:25 +0000 (10:31 +0800)]
MLK-21257-1: media: fix build error for QM/QXP camera driver

In the 4.19 kernel, v4l2 async framework move async subdev notifier operations
to a separate structure and simplify v4l2_async_subdev structure. So adapt to
the change in our driver.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-15124-04: image ss: Add mx8 image subsystem driver
Sandor Yu [Tue, 20 Jun 2017 07:37:16 +0000 (15:37 +0800)]
MLK-15124-04: image ss: Add mx8 image subsystem driver

Add mxc media device driver.
Add mx8 isi device driver.
Add mx8 mipi csi device driver.
Add max9286 sensor driver.
mxc isi driver support CSC and scaling function.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-18098: camera: add MIPI and PARALLEL CSI support in one dtb
Guoniu.Zhou [Fri, 20 Apr 2018 08:23:09 +0000 (16:23 +0800)]
MLK-18098: camera: add MIPI and PARALLEL CSI support in one dtb

1. Divide ov5640_v3.c into two parts, one for parallel csi driver
   and the other for mipi csi driver

2. Add parallel and mipi support in one dtb file. User can select
   one of them without changing the dtb file

Reviewed-by: Sandor.yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-17230-6: sensor: add driver for ov5640 camera sensor
Guoniu.Zhou [Mon, 5 Feb 2018 07:58:39 +0000 (15:58 +0800)]
MLK-17230-6: sensor: add driver for ov5640 camera sensor

Add version3.0 driver for ov5640 camera sensor. It works on DVP
mode

Reviewed-by: Sandor.Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit 64d7dd18ac3c768480df8390ab02a35142a220cd)

6 years agoMLK-17230-5: CI_PI: enable CI_PI SS
Guoniu.Zhou [Mon, 5 Feb 2018 07:43:23 +0000 (15:43 +0800)]
MLK-17230-5: CI_PI: enable CI_PI SS

Add driver for CI_PI controller.

Reviewed-by: Sandor.Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit 980ac5f965bd8e94cce8a8c3fa78b1062dbd1727)

6 years agoMLK-15124-04: image ss: Add mx8 image subsystem driver
Sandor Yu [Tue, 20 Jun 2017 07:37:16 +0000 (15:37 +0800)]
MLK-15124-04: image ss: Add mx8 image subsystem driver

Add mxc media device driver.
Add mx8 isi device driver.
Add mx8 mipi csi device driver.
Add max9286 sensor driver.
mxc isi driver support CSC and scaling function.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-19343: ISI: add memory to memory support for qm and qxp
Guoniu.Zhou [Mon, 27 Aug 2018 10:28:23 +0000 (18:28 +0800)]
MLK-19343: ISI: add memory to memory support for qm and qxp

Add memory to memory support for qm and qxp. Because only
ISI channel0 can support memory to memory feature so this
feature only support one channel. User can use channel 0
as other function when it isn't used for m2m.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Sandor.yu <sandor.yu@nxp.com>
6 years agoMLK-18098: camera: add MIPI and PARALLEL CSI support in one dtb
Guoniu.Zhou [Fri, 20 Apr 2018 08:23:09 +0000 (16:23 +0800)]
MLK-18098: camera: add MIPI and PARALLEL CSI support in one dtb

1. Divide ov5640_v3.c into two parts, one for parallel csi driver
   and the other for mipi csi driver

2. Add parallel and mipi support in one dtb file. User can select
   one of them without changing the dtb file

Reviewed-by: Sandor.yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-17230-6: sensor: add driver for ov5640 camera sensor
Guoniu.Zhou [Mon, 5 Feb 2018 07:58:39 +0000 (15:58 +0800)]
MLK-17230-6: sensor: add driver for ov5640 camera sensor

Add version3.0 driver for ov5640 camera sensor. It works on DVP
mode

Reviewed-by: Sandor.Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit 64d7dd18ac3c768480df8390ab02a35142a220cd)

6 years agoMLK-17230-5: CI_PI: enable CI_PI SS
Guoniu.Zhou [Mon, 5 Feb 2018 07:43:23 +0000 (15:43 +0800)]
MLK-17230-5: CI_PI: enable CI_PI SS

Add driver for CI_PI controller.

Reviewed-by: Sandor.Yu <sandor.yu@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit 980ac5f965bd8e94cce8a8c3fa78b1062dbd1727)

6 years agoMLK-16919-5 media: v4l2: add mipi csi driver on iMX8MQ
Robby Cai [Tue, 21 Nov 2017 20:59:06 +0000 (04:59 +0800)]
MLK-16919-5 media: v4l2: add mipi csi driver on iMX8MQ

Add a new version (yet another version) driver for MIPI CSI2.
The reason we use a separate version is that PHY setting is quit different,
and the existing MIPI CSI2 driver uses new Media Framework, while the camera
and CSI driver not yet. After convert all drivers to new Media Framework,
consider combine these two versions.

Signed-off-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-15124-04: image ss: Add mx8 image subsystem driver
Sandor Yu [Tue, 20 Jun 2017 07:37:16 +0000 (15:37 +0800)]
MLK-15124-04: image ss: Add mx8 image subsystem driver

Add mxc media device driver.
Add mx8 isi device driver.
Add mx8 mipi csi device driver.
Add max9286 sensor driver.
mxc isi driver support CSC and scaling function.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-15124-04: image ss: Add mx8 image subsystem driver
Sandor Yu [Tue, 20 Jun 2017 07:37:16 +0000 (15:37 +0800)]
MLK-15124-04: image ss: Add mx8 image subsystem driver

Add mxc media device driver.
Add mx8 isi device driver.
Add mx8 mipi csi device driver.
Add max9286 sensor driver.
mxc isi driver support CSC and scaling function.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-15124-06: defconfig: Add mx8 image subsystem
Sandor Yu [Tue, 20 Jun 2017 07:45:25 +0000 (15:45 +0800)]
MLK-15124-06: defconfig: Add mx8 image subsystem

Add mx8 image subsystem and v4l2 device.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
6 years agoMLK-20694: media: m2m: add control for querying minimum buffer for capture and output
Guoniu.Zhou [Tue, 19 Mar 2019 09:29:01 +0000 (17:29 +0800)]
MLK-20694: media: m2m: add control for querying minimum buffer for capture and output

Add V4L2_CID_MIN_BUFFERS_FOR_CAPTURE and V4L2_CID_MIN_BUFFERS_FOR_OUTPUT control
ID for querying minimum buffer for capture and output

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
6 years agoMLK-20924-2: ISI: add checking for the number of requested buffer
Guoniu.Zhou [Thu, 14 Feb 2019 02:48:03 +0000 (10:48 +0800)]
MLK-20924-2: ISI: add checking for the number of requested buffer

For the number of requested source buffer, driver need one at least.
For the number of requested destination buffer, driver need three at least.

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

6 years agoMLK-20924-1: ISI: fix potential dead lock issue
Guoniu.Zhou [Thu, 14 Feb 2019 02:23:10 +0000 (10:23 +0800)]
MLK-20924-1: ISI: fix potential dead lock issue

Fix potential dead lock issue

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