Loading drivers/cam_req_mgr/cam_req_mgr_dev.c +12 −58 Original line number Diff line number Diff line Loading @@ -656,14 +656,6 @@ int cam_register_subdev(struct cam_subdev *csd) } mutex_lock(&g_dev.dev_lock); if ((g_dev.subdev_nodes_created) && (csd->sd_flags & V4L2_SUBDEV_FL_HAS_DEVNODE)) { CAM_ERR(CAM_CRM, "dynamic node is not allowed, name: %s, type :%d", csd->name, csd->ent_function); rc = -EINVAL; goto reg_fail; } sd = &csd->sd; v4l2_subdev_init(sd, csd->ops); Loading @@ -682,6 +674,18 @@ int cam_register_subdev(struct cam_subdev *csd) goto reg_fail; } rc = v4l2_device_register_subdev_nodes(g_dev.v4l2_dev); if (rc) { CAM_ERR(CAM_CRM, "Failed to register subdev node: %s, rc: %d", sd->name, rc); goto reg_fail; } if (sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE) { sd->entity.name = video_device_node_name(sd->devnode); CAM_DBG(CAM_CRM, "created node :%s", sd->entity.name); } g_dev.count++; reg_fail: Loading @@ -706,47 +710,6 @@ int cam_unregister_subdev(struct cam_subdev *csd) } EXPORT_SYMBOL(cam_unregister_subdev); static int cam_dev_mgr_create_subdev_nodes(void) { int rc; struct v4l2_subdev *sd; if (!g_dev.v4l2_dev) { CAM_ERR(CAM_CRM, "V4L2 device not initialized"); return -EINVAL; } if (!g_dev.state) { CAM_ERR(CAM_CRM, "camera root device not ready"); return -ENODEV; } mutex_lock(&g_dev.dev_lock); if (g_dev.subdev_nodes_created) { rc = -EEXIST; goto create_fail; } rc = v4l2_device_register_subdev_nodes(g_dev.v4l2_dev); if (rc) { CAM_ERR(CAM_CRM, "failed to register the sub devices"); goto create_fail; } list_for_each_entry(sd, &g_dev.v4l2_dev->subdevs, list) { if (!(sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE)) continue; sd->entity.name = video_device_node_name(sd->devnode); CAM_DBG(CAM_CRM, "created node :%s", sd->entity.name); } g_dev.subdev_nodes_created = true; create_fail: mutex_unlock(&g_dev.dev_lock); return rc; } static int cam_req_mgr_component_master_bind(struct device *dev) { int rc = 0; Loading @@ -767,7 +730,6 @@ static int cam_req_mgr_component_master_bind(struct device *dev) g_dev.open_cnt = 0; mutex_init(&g_dev.cam_lock); spin_lock_init(&g_dev.cam_eventq_lock); g_dev.subdev_nodes_created = false; mutex_init(&g_dev.dev_lock); rc = cam_req_mgr_util_init(); Loading Loading @@ -806,13 +768,6 @@ static int cam_req_mgr_component_master_bind(struct device *dev) goto req_mgr_device_deinit; } rc = cam_dev_mgr_create_subdev_nodes(); if (rc) { CAM_ERR(CAM_CRM, "failed in creating devices for subdevs %d", rc); goto req_mgr_device_deinit; } CAM_DBG(CAM_CRM, "All camera components bound successfully"); rc = sysfs_create_file(&dev->kobj, &camera_debug_sysfs_attr.attr); if (rc < 0) { Loading Loading @@ -855,7 +810,6 @@ static void cam_req_mgr_component_master_unbind(struct device *dev) cam_v4l2_device_cleanup(); mutex_destroy(&g_dev.dev_lock); g_dev.state = false; g_dev.subdev_nodes_created = false; } static const struct component_master_ops cam_req_mgr_component_master_ops = { Loading drivers/cam_req_mgr/cam_req_mgr_dev.h +0 −2 Original line number Diff line number Diff line Loading @@ -12,7 +12,6 @@ * * @video: pointer to struct video device. * @v4l2_dev: pointer to struct v4l2 device. * @subdev_nodes_created: all subdev nodes are created for this device * @count: number of subdevices registered. * @dev_lock: lock for the subdevice count. * @state: state of the root device. Loading @@ -24,7 +23,6 @@ struct cam_req_mgr_device { struct video_device *video; struct v4l2_device *v4l2_dev; bool subdev_nodes_created; int count; struct mutex dev_lock; bool state; Loading Loading
drivers/cam_req_mgr/cam_req_mgr_dev.c +12 −58 Original line number Diff line number Diff line Loading @@ -656,14 +656,6 @@ int cam_register_subdev(struct cam_subdev *csd) } mutex_lock(&g_dev.dev_lock); if ((g_dev.subdev_nodes_created) && (csd->sd_flags & V4L2_SUBDEV_FL_HAS_DEVNODE)) { CAM_ERR(CAM_CRM, "dynamic node is not allowed, name: %s, type :%d", csd->name, csd->ent_function); rc = -EINVAL; goto reg_fail; } sd = &csd->sd; v4l2_subdev_init(sd, csd->ops); Loading @@ -682,6 +674,18 @@ int cam_register_subdev(struct cam_subdev *csd) goto reg_fail; } rc = v4l2_device_register_subdev_nodes(g_dev.v4l2_dev); if (rc) { CAM_ERR(CAM_CRM, "Failed to register subdev node: %s, rc: %d", sd->name, rc); goto reg_fail; } if (sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE) { sd->entity.name = video_device_node_name(sd->devnode); CAM_DBG(CAM_CRM, "created node :%s", sd->entity.name); } g_dev.count++; reg_fail: Loading @@ -706,47 +710,6 @@ int cam_unregister_subdev(struct cam_subdev *csd) } EXPORT_SYMBOL(cam_unregister_subdev); static int cam_dev_mgr_create_subdev_nodes(void) { int rc; struct v4l2_subdev *sd; if (!g_dev.v4l2_dev) { CAM_ERR(CAM_CRM, "V4L2 device not initialized"); return -EINVAL; } if (!g_dev.state) { CAM_ERR(CAM_CRM, "camera root device not ready"); return -ENODEV; } mutex_lock(&g_dev.dev_lock); if (g_dev.subdev_nodes_created) { rc = -EEXIST; goto create_fail; } rc = v4l2_device_register_subdev_nodes(g_dev.v4l2_dev); if (rc) { CAM_ERR(CAM_CRM, "failed to register the sub devices"); goto create_fail; } list_for_each_entry(sd, &g_dev.v4l2_dev->subdevs, list) { if (!(sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE)) continue; sd->entity.name = video_device_node_name(sd->devnode); CAM_DBG(CAM_CRM, "created node :%s", sd->entity.name); } g_dev.subdev_nodes_created = true; create_fail: mutex_unlock(&g_dev.dev_lock); return rc; } static int cam_req_mgr_component_master_bind(struct device *dev) { int rc = 0; Loading @@ -767,7 +730,6 @@ static int cam_req_mgr_component_master_bind(struct device *dev) g_dev.open_cnt = 0; mutex_init(&g_dev.cam_lock); spin_lock_init(&g_dev.cam_eventq_lock); g_dev.subdev_nodes_created = false; mutex_init(&g_dev.dev_lock); rc = cam_req_mgr_util_init(); Loading Loading @@ -806,13 +768,6 @@ static int cam_req_mgr_component_master_bind(struct device *dev) goto req_mgr_device_deinit; } rc = cam_dev_mgr_create_subdev_nodes(); if (rc) { CAM_ERR(CAM_CRM, "failed in creating devices for subdevs %d", rc); goto req_mgr_device_deinit; } CAM_DBG(CAM_CRM, "All camera components bound successfully"); rc = sysfs_create_file(&dev->kobj, &camera_debug_sysfs_attr.attr); if (rc < 0) { Loading Loading @@ -855,7 +810,6 @@ static void cam_req_mgr_component_master_unbind(struct device *dev) cam_v4l2_device_cleanup(); mutex_destroy(&g_dev.dev_lock); g_dev.state = false; g_dev.subdev_nodes_created = false; } static const struct component_master_ops cam_req_mgr_component_master_ops = { Loading
drivers/cam_req_mgr/cam_req_mgr_dev.h +0 −2 Original line number Diff line number Diff line Loading @@ -12,7 +12,6 @@ * * @video: pointer to struct video device. * @v4l2_dev: pointer to struct v4l2 device. * @subdev_nodes_created: all subdev nodes are created for this device * @count: number of subdevices registered. * @dev_lock: lock for the subdevice count. * @state: state of the root device. Loading @@ -24,7 +23,6 @@ struct cam_req_mgr_device { struct video_device *video; struct v4l2_device *v4l2_dev; bool subdev_nodes_created; int count; struct mutex dev_lock; bool state; Loading