From 61fb1657e5b2b37a2ec5c879f6fa7689100f0d54 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Fri, 19 Jan 2007 08:06:15 +0000 Subject: Fix component name bugs when input Controller Name is invalid Fix the driver binding version for platform/OEM specific drivers git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2274 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Bus/Pci/AtapiPassThru/Dxe/AtapiPassThru.c | 2 +- .../Bus/Pci/CirrusLogic/Dxe/CirrusLogic5430.c | 2 +- EdkModulePkg/Bus/Pci/Ehci/Dxe/ComponentName.c | 11 ++++++++++ EdkModulePkg/Bus/Pci/Ehci/Dxe/Ehci.c | 2 +- EdkModulePkg/Bus/Pci/IdeBus/Dxe/ComponentName.c | 24 ++++++++++++++-------- EdkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.c | 2 +- EdkModulePkg/Bus/Pci/PciBus/Dxe/pcibus.c | 2 +- EdkModulePkg/Bus/Pci/Uhci/Dxe/ComponentName.c | 11 ++++++++++ EdkModulePkg/Bus/Pci/Uhci/Dxe/uhci.c | 2 +- EdkModulePkg/Bus/Pci/Undi/RuntimeDxe/Init.c | 2 +- 10 files changed, 44 insertions(+), 16 deletions(-) (limited to 'EdkModulePkg/Bus/Pci') diff --git a/EdkModulePkg/Bus/Pci/AtapiPassThru/Dxe/AtapiPassThru.c b/EdkModulePkg/Bus/Pci/AtapiPassThru/Dxe/AtapiPassThru.c index 8eac997fc7..f11158bb9c 100644 --- a/EdkModulePkg/Bus/Pci/AtapiPassThru/Dxe/AtapiPassThru.c +++ b/EdkModulePkg/Bus/Pci/AtapiPassThru/Dxe/AtapiPassThru.c @@ -93,7 +93,7 @@ EFI_DRIVER_BINDING_PROTOCOL gAtapiScsiPassThruDriverBinding = { AtapiScsiPassThruDriverBindingSupported, AtapiScsiPassThruDriverBindingStart, AtapiScsiPassThruDriverBindingStop, - 0x10, + 0xa, NULL, NULL }; diff --git a/EdkModulePkg/Bus/Pci/CirrusLogic/Dxe/CirrusLogic5430.c b/EdkModulePkg/Bus/Pci/CirrusLogic/Dxe/CirrusLogic5430.c index 68c483071c..c5fa53464f 100644 --- a/EdkModulePkg/Bus/Pci/CirrusLogic/Dxe/CirrusLogic5430.c +++ b/EdkModulePkg/Bus/Pci/CirrusLogic/Dxe/CirrusLogic5430.c @@ -30,7 +30,7 @@ EFI_DRIVER_BINDING_PROTOCOL gCirrusLogic5430DriverBinding = { CirrusLogic5430ControllerDriverSupported, CirrusLogic5430ControllerDriverStart, CirrusLogic5430ControllerDriverStop, - 0x10, + 0xa, NULL, NULL }; diff --git a/EdkModulePkg/Bus/Pci/Ehci/Dxe/ComponentName.c b/EdkModulePkg/Bus/Pci/Ehci/Dxe/ComponentName.c index e0d2010cd4..12cb7665d1 100644 --- a/EdkModulePkg/Bus/Pci/Ehci/Dxe/ComponentName.c +++ b/EdkModulePkg/Bus/Pci/Ehci/Dxe/ComponentName.c @@ -162,6 +162,17 @@ EhciComponentNameGetControllerName ( return EFI_UNSUPPORTED; } // + // Make sure this driver is currently managing ControllerHandle + // + Status = EfiTestManagedDevice ( + ControllerHandle, + gEhciDriverBinding.DriverBindingHandle, + &gEfiPciIoProtocolGuid + ); + if (EFI_ERROR (Status)) { + return Status; + } + // // Get the device context // Status = gBS->OpenProtocol ( diff --git a/EdkModulePkg/Bus/Pci/Ehci/Dxe/Ehci.c b/EdkModulePkg/Bus/Pci/Ehci/Dxe/Ehci.c index 8f32abf0dc..2d6dc838a4 100644 --- a/EdkModulePkg/Bus/Pci/Ehci/Dxe/Ehci.c +++ b/EdkModulePkg/Bus/Pci/Ehci/Dxe/Ehci.c @@ -218,7 +218,7 @@ EFI_DRIVER_BINDING_PROTOCOL gEhciDriverBinding = { EhciDriverBindingSupported, EhciDriverBindingStart, EhciDriverBindingStop, - 0x10, + 0xa, NULL, NULL }; diff --git a/EdkModulePkg/Bus/Pci/IdeBus/Dxe/ComponentName.c b/EdkModulePkg/Bus/Pci/IdeBus/Dxe/ComponentName.c index edead729b4..12673c9c92 100644 --- a/EdkModulePkg/Bus/Pci/IdeBus/Dxe/ComponentName.c +++ b/EdkModulePkg/Bus/Pci/IdeBus/Dxe/ComponentName.c @@ -125,16 +125,13 @@ IDEBusComponentNameGetControllerName ( IDE_BLK_IO_DEV *IdeBlkIoDevice; // - // Get the controller context + // Make sure this driver is currently managing ControllHandle // - Status = gBS->OpenProtocol ( - ControllerHandle, - &gEfiCallerIdGuid, - NULL, - gIDEBusDriverBinding.DriverBindingHandle, - ControllerHandle, - EFI_OPEN_PROTOCOL_TEST_PROTOCOL - ); + Status = EfiTestManagedDevice ( + ControllerHandle, + gIDEBusDriverBinding.DriverBindingHandle, + &gEfiIdeControllerInitProtocolGuid + ); if (EFI_ERROR (Status)) { return Status; } @@ -148,6 +145,15 @@ IDEBusComponentNameGetControllerName ( ); } + Status = EfiTestChildHandle ( + ControllerHandle, + ChildHandle, + &gEfiPciIoProtocolGuid + ); + if (EFI_ERROR (Status)) { + return Status; + } + // // Get the child context // diff --git a/EdkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.c b/EdkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.c index 3b0e69e929..c0cec601b8 100644 --- a/EdkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.c +++ b/EdkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.c @@ -26,7 +26,7 @@ EFI_DRIVER_BINDING_PROTOCOL gIDEBusDriverBinding = { IDEBusDriverBindingSupported, IDEBusDriverBindingStart, IDEBusDriverBindingStop, - 0x10, + 0xa, NULL, NULL }; diff --git a/EdkModulePkg/Bus/Pci/PciBus/Dxe/pcibus.c b/EdkModulePkg/Bus/Pci/PciBus/Dxe/pcibus.c index ed56578757..43d3e38dd1 100644 --- a/EdkModulePkg/Bus/Pci/PciBus/Dxe/pcibus.c +++ b/EdkModulePkg/Bus/Pci/PciBus/Dxe/pcibus.c @@ -67,7 +67,7 @@ EFI_DRIVER_BINDING_PROTOCOL gPciBusDriverBinding = { PciBusDriverBindingSupported, PciBusDriverBindingStart, PciBusDriverBindingStop, - 0x10, + 0xa, NULL, NULL }; diff --git a/EdkModulePkg/Bus/Pci/Uhci/Dxe/ComponentName.c b/EdkModulePkg/Bus/Pci/Uhci/Dxe/ComponentName.c index 71d9339a8f..909912f329 100644 --- a/EdkModulePkg/Bus/Pci/Uhci/Dxe/ComponentName.c +++ b/EdkModulePkg/Bus/Pci/Uhci/Dxe/ComponentName.c @@ -162,6 +162,17 @@ UhciComponentNameGetControllerName ( return EFI_UNSUPPORTED; } // + // Make sure this driver is currently managing ControllerHandle + // + Status = EfiTestManagedDevice ( + ControllerHandle, + gUhciDriverBinding.DriverBindingHandle, + &gEfiPciIoProtocolGuid + ); + if (EFI_ERROR (Status)) { + return Status; + } + // // Get the device context // Status = gBS->OpenProtocol ( diff --git a/EdkModulePkg/Bus/Pci/Uhci/Dxe/uhci.c b/EdkModulePkg/Bus/Pci/Uhci/Dxe/uhci.c index 14f8bf2790..96c5be48ba 100644 --- a/EdkModulePkg/Bus/Pci/Uhci/Dxe/uhci.c +++ b/EdkModulePkg/Bus/Pci/Uhci/Dxe/uhci.c @@ -364,7 +364,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUhciDriverBinding = { UHCIDriverBindingSupported, UHCIDriverBindingStart, UHCIDriverBindingStop, - 0x10, + 0xa, NULL, NULL }; diff --git a/EdkModulePkg/Bus/Pci/Undi/RuntimeDxe/Init.c b/EdkModulePkg/Bus/Pci/Undi/RuntimeDxe/Init.c index ecb32f9adf..a5692f4dbd 100644 --- a/EdkModulePkg/Bus/Pci/Undi/RuntimeDxe/Init.c +++ b/EdkModulePkg/Bus/Pci/Undi/RuntimeDxe/Init.c @@ -192,7 +192,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUndiDriverBinding = { UndiDriverSupported, UndiDriverStart, UndiDriverStop, - 0x10, + 0xa, NULL, NULL }; -- cgit v1.2.3