Including modifications under drivers/base/ from the new DDK.
Resolve lots of conflicts.
Fix compilation errors when CONFIG_DEBUG_FS is disabled.
Change-Id: I69f9ac87d927441d0b92b8dac8b704922aeb6a0a
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
Include a new directory include/uapi/gpu/arm/bifrost/,
which includes some header files of bifrost device driver.
In the original part of g6, the path is include/uapi/gpu/arm/midgard/.
I changed the "midgard" to "bifrost", and modified the paths of the header files in .c files.
I resolved some conflicts between modifications form ARM and RK, manually.
In addition, introduce source files of protected_memory_allocator
that might be needed by bifrost_device_driver into build system.
Further more, to avoid errors when building in GKI mode,
add "WITH Linux-syscall-note" to SPDX tag of uapi headers.
Change-Id: I09d500a0fdbc5da352c81dc4fcfbffb5b7f907f5
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
There are 7 internal power domains on rk3588 vop:
Cluster0/1/2/3 each have one, and Cluster0 power domain act
as parent pd of Cluster1/2/3.
Esmart0/1/2/3 share on pd.
DSC_8K/DSC_4K each have one.
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: If2c3c79980d2690761d12e64a486aca9be992e4b
A new helper function(__drm_atomic_helper_plane_reset) has been added
for linking a plane with its state and resetting the core
properties(alpha, rotation, etc.) to their default values.
Use that instead of duplicating the logic.
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: I3219f6ee0eef49c59277c84ea6efc72ae4a90ef9
A new helper function(__drm_atomic_helper_plane_reset) has been added
for linking a plane with its state and resetting the core
properties(alpha, rotation, etc.) to their default values.
Use that instead of duplicating the logic.
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: Ic9db9e9d6eee32796899fceba4df7cbf1eaaf5f6
To be compatible with GKI, dw-hdmi driver can't call interfaces in
rockchip-drm directly. In order for dp to be usable, get yuv422
format interface should define in rockchip-drm. So hdmi call
get yuv422 format interface in dw_hdmi-rockchip.c.
Fixes: dbd228a254 ("drm/bridge: synopsys: dw-hdmi: Get edid yuv422 info independently")
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Icc879ff4420357a6becba84371b9e3317583960b
dma framework use dma_mask to check device if dma_capable, so set
dma_mask to mask(64) to compatible with platform that ddr capacity
larger than 4GB or physical address space beyond 32 bit.
Change-Id: I04cbe038402db6b48ef2b36a9494fc8eb8c98d6c
Signed-off-by: Simon Xue <xxm@rock-chips.com>
If hdmi i2c adapter is not deleted when hdmi bind failed, there
may be a crash when other device added. Because hdmi i2c memory
was freed but hdmi i2c still in the kobj list, its address may
be accessed when other device was added to the kobj list.
BUG: KASAN: use-after-free in __list_add_valid+0x3c/0xc8
Read of size 8 at addr ffffff80065930f8 by task swapper/0/1
CPU: 4 PID: 1 Comm: swapper/0 Not tainted 5.10.43 #294
Hardware name: Rockchip RK3399 EVB IND LPDDR4 Board edp (Android) (DT)
Call trace:
dump_backtrace+0x0/0x2d0
show_stack+0x18/0x28
dump_stack_lvl+0xfc/0x138
print_address_description.constprop.13+0x7c/0x31c
kasan_report+0x1e8/0x250
__asan_load8+0x9c/0xd8
__list_add_valid+0x3c/0xc8
kobject_add_internal+0xbc/0x400
kobject_add+0x108/0x1a8
device_add+0x1b8/0xc10
device_link_add+0x63c/0x8c8
_regulator_get+0x148/0x3a8
_devm_regulator_get+0x50/0xc8
devm_regulator_get+0x14/0x20
panel_simple_probe+0x120/0x538
panel_simple_platform_probe+0x60/0xf8
platform_drv_probe+0x70/0xd0
really_probe+0x148/0x558
driver_probe_device+0x78/0xe8
device_driver_attach+0x9c/0xa8
__driver_attach+0x74/0x118
bus_for_each_dev+0xec/0x160
driver_attach+0x34/0x48
bus_add_driver+0x244/0x2a0
driver_register+0xc0/0x1e0
__platform_driver_register+0x80/0x90
panel_simple_init+0x24/0x4c
do_one_initcall+0xa0/0x420
kernel_init_freeable+0x2f0/0x374
kernel_init+0x14/0x120
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Ifc38263ce52f951f6dd0fb83ac1a76facd98445e
If dw-hdmi is not used as the final output port, it is
only used as a bridge but not a connector.
Change-Id: Ie730f47d6075db74c0c54374849fd938c13f5ba8
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
In drm_edid.c, yuv422 supported flag will be clean although EDID
indicates support for it. To be compatible with GKI, we can not
modify drm_edid.c. So we parse the information about yuv422 in EDID
in rockchip driver.
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Iecae74173f6b1d87e0c1381e96b71365ea4a1fac
1. echo off > sys/class/drm/card0-HDMI-A-1/status
2. echo detect > sys/class/drm/card0-HDMI-A-1/status
HDMI is not displayed after executing the above commands.
Signed-off-by: Shunqing Chen <csq@rock-chips.com>
Change-Id: I46fc984b278f5186a22c279def82570603af5494
In tcpm displayport driver, drm_connector_oob_hotplug_event()
execute before dp_altmode_notify().
The dp_altmode_notify() call the mux set function, which
transfer phy info(lane count, pin assignments) to typec
phy.
The drm_connector_oob_hotplug_event() call oob_hotplug_event
function, which notify the cdn-dp driver hotplug event, and
the cdn-dp will start work to deal with the hotpug event,
which will user the phy info.
if here no delay time, The phy info use may be early than phy
info update, whick may cause the phy info mismatch.
Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
Change-Id: Ic3394769f66bd3b7a621095e09978e4b15393b7e
We will use tcpm framework to detect dp hotplug event,
no longer extcon, so remove it.
Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
Change-Id: If51f1f44f38ec0ae135735ac1ec1632132271a56
Add a new drm_connector_oob_hotplug_event() function and
oob_hotplug_event drm_connector_funcs member.
On some hardware a hotplug event notification may come from outside the
display driver / device. An example of this is some USB Type-C setups
where the hardware muxes the DisplayPort data and aux-lines but does
not pass the altmode HPD status bit to the GPU's DP HPD pin.
In cases like this the new drm_connector_oob_hotplug_event() function can
be used to report these out-of-band events.
Avoid the conflict of GKI, the drm_connector_oob_hotplug_event() is be
completed in rockchip drm driver, not the drm framework.
Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
Change-Id: I5b1428daa83b0fdb7cf88e95d0b8fde2548d43d8
Fix the following gcc warning:
drivers/gpu/drm/rockchip/rockchip_vop2_clk.c:304:5: warning:
no previous prototype for 'vop2_clk_init' [-Wmissing-prototypes]
Fixes: 95b6a39dab ("drm/rockchip: vop2: Add support for rk3588")
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Ifc892f473a50a9e408e09648c7a6539ffda24039
RK3588 VOP:
4 Video Ports.
4 Cluster Windows.
4 Esmart Windows.
Can drive HDMI/eDP/DP/MIPI/BT1120/BT656 interface.
Support drive HDMI/DP 8k output in splice mode.
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: I37df329fcab729cd7fa1de47c4d5faf232bb265f
move alpha scale to crtc feature and add hdr10/dolby hdr info to
feature to interaction with userspace, and remove alpha_scale_prop from
rockchip_drm_drv.c
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ic56c7a53c890702ce4a70167ea9926aa32b29fa7
move alpha scale to crtc feature and add hdr10/dolby hdr info to feature
to interaction with userspace.
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I492647a22b41bf43c3127bd56b2ed0b3b95284a2
used_layers should reset to 0 before count
port_mux.
And also fix the follow warning:
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c:2538:26: warning: Value
stored to 'vp' during its initialization is never read
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c:2537:21: warning: Value
stored to 'layer' during its initialization is never read
Fixes: e013d2544c ("drm/rockchip: vop2: Assign plane for vp by
plane_mask")
Change-Id: I56b1576070392b7b262ef65b19cf14d1bfde0586
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Fixes: dd03e97b25 ("drm/panel: simple: Get panel-desc data from DT")
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: If018e3dc650def01708bcc0e2672af9506c858c5
externd rockchip_drm_crtc from drm_crtc, so we can add more private
parameter for dump buffer function.
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I9e0450cafe9d184ac4d9daad03749ade1302f249
externd rockchip_drm_crtc from drm_crtc, so we can add more private
parameter for dump buffer function.
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I56ca9c08d7d2bb19de544d56c9bc883d5b880da1
Linux system will set hdmi properties when system boot
When some properties such as quant_range was set, dw_hdmi_setup()
will be called. HDMI status may not be config correctly. So if HDMI
is not properly initialized, don't call dw_hdmi_setup() when
these properties was set.
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I6956e50161a4a5bd579f7174c73977d2e33da0c5
First we thought the half_block_en bit in AFBCD_CTRL register
only work in afbc mode. But the fact is it control the line buffer
in all mode(afbc/tile/line), so we need configure it in the
all case.
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Change-Id: Ib8cd5fbfd0a898eea738423685fbcdc0ab6d00ad