Commit Graph

109 Commits

Author SHA1 Message Date
qctecmdr
337953d000 Merge "video: driver: Add missing H264 levels" 2021-05-26 19:50:13 -07:00
Akshata Sahukar
6e9150c232 video: driver: Enable low latency mode for CBR rc type
Enable low latency mode for CBR rc type.

Change-Id: I80230e5d2acab94820b1401ffa6e6fe372398397
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-26 13:42:17 -07:00
Akshata Sahukar
b35579ad54 video: driver: always caliberate gop size
[1] Irrespective of layer encoding type P or B, always
    caliberate gop size to have gop size multiple
    of sub gop size.
[2] Do not cap enh layer count value to max 1 value when
    cvp is disabled.

Change-Id: I10f602202ce007707c0fee76d9f847db70798754
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-26 11:47:40 -07:00
Mihir Ganu
9c7b878359 video: driver: Add missing H264 levels
Add the missing H264 levels supported currently.

Change-Id: Iea071aef46ea6be6f6f10c3a799b7f8aba26c08f
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-05-26 11:31:10 -07:00
Akshata Sahukar
079b161c66 video: driver: modify VBV delay min value to 200
min VBV delay value supported is changed from 100 to 200
in firmware. Pick up the change in driver.

Change-Id: I200bdd4c35aa463d64baee0fa2ca330dc1eb0ad2
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-25 19:02:29 -07:00
qctecmdr
a4038a8565 Merge "video: driver: fix core lock acquire and release sequence" 2021-05-20 18:12:48 -07:00
Govindaraj Rajagopal
7f084e9a18 video: driver: add additional profile support for image session
Added main & main10 profile support for HEIC image session.

Change-Id: I738c6e55c361bdccac7c4d1165abcf9363d80eb7
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-20 16:27:15 +05:30
Govindaraj Rajagopal
53578c8ec2 video: driver: fix core lock acquire and release sequence
[1] Added return type to strict_check() api and bail out if
    strict_check fails.
[2] Fix all the failures with #1.
[3] Added WARN_ON() for strict_check failure.
[4] Ensured &core->lock is acquired before calling below api's.
    - __write_register
    - __write_register_masked
    - __iface_cmdq_write_relaxed
    - __suspend
    - __resume
    - venus_hfi_core_init
    - venus_hfi_core_deinit.

Change-Id: I7f0a3ca6c2aec2758220c90bff9260367f10820b
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-20 14:34:11 +05:30
Akshata Sahukar
945883602d video: driver: add support to set csc coefficients
Add support to honor client enablement of csc custom
matrix and set csc coeff to video firmware.

Change-Id: I14d702eb7033541aa439bebe11df7fc4aa49ffdb
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-19 17:17:01 -07:00
qctecmdr
cdda26a16e Merge "video: driver: define hfi setter for configuring pipe" 2021-05-14 16:18:08 -07:00
Darshana Patil
e7c7a2fb02 video-driver: add decode QP metadata support
add v4l2 extension and necassary support for
decoder QP metadata.

Change-Id: I364ef9b7b3a63bef0a59c955018bc8456f12d03f
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-05-14 13:43:16 -07:00
Vikash Garodia
90d7de5658 video: driver: define hfi setter for configuring pipe
Deprecate custom pipe setting and use the hfi setter
to configure it alongwith other configurations.

Change-Id: Iffbd25df89f43cf77c1fa85ffa97601a31998410
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
2021-05-14 23:48:15 +05:30
Vikash Garodia
75ecec1bb5 video: driver: Add support dynamic low latency for decoder
Latency property is set to firmware during streamon output port,
if set as part of initial configuration by client.
During runtime, the property is set as and when configured by
client.

1. Make the latency property dynamic for decoder.
2. For encoder, the same gets set to firmware with regular
   v4l2 set properties.
3. For decoder, set the property explicitly during streamon
   output port.

Change-Id: I35990614b95e57f113ddacfc2272cad6ae0dde82
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
2021-05-14 23:47:30 +05:30
Darshana Patil
af0c91ca4c video-driver: update min resolution for secure session
update minimum resolution for secure decode sessions as
96x96.

Change-Id: I7a0bee2330a235498179f490a9343ff1fa655737
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-05-13 17:05:17 -07:00
Akshata Sahukar
967d049715 video: driver: Support max 1 enh HB layer when cvp is disabled
Allow max 1 enh layers when cvp metadata is disabled for HB
layer type.

