Commit Graph

25135 Commits

Author SHA1 Message Date
Sandy Huang
38a47ad844 drm/rockchip: lvds: add support RGB666 output
Change-Id: I9263d82d784c514b3960a75b1626a29c84fd3fa1
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2017-08-30 14:25:30 +08:00
Sandy Huang
3f46fa6cdf drm/rockchip: lvds: add support rk3126 lvds
Change-Id: I30a3fe5a084d58c1427e9d5923170739f762a8ad
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2017-08-30 14:25:19 +08:00
Wyon Bi
54b684e928 drm: bridge: analogix: Add support for HBR2 (5.4Gbps)
Change-Id: I3999e4fa0b83ede5719f341d1e9a9a8797c7576b
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
2017-08-29 16:58:00 +08:00
Wyon Bi
a5ca275f86 drm/panel: simple: Add support for LG LM270WR3-SSA1
This adds support for the LG Corporation LM270WR3-SSA1 27"
eDP(HBR2, 5.4Gbps) UHD TFT LCD panel, which can be supported
by the simple panel driver.

Change-Id: I542cfe03325a43bc56d7b1c7a62ae7b6aaabc751
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
2017-08-29 16:57:49 +08:00
Mark Yao
2117a44a2b drm/rockchip: keep crtc private bus_format atomic
crtc private bus_format are used for multi connectors,
so we need keep it atomic, otherwise may cause display
abnormal.

Change-Id: I188d70ac54eedba502609921ccd33e33314c265b
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-29 16:54:32 +08:00
Sandy Huang
935a7949ef drm/rockchip: vop: add rk3126 vop support
Change-Id: I6ffd9b151387e0cb5c913500098ebb7cf69153a5
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2017-08-29 10:21:41 +08:00
zain wang
0e601b1acb drm/rockchip: use suspend_late matching the resume_early
Sometimes, we would abort suspend work before it finished.
In this case, suspend work would try to resume the part suspended
by correspond resume functions.
But the suspend/resume functions are not matched in rockchip.
When the suspend work is aborted, it would ignored resuming this
part due to can't find correspond resume functions.
So, let's use suspend_late instead of suspend.

Change-Id: I7304f7963704de7e870fbd4e76ebe1e0066f18c1
Signed-off-by: zain wang <wzz@rock-chips.com>
2017-08-23 20:30:30 +08:00
Jerry Xu
8e735ebf01 drm/rockchip: dw-mipi-dsi: use positive check for N{H, V}SYNC
Fixes: I1e5773b926c("use positive check for N{H, V}SYNC")

Change-Id: Id0b5ccc5a6b8d10f0c19b071b5fb928faf375704
Signed-off-by: Jerry Xu <xbl@rock-chips.com>
2017-08-23 09:45:15 +08:00
Mark Yao
695bb4ec18 drm/rockchip: vop: fix display abnormal on mode changed
Bcsh r2y/y2r need be updated when mode changed, otherwise
would cause display abnormal.

Change-Id: Ida63da3dfb856948ca9f87880d2adc6aba1e9141
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-23 09:35:09 +08:00
WeiYong Bi
5b291d8cd7 drm/panel: simple: call panel_simple_unprepare() when shutdown
Change-Id: Ic1b18b91bd8becd9cc0002c44777153a6b50fd8a
Signed-off-by: WeiYong Bi <bivvy.bi@rock-chips.com>
2017-08-22 12:08:04 +08:00
Wyon Bi
dd25e35e08 drm: bridge: analogix: Avoid timeout warnings in analogix_dp_config_video()
[   23.527279] rockchip-dp ff970000.edp: Timeout of video streamclk ok
[   23.527325] rockchip-dp ff970000.edp: unable to config video

Change-Id: Ie2239c2dd773e4cb41f86b46b98367a07a751ff1
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
2017-08-22 12:06:45 +08:00
Finley Xiao
ad8c4dfa3a MALI: rockchip: Add support to select voltage according to leakage
The greater leakage, the lower the OPP's voltage. In order to reduce
power consumption, it is necessary to adjust OPP's voltage according
to leakage.

Change-Id: I2bba04ac941cc6a0703b5208cb4e757ec2813bab
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-08-18 10:05:08 +08:00
Finley Xiao
848f3c8daf MALI: rockchip: Add support to select voltage according to pvtm value
At same voltage and frequency, the greater the PVTM value, the lower
the OPP's voltage. In order to reduce power consumption, it is necessary
to adjust OPP's voltage according to PVTM value.

Change-Id: Ifcac57fc965e3ea45523db2d9df19435479f6cee
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-08-18 10:03:56 +08:00
Mark Yao
5f98c9f6ff drm/rockchip: vop: set BCSH propetries default
Change-Id: Ib8ce044525cb611c8d6df2207c12fb51bb74460b
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-15 18:39:55 +08:00
Mark Yao
e268caad71 drm/rockchip: vop: add BCSH support for full vops
The full name of BCSH is Brightness, Contrast, Saturation and Hue.
BCSH is supported on all full vop designed.

Change-Id: I17bcd5a07b93b3c68aa892606f886bcd3a7673a0
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-15 18:38:48 +08:00
Boris Brezillon
2272eb5d62 UPSTREAM: drm: Add TV connector states to drm_connector_state
Some generic TV connector properties are exposed in drm_mode_config, but
they are currently handled independently in each DRM encoder driver.

Extend the drm_connector_state to store TV related states, and modify the
drm_atomic_connector_{set,get}_property() helpers to fill the connector
state accordingly.

Each driver is then responsible for checking and applying the new config
in its ->atomic_mode_{check,set}() operations.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 299a16b163)

Change-Id: I50d7c79013235d75972b8cdd46cf89bbd9cf596d
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-15 18:38:28 +08:00
Mark Yao
c2560f2894 drm/rockchip: create tv properties on master driver
Change-Id: Ia42a89447281e1f2688ce34d4c0a85975222b371
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-15 18:37:44 +08:00
Mark Yao
18a51606e2 drm/bridge: dw_hdmi: add module info for hdcp driver
Change-Id: I458974b7d8b925902d0f0d41364f80881a07c6c7
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-15 18:37:16 +08:00
algea.cao
83f1c1d9ac drm/bridge: support rk1000 tv encoder
RK1000 is a digital-analog mixed chip which has tve output function.
RK1000's registers can be written and read through I2C interaface.
Because RK1000's I2C need dclk and mclk, RK1000 TVE should be registered
after RK1000 CORE. RBG signal output is controlled by LVDS, so RK1000
should be registered as connector and attach LVDS encoder.

Change-Id: I65b40826bd1dbf07d4fa94ecdf8c75005008731f
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2017-08-14 16:43:08 +08:00
Laurent Pinchart
fcb60baab3 UPSTREAM: drm/bridge: Make (pre/post) enable/disable callbacks optional
Instead of forcing bridges to implement empty callbacks make them all
optional.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
(cherry picked from commit c8a3b2ae07)

Change-Id: Id37cbb6114e69957dfd6b72c8bd7b66dcc6f0590
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-14 14:57:20 +08:00
Mark Yao
2ab91f190d drm/rockchip: vop: fixup error handle on crtc register
Change-Id: I969a3994360331f4ce66e7affcc9ed3869599777
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-14 11:47:04 +08:00
Jeffy Chen
2169a9db46 UPSTREAM: drm/rockchip: Reorder drm bind/unbind sequence
Current drm bind/unbind sequence would cause some memory issues.
For example we should not cleanup iommu before cleanup mode config.

Reorder bind/unbind sequence, follow exynos drm.

Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
[seanpaul fixed spelling typo in commit subject]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1491481885-13775-11-git-send-email-jeffy.chen@rock-chips.com

(cherry picked from commit ccea91998c)

Change-Id: I8571a34419735f8b8a51666b31b91cbdb18250bd
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-14 11:47:03 +08:00
Mark Yao
8ecd10c962 drm/rockchip: backlight: fix modules compile error
Fixes:
error: redefinition of 'rockchip_drm_backlight_update'
error: redefinition of 'of_rockchip_drm_sub_backlight_register'

Change-Id: I4eeebc6075387f720acec597cee765e2a1a83b7c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-14 11:47:02 +08:00
Mark Yao
abc940812c drm/bridge: analogix: fix modules compile error
sync to upstream commit:
  3424e3a drm: bridge: analogix/dp: split exynos dp driver to bridge directory

fix following modules compile error:

ERROR: "analogix_dp_enable_video_mute" [drivers/gpu/drm/bridge/analogix/analogix_dp_core.ko] undefined!
ERROR: "analogix_dp_config_interrupt" [drivers/gpu/drm/bridge/analogix/analogix_dp_core.ko] undefined!

Change-Id: I340d82f238485617604afd44047644adc9620f47
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-14 11:47:01 +08:00
Zheng Yang
d954549584 drm/rockchip: hdmi: disable RK3368 2160P RGB444/YCbCr444/YCbCr422 mode
Change-Id: I573db9cd41031f45cac359fc9314491ebd1ba8fc
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-08-11 14:54:13 +08:00
Mark Yao
d1917fb492 drm/rockchip: vop: correct dclk_ddr define for rk3368
dclk_ddr is supported on rk3368 vop, it would effect the
display quality on YUV420 mode.

Change-Id: Ia624a1f397e732d80d3908b8e712ae79d3ad7948
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Reported-by: Huacong Yang <will.yang@rock-chips.com>
2017-08-11 10:01:48 +08:00
Mark Yao
0fc8ce4b39 drm/rockchip: gem: support secure memory
Change-Id: I91dfbbfbf5d13983edfb79585e9beb980566f784
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-09 16:36:50 +08:00
Mark Yao
258970afc5 drm/rockchip: gem: add get phys ioctl
Change-Id: Ic9b8c6acfaeb47ec720dbad3d8f5141ef7b13e5d
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-09 16:35:04 +08:00
Mark Yao
2965ada189 drm/rockchip: gem: support force alloc cma buffer with flags
Change-Id: I4749eac53609f865d0d4230364b1cbaf39ee0955
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-09 16:34:59 +08:00
Sandy Huang
9cd1d94f3f drm/rockchip: lvds: RGB output should enable LVDS channel 1
Change-Id: Iaa7b95f1316fa77425992574288b3262d5af84e7
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2017-08-09 16:16:12 +08:00
Sandy Huang
6e49287024 drm/rockchip: lvds: set funcs structures to const
Change-Id: Ie118a1184a315c8cb7808a14a87f23c8c9a47757
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2017-08-09 16:15:00 +08:00
Sandy Huang
69b4bbba55 drm/rockchip: lvds: add pinctrl for rk3288 rgb output
Change-Id: I4c483eb269d021860fe4249a3d25bcfb6c4f3f5f
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2017-08-09 16:12:47 +08:00
Mark Yao
b34356fc63 drm/rockchip: vop: zpos set to INT_MAX if not enabled
Change-Id: Ia78c26f400d0cc4192cae183f83b7f06575c9332
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-09 09:39:27 +08:00
Mark Yao
2421f54c77 drm/rockchip: vop: correct win23 alpha define
Change-Id: I3e3bfbb9164b35a9f96d4bc71ab4c023d8270fc5
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-09 09:38:37 +08:00
Sandy Huang
59971be7a4 drm/rockchip: lvds: mipi_lvds_ctl set to mipi dsi controller base address
So we can define reg offset according to TRM, otherwise it will make
us confused.

Change-Id: I1687542fcaf7ac4e6e78d863e8940f6604794407
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2017-08-09 09:33:42 +08:00
Sandy Huang
5d365c42c8 drm/rockchip: lvds: update rk336x according rk3288 lvds function define
Change-Id: I9dbb9dc55f3d6d7ae498e94f595e8de47c6a4d43
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2017-08-09 09:33:32 +08:00
WeiYong Bi
89b7ad3a8e drm/rockchip: dsi: partial revert commit 47aef8
fix anomaly display issue for rk3368 caused by commit 47aef8

Fixes 47aef8 (drm/rockchip: dw-mipi-dsi: organize dw_mipi_dsi_set_mode function)

Change-Id: Ida274c65898b13468a2f984555efdf67cf32aab7
Signed-off-by: WeiYong Bi <bivvy.bi@rock-chips.com>
2017-08-08 15:31:13 +08:00
Zheng Yang
0a261ab9b1 drm/rockchip: hdmi: fix parse phy table error
The value of sym_ctr and term is reversed.

Change-Id: I29adaf9a8590ff27c912d22e2370db2ef5b2c305
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-08-07 18:40:02 +08:00
Mark Yao
b3702b38a1 drm/rockchip: vop: fixup post scale configure
Fixes: 7f1f1ef ("drm/rockchip: vop: don't force enable post scale")
Change-Id: I57b44e7fe00bce7615ecde2e1f23837c74532c68
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-04 17:12:00 +08:00
Jacob Chen
2792966e9f drm/rockchip: remove rga driver
we have to many rga drivers.. let's remove it to avoid misunderstanding

Change-Id: I807c9ff7dc967a00d30ccba5adc5d234e27b9d6a
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
2017-08-04 15:33:02 +08:00
WeiYong Bi
deeacfd957 drm/rockchip: dsi: fix Non-SNPS PHY power on sequence
Change-Id: If9f131ec6ebc8b194034bf231ca2bcc120440860
Signed-off-by: WeiYong Bi <bivvy.bi@rock-chips.com>
2017-08-04 09:16:10 +08:00
Huang Jiachai
c4e97a6379 drm/rockchip: get connector in bridge mode
Change-Id: I08535f5c2d83783dc86ae641daeb530dedec36e6
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2017-08-03 20:25:32 +08:00
Huang Jiachai
b05ec6d240 drm/rockchip: add loader protect for encoder
Change-Id: I9fa1e949a55d8778b44ff809630337d5d35ffa11
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2017-08-03 20:23:17 +08:00
Huang Jiachai
bc85c7c3f1 drm/rockchip: lvds: support external bridge
Change-Id: If4a0da37f8c2062d0efd09bf71cd566091043127
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2017-08-03 20:22:41 +08:00
Huang Jiachai
ee5e55c9d8 drm/rockchip: lvds move dpms/commit to enable ops
Change-Id: I23d9f2ebdcd55ecd2a3922cc3e06bb162a68b6e5
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2017-08-03 20:22:13 +08:00
Jerry Xu
b4ee7af427 drm/rockchip: dw-mipi-dsi: configure grf register for 3399
1. Fixes: 6cd4eabae71d("drm/rockchip: dw-mipi-dsi: add dual-channel dsi support")
2. add for dual-channel dsi

Change-Id: I69a25fcf8087872f3e7d254f4606ea08e458c295
Signed-off-by: Jerry Xu <xbl@rock-chips.com>
2017-08-03 20:14:13 +08:00
Jerry Xu
a18191caed drm/rockchip: dw-mipi-dsi: modify the way to find the panel node
Change-Id: Ib88c11d5c44d9dc465604ddf9b00e361ff7ac958
Signed-off-by: Jerry Xu <xbl@rock-chips.com>
2017-08-03 11:48:47 +08:00
Finley Xiao
b260ef595e drm/rockchip: vop: Fix unregister devfreq notifier unsuccessfully
Change-Id: I0d1e02eea2af59d63ea2948e14277aa6ad9955b6
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-08-02 21:31:11 +08:00
Mark Yao
e7bf29dec5 drm: fix mutex lock on connector register
Fixes: c4a3cc5 ("drm: Paper over locking inversion after registration rework")
Change-Id: I43c8ec8ed7e21416a1e2531cd84d04ba148ad0c4
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-02 14:20:00 +08:00
Mark Yao
1089d61863 drm/rockchip: vop: reference vblank before queue to flip worker
Reference vblank after the fb_unref_worker may have a problem:
    queue fb_unref_work
                         <--- unfer_worker:drm_crtc_vblank_put()
    drm_crtc_vblank_get

Following Warning may cause by this race:

[11749.638812] WARNING: at drivers/gpu/drm/drm_irq.c:1272
[11749.638818] Modules linked in:
[11749.638825]
[11749.638833] CPU: 4 PID: 8446 Comm: kworker/u12:1 Not tainted 4.4.77 #2428
[11749.638841] Hardware name: Rockchip RK3399 Excavator Board edp (Android) (DT)
[11749.638864] Workqueue: events_unbound flip_worker
[11749.638873] task: ffffffc0f1a7db00 ti: ffffffc0da3f8000 task.ti: ffffffc0da3f8000
[11749.638884] PC is at drm_vblank_put+0x34/0xac
[11749.638890] LR is at drm_crtc_vblank_put+0x20/0x2c
[11749.642771] [<ffffff8008473cb0>] drm_vblank_put+0x34/0xac
[11749.642778] [<ffffff8008473d48>] drm_crtc_vblank_put+0x20/0x2c
[11749.642786] [<ffffff80084a2894>] vop_fb_unref_worker+0x14/0x28
[11749.642792] [<ffffff800848c2a0>] flip_worker+0xa8/0xe8
[11749.642801] [<ffffff80080b73f4>] process_one_work+0x218/0x3e0
[11749.642808] [<ffffff80080b7df4>] worker_thread+0x2e8/0x404
[11749.642814] [<ffffff80080bc738>] kthread+0xf8/0x100
[11749.642821] [<ffffff8008082840>] ret_from_fork+0x10/0x50

Change-Id: I2b7f8a84d18e4635122b5028d39ec8192c6ca70b
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-08-02 14:19:55 +08:00