Commit Graph

54 Commits

Author SHA1 Message Date
Govindaraj Rajagopal
bef0dd14da video: driver: avoid drain_last_flag to drc state transition
[1] DRC_DRAIN_LAST_FLAG to DRC is not allowed. So remove support
[2] introduced in_range macro
[3] removed process_response_packet function
[4] introduced msm_vidc_process_pending_ipsc function.

Change-Id: I1bc7ed6f0d94052900a4655a2e3da9ea44d60143
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-02-17 13:57:53 +05:30
Akshata Sahukar
b5ce6c94cc video: driver: dynamic control support
- Set dynamic flag in inst database to allow
  dynamic setting of necessary controls.
- avoid enc qbuf call routed to dec.

Change-Id: I66cfcc6be86bfbfe237191a11d533ab6c9455f32
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-02-11 17:33:39 -08:00
Akshata Sahukar
f451c19147 video: driver: amend V4L2_BUF_FLAG_ERROR flag handling
amend MSM_VIDC_BUF_FLAG_ERROR driver EBD/FBD buffer flag
handling to properly pass V4L2_BUF_FLAG_ERROR to client.

Change-Id: I9de1af3a2b5026e6d281982048f2e7f172221695
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-02-10 14:47:58 -08:00
Akshata Sahukar
691eb8dfa5 video: driver: Add support for CQ bitrate mode
Add CQ bitrate mode support. Also add related
constant quality control support.

Change-Id: I415423e76dc855a7a72e1b68062b9d49433f3ed3
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-02-09 13:55:19 -08:00
qctecmdr
0b04217dd2 Merge "video: driver: Add support to update buffer flags" 2021-02-08 20:44:22 -08:00
Darshana Patil
9c98bcf398 video: driver: handle multiple read only buffers
when fw sends FBDs with read only flag for second time,
do not send vb2 buffer done on that buffer.

Change-Id: Iacf6fe87403664f2063b9d2e1859323506fa22a8
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-08 18:07:48 -08:00
Akshata Sahukar
508102a802 video: driver: Add support to update buffer flags
Add support to added buf flags in dequeued buffers based
on HFI_PROP_NO_OUTPUT and HFI_PROP_PICTURE_TYPE property
values received from video fw.

Change-Id: Icf285ab7feb88daf8991705964ed0d3214c99870
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-02-08 12:15:13 -08:00
Darshana Patil
d4a802bba5 video: driver: add default hdr and rap frame support
For decoder FW should not assume any default sequence header.
Decodering should start only after FW receives first sequence
header. Also, decoding starts only after discovery of random
access point frame. RAP frame means IDR for AVC, IDR/CRA/BLA
for HEVC, I frame for VP9 and MPEG2.

Change-Id: Ie12b8140f6b63e57c52a9c96cb1250f4958a42c6
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-04 14:15:58 -08:00
qctecmdr
16198e091f Merge "video: driver: Add support to debugfs" 2021-01-29 21:31:55 -08:00
Akshata Sahukar
4fe03d8ab1 video: driver: Add support to debugfs
Add debugfs support.

Change-Id: I78b66048cc7a0d9e74bf0e0b13b5ab15ec77c17b
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-01-29 15:37:44 -08:00
Maheshwar Ajja
2719badd2b video: driver: amend stop and last flag processing
- do not ignore last flag buffer in last flag not allowed
  case also
- ignore stop command if input port is not streaming
  instead of returning -EBUSY error.
- defer input port settings change in few states instead of
  ignoring it.

Change-Id: I705f0c8ae2da899a5d262f6246aa65de5591ac26
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-01-29 12:41:44 -08:00
Darshana Patil
b226d6a089 video: driver: fixes for nv12 format and dpb buffer
fixes for nv12 format and dpb buffers. modified
PIX_FMTS and corresponding driver color format
structure, therby fixing enum_fmts.

Change-Id: I955b76dd4938e96fe259311e107a0cdca39425bc
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-01-28 15:42:40 -08:00
Darshana Patil
24de4a8b91 video: driver: print error message from FW
print error message from FW during system error

