Hello,
This is an automated email from the git hooks/update script, it was
generated because a ref change was pushed to the repository.
Updating branch, master,
via 1904ae448061e9edc6dcb26b441ab60c294c5e45 (commit)
via ba02305c749f7f653ace8dfb1bd2c4d997d30361 (commit)
via e2434bb8914d105a048fd03c27d9c907b64d9583 (commit)
via b5fbb8dcb0f5b9b3d17e32dedecc897d3c4d3796 (commit)
via 58e4bb52bf4338e76a4316386d7ee4aa0f5f833a (commit)
via c4c8277f33c17257c72e4d07d41dd8b7d31f77e6 (commit)
via b1e5fd7e111761fd0cd0ce8fa331b073f76db653 (commit)
via a147590cfa449a2bfd01d19e2e6a0211541aa3e4 (commit)
via 8b97735ac6947536a129c1dd0cc209f160ec2ab8 (commit)
via d3ba6a56b8203a7de6f8e1da935f375d3ffa0d9a (commit)
via 3ae179a4654e9ec7a1d0ef5699388c98b3510b01 (commit)
via 8b09bc3acfb65c13b20e50fe880be40ed3dbcbcd (commit)
via 4abd87c858bb67d1ca6c0c504ce1362c6a4a4e80 (commit)
via ace4e47cded41f3b98f18993489b94d635e17cf5 (commit)
via ab668194b7895a67169806de4087cf839c11dfb1 (commit)
via 1274fcf62929f4d080ae6547b7cb8c4ca3ac98b4 (commit)
via fba3d3e2c4155ee7cd846d067c46217adf01c8c0 (commit)
via 048cf0ffe334a7decf496250a01bfb0255d09eca (commit)
via f52bb06dd8f947bbfa12a2f9b870d5d7fb3637ff (commit)
via 503caca97b78a422e702c6afe10c46431c15f549 (commit)
via 8f40359b45bda376d54d675fe3871fd258c8e845 (commit)
via da887e73520df6c746a0e197c57986d1b494199a (commit)
via a75062423b3c65620e4fa5ca15cfcdd0378985e5 (commit)
via 036ce840398bac2feb40f84c4e5bb0d19c9598ad (commit)
via 968409f61268b72c6b3d37739a373a314c5e0340 (commit)
via 74ca9c7ba9fb0e4d9440f69cef0425f885c7b42b (commit)
via 63abdd6fc7a97b5a12a54003ee83cde6d81ffa40 (commit)
via 0f1787f82fde933f8537793768e6c04b5d240178 (commit)
via f4c039642d8b0ad200498a7791fdc35183ff2da3 (commit)
via 104b95f28874d5cfd119f6cef89e32a44befd5a8 (commit)
via f535703cb896fe4c91183bcd2f39a9591ce5a6bc (commit)
via fb432adf3557e6ee050ec8d9806542a0f263af7c (commit)
via 769e57e395aec47a8a908748f36d93d35e76e1bd (commit)
via d93036311850e2e8c574482eba8c268018cb0b98 (commit)
via e2aab70ead6a91421705b7c35b97b4419b5079fa (commit)
via f7465c9212724828127850914a906fe771106fdb (commit)
via 12ec2d89071cea4eef398dc01ed0d3ce4ca36fb4 (commit)
via 7eeec1e0f27eb7f465cb112916c24d8d4b28cc69 (commit)
via 197e1afd1853ad78e6bd44561158916cac46b8a0 (commit)
via 825da6e20eeeca7fdd5f2d140d331069d1f5e72a (commit)
via 71996be8b09d53c253690bffed00e90224c8a33f (commit)
via ad1f572429f60c8533c2f011178e3e0a9e341809 (commit)
via bb46294fc7778e57ee665f404a2d51548ff12b3d (commit)
via 21bac8d049491a9c72184d1b0cc3709c8228f82d (commit)
via dd79c014d6e7f75df819a6d2be355f9f3a1b1e62 (commit)
via e59163335a5fed4dfb80478a466ca3187ccdf7fc (commit)
via 714420ada8adb06b4a69bc08a8f4a4a166c6d4af (commit)
via 9c64e85d2186183bf2c9ccd3892d5a473ed90908 (commit)
via 04f7eb10b056cec80a8cc4596ef95eb4067002ec (commit)
via 29c4d096279422ee427604813a98f5f6ce780874 (commit)
via b19d7136cf40b772d0fb727f4c6e86dc67167057 (commit)
via 16ac407466b33b01b6b795ce3418bb87fe781a43 (commit)
via 900ca43ebdc5ac8e617dbd1a107bf21593b0c1a7 (commit)
via 8c35643385fe4a0a60331b17b2f814fc7c202d4d (commit)
via b1950903bb1d46d803758bfd1f04f582c182200e (commit)
via e4627969b07cbedc62a770efef9e7d10fa25e0d9 (commit)
via 2658bc197bdfa281873a88585d702da1b6f02d18 (commit)
via 68ae49a7829c88422d9ac3b4ea743480161717d8 (commit)
via 7e43125810a9ee2b3f4caa7e8aaaed86bf72a74e (commit)
via f080e02683cfd20c4e43e3450bfd0a9e1dc1e19a (commit)
via 17171072e1d057c61559056d2467cf89a58c1418 (commit)
via f17e98be77af44784466bcc2d00172e82b915569 (commit)
via c9f7df041f9a2b3a5816a9486cb414c3098c0d39 (commit)
via 44f8e0017b9c2aa6e63c0ea8664eae001f26a6ca (commit)
via eae735df41d5207730bbcb92118ca6ebc69582dc (commit)
via 37eae9db275685d77ebab4e07abbd1c1dea83e8c (commit)
via 170eadd1e5a33cd9f9581ac4202ae2ae52586abd (commit)
via b967733221bf6e1364babb647c012720ac84b7f3 (commit)
via 194baaa87edfdd9f5a1c4d5eef107dc5866dd232 (commit)
via 99e73728b679fedb31b00cb3bd5d44949ffdb23f (commit)
via e3ab1a4de585d0d7239c8e3cfadf0f67aafbb6f4 (commit)
via ac153992fe69ddec0d78aea4ca62cc567b502c71 (commit)
via decfa9a6de010aa639f50ef5d6c70c80b8de64ce (commit)
via c7d0dcb003bf1efae4fa9a1282df0c2d39161514 (commit)
via bf0a4743f7e025ab570f7b51d60ddbc22e108bec (commit)
via 6b224353627109ab9f31ef9ba82cbb6c522472c2 (commit)
via a088aacb051d5a584099bfa498a19e8e7a4d7229 (commit)
via df77ee95c1a8782e1b0e78c917e390ff20e6d150 (commit)
via 03f93d592e1ce0ee33c407b25d5029bbe0e18058 (commit)
via 76f2a6fa40dc8a5f38f8b6bd691dfc9b3d3b7f02 (commit)
via 6a786cd743e3d1fd093759eb8ed3fbbad5bcbce8 (commit)
via 934ba03567168d8bc7f469758544281a0362ac2e (commit)
via ff9aecb5b9127f95225cacd7c1b7fb92b797d27d (commit)
via aa4b8d86a7ee6f24ff30ddf4b422c314d810be11 (commit)
via 51d95579f4d86f7cc65ca4a29f2de75135949196 (commit)
via 767ab9aa714e970dcaadf158d730b48c88b8f1d6 (commit)
via 1487283b0822d6c207e09264a6d5a0c8bf592621 (commit)
via 19d34f23b097fbcf5395629f650e34c66536387d (commit)
via 7e521409c89cd24a7df041ebfa3a316e2de10830 (commit)
via dcba034be0641bd92c882dbd6a7c2a7e137baadc (commit)
via ad72dc672f6aa4002662ff4fa2fbe5de4d67a610 (commit)
via 4a7c91e23a87eaa9a68de5ab540a2e2bbf6eef79 (commit)
via 02720b549d74b24d28529efc1b434df33a5fffdc (commit)
via 0b2e98cb031635966f8f55ff58b8b0cc6fa3f3d8 (commit)
via 85fa73ac89efa68eb8c14604065e644da0d7316f (commit)
via aac8581e0b3be1065b314beae10ede4f3a815aaa (commit)
via 29504a5d5c2aa96e1adeebc6ff107547e89e1b6a (commit)
via 4baa02e503a82e42e8926b7a379e6a205ed5a134 (commit)
via 01fcaaa23b8e19219931333ce2993fd753424fb2 (commit)
via 97e7a45038053ceb37d4787ddef6a9873ca4d4a0 (commit)
via 47eebee752d7fb493b9f4000a282bef94c61e67d (commit)
via 47434f0b7f03c07c12f0fa915e0b52b4c6803113 (commit)
via c7b12c89fbfa5a13ca004baf91a1cd17ed56cb48 (commit)
via 3f5f1581d40bb9ae1ec0c859ed7624b1906e06dc (commit)
via ff4f18dd3d4a71072322707d8ed57db2831e0176 (commit)
via 4c84801540084d4e8b9fa3de9ce9f3670910b63a (commit)
from d03aee24a6627de642c4839a0014b22ea106ddd3 (commit)
- Log -----------------------------------------------------------------
commit 1904ae448061e9edc6dcb26b441ab60c294c5e45
Author: Richard Zhao
AuthorDate: Tue Nov 15 14:48:02 2011 +0800
Commit: Jaroslav Kysela
CommitDate: Fri Apr 27 12:46:52 2012 +0200
ARM: mxc: audmux-v2: add clk_prepare/clk_unprepare
It's for migrating to generic clk framework API.
Signed-off-by: Richard Zhao
Signed-off-by: Sascha Hauer
Signed-off-by: Jaroslav Kysela
commit ba02305c749f7f653ace8dfb1bd2c4d997d30361
Author: Viresh Kumar
AuthorDate: Wed Feb 1 16:12:19 2012 +0530
Commit: Jaroslav Kysela
CommitDate: Fri Apr 27 12:46:52 2012 +0200
dmaengine: Pass dma_slave_config .device_fc = NULL for all existing users
.device_fc is added in struct dma_slave_config recently. All user drivers, which
want DMA to be the flow controller must pass this field as false. As earlier
driver don't look to use this feature, mark it false for now.
Signed-off-by: Viresh Kumar
Acked-by: Linus Walleij
Signed-off-by: Vinod Koul
Signed-off-by: Jaroslav Kysela
commit e2434bb8914d105a048fd03c27d9c907b64d9583
Author: Fabio Estevam
AuthorDate: Thu Apr 5 10:57:51 2012 -0300
Commit: Jaroslav Kysela
CommitDate: Fri Apr 27 12:46:52 2012 +0200
ASoC: imx-audmux: Check for NULL pointer
Check for NULL pointer before accessing it.
Signed-off-by: Fabio Estevam
Signed-off-by: Mark Brown
Signed-off-by: Jaroslav Kysela
commit b5fbb8dcb0f5b9b3d17e32dedecc897d3c4d3796
Author: Huang Shijie
AuthorDate: Thu Feb 16 14:17:32 2012 +0800
Commit: Jaroslav Kysela
CommitDate: Fri Apr 27 12:46:35 2012 +0200
mxs-dma : move the mxs dma.h to a more common place
Move the header to a more common place.
The mxs dma engine is not only used in mx23/mx28, but also used
in mx50/mx6q. It will also be used in the future chips.
Rename it to mxs-dma.h, and create a new folder include/linux/fsl/ to
store the Freescale's header files.
change mxs-dma driver, mxs-mmc driver, gpmi-nand driver, mxs-saif driver
to the new header file.
Acked-by: Shawn Guo
Acked-by: Mark Brown
Signed-off-by: Huang Shijie
Acked-by: Vinod Koul
Acked-by: Chris Ball
Signed-off-by: David Woodhouse
Signed-off-by: Jaroslav Kysela
commit 58e4bb52bf4338e76a4316386d7ee4aa0f5f833a
Author: Alexandre Bounine
AuthorDate: Thu Mar 8 16:11:18 2012 -0500
Commit: Jaroslav Kysela
CommitDate: Fri Apr 27 11:11:52 2012 +0200
dmaengine/dma_slave: introduce inline wrappers
Add inline wrappers for device_prep_slave_sg() and device_prep_dma_cyclic()
interfaces to hide new parameter from current users of affected interfaces.
Convert current users to use new wrappers instead of direct calls.
Suggested by Russell King [https://lkml.org/lkml/2012/2/3/269].
Signed-off-by: Alexandre Bounine
Signed-off-by: Vinod Koul
Signed-off-by: Jaroslav Kysela
commit c4c8277f33c17257c72e4d07d41dd8b7d31f77e6
Author: Takashi Iwai
AuthorDate: Thu Apr 19 15:18:08 2012 +0200
Commit: Jaroslav Kysela
CommitDate: Fri Apr 27 11:06:49 2012 +0200
ALSA: hda/conexant - Set up the missing docking-station pins
ThinkPad 410,420,510,520 and X201 with cx50585 & co chips have the
docking-station ports, but BIOS doesn't initialize for these pins.
Thus, like the former X200, we need to set up the pins manually in the
driver.
The odd part is that the same PCI SSID is used for X200 and T400, thus
we need to prepare individual fixup tables for cx5051 and others.
Bugzilla entries:
https://bugzilla.redhat.com/show_bug.cgi?id=808559
https://bugzilla.redhat.com/show_bug.cgi?id=806217
https://bugzilla.redhat.com/show_bug.cgi?id=810697
Reported-by: Josh Boyer
Reported-by: Jens Taprogge
Tested-by: Jens Taprogge
Cc:
Signed-off-by: Takashi Iwai
Signed-off-by: Jaroslav Kysela
commit b1e5fd7e111761fd0cd0ce8fa331b073f76db653
Author: Mark Brown
AuthorDate: Thu Apr 12 19:47:11 2012 +0100
Commit: Mark Brown
CommitDate: Mon Apr 23 12:55:52 2012 +0100
ASoC: wm8994: Improve sequencing of AIF channel enables
This ensures a clean startup of the channels, without this change some
use cases could result in issues in a small proportion of cases.
Signed-off-by: Mark Brown
Cc: stable@...
commit a147590cfa449a2bfd01d19e2e6a0211541aa3e4
Author: David Henningsson
AuthorDate: Fri Apr 20 10:01:46 2012 +0200
Commit: Takashi Iwai
CommitDate: Fri Apr 20 10:08:08 2012 +0200
ALSA: HDA: Add external mic quirk for Asus Zenbook UX31E
According to the reporter, external mic starts to work if the
laptop-dmic model is used. According to BIOS pin config, all
pins are consistent with the alc269vb_laptop_dmic fixup, except
for the external mic, which is not present.
Cc: stable@...
BugLink: https://bugs.launchpad.net/bugs/950490
Signed-off-by: David Henningsson
Signed-off-by: Takashi Iwai
commit 8b97735ac6947536a129c1dd0cc209f160ec2ab8
Author: Takashi Iwai
AuthorDate: Thu Apr 19 15:15:25 2012 +0200
Commit: Takashi Iwai
CommitDate: Thu Apr 19 15:15:25 2012 +0200
ALSA: hda/conexant - Don't set HP pin-control bit unconditionally
Some output pins on Conexant chips have no HP control bit, but the
auto-parser initializes these pins unconditionally with PIN_HP.
Check the pin-capability and avoid the HP bit if not supported.
Cc:
Signed-off-by: Takashi Iwai
commit d3ba6a56b8203a7de6f8e1da935f375d3ffa0d9a
Author: Kuninori Morimoto
AuthorDate: Thu Apr 19 00:00:27 2012 -0700
Commit: Takashi Iwai
CommitDate: Thu Apr 19 13:51:54 2012 +0200
ALSA: workaround: change the timing of alsa_sound_last_init()
Current alsa_sound_last_init() was called as __initcall().
So, on current ALSA, only devices that had been properly
registered at this point were shown.
So, it will show "No soundcards found" if driver requests
probe deferment. it's often misleading.
This patch delays the timing of alsa_sound_last_init()
as workaround.
Signed-off-by: Kuninori Morimoto
Reviwed-by: Mark Brown
Signed-off-by: Takashi Iwai
commit 3ae179a4654e9ec7a1d0ef5699388c98b3510b01
Author: Takashi Iwai
AuthorDate: Thu Apr 19 12:04:03 2012 +0200
Commit: Takashi Iwai
CommitDate: Thu Apr 19 12:04:03 2012 +0200
ALSA: hda/sigmatel - Fix inverted mute LED
While refactoring the mute-LED handling for HP laptops, I messed up
the polarity check in a wrong way. The red (or the mute-LED if any)
should appear in the muted state, corresponding to GPIO on.
Reported-by: Mikko Vinni
Signed-off-by: Takashi Iwai
commit 8b09bc3acfb65c13b20e50fe880be40ed3dbcbcd
Author: Takashi Iwai
AuthorDate: Thu Apr 19 07:33:27 2012 +0200
Commit: Takashi Iwai
CommitDate: Thu Apr 19 07:33:27 2012 +0200
ALSA: hda/realtek - Fix regression on Quanta/Gericom KN1
Through the transition to the auto-parser, the support for
Quanta/Gericom KN1 got broken. There are two problems behind it:
- This machine doesn't like the default COEF setup for ALC260 we take
now as default
- BIOS doesn't set the pins correctly at all; especially the machine
uses only the pin 0x0f for both headphone and speaker
This patch adds the fixup as a workaround for these issues.
Reported-and-tested-by: Uros Vampl
Signed-off-by: Takashi Iwai
commit 4abd87c858bb67d1ca6c0c504ce1362c6a4a4e80
Author: Paul Mundt
AuthorDate: Tue Apr 17 19:13:04 2012 -0700
Commit: Mark Brown
CommitDate: Wed Apr 18 09:16:13 2012 +0100
ASoC: fsi: update for dmaengine prep_slave_sg fallout.
Leading up to the ->device_prep_slave_sg change in
185ecb5f4fd43911c35956d4cc7d94a1da30417f 'dmaengine: add context
parameter to prep_slave_sg and prep_dma_cyclic' a generic wrapper was
added in place to guard against the API change, though the fsi driver
wasn't updated in the process (presumably its dmaengine support hadn't
been merged yet at the time). This trivially switches over to the new
wrapper and gets it building again.
Signed-off-by: Paul Mundt
Acked-by: Kuninori Morimoto
Signed-off-by: Mark Brown
commit ace4e47cded41f3b98f18993489b94d635e17cf5
Author: Randy Dunlap
AuthorDate: Tue Apr 17 17:03:42 2012 -0700
Commit: Takashi Iwai
CommitDate: Wed Apr 18 07:56:15 2012 +0200
ALSA: fix core/vmaster.c kernel-doc warning
Fix kernel-doc warning in sound/core/vmaster.c:
Warning(sound/core/vmaster.c:429): No description found for parameter 'private_data'
Signed-off-by: Randy Dunlap
Signed-off-by: Takashi Iwai
commit ab668194b7895a67169806de4087cf839c11dfb1
Author: Liam Girdwood
AuthorDate: Tue Apr 17 18:00:11 2012 +0100
Commit: Mark Brown
CommitDate: Tue Apr 17 20:52:19 2012 +0100
ASoC: core: Fix card RTD count for deferred probe.
Currently we increment the number of RTD's per card during the DAI link
bind. This can cause an incorrect RTD count when we cannot find a component
and defer the probe (and hence perform the DAI link bind for the card again).
Fix the count so that it is cleared before every card registration
and bind attempt.
Signed-off-by: Liam Girdwood
Signed-off-by: Mark Brown
commit 1274fcf62929f4d080ae6547b7cb8c4ca3ac98b4
Author: Peter Ujfalusi
AuthorDate: Tue Apr 3 11:56:51 2012 +0300
Commit: Samuel Ortiz
CommitDate: Mon Apr 16 16:45:34 2012 +0200
mfd: Convert twl6040 to i2c driver, and separate it from twl core
Complete the separation of the twl6040 from the twl core since
it is a separate chip, not part of the twl6030 PMIC.
Make the needed Kconfig changes for the depending drivers at the
same time to avoid breaking the kernel build (vibra, ASoC components).
Signed-off-by: Peter Ujfalusi
Reviewed-by: Mark Brown
Acked-by: Tony Lindgren
Acked-by: Dmitry Torokhov
Signed-off-by: Samuel Ortiz
commit fba3d3e2c4155ee7cd846d067c46217adf01c8c0
Author: Jesper Juhl
AuthorDate: Thu Apr 12 21:54:34 2012 +0200
Commit: Mark Brown
CommitDate: Fri Apr 13 10:01:38 2012 +0100
ASoC: cs42l73: don't use negative array index
If cs42l73_get_mclkx_coeff() returns < 0 (which it can) in
sound/soc/codecs/cs42l73.c::cs42l73_set_mclk(), then we'll be using
the (negative) return value as array index on the very next line of
code - that's bad.
Catch the negative return value and propagate it to the caller (which
checks for it) and things are a bit more sane :-)
Signed-off-by: Jesper Juhl
Signed-off-by: Mark Brown
commit 048cf0ffe334a7decf496250a01bfb0255d09eca
Author: Jesper Juhl
AuthorDate: Thu Apr 12 22:11:25 2012 +0200
Commit: Takashi Iwai
CommitDate: Fri Apr 13 07:35:57 2012 +0200
ALSA: hda/realtek - Fix mem leak (and rid us of trailing whitespace).
In sound/pci/hda/patch_realtek.c::alc_auto_fill_dac_nids(), in the
'for (;;)' loop, if the 'badness' value returned from
fill_and_eval_dacs() is negative, then we'll return from the function
without freeing the memory we allocated for 'best_cfg', thus leaking.
Fix the leak by kfree()'ing the memory when badness is negative.
While I was there I also noticed some trailing whitespace in the
function that I removed (along with all other trailing whitespace in
the file) - it didn't seem worth-while to do that as two patches, so I
hope it's OK that I just did it all as one patch.
Signed-off-by: Jesper Juhl
Signed-off-by: Takashi Iwai
commit f52bb06dd8f947bbfa12a2f9b870d5d7fb3637ff
Author: Mark Brown
AuthorDate: Thu Apr 12 17:29:36 2012 +0100
Commit: Mark Brown
CommitDate: Thu Apr 12 19:36:52 2012 +0100
ASoC: dapm: Ensure power gets managed for line widgets
Line widgets had not been included in either the power up or power down
sequences so if a widget had an event associated with it that event would
never be run. Fix this minimally by adding them to the sequences, we
should probably be doing away with the specific widget types as they all
have the same priority anyway.
Signed-off-by: Mark Brown
Cc: stable@...
commit 503caca97b78a422e702c6afe10c46431c15f549
Author: Josh Boyer
AuthorDate: Thu Apr 12 13:55:36 2012 -0400
Commit: Takashi Iwai
CommitDate: Thu Apr 12 20:00:48 2012 +0200
ALSA: hda/realtek - Add quirk for Mac Pro 5,1 machines
A user reported that setting model=imac24 used to allow sound to work on their
Mac Pro 5,1 machine. Commit 5671087ffa "Move ALC885 macpro and imac24 models
to auto-parser" removed this model option. All Mac machines are now explicitly
handled with a quirk and the auto-parser. This adds a quirk for the device
found on the Mac Pro 5,1 machines.
This (partially) fixes https://bugzilla.redhat.com/show_bug.cgi?id=808559
[sorted the new entry in the ID number order by tiwai]
Reported-by: Gabriel Somlo
Signed-off-by: Josh Boyer
Signed-off-by: Takashi Iwai
commit 8f40359b45bda376d54d675fe3871fd258c8e845
Author: Takashi Iwai
AuthorDate: Thu Apr 12 08:00:19 2012 +0200
Commit: Takashi Iwai
CommitDate: Thu Apr 12 19:57:18 2012 +0200
ALSA: hda/realtek - Add a fixup entry for Acer Aspire 8940G
It's compatible with 8930G.
Using the same fixup gives the proper 5.1 sound back.
Reported-and-tested-by: Dany Martineau
Cc: [v3.3+]
Signed-off-by: Takashi Iwai
commit da887e73520df6c746a0e197c57986d1b494199a
Author: Takashi Iwai
AuthorDate: Wed Apr 11 17:18:12 2012 +0200
Commit: Takashi Iwai
CommitDate: Thu Apr 12 07:58:19 2012 +0200
ALSA: hda/realtek - Fix GPIO1 setup for Acer Aspire 4930 & co
Add GPIO1 setup explicitly for Acer Aspire 493x & co.
This could be set by alc_auto_init_amp(), but it's safer to set it
more explicitly in the fixup table.
Signed-off-by: Takashi Iwai
commit a75062423b3c65620e4fa5ca15cfcdd0378985e5
Author: Takashi Iwai
AuthorDate: Wed Apr 11 14:03:41 2012 +0200
Commit: Takashi Iwai
CommitDate: Wed Apr 11 14:10:57 2012 +0200
ALSA: hda/realtek - Add a few ALC882 model strings back
Since there are still many Acer models that might not be covered by
the current fixup table, let's add back a few typical model names so
that user can test the fixup without recompiling.
Signed-off-by: Takashi Iwai
commit 036ce840398bac2feb40f84c4e5bb0d19c9598ad
Author: Fengguang Wu
AuthorDate: Tue Apr 10 17:00:35 2012 +0800
Commit: Takashi Iwai
CommitDate: Tue Apr 10 14:53:55 2012 +0200
ALSA: hda - hide HDMI/ELD printks unless snd.debug=2
Also remove two warnings when CONFIG_SND_DEBUG is not set:
sound/pci/hda/patch_hdmi.c: In function âhdmi_intrinsic_eventâ:
sound/pci/hda/patch_hdmi.c:761:6: warning: unused variable âeldvâ [-Wunused-variable]
sound/pci/hda/patch_hdmi.c:760:6: warning: unused variable âpdâ [-Wunused-variable]
Signed-off-by: Wu Fengguang
Signed-off-by: Takashi Iwai
commit 968409f61268b72c6b3d37739a373a314c5e0340
Author: Julia Lawall
AuthorDate: Mon Apr 9 10:16:35 2012 +0200
Commit: Takashi Iwai
CommitDate: Tue Apr 10 08:42:07 2012 +0200
ALSA: sound/isa/sscape.c: add missing resource-release code
At the point of this error-handling code, both regions and the dma have
been allocated, so free it as done in previous and subsequent
error-handling code.
Signed-off-by: Julia Lawall
Signed-off-by: Takashi Iwai
commit 74ca9c7ba9fb0e4d9440f69cef0425f885c7b42b
Author: Hans Verkuil
AuthorDate: Sun Apr 1 15:24:48 2012 -0300
Commit: Mauro Carvalho Chehab
CommitDate: Mon Apr 9 10:12:54 2012 -0300
[media] Drivers/media/radio: Fix build error
On Sunday, April 01, 2012 21:09:34 Tracey Dent wrote:
> radio-maxiradio depends on SND_FM801_TEA575X_BOOL to build or will
> result in an build error such as:
>
> Kernel: arch/x86/boot/bzImage is ready (#1)
> ERROR: "snd_tea575x_init" [drivers/media/radio/radio-maxiradio.ko] undefined!
> ERROR: "snd_tea575x_exit" [drivers/media/radio/radio-maxiradio.ko] undefined!
> WARNING: modpost: Found 6 section mismatch(es).
> To see full details build your kernel with:
> 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
> make[1]: *** [__modpost] Error 1
> make: *** [modules] Error 2
>
> Select CONFIG_SND_TEA575X to fixes problem and enable
> the driver to be built as desired.
>
> v2:
> instead of selecting CONFIG_SND_FM801_TEA575X_BOOL, select
> CONFIG_SND_TEA575X, which in turns selects CONFIG_SND_FM801_TEA575X_BOOL
> and any other dependencies for it to build.
No, this is the correct patch:
RADIO_MAXIRADIO should be treated just like RADIO_SF16FMR2, I just didn't
realize at the time that it had to be added as a SND_TEA575X dependency.
Signed-off-by: Hans Verkuil
Tested-by: Shea Levy
Acked-by: Mauro Carvalho Chehab
Signed-off-by: Mauro Carvalho Chehab
commit 63abdd6fc7a97b5a12a54003ee83cde6d81ffa40
Author: Michael Karcher
AuthorDate: Fri Apr 6 15:34:20 2012 +0200
Commit: Takashi Iwai
CommitDate: Sat Apr 7 12:25:56 2012 +0200
ALSA: hda - clean up CX20549 test mixer setup
name pins consistently (MIC1/LINE1/HP-OUT/CD) on all controls
affecting those pins.
remove duplicate SET_AMP_GAIN_MUTE to 0x17/index 0 and 0x17/index 1
really select MIC1, not Mixer out for recording
"Mixer out" for recording is not a "pin", adjust comment
Signed-off-by: Michael Karcher
Signed-off-by: Takashi Iwai
commit 0f1787f82fde933f8537793768e6c04b5d240178
Author: Michael Karcher
AuthorDate: Fri Apr 6 15:34:19 2012 +0200
Commit: Takashi Iwai
CommitDate: Sat Apr 7 12:25:47 2012 +0200
ALSA: hda - CX20549 doesn't need pin_amp_workaround.
CX20549 (ctx5045) doesn't accept data on index 1 for output pins,
as shown in the following hda-var transaction:
$ hda-verb /dev/snd/hwC0D0 0x10 set_amp_gain 0xb126
nid = 0x10, verb = 0x300, param = 0xb126
value = 0x0
$ hda-verb /dev/snd/hwC0D0 0x10 get_amp_gain 0x8001
nid = 0x10, verb = 0xb00, param = 0x8001
value = 0x0
Signed-off-by: Michael Karcher
Signed-off-by: Takashi Iwai
commit f4c039642d8b0ad200498a7791fdc35183ff2da3
Author: Michael Karcher
AuthorDate: Fri Apr 6 15:34:18 2012 +0200
Commit: Takashi Iwai
CommitDate: Sat Apr 7 12:25:40 2012 +0200
ALSA: hda - Remove CD control from model=benq for CX20549
The ID used for detection of the BenQ R55E actually identifies the
Quanta TW3 ODM design, which is also used for the Gigabyte W551 laptop
series. Schematics on the internet clearly indicate that the "Port C"
(analog input connected to record source #4 and mixer input #4) is
unconnected.
Playing an audio CD through analog playback (using cdplay from cdtools)
produces no sound, even with the mixer input labelled "CD" enabled, and
the volume control in the CD drive set to maximum. This indicates the
connection is really not present.
Signed-off-by: Michael Karcher
Signed-off-by: Takashi Iwai
commit 104b95f28874d5cfd119f6cef89e32a44befd5a8
Author: Michael Karcher
AuthorDate: Fri Apr 6 15:34:17 2012 +0200
Commit: Takashi Iwai
CommitDate: Sat Apr 7 12:25:34 2012 +0200
ALSA: hda - fix record volume controls of CX20459 ("Venice")
The "input converter" widget of the CX20459 has only one input amplifier,
expose that one as "Capture Volume/Capture Switch". The actual record
source selection is already exposed through the separately installed
input mux.
Signed-off-by: Michael Karcher
Signed-off-by: Takashi Iwai
commit f535703cb896fe4c91183bcd2f39a9591ce5a6bc
Author: Michael Karcher
AuthorDate: Fri Apr 6 15:34:16 2012 +0200
Commit: Takashi Iwai
CommitDate: Sat Apr 7 12:25:25 2012 +0200
ALSA: hda - Rename capture sources of CX20549 to match common conventions
This includes renaming "Line In" to line, also in the mixer settings.
Signed-off-by: Michael Karcher
Signed-off-by: Takashi Iwai
commit fb432adf3557e6ee050ec8d9806542a0f263af7c
Author: Michael Karcher
AuthorDate: Fri Apr 6 15:34:15 2012 +0200
Commit: Takashi Iwai
CommitDate: Sat Apr 7 12:25:02 2012 +0200
ALSA: hda - Fix proc output for ADC amp values of CX20549
The CX20549 has only one single input amp on it's input converter
widget. Fix printing of values in the codec file in /proc/asound.
Signed-off-by: Michael Karcher
Signed-off-by: Takashi Iwai
commit 769e57e395aec47a8a908748f36d93d35e76e1bd
Author: Stephen Warren
AuthorDate: Thu Apr 5 23:11:16 2012 -0600
Commit: Mark Brown
CommitDate: Fri Apr 6 12:28:49 2012 +0100
ASoC: tegra: fix i2s compilation when !CONFIG_DEBUG_FS
Commit d4a2eca "ASoC: Tegra I2S: Remove dependency on pdev->id" changed
the prototype of tegra_i2s_debug_add, but didn't update the dummy inline
used when !CONFIG_DEBUG_FS. Fix that.
Signed-off-by: Stephen Warren
Signed-off-by: Mark Brown
Cc: # 3.3
commit d93036311850e2e8c574482eba8c268018cb0b98
Author: Stephen Boyd
AuthorDate: Thu Apr 5 14:25:11 2012 -0700
Commit: Linus Torvalds
CommitDate: Thu Apr 5 15:25:50 2012 -0700
simple_open: automatically convert to simple_open()
Many users of debugfs copy the implementation of default_open() when
they want to support a custom read/write function op. This leads to a
proliferation of the default_open() implementation across the entire
tree.
Now that the common implementation has been consolidated into libfs we
can replace all the users of this function with simple_open().
This replacement was done with the following semantic patch:
@ open @
identifier open_f != simple_open;
identifier i, f;
@@
-int open_f(struct inode *i, struct file *f)
-{
(
-if (i->i_private)
-f->private_data = i->i_private;
|
-f->private_data = i->i_private;
)
-return 0;
-}
@ has_open depends on open @
identifier fops;
identifier open.open_f;
@@
struct file_operations fops = {
...
-.open = open_f,
+.open = simple_open,
...
};
[akpm@...: checkpatch fixes]
Signed-off-by: Stephen Boyd
Cc: Greg Kroah-Hartman
Cc: Al Viro
Cc: Julia Lawall
Acked-by: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
commit e2aab70ead6a91421705b7c35b97b4419b5079fa
Author: Stephen Warren
AuthorDate: Thu Apr 5 12:28:01 2012 -0600
Commit: Mark Brown
CommitDate: Thu Apr 5 21:55:49 2012 +0100
ASoC: set idle_bias_off=1 for all platform DAPM contexts
The ASoC core currently defaults to using STANDBY rather than OFF for
idle ASoC platform devices, which causes a permanent pm_runtime_get() on
them. This keeps the device active unnecessarily. This can be especially
problematic when the ASoC platform device and DAI device are the same
device.
The distinction between OFF and STANDBY is likely not relevant for ASoC
platform drivers, since they aren't analog devices. So, solve this issue
by hard-coding idle_bias_off = 1 for all ASoC platform devices. If this
turns out to be a problem, this value could be sourced from the
snd_soc_platform_driver, similarly to soc_probe_codec().
Note: Prior to this change, this caused a large (10) runtime_active count
for the Tegra I2S controller even when not in use, and a leak in that
value as streams were started and stopped. This change probably hides a
bug.
Signed-off-by: Stephen Warren
Signed-off-by: Mark Brown
commit f7465c9212724828127850914a906fe771106fdb
Author: Fabio Estevam
AuthorDate: Thu Apr 5 09:45:51 2012 -0300
Commit: Mark Brown
CommitDate: Thu Apr 5 15:23:17 2012 +0100
ASoC: imx-audmux: Fix ssi port numbers in sysfs
Doing a 'cat /sys/kernel/debug/audmux/ssi7' causes the following oops to be printed by the kernel:
Uhandled fault: external abort on non-linefetch (0x008) at 0xf53b003c
Internal error: : 8 [#1] PREEMPT
Modules linked in:
CPU: 0 Not tainted (3.3.0-00033-gecc726e-dirty #307)
PC is at audmux_read_file+0x68/0x2f4
LR is at clk_enable+0x3c/0x48
pc : [] lr : [] psr: a0000013
sp : c3ad3f38 ip : c30a4000 fp : 00000003
r10: 00001000 r9 : be83fb00 r8 : c3ad3f80
r7 : c3ad3f80 r6 : 00000007 r5 : 00031010 r4 : c30a5000
r3 : f53b0000 r2 : 0000003c r1 : 380fa100 r0 : c068dda0
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 0005317f Table: 83034000 DAC: 00000015
Process cat (pid: 1042, stack limit = 0xc3ad2270)
Stack: (0xc3ad3f38 to 0xc3ad4000)
3f20: c3139180 00000000
3f40: c3bc6500 00001000 be83fb00 c3ad3f80 00001000 c3ad2000 00000000 c0095f3c
3f60: 00000003 c3bc6508 c3bc6500 be83fb00 00000000 00000000 00001000 c0096010
3f80: 00000000 00000000 b6fe2050 00000000 00001000 be83fb00 00000003 00000003
3fa0: c000eb88 c000e9e0 00001000 be83fb00 00000003 be83fb00 00001000 00000000
3fc0: 00001000 be83fb00 00000003 00000003 00000001 00000001 00000000 00000003
3fe0: 000bec8c be83fae0 0000f808 b6ea8d5c 60000010 00000003 7dff7ede 749bedf1
[] (audmux_read_file+0x68/0x2f4) from [] (vfs_read+0xb0/0x144)
[] (vfs_read+0xb0/0x144) from [] (sys_read+0x40/0x70)
[] (sys_read+0x40/0x70) from [] (ret_fast_syscall+0x0/0x2c)
Code: e1a02186 e2822004 e3500000 e7935186 (e7937002)
---[ end trace 4d046e31309023de ]---
Fix the ssi port numbers in sysfs to fix this problem.
Reported-by: Joan Carles
Signed-off-by: Fabio Estevam
Signed-off-by: Mark Brown
commit 12ec2d89071cea4eef398dc01ed0d3ce4ca36fb4
Author: Kuninori Morimoto
AuthorDate: Wed Apr 4 23:28:01 2012 -0700
Commit: Mark Brown
CommitDate: Thu Apr 5 11:08:45 2012 +0100
ASoC: ak4642: fixup: mute needs +1 step
ak4642 out_tlv is +12.0dB to -115.0 dB, and it supports mute.
But current settings didn't care +1 step for mute.
This patch adds it
Signed-off-by: Kuninori Morimoto
Signed-off-by: Mark Brown
Cc: stable@...
commit 7eeec1e0f27eb7f465cb112916c24d8d4b28cc69
Author: Martin Jansa
AuthorDate: Mon Apr 2 10:24:08 2012 +0200
Commit: Mark Brown
CommitDate: Mon Apr 2 23:02:20 2012 +0100
ASoC: pxa: pxa2xx-i2s: add io.h for IOMEM macro
* fixes
sound/soc/pxa/pxa2xx-i2s.c:86:2: error: implicit declaration of function 'IOMEM' [-Werror=implicit-function-declaration]
sound/soc/pxa/pxa2xx-i2s.c:86:2: error: initializer element is not constant
after 23019a733bb83c8499f192fb428b7e6e81c95a34 removed IOMEM
definition from arch/arm/mach-pxa/include/mach/hardware.h
Signed-off-by: Martin Jansa
Signed-off-by: Mark Brown
commit 197e1afd1853ad78e6bd44561158916cac46b8a0
Author: Stephen Warren
AuthorDate: Fri Mar 30 17:07:17 2012 -0600
Commit: Mark Brown
CommitDate: Mon Apr 2 23:02:11 2012 +0100
ASoC: tegra: ensure clocks are enabled when touching registers
Debugfs files could be accessed any time, so explicitly enable clocks
when reading registers to generate debugfs file content.
Signed-off-by: Stephen Warren
Signed-off-by: Mark Brown
commit 825da6e20eeeca7fdd5f2d140d331069d1f5e72a
Author: Zeng Zhaoming
AuthorDate: Fri Mar 30 00:13:02 2012 +0800
Commit: Mark Brown
CommitDate: Mon Apr 2 23:02:11 2012 +0100
ASoC: sgtl5000: Enable VAG when DAC/ADC up
As manual described, VAG is an internal voltage reference of DAC/ADC,
So enabled it before DAC/ADC up.
One more thing should care about is VAG fully ramped down requires 400ms,
wait it to avoid pop.
Signed-off-by: Zeng Zhaoming
Signed-off-by: Shawn Guo
Signed-off-by: Mark Brown
commit 71996be8b09d53c253690bffed00e90224c8a33f
Author: Lucas De Marchi
AuthorDate: Fri Mar 30 13:37:16 2012 -0700
Commit: Linus Torvalds
CommitDate: Fri Mar 30 16:03:15 2012 -0700
Documentation: remove references to /etc/modprobe.conf
Usage of /etc/modprobe.conf file was deprecated by module-init-tools and
is no longer parsed by new kmod tool. References to this file are
replaced in Documentation, comments and Kconfig according to the
context.
There are also some references to the old /etc/modules.conf from 2.4
kernels that are being removed.
Signed-off-by: Lucas De Marchi
Acked-by: Takashi Iwai
Acked-by: Mauro Carvalho Chehab
Signed-off-by: Randy Dunlap
Signed-off-by: Linus Torvalds
commit ad1f572429f60c8533c2f011178e3e0a9e341809
Author: Eliot Blennerhassett
AuthorDate: Fri Mar 30 09:52:25 2012 +1300
Commit: Takashi Iwai
CommitDate: Fri Mar 30 16:24:48 2012 +0200
ALSA: asihpi - fix return value of hpios_locked_mem_alloc()
Make this function consistent with others in this module by
returning 1 for error, instead of -ENOMEM
(reverts function signature change from a938fb1e)
Signed-off-by: Eliot Blennerhassett
Signed-off-by: Takashi Iwai
commit bb46294fc7778e57ee665f404a2d51548ff12b3d
Author: Randy Dunlap
AuthorDate: Wed Mar 28 18:26:17 2012 -0700
Commit: Takashi Iwai
CommitDate: Thu Mar 29 17:57:08 2012 +0200
ALSA: fix isa/opti9xx module param type
Fix module parameter data type to eliminate build warnings.
sound/isa/opti9xx/opti92x-ad1848.c:87:1: warning: return from incompatible pointer type
sound/isa/opti9xx/opti92x-ad1848.c:87:1: warning: return from incompatible pointer type
Signed-off-by: Randy Dunlap
Signed-off-by: Takashi Iwai
commit 21bac8d049491a9c72184d1b0cc3709c8228f82d
Author: Timur Tabi
AuthorDate: Mon Mar 19 11:06:39 2012 -0500
Commit: Kumar Gala
CommitDate: Thu Mar 29 08:14:07 2012 -0500
powerpc/8xxx: remove 85xx/86xx restrictions from fsl_guts.h
Remove the check for CONFIG_PPC_85xx and CONFIG_PPC_86xx from fsl_guts.h.
The check was originally intended to allow the same header file to
be used on 85xx and 86xx systems, even though the Global Utilities
register could be different. It turns out that they're not actually
different, and so the check is not necessary. In addition, neither
macro is defined for 64-bit e5500 kernels, so that causes a build
break.
Signed-off-by: Timur Tabi
Acked-by: Mark Brown
Signed-off-by: Kumar Gala
commit dd79c014d6e7f75df819a6d2be355f9f3a1b1e62
Author: David Howells
AuthorDate: Wed Mar 28 18:30:03 2012 +0100
Commit: David Howells
CommitDate: Wed Mar 28 18:30:03 2012 +0100
Remove all #inclusions of asm/system.h
Remove all #inclusions of asm/system.h preparatory to splitting and killing
it. Performed with the following command:
perl -p -i -e 's!^#\s*include\s*.*\n!!' `grep -Irl '^#\s*include\s*' *`
Signed-off-by: David Howells
commit e59163335a5fed4dfb80478a466ca3187ccdf7fc
Author: Dan Carpenter
AuthorDate: Wed Mar 28 09:57:02 2012 +0300
Commit: Takashi Iwai
CommitDate: Wed Mar 28 18:49:49 2012 +0200
ALSA: asihpi - fix return type of hpios_locked_mem_alloc()
This function returns zero or -ENOMEM, but because it's type is u16, the
-ENOMEM gets changed to 65524. None of the callers care, but lets fix
it anyway as a cleanup.
Signed-off-by: Dan Carpenter
Signed-off-by: Takashi Iwai
commit 714420ada8adb06b4a69bc08a8f4a4a166c6d4af
Author: Vinod Koul
AuthorDate: Mon Mar 26 17:28:08 2012 +0530
Commit: Mark Brown
CommitDate: Mon Mar 26 18:28:11 2012 +0100
ASoC: dmaengine_pcm: use dmaengine cyclic wrapper
commit 4a163c82 added extra parameter to device_prep_dma_cyclic
this is not required if we use the wrapper over cyclic API.
This is split from Alexedre's patch
Signed-off-by: Vinod Koul
Signed-off-by: Mark Brown
commit 9c64e85d2186183bf2c9ccd3892d5a473ed90908
Author: Rob Herring
AuthorDate: Tue Mar 20 14:33:19 2012 -0500
Commit: Rob Herring
CommitDate: Sun Mar 25 14:36:31 2012 -0500
ARM: pxa: use common IOMEM definition
pxa was missed in the moving of IOMEM to a common definition, so lots of
IOMEM redefined warnings were introduced. So remove pxa IOMEM definition
and fix all the fallout.
Reported-by: Paul Gortmaker
Signed-off-by: Rob Herring
Cc: Eric Miao
Cc: Russell King
Cc: Haojian Zhuang
Cc: Alessandro Zummo
Cc: Jaroslav Kysela
Cc: Takashi Iwai
Cc: rtc-linux@...
Cc: alsa-devel@...
commit 04f7eb10b056cec80a8cc4596ef95eb4067002ec
Author: Bobby Powers
AuthorDate: Fri Mar 23 15:01:51 2012 -0700
Commit: Linus Torvalds
CommitDate: Fri Mar 23 16:58:31 2012 -0700
headers: include linux/types.h where appropriate
This addresses some header check warnings. DRM headers which include
"drm.h" have been excluded, as they indirectly include types.h.
Signed-off-by: Bobby Powers
Cc: Chris Ball
Cc: Dave Airlie
Cc: James Bottomley
Cc: Takashi Iwai
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
commit 29c4d096279422ee427604813a98f5f6ce780874
Author: Fabio Estevam
AuthorDate: Thu Mar 22 10:19:03 2012 -0300
Commit: Mark Brown
CommitDate: Thu Mar 22 15:38:43 2012 +0000
ASoC: Add extra parameter to device_prep_dma_cyclic
Since commit 185ecb5 (dmaengine: add context parameter to prep_slave_sg and prep_dma_cyclic)
prep_dma_cyclic() got an extra context parameter.
Add this new parameter in order to fix the following build error (mxs_defconfig and imx_v4_v5_defconfig):
sound/soc/soc-dmaengine-pcm.c:149:3: error: too few arguments to function 'chan->device->device_prep_dma_cyclic'
Signed-off-by: Fabio Estevam
Signed-off-by: Mark Brown
commit b19d7136cf40b772d0fb727f4c6e86dc67167057
Author: Takashi Iwai
AuthorDate: Thu Mar 22 14:36:50 2012 +0100
Commit: Takashi Iwai
CommitDate: Thu Mar 22 15:15:51 2012 +0100
ALSA: hda/realtek - Fix ADC assignment with a shared HP/Mic pin
The recent Realtek driver tries to assign an extra input via the
headphone plug when only a single input source is found. The code
worked on Samsung Q1, but it broke ASUS 1015 where the mic is a
digital-mic and only a specific ADC works.
This patch fixes the assignment of ADC in the shared mic/hp case.
Instead of assuming the single ADC at first, reduce the ADCs after
trying to assign both mic and HP pins.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42973
Cc:
Signed-off-by: Takashi Iwai
commit 16ac407466b33b01b6b795ce3418bb87fe781a43
Author: Mark Brown
AuthorDate: Wed Mar 21 13:22:40 2012 +0000
Commit: Mark Brown
CommitDate: Wed Mar 21 13:40:52 2012 +0000
ASoC: wm8994: Update WM8994 DCS calibration
Based on latest production information.
Signed-off-by: Mark Brown
Cc: stable@...
commit 900ca43ebdc5ac8e617dbd1a107bf21593b0c1a7
Author: Mark Brown
AuthorDate: Mon Mar 19 17:32:06 2012 +0000
Commit: Mark Brown
CommitDate: Mon Mar 19 19:08:17 2012 +0000
ASoC: wm8994: Provide VMID mode control and fix default sequence
The optimal management of VMID depends on a number of factors which vary
dynamically at runtime, for example the connection to a system docking
station. In some circumstances it is desirable to keep VMID enabled all
the time, in others it is desirable to aggressively power it up and down.
Provide a callback allowing machine driver to configure either the normal
power up/down mode (WM8994_VMID_MODE_NORMAL) or to maintain VMID even
when idle (WM8994_VMID_MODE_FORCE). This callback, wm8994_vmid_mode(),
should be called with the CODEC lock.
Signed-off-by: Mark Brown
commit 8c35643385fe4a0a60331b17b2f814fc7c202d4d
Author: Mark Brown
AuthorDate: Sat Mar 3 13:06:25 2012 +0000
Commit: Mark Brown
CommitDate: Mon Mar 19 19:08:15 2012 +0000
ASoC: wm8994: Add missing break in resume
Signed-off-by: Mark Brown
commit b1950903bb1d46d803758bfd1f04f582c182200e
Author: Mark Brown
AuthorDate: Mon Mar 19 17:31:56 2012 +0000
Commit: Mark Brown
CommitDate: Mon Mar 19 19:08:12 2012 +0000
ASoC: wm_hubs: Don't actively manage LINEOUT_VMID_BUF
It can just be enabled all the time with no impact.
Signed-off-by: Mark Brown
commit e4627969b07cbedc62a770efef9e7d10fa25e0d9
Author: Hans Verkuil
AuthorDate: Mon Feb 27 05:31:58 2012 -0300
Commit: Mauro Carvalho Chehab
CommitDate: Mon Mar 19 11:28:52 2012 -0300
[media] tea575x: fix HW seek
Fix HW seek in TEA575x to work properly:
- a delay must be present after search start and before first register read
or the seek does weird things
- when the search stops, the new frequency is not available immediately, we
must wait until it appears in the register (fortunately, we can clear the
frequency bits when starting the search as it starts at the frequency
currently set, not from the value written)
- sometimes, seek remains on the current frequency (or moves only a little),
so repeat it until it moves by at least 50 kHz
Signed-off-by: Ondrej Zary
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab
commit 2658bc197bdfa281873a88585d702da1b6f02d18
Author: Hans Verkuil
AuthorDate: Mon Feb 27 05:30:13 2012 -0300
Commit: Mauro Carvalho Chehab
CommitDate: Mon Mar 19 11:27:21 2012 -0300
[media] tea575x-tuner: update to latest V4L2 framework requirements
The tea575x-tuner module has been updated to use the latest V4L2 framework
functionality. This also required changes in the drivers that rely on it.
The tea575x changes are:
- The drivers must provide a v4l2_device struct to the tea module.
- The radio_nr module parameter must be part of the actual radio driver,
and not of the tea module.
- Changed the frequency range to the normal 76-108 MHz range instead of
50-150.
- Add hardware frequency seek support.
- Fix broken rxsubchans/audmode handling.
- The application can now select between stereo and mono.
- Support polling for control events.
- Add V4L2 priority handling.
And radio-sf16fmr2.c now uses the isa bus kernel framework.
Signed-off-by: Hans Verkuil
Thanks-to: Ondrej Zary
Signed-off-by: Mauro Carvalho Chehab
commit 68ae49a7829c88422d9ac3b4ea743480161717d8
Author: Daniel Mack
AuthorDate: Mon Mar 19 09:12:53 2012 +0100
Commit: Mark Brown
CommitDate: Mon Mar 19 12:47:25 2012 +0000
ASoC: pxa-ssp: atomically set stream active masks
PXA's SSP engine fails to take its current channel phase into account
when enabling a stream while the engine is already running. This
results in randomly swapped left/right channels on either the record
or the playback side, depending on which one was enabled first.
The following patch fixes this by factoring out the bit field
modifications in question to a separate function that pauses the
engine temporarily, modifies the bits and kicks it off again
afterwards. Appearantly, a transition of SSCR0_SSE syncs both
directions properly.
The patch has been rolled out to quite a number of devices over the
last weeks and seems to fix the issue reliably.
Signed-off-by: Daniel Mack
Reported-and-tested-by: Sven Neumann
Signed-off-by: Mark Brown
Cc: stable@...
commit 7e43125810a9ee2b3f4caa7e8aaaed86bf72a74e
Author: Timur Tabi
AuthorDate: Fri Mar 16 16:32:52 2012 -0500
Commit: Mark Brown
CommitDate: Sat Mar 17 21:11:16 2012 +0000
ASoC: fsl: p1022ds: tell the WM8776 codec driver that it's the master
The WM8776 codec driver requires the machine driver to set one of the
SND_SOC_DAIFMT_CBx_xxx values. The P1022DS machine driver should be setting
SND_SOC_DAIFMT_CBM_CFM, but since that value was zero, no one noticed.
Commit 75d9ac46 ("ASoC: Allow DAI formats to be specified in the
dai_link"), however, changed the value of SND_SOC_DAIFMT_CBM_CFM from zero
to a non-zero value, which means that it now needs to be specifically set
by the machine driver.
We also set SND_SOC_DAIFMT_NB_NF, for the same reason.
Signed-off-by: Timur Tabi
Signed-off-by: Mark Brown
Cc: stable@...
commit f080e02683cfd20c4e43e3450bfd0a9e1dc1e19a
Author: viresh kumar
AuthorDate: Thu Mar 15 10:40:38 2012 +0100
Commit: Russell King
CommitDate: Fri Mar 16 23:32:35 2012 +0000
ARM: 7362/1: AMBA: Add module_amba_driver() helper macro for amba_driver
For simple modules that contain a single amba_driver without any
additional setup code then ends up being a block of duplicated
boilerplate. This patch adds a new macro, module_amba_driver(),
which replaces the module_init()/module_exit() registrations with
template functions.
Signed-off-by: Viresh Kumar
Signed-off-by: Russell King
commit 17171072e1d057c61559056d2467cf89a58c1418
Author: Sangsu Park
AuthorDate: Fri Mar 16 15:40:53 2012 +0900
Commit: Mark Brown
CommitDate: Fri Mar 16 18:50:41 2012 +0000
ASoC: Samsung: Added to support mono recording
The dma size will be changed by requested number of
channel(mono/stereo) from platform. For mono recording,
channels_min value should be 1.
Signed-off-by: Sangsu Park
Signed-off-by: Sangbeom Kim
Signed-off-by: Mark Brown
commit f17e98be77af44784466bcc2d00172e82b915569
Author: Takashi Iwai
AuthorDate: Fri Mar 16 16:09:03 2012 +0100
Commit: Takashi Iwai
CommitDate: Fri Mar 16 16:15:33 2012 +0100
ALSA: hda - Fix build with CONFIG_PM=n
Signed-off-by: Takashi Iwai
commit c9f7df041f9a2b3a5816a9486cb414c3098c0d39
Author: Paul Gortmaker
AuthorDate: Mon Jan 30 11:46:54 2012 -0500
Commit: Paul Gortmaker
CommitDate: Fri Mar 16 10:38:24 2012 -0400
device.h: audit and cleanup users in main include dir
The header includes a lot of stuff, and
it in turn gets a lot of use just for the basic "struct device"
which appears so often.
Clean up the users as follows:
1) For those headers only needing "struct device" as a pointer
in fcn args, replace the include with exactly that.
2) For headers not really using anything from device.h, simply
delete the include altogether.
3) For headers relying on getting device.h implicitly before
being included themselves, now explicitly include device.h
4) For files in which doing #1 or #2 uncovers an implicit
dependency on some other header, fix by explicitly adding
the required header(s).
Any C files that were implicitly relying on device.h to be
present have already been dealt with in advance.
Total removals from #1 and #2: 51. Total additions coming
from #3: 9. Total other implicit dependencies from #4: 7.
As of 3.3-rc1, there were 110, so a net removal of 42 gives
about a 38% reduction in device.h presence in include/*
Signed-off-by: Paul Gortmaker
commit 44f8e0017b9c2aa6e63c0ea8664eae001f26a6ca
Author: Takashi Iwai
AuthorDate: Fri Mar 16 09:54:00 2012 +0100
Commit: Takashi Iwai
CommitDate: Fri Mar 16 09:54:00 2012 +0100
ALSA: au88x0 - Avoid possible Oops at unbinding
The irq handler must check whether the MPU401 instance is still alive.
Signed-off-by: Takashi Iwai
commit eae735df41d5207730bbcb92118ca6ebc69582dc
Author: Takashi Iwai
AuthorDate: Thu Mar 15 16:14:38 2012 +0100
Commit: Takashi Iwai
CommitDate: Thu Mar 15 16:14:38 2012 +0100
ALSA: usb-audio - Fix build error by consitification of rate list
Signed-off-by: Takashi Iwai
commit 37eae9db275685d77ebab4e07abbd1c1dea83e8c
Author: Mark Brown
AuthorDate: Wed Mar 14 20:18:49 2012 +0000
Commit: Mark Brown
CommitDate: Thu Mar 15 14:28:25 2012 +0000
ASoC: core: Fix obscure leak of runtime array
We're currently not freeing card->rtd in cases where the card is
unregistered before being instantiated - convert it to devm_kzalloc() to
make sure that happens.
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood
commit 170eadd1e5a33cd9f9581ac4202ae2ae52586abd
Author: Takashi Iwai
AuthorDate: Tue Mar 13 15:55:43 2012 +0100
Commit: Takashi Iwai
CommitDate: Thu Mar 15 07:36:00 2012 +0100
ALSA: pcm - Avoid GFP_ATOMIC in snd_pcm_link()
GFP_ATOMIC is used in snd_pcm_link() just because the kmalloc is
called inside a lock. Since this function isn't too critical for
speed and is rarely called in practice, better to allocate the chunk
at first before spinlock and free it in error paths, so that
GFP_KERNEL can be used.
Signed-off-by: Takashi Iwai
commit b967733221bf6e1364babb647c012720ac84b7f3
Author: Mark Brown
AuthorDate: Wed Mar 14 19:48:43 2012 +0000
Commit: Takashi Iwai
CommitDate: Thu Mar 15 07:35:17 2012 +0100
ALSA: pcm: Constify the list in snd_pcm_hw_constraint_list
Allows the constraint lists to be declared const by drivers which seems
reasonable; there's plenty of other constification we could do if we were
being complete but this was easy and quick.
Signed-off-by: Mark Brown
Signed-off-by: Takashi Iwai
commit 194baaa87edfdd9f5a1c4d5eef107dc5866dd232
Author: Mark Brown
AuthorDate: Wed Mar 14 18:38:28 2012 +0000
Commit: Mark Brown
CommitDate: Wed Mar 14 20:37:29 2012 +0000
ASoC: wm8996: Add 44.1kHz support
The WM8996 specification has been updated to specify 44.1kHz as a supported
sample rate. Update the driver to accept this configuration.
Signed-off-by: Mark Brown
commit 99e73728b679fedb31b00cb3bd5d44949ffdb23f
Author: Takashi Iwai
AuthorDate: Wed Mar 14 08:20:20 2012 +0100
Commit: Takashi Iwai
CommitDate: Wed Mar 14 08:20:20 2012 +0100
ALSA: hda - Fix build of patch_sigmatel.c without CONFIG_SND_HDA_POWER_SAVE
Now the mute-LED is controlled without powersave hack, and the ifdefs must
be removed.
Signed-off-by: Takashi Iwai
commit e3ab1a4de585d0d7239c8e3cfadf0f67aafbb6f4
Author: Fabio Estevam
AuthorDate: Mon Mar 12 19:48:49 2012 -0300
Commit: Mark Brown
CommitDate: Tue Mar 13 23:09:59 2012 +0000
ASoC: mx27vis-aic32x4: Convert it to platform driver
Convert mx27vis-aic32x4 to platform driver.
Signed-off-by: Fabio Estevam
Tested-by: Javier Martin
Signed-off-by: Mark Brown
commit ac153992fe69ddec0d78aea4ca62cc567b502c71
Author: Anssi Hannula
AuthorDate: Tue Mar 13 17:43:02 2012 +0200
Commit: Takashi Iwai
CommitDate: Tue Mar 13 18:27:09 2012 +0100
ALSA: hda - fix printing of high HDMI sample rates
A previous commit af65cbf296 (ALSA: hdmi: fix printout of SAD sampling
rates) fixed the sample rates shown in /proc/asound/cardX/eldY and
kernel log to not be entirely wrong. However, a missing rate from the
array added in the patch causes HDMI rates 88.2 kHz, 96 kHz, 176.4 kHz,
and 192 kHz to be shown as 96 kHz, 176.4 kHz, 192 kHz, and 384 kHz,
respectively.
Fix the reporting by adding the ALSA rate 64 kHz into the conversion
array between 48 kHz and 88.2 kHz.
Signed-off-by: Anssi Hannula
Cc: Pierre-Louis Bossart
Cc: stable@...
Signed-off-by: Takashi Iwai
commit decfa9a6de010aa639f50ef5d6c70c80b8de64ce
Author: Takashi Iwai
AuthorDate: Tue Mar 13 07:55:10 2012 +0100
Commit: Takashi Iwai
CommitDate: Tue Mar 13 07:55:10 2012 +0100
ALSA: hda - Add expose_enum_ctl flag to snd_hda_add_vmaster_hook()
Since it's not always safe to assume that the vmaster hook is purely the
mute-LED control, add the flag indicating whether to expose the mute-LED
enum control or not. Currently, conexant codec sets this off for non-HP
laptops where EAPD may be used really as EAPD.
Signed-off-by: Takashi Iwai
commit c7d0dcb003bf1efae4fa9a1282df0c2d39161514
Author: Takashi Iwai
AuthorDate: Mon Mar 12 16:59:58 2012 +0100
Commit: Takashi Iwai
CommitDate: Tue Mar 13 07:46:50 2012 +0100
ALSA: hda - Add "Mute-LED Mode" enum control
Create snd_hda_add_vmaster_hook() and snd_hda_sync_vmaster_hook()
helper functions to handle the mute-LED in vmaster hook more
commonly. In the former function, a new enum control "Mute-LED Mode"
is added. This provides user to choose whether the mute-LED should be
turned on/off explicitly or to follow the master-mute status.
Reviewed-by: David Henningsson
Signed-off-by: Takashi Iwai
commit bf0a4743f7e025ab570f7b51d60ddbc22e108bec
Author: Lars-Peter Clausen
AuthorDate: Mon Mar 5 14:02:15 2012 +0100
Commit: Mark Brown
CommitDate: Mon Mar 12 19:03:39 2012 +0000
ASoC: ep93xx-pcm: Use dmaengine PCM helper functions
Signed-off-by: Lars-Peter Clausen
Acked-by: Vinod Koul
Tested-by: Mika Westerberg
Signed-off-by: Mark Brown
commit 6b224353627109ab9f31ef9ba82cbb6c522472c2
Author: Mika Westerberg
AuthorDate: Mon Mar 5 14:02:14 2012 +0100
Commit: Mark Brown
CommitDate: Mon Mar 12 19:03:22 2012 +0000
ASoC: dmaengine_pcm: Reset pointer position when starting a stream
Otherwise a wrong position will be reported after restarting a stream and the
first few samples might be skipped.
Signed-off-by: Mika Westerberg
Signed-off-by: Lars-Peter Clausen
Signed-off-by: Mark Brown
commit a088aacb051d5a584099bfa498a19e8e7a4d7229
Author: Mark Brown
AuthorDate: Mon Mar 12 16:31:50 2012 +0000
Commit: Mark Brown
CommitDate: Mon Mar 12 18:12:09 2012 +0000
ASoC: wm8994: Prevent ABBA deadlock with CODEC and accdet mutexes
Currently we can the accdet mutex from within DAPM when updating the device
state which means we take accdet then the CODEC mutex but we also do the
locking the other way around when responding to the jackdet IRQ. Move all
the jackdet use of the CODEC mutex out of the accdet lock to avoid this.
Since all the DAPM interactions depend only on a single threaded IRQ this
is still serialised.
The locking improvements in 3.5 allow a better solution there.
Signed-off-by: Mark Brown
commit df77ee95c1a8782e1b0e78c917e390ff20e6d150
Author: Takashi Iwai
AuthorDate: Mon Mar 12 12:38:51 2012 +0100
Commit: Takashi Iwai
CommitDate: Mon Mar 12 14:52:43 2012 +0100
ALSA: hda - Add EAPD control to Conexnat auto-parser
Added the vmaster hook for controlling EAPD dynamically to Conexant
auto-parser. When the Master is muted, EAPDs are turned off as well.
This will fix the missing mute-LED control on some machines in
addition to the more power-saving in the auto-parser mode.
Signed-off-by: Takashi Iwai
commit 03f93d592e1ce0ee33c407b25d5029bbe0e18058
Author: Takashi Iwai
AuthorDate: Mon Mar 12 12:35:27 2012 +0100
Commit: Takashi Iwai
CommitDate: Mon Mar 12 14:52:43 2012 +0100
ALSA: hda - Rewrite the mute-LED control with vmaster hook for ALC269
We've had ugly static handling of the mute-LED with a powersave hook
for ALC269 HP laptops just like done in patch_sigmatel.c. This is now
rewritten with the new vmaster hook and a fixup code.
For that, the new fixup action, ALC_FIXUP_ACT_BUILD, is introduced.
It's called after build_controls is called. The reason of this new
action is that vmaster hook must be added at this stage (not in init
or probe).
Signed-off-by: Takashi Iwai
commit 76f2a6fa40dc8a5f38f8b6bd691dfc9b3d3b7f02
Author: Takashi Iwai
AuthorDate: Mon Mar 12 12:30:22 2012 +0100
Commit: Takashi Iwai
CommitDate: Mon Mar 12 14:52:42 2012 +0100
ALSA: hda - Rewrite the mute-LED hook with vmaster hook in patch_sigmatel.c
The mute-LED is controlled in patch_sigmatel.c by (ab-)using the
powersave hook. This can be now rewritten with the vmaster hook
instead, which is much simpler and can work even without
CONFIG_SND_HDA_POWER_SAVE kconfig.
A drawback is that the mute-LED corresponds _only_ to the Master mixer
switch instead of checking the whole DACs. But usually this shouldn't
be a big problem as PA enables the mixer elements accordingly.
Also, this patch changes the code to create vmaster always even on
STAC9200 and STAC925x. The former "Master" on these chips are renamed
as "PCM" now.
Signed-off-by: Takashi Iwai
commit 6a786cd743e3d1fd093759eb8ed3fbbad5bcbce8
Author: Takashi Iwai
AuthorDate: Mon Mar 12 12:25:03 2012 +0100
Commit: Takashi Iwai
CommitDate: Mon Mar 12 14:52:28 2012 +0100
ALSA: hda - Return the created kcontrol in __snd_hda_add_vmaster()
It'll be used for adding hooks in later patches.
Signed-off-by: Takashi Iwai
commit 934ba03567168d8bc7f469758544281a0362ac2e
Author: Takashi Iwai
AuthorDate: Mon Mar 12 12:18:37 2012 +0100
Commit: Takashi Iwai
CommitDate: Mon Mar 12 13:58:54 2012 +0100
ALSA: Add a hook capability to vmaster controls
This patch adds a hook to vmaster control to be called at each time
when the master value is changed. It'd be handy for an additional
mute LED control following the Master switch, for example.
Signed-off-by: Takashi Iwai
commit ff9aecb5b9127f95225cacd7c1b7fb92b797d27d
Author: Mark Brown
AuthorDate: Mon Mar 12 10:33:34 2012 +0000
Commit: Mark Brown
CommitDate: Mon Mar 12 10:37:23 2012 +0000
ASoC: Revert widget I/O locking for 3.4
The widget locking depends on some of the other locking changes which
are queued up for 3.5 not 3.4 so revert the locking changes and reapply
them in 3.5.
This reverts commit 66bf93212f19548f5ed221356b2d70189cc18254 and
96acc357bedad69fbc94d1b923a960af5a411c6f.
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood
commit aa4b8d86a7ee6f24ff30ddf4b422c314d810be11
Author: Paul Gortmaker
AuthorDate: Sun Jan 22 11:23:42 2012 -0500
Commit: Paul Gortmaker
CommitDate: Sun Mar 11 14:27:37 2012 -0400
device.h: cleanup users outside of linux/include (C files)
For files that are actively using linux/device.h, make sure
that they call it out. This will allow us to clean up some
of the implicit uses of linux/device.h within include/*
without introducing build regressions.
Yes, this was created by "cheating" -- i.e. the headers were
cleaned up, and then the fallout was found and fixed, and then
the two commits were reordered. This ensures we don't introduce
build regressions into the git history.
Signed-off-by: Paul Gortmaker
commit 51d95579f4d86f7cc65ca4a29f2de75135949196
Author: Ashish Chavan
AuthorDate: Fri Mar 9 13:51:30 2012 +0530
Commit: Mark Brown
CommitDate: Fri Mar 9 11:50:28 2012 +0000
ASoC: da7210: Remove extra registers from defaults list
This patch removes following registers from reg map defaults,
- Registers which are currently not used by driver
- Non existing registers
- Volatile registers
Signed-off-by: Ashish Chavan
Signed-off-by: David Dajun Chen
Signed-off-by: Mark Brown
commit 767ab9aa714e970dcaadf158d730b48c88b8f1d6
Author: Shawn Guo
AuthorDate: Fri Mar 9 00:59:46 2012 +0800
Commit: Mark Brown
CommitDate: Fri Mar 9 11:38:12 2012 +0000
ASoC: fsl: check property 'compatible' for the machine name
Check /compatible rather than /model to determine the machine name.
The p1022ds older device trees get a different /model from the new
ones, while /compatible is consistent there, so checking /compatible
will save the bother of detecting older p1022ds device trees.
Signed-off-by: Shawn Guo
Acked-by: Timur Tabi
Signed-off-by: Mark Brown
commit 1487283b0822d6c207e09264a6d5a0c8bf592621
Author: Mark Brown
AuthorDate: Thu Mar 8 17:00:57 2012 +0000
Commit: Mark Brown
CommitDate: Thu Mar 8 18:24:27 2012 +0000
ASoC: wm8996: Remove separate output stage enable step
Marginally improve performance during startup.
Signed-off-by: Mark Brown
commit 19d34f23b097fbcf5395629f650e34c66536387d
Author: Mark Brown
AuthorDate: Thu Mar 8 15:59:50 2012 +0000
Commit: Mark Brown
CommitDate: Thu Mar 8 18:24:22 2012 +0000
ASoC: wm8996: Remove some volatile regisers from the defaults table
Signed-off-by: Mark Brown
commit 7e521409c89cd24a7df041ebfa3a316e2de10830
Author: Shawn Guo
AuthorDate: Fri Mar 9 00:59:40 2012 +0800
Commit: Mark Brown
CommitDate: Thu Mar 8 18:23:46 2012 +0000
ASoC: core: missing set_fmt should not be complaint
Not having a DAI link set_fmt operation is perfectly normal and
should not be complaint.
Signed-off-by: Shawn Guo
Signed-off-by: Mark Brown
commit dcba034be0641bd92c882dbd6a7c2a7e137baadc
Author: Ashish Chavan
AuthorDate: Thu Mar 8 19:04:56 2012 +0530
Commit: Mark Brown
CommitDate: Thu Mar 8 18:19:24 2012 +0000
ASoC: da7210: Update for using I2C regmap
Current DA7210 driver has I2C support using older register cache
methods. This patch updates it for latest regmap framework.
This has been tested on DA7210 EVB with Samsung SMDK6410 board.
Signed-off-by: Ashish Chavan
Signed-off-by: David Dajun Chen
Signed-off-by: Mark Brown
commit ad72dc672f6aa4002662ff4fa2fbe5de4d67a610
Author: Qiao Zhou
AuthorDate: Thu Mar 8 10:02:36 2012 +0800
Commit: Mark Brown
CommitDate: Thu Mar 8 18:15:43 2012 +0000
ASoC: add more sample rate for pxa-ssp
add more sample rate for pxa-ssp, which are supported, such as 32KHz,
64KHz.
Signed-off-by: Qiao Zhou
Signed-off-by: Mark Brown
commit 4a7c91e23a87eaa9a68de5ab540a2e2bbf6eef79
Author: Fabio Estevam
AuthorDate: Wed Mar 7 15:19:57 2012 -0300
Commit: Mark Brown
CommitDate: Wed Mar 7 19:32:39 2012 +0000
ASoC: imx: imx-audmux: Fix section mismatch
Fix the following section mismatch warning:
WARNING: vmlinux.o(.data+0x35be8): Section mismatch in reference from the variable imx_audmux_driver to the function .init.text:imx_audmux_probe()
The variable imx_audmux_driver references
the function __init imx_audmux_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
Signed-off-by: Fabio Estevam
Signed-off-by: Mark Brown
commit 02720b549d74b24d28529efc1b434df33a5fffdc
Author: Masanari Iida
AuthorDate: Sun Mar 4 23:16:11 2012 +0900
Commit: Jiri Kosina
CommitDate: Wed Mar 7 16:08:24 2012 +0100
Documentation: Fix multiple typo in Documentation
Signed-off-by: Masanari Iida
Acked-by: Randy Dunlap
Signed-off-by: Jiri Kosina
commit 0b2e98cb031635966f8f55ff58b8b0cc6fa3f3d8
Author: Mark Brown
AuthorDate: Tue Mar 6 23:58:22 2012 +0000
Commit: Mark Brown
CommitDate: Wed Mar 7 11:53:00 2012 +0000
ASoC: dapm: Only lock CODEC for I/O if not using regmap
If we do use regmap then regmap will take care of things for us. We
actually already have this check at a higher level for the current
users but this makes sure we do the right thing in the future too if
we need to.
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood
commit 85fa73ac89efa68eb8c14604065e644da0d7316f
Author: Liam Girdwood
AuthorDate: Tue Mar 6 18:16:19 2012 +0000
Commit: Mark Brown
CommitDate: Tue Mar 6 20:07:03 2012 +0000
ASoC: DAPM: Make sure DAPM widget IO ops hold the component mutex
Currently not all DAPM widget IO ops are holding their component mutex
(codec or platform). Make sure this is now held for DAPM widget IO operations.
Signed-off-by: Liam Girdwood
Signed-off-by: Mark Brown
commit aac8581e0b3be1065b314beae10ede4f3a815aaa
Author: Liam Girdwood
AuthorDate: Tue Mar 6 18:16:18 2012 +0000
Commit: Mark Brown
CommitDate: Tue Mar 6 20:07:00 2012 +0000
ASoC: core: Add platform component mutex
Add mutex support for platform IO operations. e.g. can be used
for platform DAPM widget IO ops.
Signed-off-by: Liam Girdwood
Signed-off-by: Mark Brown
commit 29504a5d5c2aa96e1adeebc6ff107547e89e1b6a
Author: Stephen Warren
AuthorDate: Tue Mar 6 12:13:07 2012 -0700
Commit: Mark Brown
CommitDate: Tue Mar 6 20:06:59 2012 +0000
ASoC: tegra: Remove unused variable
Fixes the following warning:
sound/soc/tegra/tegra_alc5632.c: In function 'tegra_alc5632_asoc_init':
sound/soc/tegra/tegra_alc5632.c:118:6: warning: unused variable 'ret' [-Wunused-variable]
Signed-off-by: Stephen Warren
Signed-off-by: Mark Brown
commit 4baa02e503a82e42e8926b7a379e6a205ed5a134
Author: Liam Girdwood
AuthorDate: Tue Mar 6 18:13:25 2012 +0000
Commit: Mark Brown
CommitDate: Tue Mar 6 20:06:53 2012 +0000
ASoC: dapm: Use dev_warn for debugfs warning message
Remove printk(KERN_WARNING) and use dev_warn() instead.
Signed-off-by: Liam Girdwood
Signed-off-by: Mark Brown
commit 01fcaaa23b8e19219931333ce2993fd753424fb2
Author: Janusz Krzysztofik
AuthorDate: Mon Mar 5 17:05:12 2012 +0100
Commit: Tony Lindgren
CommitDate: Mon Mar 5 11:25:34 2012 -0800
ASoC: OMAP: ams-delta: drop .set_bias_level callback
This functionality has already been implemented in the cx20442 codec
driver (commit f75a8ff67d161b5166a2c2360bb2ffaefd5eb853, "ASoC: cx20442:
add bias control over a platform provided regulator"), no need to keep
it here duplicated.
Once done, remove the no longer used AMS_DELTA_LATCH2_MODEM_NRESET
symbol from the board header file and a call to the regulator_toggle()
helper function from the old API wrapper found in the board file. While
being at it, simplify the way the modem .pm callback handles the
regulator and drop that helper function and its related consumer setup
completely.
Depends on patches 1/3 and 2/3 for clean apply and keep things working.
Signed-off-by: Janusz Krzysztofik
Acked-by: Mark Brown
Cc: Tony Lindgren
Signed-off-by: Tony Lindgren
commit 97e7a45038053ceb37d4787ddef6a9873ca4d4a0
Author: Kukjin Kim
AuthorDate: Fri Feb 3 14:29:23 2012 +0900
Commit: Kukjin Kim
CommitDate: Sat Mar 3 07:44:51 2012 +0900
ARM: S3C24XX: change the ARCH_S3C2410 to ARCH_S3C24XX
This patch changes the ARCH name to "ARCH_S3C24XX" for Samsung
S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443,
and S3C2450 SoCs so that we can merge the mach-xxx directories
and plat-s3c24xx dir. to just one mach-s3c24xx for them.
I think this should be sent to upstream via samsung tree because
this touches many samsung stuff.
Cc: Dmitry Torokhov
Cc: Richard Purdie
Cc: Chris Ball
Cc: David Woodhouse
Cc: Alessandro Zummo
Cc: Grant Likely
Cc: Greg Kroah-Hartman
[for the gadget part:]
Acked-by: Felipe Balbi
[for the framebuffer (video) part:]
Acked-by: Florian Tobias Schandinat
[For the watchdog-part:]
Acked-by: Wim Van Sebroeck
Cc: Sangbeom Kim
Cc: Liam Girdwood
Cc: Mark Brown
Cc: Russell King
Signed-off-by: Kukjin Kim
commit 47eebee752d7fb493b9f4000a282bef94c61e67d
Author: Mark Brown
AuthorDate: Sat Jan 21 12:11:53 2012 +0000
Commit: Mark Brown
CommitDate: Wed Feb 22 13:57:03 2012 +0000
mfd/ASoC: Convert WM8994 driver to use regmap patches
Early revisions of several of the WM8994 variants have register updates
to improve performance. Move these over to using the regmap patch system
instead of open coding them in the audio driver. Since the regmap init
is done by the MFD the code is moved there.
Signed-off-by: Mark Brown
Acked-by: Samuel Ortiz
commit 47434f0b7f03c07c12f0fa915e0b52b4c6803113
Author: Viresh Kumar
AuthorDate: Wed Feb 1 16:12:27 2012 +0530
Commit: Vinod Koul
CommitDate: Wed Feb 22 18:15:39 2012 +0530
dmaengine/dw_dmac: Fix dw_dmac user drivers to adapt to slave_config changes
There are few existing user drivers of dw_dmac. They will break as soon as we
remove unused fields from struct dw_dma_slave. This patch focuses to fix these
user drivers to use dma_slave_config() routine.
Signed-off-by: Viresh Kumar
Signed-off-by: Vinod Koul
commit c7b12c89fbfa5a13ca004baf91a1cd17ed56cb48
Author: Justin P. Mattock
AuthorDate: Sat Feb 11 05:55:58 2012 -0800
Commit: Jiri Kosina
CommitDate: Tue Feb 21 11:40:36 2012 +0100
Typos: change aditional to additional.
The below patch fixes some typos "aditional" to "additional", and also fixes
a comment with another word mispelled.
Signed-off-by: Justin P. Mattock
Signed-off-by: Jiri Kosina
commit 3f5f1581d40bb9ae1ec0c859ed7624b1906e06dc
Author: Rob Herring
AuthorDate: Tue Jan 3 17:10:17 2012 -0600
Commit: Rob Herring
CommitDate: Wed Jan 25 20:37:42 2012 -0600
sound: pxa2xx-ac97: include mach/irqs.h directly
In preparation of removing mach/irqs.h include from asm/irq.h, include
mach/irqs.h directly.
Signed-off-by: Rob Herring
commit ff4f18dd3d4a71072322707d8ed57db2831e0176
Author: Stefan Richter
AuthorDate: Sat Aug 27 18:53:03 2011 +0200
Commit: Stefan Richter
CommitDate: Sun Jan 15 18:37:20 2012 +0100
firewire: move fw_device reference counting from drivers to core
fw_unit device drivers invariably need to talk to the fw_unit's parent
(an fw_device) and grandparent (an fw_card). firewire-core already
maintains an fw_card reference for the entire lifetime of an fw_device.
Likewise, let firewire-core maintain an fw_device reference for the
entire lifetime of an fw_unit so that fw_unit drivers don't have to.
Signed-off-by: Stefan Richter
commit 4c84801540084d4e8b9fa3de9ce9f3670910b63a
Author: Janusz Krzysztofik
AuthorDate: Tue Dec 20 22:54:18 2011 +0100
Commit: Tony Lindgren
CommitDate: Wed Dec 21 10:47:01 2011 -0800
ARM: OMAP1: ams-delta: register latch dependent devices later
In preparation to converting Amstrad Delta on-board latches to
basic_mmio_gpio devices, registration of platform devices which depend
on latches and will require initialization of their GPIO pins first,
should be moved out of .machine_init down to late_initcall level, as the
gpio-generic driver is not available until device_initcall time. The
latch reset operation, which will be replaced with GPIO initialization,
must also be moved to late_initcall for the same reason.
Since there was already another, separate arch_initcall function for
setting up one of those latch dependent devices, the on-board modem
device, reuse that function, i.e., rename it to a name that matches the
new purpose, extend with other device setup relocated from
.machine_init, and move down to the late_initcall level.
While being at it, add missing gpio_free() in case the modem platform
device registration fails.
Thanks to Tony Lindgren who suggested this approach
instead of shifting up the gpio-generic driver initialization.
In addition, defer registration of the Amstrad Delta ASoC and serio
devices, done from their device driver files, until late_initcall time,
as those drivers will depend on their GPIO pins already requested from
the board late_init() function until updated to register their GPIO pins
themselves.
Signed-off-by: Janusz Krzysztofik
Acked-by: Mark Brown
Signed-off-by: Tony Lindgren
-----------------------------------------------------------------------
Diffstat:
Documentation/ALSA-Configuration.txt | 12 +-
Documentation/Audiophile-Usb.txt | 4 +-
Documentation/HD-Audio-Models.txt | 4 +-
Documentation/MIXART.txt | 6 +-
Documentation/OSS-Emulation.txt | 2 +-
arm/aaci.c | 13 +-
arm/pxa2xx-ac97-lib.c | 3 +-
arm/pxa2xx-ac97.c | 1 +
atmel/abdac.c | 18 +-
atmel/ac97c.c | 41 ++-
core/init.c | 1 +
core/pcm.c | 1 +
core/pcm_lib.c | 3 +-
core/pcm_native.c | 15 +-
core/seq/seq.c | 1 +
core/seq/seq_dummy.c | 2 +-
core/timer.c | 1 +
core/vmaster.c | 47 +++-
drivers/Kconfig | 3 +-
firewire/isight.c | 4 +-
firewire/speakers.c | 4 -
i2c/other/tea575x-tuner.c | 169 +++++++----
include/compress_params.h | 2 +
include/control.h | 5 +
include/core.h | 15 +-
include/pcm.h | 5 +-
include/soc-dapm.h | 3 +-
include/soc.h | 1 +
include/tea575x-tuner.h | 6 +-
isa/opti9xx/opti92x-ad1848.c | 2 +-
isa/sscape.c | 6 +-
last.c | 2 +-
pci/Kconfig | 4 +-
pci/asihpi/hpi_internal.h | 2 +-
pci/asihpi/hpios.c | 8 +-
pci/asihpi/hpios.h | 1 -
pci/au88x0/au88x0_core.c | 2 +-
pci/aw2/aw2-saa7146.c | 1 -
pci/es1968.c | 15 +
pci/fm801.c | 20 ++-
pci/hda/hda_codec.c | 106 +++++++-
pci/hda/hda_codec.h | 3 +
pci/hda/hda_eld.c | 10 +-
pci/hda/hda_local.h | 29 ++-
pci/hda/hda_proc.c | 13 +-
pci/hda/patch_analog.c | 2 +-
pci/hda/patch_conexant.c | 187 +++++++-----
pci/hda/patch_hdmi.c | 9 +-
pci/hda/patch_realtek.c | 177 ++++++++----
pci/hda/patch_sigmatel.c | 153 ++++------
soc/codecs/Kconfig | 3 +-
soc/codecs/ak4642.c | 2 +-
soc/codecs/cs42l73.c | 2 +
soc/codecs/da7210.c | 146 +++++++---
soc/codecs/sgtl5000.c | 25 +-
soc/codecs/twl6040.c | 3 +-
soc/codecs/wm8994.c | 559 ++++++++++++++++++++++++---------
soc/codecs/wm8994.h | 8 +
soc/codecs/wm8996.c | 53 ++--
soc/codecs/wm_hubs.c | 16 +-
soc/ep93xx/Kconfig | 1 +
soc/ep93xx/ep93xx-pcm.c | 144 ++--------
soc/fsl/fsl_ssi.c | 6 +-
soc/fsl/mpc8610_hpcd.c | 10 +-
soc/fsl/p1022_ds.c | 66 ++---
soc/imx/imx-audmux.c | 29 +-
soc/imx/imx-pcm-dma-mx2.c | 3 +
soc/imx/mx27vis-aic32x4.c | 41 ++--
soc/mxs/mxs-pcm.c | 2 +-
soc/mxs/mxs-saif.c | 2 +-
soc/omap/Kconfig | 2 +-
soc/omap/ams-delta.c | 34 +--
soc/pxa/pxa-ssp.c | 64 +++--
soc/pxa/pxa2xx-ac97.c | 1 +
soc/pxa/pxa2xx-i2s.c | 1 +
soc/samsung/Kconfig | 12 +-
soc/samsung/i2s.c | 13 +-
soc/sh/fsi.c | 7 +-
soc/sh/siu_pcm.c | 4 +-
soc/soc-core.c | 31 +-
soc/soc-dapm.c | 20 +-
soc/soc-dmaengine-pcm.c | 3 +-
soc/tegra/tegra_alc5632.c | 1 -
soc/tegra/tegra_i2s.c | 6 +-
soc/tegra/tegra_spdif.c | 4 +
soc/txx9/txx9aclc.c | 2 +-
usb/pcm.c | 6 +-
87 files changed, 1529 insertions(+), 947 deletions(-)
Patch -------------- (max 1500 lines)
diff --git a/Documentation/ALSA-Configuration.txt b/Documentation/ALSA-Configuration.txt
index 9af64c5..8c16d50 100644
--- a/Documentation/ALSA-Configuration.txt
+++ b/Documentation/ALSA-Configuration.txt
@@ -1594,7 +1594,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
Module supports autoprobe a chip.
- Note: the driver may have problems regarding endianess.
+ Note: the driver may have problems regarding endianness.
The power-management is supported.
@@ -2044,7 +2044,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
Install the necessary firmware files in alsa-firmware package.
When no hotplug fw loader is available, you need to load the
firmware via vxloader utility in alsa-tools package. To invoke
- vxloader automatically, add the following to /etc/modprobe.conf
+ vxloader automatically, add the following to /etc/modprobe.d/alsa.conf
install snd-vx222 /sbin/modprobe --first-time -i snd-vx222 && /usr/bin/vxloader
@@ -2168,10 +2168,10 @@ corresponds to the card index of ALSA. Usually, define this
as the same card module.
An example configuration for a single emu10k1 card is like below:
------ /etc/modprobe.conf
+----- /etc/modprobe.d/alsa.conf
alias snd-card-0 snd-emu10k1
alias sound-slot-0 snd-emu10k1
------ /etc/modprobe.conf
+----- /etc/modprobe.d/alsa.conf
The available number of auto-loaded sound cards depends on the module
option "cards_limit" of snd module. As default it's set to 1.
@@ -2184,7 +2184,7 @@ cards is kept consistent.
An example configuration for two sound cards is like below:
------ /etc/modprobe.conf
+----- /etc/modprobe.d/alsa.conf
# ALSA portion
options snd cards_limit=2
alias snd-card-0 snd-interwave
@@ -2194,7 +2194,7 @@ options snd-ens1371 index=1
# OSS/Free portion
alias sound-slot-0 snd-interwave
alias sound-slot-1 snd-ens1371
------ /etc/modprobe.conf
+----- /etc/modprobe.d/alsa.conf
In this example, the interwave card is always loaded as the first card
(index 0) and ens1371 as the second (index 1).
diff --git a/Documentation/Audiophile-Usb.txt b/Documentation/Audiophile-Usb.txt
index a4c53d8..654dd3b 100644
--- a/Documentation/Audiophile-Usb.txt
+++ b/Documentation/Audiophile-Usb.txt
@@ -232,7 +232,7 @@ The parameter can be given:
# modprobe snd-usb-audio index=1 device_setup=0x09
* Or while configuring the modules options in your modules configuration file
- - For Fedora distributions, edit the /etc/modprobe.conf file:
+ (tipically a .conf file in /etc/modprobe.d/ directory:
alias snd-card-1 snd-usb-audio
options snd-usb-audio index=1 device_setup=0x09
@@ -253,7 +253,7 @@ CAUTION when initializing the device
- first turn off the device
- de-register the snd-usb-audio module (modprobe -r)
- change the device_setup parameter by changing the device_setup
- option in /etc/modprobe.conf
+ option in /etc/modprobe.d/*.conf
- turn on the device
* A workaround for this last issue has been applied to kernel 2.6.23, but it may not
be enough to ensure the 'stability' of the device initialization.
diff --git a/Documentation/HD-Audio-Models.txt b/Documentation/HD-Audio-Models.txt
index d97d992..03f7897 100644
--- a/Documentation/HD-Audio-Models.txt
+++ b/Documentation/HD-Audio-Models.txt
@@ -43,7 +43,9 @@ ALC680
ALC882/883/885/888/889
======================
- N/A
+ acer-aspire-4930gAcer Aspire 4930G/5930G/6530G/6930G/7730G
+ acer-aspire-8930gAcer Aspire 8330G/6935G
+ acer-aspireAcer Aspire others
ALC861/660
==========
diff --git a/Documentation/MIXART.txt b/Documentation/MIXART.txt
index ef42c44..4ee35b4 100644
--- a/Documentation/MIXART.txt
+++ b/Documentation/MIXART.txt
@@ -76,9 +76,9 @@ FIRMWARE
when CONFIG_FW_LOADER is set. The mixartloader is necessary only
for older versions or when you build the driver into kernel.]
-For loading the firmware automatically after the module is loaded, use
-the post-install command. For example, add the following entry to
-/etc/modprobe.conf for miXart driver:
+For loading the firmware automatically after the module is loaded, use a
+install command. For example, add the following entry to
+/etc/modprobe.d/mixart.conf for miXart driver:
install snd-mixart /sbin/modprobe --first-time -i snd-mixart && \
/usr/bin/mixartloader
diff --git a/Documentation/OSS-Emulation.txt b/Documentation/OSS-Emulation.txt
index 022aaeb..152ca2a 100644
--- a/Documentation/OSS-Emulation.txt
+++ b/Documentation/OSS-Emulation.txt
@@ -19,7 +19,7 @@ the card number and the minor unit number. Usually you don't have to
define these aliases by yourself.
Only necessary step for auto-loading of OSS modules is to define the
-card alias in /etc/modprobe.conf, such as
+card alias in /etc/modprobe.d/alsa.conf, such as
alias sound-slot-0 snd-emu10k1
diff --git a/arm/aaci.c b/arm/aaci.c
index b37b702..5119fda 100644
--- a/arm/aaci.c
+++ b/arm/aaci.c
@@ -1110,18 +1110,7 @@ static struct amba_driver aaci_driver = {
.id_table= aaci_ids,
};
-static int __init aaci_init(void)
-{
-return amba_driver_register(&aaci_driver);
-}
-
-static void __exit aaci_exit(void)
-{
-amba_driver_unregister(&aaci_driver);
-}
-
-module_init(aaci_init);
-module_exit(aaci_exit);
+module_amba_driver(aaci_driver);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("ARM PrimeCell PL041 Advanced Audio CODEC Interface driver");
diff --git a/arm/pxa2xx-ac97-lib.c b/arm/pxa2xx-ac97-lib.c
index d1aa421..48d7c0a 100644
--- a/arm/pxa2xx-ac97-lib.c
+++ b/arm/pxa2xx-ac97-lib.c
@@ -17,11 +17,12 @@
#include
#include
#include
+#include
#include
#include
-#include
+#include
#include
#include
diff --git a/arm/pxa2xx-ac97.c b/arm/pxa2xx-ac97.c
index 3a39626..afef72c 100644
--- a/arm/pxa2xx-ac97.c
+++ b/arm/pxa2xx-ac97.c
@@ -11,6 +11,7 @@
*/
#include
+#include
#include
#include
diff --git a/atmel/abdac.c b/atmel/abdac.c
index 4fa1dbd..f7c2bb0 100644
--- a/atmel/abdac.c
+++ b/atmel/abdac.c
@@ -16,6 +16,7 @@
#include
#include
#include
+#include
#include
#include
@@ -467,15 +468,24 @@ static int __devinit atmel_abdac_probe(struct platform_device *pdev)
snd_card_set_dev(card, &pdev->dev);
if (pdata->dws.dma_dev) {
-struct dw_dma_slave *dws = &pdata->dws;
dma_cap_mask_t mask;
-dws->tx_reg = regs->start + DAC_DATA;
-
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);
-dac->dma.chan = dma_request_channel(mask, filter, dws);
+dac->dma.chan = dma_request_channel(mask, filter, &pdata->dws);
+if (dac->dma.chan) {
+struct dma_slave_config dma_conf = {
+.dst_addr = regs->start + DAC_DATA,
+.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES,
+.src_maxburst = 1,
+.dst_maxburst = 1,
+.direction = DMA_MEM_TO_DEV,
+.device_fc = false,
+};
+
+dmaengine_slave_config(dac->dma.chan, &dma_conf);
+}
}
if (!pdata->dws.dma_dev || !dac->dma.chan) {
dev_dbg(&pdev->dev, "DMA not available\n");
diff --git a/atmel/ac97c.c b/atmel/ac97c.c
index 61dade6..115313e 100644
--- a/atmel/ac97c.c
+++ b/atmel/ac97c.c
@@ -20,6 +20,7 @@
#include
#include
#include
+#include
#include
#include
@@ -1014,16 +1015,28 @@ static int __devinit atmel_ac97c_probe(struct platform_device *pdev)
if (cpu_is_at32ap7000()) {
if (pdata->rx_dws.dma_dev) {
-struct dw_dma_slave *dws = &pdata->rx_dws;
dma_cap_mask_t mask;
-dws->rx_reg = regs->start + AC97C_CARHR + 2;
-
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);
chip->dma.rx_chan = dma_request_channel(mask, filter,
-dws);
+&pdata->rx_dws);
+if (chip->dma.rx_chan) {
+struct dma_slave_config dma_conf = {
+.src_addr = regs->start + AC97C_CARHR +
+2,
+.src_addr_width =
+DMA_SLAVE_BUSWIDTH_2_BYTES,
+.src_maxburst = 1,
+.dst_maxburst = 1,
+.direction = DMA_DEV_TO_MEM,
+.device_fc = false,
+};
+
+dmaengine_slave_config(chip->dma.rx_chan,
+&dma_conf);
+}
dev_info(&chip->pdev->dev, "using %s for DMA RX\n",
dev_name(&chip->dma.rx_chan->dev->device));
@@ -1031,16 +1044,28 @@ static int __devinit atmel_ac97c_probe(struct platform_device *pdev)
}
if (pdata->tx_dws.dma_dev) {
-struct dw_dma_slave *dws = &pdata->tx_dws;
dma_cap_mask_t mask;
-dws->tx_reg = regs->start + AC97C_CATHR + 2;
-
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);
chip->dma.tx_chan = dma_request_channel(mask, filter,
-dws);
+&pdata->tx_dws);
+if (chip->dma.tx_chan) {
+struct dma_slave_config dma_conf = {
+.dst_addr = regs->start + AC97C_CATHR +
+2,
+.dst_addr_width =
+DMA_SLAVE_BUSWIDTH_2_BYTES,
+.src_maxburst = 1,
+.dst_maxburst = 1,
+.direction = DMA_MEM_TO_DEV,
+.device_fc = false,
+};
+
+dmaengine_slave_config(chip->dma.tx_chan,
+&dma_conf);
+}
dev_info(&chip->pdev->dev, "using %s for DMA TX\n",
dev_name(&chip->dma.tx_chan->dev->device));
diff --git a/core/init.c b/core/init.c
index 068cf08..d8ec849 100644
--- a/core/init.c
+++ b/core/init.c
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/core/pcm.c b/core/pcm.c
index 6e4bfcc..1a3070b 100644
--- a/core/pcm.c
+++ b/core/pcm.c
@@ -24,6 +24,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/core/pcm_lib.c b/core/pcm_lib.c
index 3420bd3..4d18941 100644
--- a/core/pcm_lib.c
+++ b/core/pcm_lib.c
@@ -1029,7 +1029,8 @@ static int snd_interval_ratden(struct snd_interval *i,
*
* Returns non-zero if the value is changed, zero if not changed.
*/
-int snd_interval_list(struct snd_interval *i, unsigned int count, unsigned int *list, unsigned int mask)
+int snd_interval_list(struct snd_interval *i, unsigned int count,
+ const unsigned int *list, unsigned int mask)
{
unsigned int k;
struct snd_interval list_range;
diff --git a/core/pcm_native.c b/core/pcm_native.c
index 25ed9fe..3fe99e6 100644
--- a/core/pcm_native.c
+++ b/core/pcm_native.c
@@ -1586,12 +1586,18 @@ static int snd_pcm_link(struct snd_pcm_substream *substream, int fd)
struct file *file;
struct snd_pcm_file *pcm_file;
struct snd_pcm_substream *substream1;
+struct snd_pcm_group *group;
file = snd_pcm_file_fd(fd);
if (!file)
return -EBADFD;
pcm_file = file->private_data;
substream1 = pcm_file->substream;
+group = kmalloc(sizeof(*group), GFP_KERNEL);
+if (!group) {
+res = -ENOMEM;
+goto _nolock;
+}
down_write(&snd_pcm_link_rwsem);
write_lock_irq(&snd_pcm_link_rwlock);
if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN ||
@@ -1604,11 +1610,7 @@ static int snd_pcm_link(struct snd_pcm_substream *substream, int fd)
goto _end;
}
if (!snd_pcm_stream_linked(substream)) {
-substream->group = kmalloc(sizeof(struct snd_pcm_group), GFP_ATOMIC);
-if (substream->group == NULL) {
-res = -ENOMEM;
-goto _end;
-}
+substream->group = group;
spin_lock_init(&substream->group->lock);
INIT_LIST_HEAD(&substream->group->substreams);
list_add_tail(&substream->link_list, &substream->group->substreams);
@@ -1620,7 +1622,10 @@ static int snd_pcm_link(struct snd_pcm_substream *substream, int fd)
_end:
write_unlock_irq(&snd_pcm_link_rwlock);
up_write(&snd_pcm_link_rwsem);
+ _nolock:
fput(file);
+if (res < 0)
+kfree(group);
return res;
}
diff --git a/core/seq/seq.c b/core/seq/seq.c
index 9d8379a..7121105 100644
--- a/core/seq/seq.c
+++ b/core/seq/seq.c
@@ -21,6 +21,7 @@
#include
#include
+#include
#include
#include
diff --git a/core/seq/seq_dummy.c b/core/seq/seq_dummy.c
index bbe32d2..dbc5507 100644
--- a/core/seq/seq_dummy.c
+++ b/core/seq/seq_dummy.c
@@ -46,7 +46,7 @@
The number of ports to be created can be specified via the module
parameter "ports". For example, to create four ports, add the
- following option in /etc/modprobe.conf:
+ following option in a configuration file under /etc/modprobe.d/:
option snd-seq-dummy ports=4
diff --git a/core/timer.c b/core/timer.c
index 8e7561d..6ddcf06 100644
--- a/core/timer.c
+++ b/core/timer.c
@@ -24,6 +24,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/core/vmaster.c b/core/vmaster.c
index 130cfe6..8575861 100644
--- a/core/vmaster.c
+++ b/core/vmaster.c
@@ -37,6 +37,8 @@ struct link_master {
struct link_ctl_info info;
int val;/* the master value */
unsigned int tlv[4];
+void (*hook)(void *private_data, int);
+void *hook_private_data;
};
/*
@@ -126,7 +128,9 @@ static int master_init(struct link_master *master)
master->info.count = 1; /* always mono */
/* set full volume as default (= no attenuation) */
master->val = master->info.max_val;
-return 0;
+if (master->hook)
+master->hook(master->hook_private_data, master->val);
+return 1;
}
return -ENOENT;
}
@@ -329,6 +333,8 @@ static int master_put(struct snd_kcontrol *kcontrol,
slave_put_val(slave, uval);
}
kfree(uval);
+if (master->hook && !err)
+master->hook(master->hook_private_data, master->val);
return 1;
}
@@ -408,3 +414,42 @@ struct snd_kcontrol *snd_ctl_make_virtual_master(char *name,
return kctl;
}
EXPORT_SYMBOL(snd_ctl_make_virtual_master);
+
+/**
+ * snd_ctl_add_vmaster_hook - Add a hook to a vmaster control
+ * @kcontrol: vmaster kctl element
+ * @hook: the hook function
+ * @private_data: the private_data pointer to be saved
+ *
+ * Adds the given hook to the vmaster control element so that it's called
+ * at each time when the value is changed.
+ */
+int snd_ctl_add_vmaster_hook(struct snd_kcontrol *kcontrol,
+ void (*hook)(void *private_data, int),
+ void *private_data)
+{
+struct link_master *master = snd_kcontrol_chip(kcontrol);
+master->hook = hook;
+master->hook_private_data = private_data;
+return 0;
+}
+EXPORT_SYMBOL_GPL(snd_ctl_add_vmaster_hook);
+
+/**
+ * snd_ctl_sync_vmaster_hook - Sync the vmaster hook
+ * @kcontrol: vmaster kctl element
+ *
+ * Call the hook function to synchronize with the current value of the given
+ * vmaster element. NOP when NULL is passed to @kcontrol or the hook doesn't
+ * exist.
+ */
+void snd_ctl_sync_vmaster_hook(struct snd_kcontrol *kcontrol)
+{
+struct link_master *master;
+if (!kcontrol)
+return;
+master = snd_kcontrol_chip(kcontrol);
+if (master->hook)
+master->hook(master->hook_private_data, master->val);
+}
+EXPORT_SYMBOL_GPL(snd_ctl_sync_vmaster_hook);
diff --git a/drivers/Kconfig b/drivers/Kconfig
index c896116..fe5ae09 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -50,7 +50,8 @@ config SND_PCSP
before the other sound driver of yours, making the
pc-speaker a default sound device. Which is likely not
what you want. To make this driver play nicely with other
- sound driver, you can add this into your /etc/modprobe.conf:
+ sound driver, you can add this in a configuration file under
+ /etc/modprobe.d/ directory:
options snd-pcsp index=2
You don't need this driver if you only want your pc-speaker to beep.
diff --git a/firewire/isight.c b/firewire/isight.c
index cd094ec..d428ffe 100644
--- a/firewire/isight.c
+++ b/firewire/isight.c
@@ -611,7 +611,6 @@ static void isight_card_free(struct snd_card *card)
fw_iso_resources_destroy(&isight->resources);
fw_unit_put(isight->unit);
-fw_device_put(isight->device);
mutex_destroy(&isight->mutex);
}
@@ -644,7 +643,7 @@ static int isight_probe(struct device *unit_dev)
isight->card = card;
mutex_init(&isight->mutex);
isight->unit = fw_unit_get(unit);
-isight->device = fw_device_get(fw_dev);
+isight->device = fw_dev;
isight->audio_base = get_unit_base(unit);
if (!isight->audio_base) {
dev_err(&unit->device, "audio unit base not found\n");
@@ -681,7 +680,6 @@ static int isight_probe(struct device *unit_dev)
err_unit:
fw_unit_put(isight->unit);
-fw_device_put(isight->device);
mutex_destroy(&isight->mutex);
error:
snd_card_free(card);
diff --git a/firewire/speakers.c b/firewire/speakers.c
index cbe6bb9..297244e 100644
--- a/firewire/speakers.c
+++ b/firewire/speakers.c
@@ -656,12 +656,10 @@ static u32 fwspk_read_firmware_version(struct fw_unit *unit)
static void fwspk_card_free(struct snd_card *card)
{
struct fwspk *fwspk = card->private_data;
-struct fw_device *dev = fw_parent_device(fwspk->unit);
amdtp_out_stream_destroy(&fwspk->stream);
cmp_connection_destroy(&fwspk->connection);
fw_unit_put(fwspk->unit);
-fw_device_put(dev);
mutex_destroy(&fwspk->mutex);
}
@@ -718,7 +716,6 @@ static int __devinit fwspk_probe(struct device *unit_dev)
fwspk = card->private_data;
fwspk->card = card;
mutex_init(&fwspk->mutex);
-fw_device_get(fw_dev);
fwspk->unit = fw_unit_get(unit);
fwspk->device_info = fwspk_detect(fw_dev);
if (!fwspk->device_info) {
@@ -767,7 +764,6 @@ err_connection:
cmp_connection_destroy(&fwspk->connection);
err_unit:
fw_unit_put(fwspk->unit);
-fw_device_put(fw_dev);
mutex_destroy(&fwspk->mutex);
error:
snd_card_free(card);
diff --git a/i2c/other/tea575x-tuner.c b/i2c/other/tea575x-tuner.c
index 6b68c82..a63faec 100644
--- a/i2c/other/tea575x-tuner.c
+++ b/i2c/other/tea575x-tuner.c
@@ -25,21 +25,20 @@
#include
#include
#include
-#include
+#include
+#include
#include
+#include
#include
+#include
#include
MODULE_AUTHOR("Jaroslav Kysela ");
MODULE_DESCRIPTION("Routines for control of TEA5757/5759 Philips AM/FM radio tuner chips");
MODULE_LICENSE("GPL");
-static int radio_nr = -1;
-module_param(radio_nr, int, 0);
-
-#define RADIO_VERSION KERNEL_VERSION(0, 0, 2)
-#define FREQ_LO (50UL * 16000)
-#define FREQ_HI(150UL * 16000)
+#define FREQ_LO (76U * 16000)
+#define FREQ_HI(108U * 16000)
/*
* definitions
@@ -90,7 +89,7 @@ static void snd_tea575x_write(struct snd_tea575x *tea, unsigned int val)
tea->ops->set_pins(tea, 0);
}
-static unsigned int snd_tea575x_read(struct snd_tea575x *tea)
+static u32 snd_tea575x_read(struct snd_tea575x *tea)
{
u16 l, rdata;
u32 data = 0;
@@ -121,11 +120,13 @@ static unsigned int snd_tea575x_read(struct snd_tea575x *tea)
return data;
}
-static void snd_tea575x_get_freq(struct snd_tea575x *tea)
+static u32 snd_tea575x_get_freq(struct snd_tea575x *tea)
{
-unsigned long freq;
+u32 freq = snd_tea575x_read(tea) & TEA575X_BIT_FREQ_MASK;
+
+if (freq == 0)
+return freq;
-freq = snd_tea575x_read(tea) & TEA575X_BIT_FREQ_MASK;
/* freq *= 12.5 */
freq *= 125;
freq /= 10;
@@ -135,14 +136,13 @@ static void snd_tea575x_get_freq(struct snd_tea575x *tea)
else
freq -= TEA575X_FMIF;
-tea->freq = freq * 16;/* from kHz */
+return clamp(freq * 16, FREQ_LO, FREQ_HI); /* from kHz */
}
static void snd_tea575x_set_freq(struct snd_tea575x *tea)
{
-unsigned long freq;
+u32 freq = tea->freq;
-freq = clamp(tea->freq, FREQ_LO, FREQ_HI);
freq /= 16;/* to kHz */
/* crystal fixup */
if (tea->tea5759)
@@ -167,12 +167,14 @@ static int vidioc_querycap(struct file *file, void *priv,
{
struct snd_tea575x *tea = video_drvdata(file);
-strlcpy(v->driver, "tea575x-tuner", sizeof(v->driver));
+strlcpy(v->driver, tea->v4l2_dev->name, sizeof(v->driver));
strlcpy(v->card, tea->card, sizeof(v->card));
strlcat(v->card, tea->tea5759 ? " TEA5759" : " TEA5757", sizeof(v->card));
strlcpy(v->bus_info, tea->bus_info, sizeof(v->bus_info));
-v->version = RADIO_VERSION;
-v->capabilities = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
+v->device_caps = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
+if (!tea->cannot_read_data)
+v->device_caps |= V4L2_CAP_HW_FREQ_SEEK;
+v->capabilities = v->device_caps | V4L2_CAP_DEVICE_CAPS;
return 0;
}
@@ -191,18 +193,24 @@ static int vidioc_g_tuner(struct file *file, void *priv,
v->capability = V4L2_TUNER_CAP_LOW | V4L2_TUNER_CAP_STEREO;
v->rangelow = FREQ_LO;
v->rangehigh = FREQ_HI;
-v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_STEREO;
-v->audmode = tea->stereo ? V4L2_TUNER_MODE_STEREO : V4L2_TUNER_MODE_MONO;
+v->rxsubchans = tea->stereo ? V4L2_TUNER_SUB_STEREO : V4L2_TUNER_SUB_MONO;
+v->audmode = (tea->val & TEA575X_BIT_MONO) ?
+V4L2_TUNER_MODE_MONO : V4L2_TUNER_MODE_STEREO;
v->signal = tea->tuned ? 0xffff : 0;
-
return 0;
}
static int vidioc_s_tuner(struct file *file, void *priv,
struct v4l2_tuner *v)
{
-if (v->index > 0)
+struct snd_tea575x *tea = video_drvdata(file);
+
+if (v->index)
return -EINVAL;
+tea->val &= ~TEA575X_BIT_MONO;
+if (v->audmode == V4L2_TUNER_MODE_MONO)
+tea->val |= TEA575X_BIT_MONO;
+snd_tea575x_write(tea, tea->val);
return 0;
}
@@ -214,7 +222,6 @@ static int vidioc_g_frequency(struct file *file, void *priv,
if (f->tuner != 0)
return -EINVAL;
f->type = V4L2_TUNER_RADIO;
-snd_tea575x_get_freq(tea);
f->frequency = tea->freq;
return 0;
}
@@ -227,33 +234,72 @@ static int vidioc_s_frequency(struct file *file, void *priv,
if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
return -EINVAL;
-if (f->frequency < FREQ_LO || f->frequency > FREQ_HI)
-return -EINVAL;
-
-tea->freq = f->frequency;
-
+tea->val &= ~TEA575X_BIT_SEARCH;
+tea->freq = clamp(f->frequency, FREQ_LO, FREQ_HI);
snd_tea575x_set_freq(tea);
-
return 0;
}
-static int vidioc_g_audio(struct file *file, void *priv,
-struct v4l2_audio *a)
+static int vidioc_s_hw_freq_seek(struct file *file, void *fh,
+struct v4l2_hw_freq_seek *a)
{
-if (a->index > 1)
-return -EINVAL;
-
-strcpy(a->name, "Radio");
-a->capability = V4L2_AUDCAP_STEREO;
-return 0;
-}
+struct snd_tea575x *tea = video_drvdata(file);
+unsigned long timeout;
+int i;
-static int vidioc_s_audio(struct file *file, void *priv,
-struct v4l2_audio *a)
-{
-if (a->index != 0)
+if (tea->cannot_read_data)
+return -ENOTTY;
+if (a->tuner || a->wrap_around)
return -EINVAL;
-return 0;
+
+/* clear the frequency, HW will fill it in */
+tea->val &= ~TEA575X_BIT_FREQ_MASK;
+tea->val |= TEA575X_BIT_SEARCH;
+if (a->seek_upward)
+tea->val |= TEA575X_BIT_UPDOWN;
+else
+tea->val &= ~TEA575X_BIT_UPDOWN;
+snd_tea575x_write(tea, tea->val);
+timeout = jiffies + msecs_to_jiffies(10000);
+for (;;) {
+if (time_after(jiffies, timeout))
+break;
+if (schedule_timeout_interruptible(msecs_to_jiffies(10))) {
+/* some signal arrived, stop search */
+tea->val &= ~TEA575X_BIT_SEARCH;
+snd_tea575x_set_freq(tea);
+return -ERESTARTSYS;
+}
+if (!(snd_tea575x_read(tea) & TEA575X_BIT_SEARCH)) {
+u32 freq;
+
+/* Found a frequency, wait until it can be read */
+for (i = 0; i < 100; i++) {
+msleep(10);
+freq = snd_tea575x_get_freq(tea);
+if (freq) /* available */
+break;
+}
+if (freq == 0) /* shouldn't happen */
+break;
+/*
+ * if we moved by less than 50 kHz, or in the wrong
+ * direction, continue seeking
+ */
+if (abs(tea->freq - freq) < 16 * 50 ||
+(a->seek_upward && freq < tea->freq) ||
+(!a->seek_upward && freq > tea->freq)) {
+snd_tea575x_write(tea, tea->val);
+continue;
+}
+tea->freq = freq;
+tea->val &= ~TEA575X_BIT_SEARCH;
+return 0;
+}
+}
+tea->val &= ~TEA575X_BIT_SEARCH;
+snd_tea575x_set_freq(tea);
+return -EAGAIN;
}
static int tea575x_s_ctrl(struct v4l2_ctrl *ctrl)
@@ -273,23 +319,27 @@ static int tea575x_s_ctrl(struct v4l2_ctrl *ctrl)
static const struct v4l2_file_operations tea575x_fops = {
.owner= THIS_MODULE,
.unlocked_ioctl= video_ioctl2,
+.open = v4l2_fh_open,
+.release = v4l2_fh_release,
+.poll = v4l2_ctrl_poll,
};
static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {
.vidioc_querycap = vidioc_querycap,
.vidioc_g_tuner = vidioc_g_tuner,
.vidioc_s_tuner = vidioc_s_tuner,
-.vidioc_g_audio = vidioc_g_audio,
-.vidioc_s_audio = vidioc_s_audio,
.vidioc_g_frequency = vidioc_g_frequency,
.vidioc_s_frequency = vidioc_s_frequency,
+.vidioc_s_hw_freq_seek = vidioc_s_hw_freq_seek,
+.vidioc_log_status = v4l2_ctrl_log_status,
+.vidioc_subscribe_event = v4l2_ctrl_subscribe_event,
+.vidioc_unsubscribe_event = v4l2_event_unsubscribe,
};
-static struct video_device tea575x_radio = {
-.name = "tea575x-tuner",
+static const struct video_device tea575x_radio = {
.fops = &tea575x_fops,
.ioctl_ops = &tea575x_ioctl_ops,
-.release= video_device_release_empty,
+.release = video_device_release_empty,
};
static const struct v4l2_ctrl_ops tea575x_ctrl_ops = {
@@ -303,27 +353,34 @@ int snd_tea575x_init(struct snd_tea575x *tea)
{
int retval;
-tea->mute = 1;
+tea->mute = true;
-snd_tea575x_write(tea, 0x55AA);
-if (snd_tea575x_read(tea) != 0x55AA)
-return -ENODEV;
+/* Not all devices can or know how to read the data back.
+ Such devices can set cannot_read_data to true. */
+if (!tea->cannot_read_data) {
+snd_tea575x_write(tea, 0x55AA);
+if (snd_tea575x_read(tea) != 0x55AA)
+return -ENODEV;
+}
-tea->val = TEA575X_BIT_BAND_FM | TEA575X_BIT_SEARCH_10_40;
+tea->val = TEA575X_BIT_BAND_FM | TEA575X_BIT_SEARCH_5_28;
tea->freq = 90500 * 16;/* 90.5Mhz default */
snd_tea575x_set_freq(tea);
tea->vd = tea575x_radio;
video_set_drvdata(&tea->vd, tea);
mutex_init(&tea->mutex);
+strlcpy(tea->vd.name, tea->v4l2_dev->name, sizeof(tea->vd.name));
tea->vd.lock = &tea->mutex;
+tea->vd.v4l2_dev = tea->v4l2_dev;
+tea->vd.ctrl_handler = &tea->ctrl_handler;
+set_bit(V4L2_FL_USE_FH_PRIO, &tea->vd.flags);
v4l2_ctrl_handler_init(&tea->ctrl_handler, 1);
-tea->vd.ctrl_handler = &tea->ctrl_handler;
v4l2_ctrl_new_std(&tea->ctrl_handler, &tea575x_ctrl_ops, V4L2_CID_AUDIO_MUTE, 0, 1, 1, 1);
retval = tea->ctrl_handler.error;
if (retval) {
-printk(KERN_ERR "tea575x-tuner: can't initialize controls\n");
+v4l2_err(tea->v4l2_dev, "can't initialize controls\n");
v4l2_ctrl_handler_free(&tea->ctrl_handler);
return retval;
}
@@ -338,9 +395,9 @@ int snd_tea575x_init(struct snd_tea575x *tea)
v4l2_ctrl_handler_setup(&tea->ctrl_handler);
-retval = video_register_device(&tea->vd, VFL_TYPE_RADIO, radio_nr);
+retval = video_register_device(&tea->vd, VFL_TYPE_RADIO, tea->radio_nr);
if (retval) {
-printk(KERN_ERR "tea575x-tuner: can't register video device!\n");
+v4l2_err(tea->v4l2_dev, "can't register video device!\n");
v4l2_ctrl_handler_free(&tea->ctrl_handler);
return retval;
}
diff --git a/include/compress_params.h b/include/compress_params.h
index d97d69f..da4a456 100644
--- a/include/compress_params.h
+++ b/include/compress_params.h
@@ -51,6 +51,8 @@
#ifndef __SND_COMPRESS_PARAMS_H
#define __SND_COMPRESS_PARAMS_H
+#include
+
/* AUDIO CODECS SUPPORTED */
#define MAX_NUM_CODECS 32
#define MAX_NUM_CODEC_DESCRIPTORS 32
diff --git a/include/control.h b/include/control.h
index 57815f6..8332e86 100644
--- a/include/control.h
+++ b/include/control.h
@@ -227,6 +227,11 @@ snd_ctl_add_slave_uncached(struct snd_kcontrol *master,
return _snd_ctl_add_slave(master, slave, SND_CTL_SLAVE_NEED_UPDATE);
}
+int snd_ctl_add_vmaster_hook(struct snd_kcontrol *kctl,
+ void (*hook)(void *private_data, int),
+ void *private_data);
+void snd_ctl_sync_vmaster_hook(struct snd_kcontrol *kctl);
+
/*
* Helper functions for jack-detection controls
*/
diff --git a/include/core.h b/include/core.h
index cea1b54..bc05668 100644
--- a/include/core.h
+++ b/include/core.h
@@ -26,7 +26,6 @@
#include /* struct mutex */
#include /* struct rw_semaphore */
#include /* pm_message_t */
-#include
#include
/* number of supported soundcards */
@@ -39,10 +38,10 @@
#define CONFIG_SND_MAJOR116/* standard configuration */
/* forward declarations */
-#ifdef CONFIG_PCI
struct pci_dev;
-#endif
struct module;
+struct device;
+struct device_attribute;
/* device allocation stuff */
@@ -326,6 +325,13 @@ void release_and_free_resource(struct resource *res);
/* --- */
+/* sound printk debug levels */
+enum {
+SND_PR_ALWAYS,
+SND_PR_DEBUG,
+SND_PR_VERBOSE,
+};
+
#if defined(CONFIG_SND_DEBUG) || defined(CONFIG_SND_VERBOSE_PRINTK)
__printf(4, 5)
void __snd_printk(unsigned int level, const char *file, int line,
@@ -355,6 +361,8 @@ void __snd_printk(unsigned int level, const char *file, int line,
*/
#define snd_printd(fmt, args...) \
__snd_printk(1, __FILE__, __LINE__, fmt, ##args)
+#define _snd_printd(level, fmt, args...) \
+__snd_printk(level, __FILE__, __LINE__, fmt, ##args)
/**
* snd_BUG - give a BUG warning message and stack trace
@@ -384,6 +392,7 @@ void __snd_printk(unsigned int level, const char *file, int line,
#else /* !CONFIG_SND_DEBUG */
#define snd_printd(fmt, args...)do { } while (0)
+#define _snd_printd(level, fmt, args...) do { } while (0)
#define snd_BUG()do { } while (0)
static inline int __snd_bug_on(int cond)
{
diff --git a/include/pcm.h b/include/pcm.h
index 1d58d79..0d11128 100644
--- a/include/pcm.h
+++ b/include/pcm.h
@@ -264,7 +264,7 @@ struct snd_pcm_hw_constraint_ratdens {
struct snd_pcm_hw_constraint_list {
unsigned int count;
-unsigned int *list;
+const unsigned int *list;
unsigned int mask;
};
@@ -785,7 +785,8 @@ void snd_interval_muldivk(const struct snd_interval *a, const struct snd_interva
unsigned int k, struct snd_interval *c);
void snd_interval_mulkdiv(const struct snd_interval *a, unsigned int k,
const struct snd_interval *b, struct snd_interval *c);
-int snd_interval_list(struct snd_interval *i, unsigned int count, unsigned int *list, unsigned int mask);
+int snd_interval_list(struct snd_interval *i, unsigned int count,
+ const unsigned int *list, unsigned int mask);
int snd_interval_ratnum(struct snd_interval *i,
unsigned int rats_count, struct snd_ratnum *rats,
unsigned int *nump, unsigned int *denp);
diff --git a/include/soc-dapm.h b/include/soc-dapm.h
index e46107f..8da3c24 100644
--- a/include/soc-dapm.h
+++ b/include/soc-dapm.h
@@ -13,10 +13,11 @@
#ifndef __LINUX_SND_SOC_DAPM_H
#define __LINUX_SND_SOC_DAPM_H
-#include
#include
#include
+struct device;
+
/* widget has no PM register bit */
#define SND_SOC_NOPM-1
diff --git a/include/soc.h b/include/soc.h
index 82bd773..2ebf787 100644
--- a/include/soc.h
+++ b/include/soc.h
@@ -718,6 +718,7 @@ struct snd_soc_platform {
int id;
struct device *dev;
struct snd_soc_platform_driver *driver;
+struct mutex mutex;
unsigned int suspended:1; /* platform is suspended */
unsigned int probed:1;
diff --git a/include/tea575x-tuner.h b/include/tea575x-tuner.h
index 726e947..ec3f910 100644
--- a/include/tea575x-tuner.h
+++ b/include/tea575x-tuner.h
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#define TEA575X_FMIF10700
@@ -42,13 +43,16 @@ struct snd_tea575x_ops {
};
struct snd_tea575x {
+struct v4l2_device *v4l2_dev;
struct video_device vd;/* video device */
+int radio_nr;/* radio_nr */
bool tea5759;/* 5759 chip is present */
+bool cannot_read_data;/* Device cannot read the data pin */
bool mute;/* Device is muted? */
bool stereo;/* receiving stereo */
bool tuned;/* tuned to a station */
unsigned int val;/* hw value */
-unsigned long freq;/* frequency */
+u32 freq;/* frequency */
struct mutex mutex;
struct snd_tea575x_ops *ops;
void *private_data;
diff --git a/isa/opti9xx/opti92x-ad1848.c b/isa/opti9xx/opti92x-ad1848.c
index babaedd..d7ccf28 100644
--- a/isa/opti9xx/opti92x-ad1848.c
+++ b/isa/opti9xx/opti92x-ad1848.c
@@ -65,7 +65,7 @@ static int index = SNDRV_DEFAULT_IDX1;/* Index 0-MAX */
static char *id = SNDRV_DEFAULT_STR1;/* ID for this card */
//static bool enable = SNDRV_DEFAULT_ENABLE1;/* Enable this card */
#ifdef CONFIG_PNP
-static int isapnp = 1;/* Enable ISA PnP detection */
+static bool isapnp = true;/* Enable ISA PnP detection */
#endif
static long port = SNDRV_DEFAULT_PORT1; /* 0x530,0xe80,0xf40,0x604 */
static long mpu_port = SNDRV_DEFAULT_PORT1;/* 0x300,0x310,0x320,0x330 */
diff --git a/isa/sscape.c b/isa/sscape.c
index b4a6aa9..8490f59 100644
--- a/isa/sscape.c
+++ b/isa/sscape.c
@@ -1019,13 +1019,15 @@ static int __devinit create_sscape(int dev, struct snd_card *card)
irq_cfg = get_irq_config(sscape->type, irq[dev]);
if (irq_cfg == INVALID_IRQ) {
snd_printk(KERN_ERR "sscape: Invalid IRQ %d\n", irq[dev]);
-return -ENXIO;
+err = -ENXIO;
+goto _release_dma;
}
mpu_irq_cfg = get_irq_config(sscape->type, mpu_irq[dev]);
if (mpu_irq_cfg == INVALID_IRQ) {
snd_printk(KERN_ERR "sscape: Invalid IRQ %d\n", mpu_irq[dev]);
-return -ENXIO;
+err = -ENXIO;
+goto _release_dma;
}
/*
diff --git a/last.c b/last.c
index bdd0857..7ffc182 100644
--- a/last.c
+++ b/last.c
@@ -38,4 +38,4 @@ static int __init alsa_sound_last_init(void)
return 0;
}
-__initcall(alsa_sound_last_init);
+late_initcall_sync(alsa_sound_last_init);
diff --git a/pci/Kconfig b/pci/Kconfig
index 8816804..5ca0939 100644
--- a/pci/Kconfig
+++ b/pci/Kconfig
@@ -2,8 +2,8 @@
config SND_TEA575X
tristate
-depends on SND_FM801_TEA575X_BOOL || SND_ES1968_RADIO || RADIO_SF16FMR2
-default SND_FM801 || SND_ES1968 || RADIO_SF16FMR2
+depends on SND_FM801_TEA575X_BOOL || SND_ES1968_RADIO || RADIO_SF16FMR2 || RADIO_MAXIRADIO
+default SND_FM801 || SND_ES1968 || RADIO_SF16FMR2 || RADIO_MAXIRADIO
menuconfig SND_PCI
bool "PCI sound devices"
diff --git a/pci/asihpi/hpi_internal.h b/pci/asihpi/hpi_internal.h
index 4cc315d..bc86cb7 100644
--- a/pci/asihpi/hpi_internal.h
+++ b/pci/asihpi/hpi_internal.h
@@ -1,7 +1,7 @@
/******************************************************************************
AudioScience HPI driver
- Copyright (C) 1997-2011 AudioScience Inc.
+ Copyright (C) 1997-2012 AudioScience Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as
diff --git a/pci/asihpi/hpios.c b/pci/asihpi/hpios.c
index 2d7d1c2..5ef4fe9 100644
--- a/pci/asihpi/hpios.c
+++ b/pci/asihpi/hpios.c
@@ -1,7 +1,7 @@
/******************************************************************************
AudioScience HPI driver
- Copyright (C) 1997-2011 AudioScience Inc.
+ Copyright (C) 1997-2012 AudioScience Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as
@@ -39,9 +39,9 @@ void hpios_delay_micro_seconds(u32 num_micro_sec)
}
-/** Allocated an area of locked memory for bus master DMA operations.
+/** Allocate an area of locked memory for bus master DMA operations.
-On error, return -ENOMEM, and *pMemArea.size = 0
+If allocation fails, return 1, and *pMemArea.size = 0
*/
u16 hpios_locked_mem_alloc(struct consistent_dma_area *p_mem_area, u32 size,
struct pci_dev *pdev)
@@ -62,7 +62,7 @@ u16 hpios_locked_mem_alloc(struct consistent_dma_area *p_mem_area, u32 size,
HPI_DEBUG_LOG(WARNING,
"failed to allocate %d bytes locked memory\n", size);
p_mem_area->size = 0;
-return -ENOMEM;
+return 1;
}
}
diff --git a/pci/asihpi/hpios.h b/pci/asihpi/hpios.h
index c5cef11..d3fbd0d 100644
--- a/pci/asihpi/hpios.h
+++ b/pci/asihpi/hpios.h
@@ -30,7 +30,6 @@ HPI Operating System Specific macros for Linux Kernel driver
#define HPI_BUILD_KERNEL_MODE
#include
-#include
#include
#include
#include
diff --git a/pci/au88x0/au88x0_core.c b/pci/au88x0/au88x0_core.c
index 1181c5e..525f881 100644
--- a/pci/au88x0/au88x0_core.c
+++ b/pci/au88x0/au88x0_core.c
@@ -2477,7 +2477,7 @@ static irqreturn_t vortex_interrupt(int irq, void *dev_id)
hwread(vortex->mmio, VORTEX_IRQ_STAT);
handled = 1;
}
-if (source & IRQ_MIDI) {
+if ((source & IRQ_MIDI) && vortex->rmidi) {
snd_mpu401_uart_interrupt(vortex->irq,
vortex->rmidi->private_data);
handled = 1;
diff --git a/pci/aw2/aw2-saa7146.c b/pci/aw2/aw2-saa7146.c
index 8afd8b5..4439636 100644
--- a/pci/aw2/aw2-saa7146.c
+++ b/pci/aw2/aw2-saa7146.c
@@ -27,7 +27,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/pci/es1968.c b/pci/es1968.c
index cb557c6..a8faae1 100644
--- a/pci/es1968.c
+++ b/pci/es1968.c
@@ -142,6 +142,7 @@ static int enable_mpu[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 2};
#ifdef SUPPORT_JOYSTICK
static bool joystick[SNDRV_CARDS];
#endif
+static int radio_nr[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = -1};
module_param_array(index, int, NULL, 0444);
MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
@@ -165,6 +166,9 @@ MODULE_PARM_DESC(enable_mpu, "Enable MPU401. (0 = off, 1 = on, 2 = auto)");
module_param_array(joystick, bool, NULL, 0444);
MODULE_PARM_DESC(joystick, "Enable joystick.");
#endif
+module_param_array(radio_nr, int, NULL, 0444);
+MODULE_PARM_DESC(radio_nr, "Radio device numbers");
+
#define NR_APUS64
@@ -558,6 +562,7 @@ struct es1968 {
struct work_struct hwvol_work;
#ifdef CONFIG_SND_ES1968_RADIO
+struct v4l2_device v4l2_dev;
struct snd_tea575x tea;
#endif
};
@@ -2613,6 +2618,7 @@ static int snd_es1968_free(struct es1968 *chip)
#ifdef CONFIG_SND_ES1968_RADIO
snd_tea575x_exit(&chip->tea);
+v4l2_device_unregister(&chip->v4l2_dev);
#endif
if (chip->irq >= 0)
@@ -2655,6 +2661,7 @@ static int __devinit snd_es1968_create(struct snd_card *card,
int capt_streams,
int chip_type,
int do_pm,
+ int radio_nr,
struct es1968 **chip_ret)
{
static struct snd_device_ops ops = {
@@ -2751,7 +2758,14 @@ static int __devinit snd_es1968_create(struct snd_card *card,
snd_card_set_dev(card, &pci->dev);
#ifdef CONFIG_SND_ES1968_RADIO
+err = v4l2_device_register(&pci->dev, &chip->v4l2_dev);
+if (err < 0) {
+snd_es1968_free(chip);
+return err;
+}
+chip->tea.v4l2_dev = &chip->v4l2_dev;
chip->tea.private_data = chip;
+chip->tea.radio_nr = radio_nr;
chip->tea.ops = &snd_es1968_tea_ops;
strlcpy(chip->tea.card, "SF64-PCE2", sizeof(chip->tea.card));
sprintf(chip->tea.bus_info, "PCI:%s", pci_name(pci));
@@ -2797,6 +2811,7 @@ static int __devinit snd_es1968_probe(struct pci_dev *pci,
pcm_substreams_c[dev],
pci_id->driver_data,
use_pm[dev],
+ radio_nr[dev],
&chip)) < 0) {
snd_card_free(card);
return err;
diff --git a/pci/fm801.c b/pci/fm801.c
index 9597ef1..a416ea8 100644
--- a/pci/fm801.c
+++ b/pci/fm801.c
@@ -58,6 +58,7 @@ static bool enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;/* Enable this card
* High 16-bits are video (radio) device number + 1
*/
static int tea575x_tuner[SNDRV_CARDS];
+static int radio_nr[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = -1};
module_param_array(index, int, NULL, 0444);
MODULE_PARM_DESC(index, "Index value for the FM801 soundcard.");
@@ -67,6 +68,9 @@ module_param_array(enable, bool, NULL, 0444);
MODULE_PARM_DESC(enable, "Enable FM801 soundcard.");
module_param_array(tea575x_tuner, int, NULL, 0444);
MODULE_PARM_DESC(tea575x_tuner, "TEA575x tuner access method (0 = auto, 1 = SF256-PCS, 2=SF256-PCP, 3=SF64-PCR, 8=disable, +16=tuner-only).");
+module_param_array(radio_nr, int, NULL, 0444);
+MODULE_PARM_DESC(radio_nr, "Radio device numbers");
+
#define TUNER_DISABLED(1<<3)
#define TUNER_ONLY(1<<4)
@@ -197,6 +201,7 @@ struct fm801 {
struct snd_info_entry *proc_entry;
#ifdef CONFIG_SND_FM801_TEA575X_BOOL
+struct v4l2_device v4l2_dev;
struct snd_tea575x tea;
#endif
@@ -1154,8 +1159,10 @@ static int snd_fm801_free(struct fm801 *chip)
__end_hw:
#ifdef CONFIG_SND_FM801_TEA575X_BOOL
-if (!(chip->tea575x_tuner & TUNER_DISABLED))
+if (!(chip->tea575x_tuner & TUNER_DISABLED)) {
snd_tea575x_exit(&chip->tea);
+v4l2_device_unregister(&chip->v4l2_dev);
+}
#endif
if (chip->irq >= 0)
free_irq(chip->irq, chip);
@@ -1175,6 +1182,7 @@ static int snd_fm801_dev_free(struct snd_device *device)
static int __devinit snd_fm801_create(struct snd_card *card,
struct pci_dev * pci,
int tea575x_tuner,
+ int radio_nr,
struct fm801 ** rchip)
{
struct fm801 *chip;
@@ -1234,6 +1242,13 @@ static int __devinit snd_fm801_create(struct snd_card *card,
snd_card_set_dev(card, &pci->dev);
#ifdef CONFIG_SND_FM801_TEA575X_BOOL
+err = v4l2_device_register(&pci->dev, &chip->v4l2_dev);
+if (err < 0) {
+snd_fm801_free(chip);
+return err;
+}
+chip->tea.v4l2_dev = &chip->v4l2_dev;
+chip->tea.radio_nr = radio_nr;
chip->tea.private_data = chip;
chip->tea.ops = &snd_fm801_tea_ops;
sprintf(chip->tea.bus_info, "PCI:%s", pci_name(pci));
@@ -1241,6 +1256,7 @@ static int __devinit snd_fm801_create(struct snd_card *card,
(tea575x_tuner & TUNER_TYPE_MASK) < 4) {
if (snd_tea575x_init(&chip->tea)) {
snd_printk(KERN_ERR "TEA575x radio not found\n");
+snd_fm801_free(chip);
return -ENODEV;
}
} else if ((tea575x_tuner & TUNER_TYPE_MASK) == 0) {
@@ -1287,7 +1303,7 @@ static int __devinit snd_card_fm801_probe(struct pci_dev *pci,
err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card);
if (err < 0)
return err;
-if ((err = snd_fm801_create(card, pci, tea575x_tuner[dev], &chip)) < 0) {
+if ((err = snd_fm801_create(card, pci, tea575x_tuner[dev], radio_nr[dev], &chip)) < 0) {
snd_card_free(card);
return err;
}
diff --git a/pci/hda/hda_codec.c b/pci/hda/hda_codec.c
index 0c0ac0e..7a8fcc4 100644
--- a/pci/hda/hda_codec.c
+++ b/pci/hda/hda_codec.c
@@ -2399,6 +2399,7 @@ static int init_slave_unmute(void *data, struct snd_kcontrol *slave)
* @slaves: slave control names (optional)
* @suffix: suffix string to each slave name (optional)
* @init_slave_vol: initialize slaves to unmute/0dB
+ * @ctl_ret: store the vmaster kcontrol in return
*
* Create a virtual master control with the given name. The TLV data
* must be either NULL or a valid data.
@@ -2411,11 +2412,15 @@ static int init_slave_unmute(void *data, struct snd_kcontrol *slave)
*/
int __snd_hda_add_vmaster(struct hda_codec *codec, char *name,
unsigned int *tlv, const char * const *slaves,
-const char *suffix, bool init_slave_vol)
+ const char *suffix, bool init_slave_vol,
+ struct snd_kcontrol **ctl_ret)
{
struct snd_kcontrol *kctl;
int err;
+if (ctl_ret)
+*ctl_ret = NULL;
+
err = map_slaves(codec, slaves, suffix, check_slave_present, NULL);
if (err != 1) {
snd_printdd("No slave found for %s\n", name);
@@ -2439,10 +2444,109 @@ int __snd_hda_add_vmaster(struct hda_codec *codec, char *name,
map_slaves(codec, slaves, suffix,
tlv ? init_slave_0dB : init_slave_unmute, kctl);
+if (ctl_ret)
+*ctl_ret = kctl;
return 0;
}
EXPORT_SYMBOL_HDA(__snd_hda_add_vmaster);
+/*
+ * mute-LED control using vmaster
+ */
+static int vmaster_mute_mode_info(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_info *uinfo)
+{
+static const char * const texts[] = {
+"Off", "On", "Follow Master"
+};
+unsigned int index;
+
+uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
+uinfo->count = 1;
+uinfo->value.enumerated.items = 3;
+index = uinfo->value.enumerated.item;
+if (index >= 3)
+index = 2;
+strcpy(uinfo->value.enumerated.name, texts[index]);
+return 0;
+}
+
+static int vmaster_mute_mode_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+struct hda_vmaster_mute_hook *hook = snd_kcontrol_chip(kcontrol);
+ucontrol->value.enumerated.item[0] = hook->mute_mode;
+return 0;
+}
+
+static int vmaster_mute_mode_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+struct hda_vmaster_mute_hook *hook = snd_kcontrol_chip(kcontrol);
+unsigned int old_mode = hook->mute_mode;
+
+hook->mute_mode = ucontrol->value.enumerated.item[0];
+if (hook->mute_mode > HDA_VMUTE_FOLLOW_MASTER)
+hook->mute_mode = HDA_VMUTE_FOLLOW_MASTER;
+if (old_mode == hook->mute_mode)
+return 0;
+snd_hda_sync_vmaster_hook(hook);
+return 1;
+}
+
+static struct snd_kcontrol_new vmaster_mute_mode = {
+.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+.name = "Mute-LED Mode",
+.info = vmaster_mute_mode_info,
+.get = vmaster_mute_mode_get,
+.put = vmaster_mute_mode_put,
+};
+
+/*
+ * Add a mute-LED hook with the given vmaster switch kctl
+ * "Mute-LED Mode" control is automatically created and associated with
+ * the given hook.
+ */
+int snd_hda_add_vmaster_hook(struct hda_codec *codec,
+ struct hda_vmaster_mute_hook *hook,
+ bool expose_enum_ctl)
+{
+struct snd_kcontrol *kctl;
+
+if (!hook->hook || !hook->sw_kctl)
+return 0;
+snd_ctl_add_vmaster_hook(hook->sw_kctl, hook->hook, codec);
+hook->codec = codec;
+hook->mute_mode = HDA_VMUTE_FOLLOW_MASTER;
+if (!expose_enum_ctl)
+return 0;
+kctl = snd_ctl_new1(&vmaster_mute_mode, hook);
+if (!kctl)
+return -ENOMEM;
+return snd_hda_ctl_add(codec, 0, kctl);
+}
+EXPORT_SYMBOL_HDA(snd_hda_add_vmaster_hook);
+
+/*
+ * Call the hook with the current value for synchronization
+ * Should be called in init callback
+ */
+void snd_hda_sync_vmaster_hook(struct hda_vmaster_mute_hook *hook)
+{
+if (!hook->hook || !hook->codec)
+return;
+switch (hook->mute_mode) {
+case HDA_VMUTE_FOLLOW_MASTER:
+snd_ctl_sync_vmaster_hook(hook->sw_kctl);
+break;
+default:
+hook->hook(hook->codec, hook->mute_mode);
+break;
+}
+}
+EXPORT_SYMBOL_HDA(snd_hda_sync_vmaster_hook);
+
+
/**
* snd_hda_mixer_amp_switch_info - Info callback for a standard AMP mixer switch
*
diff --git a/pci/hda/hda_codec.h b/pci/hda/hda_codec.h
index 9a9f372..56b4f74 100644
--- a/pci/hda/hda_codec.h
+++ b/pci/hda/hda_codec.h
@@ -851,6 +851,9 @@ struct hda_codec {
unsigned int pin_amp_workaround:1; /* pin out-amp takes index
* (e.g. Conexant codecs)
*/
+unsigned int single_adc_amp:1; /* adc in-amp takes no index
+* (e.g. CX20549 codec)
+*/
unsigned int no_sticky_stream:1; /* no sticky-PCM stream assignment */
unsigned int pins_shutup:1;/* pins are shut up */
unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */
diff --git a/pci/hda/hda_eld.c b/pci/hda/hda_eld.c
index c1da422..4c054f4 100644
--- a/pci/hda/hda_eld.c
+++ b/pci/hda/hda_eld.c
@@ -385,8 +385,8 @@ error:
static void hdmi_print_pcm_rates(int pcm, char *buf, int buflen)
{
static unsigned int alsa_rates[] = {
-5512, 8000, 11025, 16000, 22050, 32000, 44100, 48000, 88200,
------- End of patch
hooks/update
---
Git Source Code Management System
hooks/update refs/heads/master \
d03aee24a6627de642c4839a0014b22ea106ddd3 \
1904ae448061e9edc6dcb26b441ab60c294c5e45