Changeset 31278 in vbox for trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp
- Timestamp:
- Aug 2, 2010 9:51:35 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp
r31263 r31278 612 612 return index; 613 613 } 614 } 615 /* Aliases HDA spec 3.3.45 */ 616 switch(u32Offset) 617 { 618 case 0x2084: 619 return HDA_REG_IND_NAME(SD0LPIB); 620 case 0x20A4: 621 return HDA_REG_IND_NAME(SD1LPIB); 622 case 0x20C4: 623 return HDA_REG_IND_NAME(SD2LPIB); 624 case 0x20E4: 625 return HDA_REG_IND_NAME(SD3LPIB); 626 case 0x2104: 627 return HDA_REG_IND_NAME(SD4LPIB); 628 case 0x2124: 629 return HDA_REG_IND_NAME(SD5LPIB); 630 case 0x2144: 631 return HDA_REG_IND_NAME(SD6LPIB); 632 case 0x2164: 633 return HDA_REG_IND_NAME(SD7LPIB); 614 634 } 615 635 return -1; … … 1328 1348 } 1329 1349 Assert( index != -1 1330 && u32Offset == s_ichIntelHDRegMap[index].offset1331 1350 && cb <= 4); 1332 1351 if (index != -1) 1333 1352 { 1334 Assert(u32Offset == s_ichIntelHDRegMap[index].offset);1335 1353 uint32_t v = pThis->hda.au32Regs[index]; 1336 1354 uint32_t mask = 0; 1355 uint32_t shift = (u32Offset - s_ichIntelHDRegMap[index].offset) % sizeof(uint32_t) * 8; 1337 1356 switch(cb) 1338 1357 { … … 1342 1361 case 4: mask = 0x00000000; break; 1343 1362 } 1344 *(uint32_t *)pv = (v & mask) | (*(uint32_t *)pv & ~mask); 1363 mask <<= shift; 1364 *(uint32_t *)pv = ((v & mask) | (*(uint32_t *)pv & ~mask)) >> shift; 1345 1365 rc = s_ichIntelHDRegMap[index].pfnWrite(&pThis->hda, u32Offset, index, *(uint32_t *)pv); 1346 1366 Log(("hda: write %s:(%x) %x => %x\n", s_ichIntelHDRegMap[index].abbrev, *(uint32_t *)pv, v, pThis->hda.au32Regs[index]));
Note:
See TracChangeset
for help on using the changeset viewer.