Changeset 2141


Ignore:
Timestamp:
Jan 21, 2011, 10:03:57 PM (4 years ago)
Author:
wmb
Message:

USB EHCI driver - fixed longstanding stack bug in intr-in? which broke USB keyboard support. I'm unsure why we didn't notice this problem a long time ago. In the process of fixing the bug, I rewrote part of intr-in? for better stack clarity.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dev/usb2/hcd/ehci/intr.fth

    r2136 r2141  
    6565 
    6666: intr-in?  ( -- actual usberr ) 
    67    intr-in-qh 0=  if  0 USB_ERR_INV_OP exit  then 
    68    clear-usb-error 
    69    intr-in-qh qh-done?  if 
    70       intr-in-qh error?  if 
    71          0 
    72       else 
    73          intr-in-qh dup sync-qhqtds 
    74          intr-in-qtd  dup intr-in-qh >qh-#qtds l@ get-actual 
    75          over >qtd-buf rot >qtd-pbuf l@ 2 pick dma-sync 
    76       then 
    77       usb-error 
    78       intr-in-qh fixup-intr-in-data 
    79    else 
    80       0 usb-error 
    81    then 
     67   intr-in-qh 0=  if  0 USB_ERR_INV_OP exit  then  ( ) 
     68   clear-usb-error                   ( ) 
     69   intr-in-qh qh-done?  if           ( ) 
     70      intr-in-qh error?  if          ( ) 
     71         0                           ( actual ) 
     72      else                           ( ) 
     73         intr-in-qh sync-qhqtds      ( ) 
     74         intr-in-qtd  intr-in-qh >qh-#qtds l@  get-actual  ( actual ) 
     75         intr-in-qtd >qtd-buf  intr-in-qtd >qtd-pbuf l@  2 pick  dma-sync  ( actual ) 
     76      then                           ( actual ) 
     77      usb-error                      ( actual usberr ) 
     78      intr-in-qh fixup-intr-in-data  ( actual usberr ) 
     79   else                              ( ) 
     80      0 usb-error                    ( actual usberr ) 
     81   then                              ( actual usberr ) 
    8282; 
    8383 
Note: See TracChangeset for help on using the changeset viewer.