aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Walpen <dev@submerge.ch>2024-04-27 08:48:37 +0000
committerRuslan Bukin <br@FreeBSD.org>2024-04-27 08:48:37 +0000
commit9718d4ab99386918f5b5c207c58289eaade20623 (patch)
treeda41e721488fb44179793c5c63d8cc45ac2ca3d4
parent4ba444de708bada46a88ecac17b2f6c1dc912234 (diff)
downloadsrc-9718d4ab99386918f5b5c207c58289eaade20623.tar.gz
src-9718d4ab99386918f5b5c207c58289eaade20623.zip
snd_hdspe(4): Recognize newer firmware's PCI vendor id.
At least for HDSPe RayDAT cards, newer firmware comes with RME's own PCI vendor id instead of the Xilinx one. Other HDSPe cards are probably also affected. Update snd_hdspe(4) to recognize both the old Xilinx and the new RME vendor ids. Differential Revision: https://reviews.freebsd.org/D44978 MFC after: 1 day
-rw-r--r--sys/dev/sound/pci/hdspe.c3
-rw-r--r--sys/dev/sound/pci/hdspe.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/sound/pci/hdspe.c b/sys/dev/sound/pci/hdspe.c
index 0773362f2bc3..f9c36df359e3 100644
--- a/sys/dev/sound/pci/hdspe.c
+++ b/sys/dev/sound/pci/hdspe.c
@@ -474,7 +474,8 @@ hdspe_probe(device_t dev)
{
uint32_t rev;
- if (pci_get_vendor(dev) == PCI_VENDOR_XILINX &&
+ if ((pci_get_vendor(dev) == PCI_VENDOR_XILINX ||
+ pci_get_vendor(dev) == PCI_VENDOR_RME) &&
pci_get_device(dev) == PCI_DEVICE_XILINX_HDSPE) {
rev = pci_get_revid(dev);
switch (rev) {
diff --git a/sys/dev/sound/pci/hdspe.h b/sys/dev/sound/pci/hdspe.h
index de20462170e7..daffeb4ddebc 100644
--- a/sys/dev/sound/pci/hdspe.h
+++ b/sys/dev/sound/pci/hdspe.h
@@ -28,6 +28,7 @@
*/
#define PCI_VENDOR_XILINX 0x10ee
+#define PCI_VENDOR_RME 0x1d18 /* Newer firmware versions. */
#define PCI_DEVICE_XILINX_HDSPE 0x3fc6 /* AIO, MADI, AES, RayDAT */
#define PCI_CLASS_REVISION 0x08
#define PCI_REVISION_AIO 212