mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 10:43:43 +00:00
fbdev/efifb: Remove PM for parent device
The EFI device has the correct parent device set. This allows Linux to handle the power management internally. Hence, remove the manual PM management for the parent device from efifb. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240212090736.11464-5-tzimmermann@suse.de
This commit is contained in:
parent
9eac534db0
commit
9040d0297a
@ -17,7 +17,6 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/printk.h>
|
||||
#include <linux/screen_info.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <video/vga.h>
|
||||
#include <asm/efi.h>
|
||||
#include <drm/drm_utils.h> /* For drm_get_panel_orientation_quirk */
|
||||
@ -258,9 +257,6 @@ static void efifb_destroy(struct fb_info *info)
|
||||
{
|
||||
struct efifb_par *par = info->par;
|
||||
|
||||
if (efifb_pci_dev)
|
||||
pm_runtime_put(&efifb_pci_dev->dev);
|
||||
|
||||
if (info->screen_base) {
|
||||
if (mem_flags & (EFI_MEMORY_UC | EFI_MEMORY_WC))
|
||||
iounmap(info->screen_base);
|
||||
@ -598,26 +594,20 @@ static int efifb_probe(struct platform_device *dev)
|
||||
goto err_groups;
|
||||
}
|
||||
|
||||
if (efifb_pci_dev)
|
||||
WARN_ON(pm_runtime_get_sync(&efifb_pci_dev->dev) < 0);
|
||||
|
||||
err = devm_aperture_acquire_for_platform_device(dev, par->base, par->size);
|
||||
if (err) {
|
||||
pr_err("efifb: cannot acquire aperture\n");
|
||||
goto err_put_rpm_ref;
|
||||
goto err_fb_dealloc_cmap;
|
||||
}
|
||||
err = register_framebuffer(info);
|
||||
if (err < 0) {
|
||||
pr_err("efifb: cannot register framebuffer\n");
|
||||
goto err_put_rpm_ref;
|
||||
goto err_fb_dealloc_cmap;
|
||||
}
|
||||
fb_info(info, "%s frame buffer device\n", info->fix.id);
|
||||
return 0;
|
||||
|
||||
err_put_rpm_ref:
|
||||
if (efifb_pci_dev)
|
||||
pm_runtime_put(&efifb_pci_dev->dev);
|
||||
|
||||
err_fb_dealloc_cmap:
|
||||
fb_dealloc_cmap(&info->cmap);
|
||||
err_groups:
|
||||
sysfs_remove_groups(&dev->dev.kobj, efifb_groups);
|
||||
|
Loading…
Reference in New Issue
Block a user