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

Commit 96bf5483 authored by Camera Software Integration's avatar Camera Software Integration Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: isp: IFE and CSID probe based on fuse" into camera-kernel.lnx.4.0

parents bb938490 afb37366
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -161,11 +161,8 @@ bool cam_cpas_is_feature_supported(uint32_t flag, uint32_t hw_map,
		if (soc_private->feature_info[i].feature == flag)
			break;

	if (i == soc_private->num_feature_info) {
		CAM_INFO(CAM_CPAS, "Feature not found, no of featues: %d",
			soc_private->num_feature_info);
	if (i == soc_private->num_feature_info)
		goto end;
	}

	if (soc_private->feature_info[i].type == CAM_CPAS_FEATURE_TYPE_DISABLE
		|| (soc_private->feature_info[i].type ==
+12 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include "cam_cpas_api.h"
#include "cam_subdev.h"
#include "cam_tasklet_util.h"
#include "dt-bindings/msm/msm-camera.h"

/* Timeout value in msec */
#define IFE_CSID_TIMEOUT                               1000
@@ -5551,6 +5552,17 @@ int cam_ife_csid_hw_probe_init(struct cam_hw_intf *csid_hw_intf,
	ife_csid_hw->device_enabled = 0;
	ife_csid_hw->is_resetting = false;
	ife_csid_hw->hw_info->hw_state = CAM_HW_STATE_POWER_DOWN;

	if (!cam_cpas_is_feature_supported(CAM_CPAS_ISP_FUSE,
		(1 << ife_csid_hw->hw_intf->hw_idx), 0) ||
		!cam_cpas_is_feature_supported(CAM_CPAS_ISP_LITE_FUSE,
		(1 << ife_csid_hw->hw_intf->hw_idx), 0)) {
		CAM_DBG(CAM_ISP, "IFE:%d is not supported",
			ife_csid_hw->hw_intf->hw_idx);
		rc = -EINVAL;
		return rc;
	}

	mutex_init(&ife_csid_hw->hw_info->hw_mutex);
	spin_lock_init(&ife_csid_hw->hw_info->hw_lock);
	spin_lock_init(&ife_csid_hw->lock_state);
+12 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
#include "cam_ife_hw_mgr.h"
#include "cam_debug_util.h"
#include "cam_cpas_api.h"
#include <dt-bindings/msm/msm-camera.h>


static const char drv_name[] = "vfe";

@@ -682,6 +684,16 @@ int cam_vfe_core_init(struct cam_vfe_hw_core_info *core_info,
		return -ENODEV;
	}

	if (!cam_cpas_is_feature_supported(CAM_CPAS_ISP_FUSE,
		(1 << hw_intf->hw_idx), 0) ||
		!cam_cpas_is_feature_supported(CAM_CPAS_ISP_LITE_FUSE,
		(1 << hw_intf->hw_idx), 0)) {
		CAM_DBG(CAM_ISP, "IFE:%d is not supported",
			hw_intf->hw_idx);
		rc = -EINVAL;
		return rc;
	}

	rc = cam_irq_controller_init(drv_name,
		CAM_SOC_GET_REG_MAP_START(soc_info, VFE_CORE_BASE_IDX),
		vfe_hw_info->irq_reg_info, &core_info->vfe_irq_controller,