disp: msm: dsi: add support for dsi dynamic clock switch
This change adds support for dynamic switching of dsi clocks to avoid RF interference issues. Also with dynamic dsi clock switch feature coming into picture, now populate the supported refresh rate as list instead of providing a range. Modify the logic to enumerate all the modes in dsi driver, taking dynamic bit clocks, resolutions and refresh rates into account. Change-Id: I5b6e62bc935cf2234bdd96fcb3c7537b4e735fff Signed-off-by: Sandeep Panda <spanda@codeaurora.org> Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org> Signed-off-by: Yujun Zhang <yujunzhang@codeaurora.org>
This commit is contained in:
@@ -290,4 +290,45 @@ void dsi_phy_drv_register(void);
|
||||
*/
|
||||
void dsi_phy_drv_unregister(void);
|
||||
|
||||
/**
|
||||
* dsi_phy_update_phy_timings() - Update dsi phy timings
|
||||
* @phy: DSI PHY handle
|
||||
* @config: DSI Host config parameters
|
||||
*
|
||||
* Return: error code.
|
||||
*/
|
||||
int dsi_phy_update_phy_timings(struct msm_dsi_phy *phy,
|
||||
struct dsi_host_config *config);
|
||||
|
||||
/**
|
||||
* dsi_phy_config_dynamic_refresh() - Configure dynamic refresh registers
|
||||
* @phy: DSI PHY handle
|
||||
* @delay: pipe delays for dynamic refresh
|
||||
* @is_master: Boolean to indicate if for master or slave
|
||||
*/
|
||||
void dsi_phy_config_dynamic_refresh(struct msm_dsi_phy *phy,
|
||||
struct dsi_dyn_clk_delay *delay,
|
||||
bool is_master);
|
||||
/**
|
||||
* dsi_phy_dynamic_refresh_trigger() - trigger dynamic refresh
|
||||
* @phy: DSI PHY handle
|
||||
* @is_master: Boolean to indicate if for master or slave.
|
||||
*/
|
||||
void dsi_phy_dynamic_refresh_trigger(struct msm_dsi_phy *phy, bool is_master);
|
||||
|
||||
/**
|
||||
* dsi_phy_dynamic_refresh_clear() - clear dynamic refresh config
|
||||
* @phy: DSI PHY handle
|
||||
*/
|
||||
void dsi_phy_dynamic_refresh_clear(struct msm_dsi_phy *phy);
|
||||
|
||||
/**
|
||||
* dsi_phy_dyn_refresh_cache_phy_timings - cache the phy timings calculated
|
||||
* as part of dynamic refresh.
|
||||
* @phy: DSI PHY Handle.
|
||||
* @dst: Pointer to cache location.
|
||||
* @size: Number of phy lane settings.
|
||||
*/
|
||||
int dsi_phy_dyn_refresh_cache_phy_timings(struct msm_dsi_phy *phy,
|
||||
u32 *dst, u32 size);
|
||||
#endif /* _DSI_PHY_H_ */
|
||||
|
Reference in New Issue
Block a user