* Tomi Valkeinen <tomi.valkeinen@xxxxxx> [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