Commit Graph

1059953 Commits

Author SHA1 Message Date
Yifeng Zhao
3530c21737 arm64: dts: rockchip: add sata for rk3588
Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Change-Id: I0b6a83bca3ce1809a5004e6ac1b34eed0729b0c8
2021-08-31 14:50:00 +08:00
Yifeng Zhao
39481cd6d3 arm64: dts: rockchip: add naneng combophy for rk3588
Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Change-Id: Ie4b56fb1a018d1ab0c9d4ee0cccaebde7703eaad
2021-08-31 14:46:34 +08:00
Sugar Zhang
67d041d478 arm64: dts: rockchip: rk3588: Fixup i2s/spdif nodes
This patch move device nodes which belong to rk3588 into
rk3588.dtsi.

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Change-Id: Ie02c44bf955496b6c73a9ecdf9290c97e61cbcd4
2021-08-31 14:08:00 +08:00
Jianqun Xu
eca1fb4744 arm64: dts: rockchip: rk3399: modify gpu node for ARM Midgard driver
Change-Id: I46ff1b61787172a5b4ba5b378e00c6de4cfa7f8d
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2021-08-31 11:29:17 +08:00
William Wu
a27395c5bf arm64: dts: rockchip: rk3588s: add usb controllers nodes
The rk3588s supports multiple USB controllers:
1.2 x USB2.0 HOST (EHCI&OHCI)
2.1 x USB3.0 OTG  (DWC3)
3.1 x USB3.0 HOST (xHCI)

This patch adds nodes for these USB controllers.
Note that the phys properties of USB controlles are not
added yet, and they will be added later.

Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: Id16319990fc570ab2f71673463ffd70d5df3bfb8
2021-08-30 19:58:09 +08:00
Kever Yang
b684f15d8c arm64: dts: rockchip: add rktimer for rk3588
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Change-Id: Iad6ecb6a21a4a7d97f7677e9e585523f210d6c3f
2021-08-30 16:00:10 +08:00
Ding Wei
e1e1eabccd arm64: dts: rockchip: rk3588s: Add mmu nodes for video codecs
Change-Id: Id6ac46d1772a29e20834f4e46d342b8a5ede6545
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2021-08-30 15:45:34 +08:00
Felix Zeng
1775a5f995 driver: rknpu: Add rknpu driver for rk356x, version: 0.5.0
Signed-off-by: Felix Zeng <felix.zeng@rock-chips.com>
Change-Id: Ia9c19e37024d085010ef4c86a420ed5a9c831915
2021-08-30 15:15:28 +08:00
Tao Huang
06c006f76a arm64: rockchip_gki.config: Enable CONFIG_ROCKCHIP_RKNPU
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I80da4a62eaea705955cadd4fa6faf4830be699ee
2021-08-30 15:15:28 +08:00
Felix Zeng
e72b8c6176 arm64: configs: rockchip_defconfig: Enable rknpu module
Signed-off-by: Felix Zeng <felix.zeng@rock-chips.com>
Change-Id: Ie86cfb931e46983875a4ee2adcf5760166bb38e8
2021-08-30 15:15:28 +08:00
Sugar Zhang
7052d7de3c arm64: dts: rockchip: rk3588s: Add i2s/pdm/spdifrx/spdiftx nodes
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Change-Id: Ia967e33488241e509283bb4732d4651dbc069515
2021-08-30 15:04:38 +08:00
Sandy Huang
ef7eb42f48 drm/rockchip: vop2: enable dither up when input rgb565
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I554924b979735e2377b1e9d06b22b2d9b35450a4
2021-08-30 14:51:56 +08:00
Andy Yan
b7fb6c5626 drm/rockchip: vop2: Use normalized zpos
Some linux app may be set zpos without any check.
For example mpv: change the zpos of overlay
plane from default value 2 to 1, but the primary
plane zpos is also 1.

Change-Id: I6015c171c6512dc7f10bed7c56933941c9d64a2e
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-08-30 14:51:56 +08:00
Sandy Huang
c6db7fb1dc drm/rockchip: vop2: add support cubic lut from loader
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I11d65477364dc9ff4fb34d038179d5702faeb484
2021-08-30 14:51:47 +08:00
Sandy Huang
5579c96182 drm/rockchip: vop2: add support 10bit yuv and srgb output
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Iee5aad90edff69c00884bc25cc7dc2169d3103d2
2021-08-30 11:07:21 +08:00
Sandy Huang
8b5885eee1 drm/rockchip: vop2: output error info when cluster use non afbc format
This is special feature at rk356x, the cluster layer only can support
afbc format and can't support linear format;

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ic8efc26c07a088c246969622fcf2973b00abd9c2
2021-08-30 11:07:16 +08:00
Andy Yan
c553334fe7 drm/rockchip: vop2: wait port_mux cfg done before configure new plane
We need two vsync cycle when move a window from
on vp to another: the port_mux take effect in
first vsync, than enable the window at second
vsync.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: I87c1ac0803081ecb201d9218d40fdea89424fbd8
2021-08-30 11:07:11 +08:00
Andy Yan
d8d8a665cd drm/rockchip: vop2: Only register used vp to drm
A registered vp(crtc) need a primary plane, some
linux style display software(X11/weston) want more
overlay plane, so we don't register unused vp to
save some plane for overlay.

