[openfirmware] [commit] r1762 - cpu/x86/pc/olpc dev/hdaudio

repository service svn at openfirmware.info
Fri Mar 5 07:55:24 CET 2010


Author: wmb
Date: Fri Mar  5 07:55:23 2010
New Revision: 1762
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1762

Log:
OLPC trac 10053 - XO-1.5 - Flaky audio selftest.  Fixed buffer overflow with debugging routine for plotting impulse response.  Doesn't affect normal testing.

Modified:
   cpu/x86/pc/olpc/plot.fth
   dev/hdaudio/noiseburst.fth
   dev/hdaudio/test.fth

Modified: cpu/x86/pc/olpc/plot.fth
==============================================================================
--- cpu/x86/pc/olpc/plot.fth	Fri Mar  5 05:55:13 2010	(r1761)
+++ cpu/x86/pc/olpc/plot.fth	Fri Mar  5 07:55:23 2010	(r1762)
@@ -38,9 +38,9 @@
    fill-rectangle
 ;
 : waveform-start  ( -- )  0  wave0  moveto  ;
-: draw-wave  ( adr )
-   0 swap   ( last adr )
-   screen-width  0  do  ( last adr )
+: draw-wave  ( adr #samples -- )
+   0 -rot   ( last adr #samples )
+   0  do                ( last adr )
       tuck <w@          ( adr last this-unscaled )
       wave-scale >>a    ( adr last this )
       tuck swap -       ( adr this distance )
@@ -49,7 +49,8 @@
    loop                 ( last adr )
    2drop
 ;
-: waveform  ( adr -- )  clear-waveform  waveform-start  draw-wave  ;
+: waveform  ( adr -- )  clear-waveform  waveform-start  screen-width draw-wave  ;
+: wave  ( adr #samples -- )  clear-waveform  waveform-start  draw-wave  ;
 : vgrid  ( width height interval -- )
    rot  0  ?do               ( height interval )
       i plot0 nip  moveto    ( height interval )
@@ -67,7 +68,7 @@
 dend
 
 \ : $call-screen  ( ? name$ -- ? )  stdout @ $call-method  ;
-: wave  ( adr -- )  " waveform" $call-screen  ;
+: wave  ( adr #samples -- )  " wave" $call-screen  ;
 : clear-plot  ( width height -- )  " clear-plot"  $call-screen  ;
 : lineplot  ( xt xmin xmax xscale  ymin ymax  -- )  " plot" $call-screen  ;
 : vgrid  ( width height interval -- )  " vgrid" $call-screen  ;

Modified: dev/hdaudio/noiseburst.fth
==============================================================================
--- dev/hdaudio/noiseburst.fth	Fri Mar  5 05:55:13 2010	(r1761)
+++ dev/hdaudio/noiseburst.fth	Fri Mar  5 07:55:23 2010	(r1762)
@@ -383,11 +383,12 @@
    d# 70 <
 ;
 
-d# 1024 /w* buffer: impulse-response
+d# 1200 constant #impulse-response
+#impulse-response /w* buffer: impulse-response
 
 : calc-sm-impulse  ( offset -- adr )  \ offset is 0 for left or 2 for right
    pb +  rb  #samples                         ( adr1 adr2 #samples )
-   d# 1200 0  do
+   #impulse-response 0  do
       3dup swap i wa+ swap stereo-mono-covar  ( adr1 adr2 #samples d.covar )
       d# 50000000 m/mod nip                   ( adr1 adr2 #samples n.covar )
       impulse-response i wa+ w!               ( adr1 adr2 #samples )
@@ -397,7 +398,7 @@
 ;
 : calc-stereo-impulse  ( offset -- adr )  \ offset is 0 for left or 2 for right
    dup pb +  swap rb +  #samples              ( adr1 adr2 #samples )
-   d# 1200 0  do
+   #impulse-response 0  do
       3dup swap i wa+ swap stereo-covar       ( adr1 adr2 #samples d.covar )
       d# 50000000 m/mod nip                   ( adr1 adr2 #samples n.covar )
       impulse-response i wa+ w!               ( adr1 adr2 #samples )

Modified: dev/hdaudio/test.fth
==============================================================================
--- dev/hdaudio/test.fth	Fri Mar  5 05:55:13 2010	(r1761)
+++ dev/hdaudio/test.fth	Fri Mar  5 07:55:23 2010	(r1762)
@@ -101,6 +101,7 @@
 ;
 false value plot?  \ Set to true to plot the impulse response, for debugging
 : plot-impulse  ( adr -- )
+   d# 600              ( adr #samples )
    " 0 set-fg  h# ffff set-bg single-drawing clear-drawing wave" evaluate
    key ascii d = if debug-me then
 ;



More information about the openfirmware mailing list