Merge 786e1d8bd1 on remote branch

Change-Id: Ic16f1d5849927c8476bf5720a755779b5f69bd2b
This commit is contained in:
Linux Build Service Account 2021-07-07 23:47:56 -07:00
commit 961d08552e
7 changed files with 51 additions and 21 deletions

View file

@ -1,8 +1,12 @@
# SPDX-License-Identifier: GPL-2.0-only
# Copyright (c) 2019, The Linux Foundation. All rights reserved.
# Copyright (c) 2019,2021 The Linux Foundation. All rights reserved.
export CONFIG_SPECTRA_CAMERA=y
$(info "BENGAL SPECTRA_CAMERA IS MODULAR")
export CONFIG_SPECTRA_CAMERA=m
ifneq (,$(filter $(CONFIG_SPECTRA_CAMERA), y m))
export CONFIG_SPECTRA_TFE=y
export CONFIG_SPECTRA_ISP=y
export CONFIG_SPECTRA_SENSOR=y
export CONFIG_SPECTRA_OPE=y
endif

View file

@ -866,7 +866,6 @@ static int __cam_isp_ctx_handle_buf_done_for_req_list(
req_isp->cdm_reset_before_apply = false;
req_isp->num_acked = 0;
req_isp->num_deferred_acks = 0;
req_isp->bubble_detected = false;
/*
* Only update the process_bubble and bubble_frame_cnt
* when bubble is detected on this req, in case the other
@ -875,6 +874,7 @@ static int __cam_isp_ctx_handle_buf_done_for_req_list(
if (req_isp->bubble_detected) {
atomic_set(&ctx_isp->process_bubble, 0);
ctx_isp->bubble_frame_cnt = 0;
req_isp->bubble_detected = false;
}
CAM_DBG(CAM_REQ,

View file

@ -71,7 +71,7 @@ csiphy_reg_t csiphy_2ph_v1_2_1_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
{0x0000, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x000c, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0038, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0014, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0014, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0028, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0024, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
@ -93,7 +93,7 @@ csiphy_reg_t csiphy_2ph_v1_2_1_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
{0x0700, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x070c, 0xA5, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0738, 0x1F, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0714, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0714, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0728, 0x04, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0724, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
@ -115,7 +115,7 @@ csiphy_reg_t csiphy_2ph_v1_2_1_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
{0x0200, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x020c, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0238, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0214, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0214, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0228, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0224, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
@ -137,7 +137,7 @@ csiphy_reg_t csiphy_2ph_v1_2_1_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
{0x0400, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x040c, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0438, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0414, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0414, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0428, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0424, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
@ -159,7 +159,7 @@ csiphy_reg_t csiphy_2ph_v1_2_1_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
{0x0600, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x060c, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0638, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0614, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0614, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0628, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0624, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
@ -185,7 +185,7 @@ struct csiphy_reg_t
{0x0000, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x000c, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0038, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0014, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0014, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0028, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0024, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x00, 0x00, CSIPHY_DNP_PARAMS},
@ -207,7 +207,7 @@ struct csiphy_reg_t
{0x0700, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x070c, 0xA5, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0738, 0x1F, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0714, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0714, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0728, 0x04, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0724, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x00, 0x00, CSIPHY_DNP_PARAMS},
@ -229,7 +229,7 @@ struct csiphy_reg_t
{0x0200, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x020c, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0238, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0214, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0214, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0228, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0224, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x00, 0x00, CSIPHY_DNP_PARAMS},
@ -251,7 +251,7 @@ struct csiphy_reg_t
{0x0400, 0x8D, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x040C, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0438, 0xFE, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0414, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0414, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0428, 0x0A, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0424, 0x00, 0x00, CSIPHY_DNP_PARAMS},
{0x0800, 0x00, 0x00, CSIPHY_DNP_PARAMS},
@ -273,7 +273,7 @@ struct csiphy_reg_t
{0x0600, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x060C, 0xA5, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0638, 0x1F, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0614, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0614, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0628, 0x0E, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0624, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0800, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},

View file

@ -10,7 +10,7 @@
#include "cam_res_mgr_api.h"
#include "cam_common_util.h"
#include "cam_packet_util.h"
#include <asm/div64.h>
#include <linux/math64.h>
static uint default_on_timer = 2;
module_param(default_on_timer, uint, 0644);
@ -1559,7 +1559,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
add_req.trigger_eof = true;
/* Active time for the preflash */
flash_data->flash_active_time_ms =
do_div(flash_operation_info->time_on_duration_ns, 1000000);
div_u64(flash_operation_info->time_on_duration_ns, 1000000);
CAM_DBG(CAM_FLASH,
"PRECISE FLASH: active_time: %llu",
flash_data->flash_active_time_ms);

View file

@ -7,6 +7,7 @@
#include <linux/of_gpio.h>
#include "cam_flash_soc.h"
#include "cam_res_mgr_api.h"
#include <dt-bindings/msm/msm-camera.h>
void cam_flash_put_source_node_data(struct cam_flash_ctrl *fctrl)
{
@ -77,6 +78,7 @@ static int32_t cam_get_source_node_info(
if (rc) {
CAM_ERR(CAM_FLASH,
"flash-type read failed rc=%d", rc);
soc_private->flash_type = CAM_FLASH_TYPE_PMIC; // default to PMIC flash
}
switch_src_node = of_parse_phandle(of_node, "switch-source", 0);

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2014-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
*/
#include <linux/module.h>
@ -133,6 +133,7 @@ struct cam_context_bank_info {
bool is_fw_allocated;
bool is_secheap_allocated;
bool is_qdss_allocated;
bool stall_disable;
struct scratch_mapping scratch_map;
struct gen_pool *shared_mem_pool;
@ -3641,6 +3642,8 @@ static int cam_smmu_setup_cb(struct cam_context_bank_info *cb,
struct device *dev)
{
int rc = 0;
int32_t stall_disable = 1;
int32_t hupcf = 1;
if (!cb || !dev) {
CAM_ERR(CAM_SMMU, "Error: invalid input params");
@ -3708,6 +3711,24 @@ static int cam_smmu_setup_cb(struct cam_context_bank_info *cb,
cb->discard_iova_len);
cb->state = CAM_SMMU_ATTACH;
if (cb->stall_disable) {
if (iommu_domain_set_attr(cb->domain,
DOMAIN_ATTR_FAULT_MODEL_NO_STALL,
&stall_disable) < 0) {
CAM_ERR(CAM_SMMU,
"Error: failed to set cb stall disable for node: %s",
cb->name[0]);
}
if (iommu_domain_set_attr(cb->domain,
DOMAIN_ATTR_FAULT_MODEL_HUPCF,
&hupcf) < 0) {
CAM_ERR(CAM_SMMU,
"Error: failed to set attribute HUPCF for node: %s",
cb->name[0]);
}
}
} else {
CAM_ERR(CAM_SMMU, "Context bank does not have IO region");
rc = -ENODEV;
@ -4046,6 +4067,9 @@ static int cam_populate_smmu_context_banks(struct device *dev,
cb->num_shared_hdl = of_property_count_strings(dev->of_node,
"cam-smmu-label");
cb->stall_disable =
of_property_read_bool(dev->of_node, "stall-disable");
if (cb->num_shared_hdl >
CAM_SMMU_SHARED_HDL_MAX) {
CAM_ERR(CAM_CDM, "Invalid count of client names count=%d",

View file

@ -5,7 +5,7 @@
#include <linux/interconnect.h>
#include "cam_soc_bus.h"
#include <asm/div64.h>
#include <linux/math64.h>
/**
* struct cam_soc_bus_client_data : Bus client data
*
@ -37,8 +37,8 @@ int cam_soc_bus_client_update_request(void *client, unsigned int idx)
CAM_DBG(CAM_PERF, "Bus client=[%s] index[%d] ab[%llu] ib[%llu]",
bus_client->common_data->name, idx, ab, ib);
rc = icc_set_bw(bus_client_data->icc_data, do_div(ab, 1000),
do_div(ib, 1000));
rc = icc_set_bw(bus_client_data->icc_data, div_u64(ab, 1000),
div_u64(ib, 1000));
if (rc) {
CAM_ERR(CAM_UTIL,
"Update request failed, client[%s], idx: %d",
@ -60,8 +60,8 @@ int cam_soc_bus_client_update_bw(void *client, uint64_t ab, uint64_t ib)
CAM_DBG(CAM_PERF, "Bus client=[%s] :ab[%llu] ib[%llu]",
bus_client->common_data->name, ab, ib);
rc = icc_set_bw(bus_client_data->icc_data, do_div(ab, 1000),
do_div(ib, 1000));
rc = icc_set_bw(bus_client_data->icc_data, div_u64(ab, 1000),
div_u64(ib, 1000));
if (rc) {
CAM_ERR(CAM_UTIL, "Update request failed, client[%s]",
bus_client->common_data->name);