Change-Id: I66846af7364d1a20f38f35d65ed3fe34b7f280ab
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2021-08-30 11:07:06 +08:00
Finley Xiao
e7a722ad59 soc: rockchip: pvtm: Add support for RK3588 SoCs
This adds the necessary data for handling pvtm on the RK3588 SoCs.

Change-Id: I3a6b4699a5b36fa318dd8e10843fa47079eb5c6c
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-27 20:30:15 +08:00
Finley Xiao
f56f097d95 arm64: dts: rockchip: rk3588: Add tsadc device node
Change-Id: I9677dad752a4f380e984b42a8ee042eef924b6d1
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-27 20:23:31 +08:00
Finley Xiao
d1bf298cac dt-bindings: rockchip-thermal: Support the RK3588 SoC compatible
Add a new compatible for thermal founding on RK3588 SoC.

Change-Id: I95d1d03b74adfcf18884ca2ec797053a9a686d95
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-27 20:21:38 +08:00
Finley Xiao
a151b91a34 arm64: dts: rockchip: rk3588: Add pvtm device node
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: Ia846f55e970acda591d8a6a3fdc758bd09a34060
2021-08-27 20:20:18 +08:00
Simon Xue
e92d09741c iommu: rockchip: update .attach_dev/.detach_dev logic
ISP has following steps for exception handling:

	pm_runtime_get_sync
		|
		|
	iommu_detach_device
		|
		|
	ISP CRU RESET
		|
		|
	iommu_attach_device

The final purpose is to re-enable iommu by calling iommu_attach_device.
However, .detach_dev does not called by iommu_detach_device due to iommu
framework logic, which lead to .attach_dev called by iommu_attach_device
can not completely finished as iommu->domain did not changed by
.detach_dev. The iommu finally is in reset state due to ISP CRU RESET.
So, we remove checking iommu->domain here to let things going.

Another thing, if master attach it's own domain, to keep iommu_node
balance, .detach_dev must also remove checking iommu->domain.

Change-Id: Iedcafbb6d2d8ee0b927c952dde24c1689ff6b65b
Signed-off-by: Simon Xue <xxm@rock-chips.com>
2021-08-27 18:40:40 +08:00
Finley Xiao
859d7df6f7 dt-bindings: rockchip-pvtm: Support the RK3588 SoC compatible
Add a new compatible for thermal founding on RK3588 SoC.

Change-Id: Icb1a915f0dcb4cbc32bc6cb5e3d54b86f9397985
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-27 17:42:36 +08:00
Elaine Zhang
5df480db6f clk: rockchip: rk3588: rename some clks
1) rename pvtm clks name;
2) usbdp and mipidphy share one ref clk;
3) hdmitx, hdmirx, and usb2phy share one ref clk;

Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Change-Id: I2c85609359424ed388a051f4bb04b0d401c05d12
2021-08-27 17:42:18 +08:00
Finley Xiao
3fbcef574f arm64: dts: rockchip: rk3588: Add gpio func for tsadc
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: I625871a5b6238ae664698a5fe81d911183a72a18
2021-08-27 17:35:22 +08:00
Finley Xiao
49f6b1ac3f arm64: dts: rockchip: rk3588: add otp device node
Change-Id: I316f21efae865b819839180a4dc6c9f90afb2fc4
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2021-08-27 17:31:35 +08:00
Tao Huang
31942565f6 arm64: rockchip_gki.config: Enable CONFIG_SND_SOC_ROCKCHIP_I2S_TDM
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I0d62076671987d047ad709b34707604a0714d2de
2021-08-27 16:10:50 +08:00
Sugar Zhang
6c7029ca49 ASoC: rockchip: Add support for i2s/tdm controller
This patch adds support for i2s/tdm controller which support
I2S, PCM, TDM.

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Change-Id: I428e311402220ff14441c48e13fa51356ced46e8
2021-08-27 16:09:46 +08:00
Sugar Zhang
fa8be7127d ASoC: rockchip: i2s-tdm: Make soc_data symbol const
Change-Id: Id78f5f2d79f6345c97456e99ae107716e1a5f560
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-27 16:09:46 +08:00
Sugar Zhang
8b6420a3df ASoC: rockchip: i2s-tdm: Add support for 16ch tdm mode
TDM_I2S_ONE_FRAME:
support: [4, 8, 12, 16] channels

