Commit 897d5401 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents 129d6eb2 448aaf54
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+3 −6
Original line number Diff line number Diff line
@@ -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;
	}

+3 −9
Original line number Diff line number Diff line
@@ -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;
+7 −2
Original line number Diff line number Diff line
@@ -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;

+6 −1
Original line number Diff line number Diff line
@@ -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 */
Loading