Date: Tue, 4 Apr 2006 08:49:27 +0700 From: "Angka H. K." <harikurniawan@gmail.com> To: "Stephane E. Potvin" <sepotvin@videotron.ca> Cc: freebsd-multimedia@freebsd.org Subject: Re: High Definition Audio driver Message-ID: <4c40c4e70604031849l4ac2610btcadd088cbe204bc6@mail.gmail.com> In-Reply-To: <4430AE68.6000301@videotron.ca> References: <4430AE68.6000301@videotron.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
When I try to compile it I didn't found a "Makefile", then I impoerted the snd_ich Makefile with a few changes and adding my device id. It wa compiled and can be loaded but it cannot allocate memory for my card. Where can I take a look about memory alocation in my hardware ? On 4/3/06, Stephane E. Potvin <sepotvin@videotron.ca> wrote: > > A few weeks ago I upgraded my laptop only to discover that the sound > system > on it was unsupported by FreeBSD, being an High Definition Audio > controller / codec. I started at that time to write a driver specific to > FreeBSD. Given that it seems that I'm not the only one stuck with this > problem, I decided after some gentle prodding by Alexander to share what > I'm trying to achieve. > > I first had a look at the NetBSD driver but soon decided not to start fro= m > it. They chose to use a monolithic driver that controls both the HDA > controller and the audio codec. The HDA architecture calls for a single > HDA > controller to have many codecs connected via a shared bus. Each codec can > have multiple functions. These functions could be Audio, Modems, etc. > > So I decided to take another approach for the driver I'm writing. I've > decided to split it into a driver for the HDA controller itself, one for > the HDA bus and one (or many) for the actual functions. The bus driver > will > be used to enumerate the different functions that are on the different > codecs to find matching drivers. > > This will enable us, in the long run, to be able to support other drivers > than Audio ones (like modems). It will also enable to have more than one > Audio function active on a single controller (in the case of an external > codec in a docking station for example). It will also enable the support > of > different controllers on other architectures in case this standard catche= s > up without having to rewrite the audio functions. > > Here are the major steps that I currently plan to do for this driver. The= y > are not in any relevant order: > > - Implement the CORB and RIRB engines to send verbs and receive responses > from the codecs (mostly done). > > - Implement a bus driver (hda) that will enumerate the functions on the > codecs and try to attach matching drivers. I'm not sure yet if I'll use > the > bus_space subsystem to handle reading and writing the function registers > (via the CORB/RIRB). If anyone has any thoughts about that I'll be glad t= o > hear about them. (started but progressing slowly) > > - Add support for the Stream Resources on the HDA controller. These are > the > DMA engines that transfer the actual audio data to and from the codecs to > physical memory. > > - Write the actual audio driver to control the audio function. This will > be > the driver that will actually attach to the pcm subsystem. > > - Add unsolicited response support to handle asynchronous events from the > functions. This will enable, for example, to send a devd events (or via > any > other mechanism required) to userspace applications to indicate that a > jack > was inserted or removed. > > - Add hot insertion/removal of codecs to handle the case where a docking > station that sports a codec is added. > > - Support for low power states on the HDA controller and on the codecs. > > - Suspend / Resume support for laptop. I guess that I'll somewhat need to > fix basic suspend/resume on my laptop before I can tackle that :( > > - Any other things I might need to add along the way...( > > Now, the bad news. I'm working on this when I have the time but it's > usually not nearly enough as I would like it to be. I'll get there someda= y > unless somebody else beat me to it. If anybody would like this to go > faster, I'll be very happy to get any help that I might get. > > In case it might be of interest to anybody, there's a version of the > driver > (about 2 weeks ago) available at: (Thanks again Alexander) > http://www.leidinger.net/FreeBSD/hdac-20060313.tbz > > Usual disclaimers, use this at your own risk. It may eat your computer, > make your cats sick, yaya. Some parts were added in a hurry just to make > this work (the interrupt handler for example), so they are kind of really > ugly. I plan to refine them with time. > > I'm currently working on the bus driver itself. Once I get it working to > my > liking, I'll update the driver and post a message here.. > > I would appreciate any feedback I can get about my plans, what I have don= e > so far, etc. Please don't hesitate to drop me an email in that case. > > Regards, > > Steph > _______________________________________________ > freebsd-multimedia@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-multimedia > To unsubscribe, send any mail to " > freebsd-multimedia-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4c40c4e70604031849l4ac2610btcadd088cbe204bc6>