24 Oct, 2019
7 commits
-
1. the start command is mixed with transfer data,
separate them and make code more clear
2. some condition of start_code_bypass is missing.
3. config the pStreamBuffDesc only before send start commandSigned-off-by: ming_qian
Reviewed-by: Shijie Qin
(cherry picked from commit 775033eb3dcba27a2b7093caccbc81c1df55ba46) -
If firmware report sequence header twice,
and the user don't support the format, such as 10-bit NV12,
user may close vpu decoder directly, it will send stop cmd.
but when driver receive the second sequence header event,
it may waiting for resolution change done,
it'll block the stop command, and cause it timeout.Signed-off-by: ming_qian
Reviewed-by: Shijie Qin
(cherry picked from commit 9e1d28861a6f89b9f25641131f8db1ef17b81d3a) -
Correct frame_byte typedef to int in order to align with
update_stream_addr_vpu() typedef, it maybe negative.Signed-off-by: Shijie Qin
Reviewed-by: ming_qian
(cherry picked from commit b04249f00b7cb28a17d3b7b992d565ca0edbee28) -
change event
If b_firstseq is cleared after sending source change event,
user may get invalid frame size.Signed-off-by: ming_qian
Reviewed-by: Shijie Qin
Reviewed-by: Zhou Peng
(cherry picked from commit 6794c08937d4b9b1f8509935ebaeb1072af0b4aa) -
Free space may not enough when (end - wptr < SCODE_SIZE),
add this check.Signed-off-by: Shijie Qin
(cherry picked from commit ce944686a765f514a70e4731379179df30dbba0a) -
1. change to use list record performance info for better trace each
time-point and not limited to a fixed flow.
2. add total time from open device to each time-point.Signed-off-by: Shijie Qin
Reviewed-by: Zhou Peng
Reviewed-by: ming_qian
(cherry picked from commit 563d17921b33e3b1be96414ef80535146f00edb5) -
There are no u/v planars in the pixel formats
IPU_PIX_FMT_BGRA4444/IPU_PIX_FMT_BGRA5551/IPU_PIX_FMT_AYUV,
so we should explicitly get zero u/v_offset from __ipu_ch_offset_calc()
for those pixel formats. Without this patch, '-EINVAL' will be
returned from __ipu_ch_offset_calc() as the function return value
and input parameter u/v_offset will not be touched, which is not a
good behavior, because the caller is likely to ignore the function
return value and take the u/v_offset as valid value. The MXC IPUv3 fb
driver is a such kind of caller, which may get the u/v_offset
for those pixel formats without checking the function return value,
and hence wrongly pass the u/v_offset to PRE driver(finally causes
malfunction).Signed-off-by: Liu Ying
(cherry picked from commit c1ff0b03944e5196497be4f606979f5cb0c1b413)
19 Oct, 2019
1 commit
-
set minimal scaling factor with 20 for 8MM and 6SX GPU
Signed-off-by: Xianzhong
(cherry picked from commit 03f411ed00d173b683ff2d00edf6196724cccf9d)
11 Oct, 2019
1 commit
-
Fix Coverity high impact and Vulkan 1.1.3 issues
Signed-off-by: Xianzhong
(cherry picked from commit b1c86d22ff27aefbd3d07b78d27cf5d7491cbc1c)
08 Oct, 2019
1 commit
-
hsync in struct of drm_display_mode is modes's hsync rate in kHz.
But DP register should been set the value of Horizontal Sync Width
that is not define in DRM_MODE().
It could get by (mode->hsync_end - mode->hsync_start).Signed-off-by: Sandor Yu
23 Sep, 2019
1 commit
-
Signed-off-by: Julien Olivain
Reviewed-by: Zhou Peng
(cherry picked from commit d5ee37f96629716042bb0b8317ff8ea0000a769c)
17 Sep, 2019
1 commit
-
Problems:
- GPU hang when run Google Earth apk on 8MM EVK board
- Android DEQP/SKQP CTS have random failures
- Khronos ES20 CTS have random failuresAnalysis:
GPU got stuck in shader module when process specific data format,
this is caused by VSI GCNanoUltra Errata(HBN1286), which does not set
the specific intermediate register to 0 in hardware reset sequence after power up,
this wrong register will cause the unexpected result when process specific data type,
wrong behavior will happen and may cause out of bound access in shader programming.Fix:
GPU driver will submit the predefined command(dummy draw) with fake stream and shader,
also set scissor with (0,0,0,0) to avoid draw out, no pixel output on hardware pipeline,
this workaround can set the specific register to 0 as the effective SW remedy.Impact:
No obvious functionality and performance impact with dummy draw workaround,
it only takes several cycles in command fetch --> vertex shader --> primitive,
and then cull out of reset of GPU pipelines.This patch can fix the same GPU problem for 7ULP.
Signed-off-by: Xianzhong
(cherry picked from commit b14813c419b1f733c0945e99fc403b7a25774d24)
11 Sep, 2019
2 commits
-
if stream status is on,
reqbufs will fail,
return -EBUSY instead of -EINVALSigned-off-by: ming_qian
(cherry picked from commit 65cfc81f73639c633d9e9b7c23c9c58443fa661f) -
driver tell seek and res change by the status of output stream.
if res change is not handled properly,
the stream may hang.Signed-off-by: ming_qian
Reviewed-by: Shijie Qin
(cherry picked from commit 86163d3eab3760f9659c7a58ff4cdf1a0a58a810)
10 Sep, 2019
1 commit
-
Include more bug-fixing for Vulkan 1.1 conformance,
Add EVIS2 shader binaries for vip8000nanosi,
Upgrade NNAPI 2.0 with OVXLIB.Signed-off-by: Xianzhong
30 Aug, 2019
3 commits
-
use a spinlock to synchronize sending message to MU
Signed-off-by: ming_qian
Reviewed-by: Shijie Qin -
*ctrls[V4L2_MAX_CTRLS] is not actually used, and it is easy to cause
out-of-bound when add v4l2_ctrl. Hence remove it.Signed-off-by: Shijie Qin
-
There is no dependency between start_code_bypass and stream_input_mode,
should be set separately.Signed-off-by: Shijie Qin
Reviewed-by: ming_qian
27 Aug, 2019
1 commit
-
there is an bug in v4l2_open,
that the dev_mutex may be not unlock in some flow,
it'll cause dead lock.Signed-off-by: ming_qian
Reviewed-by: Shijie Qin
23 Aug, 2019
2 commits
-
1. CID 6371811: Dereference before null check (REVERSE_INULL)
2. CID 6371006: Unchecked return value (CHECKED_RETURN)Signed-off-by: Shijie Qin
Reviewed-by: ming_qian -
1. start timer from open device;
2. add the interval from open device to feed first data and to
send start cmd;
3. In order to reduce the time deviation of print log, use
device_attribute file to show performance info.Signed-off-by: Shijie Qin
Reviewed-by: ming_qian
20 Aug, 2019
1 commit
-
case
Some hang case is caused by the frame count in the stream buffer
is not reach the threshold,
export these infomations, can help us locate the problem quicklySigned-off-by: ming_qian
Reviewed-by: Shijie Qin
19 Aug, 2019
2 commits
-
Move LVL_WARN/LVL_EVENT/LVL_INFO one bit to the left to convenient for
adjust log level, and leave 4th position to reserved.Signed-off-by: Shijie Qin
Reviewed-by: ming_qian -
dis_reorder mode
in dis_reorder mode, scode need to be inserted after every frame.
but if it's inserted after sequence header, it may cause stream hang,
or cause mosaics.Signed-off-by: ming_qian
Reviewed-by: Shijie Qin
16 Aug, 2019
1 commit
-
1. Change AVS format EOS_PADDING_TYPE to EOS_GENERIC_MPEG to align with
firmware
2. chroma size shall also be 1/2 luma size for interlaced clipsSigned-off-by: Shijie Qin
15 Aug, 2019
2 commits
-
fix 6Q GPU panic with ctrl-c during galcore load/unload
Signed-off-by: Xianzhong
-
fix 8QM GPU hang with ctrl-c during galcore load/unload
Signed-off-by: Xianzhong
05 Aug, 2019
2 commits
-
In order to compatibility with Android system, move crc and input_data dump
file directory from /home/ and /tmp/ to /data/.Signed-off-by: Shijie Qin
Reviewed-by: Zhou Peng -
Previously, only process for RV format, other formats should also
be treated in the same way.Signed-off-by: Shijie Qin
Reviewed-by: ming_qian
02 Aug, 2019
3 commits
-
string
we can use the debug tool analyze the raw dbglog.
Signed-off-by: ming_qian
Reviewed-by: Shijie Qin -
Show the interval from input first data to receive start_done
and seq_hdr_found event.Signed-off-by: Shijie Qin
Reviewed-by: ming_qian -
Include more bug-fixings for Vulkan and NN driver
Signed-off-by: Xianzhong
01 Aug, 2019
1 commit
-
add Xvid format support, and vpu treat it as MPEG4.
Signed-off-by: Shijie Qin
Reviewed-by: Zhou Peng
Reviewed-by: ming_qian
29 Jul, 2019
1 commit
-
module_param(vpu_datadump_ena, int, 0644);
MODULE_PARM_DESC(vpu_datadump_ena, "enable dump input frame data (0-1)");Signed-off-by: Shijie Qin
Reviewed-by: Zhou Peng
26 Jul, 2019
4 commits
-
module_param(vpu_show_perf_ena, int, 0644);
MODULE_PARM_DESC(vpu_show_perf_ena, "enable show vpu decode
performance(0-1)");
module_param(vpu_show_perf_idx, int, 0644);
MODULE_PARM_DESC(vpu_show_perf_idx, "show performance of which
instance(bit N to mask instance N)");
module_param(vpu_show_perf_ent, int, 0644);
MODULE_PARM_DESC(vpu_show_perf_ent, "show performance of which
event(1: decoded, 2: ready)");Signed-off-by: Shijie Qin
Reviewed-by: Zhou Peng -
For VP6 format, the first input data shall including frame data,
hence should not drop it.Signed-off-by: Shijie Qin
Reviewed-by: ming_qian -
+MPEG4/MPEG2, the first input data also not including frame data
Signed-off-by: Shijie Qin
-
1.firmware decide whether it support rv and divx.
if firmware don't support, driver will disable these formats.2. update copyright description
Signed-off-by: ming_qian
Reviewed-by: Zhou Peng
25 Jul, 2019
1 commit
-
the amount of REL_FRAME_BUFF event may be much bigger the BUFF_RDY
event.
it means that some frame buffer are not used for decoding,
and firmware just release it directly.The frame who is need to skip is decoded but not ready.
Signed-off-by: ming_qian
Reviewed-by: Shijie Qin
23 Jul, 2019
1 commit
-
Fixing unused compiler warning for
decode: vpu_suspend() and vpu_resume()
encode: vpu_enc_suspend() and vpu_enc_resume()Signed-off-by: Shijie Qin
Reviewed-by: ming_qian