Add NULL check to fix kw issue of possible NULL dereference
Change-Id: Ia2518b43a855831277981a662d10f24e122748ba
Signed-off-by: Chen Sun <quic_chesun@quicinc.com>
1. allow any client set operating rate (less than 2^15)
2. remove operating rate dependency for admission control
3. allow turbo for low latency case as well
Change-Id: I4b0f29c3756a592a9baedec8996653e5cb5292d5
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
Amend frame rate or operating rate settings for encoder
to preserve precision value if numerator is greater than 1.
Change-Id: Idc84b07f7a5558b564efaac21d663a0deda207c2
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
For decoder input buffers, firmware (BSE HW) needs 256 aligned
buffer size otherwise it will truncate or ignore the data after 256
aligned size which may lead to error concealment.
To resolve above issue, need to update buffer size aligned with 256
Change-Id: I7782d23e293a63ca9cb650fbefc574e5d4ad2f24
Signed-off-by: Gaviraju Doddabettahalli Bettegowda <quic_gdoddabe@quicinc.com>
print read index and write index in packet
log for easier debugging.
Change-Id: I4ba797ed141d74ba51941ef8a9f09db359b407e9
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
- Instead of accumulating the residency stats for complete session,
the residency stats for previous instance of a particular clock
were overwritten by residency stats of next instance of that clock.
- Modified to the logic to accumulate the residency stats for
complete session.
Change-Id: Ic37579ba0c28f86cda41481b0615a0bb9a54846e
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
- program required NOC registers in power on
- update NOC error handling when fw raises HFI_SYS_ERROR_NOC
- skip reading NOC error log registers from smmu fault handler
as they are updated only when sys error from firmware is
processed and fault handling is completed
Change-Id: If396995d8bd6c77e6a92c0c2a8a7fb245be48854
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
This api should not call v4l2_colorformat_to_driver
in case of encode session.
Change-Id: Ibb702e427eef3f78a62213bb181750a1403679e5
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
Adjust the residency print to have more
closer integer value.
Change-Id: Idc9605bd6be8f65ab8ec7b61059660abbf2e85fb
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
During msm_vidc_close, we are trying to perform suspend which
will unload the firmware. This is done to reduce the latency
since it will power collapse after 1.5 seconds.
But, during bootup time, for each codec, framework tries to
open and close each session for each codec. As part of this,
it will try to do power collapse/power on each time, hence
increasing the bootup latency.
Therefore Removed suspend call from close to avoid bootup
latency because video fw will anyway power collapse the
video hardware and firmware will also go into WFI mode.
Change-Id: Idbe015a6a2ef4dd1573ef01fd69d638fea7be519
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
- Introduce new control to set HEIC encoder tile size from HAL
- Support 1k x 1k tile encoding along with existing 512 x 512
tiling
Change-Id: Iaeffe421f8311d818695c3ae9af7cabcc8892043
Signed-off-by: Akshata Sahukar <quic_asahukar@quicinc.com>
- In s_fmt, there might be a codec change and here we are
free the ctrl handler, at the same time client may call
query ctrl and this will lead to null pointer access.
- To resolve null pointer access, do not free ctrl handler
and add new codec controls to the same ctrl handler.
Change-Id: Iee87d5cb4d65e31d405cb1fc9f82bebab696d027
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
When fw sends FBD with release done flag,
reset driver pending_release flag. Without
this fix, a buffer will wrongly marked as
pending_release although release done was
already arrived from fw leading to issues
when trying to mark buffer as release_eligible
or when sending release command to fw.
Change-Id: Ib6b9f6233b133442057f3938159f6f0f33fc90f8
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
For Decode batching enabled case, max_data_size is being calculated
as the average of the data_size for all the buffers.
These buffers may contains EBD as well having data_size as 0,
which may reduce the average value by significant numbers and
hence reducing vsp numbers which may lead to vote clock to low
corners.
This may lead to slow decoding and hence Framework may drop the
frames.
Therefore, compute Average data_size only for Queued/Deffered bufs.
Change-Id: I12f155852dd750701b9448d3900b75f470eac126
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
average calculation for llcc and ddr bandwidth for 2 seconds window
is printed in stats logs
Change-Id: I3507a0117c65b723644d00c89c7d466130d4a467
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
In VP9 superframe usecase one ETB has multiple FBDs,
and the EBD is after the first FBD.When driver receives
first FBD that is not in DPB_LIST, it releases this buffer.
Later on when the EBD arrives with dpb list property and
it turns out that first FBD for which release was sent is
actually in DPB_LIST, causing FW assertion.
To fix this issue, in the reverse path, when handling
dpb list property, mark those read only buffers which
are not in dpb list as release eligible. Later, in the
qbuf path for output buffers, send release for all those
buffers which were earlier marked as release eligible.
Change-Id: I5d6035b808653478311f41ebe53f60e728c7dd2a
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
- program required NOC registers in power on
- update NOC error handling when fw raises HFI_SYS_ERROR_NOC
- skip reading NOC error log registers from smmu fault handler
as they are updated only when sys error from firmware is
processed and fault handling is completed
Change-Id: I0195515ff1640aabe8e6db85803b49fde645808f
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
Amend the driver internal buffer reuse logic:
1. If firmware releases the buffers as a response to driver request
(e.g during RESUME), destroy internal buffers explicitly after
firmware releases them.
2. If firmware releases the buffers independently, (e.g as a part of
STOP command), remove the QUEUED attribute but do not destroy them.
During the following port streamon sequence, driver can determine if
buffers can be reused or if they should be destroyed.
3. Do not reset buffer list size/count field when destroying released
internal buffers as the list can contain new active buffers. Resetting
causes a race condition and interferes with buffer reuse checks.
Change-Id: I030949d2400daa40b6b97b51f086ccc1b41e080f
Signed-off-by: Mihir Ganu <quic_mganu@quicinc.com>
Client is setting NV12 fmt as OP format before initial reconfig
So during input port stream_on, subscribe_input_property is
failing due to ubwc check(NV12 fmt), so DPB_LIST cap is getting
disabled, but later client is setting NV12C during reconfig.
So msm_vdec_release_nonref_buffers() during qbuf is bypassed and
release cmd is never sent to fw for pending ro buffers. Infact
entire RO handling at driver side is disabled.
Looks like due to some reason client was not requeueing same
buffers at same slot, So eventually number of pending RO buffers
increasing over the time. Once count shoots more than 256 fw
assertion happens and i.e leading to system error.
Remove UBWC check while subscribing input port properties, so
DPB_LIST willbe subscribed always and avoids above mentioned
issues.
Change-Id: I57ea0ea637ae3a57fcad430b212dcdb10f8e6d0f
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
Currently updating substate in CORE_DEINIT state was not
allowed. So i.e leading to issues at page fault cases.
Added change to allow updating substate for CODE_DEINIT
case as well.
Change-Id: I1c2cd089ca5c2172c8d672ef1f3701bec7bcc8c2
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
read the av1 uniform tile handling propert from fw
and display it. Required in debugging av1 usecases for
power calculation
Change-Id: I443e5afd591a8131c667c64cebb417fc022693ac
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
modifying log level from error to high
in power suspend API
Change-Id: I6df3572506fb8cc12b7b0eb60cb1fa8049eacf5e
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
If the av1 tile rows and columns are greater than recommended decoder
av1 settings,vote for higher frequency.
Change-Id: Iea9f542e0b925a9ecb063c11b1827f31164f5a7b
Signed-off-by: Ashish Patil <quic_ashpat@quicinc.com>
Remove capability pointer and allocate
memory with max cap size.
Change-Id: I7f53e3b35439f91b72f057695b6e63f71bfecc0a
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
- Adjust v4l2 properties during reqbufs of
master port. Set properties to firmware
during streamon of master port.
- Calculate buffer size and buffer counts
during reqbufs call of each port.
- This is done to recalculate buffer sizes
and counts after client has configured
all the controls and updated size and
count can be returned to client before
streamon.
Change-Id: Ifc7ee36456d5d4e1c862952de581af3d7ae126b0
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>