[alsa-devel] hdspm - Missing PCI ID for PCIe MADI
Hi Adrian,
thanks for the latest patches. While doing some testing, I noticed that one PCI ID (d2) was missing, so the module didn't load.
$ grep 'hdsp_madi,' hdsp.inf | sort | uniq
%DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_C8 %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_C9 %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_CA %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_CB %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_CC %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_CD %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_CE %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_CF %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_D2 %DeviceDescMadi% = hdsp_madi, PCI\VEN_10EE&DEV_3FC6&REV_D5
Trivial patch below, that should be all then. Tested on CentOS 6.0, vanilla kernel 3.0.7 with RT-20 and latest hdspm.c from GitHub.
Cheers, Andre
diff -up hdspm.c.orig hdspm.c --- hdspm.c.orig 2011-11-18 11:12:36.549938179 +0100 +++ hdspm.c 2011-11-18 11:12:47.351937890 +0100 @@ -6518,8 +6518,9 @@ static int __devinit snd_hdspm_create(st hdspm->io_type = AES32; hdspm->card_name = "RME AES32"; hdspm->midiPorts = 2; - } else if ((hdspm->firmware_rev == 0xd5) || - ((hdspm->firmware_rev >= 0xc8) && + } else if ((hdspm->firmware_rev == 0xd2) || // D2 = PCIe MADI + (hdspm->firmware_rev == 0xd5) || // D5 = PCIe MADIface + ((hdspm->firmware_rev >= 0xc8) && // C8 - CF = PCI MADI (hdspm->firmware_rev <= 0xcf))) { hdspm->io_type = MADI; hdspm->card_name = "RME MADI";
On Sun, Nov 20, 2011 at 11:12:58PM +0100, Andre Schramm wrote:
Hi Adrian,
Hi!
thanks for the latest patches. While doing some testing, I noticed that one PCI ID (d2) was missing, so the module didn't load.
It's not really missing, I used the wrong one. :-/
c09403dcc was written way too late in the evening. As I always say: no serious work past 6pm. ;)
Thanks for spotting, I'll come up with a patch in a second.
Yours could in theory also be applied, but technically, it still tries to match the MADIface ID. My bad, cause MADIface is handled in a separate case branch.
Cheers
Commit c09403dcc5698abf214329fbbf3cf8dbb5558bea has introduced a regression: PCIe versions of RME MADI were no longer detected, because the MADIface ID (0xd5) was used instead of the correct 0xd2.
This commit fixes the problem.
Signed-off-by: Adrian Knoth adi@drcomp.erfurt.thur.de
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index e760ada..19ee220 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c @@ -6518,7 +6518,7 @@ static int __devinit snd_hdspm_create(struct snd_card *card, hdspm->io_type = AES32; hdspm->card_name = "RME AES32"; hdspm->midiPorts = 2; - } else if ((hdspm->firmware_rev == 0xd5) || + } else if ((hdspm->firmware_rev == 0xd2) || ((hdspm->firmware_rev >= 0xc8) && (hdspm->firmware_rev <= 0xcf))) { hdspm->io_type = MADI;
At Mon, 21 Nov 2011 16:15:36 +0100, Adrian Knoth wrote:
Commit c09403dcc5698abf214329fbbf3cf8dbb5558bea has introduced a regression: PCIe versions of RME MADI were no longer detected, because the MADIface ID (0xd5) was used instead of the correct 0xd2.
This commit fixes the problem.
Signed-off-by: Adrian Knoth adi@drcomp.erfurt.thur.de
Applied now to sound git tree. Thanks.
Takashi
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index e760ada..19ee220 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c @@ -6518,7 +6518,7 @@ static int __devinit snd_hdspm_create(struct snd_card *card, hdspm->io_type = AES32; hdspm->card_name = "RME AES32"; hdspm->midiPorts = 2;
} else if ((hdspm->firmware_rev == 0xd5) ||
} else if ((hdspm->firmware_rev == 0xd2) || ((hdspm->firmware_rev >= 0xc8) && (hdspm->firmware_rev <= 0xcf))) { hdspm->io_type = MADI;
-- 1.7.7.1
On Mon, 21 Nov 2011 15:02:21 +0100 Adrian Knoth adi@drcomp.erfurt.thur.de wrote:
thanks for the latest patches. While doing some testing, I noticed that one PCI ID (d2) was missing, so the module didn't load.
It's not really missing, I used the wrong one. :-/
c09403dcc was written way too late in the evening. As I always say: no serious work past 6pm. ;)
Hehe. And you meant _before_ 6pm, didn't you? ;)
Thanks for spotting, I'll come up with a patch in a second.
Yours could in theory also be applied, but technically, it still tries to match the MADIface ID. My bad, cause MADIface is handled in a separate case branch.
I see, didn't check that deep. I think there is a MADIface around somewhere, will check that too.
Thanks so far. :)
Cheers, Andre
participants (3)
-
Adrian Knoth
-
Andre Schramm
-
Takashi Iwai