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

Commit 3197cd4b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: read Dynamic Buffer mode capabilities"

parents 4f12bcca c996de79
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -532,6 +532,39 @@ enum vidc_status hfi_process_sess_init_done_prop_read(
			num_properties--;
			break;
		}
		case HFI_PROPERTY_PARAM_BUFFER_ALLOC_MODE_SUPPORTED:
		{
			struct hfi_buffer_alloc_mode_supported *prop =
				(struct hfi_buffer_alloc_mode_supported *)
				(data_ptr + next_offset);
			int i;
			if (prop->buffer_type == HFI_BUFFER_OUTPUT ||
				prop->buffer_type == HFI_BUFFER_OUTPUT2) {
				sess_init_done->alloc_mode_out = 0;
				for (i = 0; i < prop->num_entries; i++) {
					switch (prop->rg_data[i]) {
					case HFI_BUFFER_MODE_STATIC:
						sess_init_done->alloc_mode_out
						|= HAL_BUFFER_MODE_STATIC;
						break;
					case HFI_BUFFER_MODE_DYNAMIC:
						sess_init_done->alloc_mode_out
						|= HAL_BUFFER_MODE_DYNAMIC;
						break;
					}
					if (i >= 32) {
						dprintk(VIDC_ERR,
						"%s - num_entries: %d from f/w seems suspect\n",
						__func__, prop->num_entries);
						break;
					}
				}
			}
			next_offset += sizeof(*prop) -
				sizeof(u32) + prop->num_entries * sizeof(u32);
			num_properties--;
			break;
		}
		default:
			dprintk(VIDC_DBG,
				"%s default case - 0x%x", __func__, prop_id);
+2 −0
Original line number Diff line number Diff line
@@ -1302,6 +1302,8 @@ int msm_vdec_inst_init(struct msm_vidc_inst *inst)
	inst->capability.height.max = DEFAULT_HEIGHT;
	inst->capability.width.min = MIN_SUPPORTED_WIDTH;
	inst->capability.width.max = DEFAULT_WIDTH;
	inst->capability.buffer_mode[OUTPUT_PORT] = HAL_BUFFER_MODE_STATIC;
	inst->capability.buffer_mode[CAPTURE_PORT] = HAL_BUFFER_MODE_STATIC;
	inst->prop.fps = 30;
	return rc;
}
+2 −0
Original line number Diff line number Diff line
@@ -430,6 +430,8 @@ static void handle_session_init_done(enum command_response cmd, void *data)
			inst->capability.frame_rate =
				session_init_done->frame_rate;
			inst->capability.capability_set = true;
			inst->capability.buffer_mode[CAPTURE_PORT] =
				session_init_done->alloc_mode_out;
		} else {
			dprintk(VIDC_ERR,
				"Session init response from FW : 0x%x",
+1 −0
Original line number Diff line number Diff line
@@ -179,6 +179,7 @@ struct msm_vidc_core_capability {
	struct hal_capability_supported frame_rate;
	u32 pixelprocess_capabilities;
	u32 capability_set;
	enum buffer_mode_type buffer_mode[MAX_PORT_NUM];
};

struct msm_vidc_core {
+9 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@

#define HFI_BUFFER_MODE_STATIC (HFI_OX_BASE + 0x1)
#define HFI_BUFFER_MODE_RING (HFI_OX_BASE + 0x2)
#define HFI_BUFFER_MODE_DYNAMIC (HFI_OX_BASE + 0x3)

#define HFI_FLUSH_INPUT (HFI_OX_BASE + 0x1)
#define HFI_FLUSH_OUTPUT (HFI_OX_BASE + 0x2)
@@ -137,6 +138,8 @@ struct hfi_extradata_header {
	(HFI_PROPERTY_PARAM_OX_START + 0x008)
#define HFI_PROPERTY_PARAM_S3D_FRAME_PACKING_EXTRADATA	\
	(HFI_PROPERTY_PARAM_OX_START + 0x009)
#define  HFI_PROPERTY_PARAM_BUFFER_ALLOC_MODE_SUPPORTED	\
	(HFI_PROPERTY_PARAM_OX_START + 0x00A)

#define HFI_PROPERTY_CONFIG_OX_START					\
	(HFI_DOMAIN_BASE_COMMON + HFI_ARCH_OX_OFFSET + 0x02000)
@@ -278,6 +281,12 @@ struct hfi_interlace_format_supported {
	u32 format;
};

struct hfi_buffer_alloc_mode_supported {
	u32 buffer_type;
	u32 num_entries;
	u32 rg_data[1];
};

struct hfi_mb_error_map {
	u32 error_map_size;
	u8 rg_error_map[1];
Loading