* Tomi Valkeinen tomi.valkeinen@ti.com [190205 11:07]:
Yep... So there's the DSI internal code which needs to deal with ulps and disconnect_lanes, and then the external interface to the DSI PLL (so that DPI can use DSI PLL) without ulps/disconnect.
I think your patch breaks this latter one, as disconnect_lanes is zero in that case and would leave the regulator enabled. This would probably be visible on e.g. Pandaboard, which uses DSI PLLs for the TFP410 DVI output, if I recall right.
Sorry I don't quite follow what happens there with dvi calling into dsi.. Care to describe a bit more?
And storing the 'disconnect_lanes' is a bit ugly, but I don't see right away how to avoid it...
Maybe the field in dsi_data should be something like "keep_lanes_powered", and default value false. In dsi_display_uninit_dsi(), we could set
keep_lanes_powered = !disconnect_lanes;
and after dss_pll_disable() call, set keep_lanes_powered back to false to keep it in the default state.
If we need more control over the lanes, maybe we should just add a helper like this so that only panels that need it can call it:
static int dsi_set_lane_power(struct omap_dss_device *dssdev, bool enable) { struct dsi_data *dsi = to_dsi_data(dssdev);
dsi->keep_lanes_powered = enable;
return 0; }
Regards,
Tony