Changeset 2141


Ignore:
Timestamp:
Jan 21, 2011, 10:03:57 PM (5 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.