mirror of
https://github.com/torvalds/linux.git
synced 2024-12-12 14:12:51 +00:00
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: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: Archit Taneja <archit@ti.com>
This commit is contained in:
parent
ddffeb8c4d
commit
ea29c4ea2b
@ -365,11 +365,20 @@ struct platform_device *dsi_get_dsidev_from_id(int module)
|
||||
struct omap_dss_output *out;
|
||||
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);
|
||||
|
||||
return out->pdev;
|
||||
return out ? out->pdev : NULL;
|
||||
}
|
||||
|
||||
static inline void dsi_write_reg(struct platform_device *dsidev,
|
||||
|
Loading…
Reference in New Issue
Block a user