Embedded Intel Atom® Processors
Technological Conversations about Intel Atom® Hardware, Software, Firmware, Graphics

IEGD API for Windows Embedded

FMett
Beginner
4,025 Views

First-time poster and relatively new user here. Thanks for your patience and help. Sorry if this isn't the right place to be asking this question.

Is there an API for Windows XP embedded SP3 that has the same functionality as is provided in IEGDGUI.exe? I'd like to be able to programmatically set displays to clone mode and set the resolution and bit depth.

Thanks.

0 Kudos
1 Solution
FMcNu1
Valued Contributor I
2,162 Views

Hi fm:

Good news, it appears that your community account has been upgraded to private status which provides you with access to Intel Confidential material.

You can find the IEGD API documentation that you requested in the e-Help desk by http://embedded.communities.intel.com/message/2381 http://embedded.communities.intel.com/message/2381" target="_self" rel="nofollow">clicking here.

Hope this helps.

Good Luck!

View solution in original post

0 Kudos
31 Replies
DDeMe1
Beginner
509 Views

Again, thanks.

A semi-related question - please tell me if its beyond this forum.

The esc function INTEL_ESCAPE_GET_AVAIL_PD_ATTRIBUTES returns 17 attributes for my LVDS port to my test program, several of which I recognize as how I've configured IEGD. This includes the LVDS attributes we've discussed. However it doesn't return attribute 20 which is FP_BACKLIGHT_ENABLE. I would think I'd use this to turn on/off the backlight, as I don't see any other attributes in the LVDS specific (B.2.1) table for this nor any more specific esc functions. Why don't I retreive this?

And related to that, the esc function to update attributes takes as input port# plus the whole struct that defines the attribute - including ID, name, current value, default value. Does this all need be specified or only ID and current value? I would have thought I could read it, update current value, and write it back - except it doesn't show up as per part 1 of this discussion, so reading is a problem. I look at SDK the hal function iegd_set_port_attributes() as my model, but it takes the whole attribute struct from outside the function - and I couldn't find any callers of this in any sdk sample code.

Sorry to belabor this backlight stuff but I have to have this functionality and its a lot less obvious than I would have guessed.

0 Kudos
FMcNu1
Valued Contributor I
509 Views

Hello again, DonLPI -

Good news it appears that your request for PRIVATE member status in the community has been approved. You may now access confidential documents and other resources as well as the e-Help desk which is staffed by Intel technical representatives.

I would like to thank Intel's Kirk for assisting you thus far and ask that you transition your discussion over to e-Help which is a more appropriate forum for the troubleshooting path you are on.

Follow this link below to find the API document you have requested:

http://embedded.communities.intel.com/message/3201 http://embedded.communities.intel.com/message/3201" target="_blank" rel="nofollow">http://embedded.communities.intel.com/message/3201

Good Luck,

Felix

0 Kudos
FMett
Beginner
509 Views

I'm trying to change LVDS color balance in my app. The documentation for INTEL_ESCAPE_SET_PD_ATTRIBUTES escape code says you can pass in a struct called iegd_esc_set_attr_t. However, I can't find it's definition in the API document. I made a guess at its definition and after a few tries was able to get the brightness values to change.

It appears that iegd_esc_set_attr_t is probably the same as a iegd_esc_attr_t with a port number at the beginning. And only the id and current_value fields of the iegd_esc_attr_t are used. Can anyone verify this? I'd like to know that what I pass in won't corrupt some other driver setting, or if my guessed struct is not large enough I don't want the stack to be corrupted by the iegd escape handler.

Thanks,

fm

0 Kudos
DDeMe1
Beginner
509 Views

This struct is defined in iegd_escape.h in the SDK. That is found in the .zip file generated by driver install creation. Its in:

...\IEGD_10_2_Windows\sdk\src\iegdui

The port number, an unsigned long, prefixes the iegd_esc_attr_t struct, as you guessed.

0 Kudos
DDeMe1
Beginner
509 Views

I have now seen the API document, but it doesn't answer most of my questions regarding backlight control. As I earlier mentioned, the attribute FP BACKLIGHT ENABLE (# 20 on Pg 216 of IEGD users guide) would seem to be what I use to turn on/off the backlight.

But my test program which retreives all the attributes does not see this one returned by the driver when it performes the ExtEscape(INTEL_ESCAPE_GET_AVAIL_PD_ATTRIBUTES)?

