Commit Graph

6003 Commits

Author SHA1 Message Date
Peter Senna Tschudin
e0f17c75d9 ALSA: Fix assignment of 0/1 to bool variables
Convert 0 to false and 1 to true when assigning values to bool
variables. Inspired by commit 3db1cd5c05.

The simplified semantic patch that find this problem is as
follows (http://coccinelle.lip6.fr/):

@@
bool b;
@@
(
-b = 0
+b = false
|
-b = 1
+b = true
)

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-26 09:57:24 +02:00
Takashi Iwai
43cdd088b1 Merge branch 'for-linus' into for-next 2013-09-19 18:46:43 +02:00
Sachin Kamat
bf69aa906c ALSA: rme9652: Remove redundant break
'break' after return statement is not necessary.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-13 14:39:20 +02:00
Sachin Kamat
79ae92dd24 ALSA: au88x0: Remove redundant break
'break' after a return statement is redundant. Remove it.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-13 14:39:08 +02:00
Sachin Kamat
399ae7254e ALSA: hda/ca0132: Staticize codec_send_command
'codec_send_command' is used only in this file. Make it static.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-13 14:36:32 +02:00
Sachin Kamat
b71495ee42 ALSA: ctxfi: Staticize local symbols
Local symbols used only in this file are made static.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-13 14:36:09 +02:00
Dan Carpenter
0c21fccd97 ALSA: asihpi: a couple array out of bounds issues
These ->put() functions are called from snd_ctl_elem_write() with user
supplied data.  snd_asihpi_tuner_band_put() is missing a limit check and
the check in snd_asihpi_clksrc_put() can underflow.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-13 14:31:51 +02:00
Linus Torvalds
decf7abcc9 sound fixes for 3.12-rc1
A few last-minute fixes for 3.12-rc1.  All patches are driver specific.
 
 - HD-audio fixes: MacBook 6,1/6,2 speaker fix, ASUS TX300 dock speaker
   fix, Toshiba Satellite irq fix, Haswell HDMI audio cleanups)
 
 - ASoC fixes: atmel irq fix, fsl DT fix, mc13783 spi fix, kirkwood
   compatible string change, etc
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQIcBAABAgAGBQJSMWJeAAoJEGwxgFQ9KSmkkLsP/RMeleT18hbZEhdSZsJaqErg
 p6Dk59fb28HrQrY/ECcZnBChGFgCagS316lBjuEkDtQmZdhYtIDHV9r/udV4MbFc
 rX4IVNv1JerpCyZu4pC0yngHiEX3NMBmu204RJBC8vzJt3fupTFIioliNQlmMuiR
 k6Kb9kGmNHLtA7LwshHwNs8JwXEJHUcnsBGdPB0BUy8BpZ8FVTIOvuBixpxv9kXm
 +n80KRhY/YBjpU+bTvGTgJhH7U3BXylU20q5cO2ukv8vW79LGNZ0XA5Rnerrlr/F
 fvDzg+liOEV8ijchfS9rhs28J+4ICHmFkY/rj7QFpVpP9xYfpqhvw93KmIACirDX
 DlJt63fOJuHbGEv5cGjAmdZXcKONoD9fG11CKDj46Fm4borNy7DdfmMLxNM3xo5q
 rxbgUWplCDHFRALXATJ3t8Occz71l2W+GjklmI7td8K5SD6JCzSI1GdR4YVVf76B
 Wd6AM3wpIGKdjCwZvT5jDBb/4O8ZMtOqEhxvBKI1eO4l+A3UbqWlBKyncfvpKBqY
 yHTBIOgF5QdtUMVSI0/hb64nzmOGHLAWxQoCZssvSFEV6P+jodrqGGayxvbM+6rU
 YR2w2omh+6UkacQvjyVWGehBHiYCECfl0kk9XmPVkIGgHmOdgvkv1/MMbPeEcoXv
 z2YGcgbOIBpNrLcgTev4
 =fKdg
 -----END PGP SIGNATURE-----

Merge tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "A few last-minute fixes for 3.12-rc1.  All patches are driver
  specific.

   - HD-audio fixes: MacBook 6,1/6,2 speaker fix, ASUS TX300 dock
     speaker fix, Toshiba Satellite irq fix, Haswell HDMI audio
     cleanups)

   - ASoC fixes: atmel irq fix, fsl DT fix, mc13783 spi fix, kirkwood
     compatible string change, etc"

* tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ASoC: mc13783: add spi errata fix
  ASoC: rsnd: fixup flag name of rsnd_scu_platform_info
  ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2
  ALSA: hda - Add Toshiba Satellite C870 to MSI blacklist
  ASoC: fsl_spdif: Select regmap-mmio
  ALSA: hda - unmute pin amplifier in infoframe setup for Haswell
  ALSA: hda - define is_haswell() to check if a display audio codec is Haswell
  ALSA: hda - Add dock speaker support for ASUS TX300
  ASoC: kirkwood: change the compatible string of the kirkwood-i2s driver
  ASoC: atmel: disable error interrupt
  ASoC: fsl: imx-audmux: Do not call imx_audmux_parse_dt_defaults() on non-dt kernel
2013-09-12 08:52:41 -07:00
Takashi Iwai
3d0049e852 ASoC: Fixes for v3.12
A few small fixes, nothing with any broad impact but all useful for the
 affected systems.  The Kirkwood compatible string change is fixing up a
 string just added in the merge window so that we don't get any changes
 in released kernels.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJSMEN7AAoJELSic+t+oim9fUcP/2/JSlEzCnf9mnIVu5JUb4o0
 N9sqvZ3FuBmB2s+X7XdzHHatn/SRcj8bdPIUDyghsM+Ax6inzHCkLLxF0gMfgo1k
 YmbVamD9x+Odj7ovs/M7/pRji9vBUFRmTdh6DnxIcQUGyuZRIMEIYxgnu//tXQ6+
 vL2dJ3d3S37k4NtqHebKf1iL4ExGMAkp6f7Rig3YXc/N+jc8O/uUWAitfvBnzuBH
 ZlFTCxkHhZ9mYi/xRBUSOFbb96bQnHN2KQ3soss1xDKhJVpjuo1rOWfTZE9c7bMY
 OvqsMJDwaPNiCF0UzdCPQ1SMdE8r8U2lMMjyeQN76R9tqSVBtgxPeLvjzN0l3Xkf
 mnHd1LZXGOF5cSfrA/Diy4leFk0A0pJQSxdDt54vlRcCG3aV7IRJOkPi4C0tMHQE
 hkXOfgF6XERDsNV4RgzangAAvjKeXPqItWITZx+qtK7AxtCC6xpMc5EHV4wbFmTP
 bYz6oKBehQy5gaI/z5Ad0mU1JK1vJH6n2ENtu/zNxBzfHIiyhF5fBPSuE+IGxvJf
 /ANQf44DkkXLHZv5766lYUbldGmFYbiva2us+uDxaEfjSW5DDSSn/aYn73IsYJ16
 L5MsX0s/J2o/i10kuXPlWMWIkoat1Y2vDUrdjg1xQ1IrkZRAZDnIYJz4yS8TwNyT
 8rToadF2zYPKxwDVb37E
 =oTEO
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v3.12-4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v3.12

A few small fixes, nothing with any broad impact but all useful for the
affected systems.  The Kirkwood compatible string change is fixing up a
string just added in the merge window so that we don't get any changes
in released kernels.
2013-09-11 12:38:45 +02:00
Mark Brown
c34c0d7684 Merge remote-tracking branch 'asoc/fix/fsl' into asoc-linus 2013-09-11 11:17:15 +01:00
Takashi Iwai
be8cf44526 ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2
MacBook 6,1 and 6,2 have a CS4208 codec instead of CS4206/CS4207 on
the former models.  Most of functions work fine as is, except for the
silent speaker output.  After debugging sessions, it turned out that
the machine needs to set GPIO 0 for the speaker amp.

