@@ -508,6 +508,21 @@ struct drm_i915_display_funcs {
uint32_t level);
void (*disable_backlight)(struct intel_connector *connector);
void (*enable_backlight)(struct intel_connector *connector);
+
+ struct edp_power_seq (*setup_panel_power_seq)
+ (struct intel_connector *connector);
+ void (*set_pps_panel_on)(struct intel_connector *connector);
+ void (*set_pps_panel_off)(struct intel_connector *connector);
+ void (*set_pps_backlight_on)(struct intel_connector *connector);
+ void (*set_pps_backlight_off)(struct intel_connector *connector);
+ struct edp_power_seq (*get_pps_registers)(
+ struct intel_connector *connector,
+ u32 pp_ctrl_reg, u32 pp_on_reg,
+ u32 pp_off_reg, u32 pp_div_reg);
+ void (*set_pps_registers)(struct intel_connector *connector,
+ enum port port, int *pp_ctrl_reg,
+ int *pp_on_reg, int *pp_off_reg,
+ int *pp_div_reg, int *port_sel, int *div);
};
struct intel_uncore_funcs {
@@ -183,6 +183,15 @@ struct intel_panel {
} backlight;
void (*backlight_power)(struct intel_connector *, bool enable);
+
+ /* PPS */
+ struct {
+ int panel_power_up_delay;
+ int panel_power_down_delay;
+ int panel_power_cycle_delay;
+ int backlight_on_delay;
+ int backlight_off_delay;
+ } pps;
};
struct intel_connector {
Creating generic functions and data related to panel power sequencing in intel_panel. The functions have been added equivalent to intel_dp_panel_power_sequencer() and intel_dp_panel_power_sequencer_registers() These changes have been made to move PPS related data from intel_dp or other panel types to generic intel_panel. Note:- Although edp_power_seq is used as a return type in the functions, the structure can be made generic for all panels. Signed-off-by: Vandana Kannan <vandana.kannan@intel.com> --- drivers/gpu/drm/i915/i915_drv.h | 15 +++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 9 +++++++++ 2 files changed, 24 insertions(+)