Example #1
0
static int f17_init(struct rmi_function_container *fc)
{
	int retval;

	retval = f17_alloc_memory(fc);
	if (retval < 0)
		goto err_free_data;

	retval = f17_initialize(fc);
	if (retval < 0)
		goto err_free_data;

	retval = f17_register_devices(fc);
	if (retval < 0)
		goto err_free_data;

	retval = f17_create_sysfs(fc);
	if (retval < 0)
		goto err_free_data;

	return 0;

err_free_data:
	f17_free_memory(fc);

	return retval;
}
Example #2
0
static void f17_remove(struct rmi_function_container *fc)
{
	struct rmi_f17_device_data *f17 = fc->data;
	int i = 0;

	for (i = 0; i < ARRAY_SIZE(attrs); i++)
		sysfs_remove_file(&fc->dev.kobj, &attrs[i].attr);

	for (i = 0; i < f17->query.number_of_sticks + 1; i++)
		input_unregister_device(f17->sticks[i].input);

	f17_free_memory(fc);
}