On Tue, Oct 17, 2017 at 05:13:05PM -0400, Sean Paul wrote:
In preparation for state tracking in drm_panel, move the panel functions into drm_panel.c so we beef them up in later patches.
Signed-off-by: Sean Paul seanpaul@chromium.org
I'll take the easy ones, on patches 1&2:
Reviewed-by: Daniel Vetter daniel.vetter@ffwll.ch
New in v3
drivers/gpu/drm/drm_panel.c | 77 ++++++++++++++++++++++++++++++++++++++++++++ include/drm/drm_panel.h | 78 +++------------------------------------------ 2 files changed, 82 insertions(+), 73 deletions(-)
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index 308d442a531b..6f28598a5d0e 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -126,6 +126,83 @@ int drm_panel_detach(struct drm_panel *panel) } EXPORT_SYMBOL(drm_panel_detach);
+/**
- drm_panel_unprepare - power off a panel
- @panel: DRM panel
- Calling this function will completely power off a panel (assert the panel's
- reset, turn off power supplies, ...). After this function has completed, it
- is usually no longer possible to communicate with the panel until another
- call to drm_panel_prepare().
- Return: 0 on success or a negative error code on failure.
- */
+int drm_panel_unprepare(struct drm_panel *panel) +{
- if (panel && panel->funcs && panel->funcs->unprepare)
return panel->funcs->unprepare(panel);
- return panel ? -ENOSYS : -EINVAL;
+} +EXPORT_SYMBOL(drm_panel_unprepare);
+/**
- drm_panel_disable - disable a panel
- @panel: DRM panel
- This will typically turn off the panel's backlight or disable the display
- drivers. For smart panels it should still be possible to communicate with
- the integrated circuitry via any command bus after this call.
- Return: 0 on success or a negative error code on failure.
- */
+int drm_panel_disable(struct drm_panel *panel) +{
- if (panel && panel->funcs && panel->funcs->disable)
return panel->funcs->disable(panel);
- return panel ? -ENOSYS : -EINVAL;
+} +EXPORT_SYMBOL(drm_panel_disable);
+/**
- drm_panel_prepare - power on a panel
- @panel: DRM panel
- Calling this function will enable power and deassert any reset signals to
- the panel. After this has completed it is possible to communicate with any
- integrated circuitry via a command bus.
- Return: 0 on success or a negative error code on failure.
- */
+int drm_panel_prepare(struct drm_panel *panel) +{
- if (panel && panel->funcs && panel->funcs->prepare)
return panel->funcs->prepare(panel);
- return panel ? -ENOSYS : -EINVAL;
+} +EXPORT_SYMBOL(drm_panel_prepare);
+/**
- drm_panel_enable - enable a panel
- @panel: DRM panel
- Calling this function will cause the panel display drivers to be turned on
- and the backlight to be enabled. Content will be visible on screen after
- this call completes.
- Return: 0 on success or a negative error code on failure.
- */
+int drm_panel_enable(struct drm_panel *panel) +{
- if (panel && panel->funcs && panel->funcs->enable)
return panel->funcs->enable(panel);
- return panel ? -ENOSYS : -EINVAL;
+} +EXPORT_SYMBOL(drm_panel_enable);
#ifdef CONFIG_OF /**
- of_drm_find_panel - look up a panel using a device tree node
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index ab59d71a24c3..0a9442069d3c 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h @@ -95,79 +95,6 @@ struct drm_panel { struct list_head list; };
-/**
- drm_panel_unprepare - power off a panel
- @panel: DRM panel
- Calling this function will completely power off a panel (assert the panel's
- reset, turn off power supplies, ...). After this function has completed, it
- is usually no longer possible to communicate with the panel until another
- call to drm_panel_prepare().
- Return: 0 on success or a negative error code on failure.
- */
-static inline int drm_panel_unprepare(struct drm_panel *panel) -{
- if (panel && panel->funcs && panel->funcs->unprepare)
return panel->funcs->unprepare(panel);
- return panel ? -ENOSYS : -EINVAL;
-}
-/**
- drm_panel_disable - disable a panel
- @panel: DRM panel
- This will typically turn off the panel's backlight or disable the display
- drivers. For smart panels it should still be possible to communicate with
- the integrated circuitry via any command bus after this call.
- Return: 0 on success or a negative error code on failure.
- */
-static inline int drm_panel_disable(struct drm_panel *panel) -{
- if (panel && panel->funcs && panel->funcs->disable)
return panel->funcs->disable(panel);
- return panel ? -ENOSYS : -EINVAL;
-}
-/**
- drm_panel_prepare - power on a panel
- @panel: DRM panel
- Calling this function will enable power and deassert any reset signals to
- the panel. After this has completed it is possible to communicate with any
- integrated circuitry via a command bus.
- Return: 0 on success or a negative error code on failure.
- */
-static inline int drm_panel_prepare(struct drm_panel *panel) -{
- if (panel && panel->funcs && panel->funcs->prepare)
return panel->funcs->prepare(panel);
- return panel ? -ENOSYS : -EINVAL;
-}
-/**
- drm_panel_enable - enable a panel
- @panel: DRM panel
- Calling this function will cause the panel display drivers to be turned on
- and the backlight to be enabled. Content will be visible on screen after
- this call completes.
- Return: 0 on success or a negative error code on failure.
- */
-static inline int drm_panel_enable(struct drm_panel *panel) -{
- if (panel && panel->funcs && panel->funcs->enable)
return panel->funcs->enable(panel);
- return panel ? -ENOSYS : -EINVAL;
-}
/**
- drm_panel_get_modes - probe the available display modes of a panel
- @panel: DRM panel
@@ -194,6 +121,11 @@ void drm_panel_remove(struct drm_panel *panel); int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector); int drm_panel_detach(struct drm_panel *panel);
+int drm_panel_unprepare(struct drm_panel *panel); +int drm_panel_disable(struct drm_panel *panel); +int drm_panel_prepare(struct drm_panel *panel); +int drm_panel_enable(struct drm_panel *panel);
#if defined(CONFIG_OF) && defined(CONFIG_DRM_PANEL) struct drm_panel *of_drm_find_panel(const struct device_node *np);
#else
2.15.0.rc1.287.g2b38de12cc-goog