All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] drm: add drm_core_check_all_features() to check for a mask of features
@ 2020-01-22 15:50 ` Jani Nikula
  0 siblings, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2020-01-22 15:50 UTC (permalink / raw)
  To: dri-devel; +Cc: Jani Nikula, intel-gfx, Thomas Zimmermann

Add new drm_core_check_all_features() function to check for a mask of
features. All features in the mask are required.

Redefine existing drm_core_check_feature() in terms of this function,
using the drm_driver_feature enum for the parameter.

v3:
- add drm_core_check_all_features() (Thomas)

v2:
- fix kernel-doc (Ville)
- add an extra variable for clarity (Ville)

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 include/drm/drm_drv.h | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index cf13470810a5..23b636691fb4 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -823,6 +823,25 @@ static inline bool drm_dev_is_unplugged(struct drm_device *dev)
 	return true;
 }
 
+/**
+ * drm_core_check_all_features - check driver feature flags mask
+ * @dev: DRM device to check
+ * @features: feature flag(s) mask
+ *
+ * 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 all features in the @features mask are supported, false
+ * otherwise.
+ */
+static inline bool drm_core_check_all_features(const struct drm_device *dev,
+					       u32 features)
+{
+	u32 supported = dev->driver->driver_features & dev->driver_features;
+
+	return features && (supported & features) == features;
+}
+
 /**
  * drm_core_check_feature - check driver feature flags
  * @dev: DRM device to check
@@ -833,9 +852,10 @@ static inline bool drm_dev_is_unplugged(struct drm_device *dev)
  *
  * Returns true if the @feature is 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,
+					  enum drm_driver_feature feature)
 {
-	return dev->driver->driver_features & dev->driver_features & feature;
+	return drm_core_check_all_features(dev, feature);
 }
 
 /**
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-01-23 13:01 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-22 15:50 [PATCH v3 1/2] drm: add drm_core_check_all_features() to check for a mask of features Jani Nikula
2020-01-22 15:50 ` [Intel-gfx] " Jani Nikula
2020-01-22 15:50 ` [PATCH v3 2/2] drm/debugfs: also take per device driver features into account Jani Nikula
2020-01-22 15:50   ` [Intel-gfx] " Jani Nikula
2020-01-22 16:11   ` Thomas Zimmermann
2020-01-22 16:11     ` [Intel-gfx] " Thomas Zimmermann
2020-01-23 13:01     ` Jani Nikula
2020-01-23 13:01       ` Jani Nikula
2020-01-22 16:11 ` [PATCH v3 1/2] drm: add drm_core_check_all_features() to check for a mask of features Thomas Zimmermann
2020-01-22 16:11   ` [Intel-gfx] " Thomas Zimmermann
2020-01-22 22:04 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [v3,1/2] " Patchwork
2020-01-23 11:45 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [v3,1/2] drm: add drm_core_check_all_features() to check for a mask of features (rev2) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.