static int ht16k33_remove()

in ht16k33.c [778:801]


static int ht16k33_remove(struct i2c_client *client)
{
	struct ht16k33_priv *priv = i2c_get_clientdata(client);
	struct ht16k33_fbdev *fbdev = &priv->fbdev;

	cancel_delayed_work_sync(&priv->work);

	switch (priv->type) {
	case DISP_MATRIX:
		unregister_framebuffer(fbdev->info);
		framebuffer_release(fbdev->info);
		free_page((unsigned long)fbdev->buffer);
		break;

	case DISP_QUAD_7SEG:
	case DISP_QUAD_14SEG:
		linedisp_unregister(&priv->seg.linedisp);
		device_remove_file(&client->dev, &dev_attr_map_seg7);
		device_remove_file(&client->dev, &dev_attr_map_seg14);
		break;
	}

	return 0;
}