drm/file: Uncompact the feature flags
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 2 Nov 2018 13:25:42 +0000 (14:25 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 6 Nov 2018 17:23:31 +0000 (18:23 +0100)
This essentially undoes

commit 39868bd7668bd47308b1dfd97c212757caee764f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 29 08:55:58 2013 +0000

    drm: Compact booleans within struct drm_file

We do lockless access to these flags everywhere, and it's kinda not a
great idea to mix lockless and bitfields. Aside from that gcc isn't
generating great code for these.

If this ever becomes an issue size-wise, I think we need atomic_t here
and atomic bitflag ops.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: David Herrmann <dh.herrmann@gmail.com>
Cc: Dave Airlie <airlied@redhat.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181102132543.16486-2-daniel.vetter@ffwll.ch
include/drm/drm_file.h

index 26485acc51d7944697ce96f0988c2803f4d8c581..84ac79219e4ce64ccf062931b5e323b5cbb789e7 100644 (file)
@@ -164,14 +164,14 @@ struct drm_file {
         * See also the :ref:`section on primary nodes and authentication
         * <drm_primary_node>`.
         */
-       unsigned authenticated :1;
+       bool authenticated;
 
        /**
         * @stereo_allowed:
         *
         * True when the client has asked us to expose stereo 3D mode flags.
         */
-       unsigned stereo_allowed :1;
+       bool stereo_allowed;
 
        /**
         * @universal_planes:
@@ -179,10 +179,10 @@ struct drm_file {
         * True if client understands CRTC primary planes and cursor planes
         * in the plane list. Automatically set when @atomic is set.
         */
-       unsigned universal_planes:1;
+       bool universal_planes;
 
        /** @atomic: True if client understands atomic properties. */
-       unsigned atomic:1;
+       bool atomic;
 
        /**
         * @aspect_ratio_allowed:
@@ -190,14 +190,14 @@ struct drm_file {
         * True, if client can handle picture aspect ratios, and has requested
         * to pass this information along with the mode.
         */
-       unsigned aspect_ratio_allowed:1;
+       bool aspect_ratio_allowed;
 
        /**
         * @writeback_connectors:
         *
         * True if client understands writeback connectors
         */
-       unsigned writeback_connectors:1;
+       bool writeback_connectors;
 
        /**
         * @is_master:
@@ -208,7 +208,7 @@ struct drm_file {
         * See also the :ref:`section on primary nodes and authentication
         * <drm_primary_node>`.
         */
-       unsigned is_master:1;
+       bool is_master;
 
        /**
         * @master: