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

          Line data    Source code
       1             : /*
       2             :  * Copyright 2012-15 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 "bios_parser_common.h"
      27             : #include "include/grph_object_ctrl_defs.h"
      28             : 
      29             : static enum object_type object_type_from_bios_object_id(uint32_t bios_object_id)
      30             : {
      31           0 :         uint32_t bios_object_type = (bios_object_id & OBJECT_TYPE_MASK)
      32           0 :                                 >> OBJECT_TYPE_SHIFT;
      33             :         enum object_type object_type;
      34             : 
      35             :         switch (bios_object_type) {
      36             :         case GRAPH_OBJECT_TYPE_GPU:
      37             :                 object_type = OBJECT_TYPE_GPU;
      38             :                 break;
      39             :         case GRAPH_OBJECT_TYPE_ENCODER:
      40             :                 object_type = OBJECT_TYPE_ENCODER;
      41             :                 break;
      42             :         case GRAPH_OBJECT_TYPE_CONNECTOR:
      43             :                 object_type = OBJECT_TYPE_CONNECTOR;
      44             :                 break;
      45             :         case GRAPH_OBJECT_TYPE_ROUTER:
      46             :                 object_type = OBJECT_TYPE_ROUTER;
      47             :                 break;
      48             :         case GRAPH_OBJECT_TYPE_GENERIC:
      49             :                 object_type = OBJECT_TYPE_GENERIC;
      50             :                 break;
      51             :         default:
      52             :                 object_type = OBJECT_TYPE_UNKNOWN;
      53             :                 break;
      54             :         }
      55             : 
      56             :         return object_type;
      57             : }
      58             : 
      59             : static enum object_enum_id enum_id_from_bios_object_id(uint32_t bios_object_id)
      60             : {
      61           0 :         uint32_t bios_enum_id =
      62           0 :                         (bios_object_id & ENUM_ID_MASK) >> ENUM_ID_SHIFT;
      63             :         enum object_enum_id id;
      64             : 
      65             :         switch (bios_enum_id) {
      66             :         case GRAPH_OBJECT_ENUM_ID1:
      67             :                 id = ENUM_ID_1;
      68             :                 break;
      69             :         case GRAPH_OBJECT_ENUM_ID2:
      70             :                 id = ENUM_ID_2;
      71             :                 break;
      72             :         case GRAPH_OBJECT_ENUM_ID3:
      73             :                 id = ENUM_ID_3;
      74             :                 break;
      75             :         case GRAPH_OBJECT_ENUM_ID4:
      76             :                 id = ENUM_ID_4;
      77             :                 break;
      78             :         case GRAPH_OBJECT_ENUM_ID5:
      79             :                 id = ENUM_ID_5;
      80             :                 break;
      81             :         case GRAPH_OBJECT_ENUM_ID6:
      82             :                 id = ENUM_ID_6;
      83             :                 break;
      84             :         case GRAPH_OBJECT_ENUM_ID7:
      85             :                 id = ENUM_ID_7;
      86             :                 break;
      87             :         default:
      88             :                 id = ENUM_ID_UNKNOWN;
      89             :                 break;
      90             :         }
      91             : 
      92             :         return id;
      93             : }
      94             : 
      95             : static uint32_t gpu_id_from_bios_object_id(uint32_t bios_object_id)
      96             : {
      97           0 :         return (bios_object_id & OBJECT_ID_MASK) >> OBJECT_ID_SHIFT;
      98             : }
      99             : 
     100           0 : static enum encoder_id encoder_id_from_bios_object_id(uint32_t bios_object_id)
     101             : {
     102           0 :         uint32_t bios_encoder_id = gpu_id_from_bios_object_id(bios_object_id);
     103             :         enum encoder_id id;
     104             : 
     105           0 :         switch (bios_encoder_id) {
     106             :         case ENCODER_OBJECT_ID_INTERNAL_LVDS:
     107             :                 id = ENCODER_ID_INTERNAL_LVDS;
     108             :                 break;
     109             :         case ENCODER_OBJECT_ID_INTERNAL_TMDS1:
     110           0 :                 id = ENCODER_ID_INTERNAL_TMDS1;
     111           0 :                 break;
     112             :         case ENCODER_OBJECT_ID_INTERNAL_TMDS2:
     113           0 :                 id = ENCODER_ID_INTERNAL_TMDS2;
     114           0 :                 break;
     115             :         case ENCODER_OBJECT_ID_INTERNAL_DAC1:
     116           0 :                 id = ENCODER_ID_INTERNAL_DAC1;
     117           0 :                 break;
     118             :         case ENCODER_OBJECT_ID_INTERNAL_DAC2:
     119           0 :                 id = ENCODER_ID_INTERNAL_DAC2;
     120           0 :                 break;
     121             :         case ENCODER_OBJECT_ID_INTERNAL_LVTM1:
     122           0 :                 id = ENCODER_ID_INTERNAL_LVTM1;
     123           0 :                 break;
     124             :         case ENCODER_OBJECT_ID_HDMI_INTERNAL:
     125           0 :                 id = ENCODER_ID_INTERNAL_HDMI;
     126           0 :                 break;
     127             :         case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1:
     128           0 :                 id = ENCODER_ID_INTERNAL_KLDSCP_TMDS1;
     129           0 :                 break;
     130             :         case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
     131           0 :                 id = ENCODER_ID_INTERNAL_KLDSCP_DAC1;
     132           0 :                 break;
     133             :         case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
     134           0 :                 id = ENCODER_ID_INTERNAL_KLDSCP_DAC2;
     135           0 :                 break;
     136             :         case ENCODER_OBJECT_ID_MVPU_FPGA:
     137           0 :                 id = ENCODER_ID_EXTERNAL_MVPU_FPGA;
     138           0 :                 break;
     139             :         case ENCODER_OBJECT_ID_INTERNAL_DDI:
     140           0 :                 id = ENCODER_ID_INTERNAL_DDI;
     141           0 :                 break;
     142             :         case ENCODER_OBJECT_ID_INTERNAL_UNIPHY:
     143           0 :                 id = ENCODER_ID_INTERNAL_UNIPHY;
     144           0 :                 break;
     145             :         case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
     146           0 :                 id = ENCODER_ID_INTERNAL_KLDSCP_LVTMA;
     147           0 :                 break;
     148             :         case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1:
     149           0 :                 id = ENCODER_ID_INTERNAL_UNIPHY1;
     150           0 :                 break;
     151             :         case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2:
     152           0 :                 id = ENCODER_ID_INTERNAL_UNIPHY2;
     153           0 :                 break;
     154             :         case ENCODER_OBJECT_ID_ALMOND: /* ENCODER_OBJECT_ID_NUTMEG */
     155           0 :                 id = ENCODER_ID_EXTERNAL_NUTMEG;
     156           0 :                 break;
     157             :         case ENCODER_OBJECT_ID_TRAVIS:
     158           0 :                 id = ENCODER_ID_EXTERNAL_TRAVIS;
     159           0 :                 break;
     160             :         case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3:
     161           0 :                 id = ENCODER_ID_INTERNAL_UNIPHY3;
     162           0 :                 break;
     163             :         default:
     164           0 :                 id = ENCODER_ID_UNKNOWN;
     165           0 :                 ASSERT(0);
     166             :                 break;
     167             :         }
     168             : 
     169           0 :         return id;
     170             : }
     171             : 
     172             : static enum connector_id connector_id_from_bios_object_id(
     173             :         uint32_t bios_object_id)
     174             : {
     175           0 :         uint32_t bios_connector_id = gpu_id_from_bios_object_id(bios_object_id);
     176             : 
     177             :         enum connector_id id;
     178             : 
     179             :         switch (bios_connector_id) {
     180             :         case CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I:
     181             :                 id = CONNECTOR_ID_SINGLE_LINK_DVII;
     182             :                 break;
     183             :         case CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I:
     184             :                 id = CONNECTOR_ID_DUAL_LINK_DVII;
     185             :                 break;
     186             :         case CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D:
     187             :                 id = CONNECTOR_ID_SINGLE_LINK_DVID;
     188             :                 break;
     189             :         case CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D:
     190             :                 id = CONNECTOR_ID_DUAL_LINK_DVID;
     191             :                 break;
     192             :         case CONNECTOR_OBJECT_ID_VGA:
     193             :                 id = CONNECTOR_ID_VGA;
     194             :                 break;
     195             :         case CONNECTOR_OBJECT_ID_HDMI_TYPE_A:
     196             :                 id = CONNECTOR_ID_HDMI_TYPE_A;
     197             :                 break;
     198             :         case CONNECTOR_OBJECT_ID_LVDS:
     199             :                 id = CONNECTOR_ID_LVDS;
     200             :                 break;
     201             :         case CONNECTOR_OBJECT_ID_PCIE_CONNECTOR:
     202             :                 id = CONNECTOR_ID_PCIE;
     203             :                 break;
     204             :         case CONNECTOR_OBJECT_ID_HARDCODE_DVI:
     205             :                 id = CONNECTOR_ID_HARDCODE_DVI;
     206             :                 break;
     207             :         case CONNECTOR_OBJECT_ID_DISPLAYPORT:
     208             :                 id = CONNECTOR_ID_DISPLAY_PORT;
     209             :                 break;
     210             :         case CONNECTOR_OBJECT_ID_eDP:
     211             :                 id = CONNECTOR_ID_EDP;
     212             :                 break;
     213             :         case CONNECTOR_OBJECT_ID_MXM:
     214             :                 id = CONNECTOR_ID_MXM;
     215             :                 break;
     216             :         case CONNECTOR_OBJECT_ID_USBC:
     217             :                 id = CONNECTOR_ID_USBC;
     218             :                 break;
     219             :         default:
     220             :                 id = CONNECTOR_ID_UNKNOWN;
     221             :                 break;
     222             :         }
     223             : 
     224             :         return id;
     225             : }
     226             : 
     227             : static enum generic_id generic_id_from_bios_object_id(uint32_t bios_object_id)
     228             : {
     229           0 :         uint32_t bios_generic_id = gpu_id_from_bios_object_id(bios_object_id);
     230             : 
     231             :         enum generic_id id;
     232             : 
     233             :         switch (bios_generic_id) {
     234             :         case GENERIC_OBJECT_ID_MXM_OPM:
     235             :                 id = GENERIC_ID_MXM_OPM;
     236             :                 break;
     237             :         case GENERIC_OBJECT_ID_GLSYNC:
     238             :                 id = GENERIC_ID_GLSYNC;
     239             :                 break;
     240             :         case GENERIC_OBJECT_ID_STEREO_PIN:
     241             :                 id = GENERIC_ID_STEREO;
     242             :                 break;
     243             :         default:
     244             :                 id = GENERIC_ID_UNKNOWN;
     245             :                 break;
     246             :         }
     247             : 
     248             :         return id;
     249             : }
     250             : 
     251           0 : static uint32_t id_from_bios_object_id(enum object_type type,
     252             :         uint32_t bios_object_id)
     253             : {
     254           0 :         switch (type) {
     255             :         case OBJECT_TYPE_GPU:
     256           0 :                 return gpu_id_from_bios_object_id(bios_object_id);
     257             :         case OBJECT_TYPE_ENCODER:
     258           0 :                 return (uint32_t)encoder_id_from_bios_object_id(bios_object_id);
     259             :         case OBJECT_TYPE_CONNECTOR:
     260             :                 return (uint32_t)connector_id_from_bios_object_id(
     261             :                                 bios_object_id);
     262             :         case OBJECT_TYPE_GENERIC:
     263             :                 return generic_id_from_bios_object_id(bios_object_id);
     264             :         default:
     265             :                 return 0;
     266             :         }
     267             : }
     268             : 
     269           0 : struct graphics_object_id object_id_from_bios_object_id(uint32_t bios_object_id)
     270             : {
     271             :         enum object_type type;
     272             :         enum object_enum_id enum_id;
     273           0 :         struct graphics_object_id go_id = { 0 };
     274             : 
     275           0 :         type = object_type_from_bios_object_id(bios_object_id);
     276             : 
     277           0 :         if (OBJECT_TYPE_UNKNOWN == type)
     278           0 :                 return go_id;
     279             : 
     280           0 :         enum_id = enum_id_from_bios_object_id(bios_object_id);
     281             : 
     282           0 :         if (ENUM_ID_UNKNOWN == enum_id)
     283           0 :                 return go_id;
     284             : 
     285           0 :         go_id = dal_graphics_object_id_init(
     286             :                         id_from_bios_object_id(type, bios_object_id), enum_id, type);
     287             : 
     288           0 :         return go_id;
     289             : }
     290             : 
     291             : 

Generated by: LCOV version 1.14