Date: Tue, 14 Sep 1999 08:40:07 -0700 From: Bill Fenner <fenner@research.att.com> To: multimedia@freebsd.org Subject: Anyone have a YMF740 driver? Message-ID: <199909141540.IAA26665@windsor.research.att.com>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Howdy,
My wife has an Intel SE440BX-2 motherboard with a YMF740 on board.
With all this talk about PCI audio, is there a driver for it? I
tried to write a cheap hack which enabled the SB emulation and then
let pcm probe it; it did allow pcm to probe it but DMA transfers
didn't really work. It's entirely possible that they never would,
since I don't know how many of the compatibility pins are attached
on this motherboard.
I attach my hack in case anyone can improve upon it. I found the
YMF740 datasheet at some non-obvious place at yamaha's web site
(I started at yamaha.com but then the datasheet was at some other
yamahafoo.com domain) but I can forward it to anyone who wants it.
Thanks,
Bill
[-- Attachment #2 --]
#include "pci.h"
#include <sys/param.h>
#include <sys/queue.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <machine/bus_pio.h>
#include <machine/bus_memio.h>
#include <machine/bus.h>
#include <pci/pcireg.h>
#include <pci/pcivar.h>
#if NPCI != 0
static const char *ymf_pci_probe __P((pcici_t, pcidi_t));
static void ymf_pci_attach __P((pcici_t, int));
#define YMF740C_PCI_ID 0x000c1073
static u_long nymf = 0;
static struct pci_device ymf_pci_driver = {
"ymf",
ymf_pci_probe,
ymf_pci_attach,
&nymf,
NULL
};
DATA_SET(pcidevice_set, ymf_pci_driver);
static const char *
ymf_pci_probe(pcici_t tag, pcidi_t type)
{
if (type == YMF740C_PCI_ID)
return ("Yamaha YMF740C [legacy mode]");
return (NULL);
}
static void
ymf_pci_attach(pcici_t config_id, int unit)
{
u_int32_t data;
/* turn on legacy support */
#define YMF_REVISION_ID 0x08
#define YMF_LEGACY_AUDIO 0x40
#define YMF_LEGACY_AUDIO_DISABLE 0x8000
data = pci_cfgread(config_id, YMF_LEGACY_AUDIO, 4);
data &= ~YMF_LEGACY_AUDIO_DISABLE;
pci_conf_write(config_id, YMF_LEGACY_AUDIO, data, 4);
/* set legacy IRQ mode, and map my INTA# to IRQ 5? */
/* I think it's really DMA that's not really working. */
/* Could set up as SB and then call pcminit() */
printf("ymf%d: rev.%d. set up legacy audio support.\n",
pci_cfgread(config_id, YMF_REVISION_ID, 1), unit);
return;
}
#endif /* NPCI */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909141540.IAA26665>
