1. 30 Jul, 2020 11 commits
  2. 28 Jul, 2020 3 commits
  3. 27 Jul, 2020 26 commits
    • Mauro Rossi's avatar
      drm/amd/display: create plane rotation property for Bonaire and later · f784112f
      Mauro Rossi authored
      [Why]
      DCE6 chipsets do not support HW rotation
      
      [How]
      rotation property is created for Bonaire and later
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      f784112f
    • Mauro Rossi's avatar
      drm/amd/display: dc/dce60: use DCE6 headers (v6) · 75b4766b
      Mauro Rossi authored
      [Why]
      With all DCE6 specific macros, register, masks in place
      dce60_resource.c may use them and become independent from DCE8 headers
      
      [How]
      (v1) Changelog:
      - use DCE6 headers for registers and masks, remove the DC8 headers
      - remove 7th Display Controller/Encoder register instances (DCE6 has only 6)
      - use DCE6 specific watermark programming registers (DPG_PIPE_ARBITRATION_CONTROL3)
      - use DCE6 specific input pixel processing registers shift/mask
      - use DCE6 specific transform registers shift/mask
      - use DCE6 specific link encoder registers shift/mask
      - use DCE6 specific output pixel processing registers shift/mask
      - use DCE6 specific audio registers shift/mask
      - use DCE6 specific dmcu registers shift/mask
      - use DCE6 specific hwseq registers shift/mask
      - use DCE6 specific mem input registers shift/mask
      
      (v2) Changelog:
      - use DCE6 ad hoc dce60_mem_input_construct() function
      - use DCE6 ad hoc dce60_transform_construct() function
      
      (v3) Changelog:
      - use DCE6 ad hoc dce60_ipp_construct() function
      
      (v4) Changelog:
      - use DCE6 ad hoc dce60_link_encoder_construct() function
      
      (v5) Changelog:
      - use DCE6 ad hoc dce60_opp_construct() function
      
      (v6) Changelog:
      - use DCE6 ad hoc dce60_audio_create() function
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      75b4766b
    • Mauro Rossi's avatar
      drm/amd/display: dce60_timing_generator: add DCE6 specific functions (v2) · 9caf2a1f
      Mauro Rossi authored
      [Why]
      DCE6 has CRTC_PREFETCH_EN bit in CRTC_CONTROL register
      DCE6 has no CRTC_LEGACY_REQUESTOR_EN bit in CRTC_START_LINE_CONTROL register
      DCE6 has no CRTC_CRC_CNTL register
      
      [How]
      Modify dce60_timing_generator_enable_advanced_request() function
      Add dce60_configure_crc() function and dce60_is_tg_enabled() kept as static
      Use dce60_configure_crc() function in dce60_tg_funcs
      
      v2: remove unused variable (Alex)
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      9caf2a1f
    • Mauro Rossi's avatar
      drm/amd/display: dce60_hw_sequencer: add DCE6 specific .cursor_lock · 1bd26c7d
      Mauro Rossi authored
      [Why]
      kernel WARNING due to use of .cursor_lock = dce_pipe_control_lock inherited by dce110
      
      [How]
      DCE6 set .cursor_lock = dce60_pipe_control_lock
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      1bd26c7d
    • Mauro Rossi's avatar
      drm/amd/display: dce60_hw_sequencer: add DCE6 specific functions (v2) · 167d74fd
      Mauro Rossi authored
      [Why]
      DCE6 has no bottom_pipe and no Blender HW
      DCE6 needs 'blank_target' set to false in order to turn on the display
      DCE6 has a specific dce60_pipe_control_lock() fuction that is a no op
      
      [How]
      Add DCE6 specific functions with needed private dce60_* dependent fuctions
      Comment DCE6 specific CTRC program visibility implementation
      Fix a typo in the initial header includes comment 's/DCE8/DCE6/g'
      Use dce60_apply_ctx_for_surface() in dce60_hw_sequencer_construct
      Use dce60_pipe_control_lock() in dce60_hw_sequencer_construct
      
      v2: add missing return type (Alex)
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      167d74fd
    • Mauro Rossi's avatar
      drm/amd/display: dce_transform: DCE6 Scaling Horizontal Filter Init (v2) · 102b2f58
      Mauro Rossi authored
      [Why]
      DCE6 has specific SCL_HORZ_FILTER_INIT_{LUMA_RGB,CHROMA} registers
      In DCE6 h_init_luma and h_init_chroma initialization is required
      Some DCE6 specific SCL_{HORZ,VERT}_FILTER_CONTROL masks were not listed
      
      [How]
      Add the registers and masks in dce_transform.h
      Add DCE6 specific struct sclh_ratios_inits in dce_transform.h
      Add dce60_calculate_inits() function
      Add dce60_program_scl_ratios_inits() function
      Fix dce60_transform_set_scaler() function
      
      v2: remove unused variable (Alex)
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      102b2f58
    • Mauro Rossi's avatar
      drm/amd/display: dce_transform: add DCE6 specific macros,functions · b70aaf55
      Mauro Rossi authored
      [Why]
      DCE6 has no SCL_MODE and no SCL_{HORZ,VERT}_FILTER_INIT registers
      DCE6 has no SCL_BOUNDARY_MODE bit in SCL_CONTROL register
      DCE6 has Line Buffer programming registers (DC_LB_MEMORY_SPLIT,DC_LB_MEM_SIZE)
      DCE6 DATA_FORMAT register has only INTERLEAVE_EN bit
      DCE6 has no Out Clamp Control programming registers (OUT_CLAMP_CONTROL_*)
      
      [How]
      Add DCE6 specific macros definitions for XFM registers and masks
      Add DCE6 specific registers to dce_transform_registers struct
      Add DCE6 specific masks to dce_transform_mask struct
      DCE6 XFM macros/structs changes will avoid buiding errors when using DCE6 headers
      Add dce60_setup_scaling_configuration() w/o missing Scaling registers/bit programming
      Add dce60_transform_set_scaler() using DCE6 Line Buffer programming registers
      Add dce60_program_bit_depth_reduction() w/o Out Clamp Control programming
      Add dce60_transform_set_pixel_storage_depth() use dce60_program_bit_depth_reduction()
      Use dce60_transform_set_scaler() in dce60_transform_funcs
      Use dce60_transform_set_pixel_storage_depth() in dce60_transform_funcs
      Add DCE6 specific dce60_transform_construct
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      b70aaf55
    • Mauro Rossi's avatar
      drm/amd/display: dce_opp: add DCE6 specific macros,functions · d85a1e53
      Mauro Rossi authored
      [Why]
      DCE6 has no FMT_TRUNCATE_MODE bit in FMT_BIT_DEPTH_CONTROL register
      DCE6 has no FMT_CLAMP_COMPONENT_{R,G,B} registers
      DCE6 has no FMT_SUBSAMPLING_{MODE,ORDER} bits in FMT_CONTROL register
      
      [How]
      Add DCE6 specific macros definitions for OPP registers and masks
      DCE6 OPP macros will avoid buiding errors when using DCE6 headers
      Add dce60_set_truncation() w/o FMT_TRUNCATE_MODE bit programming
      Add dce60_opp_set_clamping() w/o Format Clamp Component programming
      Add dce60_opp_program_fmt() w/o Format Subsampling bits programming
      Add dce60_opp_program_bit_depth_reduction() with dce60_set_truncation
      Use dce60_opp_program_fmt() in dce60_opp_funcs
      Use dce60_opp_program_bit_depth_reduction() in dce60_opp_funcs
      Add DCE6 specific dce60_opp_construct
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      d85a1e53
    • Mauro Rossi's avatar
      drm/amd/display: dce_mem_input: add DCE6 specific macros,functions (v2) · b91f056f
      Mauro Rossi authored
      [Why]
      DCE6 has DPG_PIPE_ARBITRATION_CONTROL3 register for Line Buffer watermark selection
      DCE6 has STUTTER_EXIT_SELF_REFRESH_WATERMARK_MASK mask for Stutter watermark selection
      DCE6 has NB_PSTATE_CHANGE_WATERMARK_MASK mask for North Bridge watermark selection
      DCE6 has no GRPH_MICRO_TILE_MODE mask
      DCE6 has no HW_ROTATION register
      
      [How]
      Add DCE6 specific macros definitions for MI registers and masks
      Add DCE6 specific registers to dce_mem_input_registers struct
      Add DCE6 specific masks to dce_mem_input_masks struct
      DCE6 MI macros/structs changes will avoid buiding errors when using DCE6 headers
      Add dce60_program_urgency_watermark() function
      Add dce60_program_nbp_watermark() function
      Add dce60_program_stutter_watermark() function
      Add dce60_mi_program_display_marks() function w/ new DCE6 watermark programming
      Add DCE6 specific tiling programming and modify DCE8 case
      Add dce60_program_size() fuction w/o Rotation processing
      Add dce60_mi_program_surface_config() fuction
      Use dce60_mi_program_display_marks() in dce60_mi_funcs
      Use dce60_mi_program_surface_config() in dce60_mi_funcs
      Add DCE6 specific dce60_mem_input_construct
      
      v2: remove unused variable (Alex)
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      b91f056f
    • Mauro Rossi's avatar
      drm/amd/display: dce_link_encoder: add DCE6 specific macros,functions · c1a64ebd
      Mauro Rossi authored
      [Why]
      DCE6 has no DP_DPHY_SCRAM_CNTL register
      
      [How]
      Add DCE6 specific macros definitions for LE registers
      DCE6 LE macros will avoid buiding errors when using DCE6 headers
      Add dce60_set_dp_phy_pattern_hbr2_compliance_cp2520_2() w/o Scramble Control programming
      Add dce60_set_dp_phy_pattern_passthrough_mode() w/o Scramble Control programming
      Add dce60_configure_encoder() w/o Scramble Control programming
      Add dce60_link_encoder_enable_dp_output() w/ dce60_configure_encoder
      Add dce60_link_encoder_enable_dp_mst_output() w/ dce60_configure_encoder
      Add dce60_link_encoder_dp_set_phy_pattern() w/ dce60_set_dp_phy_pattern_passthrough_mode
      Use dce60_link_encoder_enable_dp_output() in dce60_lnk_enc_funcs
      Use dce60_link_encoder_enable_dp_mst_output() in dce60_lnk_enc_funcs
      Use dce60_link_encoder_dp_set_phy_pattern() in dce60_lnk_enc_funcs
      Add DCE6 specific dce60_link_encoder_construct
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      c1a64ebd
    • Mauro Rossi's avatar
      drm/amd/display: dce_ipp: add DCE6 specific macros,functions · 89571d7c
      Mauro Rossi authored
      [Why]
      DCE6 does not have CURSOR2_DEGAMMA_MODE bit in DEGAMMA_CONTROL register
      
      [How]
      Add DCE6 specific macros definitions for IPP masks
      DCE6 IPP macros will avoid buiding errors when using DCE6 headers
      Add dce60_ipp_set_degamma() function w/o Cursor2 Degamma programming
      Use dce60_ipp_set_degamma() in ipp_funcs dce60_ipp_funcs
      Add DCE6 specific dce60_ipp_construct
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      89571d7c
    • Mauro Rossi's avatar
      drm/amd/display: dce_hwseq: add DCE6 specific macros,functions · ff0649f8
      Mauro Rossi authored
      [Why]
      DCE6 has no BLND_CONTROL register for Blender HW programming
      DCE6 has no BLND_V_UPDATE_LOCK register for Pipe Locking
      
      [How]
      Add DCE6 specific macros definitions for HWSEQ registers and masks
      DCE6 HWSEQ macros will avoid buiding errors when using DCE6 headers
      Add dce60_pipe_control_lock() stub with no op
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      ff0649f8
    • Mauro Rossi's avatar
      drm/amd/display: dce_dmcu: add DCE6 specific macros,functions · eab5a799
      Mauro Rossi authored
      [Why]
      DCE6 has no SMU_INTERRUPT_CONTROL register, but it's used for DCN10 and later
      
      [How]
      Add DCE6 specific macros definitions for DMCU registers and masks
      DCE6 DMCU macros will avoid buiding errors when using DCE6 headers
      There is no other change needed in dce_dcmu
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      eab5a799
    • Mauro Rossi's avatar
      drm/amd/display: dce_audio: add DCE6 specific macros,functions · 2a39b1f1
      Mauro Rossi authored
      [Why]
      DCE6 has no DCCG_AUDIO_DTO2_USE_512FBR_DTO mask in DCCG_AUDIO_DTO_SOURCE register
      
      [How]
      Add DCE6 specific macros definitions for AUD masks
      DCE6 AUD macros will avoid buiding errors when using DCE6 headers
      Add dce60_aud_wall_dto_setup() w/o 512*Fs programming
      Use dce60_aud_wall_dto_setup() in dce60_funcs
      Add DCE specific dce60_audio_create
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      2a39b1f1
    • Mauro Rossi's avatar
      drm/amd/display: dc/dce60: set max_cursor_size to 64 · f17f90f4
      Mauro Rossi authored
      [Why]
      Issue in the Mouse cursor size in Linux Desktop Environments
      
      [How]
      In DCE6 dc->caps.max_cursor_size need to be set as 64 instead of 128
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      f17f90f4
    • Mauro Rossi's avatar
      drm/amd/display: dc/clk_mgr: add support for SI parts (v2) · 3ecb3b79
      Mauro Rossi authored
      (v1) Changelog
      
      [Why]
      After commit c69dd2d0 "drm/amd/display: Refactor clk_mgr functions"
      dc/clk_mgr requires these changes to add SI parts support
      Necessary to avoid hitting default: ASSERT(0); /* Unknown Asic */
      that would cause kernel freeze
      
      [How]
      Add case statement for FAMILY_SI chipsets
      
      (v2) Changelog
      
      [Why]
      DCE6 has no DPREFCLK_CNTL register
      
      [How]
      Add DCE6 specific macros definitions for CLK registers and masks
      Add DCE6 specific dce60/dce60_clk_mgr.c for DCE6 customization
      Code style: reuse all the public functions in dce100/dce_clk_mgr.h header
      Code style: use dce60_* static functions as per other DCE implementations
      Add dce60_get_dp_ref_freq_khz() w/o using DPREFCLK_CNTL register
      Use dce60_get_dp_ref_freq_khz() function in dce60_funcs
      Add DCE6 specific dce60_clk_mgr_construct
      dc/clk_mgr/dce_clk_mgr.c: use dce60_clk_mgr_construct for FAMILY_SI chipsets
      Add Makefile rules for dce60_clk_mgr.o target conditional to CONFIG_DRM_AMD_DC_SI
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      3ecb3b79
    • Mauro Rossi's avatar
      drm/amd/display: amdgpu_dm: add SI support (v4) · 55e56389
      Mauro Rossi authored
      [Why]
      amdgpu_dm.c requires changes for SI chipsets init and irq handlers registration
      
      [How]
      SI support: load_dmcu_fw(), amdgpu_dm_initialize_drm_device(), dm_early_init()
      Add DCE6 specific dce60_register_irq_handlers() function
      
      (v1) NOTE: As per Kaveri and older amdgpu.dc=1 kernel cmdline is required
      
      (v2) fix for bc011f9 ("drm/amdgpu: Change SI/CI gfx/sdma/smu init sequence")
           remove CHIP_HAINAN support since it does not have physical DCE6 module
      
      (v3) fix vblank irq support for DCE6 using ad hoc dce60_register_irq_handlers()
           replicating for vblank irq the behavior of dce110_register_irq_handlers()
           as per commit b57de80a ("drm/amd/display: Register on VLBLANK ISR.")
      
      (v4) updated due to following kernel 5.2 commit:
           b2fddb13 ("drm/amd/display: Drop underlay plane support")
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      55e56389
    • Mauro Rossi's avatar
      drm/amd/display: dc/irq: add support for DCE6 (v4) · 61bf3293
      Mauro Rossi authored
      [Why]
      irq service requires changes for DCE6 support
      
      [How]
      (v1) DCE6 targets are added replicating existing DCE8 implementation.
           due to missing CRTC_VERTICAL_INTERRUPT0_CONTROL registers/masks,
           dce/dce_8_0_{d,sh_mask}.h used instead of dce/dce_6_0_{d,sh_mask}.h
      
      (v2) DCE6 headers used adding the necessary vblank irq registers
           (INT_MASK and VBLANK_STATUS) and vblank irq masks as implemented
           in amdgpu driver.
           Add vblank_irq_info_funcs_dce60 with .set and .ack as per commit
           b10d51f8 ("drm/amd/display: Add interrupt entries for VBLANK isr.")
           and use it in vblank_int_entry(reg_num) macro definition
      
      (v3) updated due to following kernel 5.3 commit:
           4fc4dca8 ("drm/amd: drop use of drmp.h in os_types.h")
      
      (v4) updated due to following kernel 5.6 commit:
           d9e32672 ("drm/amd/display: cleanup of construct and destruct funcs")
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      61bf3293
    • Mauro Rossi's avatar
      drm/amd/display: dc/gpio: add support for DCE6 (v2) · b168930d
      Mauro Rossi authored
      [Why]
      hw_factory.c requires changes for DCE6 support
      
      [How]
      DCE6 targets added replicating and adapting existing DCE8 implementation.
      
      (v2) changes due to following commit:
          91db9311 ("drm/amd/display: refactor gpio to allocate hw_container in constructor")
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      b168930d
    • Mauro Rossi's avatar
      drm/amd/display: dc/bios: add support for DCE6 · c4a54f70
      Mauro Rossi authored
      [Why]
      command_table_helper.c requires changes for DCE6 support
      
      [How]
      DCE6 targets added replicating and adapting the existing DCE8 implementation.
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      c4a54f70
    • Mauro Rossi's avatar
      drm/amd/display: dc/core: add SI/DCE6 support (v2) · 683b5950
      Mauro Rossi authored
      [Why]
      resource_parse_asic_id() and dc_create_resource_pool() are missing SI/DCE6 cases
      
      [How]
      SI/DCE6 cases support added using existing DCE8 implementation as a reference
      
      (v2) updated due to following kernel 5.2 commit:
           d9673c92 ("drm/amd/display: Pass init_data into DCN resource creation")
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      683b5950
    • Mauro Rossi's avatar
      drm/amd/display: dc/dce: add initial DCE6 support (v10) · 7c15fd86
      Mauro Rossi authored
      [Why]
      DCE6 chipsets have a lot in common with DCE8, let's start from this
      
      [How]
      DCE6 targets are added replicating existing DCE8 implementation.
      
      NOTE: dce_8_0_{d,sh_mask}.h headers used instead of dce_6_0_{d,sh_mask}.h
      initial build prototype due to missing DCE6 macros/registers/masks
      DCE6 specific macros/registers/masks will be added with later commits
      
      (v2b) removed dce_version cases in dc/dce/dce_clock_source.c and
           updated dce60 due to following kernel 5.0 commits:
           24f7dd7e ("drm/amd/display: move pplib/smu notification to dccg block")
           9566b675 ("drm/amd/display: remove safe_to_lower flag from dc, use 2 functions instead")
           4244381c ("drm/amd/display: clean up base dccg struct")
           4c5e8b54 ("drm/amd/display: split dccg clock manager into asic folders")
           84e7fc05 ("drm/amd/display: rename dccg to clk_mgr")
           77f6916a ("drm/amd/display: Remove duplicate header")
           9f7ddbea ("drm/amd/display: fix optimize_bandwidth func pointer for dce80")
           4ece61a2 ("drm/amd/display: set clocks to 0 on suspend on dce80")
      
      (v3b) updated dce60 due to following kernel 5.1 commits:
           380604e2 ("drm/amd/display: Use 100 Hz precision for pipe pixel clocks")
           32e61361 ("drm/amd/display: Fix 64-bit division for 32-bit builds")
           1877ccf6 ("drm/amd/display: Change from aux_engine to dce_aux")
           c69dffab ("drm/amd/display: fix eDP fast bootup for pre-raven asic")
      
      (v4b) updated dce60 due to following kernel 5.2 commits:
           e5c41970 ("drm/amd/display: Add plane capabilities to dc_caps")
           813d20dc ("drm/amd/display: Fix multi-thread writing to 1 state")
           ea36ad34 ("drm/amd/display: expand plane caps to include fp16 and scaling capability")
           afcd526b ("drm/amd/display: Add fast_validate parameter")
      
      (v5b) updated dce60 due to following kernel 5.3 commits:
           e7e10c46 ("drm/amd/display: stop external access to internal optc sync params")
           78cc70b1 ("drm/amd/display: Engine-specific encoder allocation")
           dc88b4a6 ("drm/amd/display: make clk mgr soc specific")
           4fc4dca8 ("drm/amd: drop use of drmp.h in os_types.h")
      
      (v6b) updated dce60 due to following kernel 5.4 commits:
           54a9bcb0 ("drm/amd/display: Fix a typo - dce_aduio_mask --> dce_audio_mask")
           9adc8050 ("drm/amd/display: make firmware info only load once during dc_bios create")
      
      (v7b) updated dce60 due to following kernel 5.5 commits:
           cabe144b ("drm/amd/display: memory leak")
           8276dd87 ("drm/amd/display: update register field access mechanism")
           f6040a43 ("drm/amd/display: configurable aux timeout support")
           bf7f5ac3 ("drm/amd/display: map TRANSMITTER_UNIPHY_x to LINK_REGS_x")
      
      (v8b) updated dce60 due to following kernel 5.6 commits:
           d9e32672 ("drm/amd/display: cleanup of construct and destruct funcs")
           f42ea55b ("drm/amd/display: add separate of private hwss functions")
      
      (v9b) updated dce60 due to following kernel 5.8 commits:
           bba8289 ("drm/amd/display: code clean up in dce80_hw_sequencer.c")
           904fb6e0 ("drm/amd/display: move panel power seq to new panel struct")
           d4caa72e ("drm/amd/display: change from panel to panel cntl")
      
      (v10) Fix up PLL handling for DCE6:
           DCE6.0 supports 2 PLLs.  DCE6.1 supports 3 PLLs. (Alex)
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      7c15fd86
    • Mauro Rossi's avatar
      drm/amd/display: add asics info for SI parts · f233c098
      Mauro Rossi authored
      [Why]
      Asic info for SI parts need to be preliminarly added
      
      [How]
      Asics info retrieved from si_id.h in https://github.com/GPUOpen-Tools/CodeXL
      
      Tree path:
      ./CodeXL/Components/ShaderAnalyzer/AMDTBackEnd/Include/Common/asic_reg/si_id.h
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMauro Rossi <issor.oruam@gmail.com>
      f233c098
    • Alex Deucher's avatar
      drm/amdgpu: add some required DCE6 registers (v7) · 6863660d
      Alex Deucher authored
      To help with the DC port.
      
      v2: add missing masks, add additional registers
      v3: more updates
      v4: fix accidently dropped changes
      v5: add missing nb pstate mask
      v6: add vblank, vline masks
      v7: add SCL_HORZ_FILTER_INIT regs
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      6863660d
    • Dan Carpenter's avatar
      drm/amd/powerplay: off by one bugs in smu_cmn_to_asic_specific_index() · 9b66d660
      Dan Carpenter authored
      These tables have _COUNT number of elements so the comparisons should be
      >= instead of > to prevent reading one element beyond the end of the
      array.
      
      Fixes: 8264ee69 ("drm/amd/powerplay: drop unused code")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      9b66d660
    • Christophe JAILLET's avatar
      drm/radeon: switch from 'pci_' to 'dma_' API · 4c0d0bcb
      Christophe JAILLET authored
      The wrappers in include/linux/pci-dma-compat.h should go away.
      
      The patch has been generated with the coccinelle script below and has been
      hand modified to replace GFP_ with a correct flag.
      It has been compile tested.
      
      When memory is allocated in 'radeon_gart_table_ram_alloc()' GFP_KERNEL
      can be used because its callers already use this flag.
      
      Both 'r100_pci_gart_init()' (r100.c) and 'rs400_gart_init()' (rs400.c)
      call 'radeon_gart_init()'.
      This function uses 'vmalloc'.
      
      @@
      @@
      -    PCI_DMA_BIDIRECTIONAL
      +    DMA_BIDIRECTIONAL
      
      @@
      @@
      -    PCI_DMA_TODEVICE
      +    DMA_TO_DEVICE
      
      @@
      @@
      -    PCI_DMA_FROMDEVICE
      +    DMA_FROM_DEVICE
      
      @@
      @@
      -    PCI_DMA_NONE
      +    DMA_NONE
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_alloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_zalloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_free_consistent(e1, e2, e3, e4)
      +    dma_free_coherent(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_single(e1, e2, e3, e4)
      +    dma_map_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_single(e1, e2, e3, e4)
      +    dma_unmap_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4, e5;
      @@
      -    pci_map_page(e1, e2, e3, e4, e5)
      +    dma_map_page(&e1->dev, e2, e3, e4, e5)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_page(e1, e2, e3, e4)
      +    dma_unmap_page(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_sg(e1, e2, e3, e4)
      +    dma_map_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_sg(e1, e2, e3, e4)
      +    dma_unmap_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
      +    dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_device(e1, e2, e3, e4)
      +    dma_sync_single_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
      +    dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_device(e1, e2, e3, e4)
      +    dma_sync_sg_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2;
      @@
      -    pci_dma_mapping_error(e1, e2)
      +    dma_mapping_error(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_dma_mask(e1, e2)
      +    dma_set_mask(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_consistent_dma_mask(e1, e2)
      +    dma_set_coherent_mask(&e1->dev, e2)
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      4c0d0bcb