| /Linux-v6.1/drivers/gpu/drm/msm/disp/dpu1/ |
| D | dpu_hw_dsc.c | 32 static void dpu_hw_dsc_disable(struct dpu_hw_dsc *dsc) in dpu_hw_dsc_disable() argument 34 struct dpu_hw_blk_reg_map *c = &dsc->hw; in dpu_hw_dsc_disable() 40 struct drm_dsc_config *dsc, in dpu_hw_dsc_config() argument 55 slice_last_group_size = 3 - (dsc->slice_width % 3); in dpu_hw_dsc_config() 59 data |= dsc->bits_per_pixel << 12; in dpu_hw_dsc_config() 60 lsb = dsc->bits_per_pixel % 4; in dpu_hw_dsc_config() 61 bpp = dsc->bits_per_pixel / 4; in dpu_hw_dsc_config() 67 data |= (dsc->block_pred_enable << 7); in dpu_hw_dsc_config() 68 data |= (dsc->line_buf_depth << 3); in dpu_hw_dsc_config() 69 data |= (dsc->simple_422 << 2); in dpu_hw_dsc_config() [all …]
|
| D | dpu_hw_dsc.h | 16 * struct dpu_hw_dsc_ops - interface to the dsc hardware driver functions 21 * dsc_disable - disable dsc 22 * @hw_dsc: Pointer to dsc context 27 * dsc_config - configures dsc encoder 28 * @hw_dsc: Pointer to dsc context 29 * @dsc: panel dsc parameters 30 * @mode: dsc topology mode to be set 34 struct drm_dsc_config *dsc, 40 * @hw_dsc: Pointer to dsc context 41 * @dsc: panel dsc parameters [all …]
|
| D | dpu_encoder.h | 31 * @dsc: DSC configuration data for DSC-enabled displays 39 struct drm_dsc_config *dsc; member 200 * dpu_encoder_use_dsc_merge - returns true if the encoder uses DSC merge topology.
|
| D | dpu_encoder.c | 130 * @hw_dsc: Handle to the DSC blocks used for the display. 131 * @dsc_mask: Bitmask of used DSC blocks. 165 * @dsc: drm_dsc_config pointer, for DSC-enabled encoders 210 /* DSC configuration */ 211 struct drm_dsc_config *dsc; member 539 if (dpu_enc->dsc) in dpu_encoder_use_dsc_merge() 585 if (dpu_enc->dsc) { in dpu_encoder_get_topology() 586 /* In case of Display Stream Compression (DSC), we would use in dpu_encoder_get_topology() 1070 if (dpu_enc->dsc) { in dpu_encoder_virt_atomic_mode_set() 1794 dpu_encoder_dsc_initial_line_calc(struct drm_dsc_config *dsc, in dpu_encoder_dsc_initial_line_calc() argument [all …]
|
| /Linux-v6.1/drivers/gpu/drm/amd/display/dc/dcn20/ |
| D | dcn20_dsc.c | 30 #include "dsc/dscc_types.h" 32 static void dsc_log_pps(struct display_stream_compressor *dsc, struct drm_dsc_config *pps); 37 static void dsc_write_to_registers(struct display_stream_compressor *dsc, const struct dsc_reg_valu… 43 static void dsc2_read_state(struct display_stream_compressor *dsc, struct dcn_dsc_state *s); 44 static bool dsc2_validate_stream(struct display_stream_compressor *dsc, const struct dsc_config *ds… 45 static void dsc2_set_config(struct display_stream_compressor *dsc, const struct dsc_config *dsc_cfg, 47 static bool dsc2_get_packed_pps(struct display_stream_compressor *dsc, const struct dsc_config *dsc… 48 static void dsc2_enable(struct display_stream_compressor *dsc, int opp_pipe); 49 static void dsc2_disable(struct display_stream_compressor *dsc); 50 static void dsc2_disconnect(struct display_stream_compressor *dsc); [all …]
|
| D | dcn20_resource.c | 1083 struct dcn20_dsc *dsc = in dcn20_dsc_create() local 1086 if (!dsc) { in dcn20_dsc_create() 1091 dsc2_construct(dsc, ctx, inst, &dsc_regs[inst], &dsc_shift, &dsc_mask); in dcn20_dsc_create() 1092 return &dsc->base; in dcn20_dsc_create() 1095 void dcn20_dsc_destroy(struct display_stream_compressor **dsc) in dcn20_dsc_destroy() argument 1097 kfree(container_of(*dsc, struct dcn20_dsc, base)); in dcn20_dsc_destroy() 1098 *dsc = NULL; in dcn20_dsc_destroy() 1325 struct display_stream_compressor **dsc, in dcn20_acquire_dsc() argument 1330 … display_stream_compressor *dsc_old = dc->current_state->res_ctx.pipe_ctx[pipe_idx].stream_res.dsc; in dcn20_acquire_dsc() 1332 ASSERT(*dsc == NULL); /* If this ASSERT fails, dsc was not released properly */ in dcn20_acquire_dsc() [all …]
|
| /Linux-v6.1/drivers/gpu/drm/amd/display/dc/dcn314/ |
| D | dcn314_hwseq.c | 56 #include "dsc.h" 99 struct display_stream_compressor *dsc = pipe_ctx->stream_res.dsc; in update_dsc_on_stream() local 104 ASSERT(dsc); in update_dsc_on_stream() 113 /* Enable DSC hw block */ in update_dsc_on_stream() 123 dsc->funcs->dsc_set_config(dsc, &dsc_cfg, &dsc_optc_cfg); in update_dsc_on_stream() 124 dsc->funcs->dsc_enable(dsc, pipe_ctx->stream_res.opp->inst); in update_dsc_on_stream() 126 struct display_stream_compressor *odm_dsc = odm_pipe->stream_res.dsc; in update_dsc_on_stream() 137 /* Enable DSC in OPTC */ in update_dsc_on_stream() 138 DC_LOG_DSC("Setting optc DSC config for tg instance %d:", pipe_ctx->stream_res.tg->inst); in update_dsc_on_stream() 144 /* disable DSC in OPTC */ in update_dsc_on_stream() [all …]
|
| D | dcn314_dio_stream_encoder.c | 272 two_pix = two_pix || (timing->flags.DSC && timing->pixel_encoding == PIXEL_ENCODING_YCBCR422 in is_two_pixels_per_containter() 371 /* Set DSC-related configuration. 372 * dsc_mode: 0 disables DSC, other values enable DSC in specified format 386 /* this function read dsc related register fields to be logged later in dcn10_log_hw_state 393 //if dsc is enabled, continue to read in enc314_read_state()
|
| /Linux-v6.1/drivers/gpu/drm/amd/display/dc/inc/hw/ |
| D | dsc.h | 36 /* Input parameters for configuring DSC from the outside of DSC */ 47 /* Output parameters for configuring DSC-related part of OPTC */ 69 /* DSC encoder capabilities 70 * They differ from the DPCD DSC caps because they are based on AMD DSC encoder caps. 76 uint8_t NUM_SLICES_3 : 1; /* This one is not per DSC spec, but our encoder supports it */ 99 void (*dsc_read_state)(struct display_stream_compressor *dsc, struct dcn_dsc_state *s); 100 …bool (*dsc_validate_stream)(struct display_stream_compressor *dsc, const struct dsc_config *dsc_cf… 101 void (*dsc_set_config)(struct display_stream_compressor *dsc, const struct dsc_config *dsc_cfg, 103 bool (*dsc_get_packed_pps)(struct display_stream_compressor *dsc, const struct dsc_config *dsc_cfg, 105 void (*dsc_enable)(struct display_stream_compressor *dsc, int opp_pipe); [all …]
|
| /Linux-v6.1/drivers/gpu/drm/amd/display/dc/dsc/ |
| D | dc_dsc.c | 28 #include "dsc.h" 35 /* default DSC policy target bitrate limit is 16bpp */ 38 /* default DSC policy enables DSC only when needed */ 67 const struct display_stream_compressor *dsc, 103 dm_error("%s: DPCD DSC buffer size not recognized.\n", __func__); in dsc_buff_block_size_from_dpcd() 119 dm_error("%s: DPCD DSC buffer depth not recognized.\n", __func__); in dsc_line_buff_depth_from_dpcd() 179 dm_error("%s: DPCD DSC throughput mode not recognized.\n", __func__); in dsc_throughput_from_dpcd() 210 dm_error("%s: DPCD DSC bits-per-pixel increment not recognized.\n", __func__); in dsc_bpp_increment_div_from_dpcd() 300 …if (dpcd_dsc_branch_decoder_caps == NULL) { // branch decoder DPCD DSC data can be null for non br… in dc_dsc_parse_dsc_dpcd() 338 /* If DSC is possbile, get DSC bandwidth range based on [min_bpp, max_bpp] target bitrate range and [all …]
|
| D | Makefile | 3 # Makefile for the 'dsc' sub-component of DAL. 4 DSC = dc_dsc.o rc_calc.o rc_calc_dpi.o macro 6 AMD_DAL_DSC = $(addprefix $(AMDDALPATH)/dc/dsc/,$(DSC))
|
| D | rc_calc.c | 30 * @rc: DC internal DSC parameters 31 * @pps: DRM struct with all required DSC values 33 * This function expects a drm_dsc_config data struct with all the required DSC 35 * computes some of the DSC values.
|
| /Linux-v6.1/drivers/gpu/drm/msm/dsi/ |
| D | dsi_host.c | 36 static int dsi_populate_dsc_params(struct drm_dsc_config *dsc); 163 struct drm_dsc_config *dsc; member 844 struct drm_dsc_config *dsc = msm_host->dsc; in dsi_update_dsc_timing() local 851 /* first calculate dsc parameters and then program in dsi_update_dsc_timing() 855 slice_per_intf = DIV_ROUND_UP(intf_width, dsc->slice_width); in dsi_update_dsc_timing() 861 if (slice_per_intf > dsc->slice_count) in dsi_update_dsc_timing() 862 dsc->slice_count = 1; in dsi_update_dsc_timing() 864 slice_per_intf = DIV_ROUND_UP(hdisplay, dsc->slice_width); in dsi_update_dsc_timing() 865 bytes_in_slice = DIV_ROUND_UP(dsc->slice_width * dsc->bits_per_pixel, 8); in dsi_update_dsc_timing() 867 dsc->slice_chunk_size = bytes_in_slice; in dsi_update_dsc_timing() [all …]
|
| /Linux-v6.1/drivers/gpu/drm/display/ |
| D | drm_dsc_helper.c | 20 * DOC: dsc helpers 23 * Compression (DSC) used to compress the pixel bits before sending it on 24 * DP/eDP/MIPI DSI interface. DSC is required to be enabled so that the existing 29 * Display Stream Compression standard required for DSC on Display Port/eDP or 36 * @pps_header: Secondary data packet header for DSC Picture 81 * drm_dsc_pps_payload_pack() - Populates the DSC PPS 84 * Bitwise struct for DSC Picture Parameter Set. This is defined 87 * DSC Configuration data filled by driver as defined by 90 * DSC source device sends a picture parameter set (PPS) containing the 92 * populates the DSC PPS struct using the DSC configuration parameters in [all …]
|
| /Linux-v6.1/Documentation/devicetree/bindings/display/mediatek/ |
| D | mediatek,dsc.yaml | 4 $id: http://devicetree.org/schemas/display/mediatek/mediatek,dsc.yaml# 7 title: mediatek display DSC controller 14 The DSC standard is a specification of the algorithms used for 17 video bit stream. DSC is designed for real-time systems with 24 - const: mediatek,mt8195-disp-dsc 34 - description: DSC Wrapper Clock 73 compatible = "mediatek,mt8195-disp-dsc";
|
| /Linux-v6.1/drivers/gpu/drm/amd/display/amdgpu_dm/ |
| D | amdgpu_dm_debugfs.c | 36 #include "dsc.h" 934 * Disable dsc passthrough, i.e.,: have dsc decoding at converver, not external RX 936 * Enable dsc passthrough, i.e.,: have dsc passthrough to external RX 1149 /* function: Read link's DSC & FEC capabilities 1192 * enable DSC on the sink device or on MST branch in dp_dsc_fec_support_show() 1335 /* function: read DSC status on the connector 1338 * returns current status of DSC clock on the connector. 1347 * 1 - means that DSC is currently enabled 1348 * 0 - means that DSC is disabled 1356 struct display_stream_compressor *dsc; in dp_dsc_clock_en_read() local [all …]
|
| D | amdgpu_dm_helpers.c | 659 DC_LOG_DC("Configure DSC to non-virtual dpcd synaptics\n"); in write_dsc_enable_synaptics_non_virtual_dpcd_mst() 662 /* When DSC is enabled on previous boot and reboot with the hub, in write_dsc_enable_synaptics_non_virtual_dpcd_mst() 672 DRM_INFO("Send DSC enable to synaptics\n"); in write_dsc_enable_synaptics_non_virtual_dpcd_mst() 676 * external monitor occur garbage while disable DSC, in write_dsc_enable_synaptics_non_virtual_dpcd_mst() 677 * Disable DSC only when entire link status turn to false, in write_dsc_enable_synaptics_non_virtual_dpcd_mst() 681 DRM_INFO("Send DSC disable to synaptics\n"); in write_dsc_enable_synaptics_non_virtual_dpcd_mst() 728 DC_LOG_DC("Sent DSC pass-through enable to virtual dpcd port, ret = %u\n", in dm_helpers_dp_write_dsc_enable() 734 DC_LOG_DC("Sent DSC decoding enable to %s port, ret = %u\n", in dm_helpers_dp_write_dsc_enable() 741 DC_LOG_DC("Sent DSC decoding disable to %s port, ret = %u\n", in dm_helpers_dp_write_dsc_enable() 750 DC_LOG_DC("Sent DSC pass-through disable to virtual dpcd port, ret = %u\n", in dm_helpers_dp_write_dsc_enable() [all …]
|
| D | amdgpu_dm_mst_types.c | 216 u8 dsc_branch_dec_caps_raw[3] = { 0 }; // DSC branch decoder caps 0xA0 ~ 0xA2 in validate_dsc_caps_on_connector() 223 * because it only check the dsc/fec caps of the "port variable" and not the dock in validate_dsc_caps_on_connector() 225 * This case will return NULL: DSC capabe MST dock connected to a non fec/dsc capable display in validate_dsc_caps_on_connector() 657 params[i].timing->flags.DSC = 1; in set_dsc_configs_from_fairness_vars() 670 params[i].timing->flags.DSC = 0; in set_dsc_configs_from_fairness_vars() 683 DRM_DEBUG_DRIVER("dsc=%d bits_per_pixel=%d pbn=%d\n", in set_dsc_configs_from_fairness_vars() 684 params[i].timing->flags.DSC, in set_dsc_configs_from_fairness_vars() 921 stream->timing.flags.DSC = 0; in compute_mst_dsc_configs_for_link() 1027 /* only check phy used by dsc mst branch */ in is_dsc_need_re_compute() 1165 if (stream->timing.flags.DSC == 1) in compute_mst_dsc_configs_for_state() [all …]
|
| /Linux-v6.1/drivers/gpu/drm/i915/display/ |
| D | intel_vdsc.c | 371 /* There's no pipe A DSC engine on ICL */ in is_pipe_dsc() 456 struct drm_dsc_config *vdsc_cfg = &pipe_config->dsc.config; in intel_dsc_compute_params() 457 u16 compressed_bpp = pipe_config->dsc.compressed_bpp; in intel_dsc_compute_params() 464 pipe_config->dsc.slice_count); in intel_dsc_compute_params() 582 const struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config; in intel_dsc_pps_configure() 588 u8 num_vdsc_instances = (crtc_state->dsc.dsc_split) ? 2 : 1; in intel_dsc_pps_configure() 617 if (crtc_state->dsc.dsc_split) in intel_dsc_pps_configure() 624 if (crtc_state->dsc.dsc_split) in intel_dsc_pps_configure() 641 if (crtc_state->dsc.dsc_split) in intel_dsc_pps_configure() 648 if (crtc_state->dsc.dsc_split) in intel_dsc_pps_configure() [all …]
|
| /Linux-v6.1/include/drm/display/ |
| D | drm_dsc.h | 13 /* VESA Display Stream Compression DSC 1.2 constants */ 21 /* DSC Rate Control Constants */ 27 /* DSC PPS constants and macros */ 48 * struct drm_dsc_rc_range_parameters - DSC Rate Control range parameters 50 * This defines different rate control parameters used by the DSC engine 70 * struct drm_dsc_config - Parameters required to configure DSC 92 * @slice_count: Number fo slices per line used by the DSC encoder 242 * @dsc_version_minor: DSC minor version 246 * @dsc_version_major: DSC major version 279 * The VESA DSC standard defines picture parameter set (PPS) which display [all …]
|
| /Linux-v6.1/drivers/gpu/drm/amd/display/dc/dcn32/ |
| D | dcn32_hwseq.c | 48 #include "dsc.h" 1019 struct display_stream_compressor *dsc = pipe_ctx->stream_res.dsc; in update_dsc_on_stream() local 1024 ASSERT(dsc); in update_dsc_on_stream() 1033 /* Enable DSC hw block */ in update_dsc_on_stream() 1043 dsc->funcs->dsc_set_config(dsc, &dsc_cfg, &dsc_optc_cfg); in update_dsc_on_stream() 1044 dsc->funcs->dsc_enable(dsc, pipe_ctx->stream_res.opp->inst); in update_dsc_on_stream() 1046 struct display_stream_compressor *odm_dsc = odm_pipe->stream_res.dsc; in update_dsc_on_stream() 1057 /* Enable DSC in OPTC */ in update_dsc_on_stream() 1058 DC_LOG_DSC("Setting optc DSC config for tg instance %d:", pipe_ctx->stream_res.tg->inst); in update_dsc_on_stream() 1064 /* disable DSC in OPTC */ in update_dsc_on_stream() [all …]
|
| /Linux-v6.1/drivers/gpu/drm/amd/display/dc/ |
| D | dc_dsc.h | 28 /* DP Extended DSC Capabilities */ 63 const struct display_stream_compressor *dsc, 72 const struct display_stream_compressor *dsc, 88 /* TODO - Hardware/specs limitation should be owned by dc dsc and returned to DM,
|
| D | dc_hw_types.h | 771 uint32_t DSC : 1; /* Use DSC with this timing */ member 801 uint32_t num_slices_h; /* Number of DSC slices - horizontal */ 802 uint32_t num_slices_v; /* Number of DSC slices - vertical */ 803 uint32_t bits_per_pixel; /* DSC target bitrate in 1/16 of bpp (e.g. 128 -> 8bpp) */ 804 bool block_pred_enable; /* DSC block prediction enable */ 805 uint32_t linebuf_depth; /* DSC line buffer depth */ 806 uint32_t version_minor; /* DSC minor version. Full version is formed as 1.version_minor. */ 807 bool ycbcr422_simple; /* Tell DSC engine to convert YCbCr 4:2:2 to 'YCbCr 4:2:2 simple'. */ 808 int32_t rc_buffer_size; /* DSC RC buffer block size in bytes */ 810 bool is_frl; /* indicate if DSC is applied based on HDMI FRL sink's capability */ [all …]
|
| /Linux-v6.1/drivers/net/ethernet/mellanox/mlx5/core/ |
| D | en_stats.h | 36 #define MLX5E_READ_CTR64_CPU(ptr, dsc, i) \ argument 37 (*(u64 *)((char *)ptr + dsc[i].offset)) 38 #define MLX5E_READ_CTR64_BE(ptr, dsc, i) \ argument 39 be64_to_cpu(*(__be64 *)((char *)ptr + dsc[i].offset)) 40 #define MLX5E_READ_CTR32_CPU(ptr, dsc, i) \ argument 41 (*(u32 *)((char *)ptr + dsc[i].offset)) 42 #define MLX5E_READ_CTR32_BE(ptr, dsc, i) \ argument 43 be32_to_cpu(*(__be32 *)((char *)ptr + dsc[i].offset))
|
| /Linux-v6.1/include/linux/irqchip/ |
| D | irq-partition-percpu.h | 28 struct irq_domain *partition_get_domain(struct partition_desc *dsc); 47 struct irq_domain *partition_get_domain(struct partition_desc *dsc) in partition_get_domain() argument
|