| 4a9e4766 | 27-Mar-2025 |
Algea Cao <algea.cao@rock-chips.com> |
video/drm: vop2: Support hdmi dsc bpp below 9
When the dsc bpp is less than 9, hdmi output will flash on TV. It is speculated that the reason is that pixel rate of sink decoding is not enough.
Taki
video/drm: vop2: Support hdmi dsc bpp below 9
When the dsc bpp is less than 9, hdmi output will flash on TV. It is speculated that the reason is that pixel rate of sink decoding is not enough.
Taking 8bpp as an example, dsc clk needs to be 1/3 of the input clk. the theoretical calculation of DEN compression 1/3, at this time, the clk of vop dsc to hdmi tx can be reduced to about 260M to meet the 8bpp transmission.
RK3588 dsc clk only supports 1/2 frequency division, so dsc clk is 1/2 input clk, which needs to increase blank, which is equivalent to compressing the absolute DEN time. TV is likely to decode at a decoding rate of around 260M. DEN absolute time shortening results in abnormal TV decoding.
So the value of hblank needs to be reduced when bpp is below 9. The measurement can be displayed normally on TV, but reducing the hblank will result in non-standard timing of the hdmi output. This may cause compatibility issues and hdmi cts certification may fail.
Change-Id: I48bebfab63742ef7e21913353c2771bdf947dc47 Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
show more ...
|
| 038b8732 | 10-Apr-2025 |
Algea Cao <algea.cao@rock-chips.com> |
video/drm: display: Change yuv420 mode function to global function
Change-Id: I04b770a0a624235998edf1d869f686e57fdbfba7 Signed-off-by: Algea Cao <algea.cao@rock-chips.com> |
| 77c57384 | 22-Mar-2025 |
Zitong Cai <zitong.cai@rock-chips.com> |
video/drm: display-serdes: Fix pinctrl node shutdown crash
Resolve the crash issue caused by closing serdes pinctrl configuration in dts.
Change-Id: Icb5f0d6fa8fb5c390aa1a06221fe0d95285b2f00 Signed
video/drm: display-serdes: Fix pinctrl node shutdown crash
Resolve the crash issue caused by closing serdes pinctrl configuration in dts.
Change-Id: Icb5f0d6fa8fb5c390aa1a06221fe0d95285b2f00 Signed-off-by: Zitong Cai <zitong.cai@rock-chips.com>
show more ...
|
| dd0d7bfe | 01-Apr-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: calculate dclk divisions in Hz instead of KHz for RK3588
If MIPI0 is enabled and the &drm_display_mode.crtc_clock is 74250 in Khz that is equal with pixel clock rate, dclk_core_rate
video/drm: vop2: calculate dclk divisions in Hz instead of KHz for RK3588
If MIPI0 is enabled and the &drm_display_mode.crtc_clock is 74250 in Khz that is equal with pixel clock rate, dclk_core_rate will be 18562 in Khz, which is a quarter of pixel clock rate.
After the vop2_calc_dclk(), the final dclk rate will be four times dclk_out_rate, which is the same as dclk_core_rate unless DSC mode is enabled or the dual channel mode is configrated, is 74248 in KHz. Then the dclk rate will be set to 74248000Hz unexpectly.
In conclusion, it will be more accurate to calculate dclk divisions in Hz instead of KHz as the Kernel.
Change-Id: Ib31f5b18c739ca4044a3278cd940367805b9d4ee Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| d00abaef | 01-Mar-2024 |
Wenping Zhang <wenping.zhang@rock-chips.com> |
video/drm: display: add support for video console mode
In video console mode, the logs will be showed in the panel/monitor.
To enable the video console mode, the following Kconfig options are requi
video/drm: display: add support for video console mode
In video console mode, the logs will be showed in the panel/monitor.
To enable the video console mode, the following Kconfig options are required:
/* enable the video console */ CONFIG_ROCKCHIP_VIDCONSOLE=y
The default horizontal resolution of video console is the minimum &drm_display_mode.crtc_hdisplay of the VPs, and the vertical resolution is the minimum &drm_display_mode.crtc_vdisplay. The bits per pixel is set to 32 by default.
To set the resolution of video console to 1920x1080 with 16bpp manually, the following Kconfig options should be set:
/* the resolution of the video console */ CONFIG_ROCKCHIP_VIDCONSOLE_WIDTH=1920 CONFIG_ROCKCHIP_VIDCONSOLE_HEIGHT=1080
/* the bits per pixel the of video console */ CONFIG_ROCKCHIP_VIDCONSOLE_BPP32 is not set CONFIG_ROCKCHIP_VIDCONSOLE_BPP16=y CONFIG_ROCKCHIP_VIDCONSOLE_BPP8 is not set
The default video console framebuffer size is 16M, and it can be calculated by: size = ROUNDUP(width x height x bpp / 8 / 1024 / 1024) Take 1080p 32bpp as an example: size = ROUNDUP(1920 x 1080 x 32 / 8 / 1024 / 1024) = 8M
And the following Kconfig option may be set:
/* the framebuffer size of video console */ CONFIG_ROCKCHIP_VIDCONSOLE_MEM_RESERVED_SIZE_MBYTES=8
To confirm the video console is initialized successfully, the logs may be like:
...... Enable video console mode: resolution[1920x1080] bpp[16] ......
Change-Id: I667f896cfcdf1d6460f63db2f0cb7c29d3b11de2 Signed-off-by: Wenping Zhang <wenping.zhang@rock-chips.com> Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| aa3695c1 | 31-Mar-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: display: Fix the return value check for display_check()
If the display_check() sets &display_state.is_init to false and returns an error, it is unnecessary to call the later functions dis
video/drm: display: Fix the return value check for display_check()
If the display_check() sets &display_state.is_init to false and returns an error, it is unnecessary to call the later functions display_set_plane() and display_enable(), which check &display_state.is_init at the beginning.
Additionally, the display_check() will not be called if &display_state.is_init is false in display_logo(), so it is more appropriate to return -EINVAL in this scenario for the future expansion.
Fixes: ("820a5c17943 drm/rockchip: display: add display check") Change-Id: Ib3552a9abf5e22c1f7963d15bca9a71a0502ee50 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| 2e42aca5 | 28-Mar-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: enable the hdmitx compress mode configuration for RK3588 HDMI DSC mode
Change-Id: I3c811abe5ffa795b4fcc9b321a8c93f1a44e2122 Signed-off-by: Damon Ding <damon.ding@rock-chips.com> |
| d86cb420 | 28-Mar-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: update the calculation of dclk_out division factor for RK3588 HDMI DSC mode
For RK3588, dclk_out is designed for DP, MIPI in both DSC and non-DSC mode and HDMI in DSC mode.
In addd
video/drm: vop2: update the calculation of dclk_out division factor for RK3588 HDMI DSC mode
For RK3588, dclk_out is designed for DP, MIPI in both DSC and non-DSC mode and HDMI in DSC mode.
In addditon, the dclk_out division factor should be the same as the dclk_core division factor in HDMI DSC mode.
For the display interfaces that do not need the dclk_out, it should be more appropriate to set dclk_out division factor to 0.
Change-Id: Idd254a105b5ea69caa25b315be8ff39a8c4fd10e Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| 381cc0af | 26-Mar-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: fix the if_pixclk_div/if_dclk_div calculation for RK3588 HDMI DSC mode
The &crtc_state.dsc_cds_clk_rate is in Hz, but the dclk_rate is in KHz. Divide &crtc_state.dsc_cds_clk_rate by
video/drm: vop2: fix the if_pixclk_div/if_dclk_div calculation for RK3588 HDMI DSC mode
The &crtc_state.dsc_cds_clk_rate is in Hz, but the dclk_rate is in KHz. Divide &crtc_state.dsc_cds_clk_rate by 1000 to ensure the accuracy of the clock division calculation.
Fixes: 12ee5af07a3 ("drm/rockchip: vop2: add support for dsc") Change-Id: I012cd1f34304cf1b1c9fb2f4a99b26aeb69cbe2a Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| 3fc0646a | 23-Mar-2025 |
Zitong Cai <zitong.cai@rock-chips.com> |
video/drm: display-serdes: update serdes initialization logic
Change-Id: Ic8e422c19d250d957ecf6789647e8ded20c42cb1 Signed-off-by: Zitong Cai <zitong.cai@rock-chips.com> |
| ea0eaad4 | 28-Mar-2025 |
Hongming Zou <hongming.zou@rock-chips.com> |
video/drm: dsi: fix compatible for rv1126b
Fixes: f62fdead89b ("video/drm: dsi: Add support for rv1126b") Change-Id: I5dfa600cea5eed9d668b57e29300afa21960de21 Signed-off-by: Hongming Zou <hongming.z
video/drm: dsi: fix compatible for rv1126b
Fixes: f62fdead89b ("video/drm: dsi: Add support for rv1126b") Change-Id: I5dfa600cea5eed9d668b57e29300afa21960de21 Signed-off-by: Hongming Zou <hongming.zou@rock-chips.com>
show more ...
|
| e5e3ca80 | 08-Mar-2025 |
Hongming Zou <hongming.zou@rock-chips.com> |
video/drm: inno_mipi_phy: modify compatible for rv1126 dsi dphy
Change-Id: I08d40012f3b99ef2c0f08f11c45cc4a8e3b90cf8 Signed-off-by: Hongming Zou <hongming.zou@rock-chips.com> |
| f62fdead | 08-Mar-2025 |
Hongming Zou <hongming.zou@rock-chips.com> |
video/drm: dsi: Add support for rv1126b
Change-Id: I0e98321c63aba2327518bc69ae6788acade8e31a Signed-off-by: Hongming Zou <hongming.zou@rock-chips.com> |
| 668e6278 | 19-Mar-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: support to use the win scale to configure overscan parameters
For some platforms, such as RK3576, use the win scale instead of the post scale to configure overscan parameters, becau
video/drm: vop2: support to use the win scale to configure overscan parameters
For some platforms, such as RK3576, use the win scale instead of the post scale to configure overscan parameters, because the sharp/post scale/split functions are mutually exclusice.
Change-Id: Iffb7d9eadca2ae9eefb71f14a91382e236f90e40 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| b4fa21de | 05-Mar-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: modify the check related to the cursor plane
In order to sync the cursor plane assignment with Kernel, the modifications are as follows: 1.Change the type of &rockchip_vp.cursor_pla
video/drm: vop2: modify the check related to the cursor plane
In order to sync the cursor plane assignment with Kernel, the modifications are as follows: 1.Change the type of &rockchip_vp.cursor_plane_id and &vop2_vp_plane_mask.cursor_plane_id from int to u8. 2.Remove the unnecessary &vop2_data.plane_table. 3.Assign cursor plane according to the &vop2.possible_vp_mask and &vop2_win_data.plane_type in the scenario where the cursor plane specified in DTS is invalid. 4.Add cursor plane check in vop2_plane_mask_check().
Fixes: ee008497bf7 ("drm/rockchip: vop2: add adjust cursor plane") Change-Id: I50e9a55d42f24131c50b351b2deb02bae1b003b2 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| 7a290128 | 27-Feb-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: check the hot plug capability for plane mask assignment only for RK3566
For RK3566, the main planes should be enabled before the mirror planes. The devices that support hot plug may
video/drm: vop2: check the hot plug capability for plane mask assignment only for RK3566
For RK3566, the main planes should be enabled before the mirror planes. The devices that support hot plug may be disconnected initially, so we assign the main planes to the first device that does not support hot plug, in order to ensure that the mirror planes are not enabled first.
For the platforms other than RK3566, we assign the plane mask of VPx based on the &vop2_data.plane_mask[active_vp_num][x].
Change-Id: I7a5cc967623bf4aeb7d4bb9c5b0a36a288c30fc8 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| 6fea745c | 12-Feb-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: modify the check related to the plane mask and primary plane
The check rule for plane mask that assigned in DTS is:
If plane_mask is assigned in DTS, then every plane need to be as
video/drm: vop2: modify the check related to the plane mask and primary plane
The check rule for plane mask that assigned in DTS is:
If plane_mask is assigned in DTS, then every plane need to be assigned to one of all the VPs, and no single plane can be assigned to more than one VP.
In order to check whether the plane mask and primary plane assigned in DTS are valid, the modifications are as follows: 1.Move the process of automatically assigning the plane mask to a new function vop2_plane_mask_assign(), which can also be called if the plane mask and primary plane are invalid. 2.Add the &vop2_data.plane_mask_base for all platforms to help check whether the plane mask assigned in DTS is valid. 3.Add the new function vop2_plane_mask_check() to check the plane mask that assigned in DTS according to the above rule. If the return value of vop2_plane_mask_check() is false, then automatically assign the plane mask using the function vop2_plane_mask_assign(). 4.Transfer valid plane mask that assigned in DTS to the &vop2.possible_vp_mask. And the &vop2.possible_vp_mask is used in vop2_win_can_attach_to_vp() to check whether the plane can attach to the specific VP. 5.Remove &vop2_data.vp_default_primary_plane related codes, and Assign default primary plane according to &vop2.possible_vp_mask and &vop2_win_data.plane_type in the scenario where the plane mask is not specified in DTS 6.Remove &vop2_data.vp_primary_plane_order, and add new function vop2_vp_find_attachable_win() help select default primary plane when the plane mask is assigned in DTS while the primary plane is not. 7.Skip rockchip_vop2_fixup_dts() for the VOP3 platforms in order not to fixup the plane_mask related DTS properties when the plane mask is not assigned in DTS.
Change-Id: I027d065b72768caa82b5bd979c5c3dba118ba567 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| 4e1a12d5 | 18-Mar-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: analogix_dp: fix the disabling process of ASSR function
The DP_EDP_CONFIGURATION_SET should be configured instead of the DP_LANE_COUNT_SET register to disable ASSR.
Fixes: fc2750785b7 ("
video/drm: analogix_dp: fix the disabling process of ASSR function
The DP_EDP_CONFIGURATION_SET should be configured instead of the DP_LANE_COUNT_SET register to disable ASSR.
Fixes: fc2750785b7 ("video/drm: analogix_dp: add support for ASSR mode") Change-Id: I5406a54b4505bb8e911ed4b01f15e6318de3b0e8 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| 21198dbd | 11-Mar-2025 |
Zhang Yubing <yubing.zhang@rock-chips.com> |
video/drm: vop2: config h-timing 2-pixel align for RK3576 DP
For RK3576 DP output, vp send 2 pixels 1 cycle. So the hactive, hfp, hsync, hbp should be 2-pixel aligned.
Signed-off-by: Zhang Yubing <
video/drm: vop2: config h-timing 2-pixel align for RK3576 DP
For RK3576 DP output, vp send 2 pixels 1 cycle. So the hactive, hfp, hsync, hbp should be 2-pixel aligned.
Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com> Change-Id: Ie484e8f4e6bc7bb21910f151ff35b2c7fa7b9a6c
show more ...
|
| dad2c246 | 27-Sep-2024 |
Sandy Huang <hjc@rock-chips.com> |
drm/rockchip: vop2: use rkiommu 2.0 for vop axi0 by default
Signed-off-by: Sandy Huang <hjc@rock-chips.com> Change-Id: Ifa6b634901749f24e3b7afa8e3342348db7b1cea |
| 4bc0811d | 14-Feb-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: display: remove U8_MAX related check for &rockchip_vp.primary_plane_id
Keep the default value of 'rockchip,primary-plane' to -1 and convert &rockchip_vp.primary_plane_id from u8 forced to
video/drm: display: remove U8_MAX related check for &rockchip_vp.primary_plane_id
Keep the default value of 'rockchip,primary-plane' to -1 and convert &rockchip_vp.primary_plane_id from u8 forced to int8_t in printf(), which help avoid the unexpected log:
...... get vp0 plane mask:0x5, primary id:0, cursor_plane:2, from dts get vp1 plane mask:0xa, primary id:255, cursor_plane:-1, from dts get vp2 plane mask:0x300, primary id:9, cursor_plane:8, from dts ......
It is better to be like:
...... get vp0 plane mask:0x5, primary id:0, cursor_plane:2, from dts get vp1 plane mask:0xa, primary id:-1, cursor_plane:-1, from dts get vp2 plane mask:0x300, primary id:9, cursor_plane:8, from dts ......
Fixes: 337d1c1350a ("video/drm: vop2: init vp_primary_plane_order based on the soc") Change-Id: I6cdccb78d16c2c8eb1ac76104d181340c3f1bbb4 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| a7cb29b7 | 11-Feb-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: fix the unexpected logs related to the primary plane of the unused VPs
If only the logo display of VP0 is enabled in RK3576, the unexpected logs may appear: ...... Assign plane mask
video/drm: vop2: fix the unexpected logs related to the primary plane of the unused VPs
If only the logo display of VP0 is enabled in RK3576, the unexpected logs may appear: ...... Assign plane mask automatically VOP have 1 active VP vp0 have layer nr:1[Esmart0 ], primary plane: Esmart0 vp1 have layer nr:0[], primary plane: Cluster0 vp2 have layer nr:0[], primary plane: Cluster0 ......
It is better to be like: ...... VOP have 1 active VP vp0 have layer nr:1[Esmart0 ], primary plane: Esmart0 vp1 have layer nr:0[], primary plane: INVALID vp2 have layer nr:0[], primary plane: INVALID ......
The modifications are: 1.Set primary plane id of unused VPs to ROCKCHIP_VOP2_PHY_ID_INVALID. 2.Convert the type of ROCKCHIP_VOP2_PHY_ID_INVALID to u8 to avoid unexpected comparison result, due to the parameters &vop2_vp_plane_mask.primary_plane_id and &vop2_vp_plane_mask.attached_layers are also u8.
In addition, it may be better to rename vop2_plane_id_to_string() to vop2_plane_phys_id_to_string() based on the definition of &vop2_win_data.phys_id.
Change-Id: I4cea1d91fabc03d110d176282acab04670da9054 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| 13bc92e8 | 11-Feb-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: add &vop2_win_data.possible_vp_mask for all platforms
The &vop2_win_data.possible_vp_mask helps to check if the plane can attach to the specific VP.
Change-Id: I67ef11085acc9272a14
video/drm: vop2: add &vop2_win_data.possible_vp_mask for all platforms
The &vop2_win_data.possible_vp_mask helps to check if the plane can attach to the specific VP.
Change-Id: I67ef11085acc9272a147d6d187af74d0a7883ec7 Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
show more ...
|
| b7195f56 | 28-Feb-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: add platform specific callback to initialize overlay
Change-Id: I254f1e7637ed724d7646174627f1d0131aae8cd8 Signed-off-by: Damon Ding <damon.ding@rock-chips.com> |
| 9c7848c3 | 14-Feb-2025 |
Damon Ding <damon.ding@rock-chips.com> |
video/drm: vop2: add platform specific callback to configure window dly
Change-Id: I1f312869e696d4cbd56ef78b5e00e6d1c87fb9ab Signed-off-by: Damon Ding <damon.ding@rock-chips.com> |