static void __exit imx278_exit_module(void) { rpmsg_sensor_unregister((void *)&s_imx278); hwsensor_unregister(&s_imx278.intf); platform_driver_unregister(&s_imx278_driver); }
static int32_t imx278_platform_probe( struct platform_device* pdev) { if (NULL == pdev){ cam_err("%s pdev is null.\n", __func__); return -1; } int rc = 0; cam_notice("enter %s",__func__); if (pdev->dev.of_node) { rc = hw_sensor_get_dt_data(pdev, &s_imx278); if (rc < 0) { cam_err("%s failed line %d\n", __func__, __LINE__); goto imx278_sensor_probe_fail; } } else { cam_err("%s imx278 of_node is NULL.\n", __func__); goto imx278_sensor_probe_fail; } s_imx278.dev = &pdev->dev; rc = hwsensor_register(pdev, &s_imx278.intf); if (0 != rc){ cam_err("%s hwsensor_register fail.\n", __func__); goto imx278_sensor_probe_fail; } rc = rpmsg_sensor_register(pdev, (void *)&s_imx278); if (0 != rc){ cam_err("%s rpmsg_sensor_register fail.\n", __func__); hwsensor_unregister(&s_imx278.intf); goto imx278_sensor_probe_fail; } imx278_sensor_probe_fail: return rc; }
static void __exit imx278_carrera_exit_module(void) { hwsensor_unregister(&s_imx278_carrera.intf); platform_driver_unregister(&s_imx278_carrera_driver); }
static void __exit imx328_exit_module(void) { hwsensor_unregister(&s_imx328.intf); platform_driver_unregister(&s_imx328_driver); }
static void __exit ov13850_exit_module(void) { hwsensor_unregister(&s_ov13850.intf); platform_driver_unregister(&s_ov13850_driver); }
static void __exit ar1335_exit_module(void) { hwsensor_unregister(&s_ar1335.intf); platform_driver_unregister(&s_ar1335_driver); }