提交图

695 次代码提交

作者 SHA1 备注 提交日期
Chandrakant I Viraktamath
a626d5c731 video: driver: Add checks for fw configured session params
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>
2021-08-13 13:17:56 +05:30
qctecmdr
cc48023758 Merge "video: driver: implement TRY_FMT for encoder and decoder" 2021-08-10 16:08:17 -07:00
qctecmdr
4e9096a82c Merge "video: driver: fix stack stack-out-of-bounds issue" 2021-08-10 11:54:17 -07:00
Darshana Patil
05270719fb video: driver: add max num reorder frames support
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>
2021-08-09 11:39:57 -07:00
Darshana Patil
756a01af02 video: driver: Set default value for number of hw blocks
Set default value for number of hw blocks as 1 for video
client.

Change-Id: I64927db72abc9b8ad4be9ff6d125ca9424787372
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-08-05 17:16:39 -07:00
Govindaraj Rajagopal
c24d458399 video: driver: fix stack stack-out-of-bounds issue
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>
2021-08-05 13:32:02 +05:30
Dikshita Agarwal
034d732cc7 video: driver: remove unsupported ioctls from ioctls ops
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>
2021-07-30 15:53:30 +05:30
Dikshita Agarwal
a7ce77cfc7 video: driver: implement TRY_FMT for encoder and decoder
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>
2021-07-30 15:27:02 +05:30
qctecmdr
cff24b925c Merge "video: driver: report unsupported for invalid selection setting" 2021-07-29 13:50:45 -07:00
qctecmdr
e0daeca024 Merge "video: driver: remove unsupported selection targets for encoder" 2021-07-29 13:50:45 -07:00
Dikshita Agarwal
77ac864dc5 video: driver: report unsupported for invalid selection setting
- 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>
2021-07-29 14:42:08 +05:30
qctecmdr
07753f9126 Merge "video: driver: add proper handling of VIDIOC_ENUM_FRAMESIZES" 2021-07-28 12:19:03 -07:00
qctecmdr
dd6e67eafd Merge "video: driver: update required fields of stream parm struct" 2021-07-28 12:19:03 -07:00
Dikshita Agarwal
40c0938c20 video: driver: remove unsupported selection targets for encoder
- 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>
2021-07-28 13:12:12 +05:30
Dikshita Agarwal
79ac405a32 video: driver: update required fields of stream parm struct
- 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>
2021-07-26 20:34:10 +05:30
Govindaraj Rajagopal
5c297b7d26 video: driver: print buffer statistics once at every sec
- 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>
2021-07-22 19:13:19 +05:30
Darshana Patil
371fcbad4e video: driver: null check in handling sys error
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>
2021-07-21 15:07:44 -07:00
Priyanka Gujjula
d9696271a0 video: driver: Migrate to threaded irq
Migrate to threaded IRQ from workqueue based
IRQ handling.

Change-Id: I5cf2ecaa6d9b8d67698bbaf41e8d5ff77249ab1c
Signed-off-by: Priyanka Gujjula <pgujjula@codeaurora.org>
2021-07-20 01:32:51 +05:30
qctecmdr
10c9a5ba50 Merge "video: driver: Enable firmware error and fatal logs by default" 2021-07-16 18:41:51 -07:00
Gaviraju Doddabettahalli Bettegowda
3fc922e53d video: driver: Enable firmware error and fatal logs by default
Added change to enable firmware logs by default.

Change-Id: Ie3363e72503264929bd5fb749ad7c2af45831bb2
Signed-off-by: Gaviraju Doddabettahalli Bettegowda <gdoddabe@codeaurora.org>
2021-07-16 20:23:01 +05:30
Akshata Sahukar
942f406c42 video: driver: Cap chroma qp offset value other than -12 as 0
Cap chroma qp offset value other than -12 as 0.

Change-Id: I0ca9c4844ab835a9365e695f38deff90768191aa
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-07-15 10:23:02 -07:00
qctecmdr
e03d09350d Merge "video: driver: add support to bugon for requested types" 2021-07-14 15:52:51 -07:00
qctecmdr
36d28e81f7 Merge "video: driver: add support to dump subsystem memory" 2021-07-14 15:52:50 -07:00
Dikshita Agarwal
44f4a9fab3 video: driver: add proper handling of VIDIOC_ENUM_FRAMESIZES
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>
2021-07-13 22:01:11 +05:30
Govindaraj Rajagopal
142d7813b6 video: driver: add support to dump subsystem memory
Added support to dump subsystem region along with firmware
region and queues.

Change-Id: If032553f23195b3c9ddc9d6e18854319452558c7
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-07-13 20:04:52 +05:30
Akshata Sahukar
3aaf56bebe video: driver: set RGBA enc session input default color space as BT709 LR
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>
2021-07-12 17:39:33 -07:00
Govindaraj Rajagopal
63614e76b8 video: driver: add support to bugon for requested types
Added change to enable bugon at handle_system_error for
error types requested via debugfs property.

Fatal:
adb shell "echo 0x1 > /d/msm_vidc/enable_bugon"

NoC:
adb shell "echo 0x2 > /d/msm_vidc/enable_bugon"

WD Timeout:
adb shell "echo 0x4 > /d/msm_vidc/enable_bugon".

Change-Id: Iecc1b076c7ca53acee837d68e1a7446dbaef6e94
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-07-12 21:55:02 +05:30
qctecmdr
c7b23776f2 Merge "video: driver: Enable decode order for thumbnail mode" 2021-07-08 20:22:34 -07:00
qctecmdr
05aa27a1ee Merge "video: driver: amend ipsc discard handling" 2021-07-08 20:22:34 -07:00
Darshana Patil
5e9c1e75fa video: driver: amend ipsc discard handling
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
2021-07-08 17:57:16 -07:00
qctecmdr
44e14be2f2 Merge "video: driver: move state to ERROR instead of just returning -EINVAL" 2021-07-08 17:56:10 -07:00
Akshata Sahukar
40ae39388e video: driver: Enable decode order for thumbnail mode
Enable decode order for thumbnail mode.

Change-Id: If0c7b304369d4fb1aaedccb7fe1919ab8b6077a5
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-07-08 17:54:35 -07:00
qctecmdr
716ab7d3ef Merge "video: driver: queue deferred buffers during IPSC" 2021-07-08 15:09:54 -07:00
Akshata Sahukar
975c7beb5e video: driver: move state to ERROR instead of just returning -EINVAL
move driver state to ERROR if any session pkt processing failed.

Change-Id: Id9c653eb01a0845d6d25cf16383f34707d76ba96
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-07-08 14:34:52 -07:00
qctecmdr
e1400eabe4 Merge "video: driver: enumerate color format based on preference" 2021-07-08 12:42:50 -07:00
qctecmdr
9b35e17031 Merge "video: driver: ignore input/output port streamoff if already streamed off" 2021-07-08 09:41:52 -07:00
Govindaraj Rajagopal
9fc813b9c4 video: driver: queue deferred buffers during IPSC
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>
2021-07-08 20:05:20 +05:30
Akshata Sahukar
423459fcfc video: driver: enumerate color format based on preference
Enumerate supported color formats based on preference.
Compressed format should be populated first, then linear formats.

Change-Id: I82ebd9b9386098575c257b193be37e07ab476d9a
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-07-07 15:23:07 -07:00
Akshata Sahukar
7616a6bdad video: driver: ignore input/output port streamoff if already streamed off
Ignore input port or output port streamoff if corresponding port is already
streamed off.

Change-Id: I708126b24758ee0f76bc2646527d1baee59e5178
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-07-07 14:06:04 -07:00
Dikshita Agarwal
9a47e9a449 video: driver: update required fields of format struct
The driver should update field variable of format
structure with a value other than V4L2_FIELD_ANY.
Update it with V4L2_FIELD_NONE.

Fixes: v4l2-compliance: testGetFormats(VIDIOC_G_FMT).

Change-Id: I2338c867b543b2964c0c6a84f76cfad6862a935f
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
2021-07-07 12:01:03 -07:00
Dikshita Agarwal
d128888562 video: driver: retun error for VIDIOC_ENUM_FRAMEINTERVALS from decoder
M2M devices don't support VIDIOC_ENUM_FRAMEINTERVALS,
except for stateful encoders.

Fixes: v4l2-compliance:
	testEnumFormats (VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS).

Change-Id: I94cf3b332f7474457d8b45427ca58c1cbfb1e73d
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
2021-07-07 11:51:50 -07:00
qctecmdr
d90bcf45f5 Merge "video: driver:: handle NULL value of ctrl" 2021-07-04 00:23:18 -07:00
qctecmdr
683774e7f1 Merge "video: driver: fill required fields in capability struct" 2021-07-03 22:14:25 -07:00
Dikshita Agarwal
167aebba8c video: driver:: handle NULL value of ctrl
In case, when control id passed by client is 0, ctrl ref will be NULL.
handle such NULL ctrl by returning -EINVAL from driver.

Fix: v4l2-compliance: testSimpleControls: Invalid Control.

Change-Id: Ie7dfe96775dd5fe71a4e467539dd261e4ba9efaf
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
2021-07-02 14:32:15 -07:00
Govindaraj Rajagopal
48dff0980d driver: video: disable dynamic fps detection logic for image session
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>
2021-07-02 21:05:52 +05:30
qctecmdr
5b091c785c Merge "msm: vidc: fix BW overvote due to wrong worst_cf in fbd" 2021-07-01 18:02:58 -07:00
qctecmdr
aaab46d99b Merge "driver: video: Reset sequence change request property only during psc handling" 2021-07-01 18:02:57 -07:00
Vikash Garodia
3b67d6b2f9 driver: video: Reset sequence change request property only during psc handling
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>
2021-07-01 16:54:30 +05:30
Vikash Garodia
9619e7336d driver: retain real time priority even if rate is not set
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>
2021-07-01 15:45:45 +05:30
Dikshita Agarwal
fc3bb7608f video: driver: fill required fields in capability struct
- Bus_info in caps shouldn’t be empty and
  the name should have valid prefix.
- Update MSM_VIDC_VERSION to ((5 << 16) + (10 << 8) + 0).

Partially Fixes: v4l2-compliance: testCap (VIDIOC_QUERYCAP).

Change-Id: I2405d1154fbb0e71f859a26169a09ed77ffa330e
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
2021-07-01 12:53:27 +05:30