/d/msm_vidc/core_clock_voting will modify only clock rate
and not ddr and llc bandwidth.
example usage:
adb shell "echo 444000000 > /d/msm_vidc/core_clock_voting".
introduction of /d/msm_vidc/ddr_bw and /d/msm_vidc/llcc_bw
which will modify ddr and llc bandwidth respectively.
example usage:
adb shell "echo 5000000 > /d/msm_vidc/ddr_bw_kbps".
adb shell "echo 7000000 > /d/msm_vidc/llc_bw_kbps".
Change-Id: If4aca728cae212630928dda69a38310d8268b5e1
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Avoid setting same GOP size to fw dynamically to avoid unnecessary
generation of IDR frame from firmware.
Change-Id: I50c61e9f86ebc9c8a3834fbceb525666b7b194bb
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
MIN_QUALITY is parent of BLUR_TYPES, hence prioritize MIN_QUALITY
control adjustment over BLUR_TYPES.
Change-Id: I8498760d7b3ecd1546c2be43d2ae945781d4a84d
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
- Added changes to print frame-number for each ETB, EBD, FTB, FBD.
- framenumber will be helpful to detect logdrop in perf analysis.
Change-Id: I1b6c8fdbeb2f2003e69d02cd5d871535e8e73c42
Signed-off-by: Gaviraju Doddabettahalli Bettegowda <gdoddabe@codeaurora.org>
Currently, statistics is printing for every 2 second
And these delay is hardcoded.
So changes added to update the statistics delay from the command-line.
- adb shell "echo 200 > /d/msm_vidc/core/stats_delay_ms"
- adb shell cat /d/msm_vidc/core/stats_delay_ms
Use above command to update & read statistics delay.
Change-Id: I523a870203ee460d1dba8208b798f28253407e73
Signed-off-by: Gaviraju Doddabettahalli Bettegowda <gdoddabe@codeaurora.org>
Video driver clk scaling is through mmrm. So without informing
to mmrm if we disable_clk, then mmrm will hold stale peak_current
values and that will lead to incorrect calculations at mmrm side.
So always request to set lowest clk corner to mmrm before calling
clk_disable_unprepare() api.
Change-Id: I3e54249430ec4e886afb42f5af6863c7e40686c4
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Driver is discarding input port settings change (ipsc) event
before sending stop input to firmware and also in case of
input port is still in streamoff state while processing
pending events. There is a chance that driver may not discard
ipsc event if firmware raised ipsc after sending stop input and
also driver may not discard the pending ipsc if client quickly
streamon the input port before pending events processing scheduled.
So discard pending ipsc in the streamoff input port after stop input
to firmware and wait for stop done is successful.
Change-Id: I518cebe1142235463b1ccd851ac151ad80036f95
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
Since ycbcr_enc is u8 member varible, 302 value exceeds its memory range
resulting in storage of incorrect matrix coefficents, and passing the same
to HAL. As a result, incorrect color space info is propagated to client
resulting into color mismatch issue and failing the CTS testcase.
Fixed this.
Change-Id: I66424c033bb4c4ad7d7528974a45a6a4b2740327
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
add checks to limit max number of sessions supported based on
resolution.
max number of 720P sessions: 16
max number of 1080P sessions: 8
max number of 4K sessions: 4
max number of 8K sessions: 2
Change-Id: I2a784a0d28ba050923bdc7f42a21ee9801d01d86
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Allow one 8k + one 4k realtime sessions.
Maximum allow two 8K sessions which includes RT and NRT sessions.
Change-Id: I68acfc4942c5c930bed7d9584cd82f2667010136
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Fill correct opb color format for bus voting.
Change-Id: I219172492563d10582233c54578115ab48b9b1ff
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Currently allowing 15 concurrent video instances instead of 16.
Fix this to allow 16 instances.
Change-Id: I515625e47e324cd1c7ba5a83c1363705bca64721
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
Currently video driver ignoring error value returned by
__read_register() api. So added changes to improve error
handling.
Change-Id: Ia3968f0f900915b46b96c5e790af9be02389e841
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Check for max supported secure sessions before allowing
any new secure session to limit secure sessions count by
max supported value.
Change-Id: I72d22c5e592eeb662d18018f6d880104992d570b
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
Currently, there is a precision loss while calculating framerate,
this will result in updating framerate multiple times to firmware.
So added change to avoid precision loss in framerate calculation.
Change-Id: I9748e7ad6913eb4790e24468b60f39823857f5c4
Signed-off-by: Gaviraju Doddabettahalli Bettegowda <gdoddabe@codeaurora.org>
Non-ubwc color format with interlace is unsupported.
add condition to check this during streamon and
resume commands.
Change-Id: I76310b0860d4d113194b8c691698ea0dc800a879
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Currently error session loads were ignored at admission control
checks. So concurrent scenarios, there are chances that multiple
sessions were in error state and yet to be closed by client. If
those sessions were 8K sessions, then allowing new sessions will
lead to OOM issues. Because error scenario, client might take more
time to cleanup(to close driver fd). So it is better to include
those sessions load as well in admission control checks to avoid
OOM issues.
Change-Id: I5d8f009b289f7f7cfb79a9e9197bfa4781f2fce3
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Reject non-secure mapping request for a secure buffer(or vice versa).
These combinations will lead to transaction fault later. So it is
better to reject this buffer mappings upfront.
Change-Id: Iaac851b235707dde8d303fb581ba0ae7c8768b85
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Upstream recommends to use readl_relaxed_poll_timeout instead of reading
register in a loop with sleep. So replaced with readl_relaxed_poll_timeout
in all possible places.
Change-Id: Ide1758314128751a6876678d4265bb77c52de25f
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Query final values of session params like stage,
pipe and quality mode from FW and check if they
are the same intended values as configured by
the driver.
Change-Id: I1a504401a599860ab971e34e1e184e67631d6120
Signed-off-by: Chandrakant I Viraktamath <civirakt@codeaurora.org>
add support for HFI_PROP_MAX_NUM_REORDER_FRAMES.
add ctrl for this metadata for avc and hevc.
Change-Id: I9a7b95f130e58f810255aff23e9b605304841072
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Set default value for number of hw blocks as 1 for video
client.
Change-Id: I64927db72abc9b8ad4be9ff6d125ca9424787372
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
In msm_vidc_packetize_control api, there is a stack-out-of-bounds
possibility. So added change to fix this issue.
Change-Id: I9c9a0217b55dd2586cfd6f814401c80ddb0c011f
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>