Commit Graph

1058918 Commits

Author SHA1 Message Date
Sandy Huang
49dc2e264f drm/rockchip: vop2: use wait done bit instead of fs raw bit
the fs raw bit will be cleared by vop2_isr() fs irq and lead to
vop2_wait_for_fs_by_raw_status() time out, so we use
vop2_wait_for_fs_by_done_bit_status() to wait done bit from 1 to 0 is
more reliable.

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ice35fb9bfe6c2ef7a49496b15b9f58bf93e95d4e
2021-07-09 17:13:51 +08:00
Andy Yan
d9aca94d74 drm/rockchip: vop2: Enable sd2hdr when we have a sdr plane but hdr output
We thought when userspace switch hdmi to hdr mode, it must
give vop a hdr plane, but We meet a case: composer give
vop only one sdr plane, but switch hdmi to hdr mode.

so we don't check the plane number for sdr2hdr_en;

Change-Id: I4804a88321af84328735d6499ac9df610bf2cb85
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-07-09 17:13:25 +08:00
Andy Yan
dd815d2e64 drm/rockchip: vop2: Add option to disable afbc window
Change-Id: I115a1671c0bf3a6e7af541a376fbdafa33bbb439
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-07-09 17:12:14 +08:00
Andy Yan
96cba3c6bb drm/rockchip: vop2: check win_mask for each plane on crtc
win_mask is more safe than plane_mask on crtc_state,
because crtc_state may changed by many interface.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: I886c8e1e1c0505e46292721de05d9be7c167d956
2021-07-09 17:11:25 +08:00
Sandy Huang
c0b3b7be82 drm/rockchip: vop2: add consider three display pending done bit
Change-Id: I9e2fe62cff31153a1b16faaaa11f9a49b8051975
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-07-09 17:08:00 +08:00
Sandy Huang
11110fed75 drm/rockchip: vop2: add parse plane mask policy from uboot or dts file
Change-Id: I8608dfeb44ab02717d64da151aefe1f9548c936b
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-07-09 16:39:39 +08:00
Sandy Huang
e0dda1124f drm/rockchip: vop2: add to get more bus format from dri sunmmary
Change-Id: I58d505fb5abe9f71ab7dd747a0345b226aa46855
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-07-09 16:30:41 +08:00
Andy Yan
f674b60549 drm/rockchip: vop2: skip fist frame when port_mux is changed
we must make sure the port_mux configuration is take effet
before configure a window that is moved from another VP.

Change-Id: I4ca581292e08ef30cc4b6eb47aef02e678f38a66
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-07-09 16:30:35 +08:00
Andy Yan
3655480f00 drm/rockchip: vop2: Change port_mux must make sure previous configuration is done
port_mux register is shared by all the three(four on rk3588)
video ports, and the config done vsync is controlled by
layer_sel_regdone_sel bits.

We must make sure the previous configuration is take
effect, when change port_mux for another vp.

Change-Id: Ic4bd58f52760080f2f264f37cc6f01a9cd58939f
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-07-09 16:26:35 +08:00
Andy Yan
edd004cdf5 drm/rockchip: vop2: wb cfg done also should read than write
wb cfg done bit may override vp config bits.

Change-Id: Ib315ab93fce5ba6d3dcdd635595a239a86e6e62f
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-07-09 11:42:42 +08:00
Andy Yan
a3cf987cb1 drm/rockchip: vop2: counter vsync by writeback job
There maybe a case a new wb commit is commit when
the last wb has not completed, this may override
the fs_vsync_cnt.

So counter vsync for every wb job independently.

Change-Id: I8e8c527a49252dcc4b0b1ff591523de5a33ae5ba
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-07-09 11:42:42 +08:00
Sandy Huang
3f1eadc48e drm/rockchip: vop2: add support yvyu and vyuy format
Change-Id: I0ed523a57b562a6d2aabcebf6d68a0e77cd31eeb
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-07-09 11:42:42 +08:00
Sandy Huang
c495f593fe drm/rockchip: vop2: disable layer mix when it's unused
If the layer pass through layer mix is unused, we need to disable alpha,
at this time, the layer mix only used to transfer alpha to next mix.

Change-Id: Ibd469b4fb61b41480297bc20c346e9ceefa61fc7
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-07-09 11:42:42 +08:00
Andy Yan
3d6f4474dc drm/rockchip: vop2: Add vop2_standby
This is for mipi dsi on rk356x: there
is a hold signal from mipi dsi to
vop.

Mipi dsi may trigger the hold signal
when send dsi command or switch between
video mode and command mode.

vop may run into an unexpected situation if this hold
signal is rise when vop is running.

So when mipi dsi switch between video mode
or command mode, or send a dsi command, it
should set vop in stanby state.

Change-Id: I80e456d3416518436045ae8e0eec215c22b111a3
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-07-09 11:42:42 +08:00
Sandy Huang
241f13f049 drm/rockchip: vop2: alpha value need transfer to next mix
Change-Id: I2f00b8f834cd93a206643c0faaf557d38c238a13
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-07-09 11:42:42 +08:00
Sandy Huang
aed22eb670 drm/rockchip: vop2: fix start mixer id error
Change-Id: I6e6287d43d375f8a8be47fe00cbe39764ffe6ee3
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2021-07-09 11:42:42 +08:00
Zhixiong Lin
f5fe9966d4 GPU: Kconfig: add gpu Kconfig to video Kconfig
Change-Id: I9938fe0377fc57e030c9e5109c216d6c62dbeef0
Signed-off-by: Zhixiong Lin <zhixiong.lin@rock-chips.com>
2021-07-09 09:26:18 +08:00
Zhen Chen
f5f907a67f MALI: mali400: Fix all compile errors under kernel 5.10
Change-Id: Iee1e5bc609e703de0c1e7c1f781ba7059c4aa6ae
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2021-07-09 09:26:18 +08:00
Zhen Chen
970017f88e MALI: midgard: Fix all compile errors under kernel 5.10
Change-Id: I8672520b7c7118ab7622032481802eae72349f81
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2021-07-09 09:26:17 +08:00
Tao Huang
fcb101fe62 arm64: rockchip_linux_defconfig: Enable CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND
GPU drivers should select this config.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I967547f19473f7617c127ef94310655f66a92510
2021-07-09 09:26:17 +08:00
Tao Huang
07bf6d1a58 ARM: rockchip_linux_defconfig: Enable CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND
GPU drivers should select this config.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I5acced3f823c5865aa0cd316f0d60ed8a0a028a5
2021-07-09 09:26:17 +08:00
Guochun Huang
fe9341a608 drm/rockchip: dsi: add dphy timing for possible external dphy
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: I94e16fe908558edeb0919b64621f7a8c1c58c6a4
2021-07-08 20:32:53 +08:00
Guochun Huang
c39319e998 drm/rockchip: dsi: support lane_rate can be specified manually
Change-Id: Ib0db1a80737410c65440f4ac3b888f43a44bdd9c
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
2021-07-08 20:31:59 +08:00
Sandy Huang
c945c0476d drm/rockchip: don't mask possible_crtcs if remote-point is disabled
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Id8bb14fdb025f43da5d10626b660c2fcad490e39
2021-07-08 20:30:35 +08:00
Sandy Huang
b8798bd004 drm/rocckhip: implement rockchip_drm_gem_prime_import
when import dma-buf we should compare dma_buf->ops with rockchip_drm_gem_prime_dmabuf_ops;
so we implement rockchip_drm_gem_prime_import to instead of drm_gem_prime_import.

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Iab3260b5c3efb5634d411eb1e8620fb575aa063c
2021-07-08 20:28:53 +08:00
Mark Yao
55e4328316 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>
2021-07-08 20:28:53 +08:00
Guochun Huang
5b846d1e70 arm64: dts: rockchip: rk3568: video_phy: appending compatible property
make old u-boot happy.

Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: Iefa4915abf5d3ada9865bc710e9aba0f1c47ddea
2021-07-08 20:26:43 +08:00
Huang Jiachai
da8f900b52 dma-buf/sw_sync: sw_sync register as misc devices
Because the kernel debug fs will removed from android 11, so we move
sw_sync to misc devices, as android lib sync has done the compatibility
work, so after this commit, the hwc there is no need to update.

Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
Change-Id: I799b66b1ba98c9370893b9554095664010b635df
2021-07-07 20:53:14 +08:00
Andy Yan
c631006b69 drm/rockchip: register vop2 platform driver
Change-Id: Id34b88f47b785bf8372d1710a280d294347d6693
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-07-07 20:43:14 +08:00
Zhen Chen
ebf7d491c2 arm64: rockchip_defconfig: Enable DMABUF heaps
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_SYSFS_STATS=y
+CONFIG_DMABUF_HEAPS_DEFERRED_FREE=y
+CONFIG_DMABUF_HEAPS_PAGE_POOL=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y

Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
Change-Id: I16a9a609c94145567eec2043b5d71a2df7e54937
2021-07-07 20:33:59 +08:00
Caesar Wang
18e3fba39e MALI: bifrost: fixes the bifrost built
dmesg log from bootup:
...
[    0.988106] mali fde60000.gpu: GPU identified as 0x2 arch 7.4.0 r1p0 status 0
[    0.988199] mali fde60000.gpu: No memory group manager is configured
[    0.989228] mali fde60000.gpu: Probed as mali0

[root@RK356X:/]# cat ./sys/devices/platform/fde60000.gpu/gpuinfo
Mali-G52 1 cores r1p0 0x7402

