DSI code for VBT has a set of ugly GPIO hacks, one of which is direct talking to GPIO IP behind the actual driver's back. A second attempt to fix that is here. If I understood correctly, my approach should work in the similar way as the current IOSF GPIO. Hans, I believe you have some devices that use this piece of code, is it possible to give a test run on (one of) them? In v2: - added a few cleanup patches - reworked to use dynamic GPIO lookup tables - converted CHV as well Andy Shevchenko (7): drm/i915/dsi: Replace while(1) with one with clear exit condition drm/i915/dsi: Get rid of redundant 'else' drm/i915/dsi: Replace check with a (missing) MIPI sequence name drm/i915/dsi: Extract common soc_gpio_exec() helper drm/i915/dsi: Replace poking of VLV GPIOs behind the driver's back drm/i915/dsi: Replace poking of CHV GPIOs behind the driver's back drm/i915/iosf: Drop unused APIs drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 260 +++++++------------ drivers/gpu/drm/i915/vlv_sideband.c | 17 -- drivers/gpu/drm/i915/vlv_sideband.h | 3 - 3 files changed, 96 insertions(+), 184 deletions(-) -- 2.40.0.1.gaa8946217a0b