msm: camera: ope: Clear comp events before each request
If there is a stale entry of any event in the CDM, it will end the wait of same event in next request. So, clearing the comp events before each request. CRs-Fixed: 2611231 Change-Id: I252ee5edaea1cda34dc48343dd6bc865b490e977 Signed-off-by: Rishabh Jain <risjai@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
6bc220f0a7
commit
704dc07b7b
@@ -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,
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user