diff options
| -rw-r--r-- | linux-core/atombios_crtc.c | 2 | ||||
| -rw-r--r-- | linux-core/drm_crtc.h | 1 | ||||
| -rw-r--r-- | linux-core/drm_crtc_helper.c | 4 | ||||
| -rw-r--r-- | linux-core/drm_crtc_helper.h | 3 | ||||
| -rw-r--r-- | linux-core/radeon_display.c | 23 | ||||
| -rw-r--r-- | linux-core/radeon_fb.c | 2 | ||||
| -rw-r--r-- | linux-core/radeon_legacy_crtc.c | 4 | ||||
| -rw-r--r-- | linux-core/radeon_mode.h | 3 | ||||
| -rw-r--r-- | linux-core/radeon_pm.c | 8 | 
9 files changed, 26 insertions, 24 deletions
| diff --git a/linux-core/atombios_crtc.c b/linux-core/atombios_crtc.c index 3856f8ca..2e144c90 100644 --- a/linux-core/atombios_crtc.c +++ b/linux-core/atombios_crtc.c @@ -276,7 +276,7 @@ void atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y)  	radeon_fb = to_radeon_framebuffer(crtc->fb); -	obj = radeon_fb->base.mm_private; +	obj = radeon_fb->obj;  	obj_priv = obj->driver_private;  	fb_location = obj_priv->bo->offset + dev_priv->fb_location; diff --git a/linux-core/drm_crtc.h b/linux-core/drm_crtc.h index 6a73a71b..13fba4f2 100644 --- a/linux-core/drm_crtc.h +++ b/linux-core/drm_crtc.h @@ -240,7 +240,6 @@ struct drm_framebuffer {  	void *fbdev;  	u32 pseudo_palette[17];  	struct list_head filp_head; -	void *mm_private;  };  struct drm_property_blob { diff --git a/linux-core/drm_crtc_helper.c b/linux-core/drm_crtc_helper.c index b334f5b5..776a98e1 100644 --- a/linux-core/drm_crtc_helper.c +++ b/linux-core/drm_crtc_helper.c @@ -771,15 +771,13 @@ int drm_helper_hotplug_stage_two(struct drm_device *dev)  EXPORT_SYMBOL(drm_helper_hotplug_stage_two);  int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb, -				   struct drm_mode_fb_cmd *mode_cmd, -				   void *mm_private) +				   struct drm_mode_fb_cmd *mode_cmd)  {  	fb->width = mode_cmd->width;  	fb->height = mode_cmd->height;  	fb->pitch = mode_cmd->pitch;  	fb->bits_per_pixel = mode_cmd->bpp;  	fb->depth = mode_cmd->depth; -	fb->mm_private = mm_private;  	return 0;  } diff --git a/linux-core/drm_crtc_helper.h b/linux-core/drm_crtc_helper.h index 01b14239..c0719157 100644 --- a/linux-core/drm_crtc_helper.h +++ b/linux-core/drm_crtc_helper.h @@ -75,8 +75,7 @@ extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, struct drm_display_m  extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc);  extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb, -					  struct drm_mode_fb_cmd *mode_cmd, -					  void *mm_private); +					  struct drm_mode_fb_cmd *mode_cmd);  static inline void drm_crtc_helper_add(struct drm_crtc *crtc, const struct drm_crtc_helper_funcs *funcs)  { diff --git a/linux-core/radeon_display.c b/linux-core/radeon_display.c index ddc933cc..679244a9 100644 --- a/linux-core/radeon_display.c +++ b/linux-core/radeon_display.c @@ -601,17 +601,18 @@ static void radeon_user_framebuffer_destroy(struct drm_framebuffer *fb)  	if (fb->fbdev)  		radeonfb_remove(dev, fb); +	drm_gem_object_unreference(radeon_fb->obj);  	drm_framebuffer_cleanup(fb);  	kfree(radeon_fb);  }  static int radeon_user_framebuffer_create_handle(struct drm_framebuffer *fb, -						  struct drm_file *file_priv, -						  unsigned int *handle) +						 struct drm_file *file_priv, +						 unsigned int *handle)  { -	struct drm_gem_object *object = fb->mm_private; +	struct radeon_framebuffer *radeon_fb = to_radeon_framebuffer(fb); -	return drm_gem_handle_create(file_priv, object, handle); +	return drm_gem_handle_create(file_priv, radeon_fb->obj, handle);  }  static const struct drm_framebuffer_funcs radeon_fb_funcs = { @@ -622,7 +623,7 @@ static const struct drm_framebuffer_funcs radeon_fb_funcs = {  struct drm_framebuffer *  radeon_framebuffer_create(struct drm_device *dev,  			  struct drm_mode_fb_cmd *mode_cmd, -			  void *mm_private) +			  struct drm_gem_object *obj)  {  	struct radeon_framebuffer *radeon_fb; @@ -631,7 +632,10 @@ radeon_framebuffer_create(struct drm_device *dev,  		return NULL;  	drm_framebuffer_init(dev, &radeon_fb->base, &radeon_fb_funcs); -	drm_helper_mode_fill_fb_struct(&radeon_fb->base, mode_cmd, mm_private); + 	drm_helper_mode_fill_fb_struct(&radeon_fb->base, mode_cmd); + + 	radeon_fb->obj = obj; +  	return &radeon_fb->base;  } @@ -641,10 +645,11 @@ radeon_user_framebuffer_create(struct drm_device *dev,  			       struct drm_mode_fb_cmd *mode_cmd)  {  	struct radeon_framebuffer *radeon_fb; -	void *mm_private; + 	struct drm_gem_object *obj; + + 	obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handle); -	mm_private = drm_gem_object_lookup(dev, file_priv, mode_cmd->handle); -	return radeon_framebuffer_create(dev, mode_cmd, mm_private); +	return radeon_framebuffer_create(dev, mode_cmd, obj);  }  static const struct drm_mode_config_funcs radeon_mode_funcs = { diff --git a/linux-core/radeon_fb.c b/linux-core/radeon_fb.c index 8d4181e8..405f1da9 100644 --- a/linux-core/radeon_fb.c +++ b/linux-core/radeon_fb.c @@ -1148,7 +1148,7 @@ int radeonfb_remove(struct drm_device *dev, struct drm_framebuffer *fb)  		unregister_framebuffer(info);  		drm_bo_kunmap(&radeon_fb->kmap_obj);  		mutex_lock(&dev->struct_mutex); -		drm_gem_object_unreference(fb->mm_private); +		drm_gem_object_unreference(radeon_fb->obj);  		mutex_unlock(&dev->struct_mutex);  		framebuffer_release(info);  	} diff --git a/linux-core/radeon_legacy_crtc.c b/linux-core/radeon_legacy_crtc.c index 820bd548..c0a3c0fa 100644 --- a/linux-core/radeon_legacy_crtc.c +++ b/linux-core/radeon_legacy_crtc.c @@ -231,7 +231,7 @@ static bool radeon_set_crtc1_base(struct drm_crtc *crtc, int x, int y)  	radeon_fb = to_radeon_framebuffer(crtc->fb); -	obj = radeon_fb->base.mm_private; +	obj = radeon_fb->obj;  	obj_priv = obj->driver_private;  	crtc_offset = obj_priv->bo->offset; @@ -654,7 +654,7 @@ static bool radeon_set_crtc2_base(struct drm_crtc *crtc, int x, int y)  	radeon_fb = to_radeon_framebuffer(crtc->fb); -	obj = radeon_fb->base.mm_private; +	obj = radeon_fb->obj;  	obj_priv = obj->driver_private;  	crtc2_offset = obj_priv->bo->offset; diff --git a/linux-core/radeon_mode.h b/linux-core/radeon_mode.h index 64608e35..23de1088 100644 --- a/linux-core/radeon_mode.h +++ b/linux-core/radeon_mode.h @@ -255,6 +255,7 @@ struct radeon_connector {  struct radeon_framebuffer {  	struct drm_framebuffer base;  	struct drm_bo_kmap_obj kmap_obj; +	struct drm_gem_object *obj;  };  extern struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev, @@ -323,7 +324,7 @@ extern void radeon_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,  				     u16 blue, int regno);  struct drm_framebuffer *radeon_framebuffer_create(struct drm_device *dev,  						  struct drm_mode_fb_cmd *mode_cmd, -						  void *mm_private); +						  struct drm_gem_object *obj);  int radeonfb_probe(struct drm_device *dev); diff --git a/linux-core/radeon_pm.c b/linux-core/radeon_pm.c index db8f44c4..259d42da 100644 --- a/linux-core/radeon_pm.c +++ b/linux-core/radeon_pm.c @@ -54,10 +54,10 @@ int radeon_suspend(struct drm_device *dev, pm_message_t state)  		if (!radeon_fb)  			continue; -		if (!radeon_fb->base.mm_private) +		if (!radeon_fb->obj)  			continue; -		radeon_gem_object_unpin(radeon_fb->base.mm_private); +		radeon_gem_object_unpin(radeon_fb->obj);  	}  	if (!(dev_priv->flags & RADEON_IS_IGP)) @@ -175,10 +175,10 @@ int radeon_resume(struct drm_device *dev)  		if (!radeon_fb)  			continue; -		if (!radeon_fb->base.mm_private) +		if (!radeon_fb->obj)  			continue; -		radeon_gem_object_pin(radeon_fb->base.mm_private, +		radeon_gem_object_pin(radeon_fb->obj,  				      PAGE_SIZE, RADEON_GEM_DOMAIN_VRAM);  	}  	/* blat the mode back in */ | 
