| .. | .. |
|---|
| 25 | 25 | |
|---|
| 26 | 26 | #ifndef __DAL_AUX_ENGINE_DCE110_H__ |
|---|
| 27 | 27 | #define __DAL_AUX_ENGINE_DCE110_H__ |
|---|
| 28 | | -#include "aux_engine.h" |
|---|
| 28 | + |
|---|
| 29 | +#include "i2caux_interface.h" |
|---|
| 30 | +#include "inc/hw/aux_engine.h" |
|---|
| 31 | + |
|---|
| 32 | + |
|---|
| 33 | +#define AUX_COMMON_REG_LIST0(id)\ |
|---|
| 34 | + SRI(AUX_CONTROL, DP_AUX, id), \ |
|---|
| 35 | + SRI(AUX_ARB_CONTROL, DP_AUX, id), \ |
|---|
| 36 | + SRI(AUX_SW_DATA, DP_AUX, id), \ |
|---|
| 37 | + SRI(AUX_SW_CONTROL, DP_AUX, id), \ |
|---|
| 38 | + SRI(AUX_INTERRUPT_CONTROL, DP_AUX, id), \ |
|---|
| 39 | + SRI(AUX_DPHY_RX_CONTROL1, DP_AUX, id), \ |
|---|
| 40 | + SRI(AUX_SW_STATUS, DP_AUX, id) |
|---|
| 29 | 41 | |
|---|
| 30 | 42 | #define AUX_COMMON_REG_LIST(id)\ |
|---|
| 31 | 43 | SRI(AUX_CONTROL, DP_AUX, id), \ |
|---|
| .. | .. |
|---|
| 43 | 55 | uint32_t AUX_SW_DATA; |
|---|
| 44 | 56 | uint32_t AUX_SW_CONTROL; |
|---|
| 45 | 57 | uint32_t AUX_INTERRUPT_CONTROL; |
|---|
| 58 | + uint32_t AUX_DPHY_RX_CONTROL1; |
|---|
| 46 | 59 | uint32_t AUX_SW_STATUS; |
|---|
| 47 | 60 | uint32_t AUXN_IMPCAL; |
|---|
| 48 | 61 | uint32_t AUXP_IMPCAL; |
|---|
| 49 | 62 | |
|---|
| 50 | 63 | uint32_t AUX_RESET_MASK; |
|---|
| 51 | 64 | }; |
|---|
| 65 | + |
|---|
| 66 | +#define DCE_AUX_REG_FIELD_LIST(type)\ |
|---|
| 67 | + type AUX_EN;\ |
|---|
| 68 | + type AUX_RESET;\ |
|---|
| 69 | + type AUX_RESET_DONE;\ |
|---|
| 70 | + type AUX_REG_RW_CNTL_STATUS;\ |
|---|
| 71 | + type AUX_SW_USE_AUX_REG_REQ;\ |
|---|
| 72 | + type AUX_SW_DONE_USING_AUX_REG;\ |
|---|
| 73 | + type AUX_SW_AUTOINCREMENT_DISABLE;\ |
|---|
| 74 | + type AUX_SW_DATA_RW;\ |
|---|
| 75 | + type AUX_SW_INDEX;\ |
|---|
| 76 | + type AUX_SW_GO;\ |
|---|
| 77 | + type AUX_SW_DATA;\ |
|---|
| 78 | + type AUX_SW_REPLY_BYTE_COUNT;\ |
|---|
| 79 | + type AUX_SW_DONE;\ |
|---|
| 80 | + type AUX_SW_DONE_ACK;\ |
|---|
| 81 | + type AUXN_IMPCAL_ENABLE;\ |
|---|
| 82 | + type AUXP_IMPCAL_ENABLE;\ |
|---|
| 83 | + type AUXN_IMPCAL_OVERRIDE_ENABLE;\ |
|---|
| 84 | + type AUXP_IMPCAL_OVERRIDE_ENABLE;\ |
|---|
| 85 | + type AUX_RX_TIMEOUT_LEN;\ |
|---|
| 86 | + type AUX_RX_TIMEOUT_LEN_MUL;\ |
|---|
| 87 | + type AUXN_CALOUT_ERROR_AK;\ |
|---|
| 88 | + type AUXP_CALOUT_ERROR_AK;\ |
|---|
| 89 | + type AUX_SW_START_DELAY;\ |
|---|
| 90 | + type AUX_SW_WR_BYTES |
|---|
| 91 | + |
|---|
| 92 | +#define DCE10_AUX_MASK_SH_LIST(mask_sh)\ |
|---|
| 93 | + AUX_SF(AUX_CONTROL, AUX_EN, mask_sh),\ |
|---|
| 94 | + AUX_SF(AUX_ARB_CONTROL, AUX_REG_RW_CNTL_STATUS, mask_sh),\ |
|---|
| 95 | + AUX_SF(AUX_ARB_CONTROL, AUX_SW_USE_AUX_REG_REQ, mask_sh),\ |
|---|
| 96 | + AUX_SF(AUX_ARB_CONTROL, AUX_SW_DONE_USING_AUX_REG, mask_sh),\ |
|---|
| 97 | + AUX_SF(AUX_SW_CONTROL, AUX_SW_START_DELAY, mask_sh),\ |
|---|
| 98 | + AUX_SF(AUX_SW_CONTROL, AUX_SW_WR_BYTES, mask_sh),\ |
|---|
| 99 | + AUX_SF(AUX_SW_CONTROL, AUX_SW_GO, mask_sh),\ |
|---|
| 100 | + AUX_SF(AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 101 | + AUX_SF(AUX_SW_DATA, AUX_SW_DATA_RW, mask_sh),\ |
|---|
| 102 | + AUX_SF(AUX_SW_DATA, AUX_SW_INDEX, mask_sh),\ |
|---|
| 103 | + AUX_SF(AUX_SW_DATA, AUX_SW_DATA, mask_sh),\ |
|---|
| 104 | + AUX_SF(AUX_SW_STATUS, AUX_SW_REPLY_BYTE_COUNT, mask_sh),\ |
|---|
| 105 | + AUX_SF(AUX_SW_STATUS, AUX_SW_DONE, mask_sh),\ |
|---|
| 106 | + AUX_SF(AUX_INTERRUPT_CONTROL, AUX_SW_DONE_ACK, mask_sh),\ |
|---|
| 107 | + AUX_SF(AUXN_IMPCAL, AUXN_CALOUT_ERROR_AK, mask_sh),\ |
|---|
| 108 | + AUX_SF(AUXP_IMPCAL, AUXP_CALOUT_ERROR_AK, mask_sh),\ |
|---|
| 109 | + AUX_SF(AUXN_IMPCAL, AUXN_IMPCAL_ENABLE, mask_sh),\ |
|---|
| 110 | + AUX_SF(AUXP_IMPCAL, AUXP_IMPCAL_ENABLE, mask_sh),\ |
|---|
| 111 | + AUX_SF(AUXP_IMPCAL, AUXP_IMPCAL_OVERRIDE_ENABLE, mask_sh),\ |
|---|
| 112 | + AUX_SF(AUXN_IMPCAL, AUXN_IMPCAL_OVERRIDE_ENABLE, mask_sh) |
|---|
| 113 | + |
|---|
| 114 | +#define DCE_AUX_MASK_SH_LIST(mask_sh)\ |
|---|
| 115 | + AUX_SF(AUX_CONTROL, AUX_EN, mask_sh),\ |
|---|
| 116 | + AUX_SF(AUX_CONTROL, AUX_RESET, mask_sh),\ |
|---|
| 117 | + AUX_SF(AUX_CONTROL, AUX_RESET_DONE, mask_sh),\ |
|---|
| 118 | + AUX_SF(AUX_ARB_CONTROL, AUX_REG_RW_CNTL_STATUS, mask_sh),\ |
|---|
| 119 | + AUX_SF(AUX_ARB_CONTROL, AUX_SW_USE_AUX_REG_REQ, mask_sh),\ |
|---|
| 120 | + AUX_SF(AUX_ARB_CONTROL, AUX_SW_DONE_USING_AUX_REG, mask_sh),\ |
|---|
| 121 | + AUX_SF(AUX_SW_CONTROL, AUX_SW_START_DELAY, mask_sh),\ |
|---|
| 122 | + AUX_SF(AUX_SW_CONTROL, AUX_SW_WR_BYTES, mask_sh),\ |
|---|
| 123 | + AUX_SF(AUX_SW_CONTROL, AUX_SW_GO, mask_sh),\ |
|---|
| 124 | + AUX_SF(AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 125 | + AUX_SF(AUX_SW_DATA, AUX_SW_DATA_RW, mask_sh),\ |
|---|
| 126 | + AUX_SF(AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 127 | + AUX_SF(AUX_SW_DATA, AUX_SW_INDEX, mask_sh),\ |
|---|
| 128 | + AUX_SF(AUX_SW_DATA, AUX_SW_DATA, mask_sh),\ |
|---|
| 129 | + AUX_SF(AUX_SW_STATUS, AUX_SW_REPLY_BYTE_COUNT, mask_sh),\ |
|---|
| 130 | + AUX_SF(AUX_SW_STATUS, AUX_SW_DONE, mask_sh),\ |
|---|
| 131 | + AUX_SF(AUX_INTERRUPT_CONTROL, AUX_SW_DONE_ACK, mask_sh),\ |
|---|
| 132 | + AUX_SF(AUXN_IMPCAL, AUXN_CALOUT_ERROR_AK, mask_sh),\ |
|---|
| 133 | + AUX_SF(AUXP_IMPCAL, AUXP_CALOUT_ERROR_AK, mask_sh),\ |
|---|
| 134 | + AUX_SF(AUXN_IMPCAL, AUXN_IMPCAL_ENABLE, mask_sh),\ |
|---|
| 135 | + AUX_SF(AUXP_IMPCAL, AUXP_IMPCAL_ENABLE, mask_sh),\ |
|---|
| 136 | + AUX_SF(AUXP_IMPCAL, AUXP_IMPCAL_OVERRIDE_ENABLE, mask_sh),\ |
|---|
| 137 | + AUX_SF(AUXN_IMPCAL, AUXN_IMPCAL_OVERRIDE_ENABLE, mask_sh) |
|---|
| 138 | + |
|---|
| 139 | +#define DCE12_AUX_MASK_SH_LIST(mask_sh)\ |
|---|
| 140 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_EN, mask_sh),\ |
|---|
| 141 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_RESET, mask_sh),\ |
|---|
| 142 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_RESET_DONE, mask_sh),\ |
|---|
| 143 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_REG_RW_CNTL_STATUS, mask_sh),\ |
|---|
| 144 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_SW_USE_AUX_REG_REQ, mask_sh),\ |
|---|
| 145 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_SW_DONE_USING_AUX_REG, mask_sh),\ |
|---|
| 146 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_START_DELAY, mask_sh),\ |
|---|
| 147 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_WR_BYTES, mask_sh),\ |
|---|
| 148 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_GO, mask_sh),\ |
|---|
| 149 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 150 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_DATA_RW, mask_sh),\ |
|---|
| 151 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 152 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_INDEX, mask_sh),\ |
|---|
| 153 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_DATA, mask_sh),\ |
|---|
| 154 | + AUX_SF(DP_AUX0_AUX_SW_STATUS, AUX_SW_REPLY_BYTE_COUNT, mask_sh),\ |
|---|
| 155 | + AUX_SF(DP_AUX0_AUX_SW_STATUS, AUX_SW_DONE, mask_sh),\ |
|---|
| 156 | + AUX_SF(DP_AUX0_AUX_INTERRUPT_CONTROL, AUX_SW_DONE_ACK, mask_sh),\ |
|---|
| 157 | + AUX_SF(AUXN_IMPCAL, AUXN_CALOUT_ERROR_AK, mask_sh),\ |
|---|
| 158 | + AUX_SF(AUXP_IMPCAL, AUXP_CALOUT_ERROR_AK, mask_sh),\ |
|---|
| 159 | + AUX_SF(AUXN_IMPCAL, AUXN_IMPCAL_ENABLE, mask_sh),\ |
|---|
| 160 | + AUX_SF(AUXP_IMPCAL, AUXP_IMPCAL_ENABLE, mask_sh),\ |
|---|
| 161 | + AUX_SF(AUXP_IMPCAL, AUXP_IMPCAL_OVERRIDE_ENABLE, mask_sh),\ |
|---|
| 162 | + AUX_SF(AUXN_IMPCAL, AUXN_IMPCAL_OVERRIDE_ENABLE, mask_sh) |
|---|
| 163 | + |
|---|
| 164 | +/* DCN10 MASK */ |
|---|
| 165 | +#define DCN10_AUX_MASK_SH_LIST(mask_sh)\ |
|---|
| 166 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_EN, mask_sh),\ |
|---|
| 167 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_RESET, mask_sh),\ |
|---|
| 168 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_RESET_DONE, mask_sh),\ |
|---|
| 169 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_REG_RW_CNTL_STATUS, mask_sh),\ |
|---|
| 170 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_SW_USE_AUX_REG_REQ, mask_sh),\ |
|---|
| 171 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_SW_DONE_USING_AUX_REG, mask_sh),\ |
|---|
| 172 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_START_DELAY, mask_sh),\ |
|---|
| 173 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_WR_BYTES, mask_sh),\ |
|---|
| 174 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_GO, mask_sh),\ |
|---|
| 175 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 176 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_DATA_RW, mask_sh),\ |
|---|
| 177 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 178 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_INDEX, mask_sh),\ |
|---|
| 179 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_DATA, mask_sh),\ |
|---|
| 180 | + AUX_SF(DP_AUX0_AUX_SW_STATUS, AUX_SW_REPLY_BYTE_COUNT, mask_sh),\ |
|---|
| 181 | + AUX_SF(DP_AUX0_AUX_SW_STATUS, AUX_SW_DONE, mask_sh),\ |
|---|
| 182 | + AUX_SF(DP_AUX0_AUX_INTERRUPT_CONTROL, AUX_SW_DONE_ACK, mask_sh),\ |
|---|
| 183 | + AUX_SF(AUXN_IMPCAL, AUXN_CALOUT_ERROR_AK, mask_sh),\ |
|---|
| 184 | + AUX_SF(AUXP_IMPCAL, AUXP_CALOUT_ERROR_AK, mask_sh),\ |
|---|
| 185 | + AUX_SF(AUXN_IMPCAL, AUXN_IMPCAL_ENABLE, mask_sh),\ |
|---|
| 186 | + AUX_SF(AUXP_IMPCAL, AUXP_IMPCAL_ENABLE, mask_sh),\ |
|---|
| 187 | + AUX_SF(AUXP_IMPCAL, AUXP_IMPCAL_OVERRIDE_ENABLE, mask_sh),\ |
|---|
| 188 | + AUX_SF(AUXN_IMPCAL, AUXN_IMPCAL_OVERRIDE_ENABLE, mask_sh) |
|---|
| 189 | + |
|---|
| 190 | +/* for all other DCN */ |
|---|
| 191 | +#define DCN_AUX_MASK_SH_LIST(mask_sh)\ |
|---|
| 192 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_EN, mask_sh),\ |
|---|
| 193 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_RESET, mask_sh),\ |
|---|
| 194 | + AUX_SF(DP_AUX0_AUX_CONTROL, AUX_RESET_DONE, mask_sh),\ |
|---|
| 195 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_REG_RW_CNTL_STATUS, mask_sh),\ |
|---|
| 196 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_SW_USE_AUX_REG_REQ, mask_sh),\ |
|---|
| 197 | + AUX_SF(DP_AUX0_AUX_ARB_CONTROL, AUX_SW_DONE_USING_AUX_REG, mask_sh),\ |
|---|
| 198 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_START_DELAY, mask_sh),\ |
|---|
| 199 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_WR_BYTES, mask_sh),\ |
|---|
| 200 | + AUX_SF(DP_AUX0_AUX_SW_CONTROL, AUX_SW_GO, mask_sh),\ |
|---|
| 201 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 202 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_DATA_RW, mask_sh),\ |
|---|
| 203 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_AUTOINCREMENT_DISABLE, mask_sh),\ |
|---|
| 204 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_INDEX, mask_sh),\ |
|---|
| 205 | + AUX_SF(DP_AUX0_AUX_SW_DATA, AUX_SW_DATA, mask_sh),\ |
|---|
| 206 | + AUX_SF(DP_AUX0_AUX_SW_STATUS, AUX_SW_REPLY_BYTE_COUNT, mask_sh),\ |
|---|
| 207 | + AUX_SF(DP_AUX0_AUX_SW_STATUS, AUX_SW_DONE, mask_sh),\ |
|---|
| 208 | + AUX_SF(DP_AUX0_AUX_INTERRUPT_CONTROL, AUX_SW_DONE_ACK, mask_sh),\ |
|---|
| 209 | + AUX_SF(DP_AUX0_AUX_DPHY_RX_CONTROL1, AUX_RX_TIMEOUT_LEN, mask_sh),\ |
|---|
| 210 | + AUX_SF(DP_AUX0_AUX_DPHY_RX_CONTROL1, AUX_RX_TIMEOUT_LEN_MUL, mask_sh) |
|---|
| 211 | + |
|---|
| 212 | +#define AUX_SF(reg_name, field_name, post_fix)\ |
|---|
| 213 | + .field_name = reg_name ## __ ## field_name ## post_fix |
|---|
| 52 | 214 | |
|---|
| 53 | 215 | enum { /* This is the timeout as defined in DP 1.2a, |
|---|
| 54 | 216 | * 2.3.4 "Detailed uPacket TX AUX CH State Description". |
|---|
| .. | .. |
|---|
| 75 | 237 | */ |
|---|
| 76 | 238 | SW_AUX_TIMEOUT_PERIOD_MULTIPLIER = 6 |
|---|
| 77 | 239 | }; |
|---|
| 240 | + |
|---|
| 241 | +struct dce_aux { |
|---|
| 242 | + uint32_t inst; |
|---|
| 243 | + struct ddc *ddc; |
|---|
| 244 | + struct dc_context *ctx; |
|---|
| 245 | + /* following values are expressed in milliseconds */ |
|---|
| 246 | + uint32_t delay; |
|---|
| 247 | + uint32_t max_defer_write_retry; |
|---|
| 248 | + |
|---|
| 249 | + bool acquire_reset; |
|---|
| 250 | + struct dce_aux_funcs *funcs; |
|---|
| 251 | +}; |
|---|
| 252 | + |
|---|
| 253 | +struct dce110_aux_registers_mask { |
|---|
| 254 | + DCE_AUX_REG_FIELD_LIST(uint32_t); |
|---|
| 255 | +}; |
|---|
| 256 | + |
|---|
| 257 | +struct dce110_aux_registers_shift { |
|---|
| 258 | + DCE_AUX_REG_FIELD_LIST(uint8_t); |
|---|
| 259 | +}; |
|---|
| 260 | + |
|---|
| 261 | + |
|---|
| 78 | 262 | struct aux_engine_dce110 { |
|---|
| 79 | | - struct aux_engine base; |
|---|
| 263 | + struct dce_aux base; |
|---|
| 80 | 264 | const struct dce110_aux_registers *regs; |
|---|
| 265 | + const struct dce110_aux_registers_mask *mask; |
|---|
| 266 | + const struct dce110_aux_registers_shift *shift; |
|---|
| 81 | 267 | struct { |
|---|
| 82 | 268 | uint32_t aux_control; |
|---|
| 83 | 269 | uint32_t aux_arb_control; |
|---|
| 84 | 270 | uint32_t aux_sw_data; |
|---|
| 85 | 271 | uint32_t aux_sw_control; |
|---|
| 86 | 272 | uint32_t aux_interrupt_control; |
|---|
| 273 | + uint32_t aux_dphy_rx_control1; |
|---|
| 274 | + uint32_t aux_dphy_rx_control0; |
|---|
| 87 | 275 | uint32_t aux_sw_status; |
|---|
| 88 | 276 | } addr; |
|---|
| 89 | | - uint32_t timeout_period; |
|---|
| 277 | + uint32_t polling_timeout_period; |
|---|
| 90 | 278 | }; |
|---|
| 91 | 279 | |
|---|
| 92 | 280 | struct aux_engine_dce110_init_data { |
|---|
| .. | .. |
|---|
| 96 | 284 | const struct dce110_aux_registers *regs; |
|---|
| 97 | 285 | }; |
|---|
| 98 | 286 | |
|---|
| 99 | | -struct aux_engine *dce110_aux_engine_construct( |
|---|
| 100 | | - struct aux_engine_dce110 *aux_engine110, |
|---|
| 287 | +struct dce_aux *dce110_aux_engine_construct(struct aux_engine_dce110 *aux_engine110, |
|---|
| 101 | 288 | struct dc_context *ctx, |
|---|
| 102 | 289 | uint32_t inst, |
|---|
| 103 | 290 | uint32_t timeout_period, |
|---|
| 104 | | - const struct dce110_aux_registers *regs); |
|---|
| 291 | + const struct dce110_aux_registers *regs, |
|---|
| 105 | 292 | |
|---|
| 106 | | -void dce110_engine_destroy(struct aux_engine **engine); |
|---|
| 293 | + const struct dce110_aux_registers_mask *mask, |
|---|
| 294 | + const struct dce110_aux_registers_shift *shift, |
|---|
| 295 | + bool is_ext_aux_timeout_configurable); |
|---|
| 296 | + |
|---|
| 297 | +void dce110_engine_destroy(struct dce_aux **engine); |
|---|
| 107 | 298 | |
|---|
| 108 | 299 | bool dce110_aux_engine_acquire( |
|---|
| 109 | | - struct aux_engine *aux_engine, |
|---|
| 300 | + struct dce_aux *aux_engine, |
|---|
| 110 | 301 | struct ddc *ddc); |
|---|
| 302 | + |
|---|
| 303 | +int dce_aux_transfer_raw(struct ddc_service *ddc, |
|---|
| 304 | + struct aux_payload *cmd, |
|---|
| 305 | + enum aux_channel_operation_result *operation_result); |
|---|
| 306 | + |
|---|
| 307 | +bool dce_aux_transfer_with_retries(struct ddc_service *ddc, |
|---|
| 308 | + struct aux_payload *cmd); |
|---|
| 309 | + |
|---|
| 310 | +struct dce_aux_funcs { |
|---|
| 311 | + uint32_t (*configure_timeout) |
|---|
| 312 | + (struct ddc_service *ddc, |
|---|
| 313 | + uint32_t timeout); |
|---|
| 314 | + void (*destroy) |
|---|
| 315 | + (struct aux_engine **ptr); |
|---|
| 316 | +}; |
|---|
| 317 | + |
|---|
| 111 | 318 | #endif |
|---|