From: "Antonino A. Daplas" <adaplas@gmail.com>
To: Adrian McMenamin <adrianmcmenamin@gmail.com>
Cc: Adrian McMenamin <lkmladrian@gmail.com>,
linux-kernel@vger.kernel.org, lethal@users.sourceforge.net
Subject: Re: Problems with framebuffer in 2.6.22-git17
Date: Sat, 28 Jul 2007 05:43:20 +0800 [thread overview]
Message-ID: <1185572600.26603.10.camel@daplas> (raw)
In-Reply-To: <92a12cdb0707271247s727993b8i33999a9652b2ca20@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 799 bytes --]
On Fri, 2007-07-27 at 20:47 +0100, Adrian McMenamin wrote:
> On 26/07/07, Antonino A. Daplas <adaplas@gmail.com> wrote:
>
> >
> > I'm also confused. Can you change the color depth to 32 bpp ('fbset
> > -depth 32')? I'm thinking of a possible pseudo_palette overrun.
> >
>
> The code behaves in exactly the same way with the bit depth set to 32
> and without the patch reversion (ie forces a reboot).
>
> With the parch reverted there is a flicker of output on the screen
> before a reboot is forced (it will boot with 16bpp though the colour
> is a bit iffy)
>
> With the patch reverted and 24bpp, it oopses before freezing (with two
> odd looking boot logos on the screen):
Can you try the attached patch? It's just a clean-up patch: uses
framebuffer_alloc/release instead of kmalloc.
Tony
[-- Attachment #2: pvr2_cleanup.diff --]
[-- Type: text/x-patch, Size: 1638 bytes --]
diff --git a/drivers/video/pvr2fb.c b/drivers/video/pvr2fb.c
index f930026..a72921b 100644
--- a/drivers/video/pvr2fb.c
+++ b/drivers/video/pvr2fb.c
@@ -143,6 +143,7 @@ static struct pvr2fb_par {
unsigned char is_lowres; /* Is horizontal pixel-doubling enabled? */
unsigned long mmio_base; /* MMIO base */
+ u32 palette[16];
} *currentpar;
static struct fb_info *fb_info;
@@ -790,7 +791,7 @@ static int __devinit pvr2fb_common_init(
fb_info->fbops = &pvr2fb_ops;
fb_info->fix = pvr2_fix;
fb_info->par = currentpar;
- fb_info->pseudo_palette = (void *)(fb_info->par + 1);
+ fb_info->pseudo_palette = currentpar->palette;
fb_info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
if (video_output == VO_VGA)
@@ -1082,14 +1083,15 @@ #ifndef MODULE
#endif
size = sizeof(struct fb_info) + sizeof(struct pvr2fb_par) + 16 * sizeof(u32);
- fb_info = kzalloc(size, GFP_KERNEL);
+ fb_info = framebuffer_alloc(sizeof(struct pvr2fb_par), NULL);
+
if (!fb_info) {
printk(KERN_ERR "Failed to allocate memory for fb_info\n");
return -ENOMEM;
}
- currentpar = (struct pvr2fb_par *)(fb_info + 1);
+ currentpar = fb_info->par;
for (i = 0; i < ARRAY_SIZE(board_driver); i++) {
struct pvr2_board *pvr_board = board_driver + i;
@@ -1102,7 +1104,7 @@ #endif
if (ret != 0) {
printk(KERN_ERR "pvr2fb: Failed init of %s device\n",
pvr_board->name);
- kfree(fb_info);
+ framebuffer_release(fb_info);
break;
}
}
@@ -1126,7 +1128,7 @@ #ifdef CONFIG_SH_STORE_QUEUES
#endif
unregister_framebuffer(fb_info);
- kfree(fb_info);
+ framebuffer_release(fb_info);
}
module_init(pvr2fb_init);
prev parent reply other threads:[~2007-07-27 21:43 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-22 18:41 Problems with framebuffer in 2.6.22-git17 Adrian McMenamin
2007-07-22 21:02 ` Adrian McMenamin
2007-07-22 23:22 ` Antonino A. Daplas
[not found] ` <8b67d60707231324k28f3cd45p287418fd77feaf00@mail.gmail.com>
2007-07-23 20:35 ` Adrian McMenamin
2007-07-23 21:06 ` Paul Mundt
2007-07-24 21:45 ` Adrian McMenamin
2007-07-25 23:33 ` Antonino A. Daplas
2007-07-27 19:47 ` Adrian McMenamin
2007-07-27 20:18 ` Adrian McMenamin
2007-07-27 21:31 ` Antonino A. Daplas
2007-07-27 22:25 ` Adrian McMenamin
2007-07-27 23:22 ` Antonino A. Daplas
2007-07-28 0:32 ` Adrian McMenamin
2007-07-28 0:52 ` Antonino A. Daplas
2007-07-28 1:06 ` Adrian McMenamin
2007-07-28 2:14 ` Antonino A. Daplas
2007-07-28 2:18 ` Antonino A. Daplas
2007-07-27 21:43 ` Antonino A. Daplas [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1185572600.26603.10.camel@daplas \
--to=adaplas@gmail.com \
--cc=adrianmcmenamin@gmail.com \
--cc=lethal@users.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lkmladrian@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.