summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Glisse <glisse@freedesktop.org>2008-04-03 03:14:52 +0200
committerJohn Doe <glisse@freedesktop.org>2008-04-03 03:14:52 +0200
commit4dfb959238cbaac6b4db425d9349c7907f4e32fd (patch)
treeeade30e3c0c36fa5a5fc4d6b4e8f02b8f28735ee
parent960042345866ff4ab7d76b56e4af60e800c60a36 (diff)
radeon_ms: fixes fb handling
-rw-r--r--linux-core/radeon_ms_fb.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/linux-core/radeon_ms_fb.c b/linux-core/radeon_ms_fb.c
index a8fba712..a7f39f12 100644
--- a/linux-core/radeon_ms_fb.c
+++ b/linux-core/radeon_ms_fb.c
@@ -45,6 +45,7 @@ struct radeonfb_par {
struct drm_device *dev;
struct drm_crtc *crtc;
struct drm_display_mode *fb_mode;
+ struct drm_framebuffer *fb;
};
static int radeonfb_setcolreg(unsigned regno, unsigned red,
@@ -52,7 +53,7 @@ static int radeonfb_setcolreg(unsigned regno, unsigned red,
unsigned transp, struct fb_info *info)
{
struct radeonfb_par *par = info->par;
- struct drm_framebuffer *fb = par->crtc->fb;
+ struct drm_framebuffer *fb = par->fb;
struct drm_crtc *crtc = par->crtc;
if (regno > 255) {
@@ -88,7 +89,7 @@ static int radeonfb_check_var(struct fb_var_screeninfo *var,
struct fb_info *info)
{
struct radeonfb_par *par = info->par;
- struct drm_framebuffer *fb = par->crtc->fb;
+ struct drm_framebuffer *fb = par->fb;
if (!var->pixclock)
return -EINVAL;
@@ -177,7 +178,7 @@ static bool radeonfb_mode_equal(struct drm_display_mode *mode1,
static int radeonfb_set_par(struct fb_info *info)
{
struct radeonfb_par *par = info->par;
- struct drm_framebuffer *fb = par->crtc->fb;
+ struct drm_framebuffer *fb = par->fb;
struct drm_device *dev = par->dev;
struct drm_display_mode *drm_mode, *search_mode;
struct drm_output *output;
@@ -326,6 +327,7 @@ int radeonfb_probe(struct drm_device *dev, struct drm_crtc *crtc)
par = info->par;
par->dev = dev;
par->crtc = crtc;
+ par->fb = fb;
info->fbops = &radeonfb_ops;
strcpy(info->fix.id, "radeonfb");
info->fix.type = FB_TYPE_PACKED_PIXELS;