According to commit 9bde4e671f ("drm/rockchip: vop: fix iommu crash
with async atomic")
These two callback were added to avoid iommu crash on async
commit caused by drm_atomic_clean_old_fb after drm_atomic_async_commit.
drm_atomic_clean_old_fb was removed after commit
e00fb8564e ("drm: Stop updating plane->crtc/fb/old_fb on atomic drivers")
So we can remove them to make life simpler.
Change-Id: Iea1f2dbadd9bcfad5b8447831c0d31068d4fa97b
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
We assign window between vp by plane_mask now, no
need to check which vp is activated from register.
Change-Id: I89d22f253dcd26898dc79304d51b8a8d9e802bb2
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Rockchip platforms don't support HS200 or HS400 at low speed, so
we must limit it.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: I40eb9f117fd83789b6ab7a16d44049e16786698b
As we mask our SDHCI controller as SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN,
host->max_clk is derived from core clock in the first place. Then
f_max works together with it.
If we adjust loader's core clk setting, such as 50MHz, we will get
50MHz for host->max_clk, because .get_max_clock() reads core clk
when probing driver. That will lead f_max be set to 50MHz as well,
no matter if max-frequency is set higher than 50MHz.
We can simple solve this problem by assigning core clk as 200MHz
in the first place and then let max-frequency property takes over
it.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: Idb2fdb8f68881d0286d977dc3718b74c30d3bc67
Enable lt6911uxc HDMI to MIPI CSI-2 bridge driver for hdmi-in
application. Which found on rk3568-evb2-lp4x-v10.
Signed-off-by: Dingxian Wen <shawn.wen@rock-chips.com>
Change-Id: I4ce22f3040dbe55c3236ac3d0ac62f7821011c8d
Do not print error information when pin is not mux to gpio,
since it will break debug print.
Also check the gpio direction before check gpio value.
Change-Id: Id3afb0af12cd1e33677f5a929a879f7d00f63318
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
rv1126 does not support display interface which need to
read and parse edid, such as hdmi and dp, so add config
option to reduce memory usage.
./ksize.sh drivers/gpu/drm/
before ksize: 482336 Bytes
after kszie: 396762 Bytes
save about: 85574 Bytes
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I0c3813711cfdb4a38ec66136569ca826c94c6c58
Add config option to modularize the DP interface support of DRM.
make ARCH=arm rv1126_defconfig
make ARCH=arm rv1126-evb-ddr3-v13.img -j32
./ksize.sh drivers/gpu/drm/
before ksize: 517946 Bytes
after kszie: 482336 Bytes
save about: 35610 Bytes
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: Ie2157fad13a71a3099b79085e0de40efe4b4ab34
rv1126 does not support PSR function, so add config option to
reduce memory usage.
make ARCH=arm rv1126_defconfig
./ksize.sh drivers/gpu/drm/
before ksize: 581268 Bytes
after kszie: 579486 Bytes
save about: 1782 Bytes
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: I578bb6f4768ae807b6fc20987d421afefd421fcc
Kernel's SFC is used for a private flash drivers not like
the standard one, but u-boot SFC is register as standard
spi, and the alias UCLASS_SPI id is required for part of
spi initialization progress. So kernel's alias is also
required when u-boot enable using kernel dtb case.
Change-Id: Ic763eefb35ef5a93f6121055a5e04a2d72636430
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
Some linux app(cusor) may set negative coordinates(crtc_x/y)
And some linux app(mpv) may set coordinates outside the screen.
These are both unsupported on rockchip vop.
so we use clipped coordinates here.
Change-Id: I63288cf9120cea75e784d49bc88b591f243e7d8d
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Look at the pinmux-functions debug node, there are several pcfg_xxx
nodes which actually are not pinctrl functions:
Under RV1126 EVB:
function: pcfg-pull-up, groups = [ ]
function: pcfg-pull-down, groups = [ ]
function: pcfg-pull-none, groups = [ ]
function: pcfg-pull-none-drv-level-1, groups = [ ]
function: pcfg-pull-none-drv-level-2, groups = [ ]
function: pcfg-pull-none-drv-level-3, groups = [ ]
function: pcfg-pull-up-drv-level-1, groups = [ ]
function: pcfg-pull-up-drv-level-2, groups = [ ]
function: pcfg-pull-none-smt, groups = [ ]
function: pcfg-output-low-pull-down, groups = [ ]
function: acodec, groups = [ acodec-pins ]
This patch fixs the function node valid check to ignore them.
Change-Id: I432783de72e137e2fb406ce400a69cd56cb1a8de
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
There are many kinds of nodes under pinctrl node, such as function
nodes, gpio nodes, and pcfg nodes.
The driver do a match check for the nodes, to ignore the gpio nodes.
This patch try to put the valid check as a function, it's better to
avoid error fix.
Change-Id: Ib9295fa77240f741a0a124d3235f5e2a6e51b499
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Select DRM_PANEL_SIMPLE_OF_ONLY as default on RV1126 SoC, so as to
reduce memory usage.
make ARCH=arm rv1126_defconfig
make ARCH=arm rv1126-evb-ddr3-v13.img -j32
./ksize.sh drivers/gpu/drm/
before ksize: 556038 Bytes
after kszie: 517946 Bytes
save about: 38092 Bytes
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: I9584bd8de16ed0ef1c4a862e71a1eb725c0d2833
mpp build only one ko and all option config is bool.
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Id940f29a351d81c301a1ca100b8ebee828b8cc81
Using CONFIG_CPU_XX only compiles the code of matching CPU,
then it can reduce the object file.
Change-Id: Ic19345464c802939d08786ae29b34111c3c5a855
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
move the workaround functions for px30 to the mpp_hack_px30.c.
Change-Id: I9f9880c28fe1d797b0551d116a66294223a5e251
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
For kernel-tiny, remove debug relative code, and reduce the size of module.
Change-Id: Ic78a0839a75c9cebb56fa32e87235bd97be0370a
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
- correct the wrong type 'RK3229', should be type 'RK3328'
- rename compatible 'rockchip,pdm' to 'rockchip,rk3328-pdm'
for better match.
Change-Id: I0156bd114a3a89ddcda077587366351521dfb701
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Separate the process of device matching by the different SoC macro
definitions, which can reduce memory usage.
make ARCH=arm rv1126_defconfig
./ksize.sh drivers/gpu/drm/
before ksize: 579486 Bytes
after kszie: 556038 Bytes
save about: 23448 Bytes
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: I6b3689b11598120aad16956235d1ee2bbdbe80e0
rv1126 does not support VOP2, so add config options to
reduce memory usage.
make ARCH=arm rv1126_defconfig
./ksize.sh drivers/gpu/drm/
before ksize: 675434 Bytes
after kszie: 581268 Bytes
save about: 94166 Bytes
In addition, improve the format of space and tab, and remove
extra "depends on DRM_ROCKCHIP".
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: I2b29a543a7e52e4e4b72112980e2c6dc6c6cce92
NOTE: On link mode the timing is start from driver push task to hardware
linked queue. So the timing is not actual the hardware timing on multi
decoder case.
echo 0x100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug
This command for hardware performance test is still valid. But the
hardware timing output is accurate only on single decoder case.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I4db4a35955cb1e42e3f250583e83d88c2fde5872
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>