1. 26 Apr, 2012 5 commits
    • Liam Girdwood's avatar
      ASoC: dpcm: Add API for DAI link substream and runtime lookup · 47c88fff
      Liam Girdwood authored
      Some component drivers will need to be able to look up their
      DAI link substream and RTD data. Provide a mechanism for this.
      Signed-off-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      47c88fff
    • Liam Girdwood's avatar
      ASoC: dpcm: Add runtime dynamic route update · 618dae11
      Liam Girdwood authored
      This patch allows DPCM to dynamically alter the FE to BE PCM links
      at runtime based on mixer setting updates. DAPM is looked up after
      every mixer update and we perform a DPCM runtime update if the
      mixer has a change of value.
      
      This patchs adds/changes the following :-
      
       o Adds DPCM runtime update core.
       o Changes soc_dapm_mixer_update_power() and soc_dapm_mux_update_power()
         to return if a change has occured rather than 0. No other users check
         atm.
      Signed-off-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      618dae11
    • Liam Girdwood's avatar
      ASoC: dpcm: Add debugFS support for DPCM · f86dcef8
      Liam Girdwood authored
      Add debugFS files for DPCM link management information.
      Signed-off-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      f86dcef8
    • Liam Girdwood's avatar
      ASoC: dpcm: Add Dynamic PCM core operations. · 01d7584c
      Liam Girdwood authored
      The Dynamic PCM core allows digital audio data to be dynamically
      routed between different ALSA PCMs and DAI links on SoC CPUs with
      on chip DSP devices. e.g. audio data could be played on pcm:0,0 and
      routed to any (or all) SoC DAI links.
      
      Dynamic PCM introduces the concept of Front End (FE) PCMs and Back
      End (BE) PCMs. The FE PCMs are normal ALSA PCM devices except that
      they can dynamically route digital audio data to any supported BE
      PCM. A BE PCM has no ALSA device, but represents a DAI link and it's
      substream and audio HW parameters.
      
      e.g. pcm:0,0 routing digital data to 2 external codecs.
      
      FE pcm:0,0  ----> BE (McBSP.0) ----> CODEC 0
                   +--> BE (McPDM.0) ----> CODEC 1
      
      e.g. pcm:0,0 and pcm:0,1 routing digital data to 1 external codec.
      
      FE pcm:0,0 ---
                   +--> BE (McBSP.0) ----> CODEC
      FE pcm:0,1 ---
      
      The digital audio routing is controlled by the usual ALSA method
      of mixer kcontrols. Dynamic PCM uses a DAPM graph to work out the
      routing based upon the mixer settings and configures the BE PCMs
      based on routing and the FE HW params.
      
      DPCM is designed so that most ASoC component drivers will need no
      modification at all. It's intended that existing CODEC, DAI and
      platform drivers can be used in DPCM based audio devices without
      any changes. However, there will be some cases where minor changes
      are required (e.g. for very tightly coupled HW) and there are
      helpers to support this too.
      
      Somethimes the HW params of a FE and BE do not match or are
      incompatible, so in these cases the machine driver can reconfigure
      any hw_params and make any DSP perform sample rate / format conversion.
      
      This patch adds the core DPCM code and contains :-
      
       o The FE and BE PCM operations.
       o FE and BE DAI link support.
       o FE and BE PCM creation.
       o BE support API.
       o BE and FE link management.
      Signed-off-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      01d7584c
    • Fabio Estevam's avatar
      ASoC: core: Remove unused variable 'min' · f20c2cb9
      Fabio Estevam authored
      commit 4183eed2 (ASoC: core: Add signed multi register control) introduced
      the variable 'min',but it is not used.
      
      Remove it to fix the following build warning:
      
      sound/soc/soc-core.c: In function 'snd_soc_put_xr_sx':
      sound/soc/soc-core.c:2990: warning: unused variable 'min'
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      f20c2cb9
  2. 25 Apr, 2012 5 commits
  3. 23 Apr, 2012 5 commits
  4. 19 Apr, 2012 2 commits
  5. 18 Apr, 2012 2 commits
  6. 17 Apr, 2012 3 commits
  7. 16 Apr, 2012 11 commits
    • Mark Brown's avatar
      ASoC: Use dai_fmt in Speyside · 26e67811
      Mark Brown authored
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      26e67811
    • Mark Brown's avatar
      ASoC: Merge tag 'v3.4-rc3' into for-3.5 · d5efccd5
      Mark Brown authored
      Linux 3.4-rc3 contains a bunch of Tegra changes which are conflicting
      annoyingly with the new development that's going on for Tegra so merge
      it up to resolve those conflicts.
      
      Conflicts:
      	sound/soc/soc-core.c
      	sound/soc/tegra/tegra_i2s.c
      	sound/soc/tegra/tegra_spdif.c
      d5efccd5
    • Fabio Estevam's avatar
      ASoC: soc-dapm: Use '%llx' with 'u64' type. · 516541a0
      Fabio Estevam authored
      Fix the following build warning:
      
      sound/soc/soc-dapm.c: In function 'snd_soc_dai_link_event':
      sound/soc/soc-dapm.c:2913: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'u64'
      
      '%llx' should be used with 'u64' type.
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      516541a0
    • Mark Brown's avatar
      ASoC: core: Support transparent CODEC<->CODEC DAI links · c74184ed
      Mark Brown authored
      Rather than having the user half start a stream but avoid any DMA to
      trigger data flow on links which don't pass through the CPU create a
      DAPM route between the two DAI widgets using a hw_params configuration
      provided by the machine driver with the new 'params' member of the
      dai_link struct.  If no configuration is provided in the dai_link then
      use the old style even for CODEC<->CODEC links to avoid breaking
      systems.
      
      This greatly simplifies the userspace usage of such links, making them
      as simple as analogue connections with the stream configuration being
      completely transparent to them.
      
      This is achieved by defining a new dai_link widget type which is created
      when CODECs are linked and triggering the configuration of the link via
      the normal PCM operations from there.  It is expected that the bias
      level callbacks will be used for clock configuration.
      
      Currently only the DAI format, rate and channel count can be configured
      and currently the only DAI operations which can be called are hw_params
      and digital_mute().  This corresponds well to the majority of CODEC
      drivers which only use other callbacks for constraint setting but there
      is obviously much room for extension here.  We can't simply call
      hw_params() on startup as things like the system clocking configuration
      may change at runtime and in future it will be desirable to offer some
      configurability of the link parameters.
      
      At present we are also restricted to a single DAPM link for the entire
      DAI.  Once we have better support for channel mapping it would also be
      desirable to extend this feature so that we can propagate per-channel
      power state over the link.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      c74184ed
    • Mark Brown's avatar
      ASoC: core: Bind DAIs to CODECs at registration time · 054880fe
      Mark Brown authored
      We should always have a CODEC already there when registering a CODEC DAI
      and for CODEC<->CODEC links a dai_link will have two CODECs so it's much
      simpler to do things at registration time.
      
      This results in a slight change in the error handling for failed CODEC
      DAI registrations but practically speaking these are never supposed to
      fail so there shouldn't be much issue. The change is that we don't fail
      the overall CODEC registration if the DAI registration fails; this seems
      more robust anyway as we may not need to use a given DAI in a particular
      system.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      054880fe
    • Mark Brown's avatar
      ASoC: core: Flip master for CODECs in the CPU slot of a CODEC<->CODEC link · f04209a7
      Mark Brown authored
      When two CODEC DAIs are linked directly to each other then if we give the
      same master mode settings to both devices things won't work as either
      neither will drive or they'll drive against each other. Flip the settings
      for the DAI in the CPU slot of the DAI link.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      f04209a7
    • Mark Brown's avatar
      ASoC: dapm: Allow DAI widgets to be routed through · 1eee1b38
      Mark Brown authored
      In order to allow CODEC<->CODEC links to function we will need to allow
      DAPM paths to be created that pass through DAIs rather than only ones
      that are source or sunk at the DAI.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      1eee1b38
    • Mark Brown's avatar
      ASoC: core: Return -ENOTSUPP instead of -EINVAL if mute is not supported · 04570c62
      Mark Brown authored
      This helps us ignore errors in callers if the operation failed due to not
      being available as opposed to an error.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      04570c62
    • Linus Torvalds's avatar
      Linux 3.4-rc3 · e816b57a
      Linus Torvalds authored
      e816b57a
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · 9a8e5d41
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Nothing too disasterous, the biggest thing being the removal of the
        regulator support for vcore in the AMBA driver; only one SoC was using
        this and it got broken during the last merge window, which then
        started causing problems for other people.  Mutual agreement was
        reached for it to be removed."
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: 7386/1: jump_label: fixup for rename to static_key
        ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE
        ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU
        ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus
        ARM: 7383/1: nommu: populate vectors page from paging_init
        ARM: 7381/1: nommu: fix typo in mm/Kconfig
        ARM: 7380/1: DT: do not add a zero-sized memory property
        ARM: 7379/1: DT: fix atags_to_fdt() second call site
        ARM: 7366/3: amba: Remove AMBA level regulator support
        ARM: 7377/1: vic: re-read status register before dispatching each IRQ handler
        ARM: 7368/1: fault.c: correct how the tsk->[maj|min]_flt gets incremented
      9a8e5d41
    • Linus Torvalds's avatar
      x86-32: fix up strncpy_from_user() sign error · 12e993b8
      Linus Torvalds authored
      The 'max' range needs to be unsigned, since the size of the user address
      space is bigger than 2GB.
      
      We know that 'count' is positive in 'long' (that is checked in the
      caller), so we will truncate 'max' down to something that fits in a
      signed long, but before we actually do that, that comparison needs to be
      done in unsigned.
      
      Bug introduced in commit 92ae03f2 ("x86: merge 32/64-bit versions of
      'strncpy_from_user()' and speed it up").  On x86-64 you can't trigger
      this, since the user address space is much smaller than 63 bits, and on
      x86-32 it works in practice, since you would seldom hit the strncpy
      limits anyway.
      
      I had actually tested the corner-cases, I had only tested them on
      x86-64.  Besides, I had only worried about the case of a pointer *close*
      to the end of the address space, rather than really far away from it ;)
      
      This also changes the "we hit the user-specified maximum" to return
      'res', for the trivial reason that gcc seems to generate better code
      that way.  'res' and 'count' are the same in that case, so it really
      doesn't matter which one we return.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      12e993b8
  8. 15 Apr, 2012 7 commits
    • Rabin Vincent's avatar
      ARM: 7386/1: jump_label: fixup for rename to static_key · 708e5978
      Rabin Vincent authored
      c5905afb ("static keys: Introduce 'struct static_key'...") renamed
      struct jump_label_key to struct static_key.  Fixup ARM for this to
      eliminate these build warnings:
      
        include/linux/jump_label.h:113:2:
        warning: passing argument 1 of 'arch_static_branch' from incompatible pointer type
        include/asm/jump_label.h:17:82:
        note: expected 'struct jump_label_key *' but argument is of type 'struct static_key *'
      Signed-off-by: default avatarRabin Vincent <rabin@rab.in>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      708e5978
    • Jonathan Austin's avatar
      ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE · 078c0454
      Jonathan Austin authored
      Currently when ThumbEE is not enabled (!CONFIG_ARM_THUMBEE) the ThumbEE
      register states are not saved/restored at context switch. The default state
      of the ThumbEE Ctrl register (TEECR) allows userspace accesses to the
      ThumbEE Base Handler register (TEEHBR). This can cause unexpected behaviour
      when people use ThumbEE on !CONFIG_ARM_THUMBEE kernels, as well as allowing
      covert communication - eg between userspace tasks running inside chroot
      jails.
      
      This patch sets up TEECR in order to prevent user-space access to TEEHBR
      when !CONFIG_ARM_THUMBEE. In this case, tasks are sent SIGILL if they try to
      access TEEHBR.
      
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarJonathan Austin <jonathan.austin@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      078c0454
    • Will Deacon's avatar
      ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU · e5ab8580
      Will Deacon authored
      If a bank of memory spanning the 4GB boundary is added on a !CONFIG_LPAE
      kernel then we will hang early during boot since the memory bank will
      have wrapped around to zero.
      
      This patch truncates memory banks for !LPAE configurations when the end
      address is not representable in 32 bits.
      Acked-by: default avatarNicolas Pitre <nico@linaro.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      e5ab8580
    • Linus Walleij's avatar
      ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus · 9f855503
      Linus Walleij authored
      During booting of cpu1, there is a short window where cpu1
      is online, but not active where cpu1 is occupied by waiting
      to become active. If cpu0 then decides to schedule something
      on cpu1 and wait for it to complete, before cpu0 has set
      cpu1 active, we have a deadlock.
      
      Typically it's this CPU frequency transition that happens at
      this time, so let's just not wait for it to happen, it will
      happen whenever the CPU eventually comes online instead.
      
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJonas Aaberg <jonas.aberg@stericsson.com>
      Reviewed-by: default avatarRickard Andersson <rickard.andersson@stericsson.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      9f855503
    • Rafael J. Wysocki's avatar
      PCI: Fix regression in pci_restore_state(), v3 · ebfc5b80
      Rafael J. Wysocki authored
      Commit 26f41062 ("PCI: check for pci bar restore completion and
      retry") attempted to address problems with PCI BAR restoration on
      systems where FLR had not been completed before pci_restore_state() was
      called, but it did that in an utterly wrong way.
      
      First off, instead of retrying the writes for the BAR registers only, it
      did that for all of the PCI config space of the device, including the
      status register (whose value after the write quite obviously need not be
      the same as the written one).  Second, it added arbitrary delay to
      pci_restore_state() even for systems where the PCI config space
      restoration was successful at first attempt.  Finally, the mdelay(10) it
      added to every iteration of the writing loop was way too much of a delay
      for any reasonable device.
      
      All of this actually caused resume failures for some devices on Mikko's
      system.
      
      To fix the regression, make pci_restore_state() only retry the writes
      for BAR registers and only wait if the first read from the register
      doesn't return the written value.  Additionaly, make it wait for 1 ms,
      instead of 10 ms, after every failing attempt to write into config
      space.
      Reported-by: default avatarMikko Vinni <mmvinni@yahoo.com>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ebfc5b80
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 6c23b8e9
      Linus Torvalds authored
      Pull "ARM: a few more SoC fixes for 3.4-rc" from Olof Johansson:
       - A handful of warning and build fixes for Qualcomm MSM
       - Build/warning and bug fixes for Samsung Exynos
       - A fix from Rob Herring that removes misplaced interrupt-parent
         properties from a few device trees
       - A fix to OMAP dealing with cpufreq build errors, removing some of the
         offending code since it was redundant anyway
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors
        ARM: dts: remove blank interrupt-parent properties
        ARM: EXYNOS: Fix Kconfig dependencies for device tree enabled machine files
        ARM: EXYNOS: Remove broken config values for touchscren for NURI board
        ARM: EXYNOS: set fix xusbxti clock for NURI and Universal210 boards
        ARM: EXYNOS: fix regulator name for NURI board
        ARM: SAMSUNG: make SAMSUNG_PM_DEBUG select DEBUG_LL
        ARM: msm: Fix section mismatches in proc_comm.c
        video: msm: Fix section mismatches in mddi.c
        arm: msm: trout: fix compile failure
        arm: msm: halibut: remove unneeded fixup
        ARM: EXYNOS: Add PDMA and MDMA physical base address defines
        ARM: S5PV210: Fix compiler warning in dma.c file
        ARM: EXYNOS: Fix compile error in exynos5250-cpufreq.c
        ARM: EXYNOS: Add missing definition for IRQ_I2S0
        ARM: S5PV210: fix unused LDO supply field from wm8994_pdata
      6c23b8e9
    • Linus Torvalds's avatar
      Merge tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 218a8c2b
      Linus Torvalds authored
      Pull another round of sound fixes from Takashi Iwai:
       "A few regression fixes for Realtek HD-audio codecs, mainly specific to
        some laptop models."
      
      * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda/realtek - Fix mem leak (and rid us of trailing whitespace).
        ALSA: hda/realtek - Add quirk for Mac Pro 5,1 machines
        ALSA: hda/realtek - Add a fixup entry for Acer Aspire 8940G
        ALSA: hda/realtek - Fix GPIO1 setup for Acer Aspire 4930 & co
        ALSA: hda/realtek - Add a few ALC882 model strings back
      218a8c2b