Change-Id: If6e33462e8be36a4ca1fb1f253875678b697c05a
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-11 16:47:14 -07:00
Govindaraj Rajagopal
0995dfc215 video: driver: add frame_skip mode control setting for heic
Added V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE support for
heic codec type.

Change-Id: I4eaca697729c45ebf72067a9d34a7dc8d607f0fa
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-07 14:21:48 +05:30
Govindaraj Rajagopal
f05007686d video: driver: add support for main10StillPic profile
Added support for V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10_STILL_PICTURE.
It willbe used in 10bit image encoding usecases.

Change-Id: I14877547f1f4792eefb0ea6bcecf2643627c125a
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-05-06 22:09:25 +05:30
Govindaraj Rajagopal
03db3bfd7f video: driver: add check_session_supported for session admission
- check total mbps is within range(including current session)
- check total mbpf is within range(including current session)
- image session:
    - decode: Only non-secure allowed
    - encode: check basic image_encode requirements
        - wxh should be within allowed cap range
        - only linear fmt
        - input & output is 512 aligned
        - only CQ bitrate mode
        - GOP size should be zero
        - b-frame count is zero
        - timedelta based RC disabled
        - still-pic profile for 8bit and main10 for 10bit
- interlace resolution should be less than (1920*1088)/256.
- reject odd input or output resolution
- output resolution is with in inst->cap [min, max] range.
- current session mbpf is less than inst->cap[MBPF].max

Change-Id: I81c46950a8ef5b64bf5ac94564613998b1079b52
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-05-04 14:21:57 -07:00
Akshata Sahukar
78bd0f54eb video: driver: fix layer bitrate dynamic setting
Fix the issue where bitrate cap database value is
incorrectly updated to dynamically client set layer bitrate
value when layer bitarte is not set.

Change-Id: I0f66c056c8ea0d053f8347dd003b61193258687e
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-05-03 19:12:33 -07:00
qctecmdr
401b0010e7 Merge "video: driver: tune image_encode_session settings" 2021-04-30 12:22:31 -07:00
Govindaraj Rajagopal
35b7d34429 video: driver: tune image_encode_session settings
[1] Increase min_output buffer_count from 1 to 4.
[2] Enable FRAME_RC_ENABLE cap for image session.
    default - RC_CQ mode.

Change-Id: Iad3166fe37733e9d9ccde1dca29af8c7b825cc98
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-04-30 22:13:45 +05:30
Akshata Sahukar
1c5f23e13b video: driver: Add support to blur property
[1] Add support to adjust and set blur type and blur
    resolution.
[2] Modify flip to not allow dynamic flip enablement
    when external blur is enabled.

Change-Id: I730f452c143ba8c8e15402d1c1ec3a0617bd583c
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-28 16:29:12 -07:00
Akshata Sahukar
450a9e0e20 video: driver: Modify default values for VBV Delay and Peak Bitrate
Modify cap values for below properties:
[1] VBV Dealy: default as 300, min as 100, and max as 300
[2] Peak bitrate: default as avg bitrate set by client.

Change-Id: Ic9533e8a40e789128e5baa975bf1a0355e373e08
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-27 10:14:12 -07:00
Mihir Ganu
cf3fd457b3 video: driver: Enable flip and rotation
Enable encoder flip and rotation preprocessing features.

Change-Id: Icb0448c2d09fbe9504e3f58701cd2653dc4559b0
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-23 16:44:42 -07:00
Darshana Patil
2c0cab5146 video: driver: add ROI metadata support
add extra size for input meta buffer
when ROI metadata is enabled.
add dependency of rate control and
color format.

Change-Id: Icefd3f9e319d596f88090cee331417c0b2946180
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-04-15 21:50:00 -07:00
Govindaraj Rajagopal
b1fbc46396 video: driver: select target and vpu variant based on dtsi
- enable conditional compilation based on defconfig
- compile only needed files based target & vpu variant
- enabled stubs to avoid compilation issues, for all
  target variant and vpu types
- add support for qcv(same lunch combo) for different
  PT & VT chipsets.

Change-Id: Ic446349fd1532885d7a2e94895d807c62f1ab6e4
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-04-15 20:14:04 +05:30
Akshata Sahukar
5a2b2ee399 video: driver: Add support to adjust slice mode
Add support to adjust slice mode.

Change-Id: Id09e951b3085c55cc5bc6b15a2ce002645923435
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-13 17:12:27 -07:00
Darshana Patil
23605ffffb video: driver: handle dpb list property
- subscribe for dpb list property in combined
 mode on output port.
- copy dpb list property payload from fw to
 static array.
- using this array, mark read_only list buffers
 as non-reference if not part of array. if count
 of such buffers is greater than output min count,
 send to fw for release.
- once fw returns them, destroy these buffers.
- unmap stale output mappings due to lazy unmap feature.
- unify release internal functions into common function.

Change-Id: Id32f04efb19eecaff453cc4383ee8296a0246263
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-04-09 18:21:34 -07:00
Govindaraj Rajagopal
f6642e3e67 video: driver: add support to register custom handler.
Need to increase debug timeout incase more debug logs were
enabled. This is to avoid sync cmd timeout.

module_param_cb supports to register custom set/get callbacks.
So using this feature to increase various timeout values,
incase more logs were enabled.

Change-Id: I194c077c2ba00af2403d487a3dcfbb48f119b478
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-04-09 10:46:22 +05:30
Akshata Sahukar
1b42ed0a67 video: driver: adjust/set mark/use ltr dynamically only
Avoid adjusting, sanitizing, and setting mark and use ltr
controls to fw for input port static case.

Change-Id: I8ac7fd9537ff0c5ddce0ff0f4d0337cb19dd83d2
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-08 13:33:02 -07:00
Akshata Sahukar
7c612dd033 video: driver: Deprecate private ctrls and use upstream ctrls
Remove private ctrl definitions, and use upstream ctrls
in source code.

Change-Id: Ib12cae5b78be69936bf0f97ca09483f5baa60350
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-08 12:10:39 -07:00
Manikanta Kanamarlapudi
d77900d9ab video: Fix QP issues
For max-qp, set_min_qp is called,
correct the same.

Change-Id: I2ff7d6557a033fa45343b131fd68cae1eaf6d796
Signed-off-by: Manikanta Kanamarlapudi <kmanikan@codeaurora.org>
2021-04-07 13:12:04 -07:00
Akshata Sahukar
712640a1a8 video: driver: Modify decode order and some misc changes
- Account for V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY
  ctrl value to decide HFI_PROP_DECODE_ORDER_OUTPUT property value.
- Set encoder run time properties on raw port
- Some logging changes.

Change-Id: I5eef81b484e81b69031854a3a8665de4be7f98f9
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-04-02 14:24:46 -07:00
Akshata Sahukar
89e7e48231 video: driver: Add support to deliver HFI_PROP_BUFFER_TAG via FTB
Add support to deliver HFI_PROP_BUFFER_TAG via FTB metadata buffer
to receive HFI_PROP_DPB_TAG_LIST from fw via FBD metadata buffer.

Change-Id: Id9eeee26135379975f55923505d9c91905fa0b9e
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-03-31 19:09:10 -07:00
Akshata Sahukar
925c0b1a58 video: driver: Allow HB layer encoding type
- Allow HB layer encoding type
- fix dynamic setting of I Frame QP and Peak Bitrate.

This reverts commit 4ef2b8899d.

Change-Id: I4d63dd424c68d388709684c649ef492ce2489caa
2021-03-30 16:15:14 -07:00
Govindaraj Rajagopal
78b1491ee1 video: driver: enable dcvs - power feature
Enable/disable dcvs based on below settings.

- core supports dcvs
- core_clock_voting is set: disable
- encode_batching(superframe): disable
- decode_batching: disable
- thumbnail session: disable
- image session: disable

Handle below items as part of dcvs enablement.

- skip clock scaling for inactive session.
- reset dcvs flags to 0, for encoder at dcvs_window.

Change-Id: I84e6710946bca3fa8c83178f29745d4b9afd4697
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-03-31 02:02:36 +05:30
Vikash Garodia
0017afac21 video: driver: Add handling for session priority
Following changes are added with this:
1. Handle and adjust session priority.
2. Session addmission based on priority.
3. Power (clock and bus) scaling based on priority.
4. Handle s_parm influence on priority.

Change-Id: I12dec5fb03d733f07b0b0a24b4d74d1ccd4bf791
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
2021-03-29 22:47:28 +05:30
qctecmdr
ac3350d805 Merge "video: driver: Use upstream ctrls" 2021-03-26 19:39:14 -07:00
Akshata Sahukar
47847faa11 video: driver: Use upstream ctrls
Remove usage of private ctrls and use upstream ctrls.

Change-Id: I137855872030822f0d6b2cd59babca3f0cc591d4
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-03-26 12:40:58 -07:00
Akshata Sahukar
14efc2a0bc video: driver: Add support to advanced bitrate ctrls
Add support to below properties:
- HFI_PROP_BITRATE_BOOST
- HFI_PROP_CONTENT_ADAPTIVE_CODING
- HFI_PROP_MAINTAIN_MIN_QUALITY
- HFI_PROP_VBV_DELAY
- HFI_PROP_TOTAL_PEAK_BITRATE
- HFI_PROP_BITRATE_LAYERx.

Change-Id: I1072f97c7c202c7f4fc38c26e0ab9274ae06fce0
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-03-25 14:50:20 -07:00
qctecmdr
a1c98e0e2f Merge "video: driver: add heic 10bit image encoding support" 2021-03-23 16:37:34 -07:00
qctecmdr
c07fa5dd60 Merge "video: driver: add RGBA format support" 2021-03-23 13:37:09 -07:00
Govindaraj Rajagopal
c148cf0bb5 video: driver: add heic 10bit image encoding support
- fix 10bit internal buffer allocation handling
- profile: MAIN_10
- pixfmt: linear 10bit(MSM_VIDC_FMT_P010).

Change-Id: I49ffd221927e5eb59915405ff62c038ae05b84f3
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-03-23 14:00:00 +05:30
Chinmay Sawarkar
7b9c3cb048 video: driver: Enable encoder input CR stats
Enable encoder input Compression Ratio (CR) stats.
Input CR stats are provided by clients for each input buffer
and used in bandwidth calculations.

Change-Id: Ibd910118837148b0b9dcc288069237f9a2d8f225
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-03-22 20:09:45 -07:00
Darshana Patil
48912aee84 video: driver: add RGBA format support
add RGBA and RGBA_UBWC color format support
for encoder.

Change-Id: I3e179ae9769d851afc5a6f11e1afb14d96e92073
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-03-22 18:12:16 -07:00
Govindaraj Rajagopal
d238d03c1b video: driver: refine image session handling
Amended below logics for image session.

- set constant quality
- set tier: V4L2_MPEG_VIDEO_HEVC_TIER_MAIN
- frame_rate: 1
- enable subframe metadata
- stage:
	- image encode: 2 stage
	- image decode: 1 stage
- pipe: 4(work_route)
- power mode: max_quality.

Change-Id: I67acd5284910e7cbe26446b5dfc526d002b98981
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-03-22 12:26:54 +05:30
Akshata Sahukar
4ef2b8899d video: driver: Block HB layer encoding type
Allow only HP layer encoding type until fw fatal error
is resolved

Change-Id: Id35e78bbb5feaab0c9d4ad94c94d5b7e47733b69
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-03-19 14:40:51 -07:00
Akshata Sahukar
98e799da29 video: driver: Add support to handle GOP and its dependencies
Add support to below mentioned properties:
- HFI_PROP_LAYER_ENCODING_TYPE
- HFI_PROP_LAYER_COUNT
- HFI_PROP_MAX_GOP_FRAMES
- HFI_PROP_MAX_B_FRAMES.

Change-Id: I3be975a48dc668d0ec83f6ff13837488fc570b78
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-03-19 12:33:27 -07:00
Mihir Ganu
fd68015bc7 video: driver: Allow dynamic setting for CODEC_CONFIG
Set dynamic flag for CODEC_CONFIG cap to allow dynamic setting.

Change-Id: Ie49b60508b0633b34b38e4c17b8e214e7e4159a5
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-03-18 09:41:52 -07:00
Darshana Patil
3dc0696b1d video: driver: enable thumbnail mode
enable thumbnail mode depending upon
the thumbnail capability in database.

Change-Id: I2f3a36ae0ee785e73a009cfc385290c983a43e29
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-03-16 22:25:02 -07:00