linux-next: build failure after merge of the drm-intel tree

Stephen Rothwell sfr at canb.auug.org.au
Wed Apr 2 18:24:35 PDT 2014


Hi all,

After merging the drm-intel tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/gpu/drm/i915/intel_display.c: In function 'intel_alloc_plane_obj':
drivers/gpu/drm/i915/intel_display.c:2089:27: error: 'struct drm_crtc' has no member named 'fb'
   obj->stride = crtc->base.fb->pitches[0];
                           ^
drivers/gpu/drm/i915/intel_display.c:2092:36: error: 'struct drm_crtc' has no member named 'fb'
  mode_cmd.pixel_format = crtc->base.fb->pixel_format;
                                    ^
drivers/gpu/drm/i915/intel_display.c:2093:29: error: 'struct drm_crtc' has no member named 'fb'
  mode_cmd.width = crtc->base.fb->width;
                             ^
drivers/gpu/drm/i915/intel_display.c:2094:30: error: 'struct drm_crtc' has no member named 'fb'
  mode_cmd.height = crtc->base.fb->height;
                              ^
drivers/gpu/drm/i915/intel_display.c:2095:34: error: 'struct drm_crtc' has no member named 'fb'
  mode_cmd.pitches[0] = crtc->base.fb->pitches[0];
                                  ^
In file included from arch/x86/include/asm/percpu.h:44:0,
                 from arch/x86/include/asm/preempt.h:5,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:35,
                 from include/linux/time.h:5,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from drivers/gpu/drm/i915/intel_display.c:28:
