Commit Graph

274 Commits

Author SHA1 Message Date
Mihir Ganu
2ee4d803f6 msm: vidc: Update Lahaina platform data
Add Lahaina-specific platform data needed for driver probe
and remove data for older platforms.

Change-Id: I35e7711fd024467f0b6ce40aabdaf71f0c523e9a
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2019-11-08 14:46:03 -08:00
qctecmdr
2b03e2e748 Merge "msm: vidc: Migrate to icc API to set bus bandwidth" 2019-11-07 17:14:53 -08:00
Mihir Ganu
0a49ec7e24 msm: vidc: Initialize device_caps before device registration
Initialize device_caps with device capabilities before video
devices are registered, as required by V4L2 framework.

Change-Id: I9fc037ae65d352b15d78eee979df30a24137dea8
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2019-11-01 14:59:41 -07:00
Mihir Ganu
3ef057136a msm: vidc: Migrate to icc API to set bus bandwidth
- msm-bus API is deprecated in favor of upstream interconnect API
- Migrate all msm-bus functions to interconnect (icc) API
- Remove msm-bus sub-device probing and parse interconnect fields from
  msm-vidc device tree

Change-Id: Ibf08c52e001c5fde7e30d2aedbd3456a270f5b6c
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2019-10-30 10:55:45 -07:00
Karthikeyan Periasamy
2c2d48f5b6 msm: vidc: fix the compilation in lahaina
- Made the changes in video module to compile successfully.
 - Removed cvp and v4l2 private files.

Change-Id: Iaf5f29d6042a87d5b96b1fa4abb985ee3e592f0e
Signed-off-by: Karthikeyan Periasamy <kperiasa@codeaurora.org>
2019-10-25 12:35:37 -07:00
Maheshwar Ajja
17ff6ba65a msm: vidc: add userspace interface header files
Add userspace interface header files for userspace
to access video driver functionalities.

Change-Id: I1919f9025e87f15da06a0428d95077372aec603e
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2019-10-25 12:33:40 -07:00
Karthikeyan Periasamy
09e8935f10 msm: vidc: Lahaina bringup - Stage I
Bring all the missing changes from Kona
aa56c67 msm: vidc: Set fps to 1 for image encode sessions
bc60bd6 msm: vidc: Add support of level 6.1 to VP9 decoder
349732b msm: vidc: update LTRUse maximum limit
9d3a015 msm-vidc: calculate buffer size based on 512x512 for heic
46e2095 msm: vidc: Update Kona Profile Level Capabilities
ad8cd1c msm: vidc: delete v4l2 controls after queue release
ea1efd0 msm: vidc: Initialize core ops for bengal VPU version
533aa1c msm: vidc: don't skip set ctrl for the same value
e52cd53 msm: vidc: use macro to get/set fields
92344f3 msm: vidc:  Add new hfi file for AR50 lite
1931ba3 msm: vidc: Update bitrate constraint check
733ea29 msm: vidc: Add bengal specific functions
81b07d4 msm: vidc: Update control capabilities at SESSION_INIT stage
f3e9363 msm: vidc: deprecate firmware buffer requirement property
557ca13 msm: vidc: Update VSP cycle count calculation
7ff089a msm: vidc: fix kw issues
b9733c7 msm: vidc: Add config files for bengal
1b0c12b msm: vidc: Allow all-intra encoding in CBR_CFR
3ca1cf0 msm: vidc: Add platform specific data
a16c617 msm_vidc: venc: update HEIF output buffer count
622514e msm: vidc: fix extradata none parsing issue
1f61e2c msm: vidc: Update mb/frame resolution to 4096x2304
16ffe6b msm: vidc: add dynamic support of frame quality
46f2efd msm-vidc: return unknown ctrl for internal cvp client
043315f msm: vidc: add support for dpb_buffer_count payload

Change-Id: Iee095078d8cd558ea030e65e8d1895b4c7d78948
Signed-off-by: Karthikeyan Periasamy <kperiasa@codeaurora.org>
2019-10-15 11:53:10 -07:00
qctecmdr
05586cb2b8 Merge "msm: vidc: Enable error recovery by default" 2019-09-05 18:22:38 -07:00
Shivendra Kakrania
530762b1be msm: vidc: Enable error recovery by default
Error recovery is enabled by default & it will get triggered
for all sys error reported by video firmware.

