Subversion Repositories Kolibri OS

Rev

Rev 6088 | Rev 6296 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6088 Rev 6283
Line 163... Line 163...
163
	mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
163
	mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
164
							  sizes->surface_depth);
164
							  sizes->surface_depth);
Line 165... Line 165...
165
 
165
 
166
	size = mode_cmd.pitches[0] * mode_cmd.height;
166
	size = mode_cmd.pitches[0] * mode_cmd.height;
-
 
167
	size = PAGE_ALIGN(size);
-
 
168
 
-
 
169
	/* If the FB is too big, just don't use it since fbdev is not very
167
	size = PAGE_ALIGN(size);
170
	 * important and we should probably use that space with FBC or other
-
 
171
	 * features. */
-
 
172
	if (size * 2 < dev_priv->gtt.stolen_usable_size)
-
 
173
		obj = i915_gem_object_create_stolen(dev, size);
168
	obj = main_fb_obj;
174
	if (obj == NULL)
169
	obj->map_and_fenceable=true;
175
		obj = i915_gem_alloc_object(dev, size);
170
	if (!obj) {
176
	if (!obj) {
171
		DRM_ERROR("failed to allocate framebuffer\n");
177
		DRM_ERROR("failed to allocate framebuffer\n");
172
		ret = -ENOMEM;
178
		ret = -ENOMEM;
173
		goto out;
179
		goto out;
Line 212... Line 218...
212
	int size, ret;
218
	int size, ret;
213
	bool prealloc = false;
219
	bool prealloc = false;
Line 214... Line 220...
214
 
220
 
Line 215... Line -...
215
	mutex_lock(&dev->struct_mutex);
-
 
216
 
221
	mutex_lock(&dev->struct_mutex);
217
#if 0
222
 
218
	if (intel_fb &&
223
	if (intel_fb &&
219
	    (sizes->fb_width > intel_fb->base.width ||
224
	    (sizes->fb_width > intel_fb->base.width ||
220
	     sizes->fb_height > intel_fb->base.height)) {
225
	     sizes->fb_height > intel_fb->base.height)) {
221
		DRM_DEBUG_KMS("BIOS fb too small (%dx%d), we require (%dx%d),"
226
		DRM_DEBUG_KMS("BIOS fb too small (%dx%d), we require (%dx%d),"
222
			      " releasing it\n",
227
			      " releasing it\n",
223
			      intel_fb->base.width, intel_fb->base.height,
228
			      intel_fb->base.width, intel_fb->base.height,
224
			      sizes->fb_width, sizes->fb_height);
229
			      sizes->fb_width, sizes->fb_height);
225
		drm_framebuffer_unreference(&intel_fb->base);
230
		drm_framebuffer_unreference(&intel_fb->base);
226
		intel_fb = ifbdev->fb = NULL;
-
 
227
	}
-
 
228
#endif
231
		intel_fb = ifbdev->fb = NULL;
229
 
232
	}
230
	if (!intel_fb || WARN_ON(!intel_fb->obj)) {
233
	if (!intel_fb || WARN_ON(!intel_fb->obj)) {
231
		DRM_DEBUG_KMS("no BIOS fb, allocating a new one\n");
234
		DRM_DEBUG_KMS("no BIOS fb, allocating a new one\n");
232
		ret = intelfb_alloc(helper, sizes);
235
		ret = intelfb_alloc(helper, sizes);
Line 251... Line 254...
251
 
254
 
Line 252... Line 255...
252
	info->par = helper;
255
	info->par = helper;
Line 253... Line -...
253
 
-
 
254
	fb = &ifbdev->fb->base;
-
 
255
 
-
 
256
    if(main_framebuffer == NULL)
256
 
Line 257... Line 257...
257
        main_framebuffer = fb;
257
	fb = &ifbdev->fb->base;
Line 258... Line 258...
258
 
258