|
@@ -1,7 +1,7 @@
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
/*
|
|
* Copyright (c) 2020-2022, The Linux Foundation. All rights reserved.
|
|
* Copyright (c) 2020-2022, The Linux Foundation. All rights reserved.
|
|
- * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
|
|
|
+ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
*/
|
|
*/
|
|
|
|
|
|
#include <linux/iommu.h>
|
|
#include <linux/iommu.h>
|
|
@@ -1056,7 +1056,8 @@ int msm_vidc_process_resume(struct msm_vidc_inst *inst)
|
|
return rc;
|
|
return rc;
|
|
clear_sub_state |= MSM_VIDC_INPUT_PAUSE;
|
|
clear_sub_state |= MSM_VIDC_INPUT_PAUSE;
|
|
}
|
|
}
|
|
- if (is_sub_state(inst, MSM_VIDC_OUTPUT_PAUSE)) {
|
|
|
|
|
|
+ if (is_sub_state(inst, MSM_VIDC_OUTPUT_PAUSE) &&
|
|
|
|
+ !is_encode_session(inst)) {
|
|
rc = venus_hfi_session_resume(inst, OUTPUT_PORT,
|
|
rc = venus_hfi_session_resume(inst, OUTPUT_PORT,
|
|
HFI_CMD_SETTINGS_CHANGE);
|
|
HFI_CMD_SETTINGS_CHANGE);
|
|
if (rc)
|
|
if (rc)
|
|
@@ -1073,7 +1074,8 @@ int msm_vidc_process_resume(struct msm_vidc_inst *inst)
|
|
return rc;
|
|
return rc;
|
|
clear_sub_state |= MSM_VIDC_INPUT_PAUSE;
|
|
clear_sub_state |= MSM_VIDC_INPUT_PAUSE;
|
|
}
|
|
}
|
|
- if (is_sub_state(inst, MSM_VIDC_OUTPUT_PAUSE)) {
|
|
|
|
|
|
+ if (is_sub_state(inst, MSM_VIDC_OUTPUT_PAUSE) &&
|
|
|
|
+ !is_encode_session(inst)) {
|
|
rc = venus_hfi_session_resume(inst, OUTPUT_PORT, HFI_CMD_DRAIN);
|
|
rc = venus_hfi_session_resume(inst, OUTPUT_PORT, HFI_CMD_DRAIN);
|
|
if (rc)
|
|
if (rc)
|
|
return rc;
|
|
return rc;
|