Hi Sam,
Thank you for the patch.
On Sun, Aug 04, 2019 at 10:16:32PM +0200, Sam Ravnborg wrote:
Move inline functions from include/drm/drm_panel.h to drm_panel.c. This is in preparation for follow-up patches that will add extra logic to the functions. As they are no longer static inline, EXPORT them.
Signed-off-by: Sam Ravnborg sam@ravnborg.org Cc: Thierry Reding thierry.reding@gmail.com Cc: Sam Ravnborg sam@ravnborg.org Cc: Maarten Lankhorst maarten.lankhorst@linux.intel.com Cc: Maxime Ripard maxime.ripard@bootlin.com Cc: Sean Paul sean@poorly.run Cc: David Airlie airlied@linux.ie Cc: Daniel Vetter daniel@ffwll.ch
drivers/gpu/drm/drm_panel.c | 96 +++++++++++++++++++++++++++++++++++ include/drm/drm_panel.h | 99 +++---------------------------------- 2 files changed, 104 insertions(+), 91 deletions(-)
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index dbd5b873e8f2..9946b8d9bacc 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -54,6 +54,102 @@ void drm_panel_init(struct drm_panel *panel) } EXPORT_SYMBOL(drm_panel_init);
+/**
- 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);
+/**
- 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_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_get_modes - probe the available display modes of a panel
- @panel: DRM panel
- The modes probed from the panel are automatically added to the connector
- that the panel is attached to.
- Return: The number of modes available from the panel on success or a
- negative error code on failure.
- */
+int drm_panel_get_modes(struct drm_panel *panel) +{
- if (panel && panel->funcs && panel->funcs->get_modes)
return panel->funcs->get_modes(panel);
- return panel ? -ENOSYS : -EINVAL;
+} +EXPORT_SYMBOL(drm_panel_get_modes);
/**
- drm_panel_add - add a panel to the global registry
- @panel: panel to add
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index 26377836141c..053d611656b9 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h @@ -97,97 +97,6 @@ struct drm_panel { struct list_head list; };
-/**
- drm_disable_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
- The modes probed from the panel are automatically added to the connector
- that the panel is attached to.
- Return: The number of modes available from the panel on success or a
- negative error code on failure.
- */
-static inline int drm_panel_get_modes(struct drm_panel *panel) -{
- if (panel && panel->funcs && panel->funcs->get_modes)
return panel->funcs->get_modes(panel);
- return panel ? -ENOSYS : -EINVAL;
-}
void drm_panel_init(struct drm_panel *panel);
int drm_panel_add(struct drm_panel *panel); @@ -196,6 +105,14 @@ 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_prepare(struct drm_panel *panel); +int drm_panel_unprepare(struct drm_panel *panel);
+int drm_panel_enable(struct drm_panel *panel); +int drm_panel_disable(struct drm_panel *panel);
Nitpicking, I would keep the order of the declarations aligned with the definitions. prepare - enable - disable - unprepare and prepare - unprepare - enable - disable are both fine with me, as long as they're consistent.
Apart from that,
Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
+int drm_panel_get_modes(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