audk/DuetPkg/PciBusNoEnumerationDxe
Joseph Shifflett 30a35388d1 DuetPkg: exit pci function loops early if device is not multi-function
When looping through all PCI functions, code should not look for functions
1-7 if function 0 is not present or if function 0 indicates the device is
not multifunction.  Prior to this fix the code would use stale data in a
buffer to determine if a device is multifunction even if function 0 is not
present.  This fixes a code bug and provides very small performance
improvements.

PCI 2.3 Specification states: They [multifunction devices] are also
required to always implement function 0 in the device. Implementing other
functions is optional and may be assigned in any order.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Joseph Shifflett <joseph.shifflett@hpe.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18575 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-06 20:55:36 +00:00
..
ComponentName.c Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciBus.c Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciBus.h Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciBusNoEnumeration.inf Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciCommand.c Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciCommand.h Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciDeviceSupport.c Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciDeviceSupport.h Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciDriverOverride.c Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciDriverOverride.h Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciEnumerator.c Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciEnumerator.h Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciEnumeratorSupport.c DuetPkg: exit pci function loops early if device is not multi-function 2015-10-06 20:55:36 +00:00
PciEnumeratorSupport.h Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciIo.c Change PciIo::GetBarAttributes() to return unsupported for a unsupported bar even it's below 6 to follow the UEFI Spec. 2014-05-19 06:08:26 +00:00
PciIo.h Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciOptionRomSupport.c Improve robustness when scanning PCI Option ROM. 2012-03-14 03:17:17 +00:00
PciOptionRomSupport.h Update the copyright notice format 2010-04-28 12:39:50 +00:00
PciPowerManagement.c MdeModulePkg PciBusDxe and DuetPkg PciBusNoEnumerationDxe: Update ResetPowerManagementFeature() to clear 4 related R/W bits in the PMCSR register, leaving other bits preserved. 2012-04-12 01:49:27 +00:00
PciPowerManagement.h fix X64 build broken 2010-06-05 11:01:28 +00:00
PciRomTable.c Improve robustness when scanning PCI Option ROM. 2012-03-14 03:17:17 +00:00
PciRomTable.h Update the copyright notice format 2010-04-28 12:39:50 +00:00