diff options
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_fb.c | 20 |
2 files changed, 10 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index efa88551cbe4..9d97fd4e5558 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -6694,12 +6694,7 @@ void intel_modeset_init(struct drm_device *dev) | |||
6694 | dev->mode_config.max_width = 8192; | 6694 | dev->mode_config.max_width = 8192; |
6695 | dev->mode_config.max_height = 8192; | 6695 | dev->mode_config.max_height = 8192; |
6696 | } | 6696 | } |
6697 | 6697 | dev->mode_config.fb_base = dev->agp->base; | |
6698 | /* set memory base */ | ||
6699 | if (IS_GEN2(dev)) | ||
6700 | dev->mode_config.fb_base = pci_resource_start(dev->pdev, 0); | ||
6701 | else | ||
6702 | dev->mode_config.fb_base = pci_resource_start(dev->pdev, 2); | ||
6703 | 6698 | ||
6704 | if (IS_MOBILE(dev) || !IS_GEN2(dev)) | 6699 | if (IS_MOBILE(dev) || !IS_GEN2(dev)) |
6705 | dev_priv->num_pipe = 2; | 6700 | dev_priv->num_pipe = 2; |
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c index 701e830d0012..ee145a257287 100644 --- a/drivers/gpu/drm/i915/intel_fb.c +++ b/drivers/gpu/drm/i915/intel_fb.c | |||
@@ -62,6 +62,7 @@ static int intelfb_create(struct intel_fbdev *ifbdev, | |||
62 | struct drm_fb_helper_surface_size *sizes) | 62 | struct drm_fb_helper_surface_size *sizes) |
63 | { | 63 | { |
64 | struct drm_device *dev = ifbdev->helper.dev; | 64 | struct drm_device *dev = ifbdev->helper.dev; |
65 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
65 | struct fb_info *info; | 66 | struct fb_info *info; |
66 | struct drm_framebuffer *fb; | 67 | struct drm_framebuffer *fb; |
67 | struct drm_mode_fb_cmd mode_cmd; | 68 | struct drm_mode_fb_cmd mode_cmd; |
@@ -77,7 +78,7 @@ static int intelfb_create(struct intel_fbdev *ifbdev, | |||
77 | mode_cmd.height = sizes->surface_height; | 78 | mode_cmd.height = sizes->surface_height; |
78 | 79 | ||
79 | mode_cmd.bpp = sizes->surface_bpp; | 80 | mode_cmd.bpp = sizes->surface_bpp; |
80 | mode_cmd.pitch = ALIGN(mode_cmd.width * ((mode_cmd.bpp + 1) / 8), 64); | 81 | mode_cmd.pitch = ALIGN(mode_cmd.width * ((mode_cmd.bpp + 7) / 8), 64); |
81 | mode_cmd.depth = sizes->surface_depth; | 82 | mode_cmd.depth = sizes->surface_depth; |
82 | 83 | ||
83 | size = mode_cmd.pitch * mode_cmd.height; | 84 | size = mode_cmd.pitch * mode_cmd.height; |
@@ -120,6 +121,11 @@ static int intelfb_create(struct intel_fbdev *ifbdev, | |||
120 | info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT; | 121 | info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT; |
121 | info->fbops = &intelfb_ops; | 122 | info->fbops = &intelfb_ops; |
122 | 123 | ||
124 | ret = fb_alloc_cmap(&info->cmap, 256, 0); | ||
125 | if (ret) { | ||
126 | ret = -ENOMEM; | ||
127 | goto out_unpin; | ||
128 | } | ||
123 | /* setup aperture base/size for vesafb takeover */ | 129 | /* setup aperture base/size for vesafb takeover */ |
124 | info->apertures = alloc_apertures(1); | 130 | info->apertures = alloc_apertures(1); |
125 | if (!info->apertures) { | 131 | if (!info->apertures) { |
@@ -127,10 +133,8 @@ static int intelfb_create(struct intel_fbdev *ifbdev, | |||
127 | goto out_unpin; | 133 | goto out_unpin; |
128 | } | 134 | } |
129 | info->apertures->ranges[0].base = dev->mode_config.fb_base; | 135 | info->apertures->ranges[0].base = dev->mode_config.fb_base; |
130 | if (!IS_GEN2(dev)) | 136 | info->apertures->ranges[0].size = |
131 | info->apertures->ranges[0].size = pci_resource_len(dev->pdev, 2); | 137 | dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT; |
132 | else | ||
133 | info->apertures->ranges[0].size = pci_resource_len(dev->pdev, 0); | ||
134 | 138 | ||
135 | info->fix.smem_start = dev->mode_config.fb_base + obj->gtt_offset; | 139 | info->fix.smem_start = dev->mode_config.fb_base + obj->gtt_offset; |
136 | info->fix.smem_len = size; | 140 | info->fix.smem_len = size; |
@@ -140,12 +144,6 @@ static int intelfb_create(struct intel_fbdev *ifbdev, | |||
140 | ret = -ENOSPC; | 144 | ret = -ENOSPC; |
141 | goto out_unpin; | 145 | goto out_unpin; |
142 | } | 146 | } |
143 | |||
144 | ret = fb_alloc_cmap(&info->cmap, 256, 0); | ||
145 | if (ret) { | ||
146 | ret = -ENOMEM; | ||
147 | goto out_unpin; | ||
148 | } | ||
149 | info->screen_size = size; | 147 | info->screen_size = size; |
150 | 148 | ||
151 | // memset(info->screen_base, 0, size); | 149 | // memset(info->screen_base, 0, size); |