[openfirmware] r1690 - dev/usb2/hcd

svn at openfirmware.info svn at openfirmware.info
Sat Jan 23 09:23:27 CET 2010


Author: wmb
Date: 2010-01-23 09:23:27 +0100 (Sat, 23 Jan 2010)
New Revision: 1690

Modified:
   dev/usb2/hcd/device.fth
Log:
USB - in the reuse-existing-driver test, added a check that the
vendor-id, device-id, and revision match.


Modified: dev/usb2/hcd/device.fth
===================================================================
--- dev/usb2/hcd/device.fth	2010-01-23 08:21:50 UTC (rev 1689)
+++ dev/usb2/hcd/device.fth	2010-01-23 08:23:27 UTC (rev 1690)
@@ -281,6 +281,17 @@
    r> drop
 ;
 
+: id-match?  ( dev intf port phandle -- dev intf port phandle flag? )
+   " vendor-id" 2 pick get-package-property  if  false exit  then
+   decode-int nip nip   >r     ( dev intf port phandle r: vid )
+   " device-id" 2 pick get-package-property  if  r> drop  false exit  then
+   decode-int nip nip   >r     ( dev intf port phandle r: vid did )
+   " release" 2 pick get-package-property  if  r> r> 2drop  false exit  then
+   decode-int nip nip   >r     ( dev intf port phandle r: vid did rev )
+   dev-desc-buf get-vid        ( dev intf port phandle  vid1 did1 rev1 r: vid did rev )
+   r> = -rot  r> = -rot  r> =  and and
+;
+
 : reuse-old-node?  ( dev intf port -- reused? )
    my-self ihandle>phandle child                 ( dev intf port phandle )
    begin  ?dup  while                            ( dev intf port phandle )
@@ -289,8 +300,10 @@
          4 pick  =  if                           ( dev intf port phandle adr len )
             decode-int nip nip                   ( dev intf port phandle intf1 )
             3 pick  =  if                        ( dev intf port phandle )
-               reuse-node                        ( )
-               true exit                         ( -- true )
+               id-match?  if                     ( dev intf port phandle )
+                  reuse-node                     ( )
+                  true exit                      ( -- true )
+               then                              ( dev intf port phandle )
             then                                 ( dev intf port phandle )
          else                                    ( dev intf port phandle adr len )
             2drop                                ( dev intf port phandle )




More information about the openfirmware mailing list