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

Commit 1d882519 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Merge commit 'eeeb1c3a' msm-4.9_UPSTREAM_0203_PC93"

parents 40fe02bc 1d4db944
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2018, 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
@@ -913,12 +913,12 @@
				<&clock_camcc CAM_CC_IPE_0_CLK>,
				<&clock_camcc CAM_CC_IPE_0_CLK_SRC>;

		clock-rates = <0 0 0 0 240000000>,
		clock-rates =
			<0 0 0 0 404000000>,
			<0 0 0 0 480000000>,
			<0 0 0 0 538000000>,
			<0 0 0 0 600000000>;
		clock-cntl-level = "lowsvs", "svs",
		clock-cntl-level = "svs",
			"svs_l1", "nominal", "turbo";
		status = "ok";
	};
@@ -940,12 +940,12 @@
				<&clock_camcc CAM_CC_IPE_1_CLK>,
				<&clock_camcc CAM_CC_IPE_1_CLK_SRC>;

		clock-rates = <0 0 0 0 240000000>,
		clock-rates =
			<0 0 0 0 404000000>,
			<0 0 0 0 480000000>,
			<0 0 0 0 538000000>,
			<0 0 0 0 600000000>;
		clock-cntl-level = "lowsvs", "svs",
		clock-cntl-level = "svs",
			"svs_l1", "nominal", "turbo";
		status = "ok";
	};
@@ -967,12 +967,12 @@
				<&clock_camcc CAM_CC_BPS_CLK>,
				<&clock_camcc CAM_CC_BPS_CLK_SRC>;

		clock-rates = <0 0 0 0 200000000>,
		clock-rates =
			<0 0 0 0 404000000>,
			<0 0 0 0 480000000>,
			<0 0 0 0 600000000>,
			<0 0 0 0 600000000>;
		clock-cntl-level = "lowsvs", "svs",
		clock-cntl-level = "svs",
			"svs_l1", "nominal", "turbo";
		status = "ok";
	};
+6 −7
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2018, 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
@@ -885,12 +885,11 @@
				<&clock_camcc CAM_CC_IPE_0_CLK_SRC>;

		clock-rates =
			<0 0 0 0 240000000>,
			<0 0 0 0 404000000>,
			<0 0 0 0 480000000>,
			<0 0 0 0 538000000>,
			<0 0 0 0 600000000>;
		clock-cntl-level = "lowsvs", "svs",
		clock-cntl-level = "svs",
			"svs_l1", "nominal", "turbo";
		status = "ok";
	};
@@ -912,12 +911,12 @@
				<&clock_camcc CAM_CC_IPE_1_CLK>,
				<&clock_camcc CAM_CC_IPE_1_CLK_SRC>;

		clock-rates = <0 0 0 0 240000000>,
		clock-rates =
			<0 0 0 0 404000000>,
			<0 0 0 0 480000000>,
			<0 0 0 0 538000000>,
			<0 0 0 0 600000000>;
		clock-cntl-level = "lowsvs", "svs",
		clock-cntl-level = "svs",
			"svs_l1", "nominal", "turbo";
		status = "ok";
	};
@@ -939,12 +938,12 @@
				<&clock_camcc CAM_CC_BPS_CLK>,
				<&clock_camcc CAM_CC_BPS_CLK_SRC>;

		clock-rates = <0 0 0 0 200000000>,
		clock-rates =
			<0 0 0 0 404000000>,
			<0 0 0 0 480000000>,
			<0 0 0 0 600000000>,
			<0 0 0 0 600000000>;
		clock-cntl-level = "lowsvs", "svs",
		clock-cntl-level = "svs",
			"svs_l1", "nominal", "turbo";
		status = "ok";
	};
