static int diagcmd_probe(struct platform_device *pdev)
{
	struct diagcmd_platform_data *pdata = pdev->dev.platform_data;
	int ret = 0;

	if (!pdata){
		D("diagcmd_probe pdata err:%s\n", pdata->name);
		return -EBUSY;
	}

	D("%s:%s\n", __func__, pdata->name);
	diagcmd_data = kzalloc(sizeof(struct diagcmd_data), GFP_KERNEL);
	if (!diagcmd_data){
		D("diagcmd_probe data err:%s\n", pdata->name);
		return -ENOMEM;
	}

	diagcmd_data->sdev.name = pdata->name;
    ret = diagcmd_dev_register(&diagcmd_data->sdev);
	if (ret < 0)
		goto err_diagcmd_dev_register;


	return 0;

err_diagcmd_dev_register:
	kfree(diagcmd_data);

	return ret;
}
static int diagcmd_probe(struct platform_device *pdev)
{
	struct diagcmd_platform_data *pdata = pdev->dev.platform_data;
	int ret = 0;

	if (!pdata){
		D("diagcmd_probe pdata err:%s\n", pdata->name);
		return -EBUSY;
	}

	D("%s:%s\n", __func__, pdata->name);
	diagcmd_data = kzalloc(sizeof(struct diagcmd_data), GFP_KERNEL);
	if (!diagcmd_data){
		D("diagcmd_probe data err:%s\n", pdata->name);
		return -ENOMEM;
	}

	diagcmd_data->sdev.name = pdata->name;
    ret = diagcmd_dev_register(&diagcmd_data->sdev);
	if (ret < 0)
		goto err_diagcmd_dev_register;

	/* Misc device register */
	ret = misc_register(&lge_diag_misc_dev);
	if (ret) {
		printk(KERN_ERR "%s: failed to register misc device.\n", __func__);
		goto misc_register_err1;
	}

	return 0;

err_diagcmd_dev_register:
	kfree(diagcmd_data);
misc_register_err1:
	misc_deregister(&lge_diag_misc_dev);

	return ret;
}