]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/gpu/drm/i915/intel_color.c
Merge airlied/drm-next into drm-misc-next
[linux.git] / drivers / gpu / drm / i915 / intel_color.c
index 89ab0f70aa2203827933313c0c16d1a828e7b79a..c6a7beabd58d1f636af7f3fb53a16214b4a7e6a1 100644 (file)
@@ -39,7 +39,7 @@
 #define CTM_COEFF_NEGATIVE(coeff)      (((coeff) & CTM_COEFF_SIGN) != 0)
 #define CTM_COEFF_ABS(coeff)           ((coeff) & (CTM_COEFF_SIGN - 1))
 
-#define LEGACY_LUT_LENGTH              (sizeof(struct drm_color_lut) * 256)
+#define LEGACY_LUT_LENGTH              256
 
 /* Post offset values for RGB->YCBCR conversion */
 #define POSTOFF_RGB_TO_YUV_HI 0x800
@@ -79,7 +79,7 @@ static bool crtc_state_is_legacy_gamma(struct drm_crtc_state *state)
        return !state->degamma_lut &&
                !state->ctm &&
                state->gamma_lut &&
-               state->gamma_lut->length == LEGACY_LUT_LENGTH;
+               drm_color_lut_size(state->gamma_lut) == LEGACY_LUT_LENGTH;
 }
 
 /*
@@ -153,8 +153,7 @@ static void ilk_load_csc_matrix(struct drm_crtc_state *crtc_state)
                ilk_load_ycbcr_conversion_matrix(intel_crtc);
                return;
        } else if (crtc_state->ctm) {
-               struct drm_color_ctm *ctm =
-                       (struct drm_color_ctm *)crtc_state->ctm->data;
+               struct drm_color_ctm *ctm = crtc_state->ctm->data;
                const u64 *input;
                u64 temp[9];
 
@@ -262,8 +261,7 @@ static void cherryview_load_csc_matrix(struct drm_crtc_state *state)
        uint32_t mode;
 
        if (state->ctm) {
-               struct drm_color_ctm *ctm =
-                       (struct drm_color_ctm *) state->ctm->data;
+               struct drm_color_ctm *ctm = state->ctm->data;
                uint16_t coeffs[9] = { 0, };
                int i;
 
@@ -330,7 +328,7 @@ static void i9xx_load_luts_internal(struct drm_crtc *crtc,
        }
 
        if (blob) {
-               struct drm_color_lut *lut = (struct drm_color_lut *) blob->data;
+               struct drm_color_lut *lut = blob->data;
                for (i = 0; i < 256; i++) {
                        uint32_t word =
                                (drm_color_lut_extract(lut[i].red, 8) << 16) |
@@ -400,8 +398,7 @@ static void bdw_load_degamma_lut(struct drm_crtc_state *state)
                   PAL_PREC_SPLIT_MODE | PAL_PREC_AUTO_INCREMENT);
 
        if (state->degamma_lut) {
-               struct drm_color_lut *lut =
-                       (struct drm_color_lut *) state->degamma_lut->data;
+               struct drm_color_lut *lut = state->degamma_lut->data;
 
                for (i = 0; i < lut_size; i++) {
                        uint32_t word =
@@ -435,8 +432,7 @@ static void bdw_load_gamma_lut(struct drm_crtc_state *state, u32 offset)
                   offset);
 
        if (state->gamma_lut) {
-               struct drm_color_lut *lut =
-                       (struct drm_color_lut *) state->gamma_lut->data;
+               struct drm_color_lut *lut = state->gamma_lut->data;
 
                for (i = 0; i < lut_size; i++) {
                        uint32_t word =
@@ -568,7 +564,7 @@ static void cherryview_load_luts(struct drm_crtc_state *state)
        }
 
        if (state->degamma_lut) {
-               lut = (struct drm_color_lut *) state->degamma_lut->data;
+               lut = state->degamma_lut->data;
                lut_size = INTEL_INFO(dev_priv)->color.degamma_lut_size;
                for (i = 0; i < lut_size; i++) {
                        /* Write LUT in U0.14 format. */
@@ -583,7 +579,7 @@ static void cherryview_load_luts(struct drm_crtc_state *state)
        }
 
        if (state->gamma_lut) {
-               lut = (struct drm_color_lut *) state->gamma_lut->data;
+               lut = state->gamma_lut->data;
                lut_size = INTEL_INFO(dev_priv)->color.gamma_lut_size;
                for (i = 0; i < lut_size; i++) {
                        /* Write LUT in U0.10 format. */
@@ -623,19 +619,17 @@ int intel_color_check(struct drm_crtc *crtc,
        struct drm_i915_private *dev_priv = to_i915(crtc->dev);
        size_t gamma_length, degamma_length;
 
-       degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size *
-               sizeof(struct drm_color_lut);
-       gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size *
-               sizeof(struct drm_color_lut);
+       degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size;
+       gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size;
 
        /*
         * We allow both degamma & gamma luts at the right size or
         * NULL.
         */
        if ((!crtc_state->degamma_lut ||
-            crtc_state->degamma_lut->length == degamma_length) &&
+            drm_color_lut_size(crtc_state->degamma_lut) == degamma_length) &&
            (!crtc_state->gamma_lut ||
-            crtc_state->gamma_lut->length == gamma_length))
+            drm_color_lut_size(crtc_state->gamma_lut) == gamma_length))
                return 0;
 
        /*