diff options
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c')
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c | 33 | 
1 files changed, 32 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c index 700ad8b3e54b..51b3fe502670 100644 --- a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c +++ b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c @@ -51,6 +51,7 @@  #include "dce/dce_dmcu.h"  #include "dce/dce_aux.h"  #include "dce/dce_i2c.h" +#include "dce/dce_panel_cntl.h"  #include "reg_helper.h" @@ -238,6 +239,18 @@ static const struct dce110_link_enc_aux_registers link_enc_aux_regs[] = {  		aux_regs(5)  }; +static const struct dce_panel_cntl_registers panel_cntl_regs[] = { +	{ DCE_PANEL_CNTL_REG_LIST() } +}; + +static const struct dce_panel_cntl_shift panel_cntl_shift = { +	DCE_PANEL_CNTL_MASK_SH_LIST(__SHIFT) +}; + +static const struct dce_panel_cntl_mask panel_cntl_mask = { +	DCE_PANEL_CNTL_MASK_SH_LIST(_MASK) +}; +  #define hpd_regs(id)\  [id] = {\  	HPD_REG_LIST(id)\ @@ -398,7 +411,7 @@ static const struct dc_plane_cap plane_cap = {  	.pixel_format_support = {  			.argb8888 = true,  			.nv12 = false, -			.fp16 = false +			.fp16 = true  	},  	.max_upscale_factor = { @@ -631,6 +644,23 @@ struct link_encoder *dce112_link_encoder_create(  	return &enc110->base;  } +static struct panel_cntl *dce112_panel_cntl_create(const struct panel_cntl_init_data *init_data) +{ +	struct dce_panel_cntl *panel_cntl = +		kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL); + +	if (!panel_cntl) +		return NULL; + +	dce_panel_cntl_construct(panel_cntl, +			init_data, +			&panel_cntl_regs[init_data->inst], +			&panel_cntl_shift, +			&panel_cntl_mask); + +	return &panel_cntl->base; +} +  static struct input_pixel_processor *dce112_ipp_create(  	struct dc_context *ctx, uint32_t inst)  { @@ -1021,6 +1051,7 @@ static void dce112_destroy_resource_pool(struct resource_pool **pool)  static const struct resource_funcs dce112_res_pool_funcs = {  	.destroy = dce112_destroy_resource_pool,  	.link_enc_create = dce112_link_encoder_create, +	.panel_cntl_create = dce112_panel_cntl_create,  	.validate_bandwidth = dce112_validate_bandwidth,  	.validate_plane = dce100_validate_plane,  	.add_stream_to_ctx = dce112_add_stream_to_ctx,  |