For debugging purpose it can be disabled as:
    1. disable error recovery for noc error:
       echo 1 > /d/msm_vidc/disable_err_recovery
    2. disable error recovery for non-noc error:
       echo 2 > /d/msm_vidc/disable_err_recovery
    3. disable error recovery for all cases
       echo 3 > /d/msm_vidc/disable_err_recovery

Change-Id: Ie260485842704d3e278ded8c6d1722bc19c80f6f
Signed-off-by: Shivendra Kakrania <shiven@codeaurora.org>
2019-09-05 15:02:50 -07:00
Govindaraj Rajagopal
bba6fe37af msm: vidc: print session specific logs based on logmask
print logs based on logmask set on debugfs entry
	(/d/msm_vidc/debug_level)
[1] 0xx -> print logs for all session type
[2] 1xx -> print only encoder logs
[3] 2xx -> print only decoder logs
[4] 4xx -> print only cvp logs

Change-Id: I8e01ee9c8b80a50b178ea87bf25d7ef25401f67a
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2019-09-05 11:39:30 +05:30
qctecmdr
cb5bcb74ad Merge "msm: vidc: Enable secure CVP" 2019-09-04 20:10:40 -07:00
qctecmdr
0ee36d3ba7 Merge "msm: vidc: Add support to CVP skip ratio" 2019-09-04 16:07:41 -07:00
Akshay Chandrashekhar Kalghatgi
f74ea0c9ef msm: vidc: Enable secure CVP
Enable external CVP processing on secure encoder.
Correct vidc-CVP external function names according to naming conventions.

Change-Id: I1b177ca28838f63faee474a82ba76e7655554989
Signed-off-by: Akshay Chandrashekhar Kalghatgi <akalghat@codeaurora.org>
2019-09-04 15:44:45 -07:00
Akshata Sahukar
6f422178aa msm: vidc: Add support to CVP skip ratio
Introduced CVP skip ratio property to indicate the number of
buffers skipped for CVP processing. This serves as a hint to Video
firmware to know the number of frames for which CVP metadata has to be
reused from earlier frame to which CVP metadata was sent

Change-Id: I58ad5daf9a9c6ae7a0aa48e3bd1d60e7dc9229e6
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2019-09-04 15:25:05 -07:00
qctecmdr
7103c35359 Merge "msm: vidc: Raise insufficient event for interlacing change" 2019-09-04 14:41:37 -07:00
Mihir Ganu
7960c3b3a9 msm: vidc: Raise insufficient event for interlacing change
Raise an insufficient event whenever there is a change reported
from interlace to progressive and vice versa so that driver can
set appropriate work/route mode.

CRs-Fixed: 2444064
Change-Id: Ic78867a2b51aa22de5dfeeb4b806014e2f0f23e6
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2019-09-04 11:23:08 -07:00
Govindaraj Rajagopal
2548b43adb msm: vidc: print session and codec type in dprintk
[1] Maintain log_ctxt cookie to track debug information.
[2] Print codec type and session type by default in logs.

Change-Id: I6c01f3238ba868fdc525f5c60f58545a07bdef3a
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2019-09-04 20:52:25 +05:30
Govindaraj Rajagopal
c705bf58ef msm: vidc: print session_id in logs
Print session_id details in all possible call flow paths.

Change-Id: I0c583dc99d4ebee7fbcb4e36d917ba9120fa670e
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2019-09-04 18:32:46 +05:30
qctecmdr
19cea22246 Merge "msm-vidc: add image encode capabilities for lito" 2019-09-03 01:27:31 -07:00
qctecmdr
e0f7d0bce7 Merge "msm: vidc: increase msm_vidc_hw_rsp_timeout to 1500" 2019-08-30 16:07:07 -07:00
Dikshita Agarwal
cb10315c3c msm-vidc: add image encode capabilities for lito
add image encode capabilities for lito.

Change-Id: Ic4fd706fc54c9e231cf6872e5478a0972ec78134
2019-08-29 11:55:05 +05:30
qctecmdr
810c1db795 Merge "msm: vidc: Fix to allocate right scratch1 buffer size" 2019-08-28 14:00:59 -07:00
Akshata Sahukar
72f29165b3 msm: vidc: Fix to allocate right scratch1 buffer size
Avoid allocating smaller encoder scratch1 buffer for Video
firmware when frame height is greater than frame width.

