Dylan Reid [Fri, 28 Feb 2014 23:41:23 +0000 (15:41 -0800)]
ALSA: hda - Pull pages allocation to hda_controller
Pull allocation from first_init to a new function in hda_controller.c.
Short term this will allow the dsp loader to be moved as well. In
later commits it will allow the same allocation to be used by the
platform hda driver.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:22 +0000 (15:41 -0800)]
ALSA: hda - Add hda_controller.c and move pcm ops from hda_intel
Pull the pcm_ops and the functions they use into a new hda_controller
file. This is done to allow for other hda implementations besides PCI
to use the same ops. The hda_controller file will house functionality
related to HDA but independent of the bus used to talk to the
controller.
This currently shares dsp locking across the two files. This will be
remedied in a following commit.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:21 +0000 (15:41 -0800)]
ALSA: hda - Add pcm_mmap_prepare op.
Adding this op allows the X86 specific mmap operation to help in
hda_intel without needing a CONFIG_X86 in future non-PCI hda drivers.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:20 +0000 (15:41 -0800)]
ALSA: hda - Move snd page allocation to ops
Break out the allocation of pages for DMA and PCM buffers to ops in
the chip structure. This is done to allow for architecture specific
work-arounds to be added. Currently mark_pages_wc is used by
hda_intel. This avoids needing to move that x86-specific code to a
common area shared with hda platform drivers.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:19 +0000 (15:41 -0800)]
ALSA: hda - Pass max_slots and power_save to codec_create
Passing the max slots and power save arguments to codec_create will
allow for its reuse by an hda_platform driver. It makes the function
independent of the module params in hda_intel and ready to move to
hda_shared in a following commit.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:18 +0000 (15:41 -0800)]
ALSA: hda - Add jackpoll_ms to struct azx
Keeping a pointer to the jackpoll_ms array in the chip will allow
azx_codec_create to be shared between hda_intel and hda_platform
drivers. Also modify get_jackpoll_ms to make the jackpoll_ms member
optional, this way a platform driver can leave it out if it's not
needed.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:17 +0000 (15:41 -0800)]
ALSA: hda - remove unused clear of STATESTS
Although the code was updated last year the "#if 0" surrounding it
dates back to the original git commit. The function will be moved to
a new file, no need to carry the dead code.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:16 +0000 (15:41 -0800)]
ALSA: hda - Add function pointer for disabling MSI
This is a PCI-only feature, but adding a callback for it in the chip
structure breaks the PCI dependency in the RIRB code allowing the
logic there to be re-used by the platform HDA driver.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:15 +0000 (15:41 -0800)]
ALSA: hda - Use device pointer from the card instead of pci
This removes calls to get the device via PCI from other parts of the
code that will be able to be re-used by the platform driver.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:14 +0000 (15:41 -0800)]
ALSA: hda - Keep pointer to bdl_pos_fix in chip struct
This will allow for a platform hda driver to use it as well. It
removes the dependency on the module param from hda_intel, which will
allow for azx_setup_periods to be shared.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:13 +0000 (15:41 -0800)]
ALSA: hda - Allow different ops to read/write registers
The forthcoming platform hda driver needs to override the way
registers are read and written. In preparation for that, introduce a
reg_ops struct that can be implemented differently by the new driver.
Change the existing macros to use the new structure, and move them to
hda_priv.h where they will be accessible to both PCI and platform
drivers.
Start with register access, but later commits will add more ops that
differ between PCI and platform.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dylan Reid [Fri, 28 Feb 2014 23:41:12 +0000 (15:41 -0800)]
ALSA: hda - Move some definitions to new hda_priv.h
Later commits adding support for hda platform drivers will want to use
the same defines and structures. Put them in a place reachable by both
hda_intel and the new platform driver.
This is a mostly a direct copy with a few whitespace and comment
changes to make checkpatch happy.
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
David Henningsson [Fri, 28 Feb 2014 06:56:58 +0000 (07:56 +0100)]
ALSA: hda - Fix CORB reset to follow specification
According to the HDA spec, we must write 1 to bit 15 on a CORBRP
reset, read back 1, then write 0, then read back 0. This must be
done while the DMA is not running.
We accidentaly ended up writing back the 0 by using a writel
instead of a writew to CORBWP.
This caused occasional controller failure on Bay Trail hardware.
[replaced error messages with dev_err() by tiwai]
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Fri, 28 Feb 2014 12:42:09 +0000 (13:42 +0100)]
ALSA: hda - Fix registration of beep input device
The beep input device is registered via input_register_device(), but
this is called in snd_hda_attach_beep_device() where the sound devices
aren't registered yet. This leads to the binding to non-existing
object, thus results in failure. And, even if the binding worked
(against the PCI object), it's still racy; the input device appears
before the sound objects.
For fixing this, register the input device properly at dev_register
ops of the codec object it's bound with. Also, call
snd_hda_detach_beep_device() at dev_disconnection so that it's
detached at the right timing. As a bonus, since it's called in the
codec's ops, we can get rid of the further call from the other codec
drivers.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Fri, 28 Feb 2014 10:54:43 +0000 (11:54 +0100)]
Merge branch 'topic/cvt-dev-prints' into for-next
This merges the bunch of changes over pci and usb sound drivers to
convert to dev_err() and co.
Takashi Iwai [Thu, 27 Feb 2014 15:24:53 +0000 (16:24 +0100)]
ALSA: hda/sigmatel - Allow auto-switching for dock line-in of HP laptops
Many HP laptops with STAC codecs have a docking station port and BIOS
sets the pins for the input on the dock as a line in. Because the
generic parser doesn't handle a line in pin as auto-switchable, this
resulted in the manual capture source selection on these laptops.
However, from the usability POV, the automatic switching is easier.
This patch adds the line_in_auto_switch hint in the fixup function for
these laptops. Even if no dock port is present, this should be
harmless as the generic parser allows the auto-switching only in a
limited situation (all three pins are located in different
positions).
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 27 Feb 2014 15:00:17 +0000 (16:00 +0100)]
ALSA: Move EXPORT_SYMBOL() in appropriate places
Just a cleanup to follow the standard coding style.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 27 Feb 2014 08:33:00 +0000 (09:33 +0100)]
ALSA: hda - Make codec object as a parent for input beep devices
Instead of the controller, the new codec object is assigned as a
parent for the hd-audio beep input devices, just like already done for
PCM and hwdep.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 14:51:04 +0000 (15:51 +0100)]
ALSA: 6fire: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 12:02:17 +0000 (13:02 +0100)]
ALSA: usb-audio: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
As there are too deep indirections (e.g. ep->chip->dev->dev),
a few new local macros, usb_audio_err() & co, are introduced.
Also, the device numbers in some messages are dropped, as they are
shown in the prefix automatically.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 11:18:27 +0000 (12:18 +0100)]
ALSA: ymfpci: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 11:13:57 +0000 (12:13 +0100)]
ALSA: vx222: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 11:11:29 +0000 (12:11 +0100)]
ALSA: trident: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 11:06:24 +0000 (12:06 +0100)]
ALSA: rme9652: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 11:05:40 +0000 (12:05 +0100)]
ALSA: hdspm: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 11:05:11 +0000 (12:05 +0100)]
ALSA: hdsp: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 26 Feb 2014 10:47:55 +0000 (11:47 +0100)]
ALSA: pcxhr: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 17:00:26 +0000 (18:00 +0100)]
ALSA: oxygen: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 16:57:42 +0000 (17:57 +0100)]
ALSA: nm256: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 16:51:46 +0000 (17:51 +0100)]
ALSA: mixart: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 16:32:49 +0000 (17:32 +0100)]
ALSA: lx6464es: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 16:23:57 +0000 (17:23 +0100)]
ALSA: lola: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 16:16:16 +0000 (17:16 +0100)]
ALSA: ice17xx: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 16:02:09 +0000 (17:02 +0100)]
ALSA: emu10k1: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 16:01:34 +0000 (17:01 +0100)]
ALSA: emu10k1x: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 15:43:02 +0000 (16:43 +0100)]
ALSA: echoaudio: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 15:36:51 +0000 (16:36 +0100)]
ALSA: cs46xx: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 15:10:25 +0000 (16:10 +0100)]
ALSA: cs5535audio: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 15:04:05 +0000 (16:04 +0100)]
ALSA: ca0106: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
A couple of prints are difficult to convert with dev_err() so they are
converted to pr_err() at least.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 14:54:30 +0000 (15:54 +0100)]
ALSA: aw2: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
A couple of prints are difficult to convert with dev_err() so they are
converted to pr_err() at least.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 14:48:50 +0000 (15:48 +0100)]
ALSA: ali5451: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Some debug prints are replaced with dev_dbg(), too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 14:37:50 +0000 (15:37 +0100)]
ALSA: ac97: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 14:25:50 +0000 (15:25 +0100)]
ALSA: via82xx_modem: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 14:21:56 +0000 (15:21 +0100)]
ALSA: via82xx: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 14:16:04 +0000 (15:16 +0100)]
ALSA: sonicvibes: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
The debug prints are also reformatted to suit with dev_dbg().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 14:03:18 +0000 (15:03 +0100)]
ALSA: rme96: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:57:03 +0000 (14:57 +0100)]
ALSA: rme32: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:43:41 +0000 (14:43 +0100)]
ALSA: maestro3: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:40:45 +0000 (14:40 +0100)]
ALSA: intel8x0m: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:37:14 +0000 (14:37 +0100)]
ALSA: intel8x0: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:31:35 +0000 (14:31 +0100)]
ALSA: fm801: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:29:55 +0000 (14:29 +0100)]
ALSA: es1968: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:21:18 +0000 (14:21 +0100)]
ALSA: es1938: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Some debug prints are replaced with dev_dbg(), too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:16:53 +0000 (14:16 +0100)]
ALSA: ens137x: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:13:16 +0000 (14:13 +0100)]
ALSA: cs5530: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:11:14 +0000 (14:11 +0100)]
ALSA: cs4281: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:39:30 +0000 (12:39 +0100)]
ALSA: cmipci: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Some commented debug prints are also enabled as dev_dbg().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:08:22 +0000 (14:08 +0100)]
ALSA: bt87x: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 13:04:46 +0000 (14:04 +0100)]
ALSA: azt3328: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
All debug print macros have been replaced with dev_dbg(), too.
Also, added the missing definition of snd_azf3328_ctrl_inw().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:59:05 +0000 (12:59 +0100)]
ALSA: azt3328: Remove function debug prints
We have a better infrastructure in general, so let's reduce the
home-baked debug macros.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:56:40 +0000 (12:56 +0100)]
ALSA: atiixp-modem: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:54:24 +0000 (12:54 +0100)]
ALSA: atiixp: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:51:05 +0000 (12:51 +0100)]
ALSA: als4000: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:48:27 +0000 (12:48 +0100)]
ALSA: als300: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Also, correct the printk level appropriately.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:46:10 +0000 (12:46 +0100)]
ALSA: als300: Remove function debug prints
We have a better infrastructure in general, so let's reduce the
home-baked debug macros.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:43:13 +0000 (12:43 +0100)]
ALSA: ad1889: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 14:01:15 +0000 (15:01 +0100)]
ALSA: rme96: Convert to the new pm_ops
This driver slipped from the last rewrite. Just convert to the new
standard pm ops.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:21:03 +0000 (12:21 +0100)]
ALSA: hda - Replace with standard printk
Use dev_err() and co for messages from HD-audio controller and codec
drivers. The codec drivers are mostly bound with codec objects, so
some helper macros, codec_err(), codec_info(), etc, are provided.
They merely wrap the corresponding dev_xxx().
There are a few places still calling snd_printk() and its variants
as they are called without the codec or device context.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 10:54:06 +0000 (11:54 +0100)]
ALSA: hda - Enable sysfs attributes without CONFIG_SND_HDA_RECONFIG
Some sysfs attributes like init_pin_configs or vendor_name are really
basic and should be available no matter whether the codec driver is
re-configurable or not. Put them out of #ifdef
CONFIG_SND_HDA_RECONFIG and allow the read-only accesses.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 09:38:13 +0000 (10:38 +0100)]
ALSA: hda - Add sysfs to codec object, too
We have currently sysfs attributes for each hwdep, but basically these
should belong to the codec itself, per se. Let's add them to the
codec object while keeping them for hwdep as is for compatibility.
While we are at it, split the sysfs-related stuff into a separate
source file, hda_sysfs.c, and keep only the stuff necessary for hwdep
in hda_hwdep.c.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 06:53:47 +0000 (07:53 +0100)]
ALSA: hda - Create own device struct for each codec
As the HD-audio is treated individually in each codec driver, it's
more convenient to assign an own struct device to each codec object.
Then we'll be able to use dev_err() more easily for each codec, for
example.
For achieving it, this patch just creates an object "hdaudioCxDy".
It belongs to sound class instead of creating a new bus, just for
simplicity, at this stage. No pm ops is implemented in the device
struct level but currently it's merely a container. The PCM and hwdep
devices are now children of this codec device.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 19 Feb 2014 10:41:09 +0000 (11:41 +0100)]
ALSA: hda - Manage each codec instance individually
Now each snd_hda_codec instance is managed via the device chain, the
registration and release are done by its callback instead of calling
from bus.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 4 Feb 2014 10:36:11 +0000 (11:36 +0100)]
ALSA: Clean up snd_device_*() codes
A few code cleanups and optimizations. In addition, drop
snd_device_disconnect() that isn't used at all, and drop the return
values from snd_device_free*().
Another slight difference by this change is that now the device state
will become always SNDRV_DEV_REGISTERED no matter whether dev_register
ops is present or not. It's for better consistency. There should be
no impact for the current tree, as the state isn't checked.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 29 Jan 2014 14:53:35 +0000 (15:53 +0100)]
ALSA: Use priority list for managing device list
Basically, the device type specifies the priority of the device to be
registered / freed, too. However, the priority value isn't well
utilized but only it's checked as a group. This results in
inconsistent register and free order (where each of them should be in
reversed direction).
This patch simplifies the device list management code by simply
inserting a list entry at creation time in an incremental order for
the priority value. Since we can just follow the link for register,
disconnect and free calls, we don't have to specify the group; so the
whole enum definitions are also simplified as well.
The visible change to outside is that the priorities of some object
types are revisited. For example, now the SNDRV_DEV_LOWLEVEL object
is registered before others (control, PCM, etc) and, in return,
released after others. Similarly, SNDRV_DEV_CODEC is in a lower
priority than SNDRV_DEV_BUS for ensuring the dependency.
Also, the unused SNDRV_DEV_TOPLEVEL, SNDRV_DEV_LOWLEVEL_PRE and
SNDRV_DEV_LOWLEVEL_NORMAL are removed as a cleanup.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 07:05:21 +0000 (08:05 +0100)]
ALSA: hwdep: Allow to assign the given parent
Just like PCM, allow hwdep to be assigned to a different parent device
than the card. It'll be used for the HD-audio codec device in the
later patches.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 09:00:58 +0000 (10:00 +0100)]
ALSA: hwdep: Take private_data as drvdata for sysfs
For referring to a different object from sysfs ops, take hwdep
private_data as stored via dev_set_drvdata() at creating the device
object. In that way, the same sysfs ops can be used by different
device types.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 07:30:50 +0000 (08:30 +0100)]
ALSA: Create sysfs attribute files via groups
Instead of calling each time device_create_file(), create the groups
of sysfs attribute files at once in a normal way. Add a new helper
function, snd_get_device(), to return the associated device object,
so that we can handle the sysfs addition locally.
Since the sysfs file addition is done differently now,
snd_add_device_sysfs_file() helper function is removed.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 25 Feb 2014 11:12:17 +0000 (12:12 +0100)]
Merge branch 'for-linus' into HEAD
Takashi Iwai [Mon, 13 Jan 2014 15:18:25 +0000 (16:18 +0100)]
ALSA: hda - Avoid codec D3 for keeping mute LED up on Lenovo Yxx0
The GPIO line used for the mute LED control on Lenovo Yxx0 laptops is
cleared unexpectedly when the codec goes to D3, typically by
power-saving. For avoiding it, add a power filter in the fixup.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16373
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Mon, 24 Feb 2014 14:23:10 +0000 (15:23 +0100)]
ALSA: hda - Add a fixup for HP Folio 13 mute LED
HP Folio 13 may have a broken BIOS that doesn't set up the mute LED
GPIO properly, and the driver guesses it wrongly, too. Add a new
fixup entry for setting the GPIO pin statically for this laptop.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70991
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Sakamoto [Fri, 21 Feb 2014 02:18:57 +0000 (11:18 +0900)]
ALSA: rawmidi: remove undefined functions.
'snd_rawmidi_transmit_reset()' and 'snd_rawmidi_receive_reset()' are declared
but not defined.
This state has been continue over 10 years. So let us remove them.
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Kailang Yang [Fri, 21 Feb 2014 08:23:35 +0000 (16:23 +0800)]
ALSA: hda/realtek - Add more entry for enable HP mute led
More HP machine need mute led support.
Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Hui Wang [Thu, 20 Feb 2014 03:47:21 +0000 (11:47 +0800)]
ALSA: hda - Enable front audio jacks on one HP desktop model
The front headphone and mic jackes on a HP desktop model (Vendor Id:
0x111d76c7 Subsystem Id: 0x103c2b17) can not work, the codec on this
machine has 8 physical ports, 6 of them are routed to rear jackes
and all of them work very well, while the remaining 2 ports are
routed to front headphone and mic jackes, but the corresponding
pin complex node are not defined correctly.
After apply this fix, the front audio jackes can work very well.
[trivial fix of enum definition by tiwai]
BugLink: https://bugs.launchpad.net/bugs/1282369
Cc: David Henningsson <david.henningsson@canonical.com>
Tested-by: Gerald Yang <gerald.yang@canonical.com>
Cc: stable@vger.kernel.org
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 20 Feb 2014 06:50:32 +0000 (07:50 +0100)]
Merge tag 'asoc-v3.14-rc3' of git://git./linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.14
A few fixes, all driver speccific ones. The DaVinci ones aren't as
clear as they should be from the subject lines on the commits but they
fix issues which will prevent correct operation in some use cases and
only affect that particular driver so are reasonably safe.
Takashi Iwai [Wed, 19 Feb 2014 10:18:10 +0000 (11:18 +0100)]
ALSA: core: Fix missing card sysfs contents
While moving the card device into struct snd_card, the reference to
the assigned card in sysfs show/store callbacks were forgotten to be
refreshed, still accessing to the no longer used drvdata. Fix these
places to refer correctly via container_of().
Also, remove the superfluous NULL checks since it's guaranteed to be
non-NULL now.
Fixes:
8bfb181c17d2 ('ALSA: Embed card device into struct snd_card')
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 19 Feb 2014 10:11:20 +0000 (11:11 +0100)]
ALSA: hda - Add QEMU codec vendor ID
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Hsin-Yu Chao [Wed, 19 Feb 2014 06:30:35 +0000 (14:30 +0800)]
ALSA: hda/ca0132 - Fix recording from mode id 0x8
Incorrect ADC is picked in ca0132_capture_pcm_prepare(),
where it assumes multiple streams while there is one stream
per ADC. Note that ca0132_capture_pcm_cleanup() already does
the right thing.
The Chromebook Pixel has a microphone under the keyboard that
is attached to node id 0x8. Before this fix, recording would
always go to the main internal mic (node id 0x7).
Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Hsin-Yu Chao [Wed, 19 Feb 2014 06:27:07 +0000 (14:27 +0800)]
ALSA: hda/ca0132 - setup/cleanup streams
When a HDMI stream is opened with the same stream tag
as a following opened stream to ca0132, audio will be
heard from two ports simultaneously.
Fix this issue by change to use snd_hda_codec_setup_stream
and snd_hda_codec_cleanup_stream instead, so that an
inactive stream can be marked as 'dirty' when found
with a conflict stream tag, and then get purified.
Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Mark Brown [Wed, 19 Feb 2014 04:13:58 +0000 (13:13 +0900)]
Merge remote-tracking branch 'asoc/fix/wm8993' into asoc-linus
Mark Brown [Wed, 19 Feb 2014 04:13:52 +0000 (13:13 +0900)]
Merge remote-tracking branches 'asoc/fix/blackfin', 'asoc/fix/da9055', 'asoc/fix/davinci', 'asoc/fix/fsl', 'asoc/fix/fsl-esai', 'asoc/fix/max98090', 'asoc/fix/rt5640', 'asoc/fix/samsung' and 'asoc/fix/txx9aclc-ac97' into asoc-linus
Hui Wang [Tue, 18 Feb 2014 02:56:46 +0000 (10:56 +0800)]
ALSA: hda - add headset mic detect quirks for two Dell laptops
When we plug a 3-ring headset on the Dell machines (Vendor ID:
0x10ec0255, Subsystem ID: 0x10280657; Vendor ID: 0x10ec0255,
Subsystem ID: 0x1028065f), the headset mic can't be
detected, after apply this patch, the headset mic can work well.
BugLink: https://bugs.launchpad.net/bugs/1260303
Cc: David Henningsson <david.henningsson@canonical.com>
Tested-by: Cyrus Lien <cyrus.lien@canonical.com>
Cc: stable@vger.kernel.org
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Fri, 14 Feb 2014 08:05:47 +0000 (09:05 +0100)]
ALSA: usx2y: Don't peep the card internal object
Avoid traversing the device object list of the card instance just for
checking the PCM streams. The driver's private object already
contains the array of substream pointers, so it can be simply looked
through. The card internal may be restructured in future, thus better
not to rely on it.
Also, this fixes the possible deadlocks in PCM mutex. Instead of
taking multiple PCM mutexes, just take the common mutex in all
places. Along with it, rename prepare_mutex as pcm_mutex.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Clemens Ladisch [Sun, 16 Feb 2014 16:11:10 +0000 (17:11 +0100)]
ALSA: usb-audio: work around KEF X300A firmware bug
When the driver tries to access Function Unit 10, the KEF X300A
speakers' firmware apparently locks up, making even PCM streaming
impossible. Work around this by ignoring this FU.
Cc: <stable@vger.kernel.org>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Linus Torvalds [Sun, 16 Feb 2014 21:30:25 +0000 (13:30 -0800)]
Linux 3.14-rc3
Linus Torvalds [Sun, 16 Feb 2014 19:05:27 +0000 (11:05 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/mason/linux-btrfs
Pull btrfs fixes from Chris Mason:
"We have a small collection of fixes in my for-linus branch.
The big thing that stands out is a revert of a new ioctl. Users
haven't shipped yet in btrfs-progs, and Dave Sterba found a better way
to export the information"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
Btrfs: use right clone root offset for compressed extents
btrfs: fix null pointer deference at btrfs_sysfs_add_one+0x105
Btrfs: unset DCACHE_DISCONNECTED when mounting default subvol
Btrfs: fix max_inline mount option
Btrfs: fix a lockdep warning when cleaning up aborted transaction
Revert "btrfs: add ioctl to export size of global metadata reservation"
Linus Torvalds [Sun, 16 Feb 2014 19:03:58 +0000 (11:03 -0800)]
Merge tag 'dt-fixes-for-3.14' of git://git./linux/kernel/git/robh/linux
Pull devicetree fixes from Rob Herring:
"Fix booting on PPC boards. Changes to of_match_node matching caused
the serial port on some PPC boards to stop working. Reverted the
change and reimplement to split matching between new style compatible
only matching and fallback to old matching algorithm"
* tag 'dt-fixes-for-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
of: search the best compatible match first in __of_match_node()
Revert "OF: base: match each node compatible against all given matches first"
Stephen Warren [Thu, 13 Feb 2014 23:54:24 +0000 (16:54 -0700)]
ASoC: max98090: make REVISION_ID readable
The REVISION_ID register is not currently marked readable. snd_soc_read()
refuses to read the register, and hence probe() fails.
Fixes:
d4807ad2c4c0 ("regmap: Check readable regs in _regmap_read")
[exposed the bug, by checking for readability]
Fixes:
685e42154dcf ("ASoC: Replace max98090 Device Driver")
[left out this register from the readable list]
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Kevin Hao [Fri, 14 Feb 2014 05:22:46 +0000 (13:22 +0800)]
of: search the best compatible match first in __of_match_node()
Currently, of_match_node compares each given match against all node's
compatible strings with of_device_is_compatible.
To achieve multiple compatible strings per node with ordering from
specific to generic, this requires given matches to be ordered from
specific to generic. For most of the drivers this is not true and also
an alphabetical ordering is more sane there.
Therefore, this patch introduces a function to match each of the node's
compatible strings against all given compatible matches without type and
name first, before checking the next compatible string. This implies
that node's compatibles are ordered from specific to generic while
given matches can be in any order. If we fail to find such a match
entry, then fall-back to the old method in order to keep compatibility.
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Tested-by: Stephen Chivers <schivers@csc.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Alexander Shiyan [Sat, 15 Feb 2014 19:28:29 +0000 (23:28 +0400)]
ASoC: txx9aclc_ac97: Fix kernel crash on probe
This patch fixes a crash caused by commit
3bed3344c826
(ASoC: txx9aclc_ac97: Convert to devm_ioremap_resource()).
This is an attempt to assign "drvdata->base" while memory
for "drvdata" is not already allocated.
Fixes:
3bed3344c826 (ASoC: txx9aclc_ac97: Convert to devm_ioremap_resource())
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
Linus Torvalds [Sun, 16 Feb 2014 00:18:47 +0000 (16:18 -0800)]
Merge git://git./linux/kernel/git/nab/target-pending
Pull SCSI target fixes from Nicholas Bellinger:
"Mostly minor fixes this time to v3.14-rc1 related changes. Also
included is one fix for a free after use regression in persistent
reservations UNREGISTER logic that is CC'ed to >= v3.11.y stable"
* git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
Target/sbc: Fix protection copy routine
IB/srpt: replace strict_strtoul() with kstrtoul()
target: Simplify command completion by removing CMD_T_FAILED flag
iser-target: Fix leak on failure in isert_conn_create_fastreg_pool
iscsi-target: Fix SNACK Type 1 + BegRun=0 handling
target: Fix missing length check in spc_emulate_evpd_83()
qla2xxx: Remove last vestiges of qla_tgt_cmd.cmd_list
target: Fix 32-bit + CONFIG_LBDAF=n link error w/ sector_div
target: Fix free-after-use regression in PR unregister