drm/i915/dsi: don't pass arbitrary data to sideband
authorJani Nikula <jani.nikula@intel.com>
Thu, 4 Feb 2016 10:50:50 +0000 (12:50 +0200)
committerJani Nikula <jani.nikula@intel.com>
Mon, 8 Feb 2016 09:35:59 +0000 (11:35 +0200)
Since sequence block v2 the second byte contains flags other than just
pull up/down. Don't pass arbitrary data to the sideband interface.

The rest may or may not work for sequence block v2, but there should be
no harm done.

Cc: stable@vger.kernel.org
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/ebe3c2eee623afc4b3a134533b01f8d591d13f32.1454582914.git.jani.nikula@intel.com
(cherry picked from commit 4e1c63e3761b84ec7d87c75b58bbc8bcf18e98ee)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_dsi_panel_vbt.c

index 349775e..a8912ae 100644 (file)
@@ -207,7 +207,7 @@ static const u8 *mipi_exec_gpio(struct intel_dsi *intel_dsi, const u8 *data)
        gpio = *data++;
 
        /* pull up/down */
-       action = *data++;
+       action = *data++ & 1;
 
        if (gpio >= ARRAY_SIZE(gtable)) {
                DRM_DEBUG_KMS("unknown gpio %u\n", gpio);