Message ID | 20190804201637.1240-12-sam@ravnborg.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm: panel related updates | expand |
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
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); + +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
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(-)