LCOV - code coverage report
Current view: top level - drivers/gpu/drm/amd/display/dc/dcn31 - dcn31_hubp.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 23 0.0 %
Date: 2022-12-09 01:23:36 Functions: 0 4 0.0 %

          Line data    Source code
       1             : /*
       2             :  * Copyright 2012-20 Advanced Micro Devices, Inc.
       3             :  *
       4             :  * Permission is hereby granted, free of charge, to any person obtaining a
       5             :  * copy of this software and associated documentation files (the "Software"),
       6             :  * to deal in the Software without restriction, including without limitation
       7             :  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
       8             :  * and/or sell copies of the Software, and to permit persons to whom the
       9             :  * Software is furnished to do so, subject to the following conditions:
      10             :  *
      11             :  * The above copyright notice and this permission notice shall be included in
      12             :  * all copies or substantial portions of the Software.
      13             :  *
      14             :  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      15             :  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      16             :  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
      17             :  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
      18             :  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
      19             :  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
      20             :  * OTHER DEALINGS IN THE SOFTWARE.
      21             :  *
      22             :  * Authors: AMD
      23             :  *
      24             :  */
      25             : 
      26             : #include "dm_services.h"
      27             : #include "dce_calcs.h"
      28             : #include "reg_helper.h"
      29             : #include "basics/conversion.h"
      30             : #include "dcn31_hubp.h"
      31             : 
      32             : #define REG(reg)\
      33             :         hubp2->hubp_regs->reg
      34             : 
      35             : #define CTX \
      36             :         hubp2->base.ctx
      37             : 
      38             : #undef FN
      39             : #define FN(reg_name, field_name) \
      40             :         hubp2->hubp_shift->field_name, hubp2->hubp_mask->field_name
      41             : 
      42           0 : void hubp31_set_unbounded_requesting(struct hubp *hubp, bool enable)
      43             : {
      44           0 :         struct dcn20_hubp *hubp2 = TO_DCN20_HUBP(hubp);
      45             : 
      46           0 :         REG_UPDATE(DCHUBP_CNTL, HUBP_UNBOUNDED_REQ_MODE, enable);
      47           0 :         REG_UPDATE(CURSOR_CONTROL, CURSOR_REQ_MODE, enable);
      48           0 : }
      49             : 
      50           0 : void hubp31_soft_reset(struct hubp *hubp, bool reset)
      51             : {
      52           0 :         struct dcn20_hubp *hubp2 = TO_DCN20_HUBP(hubp);
      53             : 
      54           0 :         REG_UPDATE(DCHUBP_CNTL, HUBP_SOFT_RESET, reset);
      55           0 : }
      56             : 
      57           0 : static void hubp31_program_extended_blank(struct hubp *hubp,
      58             :                                           unsigned int min_dst_y_next_start_optimized)
      59             : {
      60           0 :         struct dcn20_hubp *hubp2 = TO_DCN20_HUBP(hubp);
      61             : 
      62           0 :         REG_UPDATE(BLANK_OFFSET_1, MIN_DST_Y_NEXT_START, min_dst_y_next_start_optimized);
      63           0 : }
      64             : 
      65             : static struct hubp_funcs dcn31_hubp_funcs = {
      66             :         .hubp_enable_tripleBuffer = hubp2_enable_triplebuffer,
      67             :         .hubp_is_triplebuffer_enabled = hubp2_is_triplebuffer_enabled,
      68             :         .hubp_program_surface_flip_and_addr = hubp3_program_surface_flip_and_addr,
      69             :         .hubp_program_surface_config = hubp3_program_surface_config,
      70             :         .hubp_is_flip_pending = hubp2_is_flip_pending,
      71             :         .hubp_setup = hubp3_setup,
      72             :         .hubp_setup_interdependent = hubp2_setup_interdependent,
      73             :         .hubp_set_vm_system_aperture_settings = hubp3_set_vm_system_aperture_settings,
      74             :         .set_blank = hubp2_set_blank,
      75             :         .dcc_control = hubp3_dcc_control,
      76             :         .mem_program_viewport = min_set_viewport,
      77             :         .set_cursor_attributes  = hubp2_cursor_set_attributes,
      78             :         .set_cursor_position    = hubp2_cursor_set_position,
      79             :         .hubp_clk_cntl = hubp2_clk_cntl,
      80             :         .hubp_vtg_sel = hubp2_vtg_sel,
      81             :         .dmdata_set_attributes = hubp3_dmdata_set_attributes,
      82             :         .dmdata_load = hubp2_dmdata_load,
      83             :         .dmdata_status_done = hubp2_dmdata_status_done,
      84             :         .hubp_read_state = hubp3_read_state,
      85             :         .hubp_clear_underflow = hubp2_clear_underflow,
      86             :         .hubp_set_flip_control_surface_gsl = hubp2_set_flip_control_surface_gsl,
      87             :         .hubp_init = hubp3_init,
      88             :         .set_unbounded_requesting = hubp31_set_unbounded_requesting,
      89             :         .hubp_soft_reset = hubp31_soft_reset,
      90             :         .hubp_in_blank = hubp1_in_blank,
      91             :         .program_extended_blank = hubp31_program_extended_blank,
      92             : };
      93             : 
      94           0 : bool hubp31_construct(
      95             :         struct dcn20_hubp *hubp2,
      96             :         struct dc_context *ctx,
      97             :         uint32_t inst,
      98             :         const struct dcn_hubp2_registers *hubp_regs,
      99             :         const struct dcn_hubp2_shift *hubp_shift,
     100             :         const struct dcn_hubp2_mask *hubp_mask)
     101             : {
     102           0 :         hubp2->base.funcs = &dcn31_hubp_funcs;
     103           0 :         hubp2->base.ctx = ctx;
     104           0 :         hubp2->hubp_regs = hubp_regs;
     105           0 :         hubp2->hubp_shift = hubp_shift;
     106           0 :         hubp2->hubp_mask = hubp_mask;
     107           0 :         hubp2->base.inst = inst;
     108           0 :         hubp2->base.opp_id = OPP_ID_INVALID;
     109           0 :         hubp2->base.mpcc_id = 0xf;
     110             : 
     111           0 :         return true;
     112             : }

Generated by: LCOV version 1.14