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

Commit a7c9a0aa authored by Bruno Prémont's avatar Bruno Prémont Committed by Jiri Kosina
Browse files

HID: picolcd: fix deferred_io init/cleanup to fb ordering



Adjust ordering if framebuffer (un)registration and defio init/cleanup
to match the correct order (init defio, register FB ... unregister FB,
cleanup defio)

Acked-by: default avatarJaya Kumar <jayakumar.lkml@gmail.com>
Signed-off-by: default avatarBruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 6dc398ac
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -707,18 +707,19 @@ static int picolcd_init_framebuffer(struct picolcd_data *data)
		dev_err(dev, "failed to create sysfs attributes\n");
		goto err_cleanup;
	}
	fb_deferred_io_init(info);
	data->fb_info    = info;
	error = register_framebuffer(info);
	if (error) {
		dev_err(dev, "failed to register framebuffer\n");
		goto err_sysfs;
	}
	fb_deferred_io_init(info);
	/* schedule first output of framebuffer */
	schedule_delayed_work(&info->deferred_work, 0);
	return 0;

err_sysfs:
	fb_deferred_io_cleanup(info);
	device_remove_file(dev, &dev_attr_fb_update_rate);
err_cleanup:
	data->fb_vbitmap = NULL;
@@ -747,7 +748,6 @@ static void picolcd_exit_framebuffer(struct picolcd_data *data)
	data->fb_bpp     = 0;
	data->fb_info    = NULL;
	device_remove_file(&data->hdev->dev, &dev_attr_fb_update_rate);
	fb_deferred_io_cleanup(info);
	unregister_framebuffer(info);
	vfree(fb_bitmap);
	kfree(fb_vbitmap);