static void __exit msm_sensor_exit_module(void) { if (ov2720_s_ctrl.pdev) { msm_sensor_free_sensor_data(&ov2720_s_ctrl); platform_driver_unregister(&ov2720_platform_driver); } else i2c_del_driver(&ov2720_i2c_driver); return; }
static void __exit ov13850_1140m_exit_module(void) { pr_info("%s:%d\n", __func__, __LINE__); if (ov13850_1140m_s_ctrl.pdev) { msm_sensor_free_sensor_data(&ov13850_1140m_s_ctrl); platform_driver_unregister(&ov13850_1140m_platform_driver); } else i2c_del_driver(&ov13850_1140m_i2c_driver); return; }
static void __exit imx119_exit_module(void) { pr_err("%s:%d\n", __func__, __LINE__); if (imx119_s_ctrl.pdev) { msm_sensor_free_sensor_data(&imx119_s_ctrl); platform_driver_unregister(&imx119_platform_driver); } else i2c_del_driver(&imx119_i2c_driver); return; }
static void __exit s5k3l1yx_exit_module(void) { CDBG("%s:%d exit\n", __func__, __LINE__); if (s5k3l1yx_s_ctrl.pdev) { msm_sensor_free_sensor_data(&s5k3l1yx_s_ctrl); platform_driver_unregister(&s5k3l1yx_platform_driver); } else i2c_del_driver(&s5k3l1yx_i2c_driver); return; }
static void __exit s5k4e1_liteon_affli_exit_module(void) { pr_info("%s:%d\n", __func__, __LINE__); if (s5k4e1_liteon_affli_s_ctrl.pdev) { msm_sensor_free_sensor_data(&s5k4e1_liteon_affli_s_ctrl); platform_driver_unregister(&s5k4e1_liteon_affli_platform_driver); } else i2c_del_driver(&s5k4e1_liteon_affli_i2c_driver); return; }
static void __exit mt9m114b_exit_module(void) { if (mt9m114b_s_ctrl.pdev) { msm_sensor_free_sensor_data(&mt9m114b_s_ctrl); platform_driver_unregister(&mt9m114b_platform_driver); } else { i2c_del_driver(&mt9m114b_i2c_driver); } return; }
static void __exit gc2235_imatec_exit_module(void) { pr_info("%s:%d\n", __func__, __LINE__); if (gc2235_imatec_s_ctrl.pdev) { msm_sensor_free_sensor_data(&gc2235_imatec_s_ctrl); platform_driver_unregister(&gc2235_imatec_platform_driver); } else i2c_del_driver(&gc2235_imatec_i2c_driver); return; }
static void __exit t4k37_qtech_f4k37ab_exit_module(void) { CDBG("%s:%d\n", __func__, __LINE__); if (t4k37_qtech_f4k37ab_s_ctrl.pdev) { msm_sensor_free_sensor_data(&t4k37_qtech_f4k37ab_s_ctrl); platform_driver_unregister(&t4k37_qtech_f4k37ab_platform_driver); } else i2c_del_driver(&t4k37_qtech_f4k37ab_i2c_driver); return; }
static void __exit hi841_qtech_exit_module(void) { pr_info("%s:%d\n", __func__, __LINE__); if (hi841_qtech_s_ctrl.pdev) { msm_sensor_free_sensor_data(&hi841_qtech_s_ctrl); platform_driver_unregister(&hi841_qtech_platform_driver); } else i2c_del_driver(&hi841_qtech_i2c_driver); return; }
static void __exit s5k4h5ya_exit_module(void) { CDBG("E\n"); if (s5k4h5ya_s_ctrl.pdev) { msm_sensor_free_sensor_data(&s5k4h5ya_s_ctrl); platform_driver_unregister(&s5k4h5ya_platform_driver); } else i2c_del_driver(&s5k4h5ya_i2c_driver); CDBG("X\n"); return; }
static void __exit avdevice_exit_module(void) { int i = 0; for (i = 0; i < NUM_AV_DEVICES; i++) { if (avdevice_a_s_ctrl[i].pdev) msm_sensor_free_sensor_data(&avdevice_a_s_ctrl[i]); } platform_driver_unregister(&avdevice_ba_platform_driver); return; }
static void __exit ov10820_exit_module(void) { if (ov10820_s_ctrl.pdev) { msm_sensor_free_sensor_data(&ov10820_s_ctrl); platform_driver_unregister(&ov10820_platform_driver); } else i2c_del_driver(&ov10820_i2c_driver); if (ov10820_kobject) { sysfs_remove_group(ov10820_kobject, &ov10820_group); kobject_del(ov10820_kobject); } return; }
static void __exit imx081_exit_module(void) { CDBG("%s:%d\n", __func__, __LINE__); if (imx081_s_ctrl.pdev) { msm_sensor_free_sensor_data(&imx081_s_ctrl); platform_driver_unregister(&imx081_platform_driver); } else i2c_del_driver(&imx081_i2c_driver); kfree(imx081_diag_data); imx081_diag_data = NULL; return; }
static int msm_sensor_driver_i2c_remove(struct i2c_client *client) { struct msm_sensor_ctrl_t *s_ctrl = i2c_get_clientdata(client); pr_err("%s: sensor FREE\n", __func__); if (!s_ctrl) { pr_err("%s: sensor device is NULL\n", __func__); return 0; } g_sctrl[s_ctrl->id] = NULL; msm_sensor_free_sensor_data(s_ctrl); kfree(s_ctrl->msm_sensor_mutex); kfree(s_ctrl->sensor_i2c_client); kfree(s_ctrl); return 0; }
static int msm_sensor_platform_remove(struct platform_device *pdev) { struct msm_sensor_ctrl_t *s_ctrl; pr_err("%s: sensor FREE\n", __func__); s_ctrl = g_sctrl[pdev->id]; if (!s_ctrl) { pr_err("%s: sensor device is NULL\n", __func__); return 0; } msm_sensor_free_sensor_data(s_ctrl); kfree(s_ctrl->msm_sensor_mutex); kfree(s_ctrl->sensor_i2c_client); kfree(s_ctrl); g_sctrl[pdev->id] = NULL; return 0; }