Back to home page

OSCL-LXR

 
 

    


0001 /****************************************************************************\
0002 * 
0003 *  Module Name    displayobjectsoc15.h
0004 *  Project        
0005 *  Device         
0006 *
0007 *  Description    Contains the common definitions for display objects for SoC15 products.
0008 *
0009 *  Copyright 2014 Advanced Micro Devices, Inc.
0010 *
0011 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 
0012 * and associated documentation files (the "Software"), to deal in the Software without restriction,
0013 * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
0014 * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
0015 * subject to the following conditions:
0016 *
0017 * The above copyright notice and this permission notice shall be included in all copies or substantial
0018 * portions of the Software.
0019 *
0020 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0021 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0022 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
0023 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
0024 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
0025 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0026 * OTHER DEALINGS IN THE SOFTWARE.
0027 *
0028 \****************************************************************************/
0029 #ifndef _DISPLAY_OBJECT_SOC15_H_
0030 #define _DISPLAY_OBJECT_SOC15_H_
0031 
0032 #if defined(_X86_)
0033 #pragma pack(1)
0034 #endif
0035 
0036 
0037 /****************************************************
0038 * Display Object Type Definition 
0039 *****************************************************/
0040 enum display_object_type{
0041 DISPLAY_OBJECT_TYPE_NONE                        =0x00,
0042 DISPLAY_OBJECT_TYPE_GPU                         =0x01,
0043 DISPLAY_OBJECT_TYPE_ENCODER                     =0x02,
0044 DISPLAY_OBJECT_TYPE_CONNECTOR                   =0x03
0045 };
0046 
0047 /****************************************************
0048 * Encorder Object Type Definition 
0049 *****************************************************/
0050 enum encoder_object_type{
0051 ENCODER_OBJECT_ID_NONE                           =0x00,
0052 ENCODER_OBJECT_ID_INTERNAL_UNIPHY                =0x01,
0053 ENCODER_OBJECT_ID_INTERNAL_UNIPHY1               =0x02,
0054 ENCODER_OBJECT_ID_INTERNAL_UNIPHY2               =0x03,
0055 };
0056 
0057 
0058 /****************************************************
0059 * Connector Object ID Definition 
0060 *****************************************************/
0061 
0062 enum connector_object_type{
0063 CONNECTOR_OBJECT_ID_NONE                          =0x00, 
0064 CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D             =0x01,
0065 CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D               =0x02,
0066 CONNECTOR_OBJECT_ID_HDMI_TYPE_A                   =0x03,
0067 CONNECTOR_OBJECT_ID_LVDS                          =0x04,
0068 CONNECTOR_OBJECT_ID_DISPLAYPORT                   =0x05,
0069 CONNECTOR_OBJECT_ID_eDP                           =0x06,
0070 CONNECTOR_OBJECT_ID_OPM                           =0x07
0071 };
0072 
0073 
0074 /****************************************************
0075 * Protection Object ID Definition 
0076 *****************************************************/
0077 //No need
0078 
0079 /****************************************************
0080 *  Object ENUM ID Definition 
0081 *****************************************************/
0082 
0083 enum object_enum_id{
0084 OBJECT_ENUM_ID1                                   =0x01,
0085 OBJECT_ENUM_ID2                                   =0x02,
0086 OBJECT_ENUM_ID3                                   =0x03,
0087 OBJECT_ENUM_ID4                                   =0x04,
0088 OBJECT_ENUM_ID5                                   =0x05,
0089 OBJECT_ENUM_ID6                                   =0x06
0090 };
0091 
0092 /****************************************************
0093 *Object ID Bit definition 
0094 *****************************************************/
0095 enum object_id_bit{
0096 OBJECT_ID_MASK                                    =0x00FF,
0097 ENUM_ID_MASK                                      =0x0F00,
0098 OBJECT_TYPE_MASK                                  =0xF000,
0099 OBJECT_ID_SHIFT                                   =0x00,
0100 ENUM_ID_SHIFT                                     =0x08,
0101 OBJECT_TYPE_SHIFT                                 =0x0C
0102 };
0103 
0104 
0105 /****************************************************
0106 * GPU Object definition - Shared with BIOS
0107 *****************************************************/
0108 enum gpu_objet_def{
0109 GPU_ENUM_ID1                            =( DISPLAY_OBJECT_TYPE_GPU << OBJECT_TYPE_SHIFT | OBJECT_ENUM_ID1 << ENUM_ID_SHIFT)
0110 };
0111 
0112 /****************************************************
0113 * Encoder Object definition - Shared with BIOS
0114 *****************************************************/
0115 
0116 enum encoder_objet_def{
0117 ENCODER_INTERNAL_UNIPHY_ENUM_ID1         =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
0118                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0119                                                  ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT),
0120 
0121 ENCODER_INTERNAL_UNIPHY_ENUM_ID2         =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
0122                                                  OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
0123                                                  ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT),
0124 
0125 ENCODER_INTERNAL_UNIPHY1_ENUM_ID1        =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
0126                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0127                                                  ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT),
0128 
0129 ENCODER_INTERNAL_UNIPHY1_ENUM_ID2        =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
0130                                                  OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
0131                                                  ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT),
0132 
0133 ENCODER_INTERNAL_UNIPHY2_ENUM_ID1        =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
0134                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0135                                                  ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT),
0136 
0137 ENCODER_INTERNAL_UNIPHY2_ENUM_ID2        =( DISPLAY_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
0138                                                  OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
0139                                                  ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT)
0140 };
0141 
0142 
0143 /****************************************************
0144 * Connector Object definition - Shared with BIOS
0145 *****************************************************/
0146 
0147 
0148 enum connector_objet_def{
0149 CONNECTOR_LVDS_ENUM_ID1                         =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0150                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0151                                                  CONNECTOR_OBJECT_ID_LVDS << OBJECT_ID_SHIFT),
0152 
0153 
0154 CONNECTOR_eDP_ENUM_ID1                          =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0155                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0156                                                  CONNECTOR_OBJECT_ID_eDP << OBJECT_ID_SHIFT),
0157 
0158 CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID1            =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0159                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0160                                                  CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT),
0161 
0162 CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID2            =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0163                                                  OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
0164                                                  CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT),
0165 
0166 
0167 CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID1              =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0168                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0169                                                  CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT),
0170 
0171 CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID2              =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0172                                                  OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
0173                                                  CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT),
0174 
0175 CONNECTOR_HDMI_TYPE_A_ENUM_ID1                  =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0176                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0177                                                  CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT),
0178 
0179 CONNECTOR_HDMI_TYPE_A_ENUM_ID2                  =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0180                                                  OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
0181                                                  CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT),
0182 
0183 CONNECTOR_DISPLAYPORT_ENUM_ID1                  =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0184                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0185                                                  CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT),
0186 
0187 CONNECTOR_DISPLAYPORT_ENUM_ID2                  =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0188                                                  OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
0189                                                  CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT),
0190 
0191 CONNECTOR_DISPLAYPORT_ENUM_ID3                  =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0192                                                  OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\
0193                                                  CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT),
0194 
0195 CONNECTOR_DISPLAYPORT_ENUM_ID4                  =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0196                                                  OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\
0197                                                  CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT),
0198 
0199 CONNECTOR_OPM_ENUM_ID1                          =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0200                                                  OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
0201                                                  CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_DP_A
0202 
0203 CONNECTOR_OPM_ENUM_ID2                          =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0204                                                  OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
0205                                                  CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_DP_B
0206 
0207 CONNECTOR_OPM_ENUM_ID3                          =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0208                                                  OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\
0209                                                  CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_DP_C
0210 
0211 CONNECTOR_OPM_ENUM_ID4                          =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0212                                                  OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\
0213                                                  CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_DP_D
0214 
0215 CONNECTOR_OPM_ENUM_ID5                          =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0216                                                  OBJECT_ENUM_ID5 << ENUM_ID_SHIFT |\
0217                                                  CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT),          //Mapping to MXM_LVDS_TXxx
0218 
0219 
0220 CONNECTOR_OPM_ENUM_ID6                          =( DISPLAY_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
0221                                                  OBJECT_ENUM_ID6 << ENUM_ID_SHIFT |\
0222                                                  CONNECTOR_OBJECT_ID_OPM << OBJECT_ID_SHIFT)         //Mapping to MXM_LVDS_TXxx
0223 };
0224 
0225 /****************************************************
0226 * Router Object ID definition - Shared with BIOS
0227 *****************************************************/
0228 //No Need, in future we ever need, we can define a record in atomfirwareSoC15.h associated with an object that has this router
0229 
0230 
0231 /****************************************************
0232 * PROTECTION Object ID definition - Shared with BIOS
0233 *****************************************************/
0234 //No need,in future we ever need, all display path are capable of protection now.
0235 
0236 /****************************************************
0237 * Generic Object ID definition - Shared with BIOS
0238 *****************************************************/
0239 //No need, in future we ever need like GLsync, we can define a record in atomfirwareSoC15.h associated with an object.
0240 
0241 
0242 #if defined(_X86_)
0243 #pragma pack()
0244 #endif
0245 
0246 #endif
0247 
0248 
0249