- //\r
- // Start the GOP software stack.\r
- //\r
- Status = CirrusLogic5430GraphicsOutputConstructor (Private);\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &Private->Handle,\r
- &gEfiGraphicsOutputProtocolGuid,\r
- &Private->GraphicsOutput,\r
- &gEfiEdidDiscoveredProtocolGuid,\r
- &Private->EdidDiscovered,\r
- &gEfiEdidActiveProtocolGuid,\r
- &Private->EdidActive,\r
- NULL\r
- );\r
-\r
+ if (Private->GopDevicePath == NULL) {\r
+ //\r
+ // If RemainingDevicePath is the End of Device Path Node, \r
+ // don't create child device and return EFI_SUCCESS\r
+ //\r
+ Status = EFI_SUCCESS;\r
+ } else {\r
+ \r
+ //\r
+ // Start the GOP software stack.\r
+ //\r
+ Status = CirrusLogic5430GraphicsOutputConstructor (Private);\r
+ ASSERT_EFI_ERROR (Status);\r
+ \r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &Private->Handle,\r
+ &gEfiGraphicsOutputProtocolGuid,\r
+ &Private->GraphicsOutput,\r
+ &gEfiEdidDiscoveredProtocolGuid,\r
+ &Private->EdidDiscovered,\r
+ &gEfiEdidActiveProtocolGuid,\r
+ &Private->EdidActive,\r
+ NULL\r
+ );\r
+ }\r