This patch adds the basic support for CS4208 and the fixup for these
MacBooks.  Basically the codec works just with the generic parser.
For re-using the existing GPIO amp code and init/free callbacks, a few
places have been changed so that CS4206/4207-specific codes (errata,
etc) won't hit with CS4208.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=60811
Reported-and-tested-by: Imre Kaloz <kaloz@openwrt.org>
Reported-and-tested-by: Ian Munsie <darkstarsword@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-09 16:09:57 +02:00
Takashi Iwai
83f7215135 ALSA: hda - Add Toshiba Satellite C870 to MSI blacklist
Toshiba Satellite C870 shows interrupt problems occasionally when
certain mixer controls like "Mic Switch" is toggled.  This seems
worked around by not using MSI.

Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=833585
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-09 10:20:48 +02:00
Linus Torvalds
2e515bf096 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
Pull trivial tree from Jiri Kosina:
 "The usual trivial updates all over the tree -- mostly typo fixes and
  documentation updates"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (52 commits)
  doc: Documentation/cputopology.txt fix typo
  treewide: Convert retrun typos to return
  Fix comment typo for init_cma_reserved_pageblock
  Documentation/trace: Correcting and extending tracepoint documentation
  mm/hotplug: fix a typo in Documentation/memory-hotplug.txt
  power: Documentation: Update s2ram link
  doc: fix a typo in Documentation/00-INDEX
  Documentation/printk-formats.txt: No casts needed for u64/s64
  doc: Fix typo "is is" in Documentations
  treewide: Fix printks with 0x%#
  zram: doc fixes
  Documentation/kmemcheck: update kmemcheck documentation
  doc: documentation/hwspinlock.txt fix typo
  PM / Hibernate: add section for resume options
  doc: filesystems : Fix typo in Documentations/filesystems
  scsi/megaraid fixed several typos in comments
  ppc: init_32: Fix error typo "CONFIG_START_KERNEL"
  treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks
  page_isolation: Fix a comment typo in test_pages_isolated()
  doc: fix a typo about irq affinity
  ...
2013-09-06 09:36:28 -07:00
Mengdong Lin
58f7d28da6 ALSA: hda - unmute pin amplifier in infoframe setup for Haswell
When Gfx driver reconnects a port and transcoder, the pin amplifier will
be muted. To enable sound, the pin amp need to be unmuted.

This patch
- moves pin amp unmuting from stream preparing to hdmi_setup_audio_infoframe().
  So if port:transcoder reconnection happens during stream playback, the ELDV
  unsol event can stil trigger pin's amp unmuting when re-setting up audio
  info frame.

- remove reading pin amp status before unmuting for speed-up, since pin amp
  should always be unmuted.

- rename haswell_verify_pin_D0() to haswell_verify_D0(), since the convertor
  power state is also fixed here.

This patch is mostly based on suggestion of David Henningsson.

Cc: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-06 18:23:54 +02:00
Mengdong Lin
fb87fa3a79 ALSA: hda - define is_haswell() to check if a display audio codec is Haswell
To apply Haswell specific fixings, this patch defines is_haswell() to check
whether a display audio codec is Haswell, to avoid explicitly checking Haswell
vendor ID everywhere.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-06 18:23:38 +02:00
Takashi Iwai
7bba2157c5 ALSA: hda - Add dock speaker support for ASUS TX300
ASUS TX300 has a built-in speaker in the tablet part and in the dock
part, and the tablet speaker is supposed to be unused while the
machine is docked.  The current HD-audio driver, however, doesn't
support the dock speaker, partly because BIOS doesn't set up the pin
for the corresponding output.

But, not only the missing pin config, also the missing unsol event
handling is another issue.  Otherwise the automatic switching via
dock/undock won't work.

Through debugging sessions, we found out that the dock speaker pin is
NID 0x1b, and it generates an unsol event at docking/undocking, the
docking state can be inquired via the normal pin detection verb.
Also, it's turned out that GPIO 2 is needed as an amp.  So, all
materials are ready to cook.

This patch provides the basic dock speaker support with TX300:
- The dock speaker is turned on/off via "Dock Speaker" mixer mute.
- The dock speaker is automatically muted when docked.  This is
  independently from the mixer mute switch, just like the headphone
  auto-mute function.

The implementation is a bit tricky.  Since we want to handle it as a
secondary speaker, we set it up a pin as a speaker with a jack
detection.  Then, the fixup function registers the own unsol callback
for this pin because the standard automute can't handle the thing like
a "speaker jack".  In the own automute hook, we apply the mute of the
tablet speaker in addition by checking the dock state.

Also, the speaker control names are slightly shuffled because the
generic parser doesn't give good names but blindly assumes a bass
speaker as a secondary speaker.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59791
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-06 15:54:42 +02:00
Linus Torvalds
27c053aa8d Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
 "This series contains:
   - Exynos s5p-mfc driver got support for VP8 encoder
   - Some SoC drivers gained support for asynchronous registration
     (needed for DT)
   - The RC subsystem gained support for RC activity LED;
   - New drivers added: a video decoder(adv7842), a video encoder
     (adv7511), a new GSPCA driver (stk1135) and support for Renesas
     R-Car (vsp1)
   - the first SDR kernel driver: mirics msi3101.  Due to some troubles
     with the driver, and because the API is still under discussion, it
     will be merged at staging for 3.12.  Need to rework on it
   - usual new boards additions, fixes, cleanups and driver
     improvements"

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (242 commits)
  [media] cx88: Fix regression: CX88_AUDIO_WM8775 can't be 0
  [media] exynos4-is: Fix entity unregistration on error path
  [media] exynos-gsc: Register v4l2 device
  [media] exynos4-is: Fix fimc-lite bayer formats
  [media] em28xx: fix assignment of the eeprom data
  [media] hdpvr: fix iteration over uninitialized lists in hdpvr_probe()
  [media] usbtv: Throw corrupted frames away
  [media] usbtv: Fix deinterlacing
  [media] v4l2: added missing mutex.h include to v4l2-ctrls.h
  [media] DocBook: upgrade media_api DocBook version to 4.2
  [media] ml86v7667: fix compile warning: 'ret' set but not used
  [media] s5p-g2d: Fix registration failure
  [media] media: coda: Fix DT driver data pointer for i.MX27
  [media] s5p-mfc: Fix input/output format reporting
  [media] v4l: vsp1: Fix mutex double lock at streamon time
  [media] v4l: vsp1: Add support for RT clock
  [media] v4l: vsp1: Initialize media device bus_info field
  [media] davinci: vpif_capture: fix error return code in vpif_probe()
  [media] davinci: vpif_display: fix error return code in vpif_probe()
  [media] MAINTAINERS: add entries for adv7511 and adv7842
  ...
2013-09-05 11:55:59 -07:00
Linus Torvalds
a09e9a7a4b Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm tree changes from Dave Airlie:
 "This is the main drm pull request, I have some overlap with sound and
  arm-soc, the sound patch is acked and may conflict based on -next
  reports but should be a trivial fixup, which I'll leave to you!

  Highlights:

   - new drivers:

     MSM driver from Rob Clark

   - non-drm:

     switcheroo and hdmi audio driver support for secondary GPU
     poweroff, so drivers can use runtime PM to poweroff the GPUs.  This
     can save 5 or 6W on some optimus laptops.

   - drm core:

     combined GEM and TTM VMA manager
     per-filp mmap permission tracking
     initial rendernode support (via a runtime enable for now, until we get api stable),
     remove old proc support,
     lots of cleanups of legacy code
     hdmi vendor infoframes and 4k modes
     lots of gem/prime locking and races fixes
     async pageflip scaffolding
     drm bridge objects

   - i915:

     Haswell PC8+ support and eLLC support, HDMI 4K support, initial
     per-process VMA pieces, watermark reworks, convert to generic hdmi
     infoframes, encoder reworking, fastboot support,

   - radeon:

     CIK PM support, remove 3d blit code in favour of DMA engines,
     Berlin GPU support, HDMI audio fixes

   - nouveau:

     secondary GPU power down support for optimus laptops, lots of
     fixes, use MSI, VP3 engine support

   - exynos:

     runtime pm support for g2d, DT support, remove non-DT,

   - tda998x i2c driver:

     lots of fixes for sync issues

   - gma500:

     lots of cleanups

   - rcar:

     add LVDS support, fbdev emulation,

   - tegra:

     just minor fixes"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (684 commits)
  drm/exynos: Fix build error with exynos_drm_connector.c
  drm/exynos: Remove non-DT support in exynos_drm_fimd
  drm/exynos: Remove non-DT support in exynos_hdmi
  drm/exynos: Remove non-DT support in exynos_drm_g2d
  drm/exynos: Remove non-DT support in exynos_hdmiphy
  drm/exynos: Remove non-DT support in exynos_ddc
  drm/exynos: Make Exynos DRM drivers depend on OF
  drm/exynos: Consider fallback option to allocation fail
  drm/exynos: fimd: move platform data parsing to separate function
  drm/exynos: fimd: get signal polarities from device tree
  drm/exynos: fimd: replace struct fb_videomode with videomode
  drm/exynos: check a pixel format to a particular window layer
  drm/exynos: fix fimd pixel format setting
  drm/exynos: Add NULL pointer check
  drm/exynos: Remove redundant error messages
  drm/exynos: Add missing of.h header include
  drm/exynos: Remove redundant NULL check in exynos_drm_buf
  drm/exynos: add device tree support for rotator
  drm/exynos: Add missing includes
  drm/exynos: add runtime pm interfaces to g2d driver
  ...
