Commit graph

409 commits

Author SHA1 Message Date
Chinmay Sawarkar
71bfe61fda msm: vidc: Initialize ubwc_stats_lock
Initialize ubwc_stats_lock before use and destroy it before
video instance is destroyed.

Change-Id: I4ecc02109d9d1c3f8b7cfe28c49b5467866b4d3e
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
2020-05-17 14:37:12 -07:00
Shi Zhongbo
c291a1bcb5 msm: venc: add bitrate boost mode
Add to enable bitrate boost mode when rate
control mode is VBR and CAC is enabled.
The default boost margin is 25. This value
can be config from 0 - 100 by the client.

Change-Id: I4c3d0ae557052d3e615aee4c74b52ce0596fcfcc
Signed-off-by: Shi Zhongbo <zhongbos@codeaurora.org>
2020-05-14 10:15:18 +08:00
qctecmdr
0cc830f0c4 Merge "msm: vidc: Add support to Adaptive Blur" 2020-05-09 12:17:12 -07:00
qctecmdr
75cce59c6e Merge "msm: vidc: Add control to configure latency hint" 2020-05-09 12:17:12 -07:00
qctecmdr
98bdda2be1 Merge "msm: vidc: Cleanup VP8 on lahaina" 2020-05-08 00:22:18 -07:00
qctecmdr
97637f4b3c Merge "msm: vidc: update extradata size for input buffer packet" 2020-05-08 00:22:18 -07:00
Vikash Garodia
8e325f5302 msm: vidc: Add control to configure latency hint
The control would hint the video driver to prepare
for latency mode during the video session.

CRs-Fixed: 2681306
Change-Id: Ied0307ff66b755005dcd4fe05189d7e864be208e
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
2020-05-08 02:59:19 +05:30
Vikash Garodia
23e16e4dcd msm: vidc: update extradata size for input buffer packet
As per the interface agreement, rg_data would communicate
the size of extradata. Update the same while creating the
packet.

Change-Id: Id61bce9486a11db5263c336b3284e81953a9a070
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-05-07 13:09:50 -07:00
Akshata Sahukar
71e99d72e2 msm: vidc: Add support to Adaptive Blur
Updated BRS control to accept 0,1,2,3 values instead of boolean.
0 -> disable
1 -> 8-bit
2 -> 10-bit
3 -> both
Also, Internal blur is treated as adaptive in firmware with new
restrictions. Adding internal blur conditions accordingly.

Change-Id: I0aa525bc333acaeeddb5b68cf947030c25466154
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-05-06 18:23:48 -07:00
Akshata Sahukar
db9f5f903c msm: vidc: Introduce ETB flag for Enc Superframe handling
Driver will internally produce subframe flag for all ETB of
a Superframe to firmware (except last ETB). Firmware will
propagate subframe flag to FBD. Driver client will receive
multiple FBDs with subframe flag for single Superframe ETB
(except last FBD). This subframe flag indicates that more
FBD expected for same input.

Change-Id: I627123ee2500dd7846363d8b819c3fa56234a494
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2020-05-06 12:39:17 -07:00
Rakshitha Shakamuri
c599ea068f msm: vidc: Cleanup VP8 on lahaina
Remove all VP8 profiling on lahaina for both encoder and decoder.

Change-Id: I575ffdced1dbe3db0b55243acb88de4fc8971f86
Signed-off-by: Rakshitha Shakamuri <rshakamu@codeaurora.org>
2020-05-05 17:31:22 -07:00
qctecmdr
bfdd3e8866 Merge "msm: vidc: Enable msm_vidc_events tracing" 2020-05-05 09:54:41 -07:00
qctecmdr
303075dcf4 Merge "msm: vidc: delayed start of dec vpp processing in work mode 2" 2020-05-01 14:11:48 -07:00
Mihir Ganu
e12a799745 msm: vidc: Add frame rate control entry
Add entry for decoder frame rate control.

Change-Id: I1ccc750dbed69d302d88ca7c0f209a2e10a0578e
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-05-01 10:45:18 -07:00
Mihir Ganu
39bfdaa636 msm: vidc: Enable msm_vidc_events tracing
Enable tracing by adding trace function definitions
and remove stubbed trace functions.

