Skip to contentSkip to conversation

GMA500 support

DISCUSSION Kristoffer Ericson 4 participants 15 messages Nov 21, 2011 – Mar 28, 2012

lore
Share & tools
lore
#0 lore raw

Greetings,

Im syncing my gma500 tree to all the patches I see pass through the kernel mailinglist and its progressing well.
However, It would be nice with an todo list or a more practical this-works list. I know its not a priority but would simplify alot for end users.

Best wishes
Kristoffer Ericson

#1 lore raw
Quoted 6 lines · On Mon, 21 Nov 2011 19:29:10 +0100 Kristoffer Ericson…

Greetings,

Im syncing my gma500 tree to all the patches I see pass through the kernel mailinglist and its progressing well.
However, It would be nice with an todo list or a more practical this-works list. I know its not a priority but would simplify alot for end users.

If you configure it in the following should work on GMA500/600
- internal laptop displays including backlight
- external svga
- mode setting via KMS
- framebuffer console
- the framebuffer X server (and once out generally Dave Airlie's generic KMS X server)
- suspend/resume

The following I know don't work
- Huge external displays so large they won't fit in 8MB at init time (causes a crash)
- Using the vesa X server with it - this confuses stuff and isn't fixable, it's a "wrong user configuration"

Unsupported
- 2D hardware acceleration except console scrolling (as it seems to be too slow to be useful). I may add some 2D bits later where they do help (eg back to front blitting may be worth it just about)
- 3D engine (no public documentation)
- Video playback acceleration. In theory there is enough info in the VAAPI code for GMA500/600 that has been published and in the old 'binary X/source kernel' driver to do this but someone will have to work on it if they want it
- Dell Mini HDMI port. This seems to be some kind of external bridge chip. Being a TV luddite I don't yet own an HDMI capable display to test.

And I'm sure we have a few bugs left !

Alan

#2 lore raw
Quoted 5 lines · Alan Cox
Quoted 2 lines · On Mon, 21 Nov 2011 19:29:10 +0100 Kristoffer Ericson wrote:

Greetings,

Quoted 8 lines
Quoted 4 lines

Im syncing my gma500 tree to all the patches I see pass through the kernel mailinglist and its progressing well.
However, It would be nice with an todo list or a more practical this-works list. I know its not a priority but would simplify alot for end users.

If you configure it in the following should work on GMA500/600
- internal laptop displays including backlight
- external svga

Worth pointing out is that DDC for external displays isn't working until my fixes for SDVO gets in there. Manually setting a mode works fine. Otherwise you'll default to 1280x1024 (or was it 1024x768?).

Quoted 5 lines

- mode setting via KMS
- framebuffer console
- the framebuffer X server (and once out generally Dave Airlie's generic KMS X server)
- suspend/resume

- Sync to vblank is supported on gma500

Quoted 7 lines

The following I know don't work
- Huge external displays so large they won't fit in 8MB at init time (causes a crash)
- Using the vesa X server with it - this confuses stuff and isn't fixable, it's a "wrong user configuration"

Quoted 12 lines

Unsupported
- 2D hardware acceleration except console scrolling (as it seems to be too slow to be useful). I may add some 2D bits later where they do help (eg back to front blitting may be worth it just about)
- 3D engine (no public documentation)
- Video playback acceleration. In theory there is enough info in the VAAPI code for GMA500/600 that has been published and in the old 'binary X/source kernel' driver to do this but someone will have to work on it if they want it
- Dell Mini HDMI port. This seems to be some kind of external bridge chip. Being a TV luddite I don't yet own an HDMI capable display to test.

I suspect this is just DVI with a HDMI connector. That is the case for Fit-PC2. It is hooked up to the SDVO and provides video but no audio.

Quoted 5 lines

And I'm sure we have a few bugs left !

Alan

#3 lore raw
Quoted 10 lines · Patrik Jakobsson
Quoted 9 lines · Alan Cox
Quoted 6 lines · On Mon, 21 Nov 2011 19:29:10 +0100 Kristoffer Ericson wrote:

Greetings,

Im syncing my gma500 tree to all the patches I see pass through the kernel mailinglist and its progressing well.
However, It would be nice with an todo list or a more practical this-works list. I know its not a priority but would simplify alot for end users.

Big thanks for list!

Quoted 3 lines
Quoted 3 lines

If you configure it in the following should work on GMA500/600
- internal laptop displays including backlight

It works for me, however if external display is connected it defaults to 1024x768 (as patrik pointed out). The internal screen gets mirrored and therefore looses about 600x768 pixels (which look like memory garbage).
Without external monitor however I get "full" sized screen (1600x768). My laptop is a sony vgn-p21z/r so its a wide-screen laptop, therefore the weird resolution.

Quoted 6 lines
Quoted 1 line

- external svga

Worth pointing out is that DDC for external displays isn't working until my fixes for SDVO gets in there. Manually setting a mode works fine. Otherwise you'll default to 1280x1024 (or was it 1024x768?).

Quoted 12 lines
Quoted 5 lines

- mode setting via KMS
- framebuffer console
- the framebuffer X server (and once out generally Dave Airlie's generic KMS X server)
- suspend/resume

- Sync to vblank is supported on gma500

Quoted 4 lines

The following I know don't work
- Huge external displays so large they won't fit in 8MB at init time (causes a crash)

Im not able to set any resolution at all for the external screen, its always 1024x768. I cannot be 100% sure that its not my external screen not accepting the 1600x768 resolution and they therefor find the largest compatible resolution.

Quoted 8 lines
Quoted 8 lines

- Using the vesa X server with it - this confuses stuff and isn't fixable, it's a "wrong user configuration"

Unsupported
- 2D hardware acceleration except console scrolling (as it seems to be too slow to be useful). I may add some 2D bits later where they do help (eg back to front blitting may be worth it just about)
- 3D engine (no public documentation)

Can any parts of the i915 be used?

Quoted 16 lines
Quoted 7 lines

- Video playback acceleration. In theory there is enough info in the VAAPI code for GMA500/600 that has been published and in the old 'binary X/source kernel' driver to do this but someone will have to work on it if they want it
- Dell Mini HDMI port. This seems to be some kind of external bridge chip. Being a TV luddite I don't yet own an HDMI capable display to test.

I suspect this is just DVI with a HDMI connector. That is the case for Fit-PC2. It is hooked up to the SDVO and provides video but no audio.

Quoted 5 lines

And I'm sure we have a few bugs left !

Alan

#4 lore raw
Quoted 3 lines · On Thu, 24 Nov 2011 17:20:14 +0100 Kristoffer Ericson…

It works for me, however if external display is connected it defaults to 1024x768 (as patrik pointed out). The internal screen gets mirrored and therefore looses about 600x768 pixels (which look like memory garbage).

That sounds like a bug in the internal screen set up. In mirrorred mode picking 1024x768 is reasonable enough but it ought to be centreing and/or scaling the display.

Quoted 7 lines
Quoted 3 lines

Worth pointing out is that DDC for external displays isn't working until my fixes for SDVO gets in there. Manually setting a mode works fine. Otherwise you'll default to 1280x1024 (or was it 1024x768?).

Im not able to set any resolution at all for the external screen, its always 1024x768. I cannot be 100% sure that its not my external screen not accepting the 1600x768 resolution and they therefor find the largest compatible resolution.

See above 8)

Quoted 6 lines
Quoted 4 lines
Quoted 4 lines

- 2D hardware acceleration except console scrolling (as it seems to be too slow to be useful). I may add some 2D bits later where they do help (eg back to front blitting may be worth it just about)
- 3D engine (no public documentation)

Can any parts of the i915 be used?

Alas not

Alan

#5 lore raw
In reply to Kristoffer Ericson
Quoted 2 lines
Quoted 2 lines

I suspect this is just DVI with a HDMI connector. That is the case for Fit-PC2. It is hooked up to the SDVO and provides video but no audio.

I've now got an HDMI capable display *and* the right cables. Testing the Dell mini 10 shows that it works although it's defaulting to the wrong mode and there is stuff on the display below the picture that shouldn't be.

So I now also have a debug case for the scaling or whatever is actually going on problem.

Alan

#6 lore raw
Quoted 8 lines
Quoted 2 lines
Quoted 2 lines

I suspect this is just DVI with a HDMI connector. That is the case for Fit-PC2. It is hooked up to the SDVO and provides video but no audio.

I've now got an HDMI capable display *and* the right cables. Testing the Dell mini 10 shows that it works although it's defaulting to the wrong mode and there is stuff on the display below the picture that shouldn't be.

Quoted 4 lines

So I now also have a debug case for the scaling or whatever is actually going on problem.

From what I've seen on my Asus 1201HA, the mode the framebuffer code gets is

the biggest common mode of both displays. Since we get garbage outside the scan-out buffer on the LVDS output I assume that the common mode doesn't find it's way to LVDS mode setting (or maybe it just ignores it).

Also, do we know if the LVDS panel fitter code actually works? I don't have access to my hardware at the moment but it would be interesting to see what happens if you set a non-native resolution for LVDS at boot that overrides the native one (without having anything connected to SDVO). Maybe you have tried this already?

One thing I recall reading somewhere is that the panel fitter needs to be restored upon re-enabling the pipe, and that the PFIT_CONTROL register must be written to while the pipe is off. Doing DPMS off and then DPMS on might disable the panel fitter.

#7 lore raw
Quoted 4 lines
Quoted 1 line

From what I've seen on my Asus 1201HA, the mode the framebuffer code gets is

the biggest common mode of both displays. Since we get garbage outside the scan-out buffer on the LVDS output I assume that the common mode doesn't find it's way to LVDS mode setting (or maybe it just ignores it).

It seems to be getting the wrong mode. I've not had much time to dig further into this yet.

#8 lore raw
In reply to Alan Cox
Quoted 25 lines · Alan Cox
Quoted 6 lines · On Mon, 21 Nov 2011 19:29:10 +0100 Kristoffer Ericson…

Greetings,

Im syncing my gma500 tree to all the patches I see pass through the kernel mailinglist and its progressing well.
However, It would be nice with an todo list or a more practical this-works list. I know its not a priority but would simplify alot for end users.

If you configure it in the following should work on GMA500/600
- internal laptop displays including backlight
- external svga
- mode setting via KMS
- framebuffer console
- the framebuffer X server (and once out generally Dave Airlie's generic KMS X server)
- suspend/resume

The following I know don't work
- Huge external displays so large they won't fit in 8MB at init time (causes a crash)
- Using the vesa X server with it - this confuses stuff and isn't fixable, it's a "wrong user configuration"

Quoted 5 lines

Unsupported
- 2D hardware acceleration except console scrolling (as it seems to be too slow to be useful). I may add some 2D bits later where they do help (eg back to front blitting may be worth it just about)
- 3D engine (no public documentation)

I understand that the chip is powerv SGX 535, any likelyhood of getting those datasheets opened by the company?

Quoted 11 lines

- Video playback acceleration. In theory there is enough info in the VAAPI code for GMA500/600 that has been published and in the old 'binary X/source kernel' driver to do this but someone will have to work on it if they want it
- Dell Mini HDMI port. This seems to be some kind of external bridge chip. Being a TV luddite I don't yet own an HDMI capable display to test.

And I'm sure we have a few bugs left !

Alan

#9 lore raw
Quoted 4 lines
Quoted 1 line

- 3D engine (no public documentation)

I understand that the chip is powerv SGX 535, any likelyhood of getting those datasheets opened by the company?

I'd be surprised.

Quoted 5 lines
Quoted 5 lines

- Dell Mini HDMI port. This seems to be some kind of external bridge chip. Being a TV luddite I don't yet own an HDMI capable display to test.

And I'm sure we have a few bugs left !

I do now have an HDMI capable display. Just the ASUS I bought came with every cable as standard but not HDMI. I'll finally test the HDMI bits when the cable arrives !

Alan

#10 lore raw
In reply to Alan Cox
Quoted 4 lines · Alan Cox

- Video playback acceleration. In theory there is enough info in the VAAPI code for GMA500/600 that has been published and in the old 'binary X/source kernel' driver to do this but someone will have to work on it if they want it

Hi Alan,

Are you referring to the VAAPI driver found in this repository?

http://cgit.freedesktop.org/vaapi/pvr-driver

From a quick look this seems to be developed for Poulsbo, but since you mention GMA600 explicitly, is it supposed to work on newer hardware as well? I'm specifically interested in the Atom N2600 which has a GMA3600 (0x8086:0x0be1 to be exact).

I'm also not sure which kernel driver this was developed against. It looks like it might have been against the initial staging variant. At least it still has some references to TTM, so I guess anyone wanting to port it to the new kernel driver would have to convert those to GEM.

Do you think that would be doable? Can you say if the GMA3600 is sufficiently similar to make that driver work?

Thierry

#11 lore raw
Quoted 4 lines

From a quick look this seems to be developed for Poulsbo, but since you mention GMA600 explicitly, is it supposed to work on newer hardware as well? I'm specifically interested in the Atom N2600 which has a GMA3600 (0x8086:0x0be1 to be exact).

I believe there are GMA600 and 3600 bits buried in the packages for Maemo/Meego/Tizen vaapi code but I've not looked.

Quoted 4 lines

I'm also not sure which kernel driver this was developed against. It looks like it might have been against the initial staging variant. At least it still has some references to TTM, so I guess anyone wanting to port it to the new kernel driver would have to convert those to GEM.

The one for the 3D/2D non-free user space driver. I've been working on Cedartrail primarily at the moment so not had time to dig further into the video playback logic. I did get the decoder detected and mapped happily but haven't yet had time to persuade the firmware to upload.

It'll also need the driver extending to support the overlay planes feature in the DRI/DRM layer.

Quoted 2 lines

Do you think that would be doable? Can you say if the GMA3600 is sufficiently similar to make that driver work

I don't know for sure.

Alan

#12 lore raw
Quoted 18 lines · Alan Cox
Quoted 4 lines

From a quick look this seems to be developed for Poulsbo, but since you mention GMA600 explicitly, is it supposed to work on newer hardware as well? I'm specifically interested in the Atom N2600 which has a GMA3600 (0x8086:0x0be1 to be exact).

I believe there are GMA600 and 3600 bits buried in the packages for Maemo/Meego/Tizen vaapi code but I've not looked.

Quoted 4 lines

I'm also not sure which kernel driver this was developed against. It looks like it might have been against the initial staging variant. At least it still has some references to TTM, so I guess anyone wanting to port it to the new kernel driver would have to convert those to GEM.

The one for the 3D/2D non-free user space driver. I've been working on Cedartrail primarily at the moment so not had time to dig further into the video playback logic. I did get the decoder detected and mapped happily but haven't yet had time to persuade the firmware to upload.

Quoted 7 lines

It'll also need the driver extending to support the overlay planes feature in the DRI/DRM layer.

Quoted 2 lines

Do you think that would be doable? Can you say if the GMA3600 is sufficiently similar to make that driver work

I don't know for sure.

Thanks, I'll dig some more.

Thierry

#13 lore raw
In reply to Kristoffer Ericson
Quoted 4 lines · Kristoffer Ericson

Greetings,

Im syncing my gma500 tree to all the patches I see pass through the kernel mailinglist and its progressing well.

I remember you talking about this, where can I get your tree?

Quoted 6 lines

However, It would be nice with an todo list or a more practical this-works list. I know its not a priority but would simplify alot for end users.

Best wishes
Kristoffer Ericson

Thanks
Patrik

#14 lore raw
Quoted 9 lines · Patrik Jakobsson
Quoted 4 lines · Kristoffer Ericson

Greetings,

Im syncing my gma500 tree to all the patches I see pass through the kernel mailinglist and its progressing well.

I remember you talking about this, where can I get your tree?

Im working through my kernel.org re-authorization process (require signatures on my key), otherwise it used to be located on:

git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-gma500.git

I hope to get it up within one or two weeks. Ive applied patches to my local tree which is based on 3.1 currently (+ all latest patches).

Quoted 9 lines
Quoted 6 lines

However, It would be nice with an todo list or a more practical this-works list. I know its not a priority but would simplify alot for end users.

Best wishes
Kristoffer Ericson

Thanks
Patrik