Gentoo Archives: gentoo-user

From: Hans-Werner Hilse <hilse@×××.de>
To: gentoo-user@l.g.o
Subject: Sony Picturebook Widescreen framebuffer patch, was: Re: [gentoo-user] The Root Block Device is unspecified or not detected - PCMCIA card CD Boot on Sony Vaio
Date: Mon, 31 Oct 2005 15:10:45
Message-Id: 20051031160332.6c022714.hilse@web.de
In Reply to: Re: [gentoo-user] The Root Block Device is unspecified or not detected - PCMCIA card CD Boot on Sony Vaio by Stroller
1 Hi,
2
3 On Sun, 30 Oct 2005 17:48:24 +0000
4 Stroller <stroller@××××××××××××××××××.uk> wrote:
5
6 > On Oct 30, 2005, at 11:18 am, Hans-Werner Hilse wrote:
7 > >
8 > > I'm running Gentoo on my picturebook happily since about 2 or 3 years
9 > > now. Just ask if there are more problems. I can give you a kernel patch
10 > > for the neomagic frame buffer driver to have it support the 480px
11 > > display height...
12 >
13 > I really loved getting the widescreen framebuffer working - it was such
14 > a buzz, so cool. That made for the ultimate in notebook usability and
15 > portability.
16
17 I'm copying it here verbatim. It's made against a 2.6.11.n kernel and
18 may need a little polishing for newer versions, but it follows an easy
19 path, I've just extended the existing "special format" for toshiba's
20 libretto series:
21 ----snip---
22 --- neofb.c 2005-04-30 03:29:00.000000000 +0200
23 +++ neofb.c.new 2005-10-31 15:55:05.899735896 +0100
24 @@ -640,7 +640,7 @@
25 mode_ok = 1;
26 break;
27 case 1024:
28 - if (var->yres == 768)
29 + if (var->yres == (par->libretto ? 480 : 768))
30 mode_ok = 1;
31 break;
32 case 800:
33 @@ -1684,6 +1684,20 @@
34 .vmode = FB_VMODE_NONINTERLACED
35 };
36
37 +static struct fb_videomode __devinitdata mode1024x480 = {
38 + .xres = 1024,
39 + .yres = 480,
40 + .pixclock = 21786,
41 + .left_margin = 160,
42 + .right_margin = 24,
43 + .upper_margin = 2,
44 + .lower_margin = 0,
45 + .hsync_len = 136,
46 + .vsync_len = 6,
47 + .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
48 + .vmode = FB_VMODE_NONINTERLACED
49 +};
50 +
51 static int __devinit neo_map_mmio(struct fb_info *info,
52 struct pci_dev *dev)
53 {
54 @@ -1836,10 +1850,15 @@
55 }
56 break;
57 case 0x02:
58 - // 1024x768@60
59 par->NeoPanelWidth = 1024;
60 - par->NeoPanelHeight = 768;
61 - memcpy(info->monspecs.modedb, &vesa_modes[13], sizeof(struct fb_videomode));
62 + if (par->libretto) {
63 + par->NeoPanelHeight = 480;
64 + memcpy(info->monspecs.modedb, &mode1024x480, sizeof(struct fb_videomode));
65 + } else {
66 + // 1024x768@60
67 + par->NeoPanelHeight = 768;
68 + memcpy(info->monspecs.modedb, &vesa_modes[13], sizeof(struct fb_videomode));
69 + }
70 break;
71 case 0x03:
72 /* 1280x1024@60 panel support needs to be added */
73
74 ----snip---
75 Just use the "libretto" option (set to "1") and everything will work as
76 expected.
77
78 >
79 > > BTW, @Stroller: it's a 10" widescreen, 6" would be a
80 > > little too small...
81 >
82 > That's really 10" not 6'??? How come I don't have a girlfriend??
83 > ;P
84
85 Well, size doesn't matter anyhow, does it ? ;-)
86
87 -hwh
88 --
89 gentoo-user@g.o mailing list

Replies