We get the same IOVA from DRM mm framework at different times which
finally cause iommu map failed. So let's try other IOVA if iommu map
failed time exceeds the limitation to map as a workaround.
Change-Id: Ic539f4a64d5ed0c9d3f5ac01acf3f0922a2fdc1f
Signed-off-by: Simon Xue <xxm@rock-chips.com>
ld.lld: error: undefined symbol: __udivdi3
>>> referenced by rockchip_drm_vop2.c
>>>
drivers/gpu/drm/rockchip/rockchip_drm_vop2.o:(vop2_plane_atomic_check)
in archive vmlinux.a
>>> did you mean: __udivsi3
>>> defined in: vmlinux.a(arch/arm/lib/lib1funcs.o)
arm-none-linux-gnueabihf-ld: drivers/gpu/drm/rockchip/rockchip_drm_vop2.o: in function
`vop2_calc_dsc_clk':
rockchip_drm_vop2.c:(.text+0x239c): undefined reference to `__aeabi_uldivmod'
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Iac0b61444cd4d33c62bd8994d0ce7ca1bab7bfa4
To address the issue in kernel 6.1 that 'dma_fence_ops::signaled'
is NULL for certain signaled fence instances.
Change-Id: Ie5e03e849947a9cd2b02fd057ebb44878aa2d0b0
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
Separate the process of device matching by the different SoC macro
definitions, which can reduce memory usage.
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: Ic0f02bee51a6520e48568aecce92acf5d0ae31e4
Separate the process of device matching by the different SoC macro
definitions, which can reduce memory usage.
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: Ice50f15e64f7d1ae353ecfe462f7ba3fab017817
The remote end point ports should be at bridge node.
Fixes: 57816781c4 ("arm64: dts: rockchip: rk3576-vehicle-evb: init v20 dts files")
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I6d01f68e5e5a5a3239d006f60fe97a0014918301
Before:
text data bss dec hex filename
5227569 2360752 112328 7700649 7580a9 vmlinux
After:
text data bss dec hex filename
5227569 2308528 112328 7648425 74b4a9 vmlinux
Change-Id: I55e5190b4410c80f8c40deeb631650eaab28f23b
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Only support panels which all parameters from device tree.
Save boot time about 2ms on rk3126-bnd-d708 board.
Before:
text data bss dec hex filename
59767 296 84 60147 eaf3 drivers/gpu/drm/panel/panel-simple.o
After:
text data bss dec hex filename
7547 296 84 7927 1ef7 drivers/gpu/drm/panel/panel-simple.o
Change-Id: Ie075ff5c84c1807029873555f58bd13d41350abf
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
This property is used to prevent RC from calling devices to enter
D3cold if they need to keep working when system is suspended. The classic
user is wireless device and computing cards which need to work standalone
when system is suspened. Currently wireless devices deal with it by
controlling power and #PERST by themselves because they have rfkill driver
which could did it in front of the wireless driver. But computing cards couldn't.
In ACPI point of view, we could allow users to configure the D3Cold state for
each PCI device through the sysfs attribute 'sys/bus/pci/devices.../d3cold_allowed'.
Then the PCIe driver and firmware could work together to meet the requirement. But
in DT way, we have to invent a new property to cover both of these.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: Ia755f48d11f84f292a4aede38d2653b73f8d11b8
If dynamic dptx power domain ctrl is enabled and dptx power
domain not enabled when init dptx controller, the dptx power
domain will be disabled though the uboot logo is enable. this
will cause display issue. To avoid this issue, it need enable
dptx power domain when enable uboot logo.
Change-Id: I3105556de3dee5e592242150935133cce0971551
Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
Fix the modpost error "device_is_dependent" undefined by
adding device_link in ehci_platform_priv.
Fixes: 68850661b5 ("usb: host: ehci-platform: Add device_link between the ehci and companion")
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: I0552eab4cc45750e0c4ea494880667a29998f6b0
1. Select the usb2 phy interrupt logic clock from OSC clock
to support interrupt detection if VD_LOGIC is powerdown.
2. Set the linestate filter time control register depends
on the OSC 24MHz clock during suspend.
Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: Ib265747013b0a08dc0599df25e40dce306ccb289
For IOMMU devices, the mapped size may be larger than the requested
alloc size, which may result in inconsistent sizes being used for
unmap.
[ 12.286016] iova: 0x0000000000000000 already mapped to 0x000000000c201000 cannot remap to phys: 0x000000001369f000 prot: 0x3
[ 12.287163] [drm:rockchip_gem_iommu_map] *ERROR* failed to map buffer: size=-98 request_size=4096
[ 12.299439] iova: 0x0000000000000000 already mapped to 0x000000000c201000 cannot remap to phys: 0x000000000c2b8000 prot: 0x3
[ 12.300541] [drm:rockchip_gem_iommu_map] *ERROR* failed to map buffer: size=-98 request_size=2785280
Fixes: 2ba5e1d681 ("drm/rockchip: gem: Set size of the allocated object when create gem")
Change-Id: I3496544e5a4eb65dde657f8ed3890f4db933258f
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com>
200M is not an integer frequency.
300M is more suitable.
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Change-Id: I7a6ce23a47691fbdc6180f9cb63b832950bc2f59