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

Commit 40b478bc authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 401a339a on remote branch

Change-Id: If370c6119091ad941aa6ee36e38f0b72c4031b54
parents b4c3ce73 401a339a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -168,6 +168,13 @@ camera-$(CONFIG_LEDS_QPNP_FLASH_V2) += \
	cam_sensor_module/cam_flash/cam_flash_core.o \
	cam_sensor_module/cam_flash/cam_flash_soc.o

ifneq (,$(filter $(CONFIG_LEDS_QTI_FLASH),y m))
camera-y += \
	cam_sensor_module/cam_flash/cam_flash_dev.o \
	cam_sensor_module/cam_flash/cam_flash_core.o \
	cam_sensor_module/cam_flash/cam_flash_soc.o
endif

camera-$(CONFIG_SPECTRA_CUSTOM) += \
	cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_soc.o \
	cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.o \
+2 −2
Original line number Diff line number Diff line
@@ -1894,10 +1894,10 @@ static void cam_hw_cdm_component_unbind(struct device *dev,
		destroy_workqueue(cdm_core->bl_fifo[i].work_queue);
	}

	if (cam_smmu_destroy_handle(cdm_core->iommu_hdl.non_secure))
		CAM_ERR(CAM_CDM, "Release iommu secure hdl failed");
	cam_smmu_unset_client_page_fault_handler(
		cdm_core->iommu_hdl.non_secure, cdm_hw);
	if (cam_smmu_destroy_handle(cdm_core->iommu_hdl.non_secure))
		CAM_ERR(CAM_CDM, "Release iommu secure hdl failed");

	mutex_destroy(&cdm_hw->hw_mutex);
	kfree(cdm_hw->soc_info.soc_private);
+1 −2
Original line number Diff line number Diff line
@@ -620,7 +620,7 @@ static void cam_cdm_intf_component_unbind(struct device *dev,

	if (cam_virtual_cdm_remove(pdev)) {
		CAM_ERR(CAM_CDM, "Virtual CDM remove failed");
		goto end;
		return;
	}
	put_cdm_mgr_refcount();

@@ -635,7 +635,6 @@ static void cam_cdm_intf_component_unbind(struct device *dev,
		if (cdm_mgr.nodes[i].device || cdm_mgr.nodes[i].data ||
			(cdm_mgr.nodes[i].refcount != 0)) {
			CAM_ERR(CAM_CDM, "Valid node present in index=%d", i);
			mutex_unlock(&cam_cdm_mgr_lock);
			goto end;
		}
		mutex_destroy(&cdm_mgr.nodes[i].lock);
+31 −0
Original line number Diff line number Diff line
@@ -168,6 +168,15 @@ struct cdm_wait_comp_event_cmd {
	unsigned int mask2;
} __attribute__((__packed__));

struct cdm_clear_comp_event_cmd {
	unsigned int reserved   : 8;
	unsigned int id         : 8;
	unsigned int id_reserved: 8;
	unsigned int cmd        : 8;
	unsigned int mask1;
	unsigned int mask2;
} __attribute__((__packed__));

struct cdm_prefetch_disable_event_cmd {
	unsigned int reserved   : 8;
	unsigned int id         : 8;
@@ -223,6 +232,11 @@ uint32_t cdm_required_size_comp_wait(void)
	return cdm_get_cmd_header_size(CAM_CDM_COMP_WAIT);
}

uint32_t cdm_required_size_clear_comp_event(void)
{
	return cdm_get_cmd_header_size(CAM_CDM_CLEAR_COMP_WAIT);
}

uint32_t cdm_required_size_prefetch_disable(void)
{
	return cdm_get_cmd_header_size(CAM_CDM_WAIT_PREFETCH_DISABLE);
@@ -382,6 +396,21 @@ uint32_t *cdm_write_wait_comp_event(
	return pCmdBuffer;
}

uint32_t *cdm_write_clear_comp_event(
	uint32_t *pCmdBuffer, uint32_t mask1, uint32_t mask2)
{
	struct cdm_clear_comp_event_cmd *pHeader =
		(struct cdm_clear_comp_event_cmd *)pCmdBuffer;

	pHeader->cmd = CAM_CDM_CLEAR_COMP_WAIT;
	pHeader->mask1 = mask1;
	pHeader->mask2 = mask2;

	pCmdBuffer += cdm_get_cmd_header_size(CAM_CDM_CLEAR_COMP_WAIT);

	return pCmdBuffer;
}

uint32_t *cdm_write_wait_prefetch_disable(
	uint32_t                   *pCmdBuffer,
	uint32_t                    id,
@@ -412,6 +441,7 @@ struct cam_cdm_utils_ops CDM170_ops = {
	cdm_required_size_wait_event,
	cdm_required_size_changebase,
	cdm_required_size_comp_wait,
	cdm_required_size_clear_comp_event,
	cdm_required_size_prefetch_disable,
	cdm_offsetof_dmi_addr,
	cdm_offsetof_indirect_addr,
@@ -423,6 +453,7 @@ struct cam_cdm_utils_ops CDM170_ops = {
	cdm_write_wait_event,
	cdm_write_changebase,
	cdm_write_wait_comp_event,
	cdm_write_clear_comp_event,
	cdm_write_wait_prefetch_disable,
};

+15 −0
Original line number Diff line number Diff line
@@ -65,6 +65,10 @@ enum cam_cdm_command {
 *                                in dwords.
 *      @return Size in dwords
 *
 * @cdm_required_size_clear_comp_event: Calculates the size of clear-comp-event
 *                                      command in dwords.
 *      @return Size in dwords
 *
 * @cdm_required_size_changebase: Calculates the size of a change-base command
 *                                in dwords.
 *      @return Size in dwords
@@ -123,6 +127,12 @@ enum cam_cdm_command {
 *      @pCmdBuffer: Pointer to command buffer
 *      @mask1: This value decides which comp events to wait (0 - 31).
 *      @mask2: This value decides which comp events to wait (32 - 65).
 *
 * @cdm_write_clear_comp_event: Writes a clear comp event cmd into the
 *                             command buffer.
 *      @pCmdBuffer: Pointer to command buffer
 *      @mask1: This value decides which comp events to clear (0 - 31).
 *      @mask2: This value decides which comp events to clear (32 - 65).
 */
struct cam_cdm_utils_ops {
uint32_t (*cdm_get_cmd_header_size)(unsigned int command);
@@ -134,6 +144,7 @@ uint32_t (*cdm_required_size_genirq)(void);
uint32_t (*cdm_required_size_wait_event)(void);
uint32_t (*cdm_required_size_changebase)(void);
uint32_t (*cdm_required_size_comp_wait)(void);
uint32_t (*cdm_required_size_clear_comp_event)(void);
uint32_t (*cdm_required_size_prefetch_disable)(void);
uint32_t (*cdm_offsetof_dmi_addr)(void);
uint32_t (*cdm_offsetof_indirect_addr)(void);
@@ -176,6 +187,10 @@ uint32_t *(*cdm_write_wait_comp_event)(
	uint32_t *pCmdBuffer,
	uint32_t  mask1,
	uint32_t  mask2);
uint32_t *(*cdm_write_clear_comp_event)(
	uint32_t *pCmdBuffer,
	uint32_t  mask1,
	uint32_t  mask2);
uint32_t *(*cdm_write_wait_prefetch_disable)(
	uint32_t *pCmdBuffer,
	uint32_t  id,
Loading