efifb: Check efifb_pci_dev before using it

On some platforms like Hyper-V and RPi4 with UEFI firmware, efifb is not
a PCI device.

So make sure efifb_pci_dev is found before using it.

Fixes: a6c0fd3d5a8b ("efifb: Ensure graphics device for efifb stays at PCI D0")
BugLink: https://bugs.launchpad.net/bugs/1922403
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210413170508.968148-1-kai.heng.feng@canonical.com

authored by Kai-Heng Feng and committed by Alex Deucher 74deef03 2a269ba8

+4 -2
+4 -2
drivers/video/fbdev/efifb.c
··· 575 575 goto err_fb_dealoc; 576 576 } 577 577 fb_info(info, "%s frame buffer device\n", info->fix.id); 578 - pm_runtime_get_sync(&efifb_pci_dev->dev); 578 + if (efifb_pci_dev) 579 + pm_runtime_get_sync(&efifb_pci_dev->dev); 579 580 return 0; 580 581 581 582 err_fb_dealoc: ··· 603 602 unregister_framebuffer(info); 604 603 sysfs_remove_groups(&pdev->dev.kobj, efifb_groups); 605 604 framebuffer_release(info); 606 - pm_runtime_put(&efifb_pci_dev->dev); 605 + if (efifb_pci_dev) 606 + pm_runtime_put(&efifb_pci_dev->dev); 607 607 608 608 return 0; 609 609 }