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

Commit f6a7409d authored by Sridhar Gujje's avatar Sridhar Gujje
Browse files

Merge remote-tracking branch 'dev/msm-4.14-camx' into msm-4.14 06/12



* commit 'b34e6d91':
  msm: camera: sensor: Increase the eeprom map buffer count
  msm: camera: reqmgr: Reset previous skipped slot if valid request
  msm: camera: crm: Increasing the device handles to 128
  msm: camera: Adding device type to track device handles
  msm: camera: isp: Add support for initial frame drop
  ARM: dts: msm: Increasing shared mem region size for SM6150 and sdmmagpie
  msm: camera: icp: Prevent out of bound access in acquire
  msm: camera: mem: Mutex before cpu_begin_access & cpu_end_access
  msm: camera: cpas: Check the HW state before accessing register
  msm: camera: cci: Add rd_done to handle read done operation
  msm: camera: crm: Increase the device handles to 128
  ARM: dts: msm: Increase camnoc bw margin for sdmmagpie
  msm: camera: fd: Remove duplicate "qcom,fd501" property
  msm: camera: reqmgr: Fix CRM shift one req issue
  msm: camera: icp: Mapping fw error numbers with error names
  msm: camera: isp: Prevent out of bounds read
  msm: camera: csiphy: correct DPHY bring up sequence
  msm: camera: Fix cpas axi clk rate overflow
  msm: camera: reqmgr: Skip reset if no request from UMD

Change-Id: I786e2bcd1241196b7a683948a3323f5669c6644c
Signed-off-by: default avatarSridhar Gujje <sgujje@codeaurora.org>
parents 74939878 b34e6d91
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
/*
 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018-2019, 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
@@ -409,10 +409,10 @@
				};

				iova-mem-region-shared {
					/* Shared region is 100MB long */
					/* Shared region is 150MB long */
					iova-region-name = "shared";
					iova-region-start = <0x7400000>;
					iova-region-len = <0x6400000>;
					iova-region-len = <0x9600000>;
					iova-region-id = <0x1>;
					status = "ok";
				};
