static int __init gnss_module_init()

in core.c [380:408]


static int __init gnss_module_init(void)
{
	int ret;

	ret = alloc_chrdev_region(&gnss_first, 0, GNSS_MINORS, "gnss");
	if (ret < 0) {
		pr_err("failed to allocate device numbers: %d\n", ret);
		return ret;
	}

	gnss_class = class_create(THIS_MODULE, "gnss");
	if (IS_ERR(gnss_class)) {
		ret = PTR_ERR(gnss_class);
		pr_err("failed to create class: %d\n", ret);
		goto err_unregister_chrdev;
	}

	gnss_class->dev_groups = gnss_groups;
	gnss_class->dev_uevent = gnss_uevent;

	pr_info("GNSS driver registered with major %d\n", MAJOR(gnss_first));

	return 0;

err_unregister_chrdev:
	unregister_chrdev_region(gnss_first, GNSS_MINORS);

	return ret;
}