mirror of
https://github.com/opnsense/src.git
synced 2026-06-05 06:42:56 -04:00
Add a sound(4) bridge device driver for the RME HDSP 9632 and HDSP 9652 sound cards. These cards require a nowadays rare PCI 32bit (not PCIe) slot, but still see use due to their value and wealth of features. The HDSP 9632 is mostly comparable to the newer HDSPe AIO, while the HDSP 9652 is similar to the HDSPe RayDAT. These HDSPe PCIe cards are supported by the snd_hdspe(4) driver which was taken as a starting point for development of snd_hdsp(4). Implementation is kept separately due to substantial differences in hardware configuration and to allow easy removal in case PCI 32bit support would be phased out in the future. The snd_hdsp(4) kernel module is not enabled by default, and can be loaded at runtime with kldload(8) or during boot via loader.conf(5). Basic operation was tested with both cards, not including all optional cable connectors and expansion boards. Features should be roughly on par with the snd_hdspe(4) supported cards. Reviewed by: christos, br Differential Revision: https://reviews.freebsd.org/D45112
81 lines
2.9 KiB
C
81 lines
2.9 KiB
C
/*-
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Copyright (c) 2000 Cameron Grant <cg@freebsd.org>
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*/
|
|
|
|
#ifdef HAVE_KERNEL_OPTION_HEADERS
|
|
#include "opt_snd.h"
|
|
#endif
|
|
|
|
#include <dev/sound/pcm/sound.h>
|
|
|
|
static int
|
|
snd_modevent(module_t mod, int type, void *data)
|
|
{
|
|
|
|
switch (type) {
|
|
case MOD_LOAD:
|
|
break;
|
|
case MOD_UNLOAD:
|
|
break;
|
|
default:
|
|
return (ENOTSUP);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
static moduledata_t snd_mod = {
|
|
"snd_driver",
|
|
snd_modevent,
|
|
NULL
|
|
};
|
|
DECLARE_MODULE(snd_driver, snd_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
|
|
MODULE_VERSION(snd_driver, 1);
|
|
|
|
MODULE_DEPEND(snd_driver, snd_als4000, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_atiixp, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_cmi, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_cs4281, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_csa, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_csapcm, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_emu10kx, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_envy24, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_envy24ht, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_es137x, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_fm801, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_hda, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_hdsp, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_hdspe, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_ich, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_maestro3, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_neomagic, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_solo, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_spicds, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_t4dwave, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_via8233, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_via82c686, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_vibes, 1, 1, 1);
|
|
MODULE_DEPEND(snd_driver, snd_uaudio, 1, 1, 1);
|