Loading drivers/media/platform/msm/camera/cam_core/cam_hw_intf.h +5 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_HW_INTF_H_ Loading Loading @@ -73,4 +73,8 @@ struct cam_hw_intf { void *hw_priv; }; /* hardware event callback function type */ typedef int (*cam_hw_mgr_event_cb_func)(void *priv, uint32_t evt_id, void *evt_data); #endif /* _CAM_HW_INTF_H_ */ drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c +269 −955 File changed.Preview size limit exceeded, changes collapsed. Show changes drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.h +2 −34 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ struct cam_ife_hw_mgr_debug { * @config_done_complete indicator for configuration complete * @init_done indicate whether init hw is done * @is_fe_enable indicate whether fetch engine\read path is enabled * @is_dual indicate whether context is in dual VFE mode */ struct cam_ife_hw_mgr_ctx { struct list_head list; Loading Loading @@ -160,6 +161,7 @@ struct cam_ife_hw_mgr_ctx { struct completion config_done_complete; bool init_done; bool is_fe_enable; bool is_dual; }; /** Loading Loading @@ -210,38 +212,4 @@ struct cam_ife_hw_mgr { */ int cam_ife_hw_mgr_init(struct cam_hw_mgr_intf *hw_mgr_intf, int *iommu_hdl); /** * cam_ife_mgr_do_tasklet_buf_done() * * @brief: Main tasklet handle function for the buf done event * * @handler_priv: Tasklet information handle * @evt_payload_priv: Event payload for the handler funciton * */ int cam_ife_mgr_do_tasklet_buf_done(void *handler_priv, void *evt_payload_priv); /** * cam_ife_mgr_do_tasklet() * * @brief: Main tasklet handle function for mux resource events * * @handler_priv: Tasklet information handle * @evt_payload_priv: Event payload for the handler funciton * */ int cam_ife_mgr_do_tasklet(void *handler_priv, void *evt_payload_priv); /** * cam_ife_mgr_do_tasklet_reg_update() * * @brief: Tasklet handle function for reg update * * @handler_priv: Tasklet information handle * @evt_payload_priv: Event payload for the handler funciton * */ int cam_ife_mgr_do_tasklet_reg_update(void *handler_priv, void *evt_payload_priv); #endif /* _CAM_IFE_HW_MGR_H_ */ drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/hw_utils/cam_tasklet_util.c +5 −2 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include <linux/slab.h> Loading @@ -24,6 +24,7 @@ static void cam_tasklet_action(unsigned long data); * @list: list_head member for each entry in queue * @payload: Payload structure for the event. This will be * passed to the handler function * @handler_priv: Private data passed at event subscribe * @bottom_half_handler: Function pointer for event handler in bottom * half context * Loading @@ -31,6 +32,7 @@ static void cam_tasklet_action(unsigned long data); struct cam_tasklet_queue_cmd { struct list_head list; void *payload; void *handler_priv; CAM_IRQ_HANDLER_BOTTOM_HALF bottom_half_handler; }; Loading Loading @@ -203,6 +205,7 @@ void cam_tasklet_enqueue_cmd( CAM_DBG(CAM_ISP, "Enqueue tasklet cmd"); tasklet_cmd->bottom_half_handler = bottom_half_handler; tasklet_cmd->payload = evt_payload_priv; tasklet_cmd->handler_priv = handler_priv; spin_lock_irqsave(&tasklet->tasklet_lock, flags); list_add_tail(&tasklet_cmd->list, &tasklet->used_cmd_list); Loading Loading @@ -317,7 +320,7 @@ static void cam_tasklet_action(unsigned long data) tasklet_info = (struct cam_tasklet_info *)data; while (!cam_tasklet_dequeue_cmd(tasklet_info, &tasklet_cmd)) { tasklet_cmd->bottom_half_handler(tasklet_info->ctx_priv, tasklet_cmd->bottom_half_handler(tasklet_cmd->handler_priv, tasklet_cmd->payload); cam_tasklet_put_cmd(tasklet_info, (void **)(&tasklet_cmd)); } Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/include/cam_isp_hw.h +19 −1 Original line number Diff line number Diff line Loading @@ -8,9 +8,9 @@ #include <linux/completion.h> #include "cam_hw.h" #include <uapi/media/cam_isp.h> #include "cam_soc_util.h" #include "cam_irq_controller.h" #include "cam_hw_intf.h" #include <uapi/media/cam_isp.h> /* Loading Loading @@ -152,6 +152,24 @@ struct cam_isp_resource_node { CAM_IRQ_HANDLER_BOTTOM_HALF bottom_half_handler; }; /* * struct cam_isp_hw_event_info: * * @Brief: Structure to pass event details to hw mgr * * @res_type: Type of IFE resource * @res_id: Unique resource ID * @hw_idx: IFE hw index * @err_type: Error type if any * */ struct cam_isp_hw_event_info { enum cam_isp_resource_type res_type; uint32_t res_id; uint32_t hw_idx; uint32_t err_type; }; /* * struct cam_isp_hw_cmd_buf_update: * Loading Loading
drivers/media/platform/msm/camera/cam_core/cam_hw_intf.h +5 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_HW_INTF_H_ Loading Loading @@ -73,4 +73,8 @@ struct cam_hw_intf { void *hw_priv; }; /* hardware event callback function type */ typedef int (*cam_hw_mgr_event_cb_func)(void *priv, uint32_t evt_id, void *evt_data); #endif /* _CAM_HW_INTF_H_ */
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c +269 −955 File changed.Preview size limit exceeded, changes collapsed. Show changes
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.h +2 −34 Original line number Diff line number Diff line Loading @@ -124,6 +124,7 @@ struct cam_ife_hw_mgr_debug { * @config_done_complete indicator for configuration complete * @init_done indicate whether init hw is done * @is_fe_enable indicate whether fetch engine\read path is enabled * @is_dual indicate whether context is in dual VFE mode */ struct cam_ife_hw_mgr_ctx { struct list_head list; Loading Loading @@ -160,6 +161,7 @@ struct cam_ife_hw_mgr_ctx { struct completion config_done_complete; bool init_done; bool is_fe_enable; bool is_dual; }; /** Loading Loading @@ -210,38 +212,4 @@ struct cam_ife_hw_mgr { */ int cam_ife_hw_mgr_init(struct cam_hw_mgr_intf *hw_mgr_intf, int *iommu_hdl); /** * cam_ife_mgr_do_tasklet_buf_done() * * @brief: Main tasklet handle function for the buf done event * * @handler_priv: Tasklet information handle * @evt_payload_priv: Event payload for the handler funciton * */ int cam_ife_mgr_do_tasklet_buf_done(void *handler_priv, void *evt_payload_priv); /** * cam_ife_mgr_do_tasklet() * * @brief: Main tasklet handle function for mux resource events * * @handler_priv: Tasklet information handle * @evt_payload_priv: Event payload for the handler funciton * */ int cam_ife_mgr_do_tasklet(void *handler_priv, void *evt_payload_priv); /** * cam_ife_mgr_do_tasklet_reg_update() * * @brief: Tasklet handle function for reg update * * @handler_priv: Tasklet information handle * @evt_payload_priv: Event payload for the handler funciton * */ int cam_ife_mgr_do_tasklet_reg_update(void *handler_priv, void *evt_payload_priv); #endif /* _CAM_IFE_HW_MGR_H_ */
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/hw_utils/cam_tasklet_util.c +5 −2 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include <linux/slab.h> Loading @@ -24,6 +24,7 @@ static void cam_tasklet_action(unsigned long data); * @list: list_head member for each entry in queue * @payload: Payload structure for the event. This will be * passed to the handler function * @handler_priv: Private data passed at event subscribe * @bottom_half_handler: Function pointer for event handler in bottom * half context * Loading @@ -31,6 +32,7 @@ static void cam_tasklet_action(unsigned long data); struct cam_tasklet_queue_cmd { struct list_head list; void *payload; void *handler_priv; CAM_IRQ_HANDLER_BOTTOM_HALF bottom_half_handler; }; Loading Loading @@ -203,6 +205,7 @@ void cam_tasklet_enqueue_cmd( CAM_DBG(CAM_ISP, "Enqueue tasklet cmd"); tasklet_cmd->bottom_half_handler = bottom_half_handler; tasklet_cmd->payload = evt_payload_priv; tasklet_cmd->handler_priv = handler_priv; spin_lock_irqsave(&tasklet->tasklet_lock, flags); list_add_tail(&tasklet_cmd->list, &tasklet->used_cmd_list); Loading Loading @@ -317,7 +320,7 @@ static void cam_tasklet_action(unsigned long data) tasklet_info = (struct cam_tasklet_info *)data; while (!cam_tasklet_dequeue_cmd(tasklet_info, &tasklet_cmd)) { tasklet_cmd->bottom_half_handler(tasklet_info->ctx_priv, tasklet_cmd->bottom_half_handler(tasklet_cmd->handler_priv, tasklet_cmd->payload); cam_tasklet_put_cmd(tasklet_info, (void **)(&tasklet_cmd)); } Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/include/cam_isp_hw.h +19 −1 Original line number Diff line number Diff line Loading @@ -8,9 +8,9 @@ #include <linux/completion.h> #include "cam_hw.h" #include <uapi/media/cam_isp.h> #include "cam_soc_util.h" #include "cam_irq_controller.h" #include "cam_hw_intf.h" #include <uapi/media/cam_isp.h> /* Loading Loading @@ -152,6 +152,24 @@ struct cam_isp_resource_node { CAM_IRQ_HANDLER_BOTTOM_HALF bottom_half_handler; }; /* * struct cam_isp_hw_event_info: * * @Brief: Structure to pass event details to hw mgr * * @res_type: Type of IFE resource * @res_id: Unique resource ID * @hw_idx: IFE hw index * @err_type: Error type if any * */ struct cam_isp_hw_event_info { enum cam_isp_resource_type res_type; uint32_t res_id; uint32_t hw_idx; uint32_t err_type; }; /* * struct cam_isp_hw_cmd_buf_update: * Loading