[root@RK356X:/]# ls /sys/class/devfreq/fde60000.gpu/
available_frequencies  governor  name              target_freq
available_governors    load      polling_interval  timer
cur_freq               max_freq  power             trans_stat
device                 min_freq  subsystem         uevent

Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Change-Id: I1669385cd2609fbe8ba4507f777e904e1f6c6961
2021-07-07 14:23:02 +08:00
Liang Chen
96082a70ef arm64: dts: rockchip: rk356x: enable bus_npu for some boards
Enable bus_npu so that we can enable npu@1.0G safely when necessary.

Change-Id: I1a6ce1652aba7bafe91135bc79881cad0d5980ce
Signed-off-by: Liang Chen <cl@rock-chips.com>
2021-07-06 19:35:04 +08:00
Huang zhibao
42aa5d5af3 arm64: dts: rockchip: nvr: incluede rk3568-nvr-linux instead of rk3568-linux
Signed-off-by: Huang zhibao <hzb@rock-chips.com>
Change-Id: I954c67c806714e72043e9613e7fa13d1e04069cf
2021-07-06 19:35:04 +08:00
Huang zhibao
d7eab696af arm64: dts: rockchip: rk3568-nvr: io-domian all default set 3.3V for rk356x boards
io-domian  default as:
&pmu_io_domains {
    status = "okay";
    pmuio2-supply = <&vcc_3v3>;
    vccio1-supply = <&vcc_3v3>;
    vccio3-supply = <&vcc_3v3>;
    vccio4-supply = <&vcc_3v3>;
    vccio5-supply = <&vcc_3v3>;
    vccio6-supply = <&vcc_3v3>;
    vccio7-supply = <&vcc_3v3>;
};
TODO:
Need to be modified according to the actual hardware
for example rk3568-nvr-demo v10/V12 board:
&pmu_io_domains {
    status = "okay";
    pmuio2-supply = <&vcc_3v3>;
    vccio1-supply = <&vcc_3v3>;
    vccio3-supply = <&vcc_3v3>;
    vccio4-supply = <&vcc_1v8>;
    vccio5-supply = <&vcc_3v3>;
    vccio6-supply = <&vcc_1v8>;
    vccio7-supply = <&vcc_3v3>;
};

Signed-off-by: Huang zhibao <hzb@rock-chips.com>
Change-Id: I707ee8fbce7564db908ca0682c3ead5bf621f95e
2021-07-06 19:35:04 +08:00
Huang zhibao
3d4ce4e2a1 arm64: dts: rockchip: rk3566-box: io-domian all default set 3.3V for rk356x boards
io-domian  default as:
&pmu_io_domains {
    status = "okay";
    pmuio2-supply = <&vcc_3v3>;
    vccio1-supply = <&vcc_3v3>;
    vccio3-supply = <&vcc_3v3>;
    vccio4-supply = <&vcc_3v3>;
    vccio5-supply = <&vcc_3v3>;
    vccio6-supply = <&vcc_3v3>;
    vccio7-supply = <&vcc_3v3>;
};
TODO:
Need to be modified according to the actual hardware
for example rk3566-box-demo v10 board:
&pmu_io_domains {
    status = "okay";
    pmuio2-supply = <&vcc_3v3>;
    vccio1-supply = <&vcc_3v3>;
    vccio3-supply = <&vcc_3v3>;
    vccio4-supply = <&vcc_1v8>;
    vccio5-supply = <&vcc_3v3>;
    vccio6-supply = <&vcc_1v8>;
    vccio7-supply = <&vcc_3v3>;
};

Signed-off-by: Huang zhibao <hzb@rock-chips.com>
Change-Id: Ifda027a8ceb0bd9cb7ae34a6f0599100abc431b4
2021-07-06 19:35:04 +08:00
David Wu
6e097f589e arm64: dts: rockchip: Add QSGMII support for rk3568-evb2
Maybe some people want to use the Ethernet function of evb2,
which is turned on by default so that the Ethernet can work.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Change-Id: I314ac4e0d51804ea3463735d6cc9c90a536d173a
2021-07-06 19:35:04 +08:00
Huang zhibao
d57c7e89db arm64: dts: rockchip: rk3566-box: fix vdd_logic max-microvolt
Signed-off-by: Huang zhibao <hzb@rock-chips.com>
Change-Id: I19469288b52b58824fd8a7f9d70a1991c5835fba
2021-07-06 19:35:04 +08:00
Wu Liangqing
c3942188fe arm64: dts: rockchip: io-domian all default set 3.3V for rk356x boards
io-domian  default as:
&pmu_io_domains {
     status = "okay";
     pmuio2-supply = <&vcc3v3_pmu>;
     vccio1-supply = <&vccio_acodec>;
     vccio3-supply = <&vccio_sd>;
     vccio4-supply = <&vcc_3v3>;
     vccio5-supply = <&vcc_3v3>;
     vccio6-supply = <&vcc_3v3>;
     vccio7-supply = <&vcc_3v3>;
};
TODO:
Need to be modified according to the actual hardware
for example rk3568-evb:
&pmu_io_domains {
     status = "okay";
     pmuio2-supply = <&vcc3v3_pmu>;
     vccio1-supply = <&vccio_acodec>;
     vccio3-supply = <&vccio_sd>;
     vccio4-supply = <&vcc_1v8>;
     vccio5-supply = <&vcc_3v3>;
     vccio6-supply = <&vcc_1v8>;
     vccio7-supply = <&vcc_3v3>;
};

