diff options
author | Jesse Barnes <jbarnes@jbarnes-mobile.amr.corp.intel.com> | 2007-09-24 14:41:46 -0700 |
---|---|---|
committer | Jesse Barnes <jbarnes@jbarnes-mobile.amr.corp.intel.com> | 2007-09-24 14:41:46 -0700 |
commit | 5cc3083179b19678456905a9122a3d0f04e6f623 (patch) | |
tree | 9b776bdd317aa5af68b7cbf8fabde12e20eccf8a /linux-core/intel_fb.c | |
parent | 2a2d02bbc500140a861380df52ce66abcac39312 (diff) | |
parent | 54df1b9ff3b79097fedd8ed7bf54aca30a660cbd (diff) |
Merge branch 'master' into modesetting-101 - TTM & typedef removal
Conflicts:
linux-core/drmP.h
linux-core/drm_bo.c
linux-core/drm_drv.c
linux-core/drm_objects.h
shared-core/drm.h
shared-core/i915_dma.c
shared-core/i915_drv.h
shared-core/i915_irq.c
Mostly removing typedefs that snuck into the modesetting code and
updating to the latest TTM APIs. As of today, the i915 driver builds,
but there are likely to be problems, so debugging and bugfixes will
come next.
Diffstat (limited to 'linux-core/intel_fb.c')
-rw-r--r-- | linux-core/intel_fb.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/linux-core/intel_fb.c b/linux-core/intel_fb.c index 3bfbcda3..048295ab 100644 --- a/linux-core/intel_fb.c +++ b/linux-core/intel_fb.c @@ -446,7 +446,7 @@ int intelfb_probe(struct drm_device *dev, struct drm_crtc *crtc) struct device *device = &dev->pdev->dev; struct drm_framebuffer *fb; struct drm_display_mode *mode = crtc->desired_mode; - drm_buffer_object_t *fbo = NULL; + struct drm_buffer_object *fbo = NULL; int ret; info = framebuffer_alloc(sizeof(struct intelfb_par), device); @@ -468,13 +468,11 @@ int intelfb_probe(struct drm_device *dev, struct drm_crtc *crtc) fb->bits_per_pixel = 32; fb->pitch = fb->width * ((fb->bits_per_pixel + 1) / 8); fb->depth = 24; - ret = drm_buffer_object_create(dev, - fb->width * fb->height * 4, + ret = drm_buffer_object_create(dev, fb->width * fb->height * 4, drm_bo_type_kernel, DRM_BO_FLAG_READ | DRM_BO_FLAG_WRITE | - DRM_BO_FLAG_MEM_VRAM | /* FIXME! */ - DRM_BO_FLAG_NO_MOVE, + DRM_BO_FLAG_MEM_VRAM, 0, 0, 0, &fbo); if (ret || !fbo) { @@ -483,6 +481,15 @@ int intelfb_probe(struct drm_device *dev, struct drm_crtc *crtc) framebuffer_release(info); return -EINVAL; } + + ret = drm_bo_set_pin(dev, fbo, 1); + if (ret) { + printk(KERN_ERR "failed to pin framebuffer, aborting\n"); + drm_framebuffer_destroy(fb); + framebuffer_release(info); + return -EINVAL; + } + fb->offset = fbo->offset; fb->bo = fbo; printk("allocated %dx%d fb: 0x%08lx, bo %p\n", fb->width, |