Currently there are few pair of functions which
are called during the panel enable/disable sequence.
To improve the granularity, adding few more wrapper
functions so that the functions are more specific
on what they are doing and also in some cases
some specific operations have to be done between these
functions.

Signed-off-by: Deepak M <m.dee...@intel.com>
Signed-off-by: Gaurav K Singh <gaurav.k.si...@intel.com>
---
 include/drm/drm_panel.h |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 13ff44b..c729f6d 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -73,6 +73,12 @@ struct drm_panel_funcs {
        int (*get_modes)(struct drm_panel *panel);
        int (*get_timings)(struct drm_panel *panel, unsigned int num_timings,
                           struct display_timing *timings);
+       int (*power_on)(struct drm_panel *panel);
+       int (*power_off)(struct drm_panel *panel);
+       int (*backlight_on)(struct drm_panel *panel);
+       int (*backlight_off)(struct drm_panel *panel);
+       int (*get_info)(struct drm_panel *panel,
+                               struct drm_connector *connector);
 };
 
 struct drm_panel {
@@ -117,6 +123,47 @@ static inline int drm_panel_enable(struct drm_panel *panel)
        return panel ? -ENOSYS : -EINVAL;
 }
 
+static inline int drm_panel_power_on(struct drm_panel *panel)
+{
+       if (panel && panel->funcs && panel->funcs->power_on)
+               return panel->funcs->power_on(panel);
+
+       return panel ? -ENOSYS : -EINVAL;
+}
+
+static inline int drm_panel_power_off(struct drm_panel *panel)
+{
+       if (panel && panel->funcs && panel->funcs->power_off)
+               return panel->funcs->power_off(panel);
+
+       return panel ? -ENOSYS : -EINVAL;
+}
+
+static inline int drm_panel_backlight_on(struct drm_panel *panel)
+{
+       if (panel && panel->funcs && panel->funcs->backlight_on)
+               return panel->funcs->backlight_on(panel);
+
+       return panel ? -ENOSYS : -EINVAL;
+}
+
+static inline int drm_panel_backlight_off(struct drm_panel *panel)
+{
+       if (panel && panel->funcs && panel->funcs->backlight_off)
+               return panel->funcs->backlight_off(panel);
+
+       return panel ? -ENOSYS : -EINVAL;
+}
+
+static inline int drm_panel_get_info(struct drm_panel *panel,
+                               struct drm_connector *connector)
+{
+       if (connector && panel && panel->funcs && panel->funcs->get_info)
+               return panel->funcs->get_info(panel, connector);
+
+       return panel ? -ENOSYS : -EINVAL;
+}
+
 static inline int drm_panel_get_modes(struct drm_panel *panel)
 {
        if (panel && panel->funcs && panel->funcs->get_modes)
-- 
1.7.9.5

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to