]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Do not access transfer ring when endpoint is isochronous type and control type. And...
authorElvin Li <elvin.li@intel.com>
Fri, 22 Aug 2014 01:13:48 +0000 (01:13 +0000)
committerli-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 22 Aug 2014 01:13:48 +0000 (01:13 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Elvin Li <elvin.li@intel.com>
Signed-off-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15876 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c

index e29e727e3c20be0acac08b01dcae8262abd9930c..657020f0da1e175ecf5969b95c08813c9825a53d 100644 (file)
@@ -2606,7 +2606,12 @@ XhcInitializeEndpointContext (
           InputContext->EP[Dci-1].CErr   = 0;\r
           InputContext->EP[Dci-1].EPType = ED_ISOCH_OUT;\r
         }\r
-        break;\r
+        //\r
+        // Do not support isochronous transfer now.\r
+        //\r
+        DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext: Unsupport ISO EP found, Transfer ring is not allocated.\n"));\r
+        EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length);\r
+        continue;\r
       case USB_ENDPOINT_INTERRUPT:\r
         if (Direction == EfiUsbDataIn) {\r
           InputContext->EP[Dci-1].CErr   = 3;\r
@@ -2648,9 +2653,14 @@ XhcInitializeEndpointContext (
         break;\r
 \r
       case USB_ENDPOINT_CONTROL:\r
+        //\r
+        // Do not support control transfer now.\r
+        //\r
+        DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext: Unsupport Control EP found, Transfer ring is not allocated.\n"));\r
       default:\r
-        ASSERT (0);\r
-        break;\r
+        DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext: Unknown EP found, Transfer ring is not allocated.\n"));\r
+        EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length);\r
+        continue;\r
     }\r
 \r
     PhyAddr = UsbHcGetPciAddrForHostAddr (\r
@@ -2759,7 +2769,12 @@ XhcInitializeEndpointContext64 (
           InputContext->EP[Dci-1].CErr   = 0;\r
           InputContext->EP[Dci-1].EPType = ED_ISOCH_OUT;\r
         }\r
-        break;\r
+        //\r
+        // Do not support isochronous transfer now.\r
+        //\r
+        DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext64: Unsupport ISO EP found, Transfer ring is not allocated.\n"));\r
+        EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length);\r
+        continue;\r
       case USB_ENDPOINT_INTERRUPT:\r
         if (Direction == EfiUsbDataIn) {\r
           InputContext->EP[Dci-1].CErr   = 3;\r
@@ -2801,9 +2816,14 @@ XhcInitializeEndpointContext64 (
         break;\r
 \r
       case USB_ENDPOINT_CONTROL:\r
+        //\r
+        // Do not support control transfer now.\r
+        //\r
+        DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext64: Unsupport Control EP found, Transfer ring is not allocated.\n"));\r
       default:\r
-        ASSERT (0);\r
-        break;\r
+        DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext64: Unknown EP found, Transfer ring is not allocated.\n"));\r
+        EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length);\r
+        continue;\r
     }\r
 \r
     PhyAddr = UsbHcGetPciAddrForHostAddr (\r