On Fri, Jan 14, 2011 at 8:40 PM, Anca Emanuel <anca.emanuel at gmail.com> wrote: > On Fri, Jan 14, 2011 at 8:26 PM, James Simmons <jsimmons at infradead.org> > wrote: >> >>> > Just as I thought. Even this breaks the nouveau driver. >>> > >>> > Could you now add also in the drm_fb_helper_fill_fix function >>> > >>> > DRM_INFO("pitch %d, depth %d\n", fb_helper->fb->pitch, >>> > ? ? ? ? ?fb_helper->fb->depth); >>> > >>> > I have a feeling the values are not right. Thanks. >>> > >>> >>> Please make an patch to test. >> >> Done. I had to test the patch myself. No need to do a revert. Just apply >> this patch to linus tree. Then send the dmesg to me. Thanks. >> >> diff --git a/drivers/gpu/drm/drm_fb_helper.c >> b/drivers/gpu/drm/drm_fb_helper.c >> index 0307d60..beded14 100644 >> --- a/drivers/gpu/drm/drm_fb_helper.c >> +++ b/drivers/gpu/drm/drm_fb_helper.c >> @@ -609,6 +609,7 @@ EXPORT_SYMBOL(drm_fb_helper_fini); >> >> ?void drm_fb_helper_fill_fix(struct fb_info *info, struct drm_framebuffer >> *fb) >> ?{ >> + ? ? ? DRM_INFO("pitch %d, depth %d\n", fb->pitch, fb->depth); >> ? ? ? ?info->fix.type = FB_TYPE_PACKED_PIXELS; >> ? ? ? ?info->fix.visual = fb->depth == 8 ? FB_VISUAL_PSEUDOCOLOR : >> ? ? ? ? ? ? ? ?FB_VISUAL_TRUECOLOR; >> @@ -973,7 +974,6 @@ int drm_fb_helper_single_fb_probe(struct drm_fb_helper >> *fb_helper, >> >> ? ? ? ?if (new_fb) { >> ? ? ? ? ? ? ? ?info->var.pixclock = 0; >> - ? ? ? ? ? ? ? drm_fb_helper_fill_fix(info, fb_helper->fb); >> ? ? ? ? ? ? ? ?if (register_framebuffer(info) < 0) { >> ? ? ? ? ? ? ? ? ? ? ? ?return -EINVAL; >> ? ? ? ? ? ? ? ?} >> diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c >> b/drivers/gpu/drm/nouveau/nouveau_fbcon.c >> index a26d047..fe87319 100644 >> --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c >> +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c >> @@ -359,6 +359,7 @@ nouveau_fbcon_create(struct nouveau_fbdev *nfbdev, >> ? ? ? ?info->screen_base = nvbo_kmap_obj_iovirtual(nouveau_fb->nvbo); >> ? ? ? ?info->screen_size = size; >> >> + ? ? ? drm_fb_helper_fill_fix(info, fb); >> ? ? ? ?drm_fb_helper_fill_var(info, &nfbdev->helper, sizes->fb_width, >> sizes->fb_height); >> >> ? ? ? ?/* Set aperture base/size for vesafb takeover */ > > I will test it, but first, I will need to disable the cassini driver, > because it can not compile. >
I will test this first: diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 0307d60..beded14 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -609,6 +609,7 @@ EXPORT_SYMBOL(drm_fb_helper_fini); void drm_fb_helper_fill_fix(struct fb_info *info, struct drm_framebuffer *fb) { + DRM_INFO("pitch %d, depth %d\n", fb->pitch, fb->depth); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.visual = fb->depth == 8 ? FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR; @@ -973,7 +974,6 @@ int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_h if (new_fb) { info->var.pixclock = 0; - drm_fb_helper_fill_fix(info, fb_helper->fb); if (register_framebuffer(info) < 0) { return -EINVAL; } diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/n index a26d047..3896771 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 0307d60..beded14 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -609,6 +609,7 @@ EXPORT_SYMBOL(drm_fb_helper_fini); void drm_fb_helper_fill_fix(struct fb_info *info, struct drm_framebuffer *fb) { + DRM_INFO("pitch %d, depth %d\n", fb->pitch, fb->depth); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.visual = fb->depth == 8 ? FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR; @@ -973,7 +974,6 @@ int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_h if (new_fb) { info->var.pixclock = 0; - drm_fb_helper_fill_fix(info, fb_helper->fb); if (register_framebuffer(info) < 0) { return -EINVAL; }