disp: msm: sde: add new interface for RFI feature

Add a new connector range property and a new entry to the panel
capability blob to publish the list of supported RFI frequencies.
In addition, add the required functions to set, validate and update
DSI bit clock rate value to trigger an internal seamless mode switch
and reconfigure DSI clock and PLL.

Change-Id: I7d19cc369f8c5528709f2f20a51ef02180ebdea4
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
This commit is contained in:
Amine Najahi
2021-02-16 16:53:04 -05:00
committed by Gerrit - the friendly Code Review server
parent 4c41c05d7c
commit d4def5bd8c
11 changed files with 278 additions and 44 deletions

View File

@@ -154,6 +154,8 @@ struct dsi_display_ext_bridge {
* index into the ctrl[MAX_DSI_CTRLS_PER_DISPLAY] array.
* @cmd_master_idx: The master controller for sending DSI commands to panel.
* @video_master_idx: The master controller for enabling video engine.
* @dyn_bit_clk: The DSI bit clock rate dynamically set by user mode client.
* @dyn_bit_clk_pending: Flag indicating the pending DSI dynamic bit clock rate change.
* @cached_clk_rate: The cached DSI clock rate set dynamically by sysfs.
* @clkrate_change_pending: Flag indicating the pending DSI clock re-enabling.
* @clock_info: Clock sourcing for DSI display.
@@ -225,7 +227,9 @@ struct dsi_display {
u32 video_master_idx;
/* dynamic DSI clock info*/
u32 cached_clk_rate;
u32 dyn_bit_clk;
bool dyn_bit_clk_pending;
u32 cached_clk_rate;
atomic_t clkrate_change_pending;
struct dsi_display_clk_info clock_info;
@@ -776,4 +780,21 @@ int dsi_display_get_panel_vfp(void *display,
*/
int dsi_display_dump_clks_state(struct dsi_display *display);
/**
* dsi_display_update_dyn_bit_clk() - update mode timing to compensate for dynamic bit clock
* @display: Handle to display
* @mode: Mode to be updated
* Return: Zero on Success
*/
int dsi_display_update_dyn_bit_clk(struct dsi_display *display, struct dsi_display_mode *mode);
/**
* dsi_display_restore_bit_clk() - restore mode bit clock rate value from dynamic bit clock
* @display: Handle to display
* @mode: Mode to be updated
* Return: Zero on Success
*/
int dsi_display_restore_bit_clk(struct dsi_display *display, struct dsi_display_mode *mode);
#endif /* _DSI_DISPLAY_H_ */