/* FIXME pre-g4x don't work like this */
        if (visible) {
-               crtc_state->base.plane_mask |= BIT(drm_plane_index(&plane->base));
+               crtc_state->base.plane_mask |= drm_plane_mask(&plane->base);
                crtc_state->active_planes |= BIT(plane->id);
        } else {
-               crtc_state->base.plane_mask &= ~BIT(drm_plane_index(&plane->base));
+               crtc_state->base.plane_mask &= ~drm_plane_mask(&plane->base);
                crtc_state->active_planes &= ~BIT(plane->id);
        }
 
                         struct drm_crtc_state *new_state)
 {
        struct intel_dpll_hw_state dpll_hw_state;
-       unsigned crtc_mask;
+       unsigned int crtc_mask;
        bool active;
 
        memset(&dpll_hw_state, 0, sizeof(dpll_hw_state));
                return;
        }
 
-       crtc_mask = 1 << drm_crtc_index(crtc);
+       crtc_mask = drm_crtc_mask(crtc);
 
        if (new_state->active)
                I915_STATE_WARN(!(pll->active_mask & crtc_mask),
 
        if (old_state->shared_dpll &&
            old_state->shared_dpll != new_state->shared_dpll) {
-               unsigned crtc_mask = 1 << drm_crtc_index(crtc);
+               unsigned int crtc_mask = drm_crtc_mask(crtc);
                struct intel_shared_dpll *pll = old_state->shared_dpll;
 
                I915_STATE_WARN(pll->active_mask & crtc_mask,
                                 * rely on the connector_mask being accurate.
                                 */
                                encoder->base.crtc->state->connector_mask |=
-                                       1 << drm_connector_index(&connector->base);
+                                       drm_connector_mask(&connector->base);
                                encoder->base.crtc->state->encoder_mask |=
-                                       1 << drm_encoder_index(&encoder->base);
+                                       drm_encoder_mask(&encoder->base);
                        }
 
                } else {
 
                            &(dev)->mode_config.plane_list,             \
                            base.head)                                  \
                for_each_if((plane_mask) &                              \
-                           BIT(drm_plane_index(&intel_plane->base)))
+                           drm_plane_mask(&intel_plane->base)))
 
 #define for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane)     \
        list_for_each_entry(intel_plane,                                \
        list_for_each_entry(intel_crtc,                                 \
                            &(dev)->mode_config.crtc_list,              \
                            base.head)                                  \
-               for_each_if((crtc_mask) & BIT(drm_crtc_index(&intel_crtc->base)))
+               for_each_if((crtc_mask) & drm_crtc_mask(&intel_crtc->base))
 
 #define for_each_intel_encoder(dev, intel_encoder)             \
        list_for_each_entry(intel_encoder,                      \
 
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = to_i915(dev);
        struct intel_shared_dpll *pll = crtc->config->shared_dpll;
-       unsigned crtc_mask = 1 << drm_crtc_index(&crtc->base);
-       unsigned old_mask;
+       unsigned int crtc_mask = drm_crtc_mask(&crtc->base);
+       unsigned int old_mask;
 
        if (WARN_ON(pll == NULL))
                return;
 {
        struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
        struct intel_shared_dpll *pll = crtc->config->shared_dpll;
-       unsigned crtc_mask = 1 << drm_crtc_index(&crtc->base);
+       unsigned int crtc_mask = drm_crtc_mask(&crtc->base);
 
        /* PCH only available on ILK+ */
        if (INTEL_GEN(dev_priv) < 5)