On Tue, Apr 13, 2021 at 1:05 PM Kai-Heng Feng kai.heng.feng@canonical.com wrote:
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
Reviewed-by: Alex Deucher alexander.deucher@amd.com
drivers/video/fbdev/efifb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c index f58a545b3bf3..8ea8f079cde2 100644 --- a/drivers/video/fbdev/efifb.c +++ b/drivers/video/fbdev/efifb.c @@ -575,7 +575,8 @@ static int efifb_probe(struct platform_device *dev) goto err_fb_dealoc; } fb_info(info, "%s frame buffer device\n", info->fix.id);
pm_runtime_get_sync(&efifb_pci_dev->dev);
if (efifb_pci_dev)
pm_runtime_get_sync(&efifb_pci_dev->dev); return 0;
err_fb_dealoc: @@ -602,7 +603,8 @@ static int efifb_remove(struct platform_device *pdev) unregister_framebuffer(info); sysfs_remove_groups(&pdev->dev.kobj, efifb_groups); framebuffer_release(info);
pm_runtime_put(&efifb_pci_dev->dev);
if (efifb_pci_dev)
pm_runtime_put(&efifb_pci_dev->dev); return 0;
}
2.30.2
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel