Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43c2cc28 authored by Roman Kiryanov's avatar Roman Kiryanov Committed by Greg Kroah-Hartman
Browse files

platform: goldfish: pipe: Move the file-scope goldfish_pipe_miscdev variable into the driver state



This is a series of patches to move mutable file-scope variables
into the driver state. This change will help to introduce another
version of the pipe driver (with different state) for the older
host interface or having several instances of this device.

Signed-off-by: default avatarRoman Kiryanov <rkir@google.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c394cc3b
Loading
Loading
Loading
Loading
+13 −7
Original line number Original line Diff line number Diff line
@@ -211,6 +211,8 @@ struct goldfish_pipe_dev {


	/* an irq tasklet to run goldfish_interrupt_task */
	/* an irq tasklet to run goldfish_interrupt_task */
	struct tasklet_struct irq_tasklet;
	struct tasklet_struct irq_tasklet;

	struct miscdevice miscdev;
};
};


static struct goldfish_pipe_dev goldfish_pipe_dev;
static struct goldfish_pipe_dev goldfish_pipe_dev;
@@ -785,11 +787,14 @@ static const struct file_operations goldfish_pipe_fops = {
	.release = goldfish_pipe_release,
	.release = goldfish_pipe_release,
};
};


static struct miscdevice goldfish_pipe_miscdev = {
static void init_miscdevice(struct miscdevice *miscdev)
	.minor = MISC_DYNAMIC_MINOR,
{
	.name = "goldfish_pipe",
	memset(miscdev, 0, sizeof(*miscdev));
	.fops = &goldfish_pipe_fops,

};
	miscdev->minor = MISC_DYNAMIC_MINOR;
	miscdev->name = "goldfish_pipe";
	miscdev->fops = &goldfish_pipe_fops;
}


static void write_pa_addr(void *addr, void __iomem *portl, void __iomem *porth)
static void write_pa_addr(void *addr, void __iomem *portl, void __iomem *porth)
{
{
@@ -815,7 +820,8 @@ static int goldfish_pipe_device_init(struct platform_device *pdev)
		return err;
		return err;
	}
	}


	err = misc_register(&goldfish_pipe_miscdev);
	init_miscdevice(&dev->miscdev);
	err = misc_register(&dev->miscdev);
	if (err) {
	if (err) {
		dev_err(&pdev->dev, "unable to register v2 device\n");
		dev_err(&pdev->dev, "unable to register v2 device\n");
		return err;
		return err;
@@ -860,7 +866,7 @@ static int goldfish_pipe_device_init(struct platform_device *pdev)


static void goldfish_pipe_device_deinit(struct platform_device *pdev)
static void goldfish_pipe_device_deinit(struct platform_device *pdev)
{
{
	misc_deregister(&goldfish_pipe_miscdev);
	misc_deregister(&goldfish_pipe_dev.miscdev);
	tasklet_kill(&goldfish_pipe_dev.irq_tasklet);
	tasklet_kill(&goldfish_pipe_dev.irq_tasklet);
	kfree(goldfish_pipe_dev.pipes);
	kfree(goldfish_pipe_dev.pipes);
	free_page((unsigned long)goldfish_pipe_dev.buffers);
	free_page((unsigned long)goldfish_pipe_dev.buffers);