Commit 6074e905 authored by Javier Martinez Canillas's avatar Javier Martinez Canillas Committed by Tzung-Bi Shih
Browse files

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: default avatarThomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Reviewed-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20240916110040.1688511-2-javierm@redhat.com


Signed-off-by: default avatarTzung-Bi Shih <tzungbi@kernel.org>
parent 9852d85e
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -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)
{
+7 −0
Original line number Diff line number Diff line
@@ -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