Hi Dave, Latest cleanups for DC from you and Harry. Note that there is some flickering on some older asics with this branch due to a regression in powerplay that has already been fixed and will be included in my next non-DC pull request next week. The following changes since commit dfbf0c14dd75d3b15f65478f10f373aa83042a50: drm/amdgpu: drop experimental flag for vega10 (2017-09-26 18:17:46 -0400) are available in the git repository at: git://people.freedesktop.org/~agd5f/linux drm-next-4.15-dc for you to fetch changes up to 8ee5702afdd48b5864c46418ad310d6a23c8e9ab: amdgpu/dc: use kref for dc_state. (2017-10-06 13:10:25 -0400) ---------------------------------------------------------------- Daniel Vetter (1): drm/amd: DC pull request review Dave Airlie (61): amdgpu/dc: add static to construct function amdgpu/dc: move filter taps to being static const data (v2) amdgpu/dc: drop display_pipe_clocks.c. amdgpu/dc: inline a bunch of float operations. amdgpu/dc: inline a bunch of the dml wrappers. amdgpu/dc: drop dml_util_is_420 amdgpu/dc: separate out some common code from bios parsers. amdgpu/dc: drop dml display_mode_support.c (v2) amdgpu/dc: don't check for 0 on register read/writes always. amdgpu/dc: remove wait_reg/wait_reg_func interfaces. amdgpu/dc: drop dc_ver char amdgpu/dc: static constify update_surface_trace_level amdgpu/dm: constify yuv_formats. amdgpu/dm: constify plane type. amdgpu/dm: constify rgb formats. amdgpu/dc: constify a bunch of dc structs. amdgpu/dc: make timing generator constructor return void. amdgpu/dc: make stream encoder constructor return void. amdgpu/dc: make link encoder construct void. amdgpu/dc: make opp construct void. amdgpu/dc: make dce transform constructor void amdgpu/dc: make dce80 timing generator construct return void. amdgpu/dc: make get_audio_clock_info return void. amdgpu/dc: make program_regamma_pwl return void amdgpu/dc: make some audio functions return void amdgpu/dc: remove pointless returns in the i2caux constructor paths. (v2) amdgpu/dc: cleanup construct returns in gpio. amdgpu/dc: another round of dce/dcn construct cleanups. amdgpu/dc: remove pointless return from build_pipe_hw_param amdgpu: fixup construct to void paths on some more dc objects. amdgpu/dc: fix construct return values on irq service. amdgpu/dc: inline some of the fixed 32_32 fns amdgpu/dc: inline a bunch of the fixed 31_32 helpers. amdgpu/dc: hide some unused aux/i2c payload apis. amdgpu/dc: move some one line dp functions to inlines. amdgpu/dc: inline some of the bw_fixed code. amdgpu/dc: allow inlining constant int to fixed a lot better. amdgpu/dc: use the builtin constant p trick on the 31/32 fixed point. amdgpu/dc: inline fixed31_32 div_int amdgpu/dc: inline all the signal_types code. amdgpu/dc: set some of the link dp code to static. amdgpu/dc: rename bios get_image symbol to something more searchable. amdgpu/dc: inline dml_round_to_multiple amdgpu/dc: inline dal grph object id functions. amdgpu/dc: don't memset after kzalloc. amdgpu/dc: use kernel ilog2 for log_2. amdgpu/dc: drop dce110_types.h amdgpu/dc: drop hw_sequencer_types.h amdgpu/dc: fix a bunch of misc whitespace. amdgpu/dc: kfree already checks for NULL. amdgpu/dm: don't use after free. amdgpu/dc: fix indentation on a couple of returns. amdgpu/dc: kill some deadcode in dc core. amdgpu/dc: set a bunch of functions to static. amdgpu/dc: kill a bunch of dead code. amdgpu/dc: convert dc_transfer to use a kref. amdgpu/dc: convert dc_gamma to kref reference counting. amdgpu/dc: use kref for dc_plane_state. amdgpu/dc: convert dc_stream_state to kref. amdgpu/dc: convert dc_sink to kref. amdgpu/dc: use kref for dc_state. Harry Wentland (4): drm/amd/display: Use kernel alloc/free drm/amd/display: DC I2C review drm/doc: Reference AMD DC todos drm/amd/display: Remove DWB Documentation/gpu/todo.rst | 10 + drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 2 +- drivers/gpu/drm/amd/display/TODO | 54 +- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 13 +- drivers/gpu/drm/amd/display/dc/basics/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/basics/conversion.c | 10 - drivers/gpu/drm/amd/display/dc/basics/conversion.h | 5 +- drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c | 153 +- drivers/gpu/drm/amd/display/dc/basics/fixpt32_32.c | 60 - .../gpu/drm/amd/display/dc/basics/grph_object_id.c | 61 +- drivers/gpu/drm/amd/display/dc/basics/logger.c | 18 +- .../gpu/drm/amd/display/dc/basics/signal_types.c | 80 - drivers/gpu/drm/amd/display/dc/basics/vector.c | 20 +- drivers/gpu/drm/amd/display/dc/bios/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/bios/bios_parser.c | 302 +-- drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 307 +-- .../drm/amd/display/dc/bios/bios_parser_common.c | 288 +++ .../bios/bios_parser_common.h} | 10 +- .../drm/amd/display/dc/bios/bios_parser_helper.c | 2 +- .../drm/amd/display/dc/bios/bios_parser_helper.h | 4 +- drivers/gpu/drm/amd/display/dc/calcs/bw_fixed.c | 130 +- drivers/gpu/drm/amd/display/dc/calcs/dce_calcs.c | 5 +- .../gpu/drm/amd/display/dc/calcs/dcn_calc_math.c | 29 - .../gpu/drm/amd/display/dc/calcs/dcn_calc_math.h | 36 +- drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c | 8 +- drivers/gpu/drm/amd/display/dc/core/dc.c | 273 +-- drivers/gpu/drm/amd/display/dc/core/dc_link.c | 23 +- drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 42 +- drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 32 +- drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c | 2 +- drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 7 +- drivers/gpu/drm/amd/display/dc/core/dc_sink.c | 59 +- drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 42 +- drivers/gpu/drm/amd/display/dc/core/dc_surface.c | 80 +- drivers/gpu/drm/amd/display/dc/dc.h | 17 +- drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 4 +- drivers/gpu/drm/amd/display/dc/dc_types.h | 16 +- drivers/gpu/drm/amd/display/dc/dce/dce_abm.c | 4 +- drivers/gpu/drm/amd/display/dc/dce/dce_audio.c | 21 +- .../gpu/drm/amd/display/dc/dce/dce_clock_source.c | 12 +- drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c | 18 +- drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c | 6 +- drivers/gpu/drm/amd/display/dc/dce/dce_ipp.c | 2 +- .../gpu/drm/amd/display/dc/dce/dce_link_encoder.c | 6 +- .../gpu/drm/amd/display/dc/dce/dce_link_encoder.h | 2 +- drivers/gpu/drm/amd/display/dc/dce/dce_opp.c | 6 +- drivers/gpu/drm/amd/display/dc/dce/dce_opp.h | 2 +- .../gpu/drm/amd/display/dc/dce/dce_scl_filters.c | 78 +- .../drm/amd/display/dc/dce/dce_stream_encoder.c | 74 +- .../drm/amd/display/dc/dce/dce_stream_encoder.h | 2 +- drivers/gpu/drm/amd/display/dc/dce/dce_transform.c | 10 +- drivers/gpu/drm/amd/display/dc/dce/dce_transform.h | 4 +- .../amd/display/dc/dce100/dce100_hw_sequencer.c | 4 +- .../amd/display/dc/dce100/dce100_hw_sequencer.h | 2 +- .../drm/amd/display/dc/dce100/dce100_resource.c | 105 +- .../drm/amd/display/dc/dce110/dce110_compressor.c | 15 +- .../drm/amd/display/dc/dce110/dce110_compressor.h | 2 +- .../amd/display/dc/dce110/dce110_hw_sequencer.c | 4 +- .../amd/display/dc/dce110/dce110_hw_sequencer.h | 2 +- .../amd/display/dc/dce110/dce110_opp_regamma_v.c | 4 +- .../gpu/drm/amd/display/dc/dce110/dce110_opp_v.c | 4 +- .../gpu/drm/amd/display/dc/dce110/dce110_opp_v.h | 2 +- .../drm/amd/display/dc/dce110/dce110_resource.c | 133 +- .../drm/amd/display/dc/dce110/dce110_resource.h | 2 +- .../display/dc/dce110/dce110_timing_generator.c | 11 +- .../display/dc/dce110/dce110_timing_generator.h | 3 +- .../display/dc/dce110/dce110_timing_generator_v.c | 7 +- .../display/dc/dce110/dce110_timing_generator_v.h | 2 +- .../drm/amd/display/dc/dce110/dce110_transform_v.c | 2 +- .../drm/amd/display/dc/dce110/dce110_transform_v.h | 2 +- .../gpu/drm/amd/display/dc/dce110/dce110_types.h | 30 - .../drm/amd/display/dc/dce112/dce112_compressor.c | 15 +- .../drm/amd/display/dc/dce112/dce112_compressor.h | 2 +- .../amd/display/dc/dce112/dce112_hw_sequencer.c | 4 +- .../amd/display/dc/dce112/dce112_hw_sequencer.h | 2 +- .../drm/amd/display/dc/dce112/dce112_resource.c | 108 +- .../amd/display/dc/dce120/dce120_hw_sequencer.c | 4 +- .../amd/display/dc/dce120/dce120_hw_sequencer.h | 2 +- .../drm/amd/display/dc/dce120/dce120_resource.c | 98 +- .../display/dc/dce120/dce120_timing_generator.c | 9 +- .../display/dc/dce120/dce120_timing_generator.h | 3 +- .../drm/amd/display/dc/dce80/dce80_compressor.c | 15 +- .../drm/amd/display/dc/dce80/dce80_compressor.h | 2 +- .../drm/amd/display/dc/dce80/dce80_hw_sequencer.c | 4 +- .../drm/amd/display/dc/dce80/dce80_hw_sequencer.h | 2 +- .../gpu/drm/amd/display/dc/dce80/dce80_resource.c | 116 +- .../amd/display/dc/dce80/dce80_timing_generator.c | 7 +- .../amd/display/dc/dce80/dce80_timing_generator.h | 2 +- drivers/gpu/drm/amd/display/dc/dcn10/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c | 10 +- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.h | 2 +- .../gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c | 2 +- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dwb.c | 365 --- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dwb.h | 277 --- .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 16 +- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_ipp.c | 2 +- .../gpu/drm/amd/display/dc/dcn10/dcn10_mem_input.c | 50 +- .../gpu/drm/amd/display/dc/dcn10/dcn10_mem_input.h | 2 +- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c | 2 +- .../gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 162 +- .../amd/display/dc/dcn10/dcn10_timing_generator.c | 2 +- drivers/gpu/drm/amd/display/dc/dm_services.h | 55 +- drivers/gpu/drm/amd/display/dc/dml/Makefile | 6 +- .../gpu/drm/amd/display/dc/dml/display_mode_lib.h | 1 - .../drm/amd/display/dc/dml/display_mode_support.c | 2326 -------------------- .../drm/amd/display/dc/dml/display_mode_support.h | 5 - .../drm/amd/display/dc/dml/display_pipe_clocks.c | 367 --- .../drm/amd/display/dc/dml/display_pipe_clocks.h | 41 - .../drm/amd/display/dc/dml/display_rq_dlg_calc.c | 2 + .../gpu/drm/amd/display/dc/dml/display_watermark.c | 1 + .../gpu/drm/amd/display/dc/dml/dml_common_defs.c | 108 +- .../gpu/drm/amd/display/dc/dml/dml_common_defs.h | 14 - .../gpu/drm/amd/display/dc/dml/dml_inline_defs.h | 80 + .../gpu/drm/amd/display/dc/dml/soc_bounding_box.c | 1 + drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c | 4 +- drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c | 21 +- drivers/gpu/drm/amd/display/dc/gpio/hw_ddc.c | 35 +- drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c | 2 +- drivers/gpu/drm/amd/display/dc/gpio/hw_gpio.c | 4 +- drivers/gpu/drm/amd/display/dc/gpio/hw_gpio.h | 2 +- drivers/gpu/drm/amd/display/dc/gpio/hw_hpd.c | 49 +- drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.c | 6 +- drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.h | 2 +- .../amd/display/dc/i2caux/dce100/i2caux_dce100.c | 23 +- .../display/dc/i2caux/dce110/aux_engine_dce110.c | 24 +- .../dc/i2caux/dce110/i2c_hw_engine_dce110.c | 29 +- .../dc/i2caux/dce110/i2c_hw_engine_dce110.h | 4 - .../dc/i2caux/dce110/i2c_sw_engine_dce110.c | 25 +- .../amd/display/dc/i2caux/dce110/i2caux_dce110.c | 34 +- .../amd/display/dc/i2caux/dce110/i2caux_dce110.h | 2 +- .../amd/display/dc/i2caux/dce112/i2caux_dce112.c | 32 +- .../amd/display/dc/i2caux/dce120/i2caux_dce120.c | 23 +- .../display/dc/i2caux/dce80/i2c_hw_engine_dce80.c | 36 +- .../display/dc/i2caux/dce80/i2c_sw_engine_dce80.c | 23 +- .../drm/amd/display/dc/i2caux/dce80/i2caux_dce80.c | 23 +- .../drm/amd/display/dc/i2caux/dcn10/i2caux_dcn10.c | 23 +- .../display/dc/i2caux/diagnostics/i2caux_diag.c | 25 +- drivers/gpu/drm/amd/display/dc/i2caux/engine.h | 2 +- .../gpu/drm/amd/display/dc/i2caux/engine_base.c | 3 +- drivers/gpu/drm/amd/display/dc/i2caux/i2c_engine.c | 7 +- drivers/gpu/drm/amd/display/dc/i2caux/i2c_engine.h | 2 +- .../amd/display/dc/i2caux/i2c_generic_hw_engine.c | 6 +- .../amd/display/dc/i2caux/i2c_generic_hw_engine.h | 2 +- .../gpu/drm/amd/display/dc/i2caux/i2c_hw_engine.c | 6 +- .../gpu/drm/amd/display/dc/i2caux/i2c_hw_engine.h | 2 +- .../gpu/drm/amd/display/dc/i2caux/i2c_sw_engine.c | 21 +- .../gpu/drm/amd/display/dc/i2caux/i2c_sw_engine.h | 2 +- drivers/gpu/drm/amd/display/dc/i2caux/i2caux.c | 4 +- drivers/gpu/drm/amd/display/dc/i2caux/i2caux.h | 2 +- drivers/gpu/drm/amd/display/dc/inc/bw_fixed.h | 137 +- drivers/gpu/drm/amd/display/dc/inc/core_types.h | 6 +- drivers/gpu/drm/amd/display/dc/inc/dc_link_ddc.h | 10 - drivers/gpu/drm/amd/display/dc/inc/dc_link_dp.h | 8 - drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h | 193 -- .../gpu/drm/amd/display/dc/inc/hw/stream_encoder.h | 1 - drivers/gpu/drm/amd/display/dc/inc/hw/transform.h | 6 +- .../amd/display/dc/irq/dce110/irq_service_dce110.c | 17 +- .../amd/display/dc/irq/dce120/irq_service_dce120.c | 17 +- .../amd/display/dc/irq/dce80/irq_service_dce80.c | 17 +- .../amd/display/dc/irq/dcn10/irq_service_dcn10.c | 17 +- drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 11 +- drivers/gpu/drm/amd/display/dc/irq/irq_service.h | 2 +- drivers/gpu/drm/amd/display/dc/os_types.h | 2 + .../amd/display/dc/virtual/virtual_link_encoder.c | 2 +- .../display/dc/virtual/virtual_stream_encoder.c | 4 +- drivers/gpu/drm/amd/display/include/fixed31_32.h | 156 +- drivers/gpu/drm/amd/display/include/fixed32_32.h | 76 +- .../amd/display/include/grph_object_ctrl_defs.h | 20 +- .../gpu/drm/amd/display/include/grph_object_id.h | 72 +- drivers/gpu/drm/amd/display/include/signal_types.h | 59 +- .../drm/amd/display/modules/freesync/freesync.c | 14 +- 171 files changed, 1800 insertions(+), 6644 deletions(-) delete mode 100644 drivers/gpu/drm/amd/display/dc/basics/signal_types.c create mode 100644 drivers/gpu/drm/amd/display/dc/bios/bios_parser_common.c rename drivers/gpu/drm/amd/display/{include/hw_sequencer_types.h => dc/bios/bios_parser_common.h} (85%) delete mode 100644 drivers/gpu/drm/amd/display/dc/dce110/dce110_types.h delete mode 100644 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dwb.c delete mode 100644 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dwb.h delete mode 100644 drivers/gpu/drm/amd/display/dc/dml/display_mode_support.c delete mode 100644 drivers/gpu/drm/amd/display/dc/dml/display_pipe_clocks.c delete mode 100644 drivers/gpu/drm/amd/display/dc/dml/display_pipe_clocks.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h delete mode 100644 drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h