video: driver: remove release of dpb buffers

remove release of dpb buffers as part of start
of output port.
handle watchdog interrupt incase of page fault

Change-Id: Idaccbcaa92d4835dea2da3d8b6f645114baa338a
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
This commit is contained in:
Darshana Patil
2021-03-24 12:29:45 -07:00
parent a1c98e0e2f
commit 74b6d67205
4 changed files with 8 additions and 17 deletions

View File

@@ -6,6 +6,8 @@
#ifndef __VENUS_HFI_RESPONSE_H__ #ifndef __VENUS_HFI_RESPONSE_H__
#define __VENUS_HFI_RESPONSE_H__ #define __VENUS_HFI_RESPONSE_H__
#include "hfi_packet.h"
int handle_response(struct msm_vidc_core *core, int handle_response(struct msm_vidc_core *core,
void *response); void *response);
int validate_packet(u8 *response_pkt, u8 *core_resp_pkt, int validate_packet(u8 *response_pkt, u8 *core_resp_pkt,
@@ -17,5 +19,7 @@ bool is_valid_hfi_buffer_type(struct msm_vidc_inst *inst,
void handle_session_response_work_handler(struct work_struct *work); void handle_session_response_work_handler(struct work_struct *work);
int handle_session_response_work(struct msm_vidc_inst *inst, int handle_session_response_work(struct msm_vidc_inst *inst,
struct response_work *work); struct response_work *work);
int handle_system_error(struct msm_vidc_core *core,
struct hfi_packet *pkt);
#endif // __VENUS_HFI_RESPONSE_H__ #endif // __VENUS_HFI_RESPONSE_H__

View File

@@ -954,18 +954,6 @@ static int msm_vdec_release_input_internal_buffers(struct msm_vidc_inst *inst)
return 0; return 0;
} }
static int msm_vdec_release_output_internal_buffers(struct msm_vidc_inst *inst)
{
int rc = 0;
i_vpr_h(inst, "%s()\n",__func__);
rc = msm_vidc_release_internal_buffers(inst, MSM_VIDC_BUF_DPB);
if (rc)
return rc;
return 0;
}
static int msm_vdec_subscribe_input_port_settings_change(struct msm_vidc_inst *inst, static int msm_vdec_subscribe_input_port_settings_change(struct msm_vidc_inst *inst,
enum msm_vidc_port_type port) enum msm_vidc_port_type port)
{ {
@@ -1735,10 +1723,6 @@ int msm_vdec_streamon_output(struct msm_vidc_inst *inst)
if (rc) if (rc)
goto error; goto error;
rc = msm_vdec_release_output_internal_buffers(inst);
if (rc)
goto error;
rc = msm_vdec_create_output_internal_buffers(inst); rc = msm_vdec_create_output_internal_buffers(inst);
if (rc) if (rc)
goto error; goto error;

View File

@@ -2522,6 +2522,9 @@ static int __response_handler(struct msm_vidc_core *core)
{ {
int rc = 0; int rc = 0;
if (call_venus_op(core, watchdog, core, core->intr_status))
return handle_system_error(core, NULL);
memset(core->response_packet, 0, core->packet_size); memset(core->response_packet, 0, core->packet_size);
while (!__iface_msgq_read(core, core->response_packet)) { while (!__iface_msgq_read(core, core->response_packet)) {
rc = handle_response(core, core->response_packet); rc = handle_response(core, core->response_packet);

View File

@@ -310,7 +310,7 @@ static int handle_session_error(struct msm_vidc_inst *inst,
return rc; return rc;
} }
static int handle_system_error(struct msm_vidc_core *core, int handle_system_error(struct msm_vidc_core *core,
struct hfi_packet *pkt) struct hfi_packet *pkt)
{ {
d_vpr_e("%s: system error received\n", __func__); d_vpr_e("%s: system error received\n", __func__);