Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a51b2c4b authored by Praneeth Paladugu's avatar Praneeth Paladugu
Browse files

msm: vidc: Add support for decoder UBWC CR Stats



This change adds support for UBWC CR stats extradata, so that HW
can write UBWC stats into Extradata buffer. This information is
exchanged to consumers through extradata. This information is
useful for optimal run-time bus BW voting.

CRs-Fixed: 2012520
Change-Id: I62c53bd43da0a94cfb7fff6b02f5d449c0f216a6
Signed-off-by: default avatarPraneeth Paladugu <ppaladug@codeaurora.org>
parent 84cf4451
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -616,6 +616,9 @@ static int get_hfi_extradata_index(enum hal_extradata_id index)
	case HAL_EXTRADATA_VPX_COLORSPACE:
		ret = HFI_PROPERTY_PARAM_VDEC_VPX_COLORSPACE_EXTRADATA;
		break;
	case HAL_EXTRADATA_UBWC_CR_STATS_INFO:
		ret = HFI_PROPERTY_PARAM_VDEC_UBWC_CR_STAT_INFO_EXTRADATA;
		break;
	default:
		dprintk(VIDC_WARN, "Extradata index not found: %d\n", index);
		break;
+4 −2
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.name = "Extradata Type",
		.type = V4L2_CTRL_TYPE_MENU,
		.minimum = V4L2_MPEG_VIDC_EXTRADATA_NONE,
		.maximum = V4L2_MPEG_VIDC_EXTRADATA_VPX_COLORSPACE,
		.maximum = V4L2_MPEG_VIDC_EXTRADATA_UBWC_CR_STATS_INFO,
		.default_value = V4L2_MPEG_VIDC_EXTRADATA_NONE,
		.menu_skip_mask = ~(
			(1 << V4L2_MPEG_VIDC_EXTRADATA_NONE) |
@@ -179,7 +179,8 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
			(1 <<
			V4L2_MPEG_VIDC_EXTRADATA_CONTENT_LIGHT_LEVEL_SEI) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_VUI_DISPLAY) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_VPX_COLORSPACE)
			(1 << V4L2_MPEG_VIDC_EXTRADATA_VPX_COLORSPACE) |
			(1 << V4L2_MPEG_VIDC_EXTRADATA_UBWC_CR_STATS_INFO)
			),
		.qmenu = mpeg_video_vidc_extradata,
	},
@@ -877,6 +878,7 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
		case V4L2_MPEG_VIDC_EXTRADATA_CONTENT_LIGHT_LEVEL_SEI:
		case V4L2_MPEG_VIDC_EXTRADATA_VUI_DISPLAY:
		case V4L2_MPEG_VIDC_EXTRADATA_VPX_COLORSPACE:
		case V4L2_MPEG_VIDC_EXTRADATA_UBWC_CR_STATS_INFO:
			inst->bufq[CAPTURE_PORT].num_planes = 2;
			inst->bufq[CAPTURE_PORT].plane_sizes[EXTRADATA_IDX(2)] =
				VENUS_EXTRADATA_SIZE(
+4 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ const char *const mpeg_video_vidc_extradata[] = {
	"Extradata PQ Info",
	"Extradata display VUI",
	"Extradata vpx color space",
	"Extradata UBWC CR stats info",
};

struct getprop_buf {
@@ -4893,6 +4894,9 @@ enum hal_extradata_id msm_comm_get_hal_extradata_index(
	case V4L2_MPEG_VIDC_EXTRADATA_VPX_COLORSPACE:
		ret = HAL_EXTRADATA_VPX_COLORSPACE;
		break;
	case V4L2_MPEG_VIDC_EXTRADATA_UBWC_CR_STATS_INFO:
		ret = HAL_EXTRADATA_UBWC_CR_STATS_INFO;
		break;
	default:
		dprintk(VIDC_WARN, "Extradata not found: %d\n", index);
		break;
+6 −0
Original line number Diff line number Diff line
@@ -188,6 +188,12 @@ struct hfi_extradata_header {
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x001E)
#define HFI_PROPERTY_PARAM_VDEC_CONTENT_LIGHT_LEVEL_SEI_EXTRADATA \
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x001F)
#define HFI_PROPERTY_PARAM_VDEC_COLOUR_REMAPPING_INFO_SEI_EXTRADATA	\
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x0020)
#define HFI_PROPERTY_PARAM_VDEC_DOWN_SCALAR	\
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x0021)
#define HFI_PROPERTY_PARAM_VDEC_UBWC_CR_STAT_INFO_EXTRADATA	\
	(HFI_PROPERTY_PARAM_VDEC_OX_START + 0x0022)

#define HFI_PROPERTY_CONFIG_VDEC_OX_START				\
	(HFI_DOMAIN_BASE_VDEC + HFI_ARCH_OX_OFFSET + 0x4000)
+1 −0
Original line number Diff line number Diff line
@@ -125,6 +125,7 @@ enum hal_extradata_id {
	HAL_EXTRADATA_PQ_INFO,
	HAL_EXTRADATA_VUI_DISPLAY_INFO,
	HAL_EXTRADATA_VPX_COLORSPACE,
	HAL_EXTRADATA_UBWC_CR_STATS_INFO,
};

enum hal_property {
Loading