2013-09-05 10:17:26 -07:00
Linus Torvalds
977dbfcf8e sound updates for 3.12-rc1
- HDPM: Updates for AIO/RayDAT support, TCO/sync support
 
 - RME96: Add PCM sync support
 
 - HD-audio:
   * A few HDMI/DP audio updates (CA assignment fix, stream switching
     fix, Intel DP device list support)
   * Device specific fixes (ASUS/CXT HP mic support, Thinkpad mic
     improvements, Chromebook fixes, STAC9228 Dell fixes)
   * Replace the all static quirks for AD codecs with the generic
     parser
   * WAKEEN support for handling irqs in the power saving mode
 
 - USB-audio: Clean up implicit fb handling and related codes
 
 - DAPM is now mandatory for ASoC CODEC drivers; all existing drivers
   have had some level of DAPM support added.  In addition, a lot of
   cleanups and improvements in DAPM.
 
 - Support for ASoC cross-platform compile test
 
 - New drivers and support for Analog Devices ADAU1702 and ADAU1401(a),
   Asahi Kasei Microdevices AK4554, Atmel AT91ASM9x5 and WM8904 based
   machines, Freescale S/PDIF and SSI AC'97, Renesas R-Car SoCs, Samsung
   Exynos5420 SoCs, Texas Instruments PCM1681 and PCM1792A and Wolfson
   Microelectronics WM8997
 
 - DT bindings for kirkwood and i.MX S/PDIF
 
 - Clean up and bug fixes: ssm2602, rt5640 and sgtl5000.
 
 - Core helpers for bitbanged AC'97 reset
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQIcBAABAgAGBQJSJ2E+AAoJEGwxgFQ9KSmkQQgP/izfCaTbvFsFOCwn8V8qgKCv
 fBnakk1IQp7vaMxx1g0wall9clZbnae7sCgst5aCeLjCglzIUHqgsX5xr23QQfPF
 WEVzW2LhrTmrRIVDnG0v1W5gUaYJk8H6qyMOkVWGtZvpn1M88TbJDv+P2ff3VqqU
 G1yqeogXGduForHkhDw2TCvnu5WNQGWtvd5O+QtT8kqWqUWqM5sWBbdl1oMpQUnm
 0/YmFDSkNRSi8tXerYnfUf1qQuh40efHJ2oql3vfh8+I8nwPqZWScl5e+IwfgBPb
 azF0oeQM++R8/iZ89vk3hwndKzSN1y6Ok47gM2v+PwcJYoaEGDuIP8mVklUNQR9v
 ZK1n6AwlyxGH8snBKBX9upqcuT2xycBleh4sYw/t61/T4ne9L7WYY6a69dIetZ5e
 ALbzI1UP12S0oWiot/mqOcVLEneRNgKAD+K6Xcq7MYEA4g3MXbwWNrQRKRk3Hy5b
 BDWh39lb7Uh/v+D81UJEfy1UgsSOunUdsGV6AAsam9THW47+2+gO10MvALNueJhH
 QGOUVapLS553i6i7dZPj1tdumM8AKiqTRE9Bgsn4nWS3jOLtaO7EajOHoBha1JuG
 S9IxAMgI8y6h2ZXBTcdGrTFBjvbN9o0S3xYTAG0Z1hWGPTbKCxkpopZdbmHs1qJi
 Xsy9nBk9Dg2DEKDnZ555
 =wbLt
 -----END PGP SIGNATURE-----

Merge tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound updates from Takashi Iwai:
 "Changes are seen in a wide range of codes, mainly due to ASoC DAPM
  requirements; HD-audio shows a high peak in diffstat, it's just a
  removal of bunch of old static quirks.

  Some highlights:

   - HDPM: Updates for AIO/RayDAT support, TCO/sync support

   - RME96: Add PCM sync support

   - HD-audio:

     * A few HDMI/DP audio updates (CA assignment fix, stream switching
       fix, Intel DP device list support)
     * Device specific fixes (ASUS/CXT HP mic support, Thinkpad mic
       improvements, Chromebook fixes, STAC9228 Dell fixes)
     * Replace the all static quirks for AD codecs with the generic
       parser
     * WAKEEN support for handling irqs in the power saving mode

   - USB-audio: Clean up implicit fb handling and related codes

   - DAPM is now mandatory for ASoC CODEC drivers; all existing drivers
     have had some level of DAPM support added.  In addition, a lot of
     cleanups and improvements in DAPM.

   - Support for ASoC cross-platform compile test

   - New drivers and support for Analog Devices ADAU1702 and
     ADAU1401(a), Asahi Kasei Microdevices AK4554, Atmel AT91ASM9x5 and
     WM8904 based machines, Freescale S/PDIF and SSI AC'97, Renesas
     R-Car SoCs, Samsung Exynos5420 SoCs, Texas Instruments PCM1681 and
     PCM1792A and Wolfson Microelectronics WM8997

   - DT bindings for kirkwood and i.MX S/PDIF

   - Clean up and bug fixes: ssm2602, rt5640 and sgtl5000.

   - Core helpers for bitbanged AC'97 reset"

* tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (375 commits)
  ALSA: hda - Re-setup HDMI pin and audio infoframe on stream switches
  ALSA: hda - hdmi: Fallback to ALSA allocation when selecting CA
  ASoC: mxs-sgtl5000: Configure the dai_links as unidirectional
  ASoC: soc-pcm: Allow to specify unidirectional dai_link
  ASoC: fsl_spdif: Staticse non-exported symbols
  ASoC: ssm2602: Fix cache sync
  ASoC: Remove unused sysfs_registered field from snd_soc_codec struct
  ASoC: Remove unused debugfs_dapm field from snd_soc_{platform,codec} struct
  ASoC: Remove unused control_type field from snd_soc_codec struct
  ASoC: fsl: Add one blank space after ':=' in Makefile
  ASoC: fsl: Add wrapping for dev_dbg() in fsl_spdif.c
  ASoC: rt5640: change widget sequence for depop
  ASoC: dapm: Fix auto-disable for inverted controls
  ASoC: fsl: Drop SND_SOC_FSL_UTILS from SND_SOC_IMX_SPDIF
  ASoC: Samsung: Do not queue cyclic buffers multiple times
  ASoC: ep93xx-i2s: Remove unnecessary dev_set_drvdata()
  ASoC: designware_i2s: Remove unnecessary dev_set_drvdata()
  ASoC: fsl_spdif: remove redundant dev_err call in fsl_spdif_probe()
  ASoC: fsl: Add S/PDIF machine driver
  ASoc: kirkwood: Use the Kirkwood audio driver in Dove boards
  ...
2013-09-04 16:26:56 -07:00
Takashi Iwai
b054087dba ALSA: hda - Re-setup HDMI pin and audio infoframe on stream switches
When the transcoder:port mapping on Haswell HDMI/DP audio is changed
during the stream playback, the sound gets lost.  Typically this
problem is seen when the user switches the graphics mode from eDP+DP
to DP-only configuration, where CRTC 1 is used for DP in the former
while CRTC 0 is used for the latter.

The graphics controller notifies the change via the normal ELD update
procedure, so we get the intrinsic event.  For enabling the sound
again, the HDMI audio driver needs to reset the pin and set up the
audio infoframe again.

This patch achieves it by:
- keep the current status of channels and info frame setup in per_pin
  struct,
- check the reconnection in the intrinsic event handler,
- reset the pin and the re-invoke hdmi_setup_audio_infoframe()
  accordingly.

The hdmi_setup_audio_infoframe() function has been changed, too, so
that it can be invoked without passing the substream instance.

