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 failuremaster
commit
897d54018c
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue