Esempio n. 1
0
int sensors_register(struct device *dev, void * drvdata, struct device_attribute *attributes[], char *name)
{
	int ret = 0;

	if(!sensors_class)
	{
		sensors_class = class_create(THIS_MODULE, "sensors");
		if(IS_ERR(sensors_class))
			return PTR_ERR(sensors_class);
	}

	mutex_lock(&sensors_mutex);

	dev = device_create(sensors_class, NULL, 0, drvdata, "%s", name);

	if (IS_ERR(dev)) {
		ret = PTR_ERR(dev);
        printk(KERN_ERR "[SENSORS CORE] device_create failed! [%d]\n", ret);
		return ret;
	}

	set_sensor_attr(dev, attributes);

	atomic_inc(&sensor_count);

	mutex_unlock(&sensors_mutex);

	return 0;
}
int sensors_register(struct device **dev, void * drvdata,
	struct device_attribute *attributes[], char *name)
{
	int ret = 0;


	if (!sensors_class) {
		sensors_class = class_create(THIS_MODULE, "sensors");
		if (IS_ERR(sensors_class))
			return PTR_ERR(sensors_class);
	}


	*dev = device_create(sensors_class, NULL, 0, drvdata, "%s", name);

	if (IS_ERR(*dev)) {
		ret = PTR_ERR(*dev);
		pr_err("[SENSORS CORE] device_create failed [%d]\n", ret);
		return ret;
	}

	ret = set_sensor_attr(*dev, attributes);

	return ret;
}
int sensors_register(struct device **dev, void * drvdata,
	struct device_attribute *attributes[], char *name)
{
	int ret = 0;
#ifdef DEBUG_HAN
	pr_info("Thanks to into sensors_register\n");
#endif

	if (!sensors_class) {
		sensors_class = class_create(THIS_MODULE, "sensors");
		if (IS_ERR(sensors_class))
			return PTR_ERR(sensors_class);
	}
#ifdef DEBUG_HAN
	pr_info("The Class is created\n");
#endif
	mutex_lock(&sensors_mutex);

	*dev = device_create(sensors_class, NULL, 0, drvdata, "%s", name);

	if (IS_ERR(*dev)) {
		ret = PTR_ERR(*dev);
		pr_err("[SENSORS CORE] device_create failed [%d]\n", ret);
		return ret;
	}

	ret = set_sensor_attr(*dev, attributes);

	atomic_inc(&sensor_count);

	mutex_unlock(&sensors_mutex);

	return ret;
}
int adsp_factory_register(char *dev_name, int type,
	struct device_attribute *attributes[], struct adsp_fac_ctl *fact_ctl)
{
	int ret = 0;
	pr_err("[FACTORY] %s\n", __func__);
	data->ctl[type] = fact_ctl;
#ifdef CONFIG_ADSP_FACTORY
	sensors_factory_class = get_adsp_sensor_class();
#endif
	data->sensor_device[type] =
		device_create(sensors_factory_class,
			NULL, 0, data, "%s", dev_name);
	if (IS_ERR(data->sensor_device[type])) {
		ret = PTR_ERR(data->sensor_device[type]);
		pr_err("[FACTORY] %s: device_create failed![%d]\n",
			__func__, ret);
		return ret;
	}
	set_sensor_attr(data->sensor_device[type], attributes);
	atomic_inc(&sensor_count);
	data->ctl[type]->receive_data_fnc(data, CALLBACK_REGISTER_SUCCESS);
	return ret;
}