Allow a mask of features to be passed to drm_core_check_feature(). All features in the mask are required. v2: - fix kernel-doc (Ville) - add an extra variable for clarity (Ville) Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> --- include/drm/drm_drv.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h index cf13470810a5..f18e19f3f2d0 100644 --- a/include/drm/drm_drv.h +++ b/include/drm/drm_drv.h @@ -826,16 +826,20 @@ static inline bool drm_dev_is_unplugged(struct drm_device *dev) /** * drm_core_check_feature - check driver feature flags * @dev: DRM device to check - * @feature: feature flag + * @features: feature flag(s) * * This checks @dev for driver features, see &drm_driver.driver_features, * &drm_device.driver_features, and the various &enum drm_driver_feature flags. * - * Returns true if the @feature is supported, false otherwise. + * Returns true if all features in the @features mask are supported, false + * otherwise. */ -static inline bool drm_core_check_feature(const struct drm_device *dev, u32 feature) +static inline bool drm_core_check_feature(const struct drm_device *dev, + u32 features) { - return dev->driver->driver_features & dev->driver_features & feature; + u32 supported = dev->driver->driver_features & dev->driver_features; + + return features && (supported & features) == features; } /** -- 2.20.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel