video: driver: update ubwc settings

Amend UBWC settings to firmware for processing
UBWC data.

Change-Id: Ia15f6117cc3182344ff96c54cce02ca2f8185eb1
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
This commit is contained in:
Akshata Sahukar
2021-01-05 12:05:14 -08:00
parent a96377f69b
commit 37b85f09d6
4 changed files with 16 additions and 24 deletions

View File

@@ -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 = {

View File

@@ -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;

View File

@@ -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,

View File

@@ -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,