Changeset 44642 in vbox for trunk/src/VBox/Devices/Audio
- Timestamp:
- Feb 11, 2013 7:44:26 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 83730
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp
r44641 r44642 493 493 /** @todo r=bird: Why aren't these static? And why use DECLCALLBACK for 494 494 * internal functions? */ 495 DECLCALLBACK(int) hdaRegReadUnimplemented(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);496 DECLCALLBACK(int) hdaRegWriteUnimplemented(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);497 DECLCALLBACK(int) hdaRegReadGCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);498 DECLCALLBACK(int) hdaRegWriteGCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);499 DECLCALLBACK(int) hdaRegReadSTATESTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);500 DECLCALLBACK(int) hdaRegWriteSTATESTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);501 DECLCALLBACK(int) hdaRegReadGCAP(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);502 DECLCALLBACK(int) hdaRegReadINTSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);503 DECLCALLBACK(int) hdaRegReadWALCLK(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);504 DECLCALLBACK(int) hdaRegWriteINTSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);505 DECLCALLBACK(int) hdaRegWriteCORBWP(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);506 DECLCALLBACK(int) hdaRegWriteCORBRP(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);507 DECLCALLBACK(int) hdaRegWriteCORBCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);508 DECLCALLBACK(int) hdaRegWriteCORBSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);509 DECLCALLBACK(int) hdaRegWriteRIRBWP(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);510 DECLCALLBACK(int) hdaRegWriteRIRBSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);511 DECLCALLBACK(int) hdaRegWriteIRS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);512 DECLCALLBACK(int) hdaRegReadIRS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);513 DECLCALLBACK(int) hdaRegWriteSDCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);514 DECLCALLBACK(int) hdaRegReadSDCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);515 516 DECLCALLBACK(int) hdaRegWriteSDSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);517 DECLCALLBACK(int) hdaRegWriteSDLVI(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);518 DECLCALLBACK(int) hdaRegWriteSDFIFOW(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);519 DECLCALLBACK(int) hdaRegWriteSDFIFOS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);520 DECLCALLBACK(int) hdaRegWriteSDFMT(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);521 DECLCALLBACK(int) hdaRegWriteSDBDPL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);522 DECLCALLBACK(int) hdaRegWriteSDBDPU(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);523 DECLCALLBACK(int) hdaRegWriteBase(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);524 DECLCALLBACK(int) hdaRegReadU32(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);525 DECLCALLBACK(int) hdaRegWriteU32(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);526 DECLCALLBACK(int) hdaRegReadU24(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);527 DECLCALLBACK(int) hdaRegWriteU24(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);528 DECLCALLBACK(int) hdaRegReadU16(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);529 DECLCALLBACK(int) hdaRegWriteU16(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);530 DECLCALLBACK(int) hdaRegReadU8(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);531 DECLCALLBACK(int) hdaRegWriteU8(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t pu32Value);495 DECLCALLBACK(int) hdaRegReadUnimplemented(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 496 DECLCALLBACK(int) hdaRegWriteUnimplemented(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 497 DECLCALLBACK(int) hdaRegReadGCTL(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 498 DECLCALLBACK(int) hdaRegWriteGCTL(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 499 DECLCALLBACK(int) hdaRegReadSTATESTS(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 500 DECLCALLBACK(int) hdaRegWriteSTATESTS(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 501 DECLCALLBACK(int) hdaRegReadGCAP(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 502 DECLCALLBACK(int) hdaRegReadINTSTS(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 503 DECLCALLBACK(int) hdaRegReadWALCLK(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 504 DECLCALLBACK(int) hdaRegWriteINTSTS(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 505 DECLCALLBACK(int) hdaRegWriteCORBWP(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 506 DECLCALLBACK(int) hdaRegWriteCORBRP(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 507 DECLCALLBACK(int) hdaRegWriteCORBCTL(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 508 DECLCALLBACK(int) hdaRegWriteCORBSTS(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 509 DECLCALLBACK(int) hdaRegWriteRIRBWP(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 510 DECLCALLBACK(int) hdaRegWriteRIRBSTS(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 511 DECLCALLBACK(int) hdaRegWriteIRS(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 512 DECLCALLBACK(int) hdaRegReadIRS(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 513 DECLCALLBACK(int) hdaRegWriteSDCTL(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 514 DECLCALLBACK(int) hdaRegReadSDCTL(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 515 516 DECLCALLBACK(int) hdaRegWriteSDSTS(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 517 DECLCALLBACK(int) hdaRegWriteSDLVI(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 518 DECLCALLBACK(int) hdaRegWriteSDFIFOW(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 519 DECLCALLBACK(int) hdaRegWriteSDFIFOS(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 520 DECLCALLBACK(int) hdaRegWriteSDFMT(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 521 DECLCALLBACK(int) hdaRegWriteSDBDPL(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 522 DECLCALLBACK(int) hdaRegWriteSDBDPU(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 523 DECLCALLBACK(int) hdaRegWriteBase(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 524 DECLCALLBACK(int) hdaRegReadU32(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 525 DECLCALLBACK(int) hdaRegWriteU32(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 526 DECLCALLBACK(int) hdaRegReadU24(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 527 DECLCALLBACK(int) hdaRegWriteU24(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 528 DECLCALLBACK(int) hdaRegReadU16(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 529 DECLCALLBACK(int) hdaRegWriteU16(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 530 DECLCALLBACK(int) hdaRegReadU8(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 531 DECLCALLBACK(int) hdaRegWriteU8(PHDASTATE pThis, uint32_t index, uint32_t pu32Value); 532 532 533 533 DECLINLINE(void) hdaInitTransferDescriptor(PHDASTATE pThis, PHDABDLEDESC pBdle, uint8_t u8Strm, … … 555 555 uint32_t writable; 556 556 /** Read callback. */ 557 int (*pfnRead)(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value);557 int (*pfnRead)(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value); 558 558 /** Write callback. */ 559 int (*pfnWrite)(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value);559 int (*pfnWrite)(PHDASTATE pThis, uint32_t index, uint32_t u32Value); 560 560 /** Abbreviated name. */ 561 561 const char *abbrev; … … 966 966 967 967 968 DECLCALLBACK(int) hdaRegReadUnimplemented(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)968 DECLCALLBACK(int) hdaRegReadUnimplemented(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 969 969 { 970 970 *pu32Value = 0; 971 971 return VINF_SUCCESS; 972 972 } 973 DECLCALLBACK(int) hdaRegWriteUnimplemented(PHDASTATE pThis, uint32_t offset, uint32_t index, uint32_t u32Value) 973 974 DECLCALLBACK(int) hdaRegWriteUnimplemented(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 974 975 { 975 976 return VINF_SUCCESS; 976 977 } 978 977 979 /* U8 */ 978 DECLCALLBACK(int) hdaRegReadU8(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)980 DECLCALLBACK(int) hdaRegReadU8(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 979 981 { 980 982 Assert(((pThis->au32Regs[index] & g_aIchIntelHDRegMap[index].readable) & 0xffffff00) == 0); 981 return hdaRegReadU32(pThis, offset, index, pu32Value); 982 } 983 984 DECLCALLBACK(int) hdaRegWriteU8(PHDASTATE pThis, uint32_t offset, uint32_t index, uint32_t u32Value) 985 { 986 Assert(((u32Value & 0xffffff00) == 0)); 987 return hdaRegWriteU32(pThis, offset, index, u32Value); 988 } 983 return hdaRegReadU32(pThis, index, pu32Value); 984 } 985 986 DECLCALLBACK(int) hdaRegWriteU8(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 987 { 988 Assert((u32Value & 0xffffff00) == 0); 989 return hdaRegWriteU32(pThis, index, u32Value); 990 } 991 989 992 /* U16 */ 990 DECLCALLBACK(int) hdaRegReadU16(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)993 DECLCALLBACK(int) hdaRegReadU16(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 991 994 { 992 995 Assert(((pThis->au32Regs[index] & g_aIchIntelHDRegMap[index].readable) & 0xffff0000) == 0); 993 return hdaRegReadU32(pThis, offset,index, pu32Value);994 } 995 996 DECLCALLBACK(int) hdaRegWriteU16(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)997 { 998 Assert(( (u32Value & 0xffff0000) == 0));999 return hdaRegWriteU32(pThis, offset,index, u32Value);996 return hdaRegReadU32(pThis, index, pu32Value); 997 } 998 999 DECLCALLBACK(int) hdaRegWriteU16(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1000 { 1001 Assert((u32Value & 0xffff0000) == 0); 1002 return hdaRegWriteU32(pThis, index, u32Value); 1000 1003 } 1001 1004 1002 1005 /* U24 */ 1003 DECLCALLBACK(int) hdaRegReadU24(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)1006 DECLCALLBACK(int) hdaRegReadU24(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 1004 1007 { 1005 1008 Assert(((pThis->au32Regs[index] & g_aIchIntelHDRegMap[index].readable) & 0xff000000) == 0); 1006 return hdaRegReadU32(pThis, offset, index, pu32Value); 1007 } 1008 1009 DECLCALLBACK(int) hdaRegWriteU24(PHDASTATE pThis, uint32_t offset, uint32_t index, uint32_t u32Value) 1010 { 1011 Assert(((u32Value & 0xff000000) == 0)); 1012 return hdaRegWriteU32(pThis, offset, index, u32Value); 1013 } 1009 return hdaRegReadU32(pThis, index, pu32Value); 1010 } 1011 1012 DECLCALLBACK(int) hdaRegWriteU24(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1013 { 1014 Assert((u32Value & 0xff000000) == 0); 1015 return hdaRegWriteU32(pThis, index, u32Value); 1016 } 1017 1014 1018 /* U32 */ 1015 DECLCALLBACK(int) hdaRegReadU32(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)1019 DECLCALLBACK(int) hdaRegReadU32(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 1016 1020 { 1017 1021 *pu32Value = pThis->au32Regs[index] & g_aIchIntelHDRegMap[index].readable; … … 1019 1023 } 1020 1024 1021 DECLCALLBACK(int) hdaRegWriteU32(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1025 DECLCALLBACK(int) hdaRegWriteU32(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1022 1026 { 1023 1027 pThis->au32Regs[index] = (u32Value & g_aIchIntelHDRegMap[index].writable) 1024 1028 | (pThis->au32Regs[index] & ~g_aIchIntelHDRegMap[index].writable); 1025 1029 return VINF_SUCCESS; 1026 1030 } 1027 1031 1028 DECLCALLBACK(int) hdaRegReadGCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)1029 { 1030 return hdaRegReadU32(pThis, offset,index, pu32Value);1031 } 1032 1033 DECLCALLBACK(int) hdaRegWriteGCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1032 DECLCALLBACK(int) hdaRegReadGCTL(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 1033 { 1034 return hdaRegReadU32(pThis, index, pu32Value); 1035 } 1036 1037 DECLCALLBACK(int) hdaRegWriteGCTL(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1034 1038 { 1035 1039 if (u32Value & HDA_REG_FIELD_FLAG_MASK(GCTL, RST)) … … 1062 1066 } 1063 1067 1064 DECLCALLBACK(int) hdaRegWriteSTATESTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1068 DECLCALLBACK(int) hdaRegWriteSTATESTS(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1065 1069 { 1066 1070 uint32_t v = pThis->au32Regs[index]; … … 1070 1074 } 1071 1075 1072 DECLCALLBACK(int) hdaRegReadINTSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)1076 DECLCALLBACK(int) hdaRegReadINTSTS(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 1073 1077 { 1074 1078 uint32_t v = 0; … … 1096 1100 } 1097 1101 1098 DECLCALLBACK(int) hdaRegReadWALCLK(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)1102 DECLCALLBACK(int) hdaRegReadWALCLK(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 1099 1103 { 1100 1104 /* HDA spec (1a): 3.3.16 WALCLK counter ticks with 24Mhz bitclock rate. */ … … 1104 1108 } 1105 1109 1106 DECLCALLBACK(int) hdaRegReadGCAP(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)1107 { 1108 return hdaRegReadU16(pThis, offset,index, pu32Value);1109 } 1110 1111 DECLCALLBACK(int) hdaRegWriteCORBRP(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1110 DECLCALLBACK(int) hdaRegReadGCAP(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 1111 { 1112 return hdaRegReadU16(pThis, index, pu32Value); 1113 } 1114 1115 DECLCALLBACK(int) hdaRegWriteCORBRP(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1112 1116 { 1113 1117 if (u32Value & HDA_REG_FIELD_FLAG_MASK(CORBRP, RST)) 1114 1118 CORBRP(pThis) = 0; 1115 1119 else 1116 return hdaRegWriteU8(pThis, offset,index, u32Value);1120 return hdaRegWriteU8(pThis, index, u32Value); 1117 1121 return VINF_SUCCESS; 1118 1122 } 1119 1123 1120 DECLCALLBACK(int) hdaRegWriteCORBCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1121 { 1122 int rc = hdaRegWriteU8(pThis, offset,index, u32Value);1124 DECLCALLBACK(int) hdaRegWriteCORBCTL(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1125 { 1126 int rc = hdaRegWriteU8(pThis, index, u32Value); 1123 1127 AssertRC(rc); 1124 1128 if ( CORBWP(pThis) != CORBRP(pThis) … … 1128 1132 } 1129 1133 1130 DECLCALLBACK(int) hdaRegWriteCORBSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1134 DECLCALLBACK(int) hdaRegWriteCORBSTS(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1131 1135 { 1132 1136 uint32_t v = CORBSTS(pThis); … … 1135 1139 } 1136 1140 1137 DECLCALLBACK(int) hdaRegWriteCORBWP(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1141 DECLCALLBACK(int) hdaRegWriteCORBWP(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1138 1142 { 1139 1143 int rc; 1140 rc = hdaRegWriteU16(pThis, offset,index, u32Value);1144 rc = hdaRegWriteU16(pThis, index, u32Value); 1141 1145 if (RT_FAILURE(rc)) 1142 1146 AssertRCReturn(rc, rc); … … 1149 1153 } 1150 1154 1151 DECLCALLBACK(int) hdaRegReadSDCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)1152 { 1153 return hdaRegReadU24(pThis, offset,index, pu32Value);1154 } 1155 1156 DECLCALLBACK(int) hdaRegWriteSDCTL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1155 DECLCALLBACK(int) hdaRegReadSDCTL(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 1156 { 1157 return hdaRegReadU24(pThis, index, pu32Value); 1158 } 1159 1160 DECLCALLBACK(int) hdaRegWriteSDCTL(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1157 1161 { 1158 1162 bool fRun = RT_BOOL(u32Value & HDA_REG_FIELD_FLAG_MASK(SDCTL, RUN)); … … 1219 1223 1220 1224 l_done: 1221 rc = hdaRegWriteU24(pThis, offset,index, u32Value);1225 rc = hdaRegWriteU24(pThis, index, u32Value); 1222 1226 if (RT_FAILURE(rc)) 1223 1227 AssertRCReturn(rc, VINF_SUCCESS); … … 1225 1229 } 1226 1230 1227 DECLCALLBACK(int) hdaRegWriteSDSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1231 DECLCALLBACK(int) hdaRegWriteSDSTS(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1228 1232 { 1229 1233 uint32_t v = HDA_REG_IND(pThis, index); … … 1234 1238 } 1235 1239 1236 DECLCALLBACK(int) hdaRegWriteSDLVI(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1237 { 1238 int rc = hdaRegWriteU32(pThis, offset,index, u32Value);1240 DECLCALLBACK(int) hdaRegWriteSDLVI(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1241 { 1242 int rc = hdaRegWriteU32(pThis, index, u32Value); 1239 1243 if (RT_FAILURE(rc)) 1240 1244 AssertRCReturn(rc, VINF_SUCCESS); … … 1242 1246 } 1243 1247 1244 DECLCALLBACK(int) hdaRegWriteSDFIFOW(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1248 DECLCALLBACK(int) hdaRegWriteSDFIFOW(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1245 1249 { 1246 1250 switch (u32Value) … … 1249 1253 case HDA_SDFIFOW_16B: 1250 1254 case HDA_SDFIFOW_32B: 1251 return hdaRegWriteU16(pThis, offset,index, u32Value);1255 return hdaRegWriteU16(pThis, index, u32Value); 1252 1256 default: 1253 1257 Log(("hda: Attempt to store unsupported value(%x) in SDFIFOW\n", u32Value)); 1254 return hdaRegWriteU16(pThis, offset,index, HDA_SDFIFOW_32B);1258 return hdaRegWriteU16(pThis, index, HDA_SDFIFOW_32B); 1255 1259 } 1256 1260 return VINF_SUCCESS; 1257 1261 } 1262 1258 1263 /* 1259 1264 * Note this method could be called for changing value on Output Streams only (ICH6 datasheet 18.2.39) 1260 1265 * 1261 1266 */ 1262 DECLCALLBACK(int) hdaRegWriteSDFIFOS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1267 DECLCALLBACK(int) hdaRegWriteSDFIFOS(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1263 1268 { 1264 1269 switch (index) … … 1282 1287 case HDA_SDONFIFO_128B: 1283 1288 case HDA_SDONFIFO_192B: 1284 return hdaRegWriteU16(pThis, offset,index, u32Value);1289 return hdaRegWriteU16(pThis, index, u32Value); 1285 1290 1286 1291 case HDA_SDONFIFO_256B: 1287 1292 Log(("hda: 256-bit is unsupported, HDA is switched into 192-bit mode\n")); 1288 1293 default: 1289 return hdaRegWriteU16(pThis, offset,index, HDA_SDONFIFO_192B);1294 return hdaRegWriteU16(pThis, index, HDA_SDONFIFO_192B); 1290 1295 } 1291 1296 return VINF_SUCCESS; … … 1354 1359 } 1355 1360 1356 DECLCALLBACK(int) hdaRegWriteSDFMT(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1361 DECLCALLBACK(int) hdaRegWriteSDFMT(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1357 1362 { 1358 1363 #ifdef VBOX_WITH_HDA_CODEC_EMU … … 1376 1381 rc = 0; 1377 1382 } 1378 return hdaRegWriteU16(pThis, offset,index, u32Value);1383 return hdaRegWriteU16(pThis, index, u32Value); 1379 1384 #else 1380 return hdaRegWriteU16(pThis, offset,index, u32Value);1385 return hdaRegWriteU16(pThis, index, u32Value); 1381 1386 #endif 1382 1387 } 1383 1388 1384 DECLCALLBACK(int) hdaRegWriteSDBDPL(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1385 { 1386 int rc = hdaRegWriteU32(pThis, offset,index, u32Value);1389 DECLCALLBACK(int) hdaRegWriteSDBDPL(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1390 { 1391 int rc = hdaRegWriteU32(pThis, index, u32Value); 1387 1392 if (RT_FAILURE(rc)) 1388 1393 AssertRCReturn(rc, VINF_SUCCESS); … … 1390 1395 } 1391 1396 1392 DECLCALLBACK(int) hdaRegWriteSDBDPU(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1393 { 1394 int rc = hdaRegWriteU32(pThis, offset,index, u32Value);1397 DECLCALLBACK(int) hdaRegWriteSDBDPU(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1398 { 1399 int rc = hdaRegWriteU32(pThis, index, u32Value); 1395 1400 if (RT_FAILURE(rc)) 1396 1401 AssertRCReturn(rc, VINF_SUCCESS); … … 1398 1403 } 1399 1404 1400 DECLCALLBACK(int) hdaRegReadIRS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t *pu32Value)1405 DECLCALLBACK(int) hdaRegReadIRS(PHDASTATE pThis, uint32_t index, uint32_t *pu32Value) 1401 1406 { 1402 1407 int rc = VINF_SUCCESS; … … 1406 1411 IRS(pThis) = HDA_REG_FIELD_FLAG_MASK(IRS, ICB); /* busy */ 1407 1412 1408 rc = hdaRegReadU32(pThis, offset,index, pu32Value);1413 rc = hdaRegReadU32(pThis, index, pu32Value); 1409 1414 return rc; 1410 1415 } 1411 1416 1412 DECLCALLBACK(int) hdaRegWriteIRS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1417 DECLCALLBACK(int) hdaRegWriteIRS(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1413 1418 { 1414 1419 int rc = VINF_SUCCESS; … … 1454 1459 } 1455 1460 1456 DECLCALLBACK(int) hdaRegWriteRIRBWP(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1461 DECLCALLBACK(int) hdaRegWriteRIRBWP(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1457 1462 { 1458 1463 if (u32Value & HDA_REG_FIELD_FLAG_MASK(RIRBWP, RST)) … … 1464 1469 } 1465 1470 1466 DECLCALLBACK(int) hdaRegWriteBase(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1467 { 1468 int rc = hdaRegWriteU32(pThis, offset,index, u32Value);1471 DECLCALLBACK(int) hdaRegWriteBase(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1472 { 1473 int rc = hdaRegWriteU32(pThis, index, u32Value); 1469 1474 if (RT_FAILURE(rc)) 1470 1475 AssertRCReturn(rc, rc); … … 1503 1508 } 1504 1509 1505 DECLCALLBACK(int) hdaRegWriteRIRBSTS(PHDASTATE pThis, uint32_t offset, uint32_tindex, uint32_t u32Value)1510 DECLCALLBACK(int) hdaRegWriteRIRBSTS(PHDASTATE pThis, uint32_t index, uint32_t u32Value) 1506 1511 { 1507 1512 uint8_t v = RIRBSTS(pThis); … … 1770 1775 1771 1776 /* 1772 * Copy from DMA to the corresponding hdaBuffer (if there are any bytes from the previous unreported transfer we write at offset ''pBdle->cbUnderFifoW'') 1777 * Copy from DMA to the corresponding hdaBuffer (if there are any bytes from the 1778 * previous unreported transfer we write at offset 'pBdle->cbUnderFifoW'). 1773 1779 */ 1774 1780 if (!cb2Copy) … … 1935 1941 if (idxReg != -1) 1936 1942 { 1937 rc = g_aIchIntelHDRegMap[idxReg].pfnRead(pThis, offReg,idxReg, (uint32_t *)pv);1943 rc = g_aIchIntelHDRegMap[idxReg].pfnRead(pThis, idxReg, (uint32_t *)pv); 1938 1944 Log(("hda: read %s[%x/%x]\n", g_aIchIntelHDRegMap[idxReg].abbrev, *(uint32_t *)pv)); 1939 1945 } … … 1966 1972 uint32_t const u32CurValue = pThis->au32Regs[idxReg]; 1967 1973 #endif 1968 rc = g_aIchIntelHDRegMap[idxReg].pfnWrite(pThis, offReg,idxReg, *(uint32_t const *)pv);1974 rc = g_aIchIntelHDRegMap[idxReg].pfnWrite(pThis, idxReg, *(uint32_t const *)pv); 1969 1975 Log(("hda: write %s:(%x) %x => %x\n", g_aIchIntelHDRegMap[idxReg].abbrev, *(uint32_t const *)pv, 1970 1976 u32CurValue, pThis->au32Regs[idxReg]));
Note:
See TracChangeset
for help on using the changeset viewer.