On Thu, 04 Feb 2016, Jani Nikula <jani.nikula@xxxxxxxxx> wrote: > On Thu, 04 Feb 2016, Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote: >> On Thu, Feb 04, 2016 at 06:52:47PM +0200, Jani Nikula wrote: >>> Skip v3 gpio element because the support is not there, and skip gpio >>> element on non-vlv because the sideband code is vlv specific. >>> >>> v2: the gpio stuff is currently only supported on vlv (Ville) >>> >>> Cc: drm-intel-fixes@xxxxxxxxxxxxxxxxxxxxx >>> Fixes: 2a33d93486f2 ("drm/i915/bios: add support for MIPI sequence block v3") >>> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> >>> --- >>> drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 13 +++++++++++++ >>> 1 file changed, 13 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c >>> index f4d303ee538b..bcc083db7632 100644 >>> --- a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c >>> +++ b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c >>> @@ -205,6 +205,9 @@ static const u8 *mipi_exec_gpio(struct intel_dsi *intel_dsi, const u8 *data) >>> struct drm_device *dev = intel_dsi->base.base.dev; >>> struct drm_i915_private *dev_priv = dev->dev_private; >>> >>> + if (dev_priv->vbt.dsi.seq_version >= 3) >>> + data++; >>> + >> >> So here we handle v3 >> >>> gpio = *data++; >>> >>> /* pull up/down */ >>> @@ -215,6 +218,16 @@ static const u8 *mipi_exec_gpio(struct intel_dsi *intel_dsi, const u8 *data) >>> goto out; >>> } >>> >>> + if (!IS_VALLEYVIEW(dev_priv)) { >>> + DRM_DEBUG_KMS("GPIO element not supported on this platform\n"); >>> + goto out; >>> + } >>> + >>> + if (dev_priv->vbt.dsi.seq_version >= 3) { >>> + DRM_DEBUG_KMS("GPIO element v3 not supported\n"); >>> + goto out; >>> + } >> >> but here we say it's not supported. Is there more missing? > > The whole point of doing it this way is to support *skipping* v3 in a > graceful manner. If I bailed out at the top, I'd have to duplicate the > knowledge about the length of the element. Oh, and I want to split the v3 support like this to allow backporting *this* patch for fixes, while the actual support goes through dinq. > > BR, > Jani. > > >> >>> + >>> function = gtable[gpio].function_reg; >>> pad = gtable[gpio].pad_reg; >>> >>> -- >>> 2.1.4 >>> >>> _______________________________________________ >>> Intel-gfx mailing list >>> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx >>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx