diff options
Diffstat (limited to 'drivers/gpu/drm/sysfb/drm_sysfb.c')
| -rw-r--r-- | drivers/gpu/drm/sysfb/drm_sysfb.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/sysfb/drm_sysfb.c b/drivers/gpu/drm/sysfb/drm_sysfb.c index 308f82153b15..fbfb37d0fae1 100644 --- a/drivers/gpu/drm/sysfb/drm_sysfb.c +++ b/drivers/gpu/drm/sysfb/drm_sysfb.c @@ -31,5 +31,29 @@ int drm_sysfb_get_validated_int0(struct drm_device *dev, const char *name, } EXPORT_SYMBOL(drm_sysfb_get_validated_int0); +const struct drm_format_info *drm_sysfb_get_format(struct drm_device *dev, + const struct drm_sysfb_format *formats, + size_t nformats, + const struct pixel_format *pixel) +{ + const struct drm_format_info *format = NULL; + size_t i; + + for (i = 0; i < nformats; ++i) { + const struct drm_sysfb_format *f = &formats[i]; + + if (pixel_format_equal(pixel, &f->pixel)) { + format = drm_format_info(f->fourcc); + break; + } + } + + if (!format) + drm_warn(dev, "No compatible color format found\n"); + + return format; +} +EXPORT_SYMBOL(drm_sysfb_get_format); + MODULE_DESCRIPTION("Helpers for DRM sysfb drivers"); MODULE_LICENSE("GPL"); |
