
Different CDM hardware have different capability and registers. With old register space, handling new features and operations would have been a complex task. This change takes care of old version of CDM and also changes the regspace to provide every register's access to CDM. This change further adds support for "arbitration" in case of multi-context CDMs. Exports reset functionality to clients, detection of CDM hang. Flushing the CDM requests and dumping the FIFO content for all contexts. It also adds submitting "debug_gen_irq" as BL_done IRQ is only an indication for availability of FIFO's. The AHB operations are completed can only be known if the added "debug_gen_irqs" gets executed and are received by the CDM. CRs-Fixed: 2594541 Change-Id: I9846b1c5320ba652c5d3b7d83d616d2dabc843e1 Signed-off-by: Abhilash Kumar <krabhi@codeaurora.org> Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
30 lines
1.0 KiB
C
30 lines
1.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _CAM_CDM_SOC_H_
|
|
#define _CAM_CDM_SOC_H_
|
|
|
|
#define CAM_HW_CDM_CPAS_0_NAME "qcom,cam170-cpas-cdm0"
|
|
#define CAM_HW_CDM_CPAS_NAME_1_0 "qcom,cam-cpas-cdm1_0"
|
|
#define CAM_HW_CDM_CPAS_NAME_1_1 "qcom,cam-cpas-cdm1_1"
|
|
#define CAM_HW_CDM_CPAS_NAME_1_2 "qcom,cam-cpas-cdm1_2"
|
|
#define CAM_HW_CDM_IFE_NAME_1_2 "qcom,cam-ife-cdm1_2"
|
|
#define CAM_HW_CDM_CPAS_NAME_2_0 "qcom,cam-cpas-cdm2_0"
|
|
#define CAM_HW_CDM_OPE_NAME_2_0 "qcom,cam-ope-cdm2_0"
|
|
|
|
int cam_hw_cdm_soc_get_dt_properties(struct cam_hw_info *cdm_hw,
|
|
const struct of_device_id *table);
|
|
bool cam_cdm_read_hw_reg(struct cam_hw_info *cdm_hw,
|
|
uint32_t reg, uint32_t *value);
|
|
bool cam_cdm_write_hw_reg(struct cam_hw_info *cdm_hw,
|
|
uint32_t reg, uint32_t value);
|
|
int cam_cdm_intf_mgr_soc_get_dt_properties(
|
|
struct platform_device *pdev,
|
|
struct cam_cdm_intf_mgr *mgr);
|
|
int cam_cdm_soc_load_dt_private(struct platform_device *pdev,
|
|
struct cam_cdm_private_dt_data *ptr);
|
|
|
|
#endif /* _CAM_CDM_SOC_H_ */
|