Statistics
| Branch: | Revision:

root / hw / intel-hda.c @ 3871481c

History | View | Annotate | Download (38.8 kB)

# Date Author Comment
8aca5215 06/18/2012 06:35 pm Anthony Liguori

Merge remote-tracking branch 'afaerber-or/qom-next-2' into staging

  • afaerber-or/qom-next-2: (22 commits)
    qom: Push error reporting to object_property_find()
    qdev: Remove qdev_prop_exists()
    qbus: Initialize in standard way
    qbus: Make child devices links...
0d936928 06/18/2012 04:14 pm Anthony Liguori

qdev: Convert busses to QEMU Object Model

This is far less interesting than it sounds. We simply add an Object to each
BusState and then register the types appropriately. Most of the interesting
refactoring will follow in the next patches.

Since we're changing fundamental type names (BusInfo -> BusClass), it all needs...

0866aca1 06/18/2012 04:14 pm Anthony Liguori

qbus: Make child devices links

Make qbus children show up as link<> properties. There is no stable
addressing for qbus children so we use an unstable naming convention.

This is okay in QOM though because the composition name is expected to
be what's stable....

3cb75a7c 06/18/2012 04:14 pm Paolo Bonzini

qdev: Move bus properties to a separate global

Simple code movement in order to simplify future refactoring.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Andreas Färber <>

bce54474 06/18/2012 04:14 pm Paolo Bonzini

qdev: Move bus properties to abstract superclasses

In qdev, each bus in practice identified an abstract superclass, but
this was mostly hidden. In QOM, instead, these abstract classes are
explicit so we can move bus properties there.

All bus property walks are removed, and all device property walks...

cbd2d434 06/07/2012 05:19 pm Jan Kiszka

msi: Invoke msi/msix_reset from PCI core

There is no point in pushing this burden to the devices, they tend to
forget to call them (like intel-hda, ahci, xhci did). Instead, reset
functions are now called from pci_device_reset. They do nothing if
MSI/MSI-X is not in use....

95d65800 06/07/2012 05:19 pm Jan Kiszka

msi: Invoke msi/msix_write_config from PCI core

Also this functions is better invoked by the core than by each and every
device. This allows to drop the config_write callbacks from ich and
intel-hda.

CC: Alexander Graf <>
CC: Gerd Hoffmann <>...

8e729e3b 06/07/2012 05:18 pm Jan Kiszka

intel-hda: Fix reset of MSI function

Call msi_reset on device reset as still required by the core.

CC: Gerd Hoffmann <>
CC:
Signed-off-by: Jan Kiszka <>
Signed-off-by: Michael S. Tsirkin <>

83f7d43a 02/15/2012 05:39 pm Andreas Färber

qom: Unify type registration

Replace device_init() with generalized type_init().

While at it, unify naming convention: type_init([$prefix_]register_types)
Also, type_init() is a function, so add preceding blank line where
necessary and don't put a semicolon after the closing brace....

39bffca2 02/03/2012 06:41 pm Anthony Liguori

qdev: register all types natively through QEMU Object Model

This was done in a mostly automated fashion. I did it in three steps and then
rebased it into a single step which avoids repeatedly touching every file in
the tree.

The first step was a sed-based addition of the parent type to the subclass...

d307af79 02/03/2012 06:41 pm Anthony Liguori

qdev: kill off DeviceInfo

It is no longer used in the tree since everything is done natively through
QEMU Object Model.

Signed-off-by: Anthony Liguori <>

40021f08 01/27/2012 06:50 pm Anthony Liguori

pci: convert to QEMU Object Model

Signed-off-by: Anthony Liguori <>

dbaa7904 01/27/2012 06:50 pm Anthony Liguori

hda-codec: convert to QEMU Object Model

Signed-off-by: Anthony Liguori <>

94afdadc 01/27/2012 06:50 pm Anthony Liguori

qdev: use a wrapper to access reset and promote reset to a class method

Signed-off-by: Anthony Liguori <>

f79f2bfc 01/27/2012 06:50 pm Anthony Liguori

qdev: don't access name through info

We already have a QOM interface for this so let's use it.

Signed-off-by: Anthony Liguori <>

30fbb9fc 01/27/2012 06:50 pm Anthony Liguori

qdev: move qdev->info to class

Right now, DeviceInfo acts as the class for qdev. In order to switch to a
proper ObjectClass derivative, we need to ween all of the callers off of
interacting directly with the info pointer.

Signed-off-by: Anthony Liguori <>

18ebcc86 11/02/2011 02:51 pm Gerd Hoffmann

intel-hda: fix stream search

commit ba43d28916c4f51c19bd7366089155ce81bee058 introduces a bug:
The stream-not-found case doesn't error out any more, instead the
code silently uses the first stream. Fix it.

Signed-off-by: Gerd Hoffmann <>...

fa0ce55c 11/01/2011 11:52 pm David Gibson

intel-hda: Use PCI DMA stub functions

This updates the intel-hda device emulation to use the explicit PCI DMA
functions, instead of directly calling physical memory access functions.

Signed-off-by: David Gibson <>
Signed-off-by: Alexey Kardashevskiy <>...

d8bb00d6 10/28/2011 08:25 pm Paolo Bonzini

qdev: switch children device list to QTAILQ

SCSI buses will need to read the children list first-to-last. This
requires using a QTAILQ, because hell breaks loose if you just try
inserting at the tail (thus reversing the order of all existing
visits from last-to-first to first-to-tail)....