The patch is mostly based on the work by Mengdong Lin.

Cc: Mengdong Lin <mengdong.lin@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-03 08:26:54 +02:00
Anssi Hannula
18e391862c ALSA: hda - hdmi: Fallback to ALSA allocation when selecting CA
hdmi_channel_allocation() tries to find a HDMI channel allocation that
matches the number channels in the playback stream and contains only
speakers that the HDMI sink has reported as available via EDID. If no
such allocation is found, 0 (stereo audio) is used.

Using CA 0 causes the audio causes the sink to discard everything except
the first two channels (front left and front right).

However, the sink may be capable of receiving more channels than it has
speakers (and then perform downmix or discard the extra channels), in
which case it is preferable to use a CA that contains extra channels
than to use CA 0 which discards all the non-stereo channels.

Additionally, it seems that HBR (HD) passthrough output does not work on
Intel HDMI codecs when CA is set to 0 (possibly the codec zeroes
channels not present in CA). This happens with all receivers that report
a 5.1 speaker mask since a HBR stream is carried on 8 channels to the
codec.

Add a fallback in the CA selection so that the CA channel count at least
matches the stream channel count, even if the stream contains channels
not present in the sink speaker descriptor.

Thanks to GrimGriefer at OpenELEC forums for discovering that changing
the sink speaker mask allowed HBR output.

Reported-by: GrimGriefer
Reported-by: Ashecrow
Reported-by: Frank Zafka <kafkaesque1978@gmail.com>
Reported-by: Peter Frühberger <fritsch@xbmc.org>
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-02 15:04:48 +02:00
Dave Airlie
9c725e5bcd Merge branch 'drm-next-3.12' of git://people.freedesktop.org/~agd5f/linux into drm-next
Alex writes:
This is the radeon drm-next request.  Big changes include:
- support for dpm on CIK parts
- support for ASPM on CIK parts
- support for berlin GPUs
- major ring handling cleanup
- remove the old 3D blit code for bo moves in favor of CP DMA or sDMA
- lots of bug fixes

[airlied: fix up a bunch of conflicts from drm_order removal]

* 'drm-next-3.12' of git://people.freedesktop.org/~agd5f/linux: (898 commits)
  drm/radeon/dpm: make sure dc performance level limits are valid (CI)
  drm/radeon/dpm: make sure dc performance level limits are valid (BTC-SI) (v2)
  drm/radeon: gcc fixes for extended dpm tables
  drm/radeon: gcc fixes for kb/kv dpm
  drm/radeon: gcc fixes for ci dpm
  drm/radeon: gcc fixes for si dpm
  drm/radeon: gcc fixes for ni dpm
  drm/radeon: gcc fixes for trinity dpm
  drm/radeon: gcc fixes for sumo dpm
  drm/radeonn: gcc fixes for rv7xx/eg/btc dpm
  drm/radeon: gcc fixes for rv6xx dpm
  drm/radeon: gcc fixes for radeon_atombios.c
  drm/radeon: enable UVD interrupts on CIK
  drm/radeon: fix init ordering for r600+
  drm/radeon/dpm: only need to reprogram uvd if uvd pg is enabled
  drm/radeon: check the return value of uvd_v1_0_start in uvd_v1_0_init
  drm/radeon: split out radeon_uvd_resume from uvd_v4_2_resume
  radeon kms: fix uninitialised hotplug work usage in r100_irq_process()
  drm/radeon/audio: set up the sads on DCE3.2 asics
  drm/radeon: fix handling of variable sized arrays for router objects
  ...

Conflicts:
	drivers/gpu/drm/i915/i915_dma.c
	drivers/gpu/drm/i915/i915_gem_dmabuf.c
	drivers/gpu/drm/i915/intel_pm.c
	drivers/gpu/drm/radeon/cik.c
	drivers/gpu/drm/radeon/ni.c
	drivers/gpu/drm/radeon/r600.c
2013-09-02 09:31:40 +10:00
Dave Airlie
246efa4a07 snd/hda: add runtime suspend/resume on optimus support (v4)
Add support for HDMI audio device on VGA cards that powerdown
to D3cold using non-standard ACPI/PCI infrastructure (optimus).

This does a couple of things to make it work:

a) add a set of power ops for the hdmi domain, and enables them
via vga_switcheroo when we are a switcheroo controlled card. This
just replaces the runtime resume operation so that when the card
is in D3cold the userspace pci config space access via sysfs,
the vga switcheroon runtime resume gets called first and it calls
the GPU resume callback before calling the sound card runtime
resume.

b) standard ACPI/PCI stacks won't put a device into D3cold without
an ACPI handle, but since the hdmi audio devices on gpus don't have
an ACPI handle, we need to manually force the device into D3cold
after suspend from the switcheroo path only.

c) don't try and do runtime s/r when the GPU is off.

d) call runtime suspend/resume during switcheroo suspend/resume
this is to make sure the runtime stack knows to try and resume
the hdmi audio device for pci config space access.

v2: fix incorrect runtime call suspend->resume.

v3: rework irq handler to avoid false irq when we are resuming
but haven't runtime resumed yet, don't bother trying D3cold,
it won't work, just set it manually ourselves, move runtime s/r
calls outside the main s/r hook. enable dnyamic pm properly by
dropping reference.

v4: put back irq handler check just wrap it with cap check

Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-08-29 13:30:29 +10:00
Takashi Iwai
1c9a341bbd ALSA: hda - Simplify CONFIG_SND_HDA_I915 condition
CONFIG_SND_HDA_I915 doesn't have to be user-selectable as this is almost
mandatory when i915 driver is available.  Let's enable it always when
CONFIG_DRM_I915 is set, so that user won't be bothered by useless
questions.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-27 14:49:59 +02:00
Mengdong Lin
2e59e5ab1c ALSA: hda - add device entry and inactive flag to unsolicited response
This patch adds two fields to unsolicited response, according to spec HDA040-A:
- Device Entry (bit 20:15)
- Inactive (bit 2)
and show the info in debug message.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-27 12:15:28 +02:00
Mengdong Lin
5dc989bdd9 ALSA: hda - Haswell codec exposes device list/select info on pins
This patch is only to allow codec proc file to expose devices list/select info
for Haswell codec pins.

Since Haswell Gfx driver cannot support DP1.2 MST now, so all pins' device list
is empty, meaning no pin is multi-streaming capaple.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-27 12:15:22 +02:00
Mengdong Lin
7a624ea562 ALSA: hda - add device list & select info of display pins to codec proc file
If a display codec supports multi-stream transport on the pins, the pin's
device list length and device entries will be exposed to codec proc file.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-27 12:15:17 +02:00
Mengdong Lin
f1aa068475 ALSA: hda - add flags and routines to get devices selection info for DP1.2 MST
This patch adds flags and routines to get device list & selection info on
a pin.

To support Display Port 1.2 multi-stream transport (MST) over single DP port,
a pin can support multiple devices. Please refer to HD-A spec Document Change
Notificaton HDA040-A.

A display audio codec can set flag "dp_mst" in its patch, indicating its pins
can support MST. But at runtime, a pin may not be multi-streaming capable and
report the device list is empty, depending on Gfx driver configuration.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-27 12:15:09 +02:00
Joe Perches
8e33a52fad treewide: Fix printks with 0x%#
Using 0x%# emits 0x0x.  Only one is necessary.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-08-27 10:49:38 +02:00
Mauro Carvalho Chehab
e9a7495c5b [media] sound/pci/Kconfig: select RADIO_ADAPTERS if needed
As reported by kbuild test robot <fengguang.wu@intel.com>:
	warning: (SND_ES1968_RADIO && SND_FM801_TEA575X_BOOL) selects RADIO_TEA575X which has unmet direct dependencies (MEDIA_SUPPORT && RADIO_ADAPTERS && VIDEO_V4L2)

That happens because a radio driver is selected, without selecting the
RADIO_ADAPTERS menu.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2013-08-24 08:17:48 -03:00
Takashi Iwai
68538bf2bc ASoC: Updates for v3.12
- DAPM is now mandatory for CODEC drivers in order to avoid the repeated
   regressions in the special cases for non-DAPM CODECs and make it
   easier to integrate with other components on boards.  All existing
   drivers have had some level of DAPM support added.
 - A lot of cleanups in DAPM plus support for maintaining controls in a
   specific state while a DAPM widget all contributed by Lars-Peter Clausen.
 - Core helpers for bitbanged AC'97 reset from Markus Pargmann.
 - New drivers and support for Analog Devices ADAU1702 and ADAU1401(a),
   Asahi Kasei Microdevices AK4554, Atmel AT91ASM9x5 and WM8904 based
   machines, Freescale S/PDIF and SSI AC'97, Renesas R-Car SoCs, Samsung
   Exynos5420 SoCs, Texas Instruments PCM1681 and PCM1792A and Wolfson
   Microelectronics WM8997.
 - Support for building drivers that can support it cross-platform for
   compile test.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJSF0rqAAoJELSic+t+oim9YK0P/0CwP7lAjL87EF+dUKW51raB
 7K8xtOgObec1+Fnc1FEbN6us1hXRkjZJMJyRqa3DO5EaNM5TUoxUa/+MNsKmyGXs
 UhoW7J2TUizxgStxszXdxLEZG5oErxwCtJR3xlIkAq4kcnUI0LwRtGctmguZH74a
 UFxd34tcq8LxytvBp1HaNgaG1OQqIqYUNHYXKCwZZMJRxk8TQU9NfAzlCOtWfPWp
 jjdsBkX6bypWzSV/0P8rdSvjhHlJ1vBw3XTD9jD1/EuC5J7qqKQvwo5Oid98QHiv
 /guV0zx6EPdW5IgyGVvlyc4e5zLrtrckj05Kjyy426mZUpLmGoQCPj+ZAZA+jdqo
 qX3M9lXdisx4FI1Ke+y00G64q9fOuNEyjHKnoMPbZXC7zBTLPC8znncM6Xk5MOx/
 Y+fSChecYzkCrBJqHZGUcMdl0/xL1cRrH6BP2I5ISn5ruEjmTuj3dD0JTUVRi1HM
 KGrLP6TnuY+yBMhoqbGsH7YtNN5NDbqnJrUXQy82GGHH++LlHs/0ljDdOCuwX774
 qu1PsyTwrBvCU9erJS4yTG1KIiFFLTn+exPvUOyjaTFVbs8PoX2NOC4/Ihqj+dvU
 UDj/Lh+/zF2BzrkxN65BwuXULElxjtoFvleWLzt7V8qOCb5LOzBVW8a7f5HQzfU6
 LsEXDtB4VkjGjOGAAsII
 =qzif
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next

ASoC: Updates for v3.12

- DAPM is now mandatory for CODEC drivers in order to avoid the repeated
  regressions in the special cases for non-DAPM CODECs and make it
  easier to integrate with other components on boards.  All existing
  drivers have had some level of DAPM support added.
- A lot of cleanups in DAPM plus support for maintaining controls in a
  specific state while a DAPM widget all contributed by Lars-Peter Clausen.
- Core helpers for bitbanged AC'97 reset from Markus Pargmann.
- New drivers and support for Analog Devices ADAU1702 and ADAU1401(a),
  Asahi Kasei Microdevices AK4554, Atmel AT91ASM9x5 and WM8904 based
  machines, Freescale S/PDIF and SSI AC'97, Renesas R-Car SoCs, Samsung
  Exynos5420 SoCs, Texas Instruments PCM1681 and PCM1792A and Wolfson
  Microelectronics WM8997.
- Support for building drivers that can support it cross-platform for
  compile test.
2013-08-23 14:12:22 +02:00
Knut Petersen
a8cc209997 alsa/rme96: Add missing inclusion of linux/vmalloc.h
Signed-off-by: Knut Petersen <Knut_Petersen@t-online.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-22 23:24:00 +02:00
Takashi Iwai
2ca320e294 ALSA: hda - Fix NULL dereference with CONFIG_SND_DYNAMIC_MINORS=n
Without the dynamic minor assignment, HDMI codec may have less PCM
instances than the number of pins, which eventually leads to Oops.

Reported-by: Stratos Karafotis <stratosk@semaphore.gr>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-22 23:22:39 +02:00
Takashi Iwai
e58a244ff9 ALSA: rme96: Check the return value of pci_enable_device() in resume callback
Fixing warning message:
  sound/pci/rme96.c: In function ‘snd_rme96_resume’:
  sound/pci/rme96.c:2418:19: warning: ignoring return value of ‘pci_enable_device’, declared with attribute warn_unused_result [-Wunused-result]

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-22 12:04:47 +02:00
Kailang Yang
cd217a6395 ALSA: hda - Add workarounds for pop-noise on Chromebook with ALC283
The headphone automute on this machine triggers annoying pop noises.
It seems that only the first DAC can be used, the secondary DAC always
results in this problem.  This patch disables the secondary DAC with
a few additional workarounds.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-22 11:55:33 +02:00
Kailang Yang
2af02be71a ALSA: hda - Fix ALC283 headphone pop-noise better
Fixed ALC283 D3 to D0 and D0 to D3 Headphone pop noise.
The previous fix [c5177c86: ALSA: hda - Fix the noise after suspend on
ALC283 codec] doesn't work sufficiently for some laptops.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-22 11:54:58 +02:00
Knut Petersen
528ba522e1 ALSA: rme96: Add PM support v3
Without proper power management handling, the first use
of a Digi96/8 anytime after a suspend / resume cycle will
start playback with distortions.

v3: Abort if vmalloc() of suspend buffers fail, but do not
leak memory in that case.

[fixed wrong memory leak fix again -- tiwai]

Signed-off-by: Knut Petersen <Knut_Petersen@t-online.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-22 11:54:57 +02:00
Adrian Knoth
1568b88022 ALSA: hdspm - Use enums in hdspm_tco_ltc_frames()
This patch doesn't change functionality, it only improves readability
and fixes a copy&paste error in a comment.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-19 20:09:03 +02:00
Adrian Knoth
17d2f00836 ALSA: hdspm - Fix default value in SNDRV_HDSPM_IOCTL_GET_LTC
Use enum hdspm_ltc_format's fps_30 (corresponds to 4) instead of 30,
Other case branches return 1, 2 or 3 respectively, so 30 obviously is
wrong.

Since SNDRV_HDSPM_IOCTL_GET_LTC had never been working due to a
copy&paste error in hdspm.h, this change doesn't break userspace.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-19 20:08:57 +02:00
Takashi Iwai
d3d3835ce9 ALSA: hda - Add inverted digital mic fixup for Acer Aspire One
Yet another entry, just use the existing fixup for this machine, too.

Reported-by: "Nathanael D. Noblet" <nathanael@gnat.ca>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-19 20:07:28 +02:00
David Henningsson
c841ad2a9b ALSA: hda - Try to allow haswell HDMI audio even without powerwell
If compiled without CONFIG_SND_HDA_I915, the audio driver cannot
request power well. However, if the power well is on for other
reasons, maybe audio can still work. Therefore, do not skip the
card completely if compiled without CONFIG_SND_HDA_I915.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-19 15:46:17 +02:00
David Henningsson
cd5302c0d4 ALSA: hda - Limit internal mic boost for a few more Thinkpad machines
The higher mic boosts (on internal mic) are so noisy they're unusable
in practice.

BugLink: https://bugs.launchpad.net/bugs/1213820
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-19 15:45:51 +02:00
Ondrej Zary
338c658a64 [media] tea575x: Move from sound to media
Move tea575x from sound/i2c/other to drivers/media/radio
Includes Kconfig changes by Hans Verkuil.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2013-08-18 08:09:59 -03:00
Ondrej Zary
59b564599b [media] tea575x: Move header from sound to media
Move include/sound/tea575x-tuner.h to include/media/tea575x.h and update files that include it.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2013-08-18 08:08:05 -03:00
David Henningsson
aaedfb4761 ALSA: hda - Fix the order of a quirk table (janitorial)
This just cleans up the table, no functional changes.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-16 14:50:00 +02:00
David Henningsson
a4a9e08267 ALSA: hda - Fix internal mic boost on three Thinkpad machines
The internal mic boost is so noisy on boosts 2 and 3 so they are
unusable in practice.

BugLink: https://bugs.launchpad.net/bugs/1213055
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-16 14:49:50 +02:00
Takashi Iwai
1801928e0f ALSA: hda - Add a fixup for Gateway LT27
Gateway LT27 needs a fixup for the inverted digital mic.