+3 −3
Original line number Diff line number Diff line
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017-2018, 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
@@ -366,7 +366,6 @@ int cam_cpas_subdev_cmd(struct cam_cpas_intf *cpas_intf,
	switch (cmd->op_code) {
	case CAM_QUERY_CAP: {
		struct cam_cpas_query_cap query;
		uint32_t cam_cpas;

		rc = copy_from_user(&query, (void __user *) cmd->handle,
			sizeof(query));
@@ -377,7 +376,8 @@ int cam_cpas_subdev_cmd(struct cam_cpas_intf *cpas_intf,
		}

		rc = cam_cpas_get_hw_info(&query.camera_family,
			&query.camera_version, &query.cpas_version, &cam_cpas);
			&query.camera_version, &query.cpas_version,
			&query.reserved);
		if (rc)
			break;

+5 −6
Original line number Diff line number Diff line
@@ -1597,8 +1597,7 @@ static int cam_icp_mgr_process_direct_ack_msg(uint32_t *msg_ptr)
		ioconfig_ack = (struct hfi_msg_ipebps_async_ack *)msg_ptr;
		ctx_data =
			(struct cam_icp_hw_ctx_data *)ioconfig_ack->user_data1;
		if ((ctx_data->state == CAM_ICP_CTX_STATE_RELEASE) ||
			(ctx_data->state == CAM_ICP_CTX_STATE_IN_USE))
		if (ctx_data->state != CAM_ICP_CTX_STATE_FREE)
			complete(&ctx_data->wait_complete);

		break;
@@ -2098,7 +2097,7 @@ static int cam_icp_mgr_abort_handle(
	int rc = 0;
	unsigned long rem_jiffies;
	size_t packet_size;
	int timeout = 5000;
	int timeout = 100;
	struct hfi_cmd_work_data *task_data;
	struct hfi_cmd_ipebps_async *abort_cmd;
	struct crm_workq_task *task;
@@ -2161,7 +2160,7 @@ static int cam_icp_mgr_destroy_handle(
	struct cam_icp_hw_ctx_data *ctx_data)
{
	int rc = 0;
	int timeout = 5000;
	int timeout = 100;
	unsigned long rem_jiffies;
	size_t packet_size;
	struct hfi_cmd_work_data *task_data;
@@ -2539,10 +2538,10 @@ static int cam_icp_mgr_icp_resume(struct cam_icp_hw_mgr *hw_mgr)
	if (hw_mgr->fw_download  == false) {
		CAM_DBG(CAM_ICP, "Downloading FW");
		mutex_unlock(&hw_mgr->hw_mgr_mutex);
		cam_icp_mgr_hw_open(hw_mgr, &downloadFromResume);
		rc = cam_icp_mgr_hw_open(hw_mgr, &downloadFromResume);
		mutex_lock(&hw_mgr->hw_mgr_mutex);
		CAM_DBG(CAM_ICP, "FW Download Done Exit");
		return 0;
		return rc;
	}

	rc = a5_dev_intf->hw_ops.init(a5_dev_intf->hw_priv, NULL, 0);
+11 −7
Original line number Diff line number Diff line
@@ -86,7 +86,8 @@ static int __cam_isp_ctx_enqueue_init_request(
		struct cam_ctx_request, list);
	req_isp_old = (struct cam_isp_ctx_req *) req_old->req_priv;
	req_isp_new = (struct cam_isp_ctx_req *) req->req_priv;
	if (req_isp_old->packet_opcode_type == CAM_ISP_PACKET_INIT_DEV) {
	if (req_isp_old->hw_update_data.packet_opcode_type ==
		CAM_ISP_PACKET_INIT_DEV) {
		if ((req_isp_old->num_cfg + req_isp_new->num_cfg) >=
			CAM_ISP_CTX_CFG_MAX) {
			CAM_WARN(CAM_ISP, "Can not merge INIT pkt");
@@ -1071,6 +1072,7 @@ static int __cam_isp_ctx_apply_req_in_activated_state(
	cfg.ctxt_to_hw_map = ctx_isp->hw_ctx;
	cfg.hw_update_entries = req_isp->cfg;
	cfg.num_hw_update_entries = req_isp->num_cfg;
	cfg.priv  = &req_isp->hw_update_data;

	rc = ctx->hw_mgr_intf->hw_config(ctx->hw_mgr_intf->hw_mgr_priv, &cfg);
	if (rc) {
@@ -1817,7 +1819,6 @@ static int __cam_isp_ctx_config_dev_in_top_state(
	struct cam_req_mgr_add_request    add_req;
	struct cam_isp_context           *ctx_isp =
		(struct cam_isp_context *) ctx->ctx_priv;
	struct cam_isp_prepare_hw_update_data    hw_update_data;

	CAM_DBG(CAM_ISP, "get free request object......");

@@ -1868,7 +1869,7 @@ static int __cam_isp_ctx_config_dev_in_top_state(
	cfg.max_in_map_entries = CAM_ISP_CTX_RES_MAX;
	cfg.out_map_entries = req_isp->fence_map_out;
	cfg.in_map_entries = req_isp->fence_map_in;
	cfg.priv  = &hw_update_data;
	cfg.priv  = &req_isp->hw_update_data;

	CAM_DBG(CAM_ISP, "try to prepare config packet......");

@@ -1883,7 +1884,6 @@ static int __cam_isp_ctx_config_dev_in_top_state(
	req_isp->num_fence_map_out = cfg.num_out_map_entries;
	req_isp->num_fence_map_in = cfg.num_in_map_entries;
	req_isp->num_acked = 0;
	req_isp->packet_opcode_type = hw_update_data.packet_opcode_type;

	CAM_DBG(CAM_ISP, "num_entry: %d, num fence out: %d, num fence in: %d",
		req_isp->num_cfg, req_isp->num_fence_map_out,
@@ -1893,9 +1893,11 @@ static int __cam_isp_ctx_config_dev_in_top_state(
	req->status = 1;

	CAM_DBG(CAM_ISP, "Packet request id 0x%llx packet opcode:%d",
		packet->header.request_id, req_isp->packet_opcode_type);
		packet->header.request_id,
		req_isp->hw_update_data.packet_opcode_type);

	if (req_isp->packet_opcode_type == CAM_ISP_PACKET_INIT_DEV) {
	if (req_isp->hw_update_data.packet_opcode_type ==
		CAM_ISP_PACKET_INIT_DEV) {
		if (ctx->state < CAM_CTX_ACTIVATED) {
			rc = __cam_isp_ctx_enqueue_init_request(ctx, req);
			if (rc)
@@ -2140,7 +2142,7 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx,
	struct cam_start_stop_dev_cmd *cmd)
{
	int rc = 0;
	struct cam_hw_start_args         arg;
	struct cam_hw_config_args        arg;
	struct cam_ctx_request          *req;
	struct cam_isp_ctx_req          *req_isp;
	struct cam_isp_context          *ctx_isp =
@@ -2168,9 +2170,11 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx,
		rc = -EFAULT;
		goto end;
	}

	arg.ctxt_to_hw_map = ctx_isp->hw_ctx;
	arg.hw_update_entries = req_isp->cfg;
	arg.num_hw_update_entries = req_isp->num_cfg;
	arg.priv  = &req_isp->hw_update_data;

	ctx_isp->frame_id = 0;
	ctx_isp->active_req_cnt = 0;
Loading