[openfirmware] [commit] r2772 - cpu/arm/olpc cpu/x86/pc/olpc/via dev

repository service svn at openfirmware.info
Tue Dec 13 22:37:04 CET 2011


Author: wmb
Date: Tue Dec 13 22:37:03 2011
New Revision: 2772
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2772

Log:
OLPC XO-3 - Better management of on-screen keyboard.  Fewer/no glitches in transitions from menu to scroller, etc.

Modified:
   cpu/arm/olpc/build-fw.fth
   cpu/arm/olpc/exc7200-touchscreen.fth
   cpu/arm/olpc/rm3150-touchscreen.fth
   cpu/arm/olpc/testitems.fth
   cpu/x86/pc/olpc/via/mfgtest.fth
   dev/softkeyboard.fth

Modified: cpu/arm/olpc/build-fw.fth
==============================================================================
--- cpu/arm/olpc/build-fw.fth	Tue Dec 13 22:36:57 2011	(r2771)
+++ cpu/arm/olpc/build-fw.fth	Tue Dec 13 22:37:03 2011	(r2772)
@@ -541,7 +541,6 @@
 \ so exiting from emacs doesn't invoke the diag menu.
 ' quit to user-interface
 fload ${BP}/cpu/x86/pc/olpc/via/mfgtest.fth
-fload ${BP}/cpu/arm/olpc/testitems.fth
 
 [ifdef] notyet
 fload ${BP}/cpu/x86/pc/olpc/via/bootmenu.fth
@@ -619,8 +618,6 @@
 fload ${BP}/cpu/x86/pc/olpc/gui.fth
 fload ${BP}/cpu/x86/pc/olpc/strokes.fth
 fload ${BP}/cpu/x86/pc/olpc/plot.fth
-\+ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/testinstructions.fth
-\+ olpc-cl2 fload ${BP}/cpu/arm/olpc/1.75/testinstructions.fth
 
 fload ${BP}/cpu/arm/mmp2/dramrecal.fth
 
@@ -954,6 +951,10 @@
 : ?text-on  ( -- )  key?  if  text-on visible  then  ;
 [then]
 
+fload ${BP}/cpu/arm/olpc/testitems.fth
+\+ olpc-cl3 fload ${BP}/cpu/arm/olpc/3.0/testinstructions.fth
+\+ olpc-cl2 fload ${BP}/cpu/arm/olpc/1.75/testinstructions.fth
+
 fload ${BP}/cpu/arm/mmp2/clocks.fth
 
 : startup  ( -- )

Modified: cpu/arm/olpc/exc7200-touchscreen.fth
==============================================================================
--- cpu/arm/olpc/exc7200-touchscreen.fth	Tue Dec 13 22:36:57 2011	(r2771)
+++ cpu/arm/olpc/exc7200-touchscreen.fth	Tue Dec 13 22:37:03 2011	(r2772)
@@ -8,12 +8,9 @@
 0 value screen-w
 0 value screen-h
 
-: open  ( -- okay? )
-   my-unit " set-address" $call-parent  true
-   \ Read once to prime the interrupt
-   d# 10 " get" $call-parent  4drop 4drop 2drop
-   " dimensions" $call-screen  to screen-h  to screen-w
-;
+: dimensions  ( -- w h )  screen-w  screen-h  ;
+
+: #contacts  ( -- n )  2  ;
 
 h# 7fff constant touchscreen-max-x
 h# 7fff constant touchscreen-max-y
@@ -248,7 +245,15 @@
    then
 ;
 
-: flush  ( -- )  begin  pad?  while  2drop 3drop  repeat  ;
+: flush  ( -- )  begin  d# 10 ms  pad?  while  2drop 3drop  repeat  ;
+
+: open  ( -- okay? )
+   my-unit " set-address" $call-parent  true
+   \ Read once to prime the interrupt
+   d# 10 " get" $call-parent  4drop 4drop 2drop
+   " dimensions" $call-screen  to screen-h  to screen-w
+   flush
+;
 
 : close  ( -- )  flush  ;
 

Modified: cpu/arm/olpc/rm3150-touchscreen.fth
==============================================================================
--- cpu/arm/olpc/rm3150-touchscreen.fth	Tue Dec 13 22:36:57 2011	(r2771)
+++ cpu/arm/olpc/rm3150-touchscreen.fth	Tue Dec 13 22:37:03 2011	(r2772)
@@ -32,10 +32,12 @@
    touchscreen-present?  dup  if   ( okay? )
       0 1 ts-b!                    ( okay? )  \ Set to polled mode
    then                            ( okay? )
+   " dimensions" $call-screen  to screen-h  to screen-w
 ;