Change-Id: Id27469d786b647d2b61e8090fa1f4337b8bc79f6
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-01-27 17:09:17 -08:00
Darshana Patil
d868af90db video: driver: remove cabac_session as PSC property
remove HFI_PROP_CABAC_SESSION as PSC property.

Change-Id: Ib123f5576763221775a225f882bcc91685d16411
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-01-26 12:06:51 -08:00
qctecmdr
11556af3f4 Merge "video: driver: kill session and core deinit support" 2021-01-19 16:19:03 -08:00
Maheshwar Ajja
39e830e7e3 video: driver: kill session and core deinit support
Add below support
- kill session in case of errors
- core deinit in case of timeout errors
- flush buffers in streamoff
- decide supported colorformats based on
  bitdepth and interlace info
- print level based logs

Change-Id: I45b9b0eae4220a818de23308da8802a9e12ae255
Signed-off-by: Maheshwar Ajja <majja@quicinc.com>
2021-01-19 12:03:09 -08:00
Akshata Sahukar
92f04d7446 video: driver: Phase 2: Add support for advance controls
Add support for some advance controls to set adjusted
client set values to video fw. Mentioned below
are the properties added.
 - HFI_PROP_LTR_COUNT
 - HFI_PROP_LTR_USE
 - HFI_PROP_LTR_MARK
 - HFI_PROP_IR_RANDOM_PERIOD
 - HFI_PROP_AUD
 - HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL
 - HFI_PROP_8X8_TRANSFORM
 - HFI_PROP_LTR_MARK_USE_DETAILS
 - HFI_PROP_DEBLOCKING_MODE

Change-Id: Id31e9774154556df7c66cda366913489815a2723
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-01-15 21:18:17 -08:00
Darshana Patil
45d8a8c80e video: driver: add decoder bitstream size overwrite support
add decoder bitsream size overwrite support

Change-Id: Id2968c3ac7d485109a47ff7a570a1c18d74dfe43
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-01-14 19:06:52 -08:00
Akshata Sahukar
0208a2b471 video: driver: Add support for VIDIOC_S_PARM and VIDIOC_G_PARM
Add support for S_PARM and G_PARM to enable client to
set and get frame rate and operating rate to driver. Also
includes some inst database grooming changes.

Change-Id: I5b39537662faa56effa0ac63acdfc100d83bf403
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-01-11 17:07:07 -08:00
Mihir Ganu
2126abf6c3 video: driver: Update metadata delivery and subscription
Enable delivery and subscriptions of various metadata based
on client settings. Also, skip instance state changes during
metadata port streamon/streamoff.

Change-Id: I063b562818c661bf1932c3362ecb709d7fe6bc20
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-01-08 16:48:31 -08:00
Darshana Patil
d98075c932 video: driver: fixes for PSC on latest fw
- post input psc, output psc and last flag
  events to response work handler
- fix issue with release and create internal
  buffers during input psc
- clear last flag after session continue

Change-Id: Ic0278a09a0f6ee8ffff8840a47cd80c046ecadc4
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-01-06 16:28:18 -08:00
Maheshwar Ajja
a96377f69b video: driver: amend colorformat mask values
Amend database colorformat mask values to avoid
enum / query colorformat failure for clients.

Change-Id: I2ef61129d0aac3da12b015af699eea9bdc73dc57
Signed-off-by: Maheshwar Ajja <majja@quicinc.com>
2021-01-04 15:33:36 -08:00
qctecmdr
2b70870e3a Merge "video: driver: update basic functionality controls" 2020-12-30 16:01:46 -08:00
qctecmdr
82e2148fb2 Merge "video: driver: add get and set selection support" 2020-12-30 15:41:47 -08:00
Akshata Sahukar
c19f4aec51 video: driver: update basic functionality controls
- update basic functionality controls with their parents
  and children list.
- deprecate MPEG2 related code.
- rename driver internal color formats.

