Esempio n. 1
0
void init_configfs_setup(void)
{
	int ret;
	int i;
	struct configfs_subsystem *subsys;

	for (i = 0; configfs_subsys[i]; i++) {
		subsys = configfs_subsys[i];
		config_group_init(&subsys->su_group);
		mutex_init(&subsys->su_mutex);
		ret = configfs_register_subsystem(subsys);
		if (ret) {
			PRINTK_ERROR("Error %d while registering subsystem %s\n",
				ret,
				subsys->su_group.cg_item.ci_namebuf);
			goto out_unregister;
		}
	}

	return;

out_unregister:
	for (i--; i >= 0; i--)
		configfs_unregister_subsystem(configfs_subsys[i]);
}
Esempio n. 2
0
/**
 * dtbocfg_module_init()
 */
static int __init dtbocfg_module_init(void)
{
    int retval = 0;

    pr_info("%s\n", __func__);

    config_group_init(&dtbocfg_root_subsys.su_group);
    config_group_init_type_name(&dtbocfg_overlay_group, "overlays", &dtbocfg_overlays_type);

    retval = configfs_register_subsystem(&dtbocfg_root_subsys);
    if (retval != 0) {
        pr_err( "%s: couldn't register subsys\n", __func__);
        goto register_subsystem_failed;
    }

    retval = configfs_register_group(&dtbocfg_root_subsys.su_group, &dtbocfg_overlay_group);
    if (retval != 0) {
        pr_err( "%s: couldn't register group\n", __func__);
        goto register_group_failed;
    }

    pr_info("%s: OK\n", __func__);
    return 0;

  register_group_failed:
    configfs_unregister_subsystem(&dtbocfg_root_subsys);
  register_subsystem_failed:
    return retval;
}
//----------------------------------------------------------
static int __init iio_configfs_init(void)
{
	config_group_init(&iio_triggers_group);
	config_group_init(&iio_devices_group);
	config_group_init(&iio_configfs_subsys.su_group);

	return configfs_register_subsystem(&iio_configfs_subsys);
}
Esempio n. 4
0
static int __init gpiommc_modinit(void)
{
	int err;

	err = platform_driver_register(&gpiommc_plat_driver);
	if (err)
		return err;

#ifdef CONFIG_GPIOMMC_CONFIGFS
	config_group_init(&gpiommc_subsys.su_group);
	err = configfs_register_subsystem(&gpiommc_subsys);
	if (err) {
		platform_driver_unregister(&gpiommc_plat_driver);
		return err;
	}
#endif /* CONFIG_GPIOMMC_CONFIGFS */

	return 0;
}
Esempio n. 5
0
static int __init dynamic_netconsole_init(void)
{
	config_group_init(&netconsole_subsys.su_group);
	mutex_init(&netconsole_subsys.su_mutex);
	return configfs_register_subsystem(&netconsole_subsys);
}