• Imre Deak's avatar
    drm/i915/vlv: Use power well CTL IDX instead of ID · d13dd05a
    Imre Deak authored
    Atm, we determine the control/status flag offsets within the PUNIT
    control/status registers based on the power well's ID. Since the power
    well ID enum is global across all platforms, the associated macros to
    get the flag offsets involves some magic. This makes checking the
    register/bit definitions against the specification more difficult than
    necessary. Also the values in the power well ID enum must stay fixed,
    making code maintenance of the enum cumbersome.
    
    To solve the above define the control/status flag indices right after
    the corresponding registers and use these to derive the control/status
    flag values by storing the indices in the i915_power_well_desc struct.
    
    Initializing anonymous union fields require the preceding field in the
    struct to be explicitly initialized - even when using named
    initializers - and the initialization to be done right before the union
    initialization, hence the reordering of the .id fields.
    
    v2:
    - Clarify commit log message about anonymous union initializers. (Paulo)
    
    Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
    Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180806095843.13294-6-imre.deak@intel.com
    d13dd05a
i915_reg.h 425 KB