Commit Graph

840105 Commits

Author SHA1 Message Date
YouMin Chen
2f756f615c PM / devfreq: rockchip-dfi: fix lpddr4 calculation error
Fix lpddr4 calculation error about access.
LPDDR4 BL(burst length) = 16,other DDR type BL(burst length) = 8.

Change-Id: Icc1b4f6764fa0b23ec1f7722bda8ffeff1da4ab7
Signed-off-by: YouMin Chen <cym@rock-chips.com>
2019-06-14 09:41:25 +08:00
YouMin Chen
8b8caafc45 PM / devfreq: rockchip-dfi: add support for rk1808 dfi
Change-Id: Id95eca244c666b103ce4f9676e2abbeb304196ac
Signed-off-by: YouMin Chen <cym@rock-chips.com>
2019-06-14 09:41:17 +08:00
YouMin Chen
3d6f9a7e26 dt-bindings: devfreq: rockchip_dfi: Add rk1808 support
Change-Id: I8bd056dcc93f3c9c94b1b490340f8b040bb77d43
Signed-off-by: YouMin Chen <cym@rock-chips.com>
2019-06-14 09:41:10 +08:00
YouMin Chen
47d83ba0e3 PM / devfreq: event: add support for px30 dfi
Change-Id: Ib6808d961b65d993fea05ab15d648d814d14a4a2
Signed-off-by: YouMin Chen <cym@rock-chips.com>
2019-06-14 09:41:02 +08:00
CanYang He
bac837872c PM / devfreq: event: add support for rk3328 dfi
This adds the necessary data for handling dfi on the rk3328.

Change-Id: Id870f78dad3ddd6cb5771674a4e8905322f9e8ef
Signed-off-by: CanYang He <hcy@rock-chips.com>
2019-06-14 09:40:41 +08:00
CanYang He
7d19c1f93d PM / devfreq: event: make dfi more extension
after modify, rockchip_dfi_ops can apply to other platform use such
version ddr monitor. regardless of channel count, only one channel
of rk3288,rk3399,rk3328 can work. and regardless of monitor clk,
some platform like rk3328 monitor clk is always on.

Change-Id: Ia1c02a89116546ded385c5a6a3e36d020d66b7f3
Signed-off-by: CanYang He <hcy@rock-chips.com>
2019-06-14 09:39:53 +08:00
Liang Chen
3b90ebfa1c PM / devfreq: event: add support for rk3128 dfi
This adds the necessary data for handling dfi on the rk3128.
Access the dfi via registers provided by GRF (general register
files) module.

Change-Id: Ife9e9987224088434e878102b7d1c3b132e761ad
Signed-off-by: Liang Chen <cl@rock-chips.com>
2019-06-14 09:23:04 +08:00
Tang Yun ping
7a400740a9 PM / devfreq: event: add support for rk3288 dfi
This adds the necessary data for handling dfi on the rk3288.
Access the dfi via registers provided by GRF (general register
files) module.

Change-Id: Ic7241af3c20a269ab362055dea04d260e01c50de
Signed-off-by: Tang Yun ping <typ@rock-chips.com>
2019-06-14 09:22:49 +08:00
Finley Xiao
f869a7da50 PM / devfreq: event: add support for rk3368 dfi
This adds the necessary data for handling dfi on the rk3368.
Access the dfi via registers provided by GRF (general register
files) module.

Change-Id: I96c2b4dcd34d90731b749ebdbe6922f01559d8e6
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-14 09:02:38 +08:00
Jianqun Xu
3d702d5993 PM / devfreq: rockchip-dfi: disable irqs during accessing ddr monitor
Change-Id: Ie4817a77fcb1283f37f41ab097f02ed7dc9cd18c
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2019-06-14 09:02:29 +08:00
Sandy Huang
e7aa22ba72 drm/rockchip: vop: add support csc and hdr
Change-Id: I64f1718646a9f94b4cb13035f1a852d6b824b5af
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-13 14:14:59 +08:00
Sandy Huang
059bcbb1d0 drm/rockchip: vop: use new register config interface
Change-Id: I63a5a41da3a4f8a1686594769167c31a7dfecb50
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-13 12:03:26 +08:00
Sandy Huang
e623617072 drm/rockchip: gem: Add GEM create ioctl support
Rockchip Socs have GPU, we need allocate GPU accelerated buffers.
So add special ioctls GEM_CREATE/GEM_MAP_OFFSET to support
accelerated buffers.

Change-Id: Ia4b13798aac97d16214da7a75a2479e6e334313a
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 15:24:22 +08:00
Mark Yao
6b20083469 dt-bindings: rockchip: drm: add secure memory and clk
Change-Id: Ibbfae144d5b79972ffa913801c7054c8af4bcd41
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 14:54:44 +08:00
Mark Yao
d0ca05b8a4 drm/rockchip: gem: support secure memory
Change-Id: I91dfbbfbf5d13983edfb79585e9beb980566f784
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: jay.xu <xjq@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 14:54:34 +08:00
Tao Huang
f89f356895 rk: ARM: support build [z]boot.img from existing boot.img
The existing boot.img from $(BOOT_IMG).

Change-Id: I3751e56ee88b3ece03999dc68c7c2595807bcbf7
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-06-12 14:31:18 +08:00
Tao Huang
2c7e4e7fd3 rk: arm64: support build [z]boot.img from existing boot.img
The existing boot.img from $(BOOT_IMG).

Change-Id: Iaf78185546200acb10ae13f541197722149624e1
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-06-12 14:31:18 +08:00
Tao Huang
6f2dead304 rk: scripts: add repack-bootimg
Also add unpack_bootimg and update mkbootimg

AOSP 96fd8874ef8e ("Check DTB image size for boot image header version 2 and above")

Change-Id: I4582913b21f711c84d62bed0ffd024b583a094f7
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-06-12 14:31:18 +08:00
Sandy Huang
cb1cb6f184 drm/rockchip: gem: don't limit to 32bit mapping when not support LPAE
Change-Id: Ia4fab3d63947ba693488fb58e3a104d400bd6e23
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Meiyou Chen <cmy@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 14:20:48 +08:00
Mark Yao
ccc8053479 drm/rockchip: gem: support force alloc cma buffer with flags
Change-Id: I4749eac53609f865d0d4230364b1cbaf39ee0955
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 14:16:27 +08:00
Mark Yao
c85af5021b drm/rockchip: gem: add begin/end cpu access
Change-Id: Ie2c54addcf037cf501edcad76470e5e46c667b7e
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 14:14:55 +08:00
Mark Yao
4b7491b317 drm/prime: add dmabuf begin/end cpu access
Change-Id: I0b4be7f8d78142024a2067db041e4f1c2670086c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 14:14:01 +08:00
Grzegorz Prajsner
6bc1d2e52d FROMLIST: drm/rockchip: add fb_dmabuf_export support
Add support for fb_dmabuf_export call, which is executed when ioctl
FBIOGET_DMABUF is called.

Change-Id: I13b753ae25d043835b1f4ffc20b5e233171d1096
Signed-off-by: Guillaume Tucker <guillaume.tucker@arm.com>
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
(am from 61062681c9)
2019-06-12 14:13:28 +08:00
Jamie Nicol
3cbf2deaa0 FROMLIST: fb: add dma-buf support
Add support for the dma-buf exporter role to the frame buffer API. The
importer role isn't meaningful for frame buffer devices, as the frame
buffer device model doesn't allow using externally allocated memory.

taken from an RFC on the linaro-mm-sig mailing list:
http://lists.linaro.org/pipermail/linaro-mm-sig/2012-June/002167.html

Fixes by Mark Yao:
  add FBIOGET_DMABUF to compat_ioctl.

