#7958 BLOC Future : DCON showed old screen image during suspend, with extra black "dusty" spots

Zarro Boogs per Child bugtracker at laptop.org
Wed Dec 24 04:54:57 EST 2008


#7958: DCON showed old screen image during suspend, with extra black "dusty" spots
---------------------------------+------------------------------------------
           Reporter:  gnu        |       Owner:  dilinger      
               Type:  defect     |      Status:  new           
           Priority:  blocker    |   Milestone:  Future Release
          Component:  kernel     |     Version:  not specified 
         Resolution:             |    Keywords:                
        Next_action:  never set  |    Verified:  0             
Deployment_affected:             |   Blockedby:                
           Blocking:             |  
---------------------------------+------------------------------------------

Comment(by wmb at firmworks.com):

 I have been experimenting (using OFW) with the timing of deasserting
 DCONLOAD relative to the CPU's vertical scan line counter (register
 DC+0x6c).  If you deassert between lines 0 and 35 inclusive, you get
 screen artifacts near the bottom of the screen while the DCON is in frozen
 mode.  The artifacts are worse when the deassertion happens at scan line
 0, dwindling to rare artifacts on the last scan line of the screen when
 deasserting at scan line 35.

 The following deassertion procedure works reliably for me, without
 artifacts:

 Step 1) Wait until vertical sync is reported in that register (bit 29).
 Step 2) Wait until scan line 38 is reported in the low 11 bits of that
 register.
 Step 3) Deassert DCONLOAD

 In Step 2, you can wait for any line between 36 and 911 inclusive; it
 makes no difference.

 It is tempting to consider a shorter-wait procedure, which doesn't work:

 Bad) Wait until the scan line number is greater than 35.

 That procedure does eliminate artifacts, but it can lose (not display
 during frozen mode) the last thing that was written to the frame buffer
 prior to the deassertion of DCONLOAD if that last write happened in the
 same frame time as the deassertion.

-- 
Ticket URL: <http://dev.laptop.org/ticket/7958#comment:5>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system


More information about the Bugs mailing list