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>
Decoder is not supposed to support VIDIOC_ENCODER_CMD.
Encoder is not supposed to support VIDIOC_DECODER_CMD.
To do the same define separate ioctl ops for encoder and decoder
and remove unsupported ops.
Fixes: v4l2-compliance:
testEncoder(VIDIOC_(TRY_)ENCODER_CMD) on decoder.
testDecoder(VIDIOC_(TRY_)DECODER_CMD) on encoder.
Change-Id: I1560bd2f64c5df1e4b4f125d5b6d542eb9eb42e3
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
Any video device which supports capture multiplanar buf type
should implement VIDIOC_TRY_FMT.
Fixes: v4l2-compliance: testTryFormats (VIDIOC_TRY_FMT).
Change-Id: Id7ec171115c9374c6173fcf74a609382c3acf2d0
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
- Decoder should support G_SELECTION on capture plane only,
so return -EINVAL for other buffer types.
- Return -EINVAL for unsupported/invalid selection target.
Fixes: v4l2-compliance: testLegacyCrop(VIDIOC_G_SELECTION)
on decoder.
Change-Id: I790f0fb95cb5f1d0e5b2132f4e580b7fa1b68c51
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
- CROP should be supported only for V4L2_SEL_TGT_CROP selection
target.
- Compose should be supported only for V4L2_SEL_TGT_COMPOSE
selecion target.
Fixes: v4l2-compliance: testCrop/testCompose (VIDIOC_S_SELECTION)
on encoder.
Change-Id: Iaada9e0078602ab5ddcdd25d94c9abb29c053811
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
- Set capability for capture and output plane.
- Update denominator and numerator of timeperframe structure
to default values if set with zero.
Fixes: v4l2-compliance: testParm(VIDIOC_S/G_PARM) for encoder.
Change-Id: Ib9d92f07fc526a11253ac5d1adc1b639eef3632e
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
- Added change to print buffer statistics like total and avg
etb, ebd, ftb, fbd counts, client set fps, actual fps,
bitrate values in 1 sec window and these stats currently
configured to print at every 1sec boundary.
- Convert meta buffer prints to low level logs.
Change-Id: I1c93eea90fbd5460eb51bbf133c513157003d51e
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
add null check for pkt before accessing pkt
type in handle_system_error function.
Change-Id: If2c3d4c789fed16ed5c385258edc20e122bf1ea9
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Migrate to threaded IRQ from workqueue based
IRQ handling.
Change-Id: I5cf2ecaa6d9b8d67698bbaf41e8d5ff77249ab1c
Signed-off-by: Priyanka Gujjula <pgujjula@codeaurora.org>
Cap chroma qp offset value other than -12 as 0.
Change-Id: I0ca9c4844ab835a9365e695f38deff90768191aa
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
VIDIOC_ENUM_FRAMESIZES was not handled for OUTPUT_MPLANE.
Fixes: v4l2-compliance: testFrameSize(VIDIOC_ENUM_FRAMESIZES)
on encoder.
Change-Id: I9031e018c13ebae94e516be1b5558d30c68b2862
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
Added support to dump subsystem region along with firmware
region and queues.
Change-Id: If032553f23195b3c9ddc9d6e18854319452558c7
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
If client fails to configure color aspects to driver, driver does not set
required color space flags to firmware. For RGBA enc session, there is
implicit CSC. Hence, resultant color space should be BT709 LR. But
firmware fails to generate this color space info assuming that color
space info is not required. Hence, fix this by setting BT709 LR as
default color space info for RGBA enc session.
Change-Id: I6f9fa0986dd8657b1d6bcc2c86286aa51813f518
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
when client does stream on and stream off on input port,
and if ipsc is raised by fw at the same time, the ipsc
is discarded by driver and this race condition results in
incorrect port setting properties used by the driver.
To resolve this, driver will resubscribe for port settings
during the following input port streamon and fw will reraise
ipsc and new properties will be used.
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Change-Id: Id777f9c039a089846e65406e007501b62a571a25
move driver state to ERROR if any session pkt processing failed.
Change-Id: Id9c653eb01a0845d6d25cf16383f34707d76ba96
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
Queue pending buffers from decode_batch during ipsc to avoid
reconfig latency. So added change to queue all pending buffers,
if inst->state is not in START state.
Change-Id: I09eab9c1f4708ec4390486230579fab2ef216a46
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>