diff options
author | Dave Airlie <airlied@redhat.com> | 2009-08-28 01:46:53 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-08-30 19:09:31 -0400 |
commit | 785b93ef8c309730c2de84ce9c229e40e2d01480 (patch) | |
tree | ea1b26781fc49cef92d439fdaffa41af8c165778 /drivers/gpu/drm/radeon/radeon_display.c | |
parent | 7dc482dfeeeefcfd000d4271c4626937406756d7 (diff) |
drm/kms: move driver specific fb common code to helper functions (v2)
Initially I always meant this code to be shared, but things
ran away from me before I got to it.
This refactors the i915 and radeon kms fbdev interaction layers
out into generic helpers + driver specific pieces.
It moves all the panic/sysrq enhancements to the core file,
and stores a linked list of kernel fbs. This could possibly be
improved to only store the fb which has fbcon on it for panics
etc.
radeon retains some specific codes used for a big endian
workaround.
changes:
fix oops in v1
fix freeing path for crtc_info
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_display.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_display.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c index a8fa1bb84cf7..af035605d147 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c | |||
@@ -158,9 +158,6 @@ static void radeon_crtc_destroy(struct drm_crtc *crtc) | |||
158 | { | 158 | { |
159 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); | 159 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); |
160 | 160 | ||
161 | if (radeon_crtc->mode_set.mode) { | ||
162 | drm_mode_destroy(crtc->dev, radeon_crtc->mode_set.mode); | ||
163 | } | ||
164 | drm_crtc_cleanup(crtc); | 161 | drm_crtc_cleanup(crtc); |
165 | kfree(radeon_crtc); | 162 | kfree(radeon_crtc); |
166 | } | 163 | } |
@@ -189,9 +186,11 @@ static void radeon_crtc_init(struct drm_device *dev, int index) | |||
189 | radeon_crtc->crtc_id = index; | 186 | radeon_crtc->crtc_id = index; |
190 | rdev->mode_info.crtcs[index] = radeon_crtc; | 187 | rdev->mode_info.crtcs[index] = radeon_crtc; |
191 | 188 | ||
189 | #if 0 | ||
192 | radeon_crtc->mode_set.crtc = &radeon_crtc->base; | 190 | radeon_crtc->mode_set.crtc = &radeon_crtc->base; |
193 | radeon_crtc->mode_set.connectors = (struct drm_connector **)(radeon_crtc + 1); | 191 | radeon_crtc->mode_set.connectors = (struct drm_connector **)(radeon_crtc + 1); |
194 | radeon_crtc->mode_set.num_connectors = 0; | 192 | radeon_crtc->mode_set.num_connectors = 0; |
193 | #endif | ||
195 | 194 | ||
196 | for (i = 0; i < 256; i++) { | 195 | for (i = 0; i < 256; i++) { |
197 | radeon_crtc->lut_r[i] = i << 2; | 196 | radeon_crtc->lut_r[i] = i << 2; |