Reported-by: "Nathanael D. Noblet" <nathanael@gnat.ca>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-16 08:17:05 +02:00
Knut Petersen
b892ca1c9f ALSA: rme96: Add pcm stream synchronization
The hardware does support synchronized start/pause/stop of pcm streams,
so there is no reason not to add that feature after more than ten years.

Some minor coding style / white space fixes in the surroundings of the
changes.

Signed-off-by: Knut Petersen <Knut_Petersen@t-online.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-14 17:02:36 +02:00
Takashi Iwai
e80c60f3cb ALSA: hda - Mute the right widget in auto_mute_via_amp mode
The current generic parser code assumes that always a pin widget
controls the mute for an output blindly although it might be a
different widget in the middle.  Instead of the fixed assumption,
check each parsed path and just pick up the right widget that has been
already defined as a mute control.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-13 09:11:04 +02:00
Takashi Iwai
bc2eee29fc ALSA: hda - Allow auto_mute_via_amp on bind mute controls
The auto-mute using the amp currently works only for a single amp on a
pin.  Make it working also with HDA_CTL_BIND_MUTE type, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-13 09:10:37 +02:00
Takashi Iwai
f69910ddbd ALSA: hda - Fix missing mute controls for CX5051
We've added a fake mute control (setting the amp volume to zero) for
CX5051 at commit [3868137e: ALSA: hda - Add a fake mute feature], but
this feature was overlooked in the generic parser implementation.  Now
the driver lacks of mute controls on these codecs.

The fix is just to check both AC_AMPCAP_MUTE and AC_AMPCAP_MIN_MUTE
bits in each place checking the amp capabilities.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59001
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-12 11:42:39 +02:00
Takashi Iwai
db8a38e506 ALSA: hda - Add pinfix for LG LW25 laptop
Correct the pins for a line-in and a headphone on LG LW25 laptop with
ALC880 codec.  Other pins seem fine.

Reported-and-tested-by: Joonas Saarinen <jonskunator@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-12 11:04:17 +02:00
Chih-Chung Chang
bde7bc6014 ALSA: hda - Fix jack gating when auto_{mute,mic} is suppressed.
The snd_hda_jack_set_gating_jack() call didn't work when
auto_{mute,mic} is suppressed because (1) am_entry is
not filled with nid of the mic pin. (2) The jacks are not
created (by snd_hda_jack_detect_enable_callback) before the
snd_hda_jack_set_gating_jack call.

Now we use the first input pin nid directly, and create the jack if it
doesn't exist yet.

Signed-off-by: Chih-Chung Chang <chihchung@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-05 11:19:59 +02:00
Takashi Iwai
697aebab78 ALSA: hda - Fix missing fixup for Mac Mini with STAC9221
A fixup for Apple Mac Mini was lost during the adaption to the generic
parser because the fallback for the generic ID 8384:7680 was dropped,
and it resulted in the silence output (and maybe other problems).

Unfortunately, just adding the missing subsystem ID wasn't enough, in
this case.  The subsystem ID of this machine is 0000:0100 (what Apple
thought...?), and since snd_hda_pick_fixup() doesn't take the vendor
id zero into account, the driver ignored this entry.  Now it's fixed
to regard the vendor id zero as a valid value.

Reported-and-tested-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-08-02 08:16:52 +02:00
Takashi Iwai
da96fb5b01 ALSA: hda - Fix invalid multi-io creation on VAIO-Z laptops
VAIO-Z laptops need to use the specific DAC for the speaker output
by some unknown reason although the codec itself supports the flexible
connection.  So we implemented a workaround by a new flag,
no_primary_hp, for assigning the speaker pin first.

This worked until 3.8 kernel, but it got broken because the driver
learned for a better multi-io pin mapping, and not it can assign two
mic pins for multi-io.  Since the multi-io requires to be the primary
output, the hp and two mic pins are assigned in prior to the speaker
in the end.

Although the machine has two mic pins, one of them is used as a noise-
canceling headphone, thus it's no real retaskable mic jack.  Thus, at
best, we can disable the multi-io assignment and make the parser
behavior back to the state before the multi-io.

This patch adds again a new flag, no_multi_io, to indicate that the
device has no multi-io capability, and set it in the fixup for
VAIO-Z.  The no_multi_io flag itself can be used generically, added
via a helper line, too.

Reported-by: Tormen <my.nl.abos@gmail.com>
Reported-by: Adam Williamson <awilliam@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-29 16:54:36 +02:00
Takashi Iwai
eefb8be4a4 ALSA: hda - Remove analog mic pin override from STAC9228 dell-bios quirk
The current fixup for dell-bios model with STAC9228 codec contains the
override of pin 0x0c for analog mic.  But this is actually just adding
a bogus pin and confuses the parser.  Better to remove it for the
auto-mic switching.

Meanwhile, for a possible regression, keep the old configuration as
model=dell-bios-amic, so that people can test it again quickly.

Tested on Dell 1420n laptop.

Reported-and-tested-by: Eric Shattow <lucent@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-29 16:30:21 +02:00
Wang Xingchao
7d4f606c50 ALSA: hda - WAKEEN feature enabling for runtime pm
With runtime power save feature enabled, Headphone hotplug
event will not be detected while controller/codec in D3. HDA has
feature WAKEEN to let codec wake up system if controller is in D3 or
system in S3.(HDA Spec 4.5.9.2/3). Codec can send out INT or wake up
controller depending on whether CIE or GIE enabled.(Figure 4, Interupt
structure).

The controller must be in RESET mode after enter runtime-suspend, otherwise
it will not be waken up even if codec send out wake-up event. And STATESTS
will be cleared after controller brought out of RESET mode.

This patch only enable WAKEEN for runtime-suspend(Controller D3) mode,
not for system S3 mode. with tool "evtest", Headphone hotplug events
could be cought and reported successfully.

[fixed an unused variable warning by tiwai]

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-29 14:33:20 +02:00
Wang Xingchao
18e6062756 ALSA: hda - jack poll once if jackpoll_interval==0
With jackpoll_interval != 0, it's used to poll jack event periodically
in a delayed work. if it's 0, give the caller chance to probe jack status
but will not restart the delayed work.

In the next patch which enable WAKEEN feature, HDA controller was able to wake
up system when it's in D3, it's useful to detect Jack hotplug event and notify
userspace. By default the jackpoll_interval=0, this patch let jack poll once
without starting the delayed work.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-29 14:19:10 +02:00
Wang Xingchao
7eaa9161ed ALSA: hda - Clearing jackpoll_interval avoid pending work
Clearing jackpoll_interval before calling cancel_delayed_work_sync(),
otherwise the work will be triggered again and cause impact in
hda_jackpoll_work(). The next patch will poll jack once even with
jackpoll_interval=0.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-29 14:19:03 +02:00
Wang Xingchao
da7db6ad4d ALSA: hda - use azx_writew() for 16-bit length register
Register STATESTS is 16-bit length, use correct API for read/write.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-24 15:59:32 +02:00
Kailang Yang
c5177c861e ALSA: hda - Fix the noise after suspend on ALC283 codec
When the power state of ALC283 codec goes to D3, it gives a noise via
headphone output.  This is because the driver tries to clear all pins
via snd_hda_shutup_pins().  Setting the mic pin to zero triggers such
a noise.

Define a new shutup call specific to this codec and control the pins
there more precisely.  Also, add the power-save enable/disable
sequences in the resume and the new shutup calls.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-24 14:44:40 +02:00
Takashi Iwai
9bfb2844a2 ALSA: hda/realtek - Selectively call snd_hda_shutup_pins()
Instead of calling snd_hda_shutup_pins() unconditionally, allow it be
called in spec->shutup callback.  In this way, we can avoid calling
this function if it causes a problem like we see in the next patch
following this.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-24 14:31:50 +02:00
Jingoo Han
b785a492c6 ALSA: replace strict_strto*() with kstrto*()
The usage of strict_strto*() is not preferred, because
strict_strto*() is obsolete. Thus, kstrto*() should be
used.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-21 11:56:18 +02:00
Takashi Iwai
60ea8ca21b ALSA: hda - Add snd_hda_jack_detect_state() helper function
snd_hda_jack_detect() function returns a boolean value for a jack
plugged in or not, but it also returns always true when the
corresponding pin is phantom (i.e. fixed).  This is OK in most cases,
but it makes the generic parser misbehaving about the auto-mute or
auto-mic switching, e.g. when one of headphone pins is a fixed.
Namely, the driver decides whether to mute the speaker or not, just
depending on the headphone plug state: if one of the headphone jacks
is seen as active, then the speaker is muted.  Thus this will result
always in the muted speaker output.

