On Wed, Jan 11, 2017 at 09:51:03PM +0000, Chris Wilson wrote: > In preparation for the next patch to convert to using an anonymous union > and leaving the excess bytes in the union uninitialised, we first need > to make sure we do not compare using those uninitialised bytes. We also > want to preserve the compactness of the code, avoiding a second call to > memcmp or introducing a switch, so we take advantage of using the type > as an encoded size (as well as a unique identifier for each type of view). > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gem_gtt.h | 14 +++++++------- > drivers/gpu/drm/i915/i915_vma.h | 15 +++++++++------ > 2 files changed, 16 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h > index 3187a260e6e1..36d85599ffc9 100644 > --- a/drivers/gpu/drm/i915/i915_gem_gtt.h > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h > @@ -145,12 +145,6 @@ typedef uint64_t gen8_ppgtt_pml4e_t; > > struct sg_table; > > -enum i915_ggtt_view_type { > - I915_GGTT_VIEW_NORMAL = 0, > - I915_GGTT_VIEW_ROTATED, > - I915_GGTT_VIEW_PARTIAL, > -}; > - > struct intel_rotation_info { > struct intel_rotation_plane_info { > /* tiles */ > @@ -184,10 +178,16 @@ static inline u64 intel_partial_get_page_offset(const struct intel_partial_info > return pi->offset_size >> INTEL_PARTIAL_SIZE_BITS; > } > > +enum i915_ggtt_view_type { > + I915_GGTT_VIEW_NORMAL = 0, > + I915_GGTT_VIEW_ROTATED = sizeof(struct intel_rotation_info), > + I915_GGTT_VIEW_PARTIAL = sizeof(struct intel_partial_info), One alternative to packing intel_partial_info into a u64 is to use I915_GGTT_VIEW_PARTIAL = 12, /* ideal sizeof(struct intel_partial_info) */ How horrible is that? -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx