History log of /haiku-fatelf/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h
Revision Date Author Comments
# 0a361580 05-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Added HDA quirks for enabling snoop.

* Enabled snoop for all Intel hardware as found in the Linux driver.
* This fixes #8949.


# 07fbbf9b 15-Jan-2009 Jérôme Duval <korli@users.berlios.de>

build fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28911 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c71a6614 01-Jan-2009 Jérôme Duval <korli@users.berlios.de>

* try to enable EAPD on capable pin widgets
* added a pin capabilities attribute instead of input and output pin attributes
* added ATI and nVidia vendor ids definitions
* uses "mic in" and "line in" when pin colors are undefined


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 321e633f 01-Jan-2009 Jérôme Duval <korli@users.berlios.de>

Patch from tqh, modified by myself: enable PCIe snooping through vendor specific registers (ATI and nVidia).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28838 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1708513c 06-Aug-2008 Jérôme Duval <korli@users.berlios.de>

* added an ALIGN macro for easing readability and use it for 128 alignments
* use HDAC_STREAM_POSITION register value to check the current buffer cycle in interrupt handler
* added B_FULL_LOCK flags for area allocation, not sure it's handled but at least more correct
* buffer descriptors now use a low and high address fields
* applied a byte mask on format
* enabled PCI bus mastering if not yet done
* the PCI space register TCSEL (Traffic Class Select Register, which sets PCI express QOS) is now reset to TC0 (clear 0-2 bits) as needed on some boards like mine to
ensure good playback

Playback is finally working correctly here on ICH8 HDA!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a9410600 07-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Rewrote controller reset - it now performs a full reset, and does no longer
assume the driver to be in reset when started.
* Major cleanup of the register access: now hda_controller and hda_stream both
have member functions for this, the OREGx() and REGx() macros are gone.
* Made the register names and definitions more descriptive - the short names
of the specs are still mentioned in the comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 105152d1 29-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Rewrote CORB/RIRB handling: the previous code did not use it as a ring
buffer and would thus overwrite foreign memory after a while resp. reading
invalid responses.
* Further cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24177 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ef3822c 26-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* No longer enable interrupts for all possible streams - they are now enabled
on a per-stream basis in hda_stream_start().
* Also, don't turn on interrupt generation in the stream before starting the
stream.
* Create space for the DMA position update and set it in the controller, not
yet tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24144 a95241bf-73f2-0310-859d-f6bbb57e9c96


# af45eef1 25-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed rate for 96kHz.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 44f16897 05-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Removed B_CAN_INTERRUPT from acquire_sem_etc() call in hda_send_verbs();
that doesn't look right to me (and since there is a 50 ms timeout anyway...).
* Minor coding style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23872 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 89db0a5b 13-May-2007 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

*** WARNING: UNSTABLE CODE AHEAD :P ***

This is the first (sort-of) working incarnation of the High Definition Audio driver. This
driver still has quite some way to go before coming to a point that we could call it stable
and useful, so please use with care. It has been developed on R5, so it might even become
useful for people still stuck on R5.

This driver was inspired by both the BSD work on HDA support, as well as our own dr_evil's
work on the ich_ac97 driver.

Before you start bugging me about completing the driver, or adding features, please capture
the serial debug output and mail it to ithamar AT unet DOT nl, including hardware details,
and success/failure descriptions.

As a last note, DasJott, if you're reading this, the first music it played was...
'Prodigy: Smack Your Bitch Up' :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21127 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a361580ad81fd49bdb887656e0c934a73020fb4 05-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Added HDA quirks for enabling snoop.

* Enabled snoop for all Intel hardware as found in the Linux driver.
* This fixes #8949.


# 07fbbf9b6e33618f7ecebacab59c7dadafe86767 15-Jan-2009 Jérôme Duval <korli@users.berlios.de>

build fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28911 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c71a6614e2c46e35d1796191c8fb04d9fb1071b0 01-Jan-2009 Jérôme Duval <korli@users.berlios.de>

* try to enable EAPD on capable pin widgets
* added a pin capabilities attribute instead of input and output pin attributes
* added ATI and nVidia vendor ids definitions
* uses "mic in" and "line in" when pin colors are undefined


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 321e633fa4b8e858a4bbe9b4de35074a818f99da 01-Jan-2009 Jérôme Duval <korli@users.berlios.de>

Patch from tqh, modified by myself: enable PCIe snooping through vendor specific registers (ATI and nVidia).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28838 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1708513ca8a6aca38dd653cd6a982ed4fbb286c0 06-Aug-2008 Jérôme Duval <korli@users.berlios.de>

* added an ALIGN macro for easing readability and use it for 128 alignments
* use HDAC_STREAM_POSITION register value to check the current buffer cycle in interrupt handler
* added B_FULL_LOCK flags for area allocation, not sure it's handled but at least more correct
* buffer descriptors now use a low and high address fields
* applied a byte mask on format
* enabled PCI bus mastering if not yet done
* the PCI space register TCSEL (Traffic Class Select Register, which sets PCI express QOS) is now reset to TC0 (clear 0-2 bits) as needed on some boards like mine to
ensure good playback

Playback is finally working correctly here on ICH8 HDA!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a9410600271a751844bc99f643977479d591c07d 07-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Rewrote controller reset - it now performs a full reset, and does no longer
assume the driver to be in reset when started.
* Major cleanup of the register access: now hda_controller and hda_stream both
have member functions for this, the OREGx() and REGx() macros are gone.
* Made the register names and definitions more descriptive - the short names
of the specs are still mentioned in the comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 105152d1f565933dbd8236f1eaf5da5d4ae12f1e 29-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Rewrote CORB/RIRB handling: the previous code did not use it as a ring
buffer and would thus overwrite foreign memory after a while resp. reading
invalid responses.
* Further cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24177 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ef3822c001e6db5b9964f376e437258bec69934 26-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* No longer enable interrupts for all possible streams - they are now enabled
on a per-stream basis in hda_stream_start().
* Also, don't turn on interrupt generation in the stream before starting the
stream.
* Create space for the DMA position update and set it in the controller, not
yet tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24144 a95241bf-73f2-0310-859d-f6bbb57e9c96


# af45eef18d3e7c03f3a935a5b72264984124972e 25-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed rate for 96kHz.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 44f16897021638e8e307f36d2b204524c48023c3 05-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Removed B_CAN_INTERRUPT from acquire_sem_etc() call in hda_send_verbs();
that doesn't look right to me (and since there is a 50 ms timeout anyway...).
* Minor coding style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23872 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 89db0a5bf7261730fcf8d988412b660ccbe1ffc8 13-May-2007 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

*** WARNING: UNSTABLE CODE AHEAD :P ***

This is the first (sort-of) working incarnation of the High Definition Audio driver. This
driver still has quite some way to go before coming to a point that we could call it stable
and useful, so please use with care. It has been developed on R5, so it might even become
useful for people still stuck on R5.

This driver was inspired by both the BSD work on HDA support, as well as our own dr_evil's
work on the ich_ac97 driver.

Before you start bugging me about completing the driver, or adding features, please capture
the serial debug output and mail it to ithamar AT unet DOT nl, including hardware details,
and success/failure descriptions.

As a last note, DasJott, if you're reading this, the first music it played was...
'Prodigy: Smack Your Bitch Up' :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21127 a95241bf-73f2-0310-859d-f6bbb57e9c96