But it sees others I've set during configuration, so I know the program is working.

So my questions are basically:

* Why isn't this attribute returned?

* Can I construct the iegd_esc_attr_t struct for id == 20 and current_value == state (e.g. 0==Off) even though I don't know the other struct values because it wasn't retrieved?

If whomever has driver source can see if Attrib 20 is really accessible and under what conditions I can set it, I'd appreciate it. Thanks.

0 Kudos
Kirk_B_Intel
Employee
509 Views

>I have now seen the API document, but it doesn't answer most of my questions regarding backlight control. As I earlier mentioned, the attribute FP BACKLIGHT ENABLE (# 20 on Pg 216 of IEGD users guide) would seem to be what I use to turn on/off the backlight.

But my test program which retreives all the attributes does not see this one returned by the driver when it performes the ExtEscape(INTEL_ESCAPE_GET_AVAIL_PD_ATTRIBUTES)?

But it sees others I've set during configuration, so I know the program is working.

So my questions are basically:

>* Why isn't this attribute returned?

There are two possible issues:

Do you have backlight control enabled in your config? If so, you will have put in T1 - T5 timing values for the power sequencing. When you have your config set for no backlight, we just automatically flip the backlight on and off using some default values for T1 - T5.

We do not return backlight control in the structure. I need to do some digging to make sure that we do support it.

>* Can I construct the iegd_esc_attr_t struct for id == 20 and current_value == state (e.g. 0==Off) even though I don't know the other struct values because it wasn't retrieved?

If whomever has driver source can see if Attrib 20 is really accessible and under what conditions I can set it, I'd appreciate it. Thanks.

I've never looked into this before so I need to do some digging. Ping me here again if you do not hear from me in a few days to "keep me honest" on answering you. ;-)

Kirk

0 Kudos
DDeMe1
Beginner
509 Views

Further information - yes I have backlight enabled (Port Driver) and those T1-T5 values are defined. And it does eventually get turned on. But I don't know if the driver turns it on during initialization or if Windows XP turns it on thru the driver or what the trigger is. It seems like it doesn't come on until XP login time. So XP knows how to turn it on - unless XP just enables the port and the driver turns it on when XP does that. We know XP doesn't know the IEGD escape functions.

0 Kudos
Kirk_B_Intel
Employee
509 Views

Backlight will be turned on when the port is enabled (set as the primary display, or turned on as an extended or clone display). Further, backlight will be turned off then on when a mode set occurs as part of setting the mode. Backlight is turned off when the display enters a DPMS OFF mode, and will come back on when the display is re-enabled (DPMS NORMAL mode). So far, using the DPMS is the only way for you to directly control the backlight however I am still checking.

So there was a THIRD reason for Attr 20 not being returned:

Attr 20 is for SDVO based LVDS transmitters only. I completely forgot this was on the internal LVDS so attr 20 does not apply.

0 Kudos
Kirk_B_Intel
Employee
509 Views

It looks like DPMS is the only way to control backlight on or off through the driver. There is no control interface for internal LVDS as there is from an SDVO based solution. Sorry I cannot be more help here.

0 Kudos
DDeMe1
Beginner
509 Views

I see a new IEGD version is released. Is it possible to request new features for future driver versions? I really can't beleive that a program cannot control the backlight, both on and off and brightness. The general ExtEscape() mechanism is in place, so why can't these attributes be applied to the LVDS interface?

The system we're now designing runs on battery some times - its a must that I can turn off the display and also drop the brightness when necessary. The PWM output is present in hardware, and the driver lets me configure settings for it for LVDS. Why not via attributes - changing the PWM output seems almost trivial. The on/off cant be too hard either using the attribute mechanism.

So is there a vehicle by which one can request these enhancements?

Thanks.

0 Kudos
Kirk_B_Intel
Employee
509 Views

The best mechanism to influence feature sets is either enter it via a Premier Support account, or work with your field rep to make the request. I would recommend you influence the platform teams to prioitize this feature as that is the best way to get a feature above our ZBB.

We have supported internal LVDS since the 845 days but this is the first that I have heard of anyone asking for this feature. I think I sort of always assumed it was in there also. I'm guessing we just missed asking for it in the PRD for internal, OR the development and validation teams have assumed that meant for sDVO based LVDS only.

You could add a CH7308 to your design and then the escapes and attributes will work...

Hope this help. Kirk

0 Kudos
Reply