lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Mon, 06 May 2024 15:34:29 +0200
From: Michael Walle <mwalle@...nel.org>
To: Andrzej Hajda <andrzej.hajda@...el.com>, 
 Neil Armstrong <neil.armstrong@...aro.org>, Robert Foss <rfoss@...nel.org>, 
 Laurent Pinchart <Laurent.pinchart@...asonboard.com>, 
 Jonas Karlman <jonas@...boo.se>, Jernej Skrabec <jernej.skrabec@...il.com>, 
 Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>, 
 Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>, 
 David Airlie <airlied@...il.com>, Daniel Vetter <daniel@...ll.ch>, 
 Chun-Kuang Hu <chunkuang.hu@...nel.org>, 
 Philipp Zabel <p.zabel@...gutronix.de>, 
 Matthias Brugger <matthias.bgg@...il.com>, 
 AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>, 
 Sam Ravnborg <sam@...nborg.org>, Vinay Simha BN <simhavcs@...il.com>, 
 Tony Lindgren <tony@...mide.com>
Cc: Daniel Semkowicz <dse@...umatec.com>, dri-devel@...ts.freedesktop.org, 
 linux-kernel@...r.kernel.org, linux-mediatek@...ts.infradead.org, 
 linux-arm-kernel@...ts.infradead.org, Michael Walle <mwalle@...nel.org>
Subject: [PATCH 00/20] drm/bridge: tc358775: proper bridge bringup and code
 cleanup

This patchset fixes the bridge initialization according to the
datasheet. Not sure how that even worked before. Maybe because the
initialization was done prior to linux (?).

The bridge has some peculiarities:
 (1) The reset has to be deasserted in LP-11 mode
 (2) For I2C access the bridge needs the DSI clock
 (3) The bridge has to be configured while the video stream is
     disabled.
 (4) The bridge has limitations on the display timings. In particular,
     the horizontal pulse width has to be at least 8 pixels wide and
     both the horizontal pulse width as well as the back porch has to
     be even. According to the datasheet the horizontal front porch as
     well but in line sync mode, this is ignored. Also line sync is the
     only supported mode for this bridge, therefore, the front porch
     is always ignored.

The most controversial patch is probably "drm/bridge: add
dsi_lp11_notify mechanism" which is needed for (1) above. Some time ago
there was a series [1] to add a manual power-up, which was abandoned and
which didn't suite the needs for this bridge anyway.

Also, this will gradually change the tc_ prefix to tc358775_ while the
functions are refactored.

The bridge was successfully tested on a Mediatek MT8195 SoC with the
following panels:
 - Innolux G101ICE
 - AUO G121EAN01.0
 - Innolux G156HCE (dual-link LVDS)

[1] https://lore.kernel.org/r/20231016165355.1327217-1-dmitry.baryshkov@linaro.org/

Signed-off-by: Michael Walle <mwalle@...nel.org>
---
Michael Walle (20):
      drm/bridge: add dsi_lp11_notify mechanism
      drm/mediatek: dsi: provide LP-11 mode during .pre_enable
      drm/mediatek: dsi: add support for .dsi_lp11_notity()
      drm/bridge: tc358775: fix regulator supply id
      drm/bridge: tc358775: add crtc modes fixup
      drm/bridge: tc358775: redefine LV_MX()
      drm/bridge: tc358775: use regmap instead of open coded access functions
      drm/bridge: tc358775: remove error message if regulator is missing
      drm/bridge: tc358775: remove complex vsdelay calculation
      drm/bridge: tc358775: simplify lvds_link property
      drm/bridge: tc358775: reformat weird indentation
      drm/bridge: tc358775: correctly configure LVDS clock
      drm/bridge: tc358775: split the init code
      drm/bridge: tc358775: configure PLL depending on the LVDS clock
      drm/bridge: tc358775: dynamically configure DSI link settings
      drm/bridge: tc358775: use proper defines to configure LVDS timings
      drm/bridge: tc358775: move bridge power up/down into functions
      drm/bridge: tc358775: fix the power-up/down delays
      drm/bridge: tc358775: fix power-up sequencing
      drm/bridge: tc358775: use devm_drm_bridge_add()

 drivers/gpu/drm/bridge/Kconfig     |   1 +
 drivers/gpu/drm/bridge/tc358775.c  | 601 ++++++++++++++++++++-----------------
 drivers/gpu/drm/drm_bridge.c       |  16 +
 drivers/gpu/drm/mediatek/mtk_dsi.c |   8 +-
 include/drm/drm_bridge.h           |  12 +
 5 files changed, 355 insertions(+), 283 deletions(-)
---
base-commit: 9221b2819b8a4196eecf5476d66201be60fbcf29
change-id: 20240506-tc358775-fix-powerup-53f490043179


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