Change-Id: I918d6fd238486098f10c5b9ce40c895bcd9468e5
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-12-30 13:06:03 -08:00
Maheshwar Ajja
58cd1120ee video: driver: add support for instance states
Add support for all the required instance states and
move the states accordingly.

Change-Id: Iac1046ab8c7a0116df6ed3069d566c7a1b65e61c
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-12-30 12:09:01 -08:00
Maheshwar Ajja
e48a514a89 video: driver: add get and set selection support
Add support to get and set selection to update
crop and compose values in driver.

Change-Id: I1f38ac6a4f3ceac64d08d66f30b422efd79959a9
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-12-28 08:49:45 -08:00
qctecmdr
f6936f65e8 Merge "video: driver: new workhandler for inst events" 2020-12-24 10:26:57 -08:00
Linux Build Service Account
f49fc1e66e Merge "video: driver: Enable encoder and decoder metadata" into video-kernel-waipio.lnx.1.0 2020-12-24 09:46:30 -08:00
Darshana Patil
cff8298acc video: driver: new workhandler for inst events
create a new work handler and post and handle
events like psc.
introduce reuse concept for internal buffers.

Change-Id: Ibeaabae1b5923681756e959389df00b287206fb6
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2020-12-23 19:06:39 -08:00
Mihir Ganu
ce89227af9 video: driver: Enable encoder and decoder metadata
-Add support to set metadata controls.
-Adjust set/get format for metadata ports.
-Add check when queuing metadata buffers.

Change-Id: I73725e26106621386dcb62cbf916186b9bc43995
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-12-23 09:55:59 -08:00
Linux Build Service Account
607d9c5d3f Merge "video: driver: Use dma-heap for non secure allocations" into video-kernel-waipio.lnx.1.0 2020-12-22 11:35:20 -08:00
Chinmay Sawarkar
4282d85d6f video: driver: Use dma-heap for non secure allocations
Non secure buffer allocation will use dma-heaps, while
secure allocations will continue using ion apis.

Change-Id: I7a7d77d197275814c8e6a9e1effe59ad3bd15224
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
2020-12-21 16:49:44 -08:00
Maheshwar Ajja
7509e9f16b video: driver: add power changes
Add or amend below functionalities
- scale clocks
- scale buses
- buffer counts
- buffer sizes

Change-Id: I3cddbb7112cd85a84cf86256134059f52b66a3af
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-12-21 15:31:54 -08:00
Akshata Sahukar
38b9dd655f video: driver: enc fix to run sample HEVC NV12C testcase
Allocate ARP buffer in CB4 to avoid HW hang issue.
Add support to set HFI_PROP_RAW_RESOLUTION at enc INPUT port
and did necessary changes to set HFI_PROP_CROP_OFFSETS at
OUTPUT port only for encoder. Also added support to set
missing basic control properties to video firmware.

Change-Id: If5bc2940d37ac20c1889cd4de466be09f1e1f28b
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-12-18 19:20:27 -08:00
Darshana Patil
a2f47ddf00 video: driver: split ipsc and opsc subscription
Set ipsc subscribe properties once during start input
and opsc subscribe once during start output. Fetch all
property values from ipsc and set the same values to
output port.
added codec config control support.

Change-Id: I3683becdb62096ee4dbed36181a2dc9876c53724
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2020-12-17 20:57:32 -08:00
Maheshwar Ajja
55ab2680d7 video: driver: handle dequeued buffers at once
Firmware returns meta buffer after actual buffer but
client needs meta buffer before actual buffer. Handle
the case using MSM_VIDC_ATTR_DEQUEUED flag.

Change-Id: I99048a2f110a1b14bc4bb140b6211afa340c9f38
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-12-11 16:31:47 -08:00
Akshata Sahukar
bdc2de6c93 video: driver: fixes to get enc start/stop working
below are the fixes added to get enc start/stop working
along with setting default values to firmware for basic
functionality controls.
  - Create and queue COMV and NON COMV internal buffers
  - Use HFI_PAYLOAD_64_PACKED as payload_info type instead
    of HFI_PAYLOAD_32_PACKED HFI_PROP_CROP_OFFSETS
  - Introduce new control port specifier flags in instance
    database to help set correct port to controls while
    packetization
  - Add support to map basic functionality controls
    v4l2 enum values to hfi enum values
  - Enable static adjust and set controls support