drivers/gpu/drm/i915/intel_display.c:2099:65: error: 'struct drm_crtc' has no member named 'fb'
  if (intel_framebuffer_init(dev, to_intel_framebuffer(crtc->base.fb),
                                                                 ^
include/linux/kernel.h:833:49: note: in definition of macro 'container_of'
  const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                 ^
drivers/gpu/drm/i915/intel_display.c:2099:34: note: in expansion of macro 'to_intel_framebuffer'
  if (intel_framebuffer_init(dev, to_intel_framebuffer(crtc->base.fb),
                                  ^
drivers/gpu/drm/i915/intel_display.c: In function 'intel_find_plane_obj':
drivers/gpu/drm/i915/intel_display.c:2124:23: error: 'struct drm_crtc' has no member named 'fb'
  if (!intel_crtc->base.fb)
                       ^
drivers/gpu/drm/i915/intel_display.c:2130:24: error: 'struct drm_crtc' has no member named 'fb'
  kfree(intel_crtc->base.fb);
                        ^
drivers/gpu/drm/i915/intel_display.c:2131:18: error: 'struct drm_crtc' has no member named 'fb'
  intel_crtc->base.fb = NULL;
                  ^
drivers/gpu/drm/i915/intel_display.c:2143:23: error: 'struct drm_crtc' has no member named 'fb'
   if (!i->active || !c->fb)
                       ^
In file included from arch/x86/include/asm/percpu.h:44:0,
                 from arch/x86/include/asm/preempt.h:5,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:35,
                 from include/linux/time.h:5,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from drivers/gpu/drm/i915/intel_display.c:28:
drivers/gpu/drm/i915/intel_display.c:2146:30: error: 'struct drm_crtc' has no member named 'fb'
   fb = to_intel_framebuffer(c->fb);
                              ^
include/linux/kernel.h:833:49: note: in definition of macro 'container_of'
  const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                 ^
drivers/gpu/drm/i915/intel_display.c:2146:8: note: in expansion of macro 'to_intel_framebuffer'
   fb = to_intel_framebuffer(c->fb);
        ^
drivers/gpu/drm/i915/intel_display.c:2148:31: error: 'struct drm_crtc' has no member named 'fb'
    drm_framebuffer_reference(c->fb);
                               ^
drivers/gpu/drm/i915/intel_display.c:2149:20: error: 'struct drm_crtc' has no member named 'fb'
    intel_crtc->base.fb = c->fb;
                    ^
drivers/gpu/drm/i915/intel_display.c:2149:27: error: 'struct drm_crtc' has no member named 'fb'
    intel_crtc->base.fb = c->fb;
                           ^
drivers/gpu/drm/i915/intel_display.c: In function 'i9xx_get_plane_config':
drivers/gpu/drm/i915/intel_display.c:5745:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb = kzalloc(sizeof(struct intel_framebuffer), GFP_KERNEL);
            ^
drivers/gpu/drm/i915/intel_display.c:5746:17: error: 'struct drm_crtc' has no member named 'fb'
  if (!crtc->base.fb) {
                 ^
drivers/gpu/drm/i915/intel_display.c:5759:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->pixel_format = fourcc;
            ^
drivers/gpu/drm/i915/intel_display.c:5760:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->bits_per_pixel =
            ^
drivers/gpu/drm/i915/intel_display.c:5775:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->width = ((val >> 16) & 0xfff) + 1;
            ^
drivers/gpu/drm/i915/intel_display.c:5776:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->height = ((val >> 0) & 0xfff) + 1;
            ^
drivers/gpu/drm/i915/intel_display.c:5779:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->pitches[0] = val & 0xffffff80;
            ^
drivers/gpu/drm/i915/intel_display.c:5781:53: error: 'struct drm_crtc' has no member named 'fb'
  aligned_height = intel_align_height(dev, crtc->base.fb->height,
                                                     ^
In file included from include/linux/cache.h:4:0,
                 from include/linux/time.h:4,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from drivers/gpu/drm/i915/intel_display.c:28:
drivers/gpu/drm/i915/intel_display.c:5784:39: error: 'struct drm_crtc' has no member named 'fb'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                                       ^
include/uapi/linux/kernel.h:10:41: note: in definition of macro '__ALIGN_KERNEL_MASK'
 #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
                                         ^
include/linux/kernel.h:49:22: note: in expansion of macro '__ALIGN_KERNEL'
 #define ALIGN(x, a)  __ALIGN_KERNEL((x), (a))
                      ^
drivers/gpu/drm/i915/intel_display.c:5784:23: note: in expansion of macro 'ALIGN'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                       ^
drivers/gpu/drm/i915/intel_display.c:5784:39: error: 'struct drm_crtc' has no member named 'fb'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                                       ^
include/uapi/linux/kernel.h:10:47: note: in definition of macro '__ALIGN_KERNEL_MASK'
 #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
                                               ^
include/linux/kernel.h:49:22: note: in expansion of macro '__ALIGN_KERNEL'
 #define ALIGN(x, a)  __ALIGN_KERNEL((x), (a))
                      ^
drivers/gpu/drm/i915/intel_display.c:5784:23: note: in expansion of macro 'ALIGN'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                       ^
drivers/gpu/drm/i915/intel_display.c:5784:39: error: 'struct drm_crtc' has no member named 'fb'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                                       ^
include/uapi/linux/kernel.h:10:58: note: in definition of macro '__ALIGN_KERNEL_MASK'
 #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
                                                          ^
include/linux/kernel.h:49:22: note: in expansion of macro '__ALIGN_KERNEL'
 #define ALIGN(x, a)  __ALIGN_KERNEL((x), (a))
                      ^
drivers/gpu/drm/i915/intel_display.c:5784:23: note: in expansion of macro 'ALIGN'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                       ^
In file included from drivers/gpu/drm/i915/intel_display.c:35:0:
drivers/gpu/drm/i915/intel_display.c:5788:32: error: 'struct drm_crtc' has no member named 'fb'
         pipe, plane, crtc->base.fb->width,
                                ^
include/drm/drmP.h:222:41: note: in definition of macro 'DRM_DEBUG_KMS'
    drm_ut_debug_printk(__func__, fmt, ##args); \
                                         ^
drivers/gpu/drm/i915/intel_display.c:5789:19: error: 'struct drm_crtc' has no member named 'fb'
         crtc->base.fb->height,
                   ^
include/drm/drmP.h:222:41: note: in definition of macro 'DRM_DEBUG_KMS'
    drm_ut_debug_printk(__func__, fmt, ##args); \
                                         ^
drivers/gpu/drm/i915/intel_display.c:5790:19: error: 'struct drm_crtc' has no member named 'fb'
         crtc->base.fb->bits_per_pixel, base,
                   ^
include/drm/drmP.h:222:41: note: in definition of macro 'DRM_DEBUG_KMS'
    drm_ut_debug_printk(__func__, fmt, ##args); \
                                         ^
drivers/gpu/drm/i915/intel_display.c:5791:19: error: 'struct drm_crtc' has no member named 'fb'
         crtc->base.fb->pitches[0],
                   ^
include/drm/drmP.h:222:41: note: in definition of macro 'DRM_DEBUG_KMS'
    drm_ut_debug_printk(__func__, fmt, ##args); \
                                         ^
drivers/gpu/drm/i915/intel_display.c: In function 'ironlake_get_plane_config':
drivers/gpu/drm/i915/intel_display.c:6753:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb = kzalloc(sizeof(struct intel_framebuffer), GFP_KERNEL);
            ^
drivers/gpu/drm/i915/intel_display.c:6754:17: error: 'struct drm_crtc' has no member named 'fb'
  if (!crtc->base.fb) {
                 ^
drivers/gpu/drm/i915/intel_display.c:6767:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->pixel_format = fourcc;
            ^
drivers/gpu/drm/i915/intel_display.c:6768:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->bits_per_pixel =
            ^
drivers/gpu/drm/i915/intel_display.c:6783:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->width = ((val >> 16) & 0xfff) + 1;
            ^
drivers/gpu/drm/i915/intel_display.c:6784:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->height = ((val >> 0) & 0xfff) + 1;
            ^
drivers/gpu/drm/i915/intel_display.c:6787:12: error: 'struct drm_crtc' has no member named 'fb'
  crtc->base.fb->pitches[0] = val & 0xffffff80;
            ^
drivers/gpu/drm/i915/intel_display.c:6789:53: error: 'struct drm_crtc' has no member named 'fb'
  aligned_height = intel_align_height(dev, crtc->base.fb->height,
                                                     ^
In file included from include/linux/cache.h:4:0,
                 from include/linux/time.h:4,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from drivers/gpu/drm/i915/intel_display.c:28:
drivers/gpu/drm/i915/intel_display.c:6792:39: error: 'struct drm_crtc' has no member named 'fb'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                                       ^
include/uapi/linux/kernel.h:10:41: note: in definition of macro '__ALIGN_KERNEL_MASK'
 #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
                                         ^
include/linux/kernel.h:49:22: note: in expansion of macro '__ALIGN_KERNEL'
 #define ALIGN(x, a)  __ALIGN_KERNEL((x), (a))
                      ^
drivers/gpu/drm/i915/intel_display.c:6792:23: note: in expansion of macro 'ALIGN'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                       ^
drivers/gpu/drm/i915/intel_display.c:6792:39: error: 'struct drm_crtc' has no member named 'fb'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                                       ^
include/uapi/linux/kernel.h:10:47: note: in definition of macro '__ALIGN_KERNEL_MASK'
 #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
                                               ^
include/linux/kernel.h:49:22: note: in expansion of macro '__ALIGN_KERNEL'
 #define ALIGN(x, a)  __ALIGN_KERNEL((x), (a))
                      ^
drivers/gpu/drm/i915/intel_display.c:6792:23: note: in expansion of macro 'ALIGN'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                       ^
drivers/gpu/drm/i915/intel_display.c:6792:39: error: 'struct drm_crtc' has no member named 'fb'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                                       ^
include/uapi/linux/kernel.h:10:58: note: in definition of macro '__ALIGN_KERNEL_MASK'
 #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
                                                          ^
include/linux/kernel.h:49:22: note: in expansion of macro '__ALIGN_KERNEL'
 #define ALIGN(x, a)  __ALIGN_KERNEL((x), (a))
                      ^
drivers/gpu/drm/i915/intel_display.c:6792:23: note: in expansion of macro 'ALIGN'
  plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
                       ^
In file included from drivers/gpu/drm/i915/intel_display.c:35:0:
drivers/gpu/drm/i915/intel_display.c:6796:32: error: 'struct drm_crtc' has no member named 'fb'
         pipe, plane, crtc->base.fb->width,
                                ^
include/drm/drmP.h:222:41: note: in definition of macro 'DRM_DEBUG_KMS'
    drm_ut_debug_printk(__func__, fmt, ##args); \
                                         ^
drivers/gpu/drm/i915/intel_display.c:6797:19: error: 'struct drm_crtc' has no member named 'fb'
         crtc->base.fb->height,
                   ^
include/drm/drmP.h:222:41: note: in definition of macro 'DRM_DEBUG_KMS'
    drm_ut_debug_printk(__func__, fmt, ##args); \
                                         ^
drivers/gpu/drm/i915/intel_display.c:6798:19: error: 'struct drm_crtc' has no member named 'fb'
         crtc->base.fb->bits_per_pixel, base,
                   ^
include/drm/drmP.h:222:41: note: in definition of macro 'DRM_DEBUG_KMS'
    drm_ut_debug_printk(__func__, fmt, ##args); \
                                         ^
drivers/gpu/drm/i915/intel_display.c:6799:19: error: 'struct drm_crtc' has no member named 'fb'
         crtc->base.fb->pitches[0],
                   ^
include/drm/drmP.h:222:41: note: in definition of macro 'DRM_DEBUG_KMS'
    drm_ut_debug_printk(__func__, fmt, ##args); \
                                         ^
drivers/gpu/drm/i915/intel_display.c: In function 'intel_modeset_gem_init':
drivers/gpu/drm/i915/intel_display.c:11783:9: error: 'struct drm_crtc' has no member named 'fb'
   if (!c->fb)
         ^
In file included from arch/x86/include/asm/percpu.h:44:0,
                 from arch/x86/include/asm/preempt.h:5,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:35,
                 from include/linux/time.h:5,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from drivers/gpu/drm/i915/intel_display.c:28:
drivers/gpu/drm/i915/intel_display.c:11786:30: error: 'struct drm_crtc' has no member named 'fb'
   fb = to_intel_framebuffer(c->fb);
                              ^
include/linux/kernel.h:833:49: note: in definition of macro 'container_of'
  const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                 ^
drivers/gpu/drm/i915/intel_display.c:11786:8: note: in expansion of macro 'to_intel_framebuffer'
   fb = to_intel_framebuffer(c->fb);
        ^
drivers/gpu/drm/i915/intel_display.c:11790:33: error: 'struct drm_crtc' has no member named 'fb'
    drm_framebuffer_unreference(c->fb);
                                 ^
drivers/gpu/drm/i915/intel_display.c:11791:5: error: 'struct drm_crtc' has no member named 'fb'
    c->fb = NULL;
     ^
drivers/gpu/drm/i915/intel_fbdev.c: In function 'intel_fbdev_init_bios':
drivers/gpu/drm/i915/intel_fbdev.c:484:35: error: 'struct drm_crtc' has no member named 'fb'
   if (!intel_crtc->active || !crtc->fb) {
                                   ^
In file included from arch/x86/include/asm/percpu.h:44:0,
                 from arch/x86/include/asm/preempt.h:5,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:35,
                 from include/linux/time.h:5,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from drivers/gpu/drm/i915/intel_fbdev.c:27:
drivers/gpu/drm/i915/intel_fbdev.c:494:34: error: 'struct drm_crtc' has no member named 'fb'
    fb = to_intel_framebuffer(crtc->fb);
                                  ^
include/linux/kernel.h:833:49: note: in definition of macro 'container_of'
  const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                 ^
drivers/gpu/drm/i915/intel_fbdev.c:494:9: note: in expansion of macro 'to_intel_framebuffer'
    fb = to_intel_framebuffer(crtc->fb);
         ^
In file included from arch/x86/include/asm/bug.h:38:0,
                 from include/linux/bug.h:4,
                 from include/linux/thread_info.h:11,
                 from arch/x86/include/asm/preempt.h:6,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:35,
                 from include/linux/time.h:5,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from drivers/gpu/drm/i915/intel_fbdev.c:27:
drivers/gpu/drm/i915/intel_fbdev.c:563:13: error: 'struct drm_crtc' has no member named 'fb'
   WARN(!crtc->fb,
             ^
include/asm-generic/bug.h:95:25: note: in definition of macro 'WARN'
  int __ret_warn_on = !!(condition);    \
                         ^

Caused by commit f4510a2752b7 ("drm: Replace crtc fb with primary plane
fb (v3)") from the drm tree interacting with various commits in the
drm-intel tree.

I applied this merge fix patch:

From 8b74d715803f3c8e0e76b907d8877e1355d29a31 Mon Sep 17 00:00:00 2001
From: Stephen Rothwell <sfr at canb.auug.org.au>
Date: Thu, 3 Apr 2014 12:18:47 +1100
Subject: [PATCH] drm: fix for "Replace crtc fb with primary plane fb"

Signed-off-by: Stephen Rothwell <sfr at canb.auug.org.au>
---
 drivers/gpu/drm/i915/intel_display.c | 90 ++++++++++++++++++------------------
 drivers/gpu/drm/i915/intel_fbdev.c   |  6 +--
 2 files changed, 48 insertions(+), 48 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 9eb4dda2d81d..dae976f51d83 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -741,7 +741,7 @@ bool intel_crtc_active(struct drm_crtc *crtc)
 	 * We can ditch the adjusted_mode.crtc_clock check as soon
 	 * as Haswell has gained clock readout/fastboot support.
 	 *
-	 * We can ditch the crtc->fb check as soon as we can
+	 * We can ditch the crtc->primary->fb check as soon as we can
 	 * properly reconstruct framebuffers.
 	 */
 	return intel_crtc->active && crtc->primary->fb &&
@@ -2086,17 +2086,17 @@ static bool intel_alloc_plane_obj(struct intel_crtc *crtc,
 
 	if (plane_config->tiled) {
 		obj->tiling_mode = I915_TILING_X;
-		obj->stride = crtc->base.fb->pitches[0];
+		obj->stride = crtc->base.primary->fb->pitches[0];
 	}
 
-	mode_cmd.pixel_format = crtc->base.fb->pixel_format;
-	mode_cmd.width = crtc->base.fb->width;
-	mode_cmd.height = crtc->base.fb->height;
-	mode_cmd.pitches[0] = crtc->base.fb->pitches[0];
+	mode_cmd.pixel_format = crtc->base.primary->fb->pixel_format;
+	mode_cmd.width = crtc->base.primary->fb->width;
+	mode_cmd.height = crtc->base.primary->fb->height;
+	mode_cmd.pitches[0] = crtc->base.primary->fb->pitches[0];
 
 	mutex_lock(&dev->struct_mutex);
 
-	if (intel_framebuffer_init(dev, to_intel_framebuffer(crtc->base.fb),
+	if (intel_framebuffer_init(dev, to_intel_framebuffer(crtc->base.primary->fb),
 				   &mode_cmd, obj)) {
 		DRM_DEBUG_KMS("intel fb init failed\n");
 		goto out_unref_obj;
@@ -2121,14 +2121,14 @@ static void intel_find_plane_obj(struct intel_crtc *intel_crtc,
 	struct intel_crtc *i;
 	struct intel_framebuffer *fb;
 
-	if (!intel_crtc->base.fb)
+	if (!intel_crtc->base.primary->fb)
 		return;
 
 	if (intel_alloc_plane_obj(intel_crtc, plane_config))
 		return;
 
-	kfree(intel_crtc->base.fb);
-	intel_crtc->base.fb = NULL;
+	kfree(intel_crtc->base.primary->fb);
+	intel_crtc->base.primary->fb = NULL;
 
 	/*
 	 * Failed to alloc the obj, check to see if we should share
@@ -2140,13 +2140,13 @@ static void intel_find_plane_obj(struct intel_crtc *intel_crtc,
 		if (c == &intel_crtc->base)
 			continue;
 
-		if (!i->active || !c->fb)
+		if (!i->active || !c->primary->fb)
 			continue;
 
-		fb = to_intel_framebuffer(c->fb);
+		fb = to_intel_framebuffer(c->primary->fb);
 		if (i915_gem_obj_ggtt_offset(fb->obj) == plane_config->base) {
-			drm_framebuffer_reference(c->fb);
-			intel_crtc->base.fb = c->fb;
+			drm_framebuffer_reference(c->primary->fb);
+			intel_crtc->base.primary->fb = c->primary->fb;
 			break;
 		}
 	}
@@ -2396,7 +2396,7 @@ void intel_display_handle_reset(struct drm_device *dev)
 		/*
 		 * FIXME: Once we have proper support for primary planes (and
 		 * disabling them without disabling the entire crtc) allow again
-		 * a NULL crtc->fb.
+		 * a NULL crtc->primary->fb.
 		 */
 		if (intel_crtc->active && crtc->primary->fb)
 			dev_priv->display.update_primary_plane(crtc,
@@ -5742,8 +5742,8 @@ static void i9xx_get_plane_config(struct intel_crtc *crtc,
 	int fourcc, pixel_format;
 	int aligned_height;
 
-	crtc->base.fb = kzalloc(sizeof(struct intel_framebuffer), GFP_KERNEL);
-	if (!crtc->base.fb) {
+	crtc->base.primary->fb = kzalloc(sizeof(struct intel_framebuffer), GFP_KERNEL);
+	if (!crtc->base.primary->fb) {
 		DRM_DEBUG_KMS("failed to alloc fb\n");
 		return;
 	}
@@ -5756,8 +5756,8 @@ static void i9xx_get_plane_config(struct intel_crtc *crtc,
 
 	pixel_format = val & DISPPLANE_PIXFORMAT_MASK;
 	fourcc = intel_format_to_fourcc(pixel_format);
-	crtc->base.fb->pixel_format = fourcc;
-	crtc->base.fb->bits_per_pixel =
+	crtc->base.primary->fb->pixel_format = fourcc;
+	crtc->base.primary->fb->bits_per_pixel =
 		drm_format_plane_cpp(fourcc, 0) * 8;
 
 	if (INTEL_INFO(dev)->gen >= 4) {
@@ -5772,23 +5772,23 @@ static void i9xx_get_plane_config(struct intel_crtc *crtc,
 	plane_config->base = base;
 
 	val = I915_READ(PIPESRC(pipe));
-	crtc->base.fb->width = ((val >> 16) & 0xfff) + 1;
-	crtc->base.fb->height = ((val >> 0) & 0xfff) + 1;
+	crtc->base.primary->fb->width = ((val >> 16) & 0xfff) + 1;
+	crtc->base.primary->fb->height = ((val >> 0) & 0xfff) + 1;
 
 	val = I915_READ(DSPSTRIDE(pipe));
-	crtc->base.fb->pitches[0] = val & 0xffffff80;
+	crtc->base.primary->fb->pitches[0] = val & 0xffffff80;
 
-	aligned_height = intel_align_height(dev, crtc->base.fb->height,
+	aligned_height = intel_align_height(dev, crtc->base.primary->fb->height,
 					    plane_config->tiled);
 
-	plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
+	plane_config->size = ALIGN(crtc->base.primary->fb->pitches[0] *
 				   aligned_height, PAGE_SIZE);
 
 	DRM_DEBUG_KMS("pipe/plane %d/%d with fb: size=%dx%d@%d, offset=%x, pitch %d, size 0x%x\n",
-		      pipe, plane, crtc->base.fb->width,
-		      crtc->base.fb->height,
-		      crtc->base.fb->bits_per_pixel, base,
-		      crtc->base.fb->pitches[0],
+		      pipe, plane, crtc->base.primary->fb->width,
+		      crtc->base.primary->fb->height,
+		      crtc->base.primary->fb->bits_per_pixel, base,
+		      crtc->base.primary->fb->pitches[0],
 		      plane_config->size);
 
 }
@@ -6750,8 +6750,8 @@ static void ironlake_get_plane_config(struct intel_crtc *crtc,
 	int fourcc, pixel_format;
 	int aligned_height;
 
-	crtc->base.fb = kzalloc(sizeof(struct intel_framebuffer), GFP_KERNEL);
-	if (!crtc->base.fb) {
+	crtc->base.primary->fb = kzalloc(sizeof(struct intel_framebuffer), GFP_KERNEL);
+	if (!crtc->base.primary->fb) {
 		DRM_DEBUG_KMS("failed to alloc fb\n");
 		return;
 	}
@@ -6764,8 +6764,8 @@ static void ironlake_get_plane_config(struct intel_crtc *crtc,
 
 	pixel_format = val & DISPPLANE_PIXFORMAT_MASK;
 	fourcc = intel_format_to_fourcc(pixel_format);
-	crtc->base.fb->pixel_format = fourcc;
-	crtc->base.fb->bits_per_pixel =
+	crtc->base.primary->fb->pixel_format = fourcc;
+	crtc->base.primary->fb->bits_per_pixel =
 		drm_format_plane_cpp(fourcc, 0) * 8;
 
 	base = I915_READ(DSPSURF(plane)) & 0xfffff000;
@@ -6780,23 +6780,23 @@ static void ironlake_get_plane_config(struct intel_crtc *crtc,
 	plane_config->base = base;
 
 	val = I915_READ(PIPESRC(pipe));
-	crtc->base.fb->width = ((val >> 16) & 0xfff) + 1;
-	crtc->base.fb->height = ((val >> 0) & 0xfff) + 1;
+	crtc->base.primary->fb->width = ((val >> 16) & 0xfff) + 1;
+	crtc->base.primary->fb->height = ((val >> 0) & 0xfff) + 1;
 
 	val = I915_READ(DSPSTRIDE(pipe));
-	crtc->base.fb->pitches[0] = val & 0xffffff80;
+	crtc->base.primary->fb->pitches[0] = val & 0xffffff80;
 
-	aligned_height = intel_align_height(dev, crtc->base.fb->height,
+	aligned_height = intel_align_height(dev, crtc->base.primary->fb->height,
 					    plane_config->tiled);
 
-	plane_config->size = ALIGN(crtc->base.fb->pitches[0] *
+	plane_config->size = ALIGN(crtc->base.primary->fb->pitches[0] *
 				   aligned_height, PAGE_SIZE);
 
 	DRM_DEBUG_KMS("pipe/plane %d/%d with fb: size=%dx%d@%d, offset=%x, pitch %d, size 0x%x\n",
-		      pipe, plane, crtc->base.fb->width,
-		      crtc->base.fb->height,
-		      crtc->base.fb->bits_per_pixel, base,
-		      crtc->base.fb->pitches[0],
+		      pipe, plane, crtc->base.primary->fb->width,
+		      crtc->base.primary->fb->height,
+		      crtc->base.primary->fb->bits_per_pixel, base,
+		      crtc->base.primary->fb->pitches[0],
 		      plane_config->size);
 }
 
@@ -11780,15 +11780,15 @@ void intel_modeset_gem_init(struct drm_device *dev)
 	 */
 	mutex_lock(&dev->struct_mutex);
 	list_for_each_entry(c, &dev->mode_config.crtc_list, head) {
-		if (!c->fb)
+		if (!c->primary->fb)
 			continue;
 
-		fb = to_intel_framebuffer(c->fb);
+		fb = to_intel_framebuffer(c->primary->fb);
 		if (intel_pin_and_fence_fb_obj(dev, fb->obj, NULL)) {
 			DRM_ERROR("failed to pin boot fb on pipe %d\n",
 				  to_intel_crtc(c)->pipe);
-			drm_framebuffer_unreference(c->fb);
-			c->fb = NULL;
+			drm_framebuffer_unreference(c->primary->fb);
+			c->primary->fb = NULL;
 		}
 	}
 	mutex_unlock(&dev->struct_mutex);
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index d6d78c86c232..2b1d42dbfe13 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -481,7 +481,7 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
 	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
 		intel_crtc = to_intel_crtc(crtc);
 
-		if (!intel_crtc->active || !crtc->fb) {
+		if (!intel_crtc->active || !crtc->primary->fb) {
 			DRM_DEBUG_KMS("pipe %c not active or no fb, skipping\n",
 				      pipe_name(intel_crtc->pipe));
 			continue;
@@ -491,7 +491,7 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
 			DRM_DEBUG_KMS("found possible fb from plane %c\n",
 				      pipe_name(intel_crtc->pipe));
 			plane_config = &intel_crtc->plane_config;
-			fb = to_intel_framebuffer(crtc->fb);
+			fb = to_intel_framebuffer(crtc->primary->fb);
 			max_size = plane_config->size;
 		}
 	}
@@ -560,7 +560,7 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
 		if (!intel_crtc->active)
 			continue;
 
-		WARN(!crtc->fb,
+		WARN(!crtc->primary->fb,
 		     "re-used BIOS config but lost an fb on crtc %d\n",
 		     crtc->base.id);
 	}
-- 
1.9.1

-- 
Cheers,
Stephen Rothwell                    sfr at canb.auug.org.au
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140403/410895a3/attachment-0001.sig>


More information about the dri-devel mailing list