Change-Id: I49902273b78265dabb43ef4a8ef1b8f2fe0529cc
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-05-01 09:07:47 -07:00
qctecmdr
5d2ebfcdfb Merge "msm: vidc: Fix NULL pointer error when DEBUG_FS is disabled" 2020-04-30 22:22:03 -07:00
Prakruthi Deepak Heragu
9903d41e30 msm: vidc: Fix NULL pointer error when DEBUG_FS is disabled
Add extra check to avoid NULL pointer derefernce when DEBUG_FS is
disabled.

Change-Id: Id89e5422c5afce0428dd77280788d50af0a22fec
Signed-off-by: Prakruthi Deepak Heragu <pheragu@codeaurora.org>
2020-04-30 15:59:31 -07:00
Chinmay Sawarkar
7fe6ac1624 msm: vidc: delayed start of dec vpp processing in work mode 2
Introduced new property to configure start up delay for vpp processing.
This feature is enabled for AVC/HEVC 8k resolution case. Due to the delay
in vpp processing, ubwc stats structure is moved from ebd to fbd.
Ubwc stats changed from per buffer stat to worst case stat from current
dpb list. Introduced debugfs control "vpp_delay" to control delay of vpp
processing, range 0 to 31.
Updated min buffer count requirement due to vpp delay as well.

Change-Id: Ib2a07e4b5d7a9cbf3661258790276843ad714d37
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
2020-04-28 15:24:55 -07:00
Mihir Ganu
a707b90ff2 msm: vidc: Remove PM QoS functionality
Remove deprecated PM QoS functionality from vidc driver.

Change-Id: I922fdb2f2037a8fc820ebf4f2aa6d35a16c6b589
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-04-28 12:30:41 -07:00
Linux Build Service Account
08ed92dd0a Merge "msm: video: config: Do not compile video sources for VM image" into video-kernel.lahaina.lnx.1.0 2020-04-21 10:51:16 -07:00
Murali Nalajala
9d29e83709 msm: video: config: Do not compile video sources for VM image
Do not compile video sources for VM image for lahaina.
Guard the source path against CONFIG_QTI_VM to decide to
compile it are not.

Change-Id: If9549c2a58ed3e7cf66c2cbc51c5fc01b82dd79b
Signed-off-by: Murali Nalajala <mnalajal@codeaurora.org>
2020-04-17 09:47:22 -07:00
qctecmdr
002753eef4 Merge "msm: vidc: Fix bitrate setting for CQ rc-mode sessions" 2020-04-14 11:43:46 -07:00
Mihir Ganu
dc4de60631 msm: vidc: Return ENOMEM for VP9 decode overload case
Return ENOMEM instead of ENOTSUPP when VP9 decode overload
occurs so that userspace can handle this error case correctly.
ENOTSUPP is not available in userspace.

Change-Id: I5260812bb00fde7eed02a29943a67af038e3c001
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-04-09 11:58:44 -07:00
qctecmdr
582eefa819 Merge "msm: vidc: enable timestamp reorder" 2020-04-05 15:48:12 -07:00
Chinmay Sawarkar
4f163fad00 msm: vidc: Update fbd packet size check
FBD packets may contain UBWC CR data information, for certain
targets. Packet size checks should take this into account.

Change-Id: I3ed5705fd6d5b78921aadb2f91c75a071a1f16b2
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
2020-04-03 15:32:59 -07:00
Darshana Patil
86cdac94b7 msm: vidc: enable timestamp reorder
Enable timestamp reordering by using the
calculated timestamps maintained in a
sorted order and associate with output
buffers. This would resolve the issue
if the parser sends incorect timestamps.

Change-Id: I870fd8ed25e05b8e86c677e79182e9c7785656a8
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2020-04-01 15:14:38 -07:00
Amit Shekhar
328a5418c5 msm: vidc: Remove b-frame enablement decision logic
B-frame enablement decision logic has been moved to HAL interface.
Hence, removing from kernel space.

Change-Id: I24943f7facf172f5b9f30fbc67692fd866d490cd
CRs-Fixed: 2615700
Signed-off-by: Amit Shekhar <ashekhar@codeaurora.org>
2020-03-26 14:24:25 -07:00
Chinmay Sawarkar
580131ac8b msm: vidc: Update internal buffer size calculations
Internal buffer size formulae updated to handle non-backward
compatible changes in the Firmware.

