[git pull] drm for rc1

James Simmons jsimmons at infradead.org
Wed Jan 12 05:32:00 PST 2011


> Am 12.01.2011 13:49, schrieb James Simmons:
> > I see the problem. Nouveau for some hardware does a accelerated 
> > clearing of the screen before we register the framebuffer. The above patch 
> > does fix a real issue so please don't revert it. Can you try this patch.
> > 
> > diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
> > index a26d047..4ef24d6 100644
> > --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
> > +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
> > @@ -359,6 +359,8 @@ nouveau_fbcon_create(struct nouveau_fbdev *nfbdev,
> >  	info->screen_base = nvbo_kmap_obj_iovirtual(nouveau_fb->nvbo);
> >  	info->screen_size = size;
> > 
> > +	info->fix.visual = fb->depth == 8 ? FB_VISUAL_PSEUDOCOLOR :
> > +                FB_VISUAL_TRUECOLOR;
> >  	drm_fb_helper_fill_var(info, &nfbdev->helper, sizes->fb_width, sizes->fb_height);
> > 
> >  	/* Set aperture base/size for vesafb takeover */
> 
> Hmm, does not seem to work. Any more initialization missing?

Okay. The nouveau driver also uses the pitch as well. It 
really should be using the pitch field from drm_framebuffer instead of the 
line_length from fb_fix_screeninfo. This patch is just to make sure this 
is the issue. I will submit another patch later that uses 
drm_fb_framebuffer's pitch field. As for the visual unfortunely their is 
no real mapping between drm and fbdev.

diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index a26d047..de3b067 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -359,6 +359,9 @@ nouveau_fbcon_create(struct nouveau_fbdev *nfbdev,
 	info->screen_base = nvbo_kmap_obj_iovirtual(nouveau_fb->nvbo);
 	info->screen_size = size;
 
+	info->fix.visual = fb->depth == 8 ? FB_VISUAL_PSEUDOCOLOR :
+                FB_VISUAL_TRUECOLOR;
+	info->fix.line_length = fb->pitch;
 	drm_fb_helper_fill_var(info, &nfbdev->helper, sizes->fb_width, sizes->fb_height);
 
 	/* Set aperture base/size for vesafb takeover */


More information about the dri-devel mailing list