So, the problem is the function returns a boolean, after all, although
we need to think of "phantom" jack.  Now a new function,
snd_hda_jack_detect_state() is introduced to return these tristates.
The generic parser uses this function for checking the headphone or
mic jack states.

Meanwhile, the behavior of snd_hda_jack_detect() is kept as is, for
keeping compatibility in other driver codes.

Acked-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-21 11:52:54 +02:00
Takashi Iwai
f3e351eef3 ALSA: hda - Remove NO_PRESENCE bit override for Dell 1420n Laptop
The quirk for Dell laptops with STAC9228 overrides the pin default
config of NID 0x0f to the value with AC_DEFCFG_MISC_NO_PRESENCE bit
on.  I'm not quite sure why this was done so, but can guess that this
was introduced for avoiding this to be muted by another headphone
plug.  Now, after transition to the generic parser, this workaround
rather causes a problem (notably as unexpected speaker mutes) because
the pin is seen as if it's always plugged in.

Since the generic parser can handle multiple headphone plugging
gracefully, we can get rid of this override now.

Reported-and-tested-by: Eric Shattow <lucent@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-19 08:11:41 +02:00
Takashi Iwai
1ea9a69d1a ALSA: hda - Fix EAPD GPIO control for Sigmatel codecs
The EAPD GPIO is dynamically turned on/off for some machines with
Sigmatel codecs, but this didn't work as expected, and it resulted in
spontaneous lost of speaker outputs per HP plugging or power-saving.

This patch fixes the bug by simply including spec->eapd_mask into
spec->gpio_mask and spec->gpio_data bits.

Reported-and-tested-by: Eric Shattow <lucent@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-19 07:58:02 +02:00
David Henningsson
e4c3bce26d ALSA: hda - Headphone mic support for an Asus/Conexant device
This Conexant codec has a single jack that can be used as either
headphone or mic (but not headset). The existing hp_mic functionality
does not apply here, because the mic and the HP are on separate pins.

Hence make a lighter version of what has been earlier done for Realtek
codecs.

BugLink: https://bugs.launchpad.net/bugs/1198030
Tested-by: Franz Hsieh <franz.hsieh@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-16 11:57:37 +02:00
Aaron Plattner
d52392b1a8 ALSA: hda - Add new GPU codec ID to snd-hda
Vendor ID 0x10de0060 is used by a yet-to-be-named GPU chip.

Reviewed-by: Andy Ritger <aritger@nvidia.com>
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-16 08:14:49 +02:00
Takashi Iwai
cc7282b8d5 ALSA: atiixp: Fix unlocked snd_pcm_stop() call
snd_pcm_stop() must be called in the PCM substream lock context.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-15 18:12:49 +02:00
Takashi Iwai
60478295d6 ALSA: asihpi: Fix unlocked snd_pcm_stop() call
snd_pcm_stop() must be called in the PCM substream lock context.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-15 18:12:49 +02:00
Fengguang Wu
68593c9340 ALSA: hdspm - remove unneeded semicolon
sound/pci/rme9652/hdspm.c:1110:2-3: Unneeded semicolon

Generated by: coccinelle/misc/semicolon.cocci

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-15 15:46:13 +02:00
Takashi Iwai
a067c035a0 Merge branch 'for-3.12' into for-next 2013-07-15 12:09:28 +02:00
Linus Torvalds
0fb3767b0a sound fixes for 3.11
A few small fixes (and cleanups) for HD-audio, USB-audio and ASoC.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQIcBAABAgAGBQJR3otvAAoJEGwxgFQ9KSmkfosP/28H6yuH1il0une1Z+zvmwa3
 t8AqzBf9FPaa+mODW38NQH+P7k9Pq7dNheq12h4ERzRKurOy0IdGOJ//gq2qtuEL
 mr0MoOa9nvD13+DlPWswDkgZzgJjAqTXlW+w4ls8RhhqglxFhOwhMrmaloNnmQbY
 63NF/tFh+vDiAQBSvxHG8vflX0EXW1as7I4x79j66G62SE2IFsqqc9FGrujTx6s2
 d13y427EmHm04exi7CDK+yM338Kud7L8dBzllvwNx+IMPv8cpK3iWWdR6YhGGMdo
 wraMmv6z7z6LJxi6aadzX2zp6H6vC0XnBZ3Ikeu0mQm1xuMFD1lZdFWRFkLe54z3
 L3JQ+41CU/kYkikK2Z69cEW2sTGMDNF2997bO7A770uZcs2Um0CIj0uoUTD90TQc
 lWRQb+PnpP/g4iZ+LMo8js3VsTmMPVxgn/XzpQBp1YXyDXNOAsb0RVIKfRCEBpxn
 yB0nGwIo6HPf9Z8FM3sFIafZXWInzxITGH4ixMEzCLsExhmydRK5vyIXFeZx91ek
 j/w+3GTh1SfO9Lz8RA/jbRn4IKp26m9MFXc0U73eJ5FJqzoyTMMIaRXytpoI+Tr2
 E4efThFmNhVzS0tN0yyhfJwobbhUln8XXP57n8GD+L4jHCa/8haLWsKJfNBDSZbG
 gdvzsB/vXr29ocev/L4k
 =Oabk
 -----END PGP SIGNATURE-----

Merge tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "A few small fixes (and cleanups) for HD-audio, USB-audio and ASoC"

* tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: usb-audio: fix regression for fixed stream quirk
  ALSA: hda - Keep halting ALC5505 DSP
  ASoC: wm8962: fix NULL pdata pointer
  ASoC: imx-sgtl5000: return E_PROBE_DEFER if ssi/codec not found
  ASoC: Samsung: Remove redundant comment
  ALSA: hda - Fix EAPD vmaster hook for AD1884 & co
  ASoC: samsung: Remove obsolete GPIO based DT pinmuxing
  ASoC: mxs: register saif mclk to clock framework
2013-07-11 12:45:59 -07:00
Takashi Iwai
97c4de8fc0 Merge branch 'topic/hda-ad-remove-static' into for-3.12 2013-07-10 17:53:35 +02:00
Linus Torvalds
2e17c5a97e Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
 "Okay this is the big one, I was stalled on the fbdev pull req as I
  stupidly let fbdev guys merge a patch I required to fix a warning with
  some patches I had, they ended up merging the patch from the wrong
  place, but the warning should be fixed.  In future I'll just take the
  patch myself!

  Outside drm:

  There are some snd changes for the HDMI audio interactions on haswell,
  they've been acked for inclusion via my tree.  This relies on the
  wound/wait tree from Ingo which is already merged.

  Major changes:

  AMD finally released the dynamic power management code for all their
  GPUs from r600->present day, this is great, off by default for now but
  also a huge amount of code, in fact it is most of this pull request.

  Since it landed there has been a lot of community testing and Alex has
  sent a lot of fixes for any bugs found so far.  I suspect radeon might
  now be the biggest kernel driver ever :-P p.s.  radeon.dpm=1 to enable
  dynamic powermanagement for anyone.

  New drivers:

  Renesas r-car display unit.

  Other highlights:

   - core: GEM CMA prime support, use new w/w mutexs for TTM
     reservations, cursor hotspot, doc updates
   - dvo chips: chrontel 7010B support
   - i915: Haswell (fbc, ips, vecs, watermarks, audio powerwell),
     Valleyview (enabled by default, rc6), lots of pll reworking, 30bpp
     support (this time for sure)
   - nouveau: async buffer object deletion, context/register init
     updates, kernel vp2 engine support, GF117 support, GK110 accel
     support (with external nvidia ucode), context cleanups.
   - exynos: memory leak fixes, Add S3C64XX SoC series support, device
     tree updates, common clock framework support,
   - qxl: cursor hotspot support, multi-monitor support, suspend/resume
     support
   - mgag200: hw cursor support, g200 mode limiting
   - shmobile: prime support
   - tegra: fixes mostly

  I've been banging on this quite a lot due to the size of it, and it
  seems to okay on everything I've tested it on."

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (811 commits)
  drm/radeon/dpm: implement vblank_too_short callback for si
  drm/radeon/dpm: implement vblank_too_short callback for cayman
  drm/radeon/dpm: implement vblank_too_short callback for btc
  drm/radeon/dpm: implement vblank_too_short callback for evergreen
  drm/radeon/dpm: implement vblank_too_short callback for 7xx
  drm/radeon/dpm: add checks against vblank time
  drm/radeon/dpm: add helper to calculate vblank time
  drm/radeon: remove stray line in old pm code
  drm/radeon/dpm: fix display_gap programming on rv7xx
  drm/nvc0/gr: fix gpc firmware regression
  drm/nouveau: fix minor thinko causing bo moves to not be async on kepler
  drm/radeon/dpm: implement force performance level for TN
  drm/radeon/dpm: implement force performance level for ON/LN
  drm/radeon/dpm: implement force performance level for SI
  drm/radeon/dpm: implement force performance level for cayman
  drm/radeon/dpm: implement force performance levels for 7xx/eg/btc
  drm/radeon/dpm: add infrastructure to force performance levels
  drm/radeon: fix surface setup on r1xx
  drm/radeon: add support for 3d perf states on older asics
  drm/radeon: set default clocks for SI when DPM is disabled
  ...
