static int alsps_probe(struct platform_device *pdev) { int err; ALSPS_LOG("alsps_probe func called"); ALSPS_LOG("+++++++++++++alsps_probe!!\n"); alsps_context_obj = alsps_context_alloc_object(); if (!alsps_context_obj) { err = -ENOMEM; ALSPS_ERR("unable to allocate devobj!\n"); goto exit_alloc_data_failed; } //init real alspseleration driver err = alsps_real_driver_init(); if(err) { ALSPS_ERR("alsps real driver init fail\n"); goto real_driver_init_fail; } //init input dev err = alsps_input_init(alsps_context_obj); if(err) { ALSPS_ERR("unable to register alsps input device!\n"); goto exit_alloc_input_dev_failed; } atomic_set(&(alsps_context_obj->early_suspend), 0); alsps_context_obj->early_drv.level = EARLY_SUSPEND_LEVEL_STOP_DRAWING - 1, alsps_context_obj->early_drv.suspend = alsps_early_suspend, alsps_context_obj->early_drv.resume = alsps_late_resume, register_early_suspend(&alsps_context_obj->early_drv); ALSPS_LOG("----alsps_probe OK !!\n"); return 0; real_driver_init_fail: exit_alloc_input_dev_failed: kfree(alsps_context_obj); exit_alloc_data_failed: ALSPS_LOG("----alsps_probe fail !!!\n"); return err; }
static int alsps_probe(struct platform_device *pdev) { int err; ALSPS_LOG("+++++++++++++alsps_probe!!\n"); alsps_context_obj = alsps_context_alloc_object(); if (!alsps_context_obj) { err = -ENOMEM; ALSPS_ERR("unable to allocate devobj!\n"); goto exit_alloc_data_failed; } //init real alspseleration driver err = alsps_real_driver_init(); if(err) { ALSPS_ERR("alsps real driver init fail\n"); goto real_driver_init_fail; } //init alsps common factory mode misc device err = alsps_factory_device_init(); if(err) { ALSPS_ERR("alsps factory device already registed\n"); } //init input dev err = alsps_input_init(alsps_context_obj); if(err) { ALSPS_ERR("unable to register alsps input device!\n"); goto exit_alloc_input_dev_failed; } #if defined(CONFIG_HAS_EARLYSUSPEND) && defined(CONFIG_EARLYSUSPEND) atomic_set(&(alsps_context_obj->early_suspend), 0); alsps_context_obj->early_drv.level = EARLY_SUSPEND_LEVEL_STOP_DRAWING - 1, alsps_context_obj->early_drv.suspend = alsps_early_suspend, alsps_context_obj->early_drv.resume = alsps_late_resume, register_early_suspend(&alsps_context_obj->early_drv); #endif ALSPS_LOG("----alsps_probe OK !!\n"); return 0; //exit_hwmsen_create_attr_failed: //exit_misc_register_failed: //exit_err_sysfs: real_driver_init_fail: exit_alloc_input_dev_failed: kfree(alsps_context_obj); alsps_context_obj = NULL; exit_alloc_data_failed: ALSPS_LOG("----alsps_probe fail !!!\n"); return err; }