fbdev fixes & cleanups for 7.1-rc1:

- request memory region before use (cobalt_lcdfb, clps711x-fb, hgafb)
 - reference cleanups in failure path (offb, savage)
 - a spelling fix (atyfb)
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCaex5VAAKCRD3ErUQojoP
 X+aGAQCWJJEgYllBaio/I8SOm8Dwf55XytWSWUXtdmzBBrNTsAD/SFzh9t2hf6+4
 j6zY3CPkaohrh5ht8jjHRn+mXhq+hQ0=
 =+t4N
 -----END PGP SIGNATURE-----

Merge tag 'fbdev-for-7.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev

Pull fbdev fixes from Helge Deller:

 - request memory region before use (cobalt_lcdfb, clps711x-fb, hgafb)

 - reference cleanups in failure path (offb, savage)

 - a spelling fix (atyfb)

* tag 'fbdev-for-7.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
  fbdev: hgafb: Request memory region before ioremap
  fbdev: clps711x-fb: Request memory region for MMIO
  fbdev: cobalt_lcdfb: Request memory region
  fbdev: atyfb: Fix spelling mistake "enfore" -> "enforce"
  fbdev: savage: fix probe-path EDID cleanup leaks
  fbdev: offb: fix PCI device reference leak on probe failure
master
Linus Torvalds 2026-04-25 07:48:33 -07:00
commit 897d54018c
6 changed files with 22 additions and 19 deletions

View File

@ -654,7 +654,7 @@ static void radeon_fixup_panel_info(struct radeonfb_info *rinfo)
{
#ifdef CONFIG_PPC
/*
* LCD Flat panels should use fixed dividers, we enfore that on
* LCD Flat panels should use fixed dividers, we enforce that on
* PPC only for now...
*/
if (!rinfo->panel_info.use_bios_dividers && rinfo->mon1_type == MT_LCD

View File

@ -216,12 +216,9 @@ static int clps711x_fb_probe(struct platform_device *pdev)
cfb = info->par;
platform_set_drvdata(pdev, info);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res)
goto out_fb_release;
cfb->base = devm_ioremap(dev, res->start, resource_size(res));
if (!cfb->base) {
ret = -ENOMEM;
cfb->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
if (IS_ERR(cfb->base)) {
ret = PTR_ERR(cfb->base);
goto out_fb_release;
}

View File

@ -295,19 +295,13 @@ static int cobalt_lcdfb_probe(struct platform_device *dev)
if (!info)
return -ENOMEM;
res = platform_get_resource(dev, IORESOURCE_MEM, 0);
if (!res) {
info->screen_base = devm_platform_get_and_ioremap_resource(dev, 0, &res);
if (IS_ERR(info->screen_base)) {
framebuffer_release(info);
return -EBUSY;
return PTR_ERR(info->screen_base);
}
info->screen_size = resource_size(res);
info->screen_base = devm_ioremap(&dev->dev, res->start,
info->screen_size);
if (!info->screen_base) {
framebuffer_release(info);
return -ENOMEM;
}
info->fbops = &cobalt_lcd_fbops;
info->fix = cobalt_lcdfb_fix;

View File

@ -276,7 +276,7 @@ static void hga_blank(int blank_mode)
spin_unlock_irqrestore(&hga_reg_lock, flags);
}
static int hga_card_detect(void)
static int hga_card_detect(struct platform_device *pdev)
{
int count = 0;
void __iomem *p, *q;
@ -284,6 +284,11 @@ static int hga_card_detect(void)
hga_vram_len = 0x08000;
if (!devm_request_mem_region(&pdev->dev, 0xb0000, hga_vram_len, "hgafb")) {
dev_err(&pdev->dev, "cannot reserve video memory at 0xb0000\n");
return -EBUSY;
}
hga_vram = ioremap(0xb0000, hga_vram_len);
if (!hga_vram)
return -ENOMEM;
@ -568,7 +573,7 @@ static int hgafb_probe(struct platform_device *pdev)
struct fb_info *info;
int ret;
ret = hga_card_detect();
ret = hga_card_detect(pdev);
if (ret)
return ret;

View File

@ -640,8 +640,13 @@ static void offb_init_nodriver(struct platform_device *parent, struct device_nod
vid = be32_to_cpup(vidp);
did = be32_to_cpup(didp);
pdev = pci_get_device(vid, did, NULL);
if (!pdev || pci_enable_device(pdev))
if (!pdev)
return;
if (pci_enable_device(pdev)) {
pci_dev_put(pdev);
return;
}
}
#endif
/* kludge for valkyrie */

View File

@ -2322,6 +2322,8 @@ static int savagefb_probe(struct pci_dev *dev, const struct pci_device_id *id)
failed:
#ifdef CONFIG_FB_SAVAGE_I2C
savagefb_delete_i2c_busses(info);
fb_destroy_modelist(&info->modelist);
fb_destroy_modedb(info->monspecs.modedb);
#endif
fb_alloc_cmap(&info->cmap, 0, 0);
savage_unmap_video(info);