summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c')
-rw-r--r--MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c b/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c
index e779a31138..88db5fe46e 100644
--- a/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c
+++ b/MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c
@@ -190,6 +190,7 @@ UsbHcAllocMemFromBlock (
@param Pool The memory pool of the host controller.
@param Mem The pointer to host memory.
@param Size The size of the memory region.
+ @param Alignment Alignment the size to USBHC_MEM_UNIT bytes.
@return The pci memory address
@@ -198,7 +199,8 @@ EFI_PHYSICAL_ADDRESS
UsbHcGetPciAddrForHostAddr (
IN USBHC_MEM_POOL *Pool,
IN VOID *Mem,
- IN UINTN Size
+ IN UINTN Size,
+ IN BOOLEAN Alignment
)
{
USBHC_MEM_BLOCK *Head;
@@ -207,8 +209,12 @@ UsbHcGetPciAddrForHostAddr (
EFI_PHYSICAL_ADDRESS PhyAddr;
UINTN Offset;
- Head = Pool->Head;
- AllocSize = USBHC_MEM_ROUND (Size);
+ Head = Pool->Head;
+ if (Alignment) {
+ AllocSize = USBHC_MEM_ROUND (Size);
+ } else {
+ AllocSize = Size;
+ }
if (Mem == NULL) {
return 0;
@@ -239,6 +245,7 @@ UsbHcGetPciAddrForHostAddr (
@param Pool The memory pool of the host controller.
@param Mem The pointer to pci memory.
@param Size The size of the memory region.
+ @param Alignment Alignment the size to USBHC_MEM_UNIT bytes.
@return The host memory address
@@ -247,7 +254,8 @@ EFI_PHYSICAL_ADDRESS
UsbHcGetHostAddrForPciAddr (
IN USBHC_MEM_POOL *Pool,
IN VOID *Mem,
- IN UINTN Size
+ IN UINTN Size,
+ IN BOOLEAN Alignment
)
{
USBHC_MEM_BLOCK *Head;
@@ -256,8 +264,12 @@ UsbHcGetHostAddrForPciAddr (
EFI_PHYSICAL_ADDRESS HostAddr;
UINTN Offset;
- Head = Pool->Head;
- AllocSize = USBHC_MEM_ROUND (Size);
+ Head = Pool->Head;
+ if (Alignment) {
+ AllocSize = USBHC_MEM_ROUND (Size);
+ } else {
+ AllocSize = Size;
+ }
if (Mem == NULL) {
return 0;