Thomas Faber
6ec38aa942
[HDAUDBUS] Build a device instance ID from Codec & node number. CORE-13702
2019-09-27 21:29:41 +02:00
Thomas Faber
4c6cc29bb8
[HDAUDBUS] Fix timeouts for hardware register operations. CORE-15874
...
Most needed to be multiplied by 10 to match Haiku's behavior.
In one case, the broken timeout was offset by a higher number of loop
iterations, which is now restored.
This should fix failures on real hardware that result in the
"unable to exit reset" print, and avoid a possible subsequent Pnp
manager crash.
Compare with the following (both snooze and KeStallExecutionProcessor use microseconds):
ff38df48cf/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp (L466)
ff38df48cf/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp (L357)
ff38df48cf/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp (L978)
2019-09-26 10:27:31 +02:00
Jérôme Gardou
23373acbb9
[CMAKE] Use modules instead of shared libraries
...
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.
On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00
Thomas Faber
1001e6089f
[HDAUDBUS] Wait until the correct number of responses was received. CORE-15465
...
We previously only gave the device a hard-coded amount of time to respond,
which could lead to interpreting the contents of uninitialized memory as
a response. This would lead to an unreasonably large number of audio function
groups being detected.
A KSEMAPHORE mirrors what Haiku uses here, though it may not be the optimal
synchronization primitive for this case under Windows.
2019-02-28 10:27:06 +01:00
Thomas Faber
8530ae9950
[HDAUDBUS] Handle responses in a DPC instead of the ISR.
2019-02-28 10:06:18 +01:00
Thomas Faber
a7431880bd
[HDAUDBUS] Fix a DPRINT.
2019-02-28 10:05:53 +01:00
Thomas Faber
1f76fb738a
[HDAUDBUS] Prevent overflow of the AudioGroups array. CORE-14153 CORE-15465
...
This protects against crashing in case of faulty/malicious hardware,
but also works around a bug in HDA_SendVerbs that causes it to return
invalid data, thereby suggesting more groups than are actually present.
2019-02-27 11:04:23 +01:00
Thomas Faber
a8414f665b
[HDAUDBUS] Implement HDA_Unload. Stub HDA_Power and HDA_SystemControl.
2019-02-26 09:58:53 +01:00
Thomas Faber
25b22131ca
[HDAUDBUS] Correctly mask register values.
...
See https://github.com/haiku/haiku/blob/master/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp
and https://github.com/haiku/haiku/blob/master/src/add-ons/kernel/drivers/audio/hda/driver.h#L118-L140
This fixes various device reset failures and probably other issues.
2019-02-26 09:51:48 +01:00
Thomas Faber
584baf79d9
[HDAUDBUS] Implement PDO removal. CORE-14617
2019-02-26 09:51:38 +01:00
Thomas Faber
c8c0fc8d64
[HDAUDBUS] Implement FDO removal. CORE-14617
2019-02-26 09:51:21 +01:00
Thomas Faber
b05e5b0340
[HDAUDBUS] Use IoForwardIrpSynchronously instead of HDA_SyncForwardIrp.
2019-02-26 09:50:50 +01:00
Thomas Faber
789cfd3ddc
[HDAUDBUS] Forward FDO requests instead of completing them.
2019-02-26 09:20:47 +01:00
Thomas Faber
ce6960b3f5
[HDAUDBUS] Use a switch for minor function codes.
2019-02-26 09:20:43 +01:00
Thomas Faber
9c7c2deff9
[HDAUDBUS] Split FDO/PDO PNP handling into separate functions.
2019-02-26 09:20:37 +01:00
Thomas Faber
b65ec6ffba
[HDAUDBUS] Minor fixes:
...
* Add some forward-declarations
* Add some annotations
* Improve a DPRINT
2019-02-26 09:18:41 +01:00
Colin Finck
c2c66aff7d
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
2017-10-03 07:45:34 +00:00