-: close  ( -- )
-   h# 82 1 ts-b!  \ Restore default interrupt mode
-;
+
+: dimensions  ( -- w h )  screen-w  screen-h  ;
+
+: #contacts  ( -- n )  d# 10  ;
 
 : pad-events  ( -- n*[ x.hi x.lo y.hi y.lo z ]  #contacts )
    d# 99 gpio-pin@  if  false exit  then
@@ -102,6 +104,8 @@
    then
 ;
 
+: flush  ( -- )  begin  d# 10 ms  pad?  while  2drop 3drop  repeat  ;
+
 \ Display raw data from the device, stopping when a key is typed.
 : show-pad  ( -- )
    begin
@@ -110,6 +114,11 @@
 ;
 [then]
 
+: close  ( -- )
+\   flush
+   h# 82 1 ts-b!  \ Restore default interrupt mode
+;
+
 : button  ( color x -- )
    screen-h d# 50 -  d# 200  d# 30  fill-rectangle-noff
 ;
@@ -147,7 +156,6 @@
 ;
 
 : track-init  ( -- )
-   " dimensions" $call-screen  to screen-h  to screen-w
    screen-ih package( bytes/line )package  to /line
    load-base ptr !
 ;

Modified: cpu/arm/olpc/testitems.fth
==============================================================================
--- cpu/arm/olpc/testitems.fth	Tue Dec 13 22:36:57 2011	(r2771)
+++ cpu/arm/olpc/testitems.fth	Tue Dec 13 22:37:03 2011	(r2772)
@@ -20,6 +20,10 @@
 d# 5 to #mfgcols
 d# 4 to #mfgrows
 
+\+ olpc-cl3  : screen-kbd-scroller  ( -- )  blank-screen  open-screen-keyboard  ;
+\+ olpc-cl3  ' screen-kbd-scroller to scroller-on
+\+ olpc-cl3  ' close-screen-keyboard to scroller-off
+
 : cpu-item      ( -- )  " /cpu"       mfg-test-dev  ;
 : battery-item  ( -- )  " /battery"   mfg-test-dev  ;
 : spiflash-item ( -- )  " /flash"     mfg-test-dev  ;
@@ -30,14 +34,14 @@
 : int-sd-item   ( -- )  " int:0"      mfg-test-dev  ;
 \- olpc-cl3 : ext-sd-item   ( -- )  " ext:0"      mfg-test-dev  ;
 : rtc-item      ( -- )  " /rtc"       mfg-test-dev  ;
-: display-item  ( -- )  " /display"   mfg-test-dev  ;
+: display-item  ( -- )  " /display"   gfx-test-dev  ;
 : audio-item    ( -- )  " /audio"     mfg-test-dev  ;
-: camera-item   ( -- )  " /camera"    mfg-test-dev  ;
+: camera-item   ( -- )  " /camera"    gfx-test-dev  ;
 : wlan-item     ( -- )  " /wlan"      mfg-test-dev  ;
 : timer-item    ( -- )  " /timer"     mfg-test-dev  ;
 \- olpc-cl3 : touchpad-item ( -- )  " /touchpad"  mfg-test-dev  ;
-\+ olpc-cl3 : touchscreen-item ( -- )  " /touchscreen"  mfg-test-dev  ;
-\- olpc-cl3 : keyboard-item ( -- )  " keyboard"   mfg-test-dev  ;
+\+ olpc-cl3 : touchscreen-item ( -- )  " /touchscreen"  gfx-test-dev  ;
+\- olpc-cl3 : keyboard-item ( -- )  " keyboard"   gfx-test-dev  ;
 : switch-item   ( -- )  " /accelerometer" mfg-test-dev  " /switches"  mfg-test-dev  ;
 : leds-item     ( -- )  " /leds"      mfg-test-dev   ;
 

Modified: cpu/x86/pc/olpc/via/mfgtest.fth
==============================================================================
--- cpu/x86/pc/olpc/via/mfgtest.fth	Tue Dec 13 22:36:57 2011	(r2771)
+++ cpu/x86/pc/olpc/via/mfgtest.fth	Tue Dec 13 22:37:03 2011	(r2772)
@@ -48,7 +48,7 @@
 ;
 
 : mfg-test-result  ( error? -- )
-if               ( return-code )
+   if               ( return-code )
       ?dup  if                                         ( return-code )
          ??cr ." Selftest failed. Return code = " .d cr
          mfg-color-red sq-border!
@@ -75,15 +75,23 @@
    cursor-off  scroller-off   gui-alerts  refresh
    flush-keyboard
 ;
-: mfg-test-dev  ( $ -- )
-   scroller-on
-   ??cr  ." Testing " 2dup type cr                ( $ )
+: (mfg-test-dev)  ( $ -- error? )
    2dup locate-device  if                         ( $ )
       ." Can't find device node " type cr  exit   ( -- )
    else                                           ( $ phandle )
       drop                                        ( $ )
    then                                           ( $ )
    " selftest" execute-device-method              ( error? )
+;
+: mfg-test-dev  ( $ -- )
+   scroller-on
+   ??cr  ." Testing " 2dup type cr                ( $ )
+   (mfg-test-dev)
+   mfg-test-result
+;
+: gfx-test-dev  ( $ -- )
+   (mfg-test-dev)
+   scroller-on
    mfg-test-result
 ;
 

Modified: dev/softkeyboard.fth
==============================================================================
--- dev/softkeyboard.fth	Tue Dec 13 22:36:57 2011	(r2771)
+++ dev/softkeyboard.fth	Tue Dec 13 22:37:03 2011	(r2772)
@@ -487,10 +487,11 @@
 : open  ( -- okay? )
    make-keys
    draw-keyboard
-   flush
+   " flush" $call-parent
    true
 ;
 : close  ( -- )
+   flush
    erase-keyboard
 ;
 



More information about the openfirmware mailing list