mbox series

[0/3] Venus - recovery from firmware crash

Message ID 20200730114632.6717-1-stanimir.varbanov@linaro.org
Headers show
Series Venus - recovery from firmware crash | expand

Message

Stanimir Varbanov July 30, 2020, 11:46 a.m. UTC
Hello,

The intention of this patchset is to correct the recovery sequence
for Venus v4 (sdm845). Recently has been observed various recovery
failures which leads to unreliable behavior in sys_error handler.
To fix that the sys_error_handler is reworked, proper delays has
been added over pmruntime handling to ensure that the hardware and
encoder/decoder drivers are idle. Also a wrong watchdog code in
threaded irq has been removed. 

regards,
Stan

Stanimir Varbanov (3):
  venus: parser: Prepare parser for multiple invocations
  venus: Rework recovery mechanism
  venus: Add new interface queues reinit

 drivers/media/platform/qcom/venus/core.c      | 25 ++++----
 drivers/media/platform/qcom/venus/hfi.c       |  5 ++
 drivers/media/platform/qcom/venus/hfi.h       |  1 +
 .../media/platform/qcom/venus/hfi_parser.c    |  3 +
 drivers/media/platform/qcom/venus/hfi_venus.c | 62 +++++++++++++++----
 drivers/media/platform/qcom/venus/hfi_venus.h |  1 +
 6 files changed, 74 insertions(+), 23 deletions(-)

-- 
2.17.1

Comments

Fritz Koenig Aug. 7, 2020, 9:28 p.m. UTC | #1
On Thu, Jul 30, 2020 at 4:47 AM Stanimir Varbanov
<stanimir.varbanov@linaro.org> wrote:
>

> Presently the hfi_parser has been called only once during driver

> probe. To prepare the parser function to be called multiple times

> from recovery we need to initialize few variables which are used

> during parsing time.

>

> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>

> ---

>  drivers/media/platform/qcom/venus/hfi_parser.c | 3 +++

>  1 file changed, 3 insertions(+)

>

> diff --git a/drivers/media/platform/qcom/venus/hfi_parser.c b/drivers/media/platform/qcom/venus/hfi_parser.c

> index 7f515a4b9bd1..363ee2a65453 100644

> --- a/drivers/media/platform/qcom/venus/hfi_parser.c

> +++ b/drivers/media/platform/qcom/venus/hfi_parser.c

> @@ -239,6 +239,9 @@ u32 hfi_parser(struct venus_core *core, struct venus_inst *inst, void *buf,

>

>         parser_init(inst, &codecs, &domain);

>

> +       core->codecs_count = 0;

> +       memset(core->caps, 0, sizeof(core->caps));

> +

>         while (words_count) {

>                 data = word + 1;

>

> --

> 2.17.1

>


Reviewed-by: Fritz Koenig <frkoenig@chromium.org>