Esempio n. 1
0
int console_register(struct console_device *newcdev)
{
	struct device_d *dev = &newcdev->class_dev;
	int first = 0;
	char ch;

	strcpy(dev->name, "cs");
	dev->type_data = newcdev;
	register_device(dev);

	if (newcdev->setbrg) {
		newcdev->baudrate_param.set = console_baudrate_set;
		newcdev->baudrate_param.name = "baudrate";
		sprintf(newcdev->baudrate_string, "%d",
			CONFIG_BAUDRATE);
		console_baudrate_set(dev, &newcdev->baudrate_param,
			newcdev->baudrate_string);
		newcdev->baudrate_param.value = newcdev->baudrate_string;
		dev_add_param(dev, &newcdev->baudrate_param);
	}

	newcdev->active_param.set = console_std_set;
	newcdev->active_param.name  = "active";
	newcdev->active_param.value = newcdev->active;
	dev_add_param(dev, &newcdev->active_param);

	initialized = CONSOLE_INIT_FULL;
#ifdef CONFIG_CONSOLE_ACTIVATE_ALL
	console_std_set(dev, &newcdev->active_param, "ioe");
#endif
#ifdef CONFIG_CONSOLE_ACTIVATE_FIRST
	if (list_empty(&console_list)) {
		first = 1;
		console_std_set(dev, &newcdev->active_param, "ioe");
	}
#endif

	list_add_tail(&newcdev->list, &console_list);

	if (console_output_buffer) {
		while (kfifo_getc(console_output_buffer, &ch) == 0)
			console_putc(CONSOLE_STDOUT, ch);
		kfifo_free(console_output_buffer);
		console_output_buffer = NULL;
	}

#ifndef CONFIG_HAS_EARLY_INIT
	if (first)
		display_banner();
#endif

	return 0;
}
Esempio n. 2
0
int console_register(struct console_device *newcdev)
{
	struct device_d *dev = &newcdev->class_dev;
	int activate = 0;

	if (initialized == CONSOLE_UNINITIALIZED)
		console_init_early();

	dev->id = DEVICE_ID_DYNAMIC;
	strcpy(dev->name, "cs");
	if (newcdev->dev)
		dev->parent = newcdev->dev;
	platform_device_register(dev);

	if (newcdev->setbrg) {
		newcdev->baudrate = CONFIG_BAUDRATE;
		dev_add_param_int(dev, "baudrate", console_baudrate_set,
			NULL, &newcdev->baudrate, "%u", newcdev);
	}

	dev_add_param(dev, "active", console_std_set, NULL, 0);

	if (IS_ENABLED(CONFIG_CONSOLE_ACTIVATE_FIRST)) {
		if (list_empty(&console_list))
			activate = 1;
	} else if (IS_ENABLED(CONFIG_CONSOLE_ACTIVATE_ALL)) {
		activate = 1;
	}

	if (newcdev->dev && of_device_is_stdout_path(newcdev->dev)) {
		activate = 1;
		console_set_stdoutpath(newcdev);
	}

	list_add_tail(&newcdev->list, &console_list);

	if (activate) {
		if (IS_ENABLED(CONFIG_PARAMETER))
			dev_set_param(dev, "active", "ioe");
		else
			console_std_set(dev, NULL, "ioe");
	}

	return 0;
}