Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9ff6936 authored by Shubhraprakash Das's avatar Shubhraprakash Das Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: isp: Implement new ioctl



Implement a new ioctl that sets the ahb clock vote. This can be
used from user space to make register programming quicker.

CRs-Fixed: 1001335
Change-Id: I1bc0253ada50040d55b57f0ed07ba66b5535106a
Signed-off-by: default avatarShubhraprakash Das <sadas@codeaurora.org>
parent c6931ad2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -39,4 +39,4 @@ enum cam_ahb_clk_client {
int cam_config_ahb_clk(struct device *dev, unsigned long freq,
	enum cam_ahb_clk_client id, enum cam_ahb_clk_vote vote);
int cam_ahb_clk_init(struct platform_device *pdev);
#endif /* _CAM_HW_OPS_H_ */
#endif
+4 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include <linux/msm-bus-board.h>

#include "msm_buf_mgr.h"
#include "cam_hw_ops.h"

#define VFE40_8974V1_VERSION 0x10000018
#define VFE40_8974V2_VERSION 0x1001001A
@@ -239,6 +240,8 @@ struct msm_vfe_core_ops {
	void (*get_rdi_wm_mask)(struct vfe_device *vfe_dev,
		uint32_t *rdi_wm_mask);
	bool (*is_module_cfg_lock_needed)(uint32_t reg_offset);
	int (*ahb_clk_cfg)(struct vfe_device *vfe_dev,
			struct msm_isp_ahb_clk_cfg *ahb_cfg);
};
struct msm_vfe_stats_ops {
	int (*get_stats_idx)(enum msm_isp_stats_type stats_type);
@@ -702,6 +705,7 @@ struct vfe_device {
	uint32_t **vfe_clk_rates;
	size_t num_clk;
	size_t num_rates;
	enum cam_ahb_clk_vote ahb_vote;

	/* Sync variables*/
	struct completion reset_complete;
+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -1514,6 +1514,7 @@ struct msm_vfe_hardware_info vfe32_hw_info = {
			.get_overflow_mask = msm_vfe32_get_overflow_mask,
			.is_module_cfg_lock_needed =
				msm_vfe32_is_module_cfg_lock_needed,
			.ahb_clk_cfg = NULL,
		},
		.stats_ops = {
			.get_stats_idx = msm_vfe32_get_stats_idx,
+1 −0
Original line number Diff line number Diff line
@@ -2247,6 +2247,7 @@ struct msm_vfe_hardware_info vfe40_hw_info = {
			.process_error_status = msm_vfe40_process_error_status,
			.is_module_cfg_lock_needed =
				msm_vfe40_is_module_cfg_lock_needed,
			.ahb_clk_cfg = NULL,
		},
		.stats_ops = {
			.get_stats_idx = msm_vfe40_get_stats_idx,
+1 −0
Original line number Diff line number Diff line
@@ -1897,6 +1897,7 @@ struct msm_vfe_hardware_info vfe44_hw_info = {
			.process_error_status = msm_vfe44_process_error_status,
			.is_module_cfg_lock_needed =
				msm_vfe44_is_module_cfg_lock_needed,
			.ahb_clk_cfg = NULL,
		},
		.stats_ops = {
			.get_stats_idx = msm_vfe44_get_stats_idx,
Loading