• Jani Nikula's avatar
    drm/i915: deprecate _SHIFT in favor of _MASK passed to accessors · 78b36b10
    Jani Nikula authored
    bitfield.h defines FIELD_GET() and FIELD_PREP() macros to access
    bitfields using the mask alone, with no need for separate shift. Indeed,
    the shift is redundant.
    
    We define REG_FIELD_GET() and REG_FIELD_PREP() wrappers for the above,
    in part to force u32 and for consistency with REG_BIT() and
    REG_GENMASK(), but also as we'll need to redefine REG_FIELD_PREP() in
    follow-up work to make it produce integer constant expressions.
    
    For the most part, REG_FIELD_GET() is shorter than masking followed by
    shift, and arguably has more clarity.
    
    REG_FIELD_PREP() can get more verbose than simply shifting in place, but
    it does provide masking to ensure we don't overflow the mask, something
    we usually don't bother with currently.
    
    Convert power sequencer registers as an example.
    
    v3:
    - temp variable removal (Chris)
    - rebase
    
    v2:
    - Add the REG_FIELD_GET() and REG_FIELD_PREP() wrappers to use them
      consistently from the start.
    
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Acked-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/ab68f52e55e3961bde9458c0d85a12d98ef471df.1552657998.git.jani.nikula@intel.com
    78b36b10
intel_dp.c 207 KB