Change-Id: I39c9bbdd6b88c6d5ba7524abfc5b560dceb4633e
Signed-off-by: Guillaume Tucker <guillaume.tucker@arm.com>
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
(am from https://patchwork.linuxtv.org/patch/12980)
2019-06-12 14:12:53 +08:00
Sandy Huang
570dc87085 drm: support ignore drm ioctl permission
Change-Id: I269766a9f3f844933bd294ce681466f5a97b1d43
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 14:12:11 +08:00
Matthias Kaehlcke
6c619c5700 UPSTREAM: PM / devfreq: Fix handling of min/max_freq == 0
Commit ab8f58ad72 ("PM / devfreq: Set min/max_freq when adding the
devfreq device") initializes df->min/max_freq with the min/max OPP when
the device is added. Later commit f1d981eaec ("PM / devfreq: Use the
available min/max frequency") adds df->scaling_min/max_freq and the
following to the frequency adjustment code:

  max_freq = MIN(devfreq->scaling_max_freq, devfreq->max_freq);

With the current handling of min/max_freq this is incorrect:

Even though df->max_freq is now initialized to a value != 0 user space
can still set it to 0, in this case max_freq would be 0 instead of
df->scaling_max_freq as intended. In consequence the frequency adjustment
is not performed:

  if (max_freq && freq > max_freq) {
	freq = max_freq;

To fix this set df->min/max freq to the min/max OPP in max/max_freq_store,
when the user passes a value of 0. This also prevents df->max_freq from
being set below the min OPP when df->min_freq is 0, and similar for
min_freq. Since it is now guaranteed that df->min/max_freq can't be 0 the
checks for this case can be removed.

Fixes: f1d981eaec ("PM / devfreq: Use the available min/max frequency")
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
(cherry picked from commit df5cf4a361)

Change-Id: Ib8e2def7d3bf605dba81cf75bab89a23a39ca6f3
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Bjorn Andersson
7f893a9fc9 UPSTREAM: PM / devfreq: Drop custom MIN/MAX macros
Drop the custom MIN/MAX macros in favour of the standard min/max from
kernel.h

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
(cherry picked from commit d0e464205b)

Change-Id: I15d97eb81276cef6a440449e7db62d866e5b7e26
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
ff7e2bfcd3 PM / devfreq: rockchip_dmc: Don't adjust to user limits
Since devfreq_add_device() and update_devfreq() already takes care of this.

Change-Id: Ie90c1d28f681cfbc946362e303a61bdf3578ccd6
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
3b1503b829 MALI: midgard_for_linux: RK: Add support to get soc infomation
Change-Id: I0fcc59bdb978ea85de3c1afb9ae6b368d1fd5e9c
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
cfa8862b8f MALI: midgard: RK: Add support to get soc infomation
Change-Id: I9e5ea0458ec08ddfc10d9d4e258713e747946959
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
d368d1acda clk: rockchip: rk3288: Add 420MHz for PLL
Change-Id: Ic722bdf5d467a64cdf093f8bdabb6dab533cd230
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
ca81bf09a6 soc: rockchip: opp_select: Disable rate scaling when fail to get clk
Change-Id: I1d9f8fcb6cda53bca6d7f63603322a80fcc88e7d
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
43b189a712 soc: rockchip: Change the parameter of power model for cpu and npu
Change-Id: I73724946fce82311d29de4538b8446e87d67dc92
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
f536573bf6 thermal: trace: Add trace for staitc power
Change-Id: I65fa7e60c606d414e6f5941c5a73347db9874c27
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
93a75af425 soc: rockchip: Add support to change static power according to leakage
Change-Id: Ie25e42ab14a46676819711957afa8aef8dfd0785
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Finley Xiao
8da9fcee28 soc: rockchip: Implement rockchip_of_get_leakage()
Change-Id: I6d1bf9ee6957455c2cb6623aa112d918a9fea4d4
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-12 09:38:43 +08:00
Sandy Huang
3967d5965f drm/rockchip: delete some unused define
Change-Id: Idca65b6d16414213ad438e04224a53189b33daef
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-12 09:28:33 +08:00
Elaine Zhang
c086bce5d9 arm64: dts: rockchip: fix up the rk805 dts node error
Change-Id: I6a8e02e2418c1ffa4741ccb73a8373e8be088d11
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2019-06-11 15:14:22 +08:00
Elaine Zhang
47e16176e1 ARM: dts: rockchip: fix up the rk805 dts node error
Change-Id: Ic39000c5fa4bbd9ecc68f0184c9385536ddeb882
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
2019-06-11 15:13:34 +08:00
Sandy Huang
8dc3d77ba5 drm/rockchip: vop: move plane calculate to atomic_check
Change-Id: Icb5ff0ae4290720e8b288f839df4c010eed72d18
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-06 19:16:53 +08:00
Sandy Huang
1a798a8e5b drm/rockchip: vop: remove unused device
Change-Id: I4315e17c0c6c2c9e2528072e330af9309df96ea3
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-06 19:15:50 +08:00
Sandy Huang
16018dd3fd drm/rockchip: fix fbdev crash when not use DRM_FBDEV_EMULATION
[    1.162571] Unable to handle kernel NULL pointer dereference at virtual address 00000200
[    1.165656] Modules linked in:
[    1.165941] CPU: 5 PID: 143 Comm: kworker/5:2 Not tainted 4.4.15 #237
[    1.166506] Hardware name: Rockchip RK3399 Evaluation Board v1 (Android) (DT)
[    1.167153] Workqueue: events output_poll_execute
[    1.168231] PC is at mutex_lock+0x14/0x44
[    1.168586] LR is at drm_fb_helper_hotplug_event+0x28/0xcc
[    1.172192] [<ffffff8008982110>] mutex_lock+0x14/0x44
[    1.172196] [<ffffff80084025a4>] drm_fb_helper_hotplug_event+0x28/0xcc
[    1.172201] [<ffffff8008427ae4>] rockchip_drm_output_poll_changed+0x14/0x1c
[    1.172204] [<ffffff80083f7c4c>] drm_kms_helper_hotplug_event+0x28/0x34
[    1.172207] [<ffffff80083f7ddc>] output_poll_execute+0x150/0x198
[    1.172212] [<ffffff80080b0ea8>] process_one_work+0x218/0x3dc
[    1.172215] [<ffffff80080b1578>] worker_thread+0x24c/0x374
[    1.172217] [<ffffff80080b5bcc>] kthread+0xdc/0xe4
[    1.172222] [<ffffff8008084cd0>] ret_from_fork+0x10/0x40

Change-Id: I681b9260ad7f2e3cae5cd08a109dad89b3575c2c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-06 19:15:23 +08:00
Sandy Huang
11f3f8261c drm/rockchip: support loader display
Change-Id: Ia3708d4dff638380aa03f83e38248840454e2b70
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-06 19:15:10 +08:00
Sandy Huang
8b9e68c433 drm/rockchip: support add fb from dev resource
Change-Id: I980af965d83de25c433ba5424bab2ad063534bcb
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-06 17:41:36 +08:00
Sandy Huang
98b8b428b8 drm/rockchip: add DRM_RENDER_ALLOW
This is required by android hwc.

Change-Id: Ia0159b877f7d8b2bb5cecf3b352b67d9c76c7c97
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-06 17:40:31 +08:00
Sandy Huang
e3e37b885e drm/rockchip: vop: support plane zpos property
Change-Id: Idd0265020a591ce5b34d117442104f625e331119
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-05 19:49:08 +08:00
Sandy Huang
23503761c7 drm/rockchip: vop full: add area plane
add rk3288/rk3368/rk3399 vop area plane

Change-Id: Ia6f77353363e25423ac29129372bc510565682f8
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-05 19:47:40 +08:00
Sandy Huang
8ba5fa48e5 drm/rockchip: vop: support multi area plane
The series vop of VOP_FULL framework support area plane, such as
RK3288 and RK3399, one group of area planes share same hardware,
reuse the hardware on different scanout time, this design is
useful to support mulit planes with low hardware consume.

Change-Id: Ie53211ce9ed22d03f7668637efbb7c95d9a8eb5b
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-05 19:46:37 +08:00
Mark Yao
8b19e980a6 drm: introduce share plane
The plane hardware is used when the display scanout run into plane active
scanout, that means we can reuse the plane hardware resources on plane
non-active scanout.

Because resource share, There are some limit on share plane: one group
of share planes need use same zpos, can't not overlap, etc.

We assume share plane is a universal plane with some limit flags.
people who use the share plane need know the limit, should call the ioctl
DRM_CLIENT_CAP_SHARE_PLANES, and judge the planes limit before use it.

Change-Id: Iecc3d8e7f1ce29d567cdbad689ba4dbad3d594e1
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-05 19:46:20 +08:00
Sandy Huang
28fb9688e8 drm/rockchip: set rgb overlay mode as default config
Change-Id: I8e1aafe5375862c34fa73aff16565a81bd12145d
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2019-06-04 16:06:40 +08:00