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

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

Merge "UPSTREAM: Merge remote-tracking branch 'quic/dev/msm-4.14-camx' into mainline - PC165"

parents ced24a15 b60faaba
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -15,7 +15,8 @@ First Level Node - CAM IFE CSID device
- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,csid170" or "qcom,csid-lite170".
  Definition: Should be "qcom,csid170", "qcom,csid175", "qcom,csid-lite170"
              or "qcom,csid-lite175".

- cell-index
  Usage: required
+1 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ Required properties:
  Usage: required
  Value type: <string>
  Definition: Should specify the compatibility string for matching the
	driver. e.g. "qcom,vfe175", "qcom,vfe-lite175", "qcom,vfe-lite170".
	driver. e.g. "qcom,vfe175", "qcom,vfe170", "qcom,vfe-lite175", "qcom,vfe-lite170".

- cell-index
  Usage: required
+8 −8
Original line number Diff line number Diff line
@@ -703,7 +703,7 @@

	cam_csid0: qcom,csid0@acb3000 {
		cell-index = <0>;
		compatible = "qcom,csid170";
		compatible = "qcom,csid175";
		reg-names = "csid";
		reg = <0xacb3000 0x1000>;
		reg-cam-base = <0xb3000>;
@@ -739,7 +739,7 @@

	cam_vfe0: qcom,vfe0@acaf000 {
		cell-index = <0>;
		compatible = "qcom,vfe170";
		compatible = "qcom,vfe175";
		reg-names = "ife";
		reg = <0xacaf000 0x4000>;
		reg-cam-base = <0xaf000>;
@@ -770,7 +770,7 @@

	cam_csid1: qcom,csid1@acba000 {
		cell-index = <1>;
		compatible = "qcom,csid170";
		compatible = "qcom,csid175";
		reg-names = "csid";
		reg = <0xacba000 0x1000>;
		reg-cam-base = <0xba000>;
@@ -806,7 +806,7 @@

	cam_vfe1: qcom,vfe1@acb6000 {
		cell-index = <1>;
		compatible = "qcom,vfe170";
		compatible = "qcom,vfe175";
		reg-names = "ife";
		reg = <0xacb6000 0x4000>;
		reg-cam-base = <0xb6000>;
@@ -837,7 +837,7 @@

	cam_csid_lite0: qcom,csid-lite0@acc8000 {
		cell-index = <2>;
		compatible = "qcom,csid-lite170";
		compatible = "qcom,csid-lite175";
		reg-names = "csid-lite";
		reg = <0xacc8000 0x1000>;
		reg-cam-base = <0xc8000>;
@@ -870,7 +870,7 @@

	cam_vfe_lite0: qcom,vfe-lite0@acc4000 {
		cell-index = <2>;
		compatible = "qcom,vfe-lite170";
		compatible = "qcom,vfe-lite175";
		reg-names = "ife-lite";
		reg = <0xacc4000 0x4000>;
		reg-cam-base = <0xc4000>;
@@ -895,7 +895,7 @@

	cam_csid_lite1: qcom,csid-lite1@accf000 {
		cell-index = <3>;
		compatible = "qcom,csid-lite170";
		compatible = "qcom,csid-lite175";
		reg-names = "csid-lite";
		reg = <0xaccf000 0x1000>;
		reg-cam-base = <0xcf000>;
@@ -928,7 +928,7 @@

	cam_vfe_lite1: qcom,vfe-lite1@accb000 {
		cell-index = <3>;
		compatible = "qcom,vfe-lite170";
		compatible = "qcom,vfe-lite175";
		reg-names = "ife-lite";
		reg = <0xaccb000 0x4000>;
		reg-cam-base = <0xcb000>;
+6 −8
Original line number Diff line number Diff line
@@ -1324,9 +1324,7 @@ static int __cam_isp_ctx_flush_req(struct cam_context *ctx,
	struct list_head                  flush_list;

	INIT_LIST_HEAD(&flush_list);
	spin_lock_bh(&ctx->lock);
	if (list_empty(req_list)) {
		spin_unlock_bh(&ctx->lock);
		CAM_DBG(CAM_ISP, "request list is empty");
		return 0;
	}
@@ -1345,7 +1343,6 @@ static int __cam_isp_ctx_flush_req(struct cam_context *ctx,
		list_del_init(&req->list);
		list_add_tail(&req->list, &flush_list);
	}
	spin_unlock_bh(&ctx->lock);

	list_for_each_entry_safe(req, req_temp, &flush_list, list) {
		req_isp = (struct cam_isp_ctx_req *) req->req_priv;
@@ -1363,9 +1360,7 @@ static int __cam_isp_ctx_flush_req(struct cam_context *ctx,
				req_isp->fence_map_out[i].sync_id = -1;
			}
		}
		spin_lock_bh(&ctx->lock);
		list_add_tail(&req->list, &ctx->free_req_list);
		spin_unlock_bh(&ctx->lock);
	}

	if (flush_req->type == CAM_REQ_MGR_FLUSH_TYPE_CANCEL_REQ &&
@@ -1384,7 +1379,9 @@ static int __cam_isp_ctx_flush_req_in_top_state(
	int rc = 0;

	CAM_DBG(CAM_ISP, "try to flush pending list");
	spin_lock_bh(&ctx->lock);
	rc = __cam_isp_ctx_flush_req(ctx, &ctx->pending_req_list, flush_req);
	spin_unlock_bh(&ctx->lock);
	CAM_DBG(CAM_ISP, "Flush request in top state %d",
		 ctx->state);
	return rc;
@@ -1401,10 +1398,10 @@ static int __cam_isp_ctx_flush_req_in_activated(
	spin_lock_bh(&ctx->lock);
	ctx_isp->substate_activated = CAM_ISP_CTX_ACTIVATED_FLUSH;
	ctx_isp->frame_skip_count = 2;
	spin_unlock_bh(&ctx->lock);

	CAM_DBG(CAM_ISP, "Flush request in state %d", ctx->state);
	rc = __cam_isp_ctx_flush_req(ctx, &ctx->pending_req_list, flush_req);
	spin_unlock_bh(&ctx->lock);
	return rc;
}

@@ -1415,10 +1412,10 @@ static int __cam_isp_ctx_flush_req_in_ready(
	int rc = 0;

	CAM_DBG(CAM_ISP, "try to flush pending list");
	spin_lock_bh(&ctx->lock);
	rc = __cam_isp_ctx_flush_req(ctx, &ctx->pending_req_list, flush_req);

	/* if nothing is in pending req list, change state to acquire*/
	spin_lock_bh(&ctx->lock);
	if (list_empty(&ctx->pending_req_list))
		ctx->state = CAM_CTX_ACQUIRED;
	spin_unlock_bh(&ctx->lock);
@@ -1994,8 +1991,9 @@ static int __cam_isp_ctx_release_dev_in_top_state(struct cam_context *ctx,
	flush_req.dev_hdl = ctx->dev_hdl;

	CAM_DBG(CAM_ISP, "try to flush pending list");
	spin_lock_bh(&ctx->lock);
	rc = __cam_isp_ctx_flush_req(ctx, &ctx->pending_req_list, &flush_req);

	spin_unlock_bh(&ctx->lock);
	ctx->state = CAM_CTX_AVAILABLE;

	trace_cam_context_state("ISP", ctx);
+2 −2
Original line number Diff line number Diff line
@@ -23,9 +23,9 @@
/*
 * Maximum hw resource - This number is based on the maximum
 * output port resource. The current maximum resource number
 * is 20.
 * is 24.
 */
#define CAM_ISP_CTX_RES_MAX                     20
#define CAM_ISP_CTX_RES_MAX                     24

/*
 * Maximum configuration entry size  - This is based on the
Loading