2013-07-09 16:04:31 -07:00
Takashi Iwai
cd63a5ffd2 ALSA: hda - Keep halting ALC5505 DSP
ALC5505 DSP is enabled even though we don't use the features yet at
all.  This results in the unnecessarily high power consumption, more
than 100mV higher.  Until we implement the DSP support, better to
bypass DSP for saving more power.

Reported-by: Mengdong Lin <mengdong.lin@intel.com>
[Patch modified by Mengdong to cal alc5505_dsp_init() with extra
acl5505_dsp_halt().]

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-08 09:42:42 +02:00
Martin Dausel
69358fca42 ALSA: hdspm - Added some comments and control register documentation
Signed-off-by: Martin Dausel <martin.dausel@iosono-sound.com>
Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:53:43 +02:00
Adrian Knoth
04659f9e9e ALSA: hdspm - Use snd_ctl_enum_info() in snd_hdspm_info_autosync_ref
Also use snd_ctl_enum_info() to fill the autosync text fields on AES32
and MADI cards (only users of snd_hdspm_info_autosync_ref).

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:53:32 +02:00
Adrian Knoth
eb0d4dbf3d ALSA: hdspm - Use snd_ctl_enum_info() for texts_autosync
Also use snd_ctl_enum_info() to fill the autosync enumerated controls.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:53:25 +02:00
Adrian Knoth
38816545a2 ALSA: hdspm - Use snd_ctl_enum_info for most text arrays
Use snd_ctl_enum_info() to fill most of the enumerated controls. More
non-trivial occurrences will follow in separate commits.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:53:18 +02:00
Adrian Knoth
0dc831b9bc ALSA: hdspm - AES32: Enable TCO support
This patch finally enables TCO support on RME AES(32) cards.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:53:11 +02:00
Adrian Knoth
2d63ec38f5 ALSA: hdspm - AES32: Report external sample rate to userspace
This patch adds a new ALSA control to read the external sample rate from
userspace on RME AES(32) cards.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:53:04 +02:00
Adrian Knoth
2336142fc0 ALSA: hdspm - Introduce hdspm_external_rate_to_enum() helper function
This patch refactors the code to query the external sample rate and its
translation into the corresponding enum into a helper function to
prevent future code duplication.

A later commit will make use of this new helper function.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:57 +02:00
Adrian Knoth
194062daba ALSA: hdspm - AES32: Include TCO and Sync-In in proc output
Also report TCO status and Sync-In via /proc/ on AES(32) cards.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:49 +02:00
Adrian Knoth
2d60fc7f7d ALSA: hdspm - AES32: Enable TCO/Sync-In in snd_hdspm_put_sync_ref()
This patch enables the user to select "TCO" and "Sync In" as a preferred
sync reference on RME AES(32) cards.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:42 +02:00
Adrian Knoth
dbae4a0c8d ALSA: hdspm - AES32: Enable TCO input in hdspm_external_sample_rate()
This patch adds support to read the TCO sample rate in
hdspm_external_sample_rate() on RME AES(32) cards.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:37 +02:00
Adrian Knoth
3ac9b0acc3 ALSA: hdspm - AES32: Ignore float/int format bit
As mentioned in the comment, the AES32 cards must not set the format
bit, since it is used to indicate the preferred sync setting instead.

We hence simply skip the corresponding part in the hw_params function.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:31 +02:00
Adrian Knoth
051c44fec7 ALSA: hdspm - Enable AES32 in hdspm_get_tco_sample_rate
This patch adds AES32 specific code to hdspm_get_tco_sample_rate to
query the TCO sample rate.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:22 +02:00
Adrian Knoth
a57fea8ed4 ALSA: hdspm - Enable AES32 in hdspm_get_wc_sample_rate
This patch adds AES32 specific code to hdspm_get_wc_sample_rate() to
query the wordclock frequency.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:17 +02:00
Adrian Knoth
5b266354b9 ALSA: hdspm - Add prototype declarations
This patch only introduces prototype declarations, no real change. The
functions themselves are already present.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:10 +02:00
Adrian Knoth
d3c36ed8e5 ALSA: hdspm - Introduce hdspm_get_aes_sample_rate()
Helper function to return the AES sample rate class. This class needs to
be translated via HDSPM_bit2freq() to get the more common
representation.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:52:04 +02:00
Adrian Knoth
db2d1a913d ALSA: hdspm - AES32: Add TCO and Sync-In text entries
Provide the text for the two new clock options "TCO" and "Sync In" on
AES32 cards.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:51:57 +02:00
Adrian Knoth
3c32de58ae ALSA: hdspm - AIO: Drop superfluous HDSPM_AUTOSYNC_REF
The HDSPM_AUTOSYNC_REF macro is only implemented for MADI and AES32
cards, so it doesn't make sense to call it on AIO boards.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:51:49 +02:00
Adrian Knoth
e71b95ad71 ALSA: hdspm - Cosmetics, no real change
This patch does nothing, it's sole intent is to clean up the code.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:51:37 +02:00
Adrian Knoth
b0bf550476 ALSA: hdspm - AES32: Fix TCO sync check reporting
HDSPM_tco_lock and HDSPM_tcoLock were too close, so the previous code
didn't honour the difference between the two.

Let's be more verbose and use HDSPM_tcoLockMadi for MADI cards,
HDSPM_tcoLockAes for AES(32) and fix the code that makes use of both.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:51:27 +02:00
Adrian Knoth
5760107c82 ALSA: hdspm - Create TCO readout function
This patch separates the TCO bits from snd_hdspm_proc_read_madi(), so
the new function can later be shared between MADI and AES32 cards.

It's essentially only moving code around, no new functionality.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:51:21 +02:00
Adrian Knoth
1cb7dbf489 ALSA: hdspm - Fix S/PDIF Sync status and frequency on RME AIO
This is a left-over mistake from old code, the correct register offset is
provided in kcontrol->private_value, not in the index.
Cf. RayDAT case, where it has already been corrected.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:51:12 +02:00
Adrian Knoth
3de9db264c ALSA: hdspm - Add support for AEBs on RME AIO
AIO cards allow to use AEB (Analogue Expansion Boards) to add four
input and/or output channels.

This patch adds the necessary code to detect and enable the additional
I/O channels.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:51:06 +02:00
Adrian Knoth
42f4c12dcf ALSA: hdspm - Enable AD/DA/PH gains and S/PDIF-Input select on AIO
This patch uses the newly introduced HDSPM_CONTROL_TRISTATE functions to
create and expose the following ALSA controls:

   - Gain selection for Input, Output and Phones (HiGain, +4dBu, -10dbV)
   - S/PDIF Input select (Coaxial, Optical, Internal)

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:51:00 +02:00
Adrian Knoth
acf14767e1 ALSA: hdspm - Introduce generic AIO tristate control
AIO cards offer at least four individual settings options with three
states each. Those settings are represented as two bits in the settings
register with the following meaning:

   0*some_base_bit --> Option value 0
   1*some_base_bit --> Option value 1
   2*some_base_bit --> Option value 2
   3*some_base_bit --> mask to select the two involved bits

This patch adds a generic ALSA control macro for such a value-to-bit
pattern mapping. It will be used in a later commit to expose four new
controls.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-07-05 14:50:49 +02:00