I'm trying to get DPMS screen blanking to work on a ViewSonic
ViewPad 1000, but I'm concerned about the code which has
appeared in 4.2.0.
In 4.1.0, DPMSSet indirectly called VESADisplayPowerManagementSet,
which called vgaHWDPMSSet, which called stdwriteCrtc via a pointer,
which contained the lines
outb(hwp->IOBase + hwp->PIOOffset + VGA_CRTC_INDEX_OFFSET, index);
outb(hwp->IOBase + hwp->PIOOffset + VGA_CRTC_DATA_OFFSET, value);
In 4.2.0, DPMSSet indirectly called VESADisplayPowerManagementSet,
which employs the WriteCrtc macro which expands to
outb(VGA_CRTC_INDEX_OFFSET, index);\
outb(VGA_CRTC_DATA_OFFSET, value)
That seemed clearly bogus, and fortunatly for my peace of mind,
in yesterday's 4.2.0 CVS fetch, DPMSSet indirectly called
VESADisplayPowerManagementSet, which employs the
WriteCrtc macro which now expands to
outb(pVesa->ioBase + VGA_CRTC_INDEX_OFFSET, index);\
outb(pVesa->ioBase + VGA_CRTC_DATA_OFFSET, value)
>From inspection, this seems better, but isn't there still the need
for some additional offset? Or was the presence of "hwp->PIOOffset"
a red herring?
In any event, "xset dpms force off" doesn't work. I learned to
put 'Option "dpms" "on"' in the "Screen" section, and with the
insertion of "fprintf" statements, I have confirmed WriteCrtc
gets called. Shortly after the screen blanks, xf86DPMSInit
is called again, and the screen comes back on.
Since I have no specifications for the hardware interface,
I can only reason by analogy and comparison. If someone
such as the author of these changes (is it Marc La France?)
would drop me a note, I'm quite willing to help work on this
part of the driver.
It may be that DPMS works (mostly), but something further
on is failing causing th reset. Anyone have suggestions?
Randolph Bentson
[EMAIL PROTECTED]
___
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert