XO-1 DCON trouble with new kernels
Mitch Bradley
wmb at laptop.org
Sat Nov 13 18:30:53 EST 2010
The DCON does not "see" video memory directly - it works with the
real-time display data that is driven onto the wires that would normally
go to an LCD panel.
I wonder if, in the VT case, the driver is stopping the display
controller soon after clearing the DCONLOAD pin? In that case, I can
imagine that the DCON would be unable to capture new data because it
would no longer have PIXCLK, HYSNC, and VSYNC to time its acquisition of
a frame of data.
Naively, I would think that the loss of those timing signals might
prevent the "switched" interrupt, but I can't think of any other
possibility offhand, so check that. Maybe as a quick test you could add
a 40 ms delay right after clearing DCONLOAD, thus ensuring that the
display controller doesn't turn off until a couple of frame times have
elapsed.
On 11/13/2010 1:08 PM, Daniel Drake wrote:
> Hi,
>
> I'm hoping that someone can point me in the right direction, regarding
> how the DCON works.
>
> On new kernels, XO-1 DCON freeze doesn't work when you are on the
> virtual terminal. The current display does not seem to get loaded into
> the DCON memory, but then the freeze (video source switch) does
> happen.
> The DCON code has not changed between these kernel versions.
>
> It still works OK when you are in X.
>
> To illustrate more:
> 1. Boot up XO
> 2. Change to virtual terminal
> 3. echo 1> /sys/devices/platform/dcon/freeze
>
> You now see the image that OFW froze the screen with before booting Linux
>
> 4. echo 0> /sys/devices/platform/dcon/freeze
> Unfreeze works fine.
>
> 5. Go into X
> 6. echo 1> /sys/devices/platform/dcon/freeze
> Display freezes fine, with the X display contents
> 7. echo 0> /sys/devices/platform/dcon/freeze
> 8. Go to virtual terminal
> 9. echo 1> /sys/devices/platform/dcon/freeze
> Display freezes fine, with the X display contents that were frozen in step 6
>
> I have examined the steps taken between the working (X) and
> non-working (VT) cases. They appear the same - after requesting the
> switch, an interrupt arrives, and status is read back as 2 at that
> time (switch to DCON mode complete).
>
> Any idea what could be the cause of this?
> For example, does the DCON only copy a certain region of video memory?
> Perhaps Linux VT is now using a different region.
>
> Or, any suggested diagnostics?
>
> Thanks,
> Daniel
More information about the Devel
mailing list