static int __devinit ram_console_probe(struct platform_device *pdev)
{
	struct ram_console_platform_data *pdata = pdev->dev.platform_data;
	struct persistent_ram_zone *prz;

printk(KERN_ERR "zhouxin ram_console_probe\n");
#ifdef CONFIG_ZTE_PLATFORM
	zte_persistent_ram_init();
	prz = persistent_ram_init_ringbuffer(&pdev->dev, false);
#else
	prz = persistent_ram_init_ringbuffer(&pdev->dev, true);
#endif
	if (IS_ERR(prz))
		return PTR_ERR(prz);


	if (pdata) {
		bootinfo = kstrdup(pdata->bootinfo, GFP_KERNEL);
		if (bootinfo)
			bootinfo_size = strlen(bootinfo);
	}

	ram_console_zone = prz;
	ram_console.data = prz;

	register_console(&ram_console);

	return 0;
}
static int __devinit persistent_trace_probe(struct platform_device *pdev)
{
	struct dentry *d;
	int ret;

	persistent_trace = persistent_ram_init_ringbuffer(&pdev->dev, false);
	if (IS_ERR(persistent_trace)) {
		pr_err("persistent_trace: failed to init ringbuffer: %ld\n",
				PTR_ERR(persistent_trace));
		return PTR_ERR(persistent_trace);
	}

	ret = register_tracer(&persistent_tracer);
	if (ret)
		pr_err("persistent_trace: failed to register tracer");

	if (persistent_ram_old_size(persistent_trace) > 0) {
		d = debugfs_create_file("persistent_trace", S_IRUGO, NULL,
			NULL, &persistent_trace_old_fops);
		if (IS_ERR_OR_NULL(d))
			pr_err("persistent_trace: failed to create old file\n");
	}

	return 0;
}
Ejemplo n.º 3
0
static int __devinit ram_console_probe(struct platform_device *pdev)
{
	struct ram_console_platform_data *pdata = pdev->dev.platform_data;
	struct persistent_ram_zone *prz;

	if (pdev->dev.of_node)
		pdata = ram_console_of_init(pdev);

	prz = persistent_ram_init_ringbuffer(&pdev->dev, true);
	if (IS_ERR(prz))
		return PTR_ERR(prz);

	if (pdata) {
		bootinfo = kstrdup(pdata->bootinfo, GFP_KERNEL);
		if (bootinfo)
			bootinfo_size = strlen(bootinfo);
	}

	ram_console_zone = prz;
	ram_console.data = prz;

	register_console(&ram_console);

	return 0;
}
Ejemplo n.º 4
0
static int __devinit ram_console_probe(struct platform_device *pdev)
{
	struct ram_console_platform_data pdata ;
	struct persistent_ram_zone *prz;
	int rc;

	if(!pdev->dev.of_node)
	{
		pr_err( "%s:%d, pdev->dev.of_node is NULL \n",__func__, __LINE__);
		
		return -EINVAL;
	}
	
	rc = of_property_read_string(pdev->dev.of_node, "bootinfo", &pdata.bootinfo);
	if (rc) {

		pr_err("%s:%d, bootinfo not specified\n",
						__func__, __LINE__);
		return -EINVAL;
	}

	prz = persistent_ram_init_ringbuffer(&pdev->dev, false);
	if (IS_ERR(prz))
		return PTR_ERR(prz);


	bootinfo = kstrdup(pdata.bootinfo, GFP_KERNEL);
	if (bootinfo)
		bootinfo_size = strlen(bootinfo);

	ram_console_zone = prz;
	ram_console.data = prz;

	register_console(&ram_console);

	return 0;
}