Change-Id: I663da164b3cbb945d7da2d6ab40199d8ef14d979
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2019-08-28 10:59:50 -07:00
Qiwei Liu
f9a35e6304 msm: vidc: remove redundant freq calculations
Remove freq list, which is unused in current dcvs design.
Remove unused dcvs load, load_low, load_norm, load_high,
as current dcvs design only use min_freq and dcvs_flags.

Change-Id: Ifbf251a9506286f2f34eca6eeb1af79bd07c0f43
Signed-off-by: Qiwei Liu <qiweil@codeaurora.org>
2019-08-28 06:01:30 -07:00
qctecmdr
75c4f9c1ef Merge "msm: vidc: Update CVP skip pattern logic" 2019-08-27 20:17:31 -07:00
qctecmdr
e554b07b4a Merge "msm: vidc: fix vp8 frame rate capabilities" 2019-08-27 13:09:18 -07:00
Darshana Patil
736bca1b48 msm: vidc: fix vp8 frame rate capabilities
Corrected VP8 frame rate capabilities for encoder
and decoder as per PRD.Added bframe ctrl capability
for VP8.Moved LTR count null check.

Signed-off-by: Darshana Patil <darshana@codeaurora.org>

Change-Id: I2111719e711d6bc67c2279d4c4fc6ef63215a5cb
2019-08-27 10:18:08 -07:00
qctecmdr
bbca9aa4f6 Merge "msm: vidc: Update video-CVP interaction call flow" 2019-08-26 22:07:04 -07:00
Akshata Sahukar
17ed11c5ea msm: vidc: Update CVP skip pattern logic
Update CVP metadata skip logic to send a frame for CVP
processing every time frame rate or operatimg rate changes
dynamically. This helps in handling skipping of CVP metadata
processing for a random number of frames whenever frame rate
or operating rate changes dynamically, and avoid sending
CVP metadata to video firmware for an unpredictable frame.

Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>

Change-Id: I049f0c0ade1700816203713cd82382c2a614f20a
2019-08-26 16:47:04 -07:00
Vikash Garodia
d168b1dab5 msm: vidc: Invalidate encoder output buffer cache
For encode usecase, video driver operates cache always on
the encoded data length rather than the buffer length.
This is an optimization and saves cache operation on unused
memory region.
VB index is used to identify a buffer given to client and fed
again to encoder. Based on that, the filled length of that
buffer is then operated for cache operations.
For certain usecases, it is difficult to identify the buffer
based on VB index. Hence keep a counter to track the max filled
length during the usecase and operate cache on that length

Change-Id: I62cfe876077786ec9d14f541a0080cd2fc124b01
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
2019-08-23 14:42:49 +05:30
qctecmdr
185da22f03 Merge "msm_vidc: vdec: add codec check for reconfig event" 2019-08-22 20:06:58 -07:00
qctecmdr
8c35bce4a2 Merge "msm_vidc: Skip mbpf check for image sessions" 2019-08-22 13:53:46 -07:00
qctecmdr
191e3fd62e Merge "msm: vidc: Set ETB extradata address to NULL during EOS" 2019-08-22 13:00:08 -07:00
qctecmdr
8dde95e9eb Merge "msm: vidc: Remove cluster controls" 2019-08-22 12:03:29 -07:00
Vikash Garodia
65106f1bc6 msm: vidc: Remove cluster controls
V4L controls are made to be part of a cluster when they
are interdependent. If any one control in that cluster
is updated, all the remaining controls get updated as well
with the current control value.
Existing video usecase does not require any v4l controls
to be clustered. Hence removing the cluster controls.

Change-Id: I98dfc4af5291837054a8a28b00942fea6866f0a9
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
2019-08-21 20:20:52 +05:30
Shi Zhongbo
040e0b96c7 msm_vidc: vdec: add codec check for reconfig event
Add codec check for bit depth or color space only reconfig
event. VP9 and HEVC have bit depth reconfig event while only
HEVC has color space reconfig event.

Change-Id: Ia6732e31a15957dc7116535131203a69fe19c987
Signed-off-by: Shi Zhongbo <zhongbos@codeaurora.org>
2019-08-21 10:24:37 +08:00
Akshay Chandrashekhar Kalghatgi
5becaa4682 msm: vidc: Update video-CVP interaction call flow
Update video-CVP interaction with new call flow sequence. Add session create
and session delete commands (reference gerrit#2756413). Remove CVP persist
buffer release command.

Change-Id: Ia3a9ad10e93e19a26f59d9abb7dcccd1605e1ff9
2019-08-20 19:22:36 -07:00
Amit Shekhar
b6d2a31088 msm_vidc: Skip mbpf check for image sessions
MBs per frame for HEIF encode can be pretty large for high resolution
images. Skip mbpf check for image sessions.

Change-Id: I993115743f4792377a3a008b341d4c8256b102b9
Signed-off-by: Amit Shekhar <ashekhar@codeaurora.org>
2019-08-20 18:22:31 -07:00
Govindaraj Rajagopal
4b98f5a1ae msm: vidc: optimize buffer tag allocation
- Possiblilty of performance hit due to memory
  alloc/free at frame level.
- Reuse same buffer_tag instead of reallocating.

Change-Id: Ifb8efc43907feea4d6da5e8a0bf0aeaa47c8e1d7
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2019-08-20 10:08:52 +05:30
Mihir Ganu
1dd6b69b53 msm: vidc: Set ETB extradata address to NULL during EOS
Firmware needs to access extradata buffer to find the size of extradata.
In secure sessions, assigning input buffer address to extradata address
causes fault since firmware does not have access to input adderss.
Extradata address and size in ETB must be set to zero for EOS cases
so that firmware skips accessing the extradata buffer.

CRs-Fixed: 2444064
Change-Id: Ia916d2f5f0500c85426fee3274f88fcf36103068
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2019-08-19 13:53:42 -07:00
qctecmdr
c8be54f0a9 Merge "msm: vidc: Add support to disable CVP usage" 2019-08-16 19:09:52 -07:00
qctecmdr
c2a859472e Merge "msm: vidc: Force venus to max if operating rate is INT_MAX" 2019-08-16 18:16:42 -07:00
Chinmay Sawarkar
8f3af55bc5 msm: vidc: Force venus to max if operating rate is INT_MAX
If client sets operating rate as INT_MAX, vote the highest
Venus clock and BW. This will allow operating the video session
at highest possible performance. DCVS & Batching is disabled.

CRs-Fixed: 2502809
Change-Id: I33e952f501a3ba6c1c8588ee319e10a586941d05
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
2019-08-16 17:53:07 -07:00
Akshata Sahukar
408a8050fb msm: vidc: Add support to disable CVP usage
Add support to disable overall CVP usage.

Change-Id: I82e7a3e6533008b29f0beafba61fa7b6906aab53
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2019-08-16 15:55:45 -07:00
Akshay Chandrashekhar Kalghatgi
b1e18454d0 msm: vidc: Check NAL stream format for secure session
In case of secure encoding, NAL length based NAL header not supported.
Only startcode based NAL header is supported.

Change-Id: I119ffa47a003006e5b0d3bf7fbb5eb547de00830
2019-08-16 11:17:45 -07:00
qctecmdr
305725a1a9 Merge "msm: vidc: optimize buffer alloc in bitrate check" 2019-08-16 00:02:33 -07:00
qctecmdr
f69cf0392b Merge "Revert "msm: vidc: Fix work mode for rate control CQ"" 2019-08-15 23:16:18 -07:00
qctecmdr
992618a0c1 Merge "msm: vidc: make venus_hfi_device as a static variable" 2019-08-15 22:07:32 -07:00
Qiwei Liu
d27e0f6115 msm: vidc: optimize buffer alloc in bitrate check
Avoid alloc/free buffer at frame level in window based
bitrate check, re-use existing nodes to reduce
CPU workload, especially for HFR video.

Change-Id: I8bbbbef5229af7e608d7da1dfa4f75aab3903649
Signed-off-by: Qiwei Liu <qiweil@codeaurora.org>
2019-08-15 21:55:34 +08:00
qctecmdr
953fe222c3 Merge "msm: vidc: update current value while updating the v4l controls" 2019-08-14 12:57:59 -07:00