firmware: sysfb: Add a sysfb_handles_screen_info() helper function

That can be used by drivers to check if the Generic System Framebuffers
(sysfb) support can handle the data contained in the global screen_info.

Drivers might need this information to know if have to setup the system
framebuffer, or if they have to delegate this action to sysfb instead.

Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20240916110040.1688511-2-javierm@redhat.com
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
This commit is contained in:
Javier Martinez Canillas 2024-09-16 13:00:25 +02:00 committed by Tzung-Bi Shih
parent 9852d85ec9
commit 6074e90502
2 changed files with 26 additions and 0 deletions

View File

@ -77,6 +77,25 @@ void sysfb_disable(struct device *dev)
}
EXPORT_SYMBOL_GPL(sysfb_disable);
/**
* sysfb_handles_screen_info() - reports if sysfb handles the global screen_info
*
* Callers can use sysfb_handles_screen_info() to determine whether the Generic
* System Framebuffers (sysfb) can handle the global screen_info data structure
* or not. Drivers might need this information to know if they have to setup the
* system framebuffer, or if they have to delegate this action to sysfb instead.
*
* Returns:
* True if sysfb handles the global screen_info data structure.
*/
bool sysfb_handles_screen_info(void)
{
const struct screen_info *si = &screen_info;
return !!screen_info_video_type(si);
}
EXPORT_SYMBOL_GPL(sysfb_handles_screen_info);
#if defined(CONFIG_PCI)
static bool sysfb_pci_dev_is_enabled(struct pci_dev *pdev)
{

View File

@ -60,12 +60,19 @@ struct efifb_dmi_info {
void sysfb_disable(struct device *dev);
bool sysfb_handles_screen_info(void);
#else /* CONFIG_SYSFB */
static inline void sysfb_disable(struct device *dev)
{
}
static inline bool sysfb_handles_screen_info(void)
{
return false;
}
#endif /* CONFIG_SYSFB */
#ifdef CONFIG_EFI