#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
230326 |
|
19-Jan-2012 |
mav |
Two 192/24/8 playback streams overflow single mandatory output line (SDO) of HDA bus. Handle that from two directions: - Add support for "striping" (using several SDO lines), if supported. - Account HDA bus utilization and return error on new stream allocation attempt if remaining bandwidth is unsifficient.
Most of HDA controllers have one SDO line with 46Mbps output bandwidth. NVIDIA GF210 has 2 lines - 92Mbps. NVIDIA GF520 has 4 lines - 184Mbps!
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
#
230130 |
|
15-Jan-2012 |
mav |
Major snd_hda driver rewrite: - Huge old hdac driver was split into three independent pieces: HDA controller driver (hdac), HDA CODEC driver (hdacc) and HDA sudio function driver (hdaa). - Support for multichannel recording was added. Now, as specification defines, driver checks input associations for pins with sequence numbers 14 and 15, and if found (usually) -- works as before, mixing signals together. If it doesn't, it configures input association as multichannel. - Signal tracer was improved to look for cases where several DACs/ADCs in CODEC can work with the same audio signal. If such case found, driver registers additional playback/record stream (channel) for the pcm device. - New controller streams reservation mechanism was implemented. That allows to have more pcm devices then streams supported by the controller (usually 4 in each direction). Now it limits only number of simultaneously transferred audio streams, that is rarely reachable and properly reported if happens. - Codec pins and GPIO signals configuration was exported via set of writable sysctls. Another sysctl dev.hdaa.X.reconfig allows to trigger driver reconfiguration in run-time. - Driver now decodes pins location and connector type names. In some cases it allows to hint user where on the system case connectors, related to the pcm device, are located. Number of channels supported by pcm device, reported now (if it is not 2), should also make search easier. - Added workaround for digital mic on some Asus laptops/netbooks.
MFC after: 2 months Sponsored by: iXsystems, Inc.
|
#
202127 |
|
11-Jan-2010 |
mav |
Add multichannel (4.0 and 7.1) playback support. 5.1 mode support blocked now due to unidentified synchonization problem. For 7.1 soundcards 5.1 support handled correctly via software upmix done by sound(4).
Stereo stream is no more duplicated to all ports. If you loose sound, check you are using right connectors. Front speakers connector is usually green, center/LFE - orange, rear - black, side - gray.
|
#
196762 |
|
02-Sep-2009 |
mav |
Improve HDA controller capabilities logging.
|
#
185225 |
|
23-Nov-2008 |
mav |
Strictly differentiate digital and analog PCM devices according to codec nodes capabilities. Add "Analog"/"Digital" marks to the pcm device names.
I hope it will help new users easier accept concept of several PCM devices and understand exact purposes of that devices.
|
#
182999 |
|
13-Sep-2008 |
mav |
My massive snd_hda driver update.
Because of using more clear and same time more functional codec parser new driver is able to handle more codecs, use them better then before and without most of previous quirks. All of tested codecs itself manage playback, record, input mixing and monitoring quite fine. In all of investigated trouble cases problem was found or in nonstandard codec usage or incorrect codec configuration made by BIOS. Most of that cases could be fixed using device hints, some of which are already included to the driver.
New driver supports multiple codecs per HDA bus, multiple audio function groups per codec and multiple logical sound devices per audio function group. So don't worry when you get several PCM devices instead of one, it is normal. It is usual situation with powerful codecs to provide, for example, 3 PCM devices: one for 7.1 playback and main recording, one for headset and one for digital SPDIF I/O.
New driver implements Universal Audio Architecture (UAA) much better then previous one. Most information about recommended codec usage now taken from the codec configuration registers initialized by BIOS. User may alter that configuration using device hints to reconfigure logical audio devices to his needs in a very broad range up to the limits of the codec functionality.
New driver supports digital PCM playback and AC3 pass-through. I am not sure about completeness of this implementation, but I have several success stories including my own. Vchans subsystem does not support AC3 pass-through so it had to be disabled for that devices at this moment.
New driver is ready for multichannel playback, but until our OSS is unable to use this it will just duplicate same stereo stream into all channel pairs.
New driver supports suspend/resume. I am unable to really test this part myself, but I have got several success stories.
Driver has very informative verbose boot messages. So if you have any questions or problems - enable and read them first.
Discussed on: freebsd-multimedia@ Tested by: many
|
#
171330 |
|
09-Jul-2007 |
ariff |
- Add codec id for Realtek ALC268.
- Add controller id for Intel 82801I (ICH9). PR: kern/114399 Submitted by: Michael Fuckner <michael@fuckner.net>
- MSI support. Disable by default due to various issues with too many broken hardwares. MSI can be enabled through device.hints(5) or kenv(8) by setting "hint.pcm.%d.msi=1". Partially submitted by: kevlo YAMAMOTO Taku <taku@tackymt.homeip.net> Tested by: joel, kevlo, YAMAMOTO Taku
Approved by: re (hrs) MFC after: 3 days
|
#
171141 |
|
01-Jul-2007 |
ariff |
- Fix input/microphone support for ASUS A8N-VMCSM series.
Submitted by: Simon Schubert <corecode@fs.ei.tum.de>
- Defer flushing unsolicited response into taskqueue thread rather than handle it directly in interrupt handler, since few of its operations (like measuring/calibrating jack impedance) are quite expensive. - Misc. debugging cleanups.
Tested by: joel Approved by: re (hrs) MFC after: 3 days
|
#
169277 |
|
05-May-2007 |
ariff |
Miscellaneous changes and fix:
- Remove explicit call to pmap_change_attr(), since we now have proper and functional definition of BUS_DMA_NOCACHE. - Enable PCI(e) bus snooping for non i386/amd64 as an alternative for uncacheable DMA. - Codecs changes: * Analag Device -> Analog Devices, AD1988. * New codec: VIA VT1708 and VT1709, Realtek ALC262, ALC861-VD and ALC885. * Various fixups for Conexant Waikiki, fix recording (read: microphone) on various Analog Devices codecs due to vendor BIOS mess, various quirks for several ASUS laptops/boards. - Fix connection list handling, closely following the specification to handle range of nids. - Basic Jack sense polling infrastructure for possible hardwares with broken unsolicited response interrupt.
Ideas/Submitted/Tested by: Andriy Gapon <avg@icyb.net.ua>, #freebsd-azalia, many.
|
#
167738 |
|
20-Mar-2007 |
ariff |
Put a temporary bandaid to set/reset uncacheable DMA region (affected on amd64 and i386) until we gain proper BUS_DMA_NOCACHE support. (in progress).
Tested by: rafan, infofarmer, Nguyen Tam Chinh <unixvn@gmail.com> Tested on: amd64, i386
|
#
166043 |
|
16-Jan-2007 |
joel |
Fix typo in a comment.
|
#
164614 |
|
26-Nov-2006 |
ariff |
Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixes in every sense.
General -------
- Multichannel safe, endian safe, format safe * Large part of critical pcm filters such as vchan.c, feeder_rate.c, feeder_volume.c, feeder_fmt.c and feeder.c has been rewritten so that using them does not cause the pcm data to be converted to 16bit little endian. * Macrosses for accessing pcm data safely are defined within sound.h in the form of PCM_READ_* / PCM_WRITE_* * Currently, most of them are probably limited for mono/stereo handling, but the future addition of true multichannel will be much easier.
- Low latency operation * Well, this require lot more works to do not just within sound driver, but we're heading towards right direction. Buffer/block sizing within channel.c is rewritten to calculate precise allocation for various combination of sample/data/rate size. As a result, applying correct SNDCTL_DSP_POLICY value will achive expected latency behaviour simmilar to what commercial 4front driver do. * Signal handling fix. ctrl+c of "cat /dev/zero > /dev/dsp" does not result long delay. * Eliminate sound truncation if the sound data is too small. DIY: 1) Download / extract http://people.freebsd.org/~ariff/lowlatency/shortfiles.tar.gz 2) Do a comparison between "cat state*.au > /dev/dsp" and "for x in state*.au ; do cat $x > /dev/dsp ; done" - there should be no "perceivable" differences. Double close for PR kern/31445.
CAVEAT: Low latency come with (unbearable) price especially for poorly written applications. Applications that trying to act smarter by requesting (wrong) blocksize/blockcount will suffer the most. Fixup samples/patches can be found at: http://people.freebsd.org/~ariff/ports/
- Switch minimum/maximum sampling rate limit to "1" and "2016000" (48k * 42) due to closer compatibility with 4front driver. Discussed with: marcus@ (long time ago?)
- All driver specific sysctls in the form of "hw.snd.pcm%d.*" have been moved to their own dev sysctl nodes, notably: hw.snd.pcm%d.vchans -> dev.pcm.%d.vchans Bump __FreeBSD_version.
Driver specific ---------------
- Ditto for sysctls.
- snd_atiixp, snd_es137x, snd_via8233, snd_hda * Numerous cleanups and fixes. * _EXPERIMENTAL_ polling mode support using simple callout_* mechanisme. This was intended for pure debugging and latency measurement, but proven good enough in few unexpected and rare cases (such as problematic shared IRQ with GIANT devices - USB). Polling can be enabled/disabled through dev.pcm.0.polling. Disabled by default.
- snd_ich * Fix possible overflow during speed calibration. Delay final initialization (pcm_setstatus) after calibration finished. PR: kern/100169 Tested by: Kevin Overman <oberman@es.net> * Inverted EAPD for few Nec VersaPro. PR: kern/104715 Submitted by: KAWATA Masahiko <kawata@mta.biglobe.ne.jp>
Thanks to various people, notably Joel Dahl, Yuriy Tsibizov, Kevin Oberman, those at #freebsd-azalia @ freenode and others for testing.
Joel Dahl will do the manpage update.
|
#
163057 |
|
06-Oct-2006 |
ariff |
- Fix wrong id for ALC882, add ALC883 id.
- Add support for the Conexant Waikiki/CX20551-22, found in most Toshiba P100 series laptops. Despite of growing urban legend of "unsupported Conexant", this codec is fully supported in this driver. Note: Toshiba P100 has broken (acpi) BIOS, thus rendering its soundchip useless. Please disable ACPI, or get BIOS updates (if any).
Found/tested by: Vulpes Velox <v.velox@vvelox.net> URL: http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-September/004896.html
- Parser cleanups to handle possible oss/mixer collision. Found after parsing Conexant Waikiki nodes.
- Increase resilient against resource failure during attach/detach.
- Implement simple config through hint.pcm.<unit>.config. Supported options: gpio0 (default on Acer), gpio1, gpio2, softpcmvol, fixedrate (default), forcestereo (default) * Option prefixed with "no" (such as "nofixedrate") will do the opposite. * Options can be separated using space " " or comma ",". * The "no" option will take precedence over anything else. Example: hint.pcm.0.config="gpio2,nofixedrate,noforcestereo,nogpio0,softpcmvol" hint.pcm.0.config="softpcmvol noforcestereo"
|
#
162922 |
|
01-Oct-2006 |
ariff |
Add support for Intel High Definition Audio Controller.
This driver make a special guarantee that "playback" works on majority hardwares with minimal or without specific vendor quirk.
This driver is a product of collaborative effort made by:
Stephane E. Potvin <sepotvin@videotron.ca> Andrea Bittau <a.bittau@cs.ucl.ac.uk> Wesley Morgan <morganw@chemikals.org> Daniel Eischen <deischen@FreeBSD.org> Maxime Guillaud <bsd-ports@mguillaud.net> Ariff Abdullah <ariff@FreeBSD.org>
....and various people from freebsd-multimedia@FreeBSD.org
Refer to snd_hda(4) for features and issues.
Welcome To HDA.
Sponsored by: Defenxis Sdn. Bhd.
|