Date: Sun, 26 Jun 2016 20:49:04 +0300 From: Alex Teaca <ionutalex.teaca@gmail.com> To: soc-status@freebsd.org Subject: Re: [GSOC 2016] HD Audio Emulation For Bhyve Status Message-ID: <CAP0yNurOFWzEN3oxewsTPMrFV6EzxKnHEp45XPpBdgd8jk7LuQ@mail.gmail.com> In-Reply-To: <CAP0yNuoUmU_Xhj5sY-L-G--_PkzgWWNQ-5D7ub-Jn6jvM_EhJg@mail.gmail.com> References: <CAP0yNupzDmLnaEPLL91FEf72V_LRRasD2FpexmkF6NaGrtt1kw@mail.gmail.com> <CAP0yNuoUmU_Xhj5sY-L-G--_PkzgWWNQ-5D7ub-Jn6jvM_EhJg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Short update. - implement the stream management operations (stream_start, stream_stop, hda stream interrupts, hda_transfer) in the hda and hda codec - create one thread per stream in the initialization of the codec which runs as long as the stream is started and waits on a conditional variable when the stream is stopped. - implement the Audio Player used to play samples to the sound device (/dev/dsp) (3 functions: audio_init, audio_set_params and audio_playback) Results: manage to play music in a bhyve virtual machine :) Thanks, Alex On Fri, Jun 17, 2016 at 9:52 PM, Alex Teaca <ionutalex.teaca@gmail.com> wrote: > Hi, > > I added a pin widget (Line-out) and now the Audio Output Widget is > enabled. The codec is installed as pcm0: > root@vm_hda:~ # cat /dev/sndstat > Installed devices: > pcm0: <Generic (0x8086) (Analog Line-out)> (play) default > > The next step is to implement the stream management operations such as > start_stream and stop_stream. I have taken a look on the Stream management > chapter from the HDA specification in order to get familiar with these > operations and study the driver implementation (hdaa_audio_setup, > hdac_stream_start, hdac_stream_stop) to see what registers are programmed > and what commands are sent to the codec. > > Together with Peter and Alexander we chose the design of the interaction > between the HDA controller, codecs and Audio player regarding the stream > management. > > Thanks, > Alex > > > On Mon, Jun 6, 2016 at 10:01 PM, Alex Teaca <ionutalex.teaca@gmail.com> > wrote: > >> Hi, >> >> Here is the status with the features I have implemented so far. >> >> - set up the HDA controller as a PCI device in bhyve >> - design the layout of registers and implement the read and write access >> to the registers >> - implement the CORB and RIRB mechanisms in order to get commands from >> driver and respond back >> - add the hdac_codec module and implement the interface of communication >> between the hda controller and codec >> - describe the hda codec parameters for each node (ROOT, FG and AUDIO >> OUTPUT) >> - handle the GET_PARAMETER verb >> >> At the moment there is only one widget: the Autio Output Widget and the >> hda driver has disabled it because it does not find any Pin widget. >> >> The plan is to add the Pin output widget and to continue with the streams >> data in order to play some samples. >> >> Thanks, >> Alex >> >> >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAP0yNurOFWzEN3oxewsTPMrFV6EzxKnHEp45XPpBdgd8jk7LuQ>