On 16.05.2023 01:57, Adam Ford wrote: > This series fixes the blanking pack size and the PMS calculation. It then > adds support to allows the DSIM to dynamically DPHY clocks, and support > non-burst mode while allowing the removal of the hard-coded clock values > for the PLL for imx8m mini/nano/plus, and it allows the removal of the > burst-clock device tree entry when burst-mode isn't supported by connected > devices like an HDMI brige. In that event, the HS clock is set to the > value requested by the bridge chip. > > This has been tested on both an i.MX8M Nano and i.MX8M Plus, and should > work on i.MX8M Mini as well. Marek Szyprowski has tested it on various > Exynos boards. > > Adam Ford (5): > drm: bridge: samsung-dsim: Fix PMS Calculator on imx8m[mnp] > drm: bridge: samsung-dsim: Fetch pll-clock-frequency automatically > drm: bridge: samsung-dsim: Select GENERIC_PHY_MIPI_DPHY > drm: bridge: samsung-dsim: Dynamically configure DPHY timing > drm: bridge: samsung-dsim: Support non-burst mode > > Lucas Stach (1): > drm: bridge: samsung-dsim: fix blanking packet size calculation > > drivers/gpu/drm/bridge/Kconfig | 1 + > drivers/gpu/drm/bridge/samsung-dsim.c | 143 +++++++++++++++++++++----- > include/drm/bridge/samsung-dsim.h | 4 + > 3 files changed, 125 insertions(+), 23 deletions(-) Feel free to add to all patches: Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > V6: Squash-in an additional error fix from Lucas Stach regarding the > DPHY calcuations. Remove the dynamic_dphy variable and let > everyone use the new calculations. Move the hs_clock caching > from patch 6 to patch 5 to go along with the DPHY calcuations > since they are now based on the recorded hs_clock rate. > > V5: Update error message to dev_info and change them to indicate > what is happening without sounding like an error when optional > device tree entries are missing. > > V4: Undo some accidental whitespace changes, rename PS_TO_CYCLE > variables to ps and hz from PS and MHz. Remove if check > before the samsung_dsim_set_phy_ctrl call since it's > unnecessary. > Added additional tested-by and reviewed-by comments. > Squash patches 6 and 7 together since the supporting > non-burst (patch 6) mode doesn't really work until > patch 7 was applied. > > V3: When checking if the bust-clock is present, only check for it > in the device tree, and don't check the presence of the > MIPI_DSI_MODE_VIDEO_BURST flag as it breaks an existing Exynos > board. > > Add a new patch to the series to select GENERIC_PHY_MIPI_DPHY in > Kconfig otherwise the build breaks on the 32-bit Exynos. > > Change vco_min variable name to min_freq > > Added tested-by from Chen-Yu Tsai > > V2: Instead of using my packet blanking calculation, this integrates > on from Lucas Stach which gets modified later in the series to > cache the value of the HS-clock instead of having to do the > calucations again. > > Instead of completely eliminating the PLL clock frequency from > the device tree, this makes it optional to avoid breaking some > Samsung devices. When the samsung,pll-clock-frequency is not > found, it reads the value of the clock named "sclk_mipi" > This also maintains backwards compatibility with older device > trees. > > This also changes the DPHY calcuation from a Look-up table, > a reverse engineered algorithm which uses > phy_mipi_dphy_get_default_config to determine the standard > nominal values and calculates the cycles necessary to update > the DPHY timings accordingly. > Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland