summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
diff options
context:
space:
mode:
authorRoman Li2017-07-19 22:59:14 +0200
committerAlex Deucher2017-09-27 00:15:22 +0200
commit72f0281d34b464121f9f6b75a2d7a2502055ec79 (patch)
treed8067aad025b4ef63a6a9b5abd48e4a2eb150ee2 /drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
parentdrm/amd/display: Return hpd_irq_dpcd from hpd_rx handler (diff)
downloadkernel-qcow2-linux-72f0281d34b464121f9f6b75a2d7a2502055ec79.tar.gz
kernel-qcow2-linux-72f0281d34b464121f9f6b75a2d7a2502055ec79.tar.xz
kernel-qcow2-linux-72f0281d34b464121f9f6b75a2d7a2502055ec79.zip
drm/amd/display: fix index and union overwrite in compressor
Fixing 2 bugs in compressor: - array out of bounds due to incorrect index - compressor options always 0 due to union overwrite Signed-off-by: Roman Li <Roman.Li@amd.com> Reviewed-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c')
-rw-r--r--drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
index 1e59f4e31a6a..9759d8e790a3 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
@@ -198,7 +198,7 @@ void dce110_compressor_enable_fbc(
/* Keep track of enum controller_id FBC is attached to */
compressor->is_enabled = true;
compressor->attached_inst = params->inst;
- cp110->offsets = reg_offsets[params->inst - 1];
+ cp110->offsets = reg_offsets[params->inst];
/*Toggle it as there is bug in HW */
set_reg_field_value(value, 0, FBC_CNTL, FBC_GRPH_COMP_EN);
@@ -469,6 +469,7 @@ bool dce110_compressor_construct(struct dce110_compressor *compressor,
struct dc_context *ctx)
{
+ compressor->base.options.raw = 0;
compressor->base.options.bits.FBC_SUPPORT = true;
/* for dce 11 always use one dram channel for lpt */
@@ -490,7 +491,6 @@ bool dce110_compressor_construct(struct dce110_compressor *compressor,
compressor->base.allocated_size = 0;
compressor->base.preferred_requested_size = 0;
compressor->base.min_compress_ratio = FBC_COMPRESS_RATIO_INVALID;
- compressor->base.options.raw = 0;
compressor->base.banks_num = 0;
compressor->base.raw_size = 0;
compressor->base.channel_interleave_size = 0;