Change-Id: I324da7b698f216bd1bc1c3349cae51cdc4ec631a
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
2020-03-25 15:42:29 -07:00
Amit Shekhar
0701e2bcef msm: vidc: Fix bitrate setting for CQ rc-mode sessions
Currently, both bitrate and frame-quality can be set for a CQ rc-mode
session. Adding additional check in driver to set only one of these.

Change-Id: I1ea7b08cf8c7fe90e35aa57f570703e8cdf854e9
CRs-Fixed: 2615700
Signed-off-by: Amit Shekhar <ashekhar@codeaurora.org>
2020-03-25 14:30:55 -07:00
Mihir Ganu
8594905e54 msm: vidc: Set encoder persist buffer to FW
Set the allocated encoder persist buffer to firmware.

Change-Id: I83fdf2dace76848e4a5ad4d8f3a85c9605b56cd0
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-03-24 12:21:18 -07:00
qctecmdr
548c8ad2f1 Merge "msm: vidc: Use correct parameter types in callbacks" 2020-03-23 16:40:16 -07:00
qctecmdr
7eaa56d70c Merge "msm: vidc: add check for prefetch memory sufficiency" 2020-03-23 16:40:16 -07:00
Maheshwar Ajja
24de1903d9 msm: vidc: mark few standard controls as custom controls
Video driver extending few standard controls value and
hence mark those controls as custom controls.

Change-Id: I373ed21482bb577c4fc5c28fd011098963608f53
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2020-03-20 20:34:36 -07:00
Mihir Ganu
69f3ae926c msm: vidc: Use correct parameter types in callbacks
Use correct types in callback functions to avoid kernel
control flow integrity (kCFI) warnings.

Change-Id: Ia84a3d10ebb83407b4ac2c6140daec35e0698bd5
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-03-20 20:32:58 -07:00
Akshay Chandrashekhar Kalghatgi
972cddc45f msm: vidc: add check for prefetch memory sufficiency
Check if the non-pix and pix prefetched memory is sufficient

Change-Id: I71561959a3ed1e9acdb654650144f35656230345
Signed-off-by: Akshay Chandrashekhar Kalghatgi <akalghat@codeaurora.org>
2020-03-17 11:31:51 -07:00
Mihir Ganu
20ebbed266 msm: vidc: Perform cache operations on all planes
Perform cache operations on all planes including buffer extradata
planes, since userspace may set cache flag on all planes.

Change-Id: I9cc6060ec7fb2626b4885c7df7592abae99fb955
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-03-13 16:53:05 -07:00
qctecmdr
1af989dbb8 Merge "msm: vidc: Add support to prefetch & drain memory" 2020-03-13 02:50:00 -07:00
Akshay Chandrashekhar Kalghatgi
5dbb3c9263 msm: vidc: Add support to prefetch & drain memory
Secure memory allocations take a long time. Use memory prefetch and
drain operations to reduce allocation times.

Change-Id: Iaa86a97d7a8b1d6eb1683d273ddb27ffe8d891ae
Signed-off-by: Akshay Chandrashekhar Kalghatgi <akalghat@codeaurora.org>
2020-03-12 13:16:03 -07:00
Akshay Chandrashekhar Kalghatgi
feb7dabc19 msm: vidc: Get FW name from DT
Get Video FW ELF image name from driver's DT entry.

Change-Id: I95320f2b1bdf9ba9e8bb6264babc33c162da60e0
Signed-off-by: Akshay Chandrashekhar Kalghatgi <akalghat@codeaurora.org>
2020-03-12 12:16:18 -07:00
Darshana Patil
6134119508 msm: vidc: calculate decoder fps based on timestamps
Calculate decoder framerate based on input buffer
timestamps and maintain a sorted order list for
timestamps and framerate in a sliding window of
size 32. Send calculated framerate to client in
every dqbuf output buffer. Use the maximum framerate
available in the list for bandwidth and clockrate
calculations.

