| From 13e0750bd89d1706a6331cca39f905e7928073a7 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 12 Apr 2021 17:43:49 +0200 |
| Subject: media: cedrus: Fix H265 status definitions |
| |
| From: Jernej Skrabec <jernej.skrabec@siol.net> |
| |
| [ Upstream commit 147d211cc9b4d753148d1640a1758b25edfbf437 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| .../staging/media/sunxi/cedrus/cedrus_regs.h | 17 +++++++++-------- |
| 1 file changed, 9 insertions(+), 8 deletions(-) |
| |
| diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h |
| index 7718c561823f..92ace87c1c7d 100644 |
| --- a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h |
| +++ b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h |
| @@ -443,16 +443,17 @@ |
| #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) |
| -- |
| 2.30.2 |
| |