Commit Graph

858 Commits

Author SHA1 Message Date
Maheshwar Ajja
0cae147e2a video: driver: reset required buffer attributes
Reset all attributes except read only attribute
in msm_vidc_get_driver_buf() for an existing buffer
to avoid buffer flow problems in driver.

Change-Id: If6170caa9b9315f73b6023ef496aed2ba3e6efba
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-02-18 19:48:13 -08:00
Mihir Ganu
b42f622d58 video: driver: Check capabilities pointer before accessing it
Core capabitlities are not created before opening first instance,
hence add a check before accesing capabilities.

Change-Id: I46b85e685624a2219fcf9e1153f8f470c17dcec0
Signed-off-by: Mihir Ganu <mganu@codeaurora.org>
2021-02-18 18:56:27 -08:00
Darshana Patil
a11586233a video: driver: handle resume command response
handle resume command response from fw.

Change-Id: Ib45a7e1f6b6ffab6573699dfc4efb2305ced511c
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-18 16:36:36 -08:00
Akshata Sahukar
3ad2fda959 video: driver: add support to set colorspace for enc
- Set enc colorspace info to firmware via
  HFI_PROP_SIGNAL_COLOR_INFO property.
- Fix dec colorspace payload packaging.

Change-Id: Ib7ef2395a4f98f6497bbb200770a8612410eb8f5
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-02-18 14:08:00 -08:00
Darshana Patil
b8996ba008 video: driver: modify crop offsets property
modify crop offsets property to match the
hfi header file.

Change-Id: Id4cd1e6f68a811e7d3dfbaeb80b20bff98eaf35c
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-17 18:50:24 -08:00
Karthikeyan Periasamy
577430f10f video: VIDC_INFO is deprecated
Used VIDC_HIGH instead.

CRs-Fixed: 2836558
Change-Id: I6a6a92f41aa18a175d8d8a405c95d2d18cdb2c42
Signed-off-by: Karthikeyan Periasamy <kperiasa@codeaurora.org>
2021-02-17 17:28:37 -08:00
qctecmdr
890505c6fb Merge "video: driver: modify default logging" 2021-02-17 16:12:07 -08:00
Darshana Patil
c1bb737feb video: driver: modify default logging
By default, enable only driver error,
fw error and fatal logs.

Change-Id: Ifdca1e26350b25b04555fd6fc402e8c3b7d28dfe
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-17 15:04:44 -08:00
Darshana Patil
bcb2df4067 video: driver: fixes for nv12 512x512 encoder
fixes for nv12 512x512 custom stride and scanline
support.

Change-Id: Ifc2a64e881587b9bf4538496dfaab70c8726fb85
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-17 15:04:35 -08:00
qctecmdr
34ca840018 Merge "video: driver: avoid drain_last_flag to drc state transition" 2021-02-17 11:41:43 -08:00
qctecmdr
d2a1190b94 Merge "video: driver: resume input port for drain sequnce." 2021-02-17 11:08:45 -08:00
Govindaraj Rajagopal
816f15fbcf video: driver: reset last_buffer_dequeued flag for streamoff case
After drc/drain sequence completion, if client initiates input port
streamoff, then firmware is expected to release all EBD's. But looks
like couple of FBD's also returned by firmware and gets added to
q->done_list.

Due to valid vb2_buffer entry, poll() gets unblocked everytime and
attempts to dequeue but dqbuf request on capture port after last_flag
will be rajected by vb2 with -EPIPE error.

So v2_buffer never gets dequeued and poll always gets unblocked i.e
leading to barrage of dqbuf failure prints.

Added change to clear last_buffer_dequeued flag as part of streamoff.
This is required for both input & output port side.

Change-Id: I9e84e642811100b1e32317228e7d9b3739def1c4
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-02-17 17:41:53 +05:30
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
Govindaraj Rajagopal
8867ad497a video: driver: resume input port for drain sequnce.
HFI_CMD_RESUME should be sent for following cases:

Decoder(V4L2_DEC_CMD_START)
input port: ipsc & drain
output port: opsc

Encoder(V4L2_ENC_CMD_START)
input port: drain
output port: no usage

Change-Id: I77b29c2da542a3d91f7ba96fb36291303d6af3f9
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-02-17 13:07:38 +05:30
Govindaraj Rajagopal
8ed48fa824 video: driver: fix minor typo
fixed minor typo.

Change-Id: I76e3d3fb4b0691f324d58e22b148fe26760c7fc1
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-02-16 23:32:25 +05:30
Govindaraj Rajagopal
0cb0862d1c video: driver: update streamoff failure return code.
Currently streamoff failure error code was overriden with zero.
added change to propagate correct error code.

Change-Id: I9ad92f27ae6de109c9959abf0692e6e32cd52d3d
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-02-15 19:08:38 +05:30
qctecmdr
888c828645 Merge "msm: vidc: Initialize queues before adding session to core" 2021-02-12 16:12:26 -08:00
Manikanta Kanamarlapudi
59e44ef2fa msm: vidc: Initialize queues before adding session to core
Initialize queues first and then add the session
to the core. This will avoid the access to uninitialized
queues of new instance while voting the clocks/buses of the
other instance.

Change-Id: I92b06dba361eb1539aced90fb58251c04a55b175
2021-02-12 21:52:26 +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
Darshana Patil
91212e2c02 video: driver: fix destroy internal buffer
break after destroying each internal buffer

Change-Id: I1b3eaf3b655113e0f2f911683c423cdeaeac3ade
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-10 19:40:50 -08:00
qctecmdr
d56e844dd9 Merge "video: driver: print buffer region" 2021-02-10 18:54:50 -08:00
Maheshwar Ajja
ddcadaf055 video: driver: print buffer region
Print buffer region and secutity information.

Change-Id: I9fae1b193b5e416cb291109c25fe025c34f50f34
Signed-off-by: Maheshwar Ajja <majja@quicinc.com>
2021-02-10 18:35:47 -08:00
qctecmdr
2072537a6e Merge "video: driver: amend V4L2_BUF_FLAG_ERROR flag handling" 2021-02-10 18:23:13 -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
Darshana Patil
40a39d7455 video: driver: queue persist buffer as session buffer
-queue persist buffer as session buffer at the start
 of the session for decoder
-fix hfi buffer packet parsing when payload is none.

Change-Id: I5da2472d00bf85dd328bbdfcbd35074a46522d25
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-10 12:39:49 -08:00
qctecmdr
3b845bc495 Merge "video: driver: Set lx arch to fw before fw boot" 2021-02-09 19:59:34 -08:00
qctecmdr
30f1a68d17 Merge "video: driver: correct firmware debug log prints" 2021-02-09 19:41:33 -08:00
qctecmdr
bc9d1b3c23 Merge "video: driver: set firmware debug log cmd in session open" 2021-02-09 19:13:17 -08:00
qctecmdr
89da257228 Merge "video: driver: update fw load-unload functions" 2021-02-09 17:47:18 -08:00
Rohit Kulkarni
2155605082 video: driver: update fw load-unload functions
Update the fw load and fw unload functions to
make them non-static to allow calls from other
files.

Change-Id: I387a884a1274354e78defdf00245bd0108dd61fc
Signed-off-by: Rohit Kulkarni <rkulkarn@codeaurora.org>
2021-02-09 17:30:37 -08:00
Maheshwar Ajja
0e8d5a08a3 video: driver: set firmware debug log cmd in session open
Currently firmware debug log command is sent only in
system initialization command which is not sufficient as
system init cmd will be sent only once during system bootup
and hence set firmware debug log cmd in every session open.

Change-Id: I5d6cf781ac8f168afd182777a6b8a0579db22d09
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-02-09 17:14:55 -08:00
Maheshwar Ajja
cb9cd42f13 video: driver: correct firmware debug log prints
Print firmware debug log message size to avoid
printing extra unnecessary data.

Change-Id: Ic6ed1bbbfdfeae9ba31b0bfaf06e15e6c7fc4b78
Signed-off-by: Maheshwar Ajja <majja@quicinc.com>
2021-02-09 17:12:54 -08:00
qctecmdr
7ded262fc0 Merge "video: driver: Add support for CQ bitrate mode" 2021-02-09 14:54:29 -08:00
Chinmay Sawarkar
8cd787ac52 video: driver: Set lx arch to fw before fw boot
To simplify the boot process, firmware needs to know the type of architecture
before it boots up.

Change-Id: I42ff87094b816f9783d18fa67126e9b7a4dab320
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
2021-02-09 14:24:02 -08:00
Darshana Patil
964c0e2b79 video: driver: handle zero length, RO last flag buffer
reset data size to zero for last flag buffer.
reset RO flag for last flag buffer.

Change-Id: Idb340217c00ce478d1ec7de338b2ad38da23016d
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-09 14:00:33 -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
qctecmdr
f8e6c60909 Merge "video: driver: handle encoder repeat buffer scenario" 2021-02-07 22:12:25 -08:00
qctecmdr
3eecbd09e1 Merge "video: driver: Enable video subcache" 2021-02-05 22:45:10 -08:00
Chinmay Sawarkar
899cd05a06 video: driver: Enable video subcache
Enable video subcaches.

Change-Id: I193c5dd6bb02f87c4576f5b9dbbeee31116e1858
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
2021-02-05 15:31:22 -08:00
Govindaraj Rajagopal
97ff8e4a71 video: driver: handle encoder repeat buffer scenario
Encoder yuv buffer dma_buffer addr can repeat. So donot attempt
to add same buffer node again.

Change-Id: Ic43e1704d4e355c5e98ee059e03107087260f202
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
2021-02-05 16:17:16 +05:30
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
Akshata Sahukar
f5a9db9667 video: driver: Add NV12 related support for enc
Add support to set HFI_PROP_LINEAR_STRIDE_SCANLINE
property to video fw.

Change-Id: I0ce3549a472388a5d2471bf4c8978a5a5f524a34
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-02-03 19:07:45 -08:00
Maheshwar Ajja
48b189ef85 video: driver: update debugfs functions
On latest kernel version the debugfs functions
return type is void and hence update debugfs
functions in driver accordingly.

Change-Id: I13b10aaf84dc1c9bd0e2dd2b632e543f2a2e878d
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
2021-02-02 17:38:07 -08:00
qctecmdr
fff1beb8a1 Merge "video: driver: Convert debug messages" 2021-02-02 16:40:25 -08:00
Darshana Patil
91d3cc6aaa video: driver: reset buffer parameters during destroy
reset internal buffer size, buffers counts at the
time of destroy buffers.

Change-Id: Ibb83792c093849ac123bb8b0bfd01c5d97f675aa
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
2021-02-02 15:00:12 -08:00
Akshata Sahukar
c5262f2e99 video: driver: Avoid compilation failure due to time.h
Since linux/time.h is not visible in waipio branch, compilation
issue is seen due to usage of timeval structure. Get rid of
timeval struct usage to avoid encountering this issue.

Change-Id: I03ce4f72f97b5e96e4dd495595c60c6835498f66
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
2021-02-02 11:06:40 -08:00
Sebastian Dang
5220f1f7f2 video: driver: Convert debug messages
Add new print format using msm_vidc_inst.
    Convert existing sid print statements.

Change-Id: Iba6774c31ff92997b4f8598e6a705f58bfa1b03c
2021-02-02 10:21:34 -08:00