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.panch...@toradex.com> > Signed-off-by: Tomi Valkeinen <tomi.valkei...@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-4a093eaa5...@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-725277c5f...@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.bha...@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.bha...@linux.dev > prerequisite-patch-id: 04f9a2440cebc87891b51d3f77996c88f7525d1c > > Best regards,