drm/i915/dsi: be defensive about out of bounds sequence id
Untie the VBT based generic panel driver from the VBT parsing, so that the two don't have to be updated in lockstep. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/7a6e3e7c4404c0e4dbcf003acd8737a6ecbe218f.1450702954.git.jani.nikula@intel.com
This commit is contained in:
parent
8d3ed2f313
commit
5cda0d20f9
|
@ -246,14 +246,21 @@ static const fn_mipi_elem_exec exec_elem[] = {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static const char * const seq_name[] = {
|
static const char * const seq_name[] = {
|
||||||
"UNDEFINED",
|
[MIPI_SEQ_ASSERT_RESET] = "MIPI_SEQ_ASSERT_RESET",
|
||||||
"MIPI_SEQ_ASSERT_RESET",
|
[MIPI_SEQ_INIT_OTP] = "MIPI_SEQ_INIT_OTP",
|
||||||
"MIPI_SEQ_INIT_OTP",
|
[MIPI_SEQ_DISPLAY_ON] = "MIPI_SEQ_DISPLAY_ON",
|
||||||
"MIPI_SEQ_DISPLAY_ON",
|
[MIPI_SEQ_DISPLAY_OFF] = "MIPI_SEQ_DISPLAY_OFF",
|
||||||
"MIPI_SEQ_DISPLAY_OFF",
|
[MIPI_SEQ_DEASSERT_RESET] = "MIPI_SEQ_DEASSERT_RESET",
|
||||||
"MIPI_SEQ_DEASSERT_RESET"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *sequence_name(enum mipi_seq seq_id)
|
||||||
|
{
|
||||||
|
if (seq_id < ARRAY_SIZE(seq_name) && seq_name[seq_id])
|
||||||
|
return seq_name[seq_id];
|
||||||
|
else
|
||||||
|
return "(unknown)";
|
||||||
|
}
|
||||||
|
|
||||||
static void generic_exec_sequence(struct intel_dsi *intel_dsi, const u8 *data)
|
static void generic_exec_sequence(struct intel_dsi *intel_dsi, const u8 *data)
|
||||||
{
|
{
|
||||||
fn_mipi_elem_exec mipi_elem_exec;
|
fn_mipi_elem_exec mipi_elem_exec;
|
||||||
|
@ -262,7 +269,8 @@ static void generic_exec_sequence(struct intel_dsi *intel_dsi, const u8 *data)
|
||||||
if (!data)
|
if (!data)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DRM_DEBUG_DRIVER("Starting MIPI sequence - %s\n", seq_name[*data]);
|
DRM_DEBUG_DRIVER("Starting MIPI sequence %u - %s\n",
|
||||||
|
*data, sequence_name(*data));
|
||||||
|
|
||||||
/* go to the first element of the sequence */
|
/* go to the first element of the sequence */
|
||||||
data++;
|
data++;
|
||||||
|
|
Loading…
Reference in New Issue