]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
drm/amd/display: fix bug where we are creating bogus i2c aux
authorTony Cheng <tony.cheng@amd.com>
Fri, 15 Jun 2018 21:53:35 +0000 (17:53 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 13 Jul 2018 19:47:25 +0000 (14:47 -0500)
[WHY]
we were using  6 instances based on i2caux_dce110.c

[HOW]
pass in how many instances to ctor

Signed-off-by: Tony Cheng <tony.cheng@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/i2caux/dce100/i2caux_dce100.c
drivers/gpu/drm/amd/display/dc/i2caux/dce110/i2caux_dce110.c
drivers/gpu/drm/amd/display/dc/i2caux/dce110/i2caux_dce110.h
drivers/gpu/drm/amd/display/dc/i2caux/dce112/i2caux_dce112.c
drivers/gpu/drm/amd/display/dc/i2caux/dce120/i2caux_dce120.c
drivers/gpu/drm/amd/display/dc/i2caux/dcn10/i2caux_dcn10.c

index e8d3781deaed028dbee299c3800b5cf7cb7162f3..8b704ab0471cd2cea6a3daacd8c945648354b427 100644 (file)
@@ -97,6 +97,7 @@ struct i2caux *dal_i2caux_dce100_create(
 
        dal_i2caux_dce110_construct(i2caux_dce110,
                                    ctx,
+                                   ARRAY_SIZE(dce100_aux_regs),
                                    dce100_aux_regs,
                                    dce100_hw_engine_regs,
                                    &i2c_shift,
index 2a047f8ca0e9ab3d9023204edc0b01167f8c26b8..e0557d3538188b7bcca12309d79d4e1f7de23cae 100644 (file)
@@ -199,6 +199,7 @@ static const struct dce110_i2c_hw_engine_mask i2c_mask = {
 void dal_i2caux_dce110_construct(
        struct i2caux_dce110 *i2caux_dce110,
        struct dc_context *ctx,
+       unsigned int num_i2caux_inst,
        const struct dce110_aux_registers aux_regs[],
        const struct dce110_i2c_hw_engine_registers i2c_hw_engine_regs[],
        const struct dce110_i2c_hw_engine_shift *i2c_shift,
@@ -251,7 +252,7 @@ void dal_i2caux_dce110_construct(
                        dal_i2c_hw_engine_dce110_create(&hw_arg_dce110);
 
                ++i;
-       } while (i < ARRAY_SIZE(hw_ddc_lines));
+       } while (i < num_i2caux_inst);
 
        /* Create AUX engines for all lines which has assisted HW AUX
         * 'i' (loop counter) used as DDC/AUX engine_id */
@@ -272,7 +273,7 @@ void dal_i2caux_dce110_construct(
                        dal_aux_engine_dce110_create(&aux_init_data);
 
                ++i;
-       } while (i < ARRAY_SIZE(hw_aux_lines));
+       } while (i < num_i2caux_inst);
 
        /*TODO Generic I2C SW and HW*/
 }
@@ -303,6 +304,7 @@ struct i2caux *dal_i2caux_dce110_create(
 
        dal_i2caux_dce110_construct(i2caux_dce110,
                                    ctx,
+                                   ARRAY_SIZE(dce110_aux_regs),
                                    dce110_aux_regs,
                                    i2c_hw_engine_regs,
                                    &i2c_shift,
index 1b1f71c60ac93baac87d3dae2926035b5a67628f..d3d8cc58666acb12b4cf4996794ac86e19d21bf7 100644 (file)
@@ -45,6 +45,7 @@ struct i2caux *dal_i2caux_dce110_create(
 void dal_i2caux_dce110_construct(
        struct i2caux_dce110 *i2caux_dce110,
        struct dc_context *ctx,
+       unsigned int num_i2caux_inst,
        const struct dce110_aux_registers *aux_regs,
        const struct dce110_i2c_hw_engine_registers *i2c_hw_engine_regs,
        const struct dce110_i2c_hw_engine_shift *i2c_shift,
index dafc1a727f7f9c0135cab912723e3d071c1ae74b..a9db047387245e351a9555d43774574b3681643a 100644 (file)
@@ -93,6 +93,7 @@ static void construct(
 {
        dal_i2caux_dce110_construct(i2caux_dce110,
                                    ctx,
+                                   ARRAY_SIZE(dce112_aux_regs),
                                    dce112_aux_regs,
                                    dce112_hw_engine_regs,
                                    &i2c_shift,
index 0e7b1826002792dd930564625dad714e25508293..6a4f344c1db4945f25f80de0a831f7a95b6fa4b7 100644 (file)
@@ -111,6 +111,7 @@ struct i2caux *dal_i2caux_dce120_create(
 
        dal_i2caux_dce110_construct(i2caux_dce110,
                                    ctx,
+                                   ARRAY_SIZE(dce120_aux_regs),
                                    dce120_aux_regs,
                                    dce120_hw_engine_regs,
                                    &i2c_shift,
index e44a8901f38bc7335716fa6189ee19413ced4995..a59c1f50c1e8eb84f15ad645ba1d62a375f1d6af 100644 (file)
@@ -111,6 +111,7 @@ struct i2caux *dal_i2caux_dcn10_create(
 
        dal_i2caux_dce110_construct(i2caux_dce110,
                                    ctx,
+                                   ARRAY_SIZE(dcn10_aux_regs),
                                    dcn10_aux_regs,
                                    dcn10_hw_engine_regs,
                                    &i2c_shift,