ba43d289 10/25/2011 06:15 pm Marc-André Lureau

hda: do not mix output and input stream states, RHBZ #740493

Windows 7 may use the same stream number for input and output.
Current code will confuse streams.

Changes since v1:
- keep running_compat[] for migration version 1
- add running_real[] for migration version 2...

36ac4ad3 10/25/2011 06:15 pm Marc-André Lureau

hda: do not mix output and input streams, RHBZ #740493

Windows 7 may use the same stream number for input and output.
That will result in lot of garbage on playback.

The hardcoded value of 4 needs to be in sync with GCAP streams
description and IN/OUT registers....

7267c094 08/21/2011 07:01 am Anthony Liguori

Use glib memory allocation and free functions

qemu_malloc/qemu_free no longer exist after this commit.

Signed-off-by: Anthony Liguori <>

e824b2cc 08/08/2011 06:22 pm Avi Kivity

pci: rename pci_register_bar_region() to pci_register_bar()

Reviewed-by: Richard Henderson <>
Reviewed-by: Anthony Liguori <>
Signed-off-by: Avi Kivity <>
Signed-off-by: Anthony Liguori <>

234bbdf1 08/08/2011 06:22 pm Avi Kivity

intel-hda: convert to memory API

Reviewed-by: Richard Henderson <>
Reviewed-by: Anthony Liguori <>
Signed-off-by: Avi Kivity <>
Signed-off-by: Anthony Liguori <>

6c7796e5 07/12/2011 11:00 pm Alexander Graf

intel-hda: use specific endian ld/st_phys

Signed-off-by: Alexander Graf <>
Signed-off-by: Blue Swirl <>

d15fda63 06/12/2011 10:33 am Isaku Yamahata

hw/intel-hda.c: convert to PCIDeviceInfo to initialize ids

use PCIDeviceInfo to initialize ids.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

45fe15c2 05/05/2011 04:10 pm Jan Kiszka

MSI: Robust resource release

msi_init may fail, so we need to check on uninit if the cap was
actually installed. This also avoids that the users need to check.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Michael S. Tsirkin <>

d28ca60a 04/07/2011 01:56 pm Avi Kivity

hda-intel: convert to pci_register_bar_simple()

Signed-off-by: Avi Kivity <>
Signed-off-by: Michael S. Tsirkin <>

74475455 03/21/2011 10:23 am Paolo Bonzini

change all other clock references to use nanosecond resolution accessors

This was done with:

sed -i 's/qemu_get_clock\>/qemu_get_clock_ns/' \
$(git grep -l 'qemu_get_clock\>' )
sed -i 's/qemu_new_timer\>/qemu_new_timer_ns/' \
$(git grep -l 'qemu_new_timer\>' )...
2507c12a 12/11/2010 05:24 pm Alexander Graf

Add endianness as io mem parameter

As stated before, devices can be little, big or native endian. The
target endianness is not of their concern, so we need to push things
down a level.

This patch adds a parameter to cpu_register_io_memory that allows a
device to choose its endianness. For now, all devices simply choose...

df0db221 11/09/2010 06:32 pm Gerd Hoffmann

intel-hda: fix codec addressing.

The HDA bus supports up to 15 codecs, with addresses 0 ... 14.
We get that wrong in two places:

  • When handing out addresses we accept address 15 as valid.
  • The bitmasks for two registers (WAKEEN and STATESTS) don't
    have bit 14 set....
e2553eb4 11/09/2010 06:14 pm malc

Revert "intel-hda: fix codec addressing."

Misses braces

This reverts commit acc086837e49b44f15eff6007bb1726844df7aec.

af93485c 11/09/2010 03:51 pm François Revol

intel-hda: Honor WAKEEN bits.

HDA: Honor WAKEEN bits when deciding to raise an interrupt on codec
status change. This prevents an interrupt storm with the Haiku HDA
driver which does not handle codec status changes in the irq handler.

Signed-off-by: François Revol <>...

6a0d02f5 11/09/2010 03:51 pm Gerd Hoffmann

intel-hda: update irq status on WAKEEN changes.

When the guest updates the WAKEEN register we
must re-calculate the IRQ status.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: malc <>

17786d52 11/09/2010 03:51 pm Gerd Hoffmann

intel-hda: add msi support

This patch adds MSI support to the intel hda audio driver. It is
enabled by default, use '-device intel-hda,msi=0' to disable it.

[ v2: codestyle: add braces ]

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: malc <>

acc08683 11/09/2010 03:51 pm Gerd Hoffmann

intel-hda: fix codec addressing.

The HDA bus supports up to 15 codecs, with addresses 0 ... 14.
We get that wrong in two places:

  • When handing out addresses we accept address 15 as valid.
  • The bitmasks for two registers (WAKEEN and STATESTS) don't
    have bit 14 set....
dc4b9240 11/09/2010 03:51 pm Gerd Hoffmann

intel-hda: exit cleanup

Add pci exit callback for the intel-hda device and cleanup properly.
Also add an exit callback to the HDA bus implementation and make sure
it is called on qdev_free().

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: malc <>

d61a4ce8 11/01/2010 04:57 pm Gerd Hoffmann

Add Intel HD Audio support to qemu.

This patch adds three devices to qemu:

intel-hda
Intel HD Audio Controller, the PCI device. Provides a HDA bus.
Emulates ICH6 at the moment. Adding a ICH9 PCIE
variant shouldn't be hard.

hda-duplex
HDA Codec. Attaches to the HDA bus. Supports 16bit stereo,...