TDM_I2S_HALF_FRAME:
support: [2, 4, 6, 8] channels

TDM_PCM_XXX:
support: [2, 4, 6, 8] channels

Change-Id: If9d4205977ee09b993d32759353794c101dc281e
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-27 16:09:46 +08:00
Sugar Zhang
0a2f6adbb2 ASoC: rockchip: i2s-tdm: Silence warning by adding parentheses
This patch place parentheses around 'x' to silence potential warning.

Change-Id: I7c6cd70c03f71e85bd39faa092f2d0eb61409431
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-27 16:09:46 +08:00
Sugar Zhang
a6904ddc5f ASoC: rockchip: i2s-tdm: Remove sync reset for latest soc
Do sync reset only for PX30/RK1808/RK3308, because the BUG 'fsync
is out of sync' had been fixed on the latest version controller.

Change-Id: Ia4cd711a213cc03221726f7b6e89de3c317dc965
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-27 16:09:46 +08:00
Sugar Zhang
480eeafd45 ASoC: rockchip: i2s-tdm: Delay for reset successfully
This patch Adds delay after reset deassert to make sure
reset done before do enabling xfer.

Considering the follow situation:

- i2s_mclk for 8K capture [2.048M]
- i2s_hclk for i2s register access [150M]
- pclk_cru for cru register access [100M]

       SW                               HW

i2s reset assert   [pclk_cru]           |
        |                               |
   delay time                           |
        |                       i2s reset assert   [i2s_mclk]
i2s reset deassert [pclk_cru]           |
        |                               |
i2s xfer enable    [i2s_hclk]           |
        |                       i2s reset deassert [i2s_mclk]

Obviously, pclk_cru(10ns per cycle) is much faster than i2s_mclk
(500ns per cycle). so delay should be added after reset deassert
to make sure hw reset done. Otherwise, the race between reset and
enable xfer maybe break i2s data aligned.

Fixes: A 10us delay is enough

       SW                               HW

i2s reset assert   [pclk_cru]           |
        |                               |
   delay 10us                           |
        |                       i2s reset assert   [i2s_mclk]
i2s reset deassert [pclk_cru]           |
        |                               |
   delay 10us                           |
        |                       i2s reset deassert [i2s_mclk]
i2s xfer enable    [i2s_hclk]           |
        |                               |

Change-Id: Id370b0aa13f771053841ce04a554b408e9e3c831
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-27 16:09:46 +08:00
Sugar Zhang
1d3f337223 ASoC: rockchip: i2s-tdm: Fix potential deadlock
CPU0                    CPU1
     ----                    ----
lock(&(&i2s_tdm->lock)->rlock);
                             local_irq_disable();
                             lock(&(&substream->self_group.lock)->rlock);
                             lock(&(&i2s_tdm->lock)->rlock);
<Interrupt>
  lock(&(&substream->self_group.lock)->rlock);

Change-Id: I80cc2d0bc9df7e31ff23d0e5d04618ba57fd70df
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-27 16:09:46 +08:00
Sugar Zhang
7c22de8372 ASoC: rockchip: i2s-tdm: Replace dmaengine with rockchip pcm
rockchip pcm is a wrapper of snd dmaengine pcm with customize
config, to achieve flexible config.

Change-Id: I164e22dc3716075ccd520b74f03f554c075f25ec
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-27 16:09:46 +08:00
Sugar Zhang
2aec56ed7e ASoC: rockchip: Make rockchip_pcm depends on SND_SOC_ROCKCHIP
This patch make rockchip_pcm.c compiled depends on SND_SOC_ROCKCHIP,
because all the dai of rockchip will switch to use it, and we can
do much more customize, such as minimize the prealloc buffer size.