@@ -420,7 +420,7 @@
				iova-mem-region-secondary-heap {
					/* Secondary heap region is 1MB long */
					iova-region-name = "secheap";
					iova-region-start = <0xd800000>;
					iova-region-start = <0x10A00000>;
					iova-region-len = <0x100000>;
					iova-region-id = <0x4>;
					status = "ok";
@@ -429,8 +429,8 @@
				iova-mem-region-io {
					/* IO region is approximately 3 GB */
					iova-region-name = "io";
					iova-region-start = <0xda00000>;
					iova-region-len = <0xace00000>;
					iova-region-start = <0x10C00000>;
					iova-region-len = <0xA9C00000>;
					iova-region-id = <0x3>;
					status = "ok";
				};
@@ -438,7 +438,7 @@
				iova-mem-qdss-region {
					/* QDSS region is appropriate 1MB */
					iova-region-name = "qdss";
					iova-region-start = <0xd900000>;
					iova-region-start = <0x10B00000>;
					iova-region-len = <0x100000>;
					iova-region-id = <0x5>;
					qdss-phy-addr = <0x16790000>;
@@ -1076,7 +1076,7 @@
		qcom,cam-cx-ipeak = <&cx_ipeak_lm 3>;
		control-camnoc-axi-clk;
		camnoc-bus-width = <32>;
		camnoc-axi-clk-bw-margin-perc = <10>;
		camnoc-axi-clk-bw-margin-perc = <20>;
		qcom,msm-bus,name = "cam_ahb";
		qcom,msm-bus,num-cases = <6>;
		qcom,msm-bus,num-paths = <1>;
+6 −6
Original line number Diff line number Diff line
@@ -318,10 +318,10 @@
				};

				iova-mem-region-shared {
					/* Shared region is 100MB long */
					/* Shared region is 150MB long */
					iova-region-name = "shared";
					iova-region-start = <0x7400000>;
					iova-region-len = <0x6400000>;
					iova-region-len = <0x9600000>;
					iova-region-id = <0x1>;
					iova-granularity = <0x15>;
					status = "ok";
@@ -330,7 +330,7 @@
				iova-mem-region-secondary-heap {
					/* Secondary heap region is 1MB long */
					iova-region-name = "secheap";
					iova-region-start = <0xd800000>;
					iova-region-start = <0x10A00000>;
					iova-region-len = <0x100000>;
					iova-region-id = <0x4>;
					status = "ok";
@@ -339,8 +339,8 @@
				iova-mem-region-io {
					/* IO region is approximately 3 GB */
					iova-region-name = "io";
					iova-region-start = <0xd911000>;
					iova-region-len = <0xd26ef000>;
					iova-region-start = <0x10B11000>;
					iova-region-len = <0xCF4EF000>;
					iova-region-id = <0x3>;
					status = "ok";
				};
@@ -348,7 +348,7 @@
				iova-mem-qdss-region {
					/* qdss region is approximately 64K */
					iova-region-name = "qdss";
					iova-region-start = <0xd900000>;
					iova-region-start = <0x10B00000>;
					iova-region-len = <0x10000>;
					iova-region-id = <0x5>;
					qdss-phy-addr = <0x16790000>;
+1 −1
Original line number Diff line number Diff line
@@ -578,7 +578,7 @@ int32_t cam_context_acquire_dev_to_hw(struct cam_context *ctx,
	req_hdl_param.media_entity_flag = 0;
	req_hdl_param.priv = ctx;
	req_hdl_param.ops = ctx->crm_ctx_intf;

	req_hdl_param.dev_id = ctx->dev_id;
	ctx->dev_hdl = cam_create_device_hdl(&req_hdl_param);
	if (ctx->dev_hdl <= 0) {
		rc = -EFAULT;
+3 −3
Original line number Diff line number Diff line
@@ -568,7 +568,7 @@ static int cam_cpas_util_set_camnoc_axi_clk_rate(
		struct cam_cpas_axi_port *curr_axi_port = NULL;
		struct cam_cpas_axi_port *temp_axi_port = NULL;
		uint64_t required_camnoc_bw = 0;
		int32_t clk_rate = 0;
		int64_t clk_rate = 0;

		list_for_each_entry_safe(curr_axi_port, temp_axi_port,
			&cpas_core->axi_ports_list_head, sibling_port) {
@@ -596,13 +596,13 @@ static int cam_cpas_util_set_camnoc_axi_clk_rate(

		clk_rate = required_camnoc_bw / soc_private->camnoc_bus_width;

		CAM_DBG(CAM_CPAS, "Setting camnoc axi clk rate : %llu %d",
		CAM_DBG(CAM_CPAS, "Setting camnoc axi clk rate : %llu %lld",
			required_camnoc_bw, clk_rate);

		rc = cam_soc_util_set_src_clk_rate(soc_info, clk_rate);
		if (rc)
			CAM_ERR(CAM_CPAS,
				"Failed in setting camnoc axi clk %llu %d %d",
				"Failed in setting camnoc axi clk %llu %lld %d",
				required_camnoc_bw, clk_rate, rc);
	}

+8 −1
Original line number Diff line number Diff line
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017-2019, 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
@@ -406,6 +406,12 @@ static void cam_cpastop_work(struct work_struct *work)
		return;
	}

	mutex_lock(&cpas_hw->hw_mutex);
	if (cpas_hw->hw_state == CAM_HW_STATE_POWER_DOWN) {
		CAM_ERR(CAM_CPAS, "CPAS CORE is off");
		mutex_unlock(&cpas_hw->hw_mutex);
		return;
	}
	for (i = 0; i < camnoc_info->irq_err_size; i++) {
		if ((payload->irq_status & camnoc_info->irq_err[i].sbm_port) &&
			(camnoc_info->irq_err[i].enable)) {
@@ -451,6 +457,7 @@ static void cam_cpastop_work(struct work_struct *work)
				~camnoc_info->irq_err[i].sbm_port;
		}
	}
	mutex_unlock(&cpas_hw->hw_mutex);
	atomic_dec(&cpas_core->irq_count);
	wake_up(&cpas_core->irq_count_wq);
	CAM_DBG(CAM_CPAS, "irq_count=%d\n", atomic_read(&cpas_core->irq_count));
Loading