]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: cedrus: Fix H265 status definitions
authorJernej Skrabec <jernej.skrabec@siol.net>
Mon, 12 Apr 2021 15:43:49 +0000 (17:43 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 15 Apr 2021 11:20:04 +0000 (13:20 +0200)
Some of the H265 status flags are wrong. Redefine them to corespond to
Allwinner CedarC open source userspace library. Only one of these flags
is actually used and new value also matches value used in libvdpau-sunxi
library, which is proven to be working.

Note that wrong (old) value in right circumstances (in combination with
another H265 decoding bug) causes driver lock up. With this fix decoding
is still broken (green output) but at least driver doesn't lock up.

Fixes: 86caab29da78 ("media: cedrus: Add HEVC/H.265 decoding support")
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/sunxi/cedrus/cedrus_regs.h

index 7718c561823f64c728344fbc4442fe8f8d9000b9..92ace87c1c7d1d72dcb53290f3aba668f986aeaa 100644 (file)
 #define VE_DEC_H265_STATUS_STCD_BUSY           BIT(21)
 #define VE_DEC_H265_STATUS_WB_BUSY             BIT(20)
 #define VE_DEC_H265_STATUS_BS_DMA_BUSY         BIT(19)
-#define VE_DEC_H265_STATUS_IQIT_BUSY           BIT(18)
+#define VE_DEC_H265_STATUS_IT_BUSY             BIT(18)
 #define VE_DEC_H265_STATUS_INTER_BUSY          BIT(17)
 #define VE_DEC_H265_STATUS_MORE_DATA           BIT(16)
-#define VE_DEC_H265_STATUS_VLD_BUSY            BIT(14)
-#define VE_DEC_H265_STATUS_DEBLOCKING_BUSY     BIT(13)
-#define VE_DEC_H265_STATUS_DEBLOCKING_DRAM_BUSY        BIT(12)
-#define VE_DEC_H265_STATUS_INTRA_BUSY          BIT(11)
-#define VE_DEC_H265_STATUS_SAO_BUSY            BIT(10)
-#define VE_DEC_H265_STATUS_MVP_BUSY            BIT(9)
-#define VE_DEC_H265_STATUS_SWDEC_BUSY          BIT(8)
+#define VE_DEC_H265_STATUS_DBLK_BUSY           BIT(15)
+#define VE_DEC_H265_STATUS_IREC_BUSY           BIT(14)
+#define VE_DEC_H265_STATUS_INTRA_BUSY          BIT(13)
+#define VE_DEC_H265_STATUS_MCRI_BUSY           BIT(12)
+#define VE_DEC_H265_STATUS_IQIT_BUSY           BIT(11)
+#define VE_DEC_H265_STATUS_MVP_BUSY            BIT(10)
+#define VE_DEC_H265_STATUS_IS_BUSY             BIT(9)
+#define VE_DEC_H265_STATUS_VLD_BUSY            BIT(8)
 #define VE_DEC_H265_STATUS_OVER_TIME           BIT(3)
 #define VE_DEC_H265_STATUS_VLD_DATA_REQ                BIT(2)
 #define VE_DEC_H265_STATUS_ERROR               BIT(1)