Change-Id: Idc0dc3e3d07d8f6349c74136327a45d77ced1035
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-12-09 16:21:34 -08:00
Akshata Sahukar
e970285cda video: driver: driver fixes required for latest firmware
Update debug packet structure to use waipio related debug
packet structure. Also add HFI_INFORMATION_END cmd
packets handling in reverse thread.

Change-Id: Idbd421d8ada0e8c9d33df54e6f3708b1079c8b47
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-12-08 17:06:46 -08:00
Darshana Patil
3858225faf driver: video: handle input port settings change
add support for input port settings change raised
by fw. update driver subscribed port settings
properties with instance. Raise event to client.
Release, get, create and queue input internal buffers.
Send resume commond to fw on input port.
Add support to destroy internal buffers.

Change-Id: Ic979cf2d0c7298b8083347173a973d553ed52af8
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2020-11-10 17:46:50 -08:00
Darshana Patil
9b4556df59 driver: video: port settings changes
updated hfi command, property header files.
deleted hfi definition header file.
added new input and output properties for decoder.
added profile, level and tier properties as part of
port settings subscription.

Change-Id: I072d0bb56183950920975950b3873003218d526e
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2020-11-02 14:23:16 -08:00
Akshata Sahukar
10e2017aa8 video: driver: update instance database with controls
Update instance database with v4l2 controls.

Change-Id: I0715edfcbf46a82c8e2f67ec298185e2cf4eb5d0
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-11-02 14:22:45 -08:00
Akshata Sahukar
9476ecc5fe video: driver: Add support to enc start/stop streaming
Add support to encoder start and stop streaming sequence.

Change-Id: Ie4f124af212ed030178d0e2fe5af3d6f9f639aa0
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-11-02 14:18:54 -08:00
Akshata Sahukar
2bbf35063f video: driver: fixes for streamoff/streamon
Changes to fix streamon/streamoff functionality.

Change-Id: Ibefa04c5812e0f5a42c578e72eea7650e37c18b0
Signed-off-by: Akshata Sahukar <asahukar@quicinc.com>
2020-11-02 11:54:01 -08:00
Maheshwar Ajja
78857beace video: driver: add buffer handling support
- Add queue buffer support
- Add dequeue buffer support
- Use multiple plane buffers instead of single plane.

Change-Id: I911784a1fa4b8a4b5d3fd35049379ea35d4d52b0
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-11-02 10:35:16 -08:00
Maheshwar Ajja
ec2f06a4ba video: driver: add queue buffer support
Add queue buffer support for sending buffers to
firmware.

Change-Id: Ie573c10a9b2f32a3eb202f97227b5e7edea26705
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-09-30 14:09:17 -07:00
Akshata Sahukar
dc3df521d4 driver: vidc: add support to s_ctrl
Add support to s_ctrl base skeleton.

Change-Id: I842035b3bb296094f1491148f93233688f35ea14
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-09-30 14:08:56 -07:00
Maheshwar Ajja
b5c03abc93 video: driver: add decoder controls
Add decoder controls and subscribe parameters

Change-Id: Ib4157b7f1dc8ce3c0b49f6bf7f6586883bf3b547
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-09-30 14:08:41 -07:00
Darshana Patil
9a854613cd msm: vidc: response handling
add response handling for commands, properties,
system and session errors.

Change-Id: I87a8cba136979d425d978dfe55317a3deb081c53
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2020-09-30 14:08:32 -07:00
Akshata Sahukar
6246ad4ce9 driver: vidc: add support for control initialization
Add support for control initialization and set control
implementation. Modified hfi_create_header() and
hfi_create_packet() to handle offset and num_packets
within in the function itself.

Change-Id: If8560be8a884c5df2fcc91f75be90311f1003a41
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-09-30 14:08:07 -07:00