Image session should run as fast as possible mode and dynamic
framerate detection is not applicable for image session. So
added change to disable that feature for image decode session.
Change-Id: Ifcfeb24d1f70009ba48e9ade77bd765c1b0e8fd7
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Sequence change property would configure firmware to generate psc at every
key frame. This property is configured based on low latency settings from
the client.
For cases, when client sets low latency from 1 to 0, the hardware would
continue to run in direct mode (low latency mode). Since the sequence
change property gets disabled, there would not be psc from firmware to
change the mode to 2 stage. Hence the sequence change property to be reset
only during psc handling.
Change-Id: Ie8e17e44c921f036763f6f390397d4d812120e23
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
There are few apk which does not set the rate. As per the design,
video sessions should run in non real time mode for such sessions.
It is leading to high power as the resources are clocked to max
in non realtime mode.
Keeping the mode as real time for such sessions.
Change-Id: I072b33038b1169788f37711ebf6cb069d0f07381
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
For worst complexity factor received in fbd, also need
to divide it by frame_size, otherwise will cause
bus BW overvote.
Change-Id: Ibb20103c4ab8e3830eea8cf8a04b32f421b60362
Signed-off-by: Qiwei Liu <qiweil@codeaurora.org>
Signed-off-by: Priyanka Gujjula <pgujjula@codeaurora.org>
Increase vpp cycles to bump frequency to 366MHz
for encoder 960fps use case.
Change-Id: If0f9d0f084dfcefa9f8614ec6774588dec6b7007
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
Signed-off-by: Priyanka Gujjula <pgujjula@codeaurora.org>
As per vperf sheet, VSP FW Overhead factor(1.05) needs
to be applied to both entropy mode CABAC & CAVLC.
Change-Id: I93dc00137e0633ac2a79862c58970ba43b515ad6
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Signed-off-by: Priyanka Gujjula <pgujjula@codeaurora.org>
Decoder base cycle requirement of B frames has increased to 80.
Also, updated cycle count requirement for Encoder HIER B usecase.
Pulled from CL: 3302650.
Change-Id: I0f56166b7261e161630feeb8793473491dacccd7
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Currently core->state is not moved to deinit for venus_hfi_core_init
failure, so it stays remains at init_wait state and rejecting all
subsequent open requests. Since core->state is in init_wait, all
subsequent requests goes for polling to move state to init, which
will never happen and all session opens will fail always.
Change-Id: Ia7e30bd8559be00022c68f907341fd0f7fdad422
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
At the time of codec change, only properties related to that
particular port gets updated. So other port is still referring
default values from previous codec type, which is not correct.
So added change to properly update buffer count during codec
change.
Change-Id: I320a0916cbf48f06448a959b07e13b74ebb0fd1c
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
During power_collapse & core_deinit sequence, always flush debug
queue irrespective of firmware logmask, to get more info about
failure.
Change-Id: I4ef328d27a77eb0807df6dc33fe0b2b92bf1feda
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Added change to avoid unnecessary list iteration during
msm_memory_free also added logic to catch double free
request.
Change-Id: Ie3fb8019fd039e95ea75ba8f3fbd266af515e5cd
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Track dmabuf refcount during dma_buf_get() and dma_buf_put().
So if any dmabuf present with non-zero refcount during close,
then i.e a dmabuf leak. So during session close print error
and call dma_buf_put_refcount_completely() api to recursively
reduce the count to zero and will call dma_buf_put() to avoid
dmabuf leak from video driver side.
Change-Id: I2028c18ca067977eac3cdf0ce7d6cc4200739408
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Add support to dump all queues(cmd, msg, dbg) as part
of handle_system_error using devcoredump framework.
Change-Id: Ia1b011a29e6bc657eb002dbba09deab62dc0b2b2
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Migrate from mdt way of loading split firmware binaries to single image
file i.e mbn. With firmware memory carved out, there is no benefit of
keeping firmware files as split.
Loading is improved to 6ms with single image binary.
MODULE_FIRMWARE can be introduced with single binary name to provide info
of the firmware associated with video module.
Change-Id: I7126705e4a32913166eb0671a8dc0d4db5ad8955
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
Include errno.h explicitly and fix the order of
includes
Test:
compile on Android for arm64
compile off-target on host-linux for x86_64
Change-Id: I77e2469f576369d4dcea672f40413ec21ff7f3f9
Signed-off-by: Praveen Chavan <pchavan@codeaurora.org>
Currently inst struct is managed by core->instances list and it
gets unlinked during system_error and inst close sequence.
So if there a target reset situation under stability testing,
it is difficult to catch inst handle in t32 debugging. So added
such obsolete instances into core->dangling_instances, so that
it willbe helpful in debugging, it gets removed before inst free.
Change-Id: Ide9961f7c82e27406752afeb8a1f2ac86b9fa0ba
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Increase output buffer min count value from 1 -> 3 to avoid
COMV buffer size calculation mismatch between driver and
firmware.
Change-Id: I9e5b011c8d1bb221dbc3c12797fc64831c0e1cec
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Accessing vcodec subsystem registers without video core clock enabled
will result in register access errors. Core clock might have been
already disabled by video firmware as part of inter frame power collapse.
So do not read vcodec noc error log registers from video driver.
Change-Id: I19a32c377c661aa848fbd463ae59159cca4cfe04
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
- make B and P frame QP controls as dynamic.
- enable I/P/B QP to fw as and when these
controls are set to the driver.
- remove HEIC qp support.
Change-Id: I7f45ab0bda75df8128bbbdfcebe66c2cae208b06
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
For encoder, driver state is not moved from DRAIN to
DRAIN_LAST_FLAG after receiving LAST_FLAG from firmware.
This causes RESUME command failure for v4l2 client. Fix the
same.
Change-Id: I2c64e9fa85e970e1d0feafdbd865dad61a6d21e9
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
1. Calculate framerate based on buffer timestamp
2. If framerate changed and stable for 2 frames,
update it to firmware and in driver internally.
Change-Id: I7feda86dec8fcfc1dff6defac8c15a97c1b8393e
Signed-off-by: Priyanka Gujjula <pgujjula@codeaurora.org>
- Maintain free & busy pool to track buffers separately
- track double-free cases during msm_memory_free()
- track memory leak, by checking busy pool buffer count.
it is expected to be zero at the end of a session.
- maintain common api's to init, alloc, free, destroy
for all below buffer types.
- struct msm_vidc_buffer
- struct msm_vidc_alloc
- struct msm_vidc_map
- struct msm_vidc_timestamp.
Change-Id: Ib8655047c3883ea6601344661058d7a629ffd5bd
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Refine log level checking, to avoid some logs are
always printed if multiple level specified.
Change-Id: I151a5b8cce8d234d6d22450c43cf50d3b0065286
Signed-off-by: Qiwei Liu <qiweil@codeaurora.org>
Add support to dump video FW region during FW crash
using devcoredump helpers.
Change-Id: I64c47160f04644223f4e831c35f7a059d38f7d83
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Client can choose to run an encode session to acheive maximum
performance rather than maximum quality.
Add the handling to configure video core accordingly for the
configured video session.
Such configuration is only applicable for non-realtime session.
Change-Id: Ife290b377c844e5b1d3be93b2509c787f8e05c59
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
mod_delayed_work() is a replacement for cancel_delayed_work()
+ queue_delayed_work(). It will update only timer value,
instead of completely cancelling and queueing a new delayed
work.
Change-Id: Id07d54e025c5a2e82f29160ae6d249d44f00bb15
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Amend power on and off sequences for iris2 video hardware.
Change-Id: Icada0b95ba5990a6911803ee9fa650a296c357db
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>