Change-Id: Ia7a3923db6760273d2291b41c194f28b43de83b2
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2021-08-27 16:09:46 +08:00
Algea Cao
8dab449f45 arm64: dts: rockchip: rk3568-nvr: Add hdmi property skip-check-420-mode
NVR product isn't need to check yuv420 mode valid in hdmi driver.

Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I56264bd3e4a9a3e9d5ddbec48e36fb816dd1de65
2021-08-27 15:50:26 +08:00
Algea Cao
60cf7d2f68 drm/rockchip: dw_hdmi: Support skip check yuv420 mode valid
Do this check in userspace.

Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I1a3b8510a58cdc0f1459c71ad6983a9ebf7240ce
2021-08-27 15:50:26 +08:00
Algea Cao
fb637c7480 drm/bridge: synopsys: dw-hdmi: Support force logo display
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Ib885ab7064a874a898b1ae005f2a4d8e4e9a1b01
2021-08-27 15:50:26 +08:00
Algea Cao
14f2bf3e7f drm/bridge: dw-hdmi: Make sure to output full range RGB in DVI mode
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I0858fe28139ead5fba6fc797cb6f3bec00f333fa
2021-08-27 15:50:26 +08:00
Algea Cao
3972b45872 drm/rockchip: dw_hdmi: Add property to show whether sink is DVI
Add property output_type_capacity:
enums: DVI=0 HDMI=1

Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Iad09b386b55c52e21b01f98e81fadfd5aa1a42d3
2021-08-27 15:50:26 +08:00
Algea Cao
9905ae2b79 drm/rockchip: dw_hdmi: Add property to switch HDMI/DVI mode
Add property output_hdmi_dvi:
enums: auto=0 force_hdmi=1 force_dvi=2

Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Ic048fb5c004f332b60bbbeca857de4abe9c0ca08
2021-08-27 15:50:26 +08:00
Algea Cao
2fbd84454a drm/rockchip: dw_hdmi: Support set quant range take effect immediately
When set property hdmi_quant_range, quant range was changed immediately.

Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Ib8c14404cc3dde645012399b6155d047b4e9609a
2021-08-27 15:50:26 +08:00
David Wu
489e357c98 arm64: dts: rockchip: rk3588: Add i2c nodes at dtsi level
Signed-off-by: David Wu <david.wu@rock-chips.com>
Change-Id: Ibe99be6e24bb926d65ff3ece0ad448dc82af2a6a
2021-08-27 14:43:19 +08:00
Yu Qiaowei
a6c8eee776 video/rockchip: rga2: Fix the misconfiguration of srcover's globalalpha
Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I547ce7a8938a37ac96223f7435b94ec839b3ceba
2021-08-26 16:23:56 +08:00
Yu Qiaowei
cf30583ce1 video/rockchip: rga2: Change the way to alloc memory in rga slt mode.
1. Fix compile error when debugfs is disable.
2. Using get_page to alloc memory can save 1250KB(64-bit)/625KB(32-bit)
   of memory in the data segment.

./scripts/bloat-o-meter -c drivers/video/rockchip/rga2/rga2_drv.o.old
drivers/video/rockchip/rga2/rga2_drv.o
add/remove: 1/0 grow/shrink: 1/1 up/down: 396/-104 (292)
Function                                     old     new   delta
rga2_slt                                     864    1124    +260
rga2_service_session_clear.constprop           -     136    +136
rga2_release                                 292     188    -104
Total: Before=18736, After=19028, chg +1.56%
add/remove: 1/3 grow/shrink: 0/0 up/down: 8/-1280008 (-1280000)
Data                                         old     new   delta
__addressable_rga2_init2808                    -       8      +8
__addressable_rga2_init2895                    8       -      -8
src_buf                                   640000       - -640000
dst_buf                                   640000       - -640000
Total: Before=1282092, After=2092, chg -99.84%
add/remove: 0/0 grow/shrink: 1/0 up/down: 9/0 (9)
RO Data                                      old     new   delta
__func__                                      57      66      +9
Total: Before=1537, After=1546, chg +0.59%

Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I21c36a268c86b75da7b9e8da5eaf4f1f698c9737
2021-08-26 16:22:36 +08:00
Wyon Bi
48fb554efc drm/rockchip: analogix_dp: Protect kernel logo with loader_protect callback
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I16a1653aac3f6475f898390e83b09c93b706429e
2021-08-26 15:03:04 +08:00
Tao Huang
bb1c2a5cc5 soc: rockchip: power-domain: Add missing dummy definition for pd on/off and pd status
Fixes a build break when CONFIG_ROCKCHIP_PM_DOMAINS is not selected.

drivers/video/rockchip/mpp/mpp_common.c:2286:13: error: implicit declaration of function 'rockchip_pmu_pd_is_on' [-Werror,-Wimplicit-function-declaration]
        pd_is_on = rockchip_pmu_pd_is_on(mpp->dev);
                   ^
drivers/video/rockchip/mpp/mpp_common.c:2288:3: error: implicit declaration of function 'rockchip_pmu_pd_on' [-Werror,-Wimplicit-function-declaration]
                rockchip_pmu_pd_on(mpp->dev);
                ^
drivers/video/rockchip/mpp/mpp_common.c:2304:3: error: implicit declaration of function 'rockchip_pmu_pd_off' [-Werror,-Wimplicit-function-declaration]
                rockchip_pmu_pd_off(mpp->dev);
                ^

Fixes: 93993a9497 ("soc: rockchip: power-domain: export pd on/off and pd status")
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Idd4039639fb0884a6fccdec0e22f37888a301a98
2021-08-26 14:16:18 +08:00
Zhen Chen
ff6f00a18f MALI: midgard: use strncasecmp() to compare irq names
to adapt to current rk3399.dtsi.

Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
Change-Id: Ibe0906908ff50ed00c17d9dfd00a40f3898549c1
2021-08-26 14:15:35 +08:00