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

Commit 284dd64a authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "UPSTREAM commit '3ba9e1d5' 11/20"

parents 76b617ad 2db113ca
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -313,39 +313,39 @@
	cam_sensor_rear_active: cam_sensor_rear_active {
		pins = "gpio1";
		function = "normal";
		power-source = <0>;
		power-source = <1>;
		bias-disable;
	};
	cam_sensor_rear_suspend: cam_sensor_rear_suspend {
		pins = "gpio1";
		function = "normal";
		power-source = <0>;
		power-source = <1>;
		bias-pull-down;
	};

	cam_sensor_rear2_active: cam_sensor_rear2_active {
		pins = "gpio2";
		function = "normal";
		power-source = <0>;
		power-source = <1>;
		bias-disable;
	};
	cam_sensor_rear2_suspend: cam_sensor_rear2_suspend {
		pins = "gpio2";
		function = "normal";
		power-source = <0>;
		power-source = <1>;
		bias-pull-down;
	};

	cam_sensor_front_active: cam_sensor_front_active {
		pins = "gpio4";
		function = "normal";
		power-source = <0>;
		power-source = <1>;
		bias-disable;
	};
	cam_sensor_front_suspend: cam_sensor_front_suspend {
		pins = "gpio4";
		function = "normal";
		power-source = <0>;
		power-source = <1>;
		bias-pull-down;
	};
};
+8 −6
Original line number Diff line number Diff line
@@ -638,9 +638,10 @@
	cam_vfe0: qcom,vfe0@acaf000 {
		cell-index = <0>;
		compatible = "qcom,vfe170";
		reg-names = "ife";
		reg = <0xacaf000 0x4000>;
		reg-cam-base = <0xaf000>;
		reg-names = "ife", "cam_camnoc";
		reg = <0xacaf000 0x4000>,
			<0xac42000 0x5000>;
		reg-cam-base = <0xaf000 0x42000>;
		interrupt-names = "ife";
		interrupts = <0 465 0>;
		regulator-names = "camss", "ife0";
@@ -725,9 +726,10 @@
	cam_vfe1: qcom,vfe1@acb6000 {
		cell-index = <1>;
		compatible = "qcom,vfe170";
		reg-names = "ife";
		reg = <0xacb6000 0x4000>;
		reg-cam-base = <0xb6000>;
		reg-names = "ife", "cam_camnoc";
		reg = <0xacb6000 0x4000>,
			<0xac42000 0x5000>;
		reg-cam-base = <0xb6000 0x42000>;
		interrupt-names = "ife";
		interrupts = <0 467 0>;
		regulator-names = "camss", "ife1";
+1 −0
Original line number Diff line number Diff line
@@ -527,6 +527,7 @@ int cam_context_init(struct cam_context *ctx,
	ctx->dev_name = dev_name;
	ctx->dev_id = dev_id;
	ctx->ctx_id = ctx_id;
	ctx->last_flush_req = 0;
	ctx->ctx_crm_intf = NULL;
	ctx->crm_ctx_intf = crm_node_intf;
	ctx->hw_mgr_intf = hw_mgr_intf;
+15 −13
Original line number Diff line number Diff line
@@ -337,15 +337,13 @@ int32_t cam_context_prepare_dev_to_hw(struct cam_context *ctx,

	if (!ctx || !cmd) {
		CAM_ERR(CAM_CTXT, "Invalid input params %pK %pK", ctx, cmd);
		rc = -EINVAL;
		goto end;
		return -EINVAL;
	}

	if (!ctx->hw_mgr_intf) {
		CAM_ERR(CAM_CTXT, "[%s][%d] HW interface is not ready",
			ctx->dev_name, ctx->ctx_id);
		rc = -EFAULT;
		goto end;
		return -EFAULT;
	}
	rc = cam_context_validate_thread();
	if (rc)
@@ -362,8 +360,7 @@ int32_t cam_context_prepare_dev_to_hw(struct cam_context *ctx,
	if (!req) {
		CAM_ERR(CAM_CTXT, "[%s][%d] No more request obj free",
			ctx->dev_name, ctx->ctx_id);
		rc = -ENOMEM;
		goto end;
		return -ENOMEM;
	}

	memset(req, 0, sizeof(*req));
@@ -389,7 +386,7 @@ int32_t cam_context_prepare_dev_to_hw(struct cam_context *ctx,
			"request %lld has been flushed, reject packet",
			packet->header.request_id);
		rc = -EINVAL;
		goto free_req;
		goto free_cpu_buf;
	}

	if (packet->header.request_id > ctx->last_flush_req)
@@ -415,7 +412,7 @@ int32_t cam_context_prepare_dev_to_hw(struct cam_context *ctx,
			"[%s][%d] Prepare config packet failed in HW layer",
			ctx->dev_name, ctx->ctx_id);
		rc = -EFAULT;
		goto free_req;
		goto free_cpu_buf;
	}
	req->num_hw_update_entries = cfg.num_hw_update_entries;
	req->num_out_map_entries = cfg.num_out_map_entries;
@@ -466,30 +463,35 @@ int32_t cam_context_prepare_dev_to_hw(struct cam_context *ctx,
						req->request_id);

				cam_context_putref(ctx);

				goto put_ref;
			}
			CAM_DBG(CAM_CTXT, "register in fence cb: %d ret = %d",
				req->in_map_entries[j].sync_id, rc);
		}
		goto end;
	}

	if (cam_mem_put_cpu_buf((int32_t) cmd->packet_handle))
		CAM_WARN(CAM_CTXT, "[%s][%d] Can not put packet address",
			ctx->dev_name, ctx->ctx_id);

	return rc;

put_ref:
	for (--i; i >= 0; i--) {
		rc = cam_sync_put_obj_ref(req->out_map_entries[i].sync_id);
		if (rc)
		if (cam_sync_put_obj_ref(req->out_map_entries[i].sync_id))
			CAM_ERR(CAM_CTXT, "Failed to put ref of fence %d",
				req->out_map_entries[i].sync_id);
	}
free_cpu_buf:
	if (cam_mem_put_cpu_buf((int32_t) cmd->packet_handle))
		CAM_WARN(CAM_CTXT, "[%s][%d] Can not put packet address",
			ctx->dev_name, ctx->ctx_id);
free_req:
	spin_lock(&ctx->lock);
	list_add_tail(&req->list, &ctx->free_req_list);
	req->ctx = NULL;
	spin_unlock(&ctx->lock);
end:

	return rc;
}

+3 −3
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ static struct cam_camnoc_irq_err
		.err_enable = {
			.access_type = CAM_REG_TYPE_READ_WRITE,
			.enable = true,
			.offset = 0x3Ba0, /* SPECIFIC_IFE02_ENCERREN_LOW */
			.offset = 0x3BA0, /* SPECIFIC_IFE02_ENCERREN_LOW */
			.value = 1,
		},
		.err_status = {
@@ -163,13 +163,13 @@ static struct cam_camnoc_irq_err
		.err_enable = {
			.access_type = CAM_REG_TYPE_READ_WRITE,
			.enable = true,
			.offset = 0x2088, /* SBM_FLAGOUTSET0_LOW */
			.offset = 0x2288, /* SBM_FLAGOUTSET0_LOW */
			.value = 0x1,
		},
		.err_status = {
			.access_type = CAM_REG_TYPE_READ,
			.enable = true,
			.offset = 0x2090, /* SBM_FLAGOUTSTATUS0_LOW */
			.offset = 0x2290, /* SBM_FLAGOUTSTATUS0_LOW */
		},
		.err_clear = {
			.enable = false,
Loading