2011-03-11 18:55:41

by Greg Brigley

[permalink] [raw]
Subject: How to use gma500 framebuffer driver?

Hi all,

I'm trying to test the poulsbo/gma500 driver recently added to
drivers/staging in linux-next, and having trouble. I'm hoping someone
can help me get going (or let me know if I should be asking somewhere
other than the main kernel list.)

I did a git clone of linux-next. I got errors trying to build the
gma500 driver on the head, so I did a checkout to
0e83f46d3869a5255a04b875bb885bd141a609ef, from Feb 26 - the last
commit on drivers/staging/gma500, and now I can build successfully,
but have not succeeded in producing video output.

I guess I'll start by saying what I'm trying to do, to make sure I'm
not misguided in trying this in the first place. I want to run Xfbdev
and drive both an LVDS and HDMI display at the same time (mirrored).
I don't need 2d or 3d acceleration. I don't see an indication that
anyone else has tried mirrored displays with this driver, and I don't
mind being the first, but should it work in theory? If it's not
supported, would it be difficult to add?

My hardware is an embedded system, containing one of these:
http://www.radisys.com/Products/COM-Express/COM-Express-Modules/Procelerant-CEZ5XT.html.
I've successfully driven the two displays using Ubuntu 10.10 with
added poulsbo drivers and other pieces, so I know the hardware is good
and can work this way if the driver supports it.

So here are my questions for those who have used the staging driver:
* Should I be compiling it as a module, or as part of the kernel?
* If I'm compiling it as part of the kernel, what kernel parameters do
I use to activate it? I tried to guess based on past experience with
non-DRM framebuffer drivers, but I get the impression that DRM
framebuffers are different, and I don't really have any experience
there.
* If I'm compiling it as a module, is there some sort of incantation
to make the framebuffer device show up when I insert the module?
Currently, when I insmod psb_gfx.ko, nothing appears in /proc/fb, or
in /dev. I'm using udev. If I do "mknod /dev/fb0 c 29 0", then both
fbset and Xfbdev give me "no such device" errors.

I'll stop there for now, in case I'm entirely on the wrong track, but
I'm happy to provide more detail if anyone is able to help. I'm very
motivated to get this working, and if there's anything I can do to
help with development or testing of the driver going forward, I'd be
happy to do so.

Thanks,
Greg


2011-03-11 19:34:33

by Alan

[permalink] [raw]
Subject: Re: How to use gma500 framebuffer driver?

> 0e83f46d3869a5255a04b875bb885bd141a609ef, from Feb 26 - the last
> commit on drivers/staging/gma500, and now I can build successfully,
> but have not succeeded in producing video output.

Currently it works on the Dell mini 10 and some other panels, but I know
it's not yet working on quite a few other setups.

> I guess I'll start by saying what I'm trying to do, to make sure I'm
> not misguided in trying this in the first place. I want to run Xfbdev
> and drive both an LVDS and HDMI display at the same time (mirrored).
> I don't need 2d or 3d acceleration. I don't see an indication that
> anyone else has tried mirrored displays with this driver, and I don't
> mind being the first, but should it work in theory? If it's not
> supported, would it be difficult to add?

It's on the todo list, as is non mirrored dual display.

> So here are my questions for those who have used the staging driver:
> * Should I be compiling it as a module, or as part of the kernel?

Either - it's probably best tested as a module for the moment

> * If I'm compiling it as a module, is there some sort of incantation
> to make the framebuffer device show up when I insert the module?

That would be the default behaviour providing it manages to set up the
port. If it doesn't it will stay in text mode

> Currently, when I insmod psb_gfx.ko, nothing appears in /proc/fb, or
> in /dev. I'm using udev. If I do "mknod /dev/fb0 c 29 0", then both
> fbset and Xfbdev give me "no such device" errors.

What shows up in "dmesg" ?

Alan

2011-03-11 22:54:15

by Kristoffer Ericson

[permalink] [raw]
Subject: Re: How to use gma500 framebuffer driver?

On Fri, Mar 11, 2011 at 01:55:39PM -0500, Greg Brigley wrote:
> Hi all,
>
> I'm trying to test the poulsbo/gma500 driver recently added to
> drivers/staging in linux-next, and having trouble. I'm hoping someone
> can help me get going (or let me know if I should be asking somewhere
> other than the main kernel list.)
>
> I did a git clone of linux-next. I got errors trying to build the
> gma500 driver on the head, so I did a checkout to
> 0e83f46d3869a5255a04b875bb885bd141a609ef, from Feb 26 - the last
> commit on drivers/staging/gma500, and now I can build successfully,
> but have not succeeded in producing video output.
>

What is your model/brand?

> I guess I'll start by saying what I'm trying to do, to make sure I'm
> not misguided in trying this in the first place. I want to run Xfbdev
> and drive both an LVDS and HDMI display at the same time (mirrored).
> I don't need 2d or 3d acceleration. I don't see an indication that
> anyone else has tried mirrored displays with this driver, and I don't
> mind being the first, but should it work in theory? If it's not
> supported, would it be difficult to add?
>

Mirroring doesnt work from what Ive tested.


> My hardware is an embedded system, containing one of these:
> http://www.radisys.com/Products/COM-Express/COM-Express-Modules/Procelerant-CEZ5XT.html.
> I've successfully driven the two displays using Ubuntu 10.10 with
> added poulsbo drivers and other pieces, so I know the hardware is good
> and can work this way if the driver supports it.
>
> So here are my questions for those who have used the staging driver:
> * Should I be compiling it as a module, or as part of the kernel?

I prefer builtin, but doesnt matter really.

> * If I'm compiling it as part of the kernel, what kernel parameters do
> I use to activate it?

None

> I tried to guess based on past experience with
> non-DRM framebuffer drivers, but I get the impression that DRM
> framebuffers are different, and I don't really have any experience
> there.
> * If I'm compiling it as a module, is there some sort of incantation
> to make the framebuffer device show up when I insert the module?
> Currently, when I insmod psb_gfx.ko, nothing appears in /proc/fb, or
> in /dev. I'm using udev. If I do "mknod /dev/fb0 c 29 0", then both
> fbset and Xfbdev give me "no such device" errors.
>

So something not working right.

> I'll stop there for now, in case I'm entirely on the wrong track, but
> I'm happy to provide more detail if anyone is able to help. I'm very
> motivated to get this working, and if there's anything I can do to
> help with development or testing of the driver going forward, I'd be
> happy to do so.
>

Im running linux-next since the patches first arrived, works fine so far.
Got a sony vaio P.

> Thanks,
> Greg
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2011-03-12 17:01:19

by Greg Brigley

[permalink] [raw]
Subject: Re: How to use gma500 framebuffer driver?

Thanks guys. I went to retrieve a dmesg dump for Alan, and thought I
should really do it without some other modules I had loaded, so the
output would be less cluttered. When I did that, the framebuffer
worked!

I'll figure out which other module was causing the trouble and report back.

As for the mirrored display, is this something I might reasonably take
on myself, having no experience with video drivers? If so, pointers
for where to start looking would be great.

Greg



On Fri, Mar 11, 2011 at 2:34 PM, Alan Cox <[email protected]> wrote:
>> 0e83f46d3869a5255a04b875bb885bd141a609ef, from Feb 26 - the last
>> commit on drivers/staging/gma500, and now I can build successfully,
>> but have not succeeded in producing video output.
>
> Currently it works on the Dell mini 10 and some other panels, but I know
> it's not yet working on quite a few other setups.
>
>> I guess I'll start by saying what I'm trying to do, to make sure I'm
>> not misguided in trying this in the first place. ?I want to run Xfbdev
>> and drive both an LVDS and HDMI display at the same time (mirrored).
>> I don't need 2d or 3d acceleration. ?I don't see an indication that
>> anyone else has tried mirrored displays with this driver, and I don't
>> mind being the first, but should it work in theory? ?If it's not
>> supported, would it be difficult to add?
>
> It's on the todo list, as is non mirrored dual display.
>
>> So here are my questions for those who have used the staging driver:
>> * Should I be compiling it as a module, or as part of the kernel?
>
> Either - it's probably best tested as a module for the moment
>
>> * If I'm compiling it as a module, is there some sort of incantation
>> to make the framebuffer device show up when I insert the module?
>
> That would be the default behaviour providing it manages to set up the
> port. If it doesn't it will stay in text mode
>
>> Currently, when I insmod psb_gfx.ko, nothing appears in /proc/fb, or
>> in /dev. ?I'm using udev. ?If I do "mknod /dev/fb0 c 29 0", then both
>> fbset and Xfbdev give me "no such device" errors.
>
> What shows up in "dmesg" ?
>
> Alan
>

2011-03-12 20:54:50

by Alan

[permalink] [raw]
Subject: Re: How to use gma500 framebuffer driver?

On Sat, 12 Mar 2011 12:01:17 -0500
Greg Brigley <[email protected]> wrote:

> Thanks guys. I went to retrieve a dmesg dump for Alan, and thought I
> should really do it without some other modules I had loaded, so the
> output would be less cluttered. When I did that, the framebuffer
> worked!

It will probably fail if you have the vesa framebuffer driver enabled or
vga16fb.

> I'll figure out which other module was causing the trouble and report back.

That would be useful info.

> As for the mirrored display, is this something I might reasonably take
> on myself, having no experience with video drivers? If so, pointers
> for where to start looking would be great.

There are three things we need to do before we can do multi display
properly

- debug non panel outputs so the HDMI and other ports work on all systems
- an actual KMS X server
- a memory allocator (although in theory we don't need that if we stick
to mirrored)