Revision 6c7796e5 hw/intel-hda.c
b/hw/intel-hda.c | ||
---|---|---|
224 | 224 |
return addr; |
225 | 225 |
} |
226 | 226 |
|
227 |
static void stl_phys_le(target_phys_addr_t addr, uint32_t value) |
|
228 |
{ |
|
229 |
uint32_t value_le = cpu_to_le32(value); |
|
230 |
cpu_physical_memory_write(addr, (uint8_t*)(&value_le), sizeof(value_le)); |
|
231 |
} |
|
232 |
|
|
233 |
static uint32_t ldl_phys_le(target_phys_addr_t addr) |
|
234 |
{ |
|
235 |
uint32_t value_le; |
|
236 |
cpu_physical_memory_read(addr, (uint8_t*)(&value_le), sizeof(value_le)); |
|
237 |
return le32_to_cpu(value_le); |
|
238 |
} |
|
239 |
|
|
240 | 227 |
static void intel_hda_update_int_sts(IntelHDAState *d) |
241 | 228 |
{ |
242 | 229 |
uint32_t sts = 0; |
... | ... | |
341 | 328 |
|
342 | 329 |
rp = (d->corb_rp + 1) & 0xff; |
343 | 330 |
addr = intel_hda_addr(d->corb_lbase, d->corb_ubase); |
344 |
verb = ldl_phys_le(addr + 4*rp);
|
|
331 |
verb = ldl_le_phys(addr + 4*rp);
|
|
345 | 332 |
d->corb_rp = rp; |
346 | 333 |
|
347 | 334 |
dprint(d, 2, "%s: [rp 0x%x] verb 0x%08x\n", __FUNCTION__, rp, verb); |
... | ... | |
373 | 360 |
ex = (solicited ? 0 : (1 << 4)) | dev->cad; |
374 | 361 |
wp = (d->rirb_wp + 1) & 0xff; |
375 | 362 |
addr = intel_hda_addr(d->rirb_lbase, d->rirb_ubase); |
376 |
stl_phys_le(addr + 8*wp, response);
|
|
377 |
stl_phys_le(addr + 8*wp + 4, ex);
|
|
363 |
stl_le_phys(addr + 8*wp, response);
|
|
364 |
stl_le_phys(addr + 8*wp + 4, ex);
|
|
378 | 365 |
d->rirb_wp = wp; |
379 | 366 |
|
380 | 367 |
dprint(d, 2, "%s: [wp 0x%x] response 0x%x, extra 0x%x\n", |
... | ... | |
461 | 448 |
} |
462 | 449 |
if (d->dp_lbase & 0x01) { |
463 | 450 |
addr = intel_hda_addr(d->dp_lbase & ~0x01, d->dp_ubase); |
464 |
stl_phys_le(addr + 8*s, st->lpib);
|
|
451 |
stl_le_phys(addr + 8*s, st->lpib);
|
|
465 | 452 |
} |
466 | 453 |
dprint(d, 3, "dma: --\n"); |
467 | 454 |
|
Also available in: Unified diff