[PATCH v3 00/17] drm/bridge: cdns-dsi: Make it work a bit better

Parth Panchoil parth105105 at gmail.com
Tue Apr 15 07:02:20 UTC 2025


On Mon, 2025-04-14 at 14:11 +0300, Tomi Valkeinen wrote:
> While trying to get the cdns-dsi to work on Toradex's AM69 Aquila
> platform, I hit multiple issues in the driver. Basicaly nothing
> worked
> for with the board.
> 
> This series fixes those issues. While I itch to make much larger
> changes
> to the cdns-dsi driver, I opted to keep this series relatively simple
> to
> make the fixes more clear and possibly help with backporting.
> 
> The series also touches tidss, but those changes are not strictly
> needed, and can be merged separately. And the series also touches
> cdns-dphy, and those changes are needed.
> 
> This has been tested on Toradex AM69 Aquila (upstream) and AM62P
> Verdin
> (Toradex's BSP), with:
> - HDMI output using lontium lt8912b
> - LVDS panel (sn65dsi84 + panel-lvds)
> 
>  Tomi
> 
> 
(For the entire series)

Tested-by: Parth Pancholi <parth.pancholi at toradex.com>

> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
> ---
> Changes in v3:
> - Add Aradhya's "drm/bridge: cdns-dsi: Fix the _atomic_check()" to
> the
>   dependencies
> - The above patch from Aradhya allowed adding "drm/bridge: cdns-dsi:
>   Drop crtc_* code", which resulted in quite large changes in the
>   commits, even if the end result doesn't really differ.
> - Reordered commits to decrease back-and-forth (e.g. fixing something
> in
>   a a code that will be removed in the next commits)
> - The reordering caused quite big changes in the commits (even if the
>   final end result is more or less the same), so I chose not to add
>   tested-by tags.
> - Rename 'cdns_get_dphy_pll_cfg' to 'cdns_dphy_get_pll_cfg'
> - Use div_u64() instead of div64_u64()
> - Drop "Fail if HS rate changed when validating PHY config". This was
>   too strict, as clock rounding (especially with DRM's 1kHz
>   resolution...) leads to clock rates that do not match exactly.
>   However, the rate mismatch should be fine as the commits adjust the
>   pixel clock, and the resulting differences should be so small that
> we
>   can't even improve the timings match by adjusting the DSI HFP, as
> the
>   adjustment rounds to 0.
> - Link to v2:
> https://lore.kernel.org/r/20250402-cdns-dsi-impro-v2-0-4a093eaa5e27@ideasonboard.com
> 
> Changes in v2:
> - Change the tidss clock adjustment from mode_fixup() to
> atomic_check()
> - Link to v1:
> https://lore.kernel.org/r/20250320-cdns-dsi-impro-v1-0-725277c5f43b@ideasonboard.com
> 
> ---
> Tomi Valkeinen (17):
>       drm/tidss: Fix missing includes and struct decls
>       drm/tidss: Use the crtc_* timings when programming the HW
>       drm/tidss: Adjust the pclk based on the HW capabilities
>       phy: cdns-dphy: Store hs_clk_rate and return it
>       phy: cdns-dphy: Remove leftover code
>       drm/bridge: cdns-dsi: Remove extra line at the end of the file
>       drm/bridge: cdns-dsi: Drop crtc_* code
>       drm/bridge: cdns-dsi: Remove broken fifo emptying check
>       drm/bridge: cdns-dsi: Drop checks that shouldn't be in
> .mode_valid()
>       drm/bridge: cdns-dsi: Update htotal in cdns_dsi_mode2cfg()
>       drm/bridge: cdns-dsi: Drop cdns_dsi_adjust_phy_config()
>       drm/bridge: cdns-dsi: Adjust mode to negative syncs
>       drm/bridge: cdns-dsi: Fix REG_WAKEUP_TIME value
>       drm/bridge: cdns-dsi: Use video mode and clean up
> cdns_dsi_mode2cfg()
>       drm/bridge: cdns-dsi: Fix event mode
>       drm/bridge: cdns-dsi: Tune adjusted_mode->clock according to
> dsi needs
>       drm/bridge: cdns-dsi: Don't fail on MIPI_DSI_MODE_VIDEO_BURST
> 
>  drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 211 +++++++++++----
> ----------
>  drivers/gpu/drm/tidss/tidss_crtc.c             |  25 ++-
>  drivers/gpu/drm/tidss/tidss_dispc.c            |  22 ++-
>  drivers/gpu/drm/tidss/tidss_dispc.h            |   5 +
>  drivers/gpu/drm/tidss/tidss_drv.h              |   2 +
>  drivers/gpu/drm/tidss/tidss_plane.h            |   2 +
>  drivers/gpu/drm/tidss/tidss_scale_coefs.h      |   2 +
>  drivers/phy/cadence/cdns-dphy.c                |  24 ++-
>  8 files changed, 142 insertions(+), 151 deletions(-)
> ---
> base-commit: 10646ddac2917b31c985ceff0e4982c42a9c924b
> change-id: 20250320-cdns-dsi-impro-3d8fbd7848d1
> prerequisite-message-id:
> 20250226155228.564289-1-aradhya.bhatia at linux.dev
> prerequisite-patch-id: 46845a8d15042dd343a29a17fc0b9d0eec2605f5
> prerequisite-patch-id: 7ce82c26cb9e18884492d2282a72ff2a760aefda
> prerequisite-patch-id: ec2071425cab81da72e0805ad92fc52731d7a24d
> prerequisite-patch-id: 32cde02288e0c36ed687f67778937a61f78b2d90
> prerequisite-patch-id: 5f302e2bead8994763699a909ad0b5501f09ed9f
> prerequisite-patch-id: 30611df6ef38c7872107d6bf6dde4504d46ab224
> prerequisite-patch-id: 99831bcaa13e25b957d83a6320f34bcec223b939
> prerequisite-patch-id: b0ad38bc6b323ceea7a1d2266b0fab8deaa6b05e
> prerequisite-patch-id: 38dbce2b9302a764be9dbdc551578f02d797dfcc
> prerequisite-patch-id: 133f8b1dab4f47d429b1924df981564ce3736233
> prerequisite-patch-id: 879c546693a53e4b72c1ee25954c894ae57a441f
> prerequisite-patch-id: 3e7edc818ac078a138f0e42e3f47fd685fffb84f
> prerequisite-patch-id: 673b9f0b1936b5a49973b71cab5d13774583de38
> prerequisite-message-id:
> 20250410134646.96811-1-aradhya.bhatia at linux.dev
> prerequisite-patch-id: 04f9a2440cebc87891b51d3f77996c88f7525d1c
> 
> Best regards,



More information about the dri-devel mailing list