projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drm/rockchip: add rk3399 vop big csc support
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
gpu
/
drm
/
i915
/
intel_dsi_panel_vbt.c
diff --git
a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
index a5e99ac305daab3ef69471d37b0ec9a97a27425c..a8912aecc31f0de663425fd6c3e868eeac5746f2 100644
(file)
--- a/
drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
+++ b/
drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
@@
-207,7
+207,12
@@
static const u8 *mipi_exec_gpio(struct intel_dsi *intel_dsi, const u8 *data)
gpio = *data++;
/* pull up/down */
gpio = *data++;
/* pull up/down */
- action = *data++;
+ action = *data++ & 1;
+
+ if (gpio >= ARRAY_SIZE(gtable)) {
+ DRM_DEBUG_KMS("unknown gpio %u\n", gpio);
+ goto out;
+ }
function = gtable[gpio].function_reg;
pad = gtable[gpio].pad_reg;
function = gtable[gpio].function_reg;
pad = gtable[gpio].pad_reg;
@@
-226,6
+231,7
@@
static const u8 *mipi_exec_gpio(struct intel_dsi *intel_dsi, const u8 *data)
vlv_gpio_nc_write(dev_priv, pad, val);
mutex_unlock(&dev_priv->sb_lock);
vlv_gpio_nc_write(dev_priv, pad, val);
mutex_unlock(&dev_priv->sb_lock);
+out:
return data;
}
return data;
}