소스 검색

video: driver: update ubwc settings

Amend UBWC settings to firmware for processing
UBWC data.

Change-Id: Ia15f6117cc3182344ff96c54cce02ca2f8185eb1
Signed-off-by: Akshata Sahukar <[email protected]>
Akshata Sahukar 4 년 전
부모
커밋
37b85f09d6
4개의 변경된 파일16개의 추가작업 그리고 24개의 파일을 삭제
  1. 5 9
      driver/platform/waipio/src/msm_vidc_waipio.c
  2. 0 11
      driver/vidc/inc/msm_vidc_platform.h
  3. 9 0
      driver/vidc/src/hfi_packet.c
  4. 2 4
      driver/vidc/src/msm_venc.c

+ 5 - 9
driver/platform/waipio/src/msm_vidc_waipio.c

@@ -19,18 +19,14 @@
 #define DDR_TYPE_LPDDR5X 0x9
 #define DEFAULT_VIDEO_CONCEAL_COLOR_BLACK 0x8020010
 
-#define UBWC_CONFIG(mco, mlo, hbo, bslo, bso, rs, mc, ml, hbb, bsl, bsp) \
+#define UBWC_CONFIG(mc, ml, hbb, bs1, bs2, bs3, bsp) \
 {	\
-	.override_bit_info.max_channel_override = mco,	\
-	.override_bit_info.mal_length_override = mlo,	\
-	.override_bit_info.hb_override = hbo,	\
-	.override_bit_info.bank_swzl_level_override = bslo,	\
-	.override_bit_info.bank_spreading_override = bso,	\
-	.override_bit_info.reserved = rs,	\
 	.max_channels = mc,	\
 	.mal_length = ml,	\
 	.highest_bank_bit = hbb,	\
-	.bank_swzl_level = bsl,	\
+	.bank_swzl_level = bs1,	\
+	.bank_swz2_level = bs2, \
+	.bank_swz3_level = bs3, \
 	.bank_spreading = bsp,	\
 }
 
@@ -1043,7 +1039,7 @@ static u32 vpe_csc_custom_limit_coeff[MAX_LIMIT_COEFFS] = {
 
 /* Default UBWC config for LPDDR5 */
 static struct msm_vidc_ubwc_config_data ubwc_config_waipio[] = {
-	UBWC_CONFIG(1, 1, 1, 0, 0, 0, 8, 32, 16, 0, 0),
+	UBWC_CONFIG(8, 32, 16, 0, 1, 1, 1),
 };
 
 static struct msm_vidc_platform_data waipio_data = {

+ 0 - 11
driver/vidc/inc/msm_vidc_platform.h

@@ -50,17 +50,6 @@ struct msm_vidc_efuse_data {
 };
 
 struct msm_vidc_ubwc_config_data {
-	struct {
-		u32 max_channel_override : 1;
-		u32 mal_length_override : 1;
-		u32 hb_override : 1;
-		u32 bank_swzl_level_override : 1;
-		u32 bank_swz2_level_override : 1;
-		u32 bank_swz3_level_override : 1;
-		u32 bank_spreading_override : 1;
-		u32 reserved : 27;
-	} override_bit_info;
-
 	u32 max_channels;
 	u32 mal_length;
 	u32 highest_bank_bit;

+ 9 - 0
driver/vidc/src/hfi_packet.c

@@ -334,6 +334,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_CMD_SYSTEM_INIT */
 	payload = HFI_VIDEO_ARCH_LX;
+	d_vpr_h("%s: arch %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_CMD_INIT,
 				   (HFI_HOST_FLAGS_RESPONSE_REQUIRED |
@@ -349,6 +350,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_PROP_INTRA_FRAME_POWER_COLLAPSE */
 	payload = 0;
+	d_vpr_h("%s: intra frame power collapse %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_PROP_INTRA_FRAME_POWER_COLLAPSE,
 				   HFI_HOST_FLAGS_NONE,
@@ -362,6 +364,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_PROP_UBWC_MAX_CHANNELS */
 	payload = core->platform->data.ubwc_config->max_channels;
+	d_vpr_h("%s: ubwc max channels %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_PROP_UBWC_MAX_CHANNELS,
 				   HFI_HOST_FLAGS_NONE,
@@ -375,6 +378,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_PROP_UBWC_MAL_LENGTH */
 	payload = core->platform->data.ubwc_config->mal_length;
+	d_vpr_h("%s: ubwc mal length %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_PROP_UBWC_MAL_LENGTH,
 				   HFI_HOST_FLAGS_NONE,
@@ -388,6 +392,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_PROP_UBWC_HBB */
 	payload = core->platform->data.ubwc_config->highest_bank_bit;
+	d_vpr_h("%s: ubwc hbb %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_PROP_UBWC_HBB,
 				   HFI_HOST_FLAGS_NONE,
@@ -401,6 +406,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_PROP_UBWC_BANK_SWZL_LEVEL1 */
 	payload = core->platform->data.ubwc_config->bank_swzl_level;
+	d_vpr_h("%s: ubwc swzl1 %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_PROP_UBWC_BANK_SWZL_LEVEL1,
 				   HFI_HOST_FLAGS_NONE,
@@ -414,6 +420,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_PROP_UBWC_BANK_SWZL_LEVEL2 */
 	payload = core->platform->data.ubwc_config->bank_swz2_level;
+	d_vpr_h("%s: ubwc swzl2 %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_PROP_UBWC_BANK_SWZL_LEVEL2,
 				   HFI_HOST_FLAGS_NONE,
@@ -427,6 +434,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_PROP_UBWC_BANK_SWZL_LEVEL3 */
 	payload = core->platform->data.ubwc_config->bank_swz3_level;
+	d_vpr_h("%s: ubwc swzl3 %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_PROP_UBWC_BANK_SWZL_LEVEL3,
 				   HFI_HOST_FLAGS_NONE,
@@ -440,6 +448,7 @@ int hfi_packet_sys_init(struct msm_vidc_core *core,
 
 	/* HFI_PROP_UBWC_BANK_SPREADING */
 	payload = core->platform->data.ubwc_config->bank_spreading;
+	d_vpr_h("%s: ubwc bank spreading %d\n", __func__, payload);
 	rc = hfi_create_packet(pkt, pkt_size,
 				   HFI_PROP_UBWC_BANK_SPREADING,
 				   HFI_HOST_FLAGS_NONE,

+ 2 - 4
driver/vidc/src/msm_venc.c

@@ -181,11 +181,9 @@ static int msm_venc_set_raw_resolution(struct msm_vidc_inst *inst,
 		return -EINVAL;
 	}
 
-	resolution = inst->fmts[port].fmt.pix_mp.width << 16 |
-		inst->fmts[port].fmt.pix_mp.height;
+	resolution = inst->crop.width << 16 | inst->crop.height;
 	s_vpr_h(inst->sid, "%s: width: %d height: %d\n", __func__,
-			inst->fmts[port].fmt.pix_mp.width,
-			inst->fmts[port].fmt.pix_mp.height);
+			inst->crop.width, inst->crop.height);
 	rc = venus_hfi_session_property(inst,
 			HFI_PROP_RAW_RESOLUTION,
 			HFI_HOST_FLAGS_NONE,