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:
@@ -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 = {
|
||||
|
@@ -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;
|
||||
|
@@ -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,
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user