Commit 9324f919 authored by Mike Rapoport's avatar Mike Rapoport Committed by Greg Kroah-Hartman
Browse files

staging: sm750fb: introduce sm750fb_frambuffer_release



Use a function to unregister framebuffer info and release its resources.

Signed-off-by: default avatarMike Rapoport <mike.rapoport@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a3f92cc9
Loading
Loading
Loading
Loading
+13 −12
Original line number Diff line number Diff line
@@ -1002,6 +1002,18 @@ static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src)
	}
}

static void sm750fb_frambuffer_release(struct sm750_dev *sm750_dev)
{
	struct fb_info *fb_info;

	while (sm750_dev->fb_count) {
		fb_info = sm750_dev->fbinfo[sm750_dev->fb_count - 1];
		unregister_framebuffer(fb_info);
		framebuffer_release(fb_info);
		sm750_dev->fb_count--;
	}
}

static int lynxfb_pci_probe(struct pci_dev *pdev,
			    const struct pci_device_id *ent)
{
@@ -1138,22 +1150,11 @@ static int lynxfb_pci_probe(struct pci_dev *pdev,

static void lynxfb_pci_remove(struct pci_dev *pdev)
{
	struct fb_info *info;
	struct sm750_dev *sm750_dev;
	int cnt;

	cnt = 2;
	sm750_dev = pci_get_drvdata(pdev);

	while (cnt-- > 0) {
		info = sm750_dev->fbinfo[cnt];
		if (!info)
			continue;

		unregister_framebuffer(info);
		/* release frame buffer */
		framebuffer_release(info);
	}
	sm750fb_frambuffer_release(sm750_dev);
	arch_phys_wc_del(sm750_dev->mtrr.vram);

	iounmap(sm750_dev->pvReg);