Signed-off-by: Wu Liangqing <wlq@rock-chips.com>
Change-Id: I296a696851c2a85618d08cce82da546c72266699
2021-07-06 19:35:04 +08:00
Huang zhibao
b3a9925bb7 arm64: dts: rockchip: rk3566-box: update io_domain
Signed-off-by: Huang zhibao <hzb@rock-chips.com>
Change-Id: I70335dd9075bafd852e78f4a99a8942f0afd0856
2021-07-06 19:35:04 +08:00
Huang zhibao
f9712b92da arm64: dts: rockchip: rk3566-box: disable ddr auto-freq-en
Signed-off-by: Huang zhibao <hzb@rock-chips.com>
Change-Id: I9fdd665184c4ee60cd4dc4c7e5857f496f1970f2
2021-07-06 19:35:04 +08:00
Caesar Wang
f3d3879b27 arm64: dts: rockchip: disable afbc by default on rk3568-linux.dtsi
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Change-Id: I1dbf50e9056242991afae4df3303c739065dfb6b
2021-07-06 19:35:04 +08:00
Zorro Liu
320b7b3949 arm64: dts: rockchip: rk3566-eink: add more ddr freq and disabled default
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
Change-Id: If8e2d053c9d07fb539e53c72f5705cdfe74cf600
2021-07-06 19:34:51 +08:00
Ding Wei
057aa9667b arm64: dts: rockchip: rk3568-nvr: Set parameters for nvr
1. rockchip,disable-auto-freq, means when get/set/reduce freq,
   return directly.
2. set assigned-clock-rates at hardware running rates, then
   it not need to adjust before running.

Change-Id: I0d7864112bb5ade99e29bcce9824f84e9a58735e
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2021-07-06 19:23:38 +08:00
Weixin Zhou
46955357d0 arm64: dts: rockchip: rk3566-eink: setting sleep_sta_ctl on in ultra sleep only
Signed-off-by: Weixin Zhou <zwx@rock-chips.com>
Change-Id: I40484a87ef97429649620adebdc466cfadad4dc3
2021-07-06 19:23:38 +08:00
Tao Huang
0de7b74540 arm64: dts: rockchip: Disable CPU_SLEEP idle state on rk3568-nvr
Reduce wake up latency.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I704c359338e2ef556f56af63875be54335974b52
2021-07-06 19:23:38 +08:00
Tao Huang
400987e347 arm64: dts: rockchip: rkvdec use 64KB sram on rk3568-nvr
Without DDR freq, rkvdec can use all sram.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I17ddd8715ffff524613ba0a2f906d51ec12f4a94
2021-07-06 19:23:38 +08:00
Tao Huang
8d3b03c894 Revert "arm64: dts: rockchip: rk3568-nvr: remove rcb reference properties"
This reverts commit fc2f74ccdd.

Use sram can reduce the memory bandwidth usage.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I5fae577671a905348239d0a40299d69e4cd8e6bb
2021-07-06 19:23:38 +08:00
Alex Zhao
e5b8734cd5 arm64: dts: rockchip: rk356x board: give wifi some time after power-on.
Signed-off-by: Alex Zhao <zzc@rock-chips.com>
Change-Id: I29503ce3f328862361fda1c192aaff5d3b3781cb
2021-07-06 19:23:38 +08:00
Xiao Ya peng
898c29ea76 arm64: dts: rockchip: rk3568-nvr-demo-v10-spi-nand: disabled pcie for v10 borad
Signed-off-by: Xiao Ya peng <yp.xiao@rock-chips.com>
Change-Id: If25306404edc6bad153ed48a1b3786f14f71dc76
2021-07-06 19:23:38 +08:00
Zorro Liu
566224b2e8 arm64: dts: rockchip: rk3566-eink: eink mem reserved start from 0x10800000
Since the cma reserved start from 0x10000000, size 0x00800000,
so fix the eink reserved default start from 0x10800000

Signed-off-by: Zorro Liu <lyx@rock-chips.com>
Change-Id: Iff6933137e77ac678bb7dd815968a9d447476623
2021-07-06 19:23:38 +08:00