- Jul 05, 2010
-
-
John Kacur authored
Most of this function is protected by the sound_loader_lock. We can push down the BKL to this call out err = file->f_op->open(inode,file); In order to build the sound core without the BKL, we will need to push the lock_kernel() call into the ~20 device drivers that register their file operations. Signed-off-by:
John Kacur <jkacur@redhat.com> Signed-off-by:
Arnd Bergmann <arnd@arndb.de> Acked-by:
Alan Cox <alan@linux.intel.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- Jun 28, 2010
-
-
David Dillow authored
A few boards using this controller are reported to need a little extra time during their reset cycle. Reported-by:
Michael Goeke <michael.goeke@icachip.de> Signed-off-by:
Dave Dillow <dave@thedillows.org> Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
David Dillow authored
When using a timing voice to clock out periods during capture, the driver would slowly loose synchronization and never catch up, eventually reaching a point where it no longer generated interrupts. To avoid this situation, the virtual period clocking was changed to shorten the next timing period when our timing voice falls too far behind the capture voice. In addition, the first virtual period for the timing voice was slightly too short, causing the timing voice to initially be ahead of the capture voice. While tracking down this problem, I noticed that the expected sample offset was being incorrectly initialized, causing an overrun to be incorrectly reported when the timing voice happened to be perfectly synchronized. Reported-by:
Hans Schou <linux@schou.dk> Signed-off-by:
Dave Dillow <dave@thedillows.org> Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
David Dillow authored
When using poll() to wait for the next period -- or avail_min samples -- one gets a consistent delay for each system call that is usually just a little short of the selected period time. However, When using snd_pcm_read/write(), one gets a jittery delay that alternates between less than a millisecond and approximately two period times. This is caused by snd_pcm_lib_{read,write}1() transferring any available samples to the user's buffer and adjusting the application pointer prior to sleeping to the end of the current period. When the next period interrupt occurs, there is then less than avail_min samples remaining to be transferred in the period, so we end up sleeping until a second period occurs. This is solved by using runtime->twake as the number of samples needed for a wakeup in addition to selecting the proper wait queue to wake in snd_pcm_update_state(). This requires twake to be non-zero when used by snd_pcm_lib_{read,write}1() even if avail_min is zero. Signed-off-by:
Dave Dillow <dave@thedillows.org> Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
- Jun 24, 2010
-
-
Takashi Iwai authored
Replaced the forgotten cval->mixer->ctrlif. Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- Jun 23, 2010
-
-
Daniel Mack authored
As the control interface is now carried in struct snd_usb_audio, we can simplify the API a little and also drop the private ctrlif field from struct usb_mixer_interface. Also remove a left-over function prototype in pcm.h. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Also add a list of open topics. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Get rid of the last occurances of _v1 suffixes, and move the version number right after the "uac" string. Now things are consitent again. Sorry for the forth and back, but it just looks much nicer this way. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Oleksij Rempel authored
Some programs like Skype trying to set capture volume automatically. Normally it will tray, carefully step by step lover or higher, set the volume. In real word it work not really well, because devises and vendors lie about real audio settings. For example most Logitech webcams have 6400 or 3500 steps for capture volume. They do not tell that actual resolution is 384. So we have only 7 or 18 real steps. In this patch I set real resolution only for tested devices. Signed-off-by:
Alexey Fisher <bug-track@fisher-privat.net> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- Jun 21, 2010
-
-
Jiri Slaby authored
Stanse found that in snd_usb_parse_audio_endpoints, there is a dangling pointer dereference. When snd_usb_parse_audio_format fails, fp is freed, and continue invoked. On the next loop, there is "fp && fp->altsetting == 1 && fp->channels == 1" test, but fp is set from the last iteration (but is bogus) and thus ilegally dereferenced. Set fp to NULL before "continue". Signed-off-by:
Jiri Slaby <jslaby@suse.cz> Acked-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- Jun 17, 2010
-
-
Andy Shevchenko authored
Signed-off-by:
Andy Shevchenko <ext-andriy.shevchenko@nokia.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Eliot Blennerhassett authored
These give incorrect results for index wrap on 64 bit. Signed-off-by:
Eliot Blennerhassett <eblennerhassett@audioscience.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- Jun 11, 2010
-
-
Daniel Mack authored
For RANGE requests, we should only query as much bytes as we're in fact interested in. For CUR requests, we shouldn't confuse the firmware with an overlong request but just ask for 2 bytes. This might need fixing in the future as it's not entirely clear when to dispatch 1-byte, 2-byte and 4-byte request blocks. For now, we assume everything is coded in 16bit - this works for all firmware implementations I've seen. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Reported-by:
Alex Lee <alexlee188@gmail.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
A device may report its supported sample rates in ranges rather than in discrete triplets. The code used to only parse the MIN field instead of properly paying attention to the MAX and RES values. Also, handle RES values of 1 correctly and announce a continous sample rate range in this case. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Reported-by:
Alex Lee <alexlee188@gmail.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Control messages directed to an interface must have the interface number set in the lower 8 bits of wIndex. This wasn't done correctly for some clock and mixer messages. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Reported-by:
Alex Lee <alexlee188@gmail.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- Jun 08, 2010
-
-
Wan ZongShun authored
The '*bitclk' of structure 'snd_at73c213' seems no use, so I make a patch to remove the unnecessary variable. Signed-off-by:
Wan ZongShun <mcuos.com@gmail.com> Acked-by:
Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Yegor Yefremov authored
Signed-off-by:
Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- Jun 02, 2010
-
-
Jaroslav Kysela authored
This patch fixes thinko introduced in "last minutes" before commiting of the last wallclk patch. It also fixes the condition checking if the first period after last wallclk update is processed. There is a little rounding error in period_wallclk. Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
Jaroslav Kysela authored
This patch fixes thinko introduced in "last minutes" before commiting of the last wallclk patch. It also fixes the condition checking if the first period after last wallclk update is processed. There is a little rounding error in period_wallclk. Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
Takashi Iwai authored
Initialize prev_ctl properly before reference: sound/pci/asihpi/asihpi.c: In function ‘snd_card_asihpi_mixer_new’: sound/pci/asihpi/asihpi.c:2568:30: warning: ‘prev_ctl.dst_node_index’ may be used uninitialized in this function Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Benjamin Herrenschmidt authored
Grant patches added an of mach table to struct device_driver. However, while he changed the macio device code to use that, he left the match table pointer in struct macio_driver and didn't update drivers to use the "new" one, thus breaking the probing. This completes the change by moving all drivers to setup the "new" one, removing all traces of the old one, and while at it (since it changes the exact same locations), I also remove two other duplicates from struct driver which are the name and owner fields. Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
- Jun 01, 2010
-
-
Daniel T Chen authored
BugLink: https://launchpad.net/bugs/587546 Symptom: On the reporter's ASUS M2V, using PulseAudio in Ubuntu 10.04 LTS results in the PA daemon crashing shortly after attempting playback of an audio file. Test case: Using Ubuntu 10.04 LTS (Linux 2.6.32.12), Linux 2.6.33, or Linux 2.6.34, attempt playback of an audio file while PulseAudio is active. Resolution: add SSID for this machine to the position_fix quirk table, explicitly specifying the LPIB method. Reported-and-Tested-By: D Tangman Cc: <stable@kernel.org> Signed-off-by:
Daniel T Chen <crimsun@ubuntu.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- May 31, 2010
-
-
Sascha Hauer authored
Signed-off-by:
Sascha Hauer <s.hauer@pengutronix.de> Acked-by:
Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
Sascha Hauer authored
Signed-off-by:
Sascha Hauer <s.hauer@pengutronix.de> Acked-by:
Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
Daniel Mack authored
The UAC2 clock selectors are fortunately compatible with UAC1 audio selector units, so we can simply reuse the same approach to get all the linked units. Requests to this control need a different CS value though. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Use a struct to parse the audio units, and return usable descriptors for all types. There's no need to limit the result set, except for some kind of sanity check. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
The bits to enable them are always 0 for UAC1 devices, so no additional checks are required. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Move more definitions from private enums to appropriate header files. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Audio devices which comply to the UAC2 standard can export complex clock topologies in its descriptors and set up links between them. The entities that are defined are - clock sources, which define the end-leafs. - clock selectors, which act as switch to select one out of many possible clocks sources. - clock multipliers, which have an input clock source, and act as clock source again. They can be used to derive one clock from another. All sample rate changes, clock validity queries and the like must go to clock source elements, while clock selectors and multipliers can be used as terminal clock source. The following patch adds a parser for these elements and functions to iterate over the tree and find the leaf nodes (clock sources). The samplerate set functions were moved to the new clock.c file. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
So far, UAC2 controls are marked read-only if any of the channels are marked read-only in the descriptors. Change this behaviour and - mark them writeable unless all channels are read-only - store the read-only mask in usb_mixer_elem_info and - check the mask again in set_cur_mix_value(), and bail out for write-protected channels. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel Mack authored
Introduce two new static inline functions for a more readable parsing of UAC2 bmaControls. Signed-off-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel T Chen authored
BugLink: https://launchpad.net/bugs/580749 Symptom: on the original reporter's VIA VT1708-based board, the PulseAudio daemon dies shortly after the user attempts to play an audio file. Test case: boot from Ubuntu 10.04 LTS live cd; attempt to play an audio file. Resolution: add SSID for the original reporter's hardware to the position_fix quirk table, explicitly specifying the LPIB method. Reported-and-Tested-By: Harald Cc: <stable@kernel.org> Signed-off-by:
Daniel T Chen <crimsun@ubuntu.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel T Chen authored
BugLink: https://launchpad.net/bugs/542550 Symptom: On the reporter's iMac, in Ubuntu 10.04 LTS neither playback nor capture appear audible out-of-the-box. Test case: Boot from an Ubuntu 10.04 LTS live cd or from an installed configuration and attempt to play or capture audio. Resolution: Specify the mb31 quirk for this machine in the codec SSID table. Reported-and-Tested-By: f3a97 Cc: <stable@kernel.org> Signed-off-by:
Daniel T Chen <crimsun@ubuntu.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Daniel T Chen authored
BugLink: https://launchpad.net/bugs/465942 Symptom: On the reporter's ASUS device, using PulseAudio in Ubuntu 10.04 LTS results in the PA daemon crashing shortly after attempting to select capture or to configure the audio hardware profile. Test case: Using Ubuntu 10.04 LTS (Linux 2.6.32.12), Linux 2.6.33, or Linux 2.6.34, adjust the HDA device's capture volume with PulseAudio. Resolution: add SSID for this machine to the position_fix quirk table, explicitly specifying the LPIB method. Reported-and-Tested-By: Irihapeti Cc: <stable@kernel.org> Signed-off-by:
Daniel T Chen <crimsun@ubuntu.com> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Ben Collins authored
This defines the 24bps and 40bps (8khz sample rate) G.723 codec formats. They are going to be used once I submit the driver for an mpeg4/g723 compression card. I've updated the signed value to -1 as per Takashi's comments since these are non-linear formats. Signed-off-by:
Ben Collins <bcollins@bluecherry.net> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
- May 29, 2010
-
-
Mark Hills authored
Acked-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Mark Hills <mark@pogo.org.uk> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-
Mark Hills authored
Do not explicity set the default input mode. Use the hardware default of mode 0 ('Control vinyl'), which is now available. This reverts commit e3ca4c99. Acked-by:
Daniel Mack <daniel@caiaq.de> Signed-off-by:
Mark Hills <mark@pogo.org.uk> Signed-off-by:
Takashi Iwai <tiwai@suse.de>
-