Change-Id: I5fa357645cb806bf97ccd30ed68bd784d526e233
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2020-03-10 13:32:14 -07:00
Govindaraj Rajagopal
455cd2b148 msm: vidc: update input tag implementation
In qbuf (input) store input_tag to etb_data list and send it to
firmware in etb. Firmware will return input_tag in ftb_done,
store it in fbd_data list and return the same when client does
dqbuf (output).

Change-Id: I3589e5a3017cac49000fc64191f9f756bc4011f4
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2020-03-03 12:12:23 -08:00
qctecmdr
666c906d4e Merge "msm: vidc: do not update operating rate during INT_MAX" 2020-03-03 04:57:09 -08:00
Mihir Ganu
494d4b0e21 msm: vidc: Use sid to create instance debugfs directory
Currently, instance pointer value is used to create an instance debugfs
name. Using instance pointer causes multiple instances to have the same
debugfs name when kptr restriction is applied. Use instance sid instead
of pointer value to create a unique debugfs name during concurrencies.
Also, use %pK instead of %p in other places.

Change-Id: I098f641e9a548bcb8bf6d939422607cdc194adb3
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2020-02-27 16:34:46 -08:00
Rakshitha Shakamuri
f3511e846e msm: vidc: Update the persist buffer size for encoder on Lahaina
Updated the HFI_IRIS2_ENC_PERSIST_SIZE parameter to use double
the existing buffer size instead of calculating on
HFI_VENUS_VPPSG_MAX_REGISTERS.

Change-Id: I434e084db95082906638a4a288ed848f3bab89d3
Signed-off-by: Rakshitha Shakamuri <rshakamu@codeaurora.org>
2020-02-26 15:36:18 -08:00
Vikash Garodia
8af58f371e msm: vidc: update capability for quality mode
Usecase like UHD encode is configured by driver in
high quality mode. But video firmware overwrites the
mode to performance mode.
Update the quality configuration to make them inline
with video firmware configuration.

Change-Id: I6f432bbf889c01d0a9b1f91bfb3d2dd2b9351b5b
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
2020-02-25 22:03:44 -08:00
Vikash Garodia
307e961aa9 msm: vidc: do not update operating rate during INT_MAX
INT_MAX is an interface provided to client to configure
video session in TURBO mode. When client configures the
operating rate as INT_MAX, the rate at which the frames
arrive at video driver does not change, so there is no
need to update the operating rate.
If the operating rate is updated, macroblocks/s for the
session goes high. As a result, the session gets rejected
as the clock is not sufficient for high mbs/s.

Change-Id: Iaa48073a486ce6435664a6afb8a4c6ddd7b7f87d
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
Signed-off-by: Rakshitha Shakamuri <rshakamu@codeaurora.org>
2020-02-24 17:28:01 -08:00
Rakshitha Shakamuri
c638b9401e msm: vidc: Increase the persist buffer size for encoder on Lahaina
Updated the HFI_IRIS2_ENC_PERSIST_SIZE parameter to be allocated
by encoder ARP buffer.

Change-Id: I09fa92d1f04348266f1fae71479c9b1c077556ae
Signed-off-by: Rakshitha Shakamuri <rshakamu@codeaurora.org>
2020-02-21 10:58:54 -08:00
Rakshitha Shakamuri
1cfa55008e msm: vidc: Align buffer size calculators with num_vpp_pipes
Buffer size calculators are dependent on pipe configuration
of the chipset. Ex: Kona has 4 pipes and lagoon has 1 pipe.
Hence aligning the buffer size calculators based on chipset
specific usage of pipes.

Change-Id: I8bb19efc4a80c7e17d9db3cf7d5f1151191b502e
Signed-off-by: Priyanka Gujjula <pgujjula@codeaurora.org>
Signed-off-by: Rakshitha Shakamuri <rshakamu@codeaurora.org>
2020-02-19 18:32:00 -08:00
qctecmdr
833ea5a8b9 Merge "msm: vidc: Move buffer counts handling outside of driver" 2020-02-14 16:13:09 -08:00
Darshana Patil
8cace81134 msm: vidc: Move buffer counts handling outside of driver
Client should take care of buffer allocations for
advanced use cases like HFR and HEIF. Driver will
handle extra buffers only in bare minimum usecases
like DCVS and decode batching.

Change-Id: Id5ec012ba2620b47578173e8306f1700644f0b8c
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2020-02-14 10:19:07 -08:00