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@xxxxxxxxxxxx> I'll take the easy ones, on patches 1&2: Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > 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 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel