Commit Graph

858 Commits

Author SHA1 Message Date
qctecmdr
ced61b7249 Merge "video: driver: Add support to deliver HFI_PROP_BUFFER_TAG via FTB" 2021-03-31 21:14:15 -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
Maheshwar Ajja
10ac73594f video: driver: skip zero length internal buffers allocation
Few internal buffers size can be zero based on configuration
(such as BIN buffers size is zero for interlace bitstream)
and hence skip allocation instead of returning error.

Change-Id: Id157115d8d6eb3f64154f3b18ec3843f289164ef
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-03-31 18:35:46 -07:00
qctecmdr
bc24301695 Merge "video: driver: access buffers list under lock only" 2021-03-30 18:41:03 -07:00
Maheshwar Ajja
e1af4fd098 video: driver: access buffers list under lock only
Do not access buffers list of an instance without
acquiring its instance lock in msm_vidc_set_clocks()
and msm_vidc_set_buses().

Change-Id: Ic7e8e15eaddca3b77bd4eccc6b728de20d3bcc78
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-03-30 16:44:03 -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
Dikshita Agarwal
f3298d2fe6 video: driver: use module_param for debug logs
Introduce module_param to enable debug logs.

For general debug, use below commad:
echo 0x103f101f > /sys/module/msm_video/parameters/msm_vidc_debug

To further print bus-related logs, use below command:
echo 0x103f103f > /sys/module/msm_video/parameters/msm_vidc_debug

Change-Id: Iab735d3e7157cd78a8e5d99c4cdbb290fb36421a
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-03-30 11:37:21 -07:00
qctecmdr
57648d98ff Merge "video: driver: Enable Subsystem Restart (SSR) testing" 2021-03-29 11:26:15 -07:00
Mihir Ganu
113c10c489 video: driver: Enable Subsystem Restart (SSR) testing
Enable Subsystem Restart test support.
Clients can trigger SSR through debugfs as follows:

echo <trigger_val> > /d/msm_vidc/core/trigger_ssr

u64 trigger_val provides:
  /* <test_addr><sub_client_id><ssr_type>
   * ssr_type: 0-3 bits
   * sub_client_id: 4-7 bits
   * reserved: 8-31 bits
   * test_addr: 32-63 bits */

Change-Id: If23fce3084de00461f1e5cc57884e10d15ad66a9
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-03-29 10:21:27 -07:00
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
qctecmdr
c04cf38091 Merge "video: driver: Add support to advanced bitrate ctrls" 2021-03-26 13:38:24 -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
Govindaraj Rajagopal
1524ddc445 video: driver: remove smmu_fault_work_handler
Remove separate fault_work_handler and print all needed
debug info as part of smmu_fault_handler callback itself,
to avoid race between fault handler invocation and core
deinit sequence.

Change-Id: Ib47e3d457a5a3e33497c71d5920382cb43baed79
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-03-26 16:37:52 +05:30
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
9982dd759c Merge "msm: vidc: fix bus undervoting issues" 2021-03-25 11:28:06 -07:00
qctecmdr
2bf32ad110 Merge "video: driver: add support to print noc error log registers" 2021-03-25 11:28:06 -07:00
Qiwei Liu
2abe166e6b msm: vidc: fix bus undervoting issues
Fix bus undervoting when turbo mode enabled.
Remove kbps_to_icc conversion as the calculated
bandwidth is already kBps.
Fix log printing for bandwidth unit.

Change-Id: I18a384f6d2f8914839af3eba84fd92953db3986c
Signed-off-by: Qiwei Liu <qiweil@codeaurora.org>
2021-03-25 11:01:25 -07:00
qctecmdr
c2003a1836 Merge "video: driver: remove release of dpb buffers" 2021-03-25 10:41:25 -07:00
Govindaraj Rajagopal
a7bdc410ef video: driver: add support to print noc error log registers
Added support to print noc error log registers at below places.

- smmu_fault_handler path
- handle_system_error path.

Change-Id: I9e195bd82a2058f533df8713368e61f57b537b87
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-03-25 16:10:49 +05:30
Darshana Patil
74b6d67205 video: driver: remove release of dpb buffers
remove release of dpb buffers as part of start
of output port.
handle watchdog interrupt incase of page fault

Change-Id: Idaccbcaa92d4835dea2da3d8b6f645114baa338a
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-03-24 17:58:21 -07:00
Govindaraj Rajagopal
2480013ad9 video: driver: add 512 alignment support for image session
Added 512 alignment support for image encode session.

- 8bit(NV12):
	- stride: ALIGN(width, 512)
	- scanline: ALIGN(height, 512)
	- buffer_size: yuv_size
- 10bit(P010):
	- stride: 2 * ALIGN(width, 512)
	- scanline: ALIGN(height, 512)
	- buffer_size: 2 * yuv_size.

Change-Id: Ie9b71a7f85435ccbe0428c4f98d537c8c677251b
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-03-24 20:05:28 +05:30
Sebastian Dang
fb6421e3e9 video: driver: Add mmrm api
Add mmrm apis to driver.
Replace clk_set_rate with mmrm client set value.
Scale branch clock values.

Change-Id: I8ea35b668e4c7d6157c9c4f7120e6a4237cf65de
Signed-off-by: Sebastian Dang <sebastiandang@codeaurora.org>
2021-03-23 22:55:41 -07:00
qctecmdr
c07fa5dd60 Merge "video: driver: add RGBA format support" 2021-03-23 13:37:09 -07:00
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
qctecmdr
e9e2d38148 Merge "video: driver: fix colorspace subscribe params initialization" 2021-03-19 19:33:03 -07:00
qctecmdr
b487d2916d Merge "video: driver: add qti dma-mapping header" 2021-03-19 18:48:11 -07:00
qctecmdr
0cc7514cba Merge "video: driver: add resume before unload firmware" 2021-03-19 18:02:24 -07:00
Akshata Sahukar
7a9d3462dd video: driver: fix colorspace subscribe params initialization
Initialize subscribe params for colorspace using OUTPUT
port params and use right mapper function

Change-Id: Ie6be50c1de20e351bad0fc4b015bcc4d72d1711b
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-03-19 17:32:12 -07:00
Maheshwar Ajja
007b8136fb video: driver: add qti dma-mapping header
Use qti dma mapping header file to use qti
specific dma attributes.

Change-Id: If755c0df22a59af764d2b55a236dfe18bc265f54
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-03-19 17:15:22 -07:00
Maheshwar Ajja
47c0c2603d video: driver: add resume before unload firmware
Add resume function call to power on the device before
unloading the firmware.

Change-Id: Ic2e4e74d01f9e5e61353a0ff07955ebd1358efc4
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-03-19 13:50:43 -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
Darshana Patil
ca83b4c74c video: driver: fix driver tip compilation
add braces to avoid dangling else.

Change-Id: I910112cf67a8d3f9ac05e17dbbf3a9f6865e2433
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-03-18 14:14:16 -07:00
Manikanta Kanamarlapudi
4bb7345607 video: driver: Adjust input meta buffer queue size
Adjust input meta buffer queue size as per the
super frame count.

Change-Id: Ie1fc10bd13b0daa09b171fb2532beb1f22d93811
2021-03-18 08:59:24 -07:00
qctecmdr
3efbfcc1a3 Merge "video: format: Add bounds check" 2021-03-17 19:47:09 -07:00
qctecmdr
06d10fa3ce Merge "video: driver: Align buffer macros file with hfi file CI: 29354708" 2021-03-17 18:32:19 -07:00
Elliot Berman
1147530e8c video: format: Add bounds check
Add bounds check on fmtdesc index
to prevent out-of-bounds array access.

Change-Id: I52873426714c8a15c0fe7b0971fe5737a549c691
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
2021-03-17 14:43:00 -07:00
Akshata Sahukar
479023c98c video: driver: Align buffer macros file with hfi file CI: 29354708
Align hfi_buffer_iris2.h file with hfi interface file
hfi_lx_mem_v1.0_doc.h.

Change-Id: Ie3811f58a94798d135ccfa1cb15d24900c2629d3
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-03-17 11:09:39 -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
qctecmdr
d51e886a52 Merge "video: driver: modify s_fmt for decoder" 2021-03-16 18:39:05 -07:00
Darshana Patil
b3ddb4f102 video: driver: modify s_fmt for decoder
read input width and height and update
output resolution based on client set
color format.

Change-Id: I5605eb875ca679c671d083ca691b046769279ce5
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-03-15 17:16:08 -07:00
Govindaraj Rajagopal
f4045ecbd6 video: driver: enable image encode and decode support
Added change to enable image encode and decode support.

Decoder:
    - codec: hevc
    - input buffer size: yuv size
    - run as turbo session
    - all intra session
    - disable dcvs & batching
    - ignore admission control(skip mbps, mbpf check)

Encoder:
    - codec: hevc
    - rc mode: CQ
    - profile: MainStillPic
    - all intra session
    - output buffer size: 2 * yuv size
    - output dimension: 512 x 512
    - disable dcvs & batching
    - ignore admission control(skip mbps, mbpf check)
    - skip scaling check
    - hfi: set grid enable & disable time_delta based rc.

Change-Id: I0af47de1406a53d8d8bf1969a65b3a390b0aacb5
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-03-13 18:44:11 +05:30
qctecmdr
0cdf5e607e Merge "video: driver: add picture type for decoder" 2021-03-10 19:16:33 -08:00
Darshana Patil
d102315942 video: driver: add picture type for decoder
subscribe for picture type property on output
port for decoder.

Change-Id: I4354f47777ca51a257f8ab85e9cb85faddad0099
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-03-10 16:58:40 -08:00
Mihir Ganu
ccb6da7567 video: driver: Add support for non-secure pix context bank
- Add support for a new non-secure pix context bank.
- Remove usage of deprecated 'buffer-types' in context banks.

Change-Id: I3a21eb8ce1d9aff277568d54aadb54193ad0ce75
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-03-10 11:18:12 -08:00
Darshana Patil
03bda80d9e video: driver: add release done flag support
update hfi command header file to include
release done flag and related hfi buffer flag
changes. add functionality to release and
unmap buffer if this flag is sent by fw.

Change-Id: I03fdd7776fcd6ac5e8a147c7dff2dfb6a15250e9
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-03-09 18:38:01 -08:00
Govindaraj Rajagopal
6d97dd3795 video: driver: refine queue work functionality
[1] remove unwanted switch cases to reduce code complexity
[2] refine queue_response_work functionality.

Change-Id: I91aabb2eb4c64caea09a26895358544972a7d427
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-03-09 23:41:35 +05:30