Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea29c4ea authored by Tomi Valkeinen's avatar Tomi Valkeinen
Browse files

OMAPDSS: DSI: fix dsi_get_dsidev_from_id()



If dsi_get_dsidev_from_id() is called with a DSI module id that does not
exist on the board, the function will crash as omap_dss_get_output()
will return NULL.

This happens on omap3 boards when dumping DSI clocks, as the dumping
code will try to get the dsidev for DSI modules 0 and 1, but omap3 only
has DSI module 0.

Also clean up the id -> output mapping, so that if the function is
called with invalid module ID it will return NULL.

Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Archit Taneja <archit@ti.com>
parent ddffeb8c
Loading
Loading
Loading
Loading
+11 −2
Original line number Original line Diff line number Diff line
@@ -365,11 +365,20 @@ struct platform_device *dsi_get_dsidev_from_id(int module)
	struct omap_dss_output *out;
	struct omap_dss_output *out;
	enum omap_dss_output_id	id;
	enum omap_dss_output_id	id;


	id = module == 0 ? OMAP_DSS_OUTPUT_DSI1 : OMAP_DSS_OUTPUT_DSI2;
	switch (module) {
	case 0:
		id = OMAP_DSS_OUTPUT_DSI1;
		break;
	case 1:
		id = OMAP_DSS_OUTPUT_DSI2;
		break;
	default:
		return NULL;
	}


	out = omap_dss_get_output(id);
	out = omap_dss_get_output(id);


	return out->pdev;
	return out ? out->pdev : NULL;
}
}


static inline void dsi_write_reg(struct platform_device *dsidev,
static inline void dsi_write_reg(struct platform_device *dsidev,