20 Feb, 2014

1 commit


01 Feb, 2014

2 commits

  • Pull sound fixes from Takashi Iwai:
    "The big chunks here are the updates for oxygen driver for Xonar DG
    devices, which were slipped from the previous pull request. They are
    device-specific and thus not too dangerous.

    Other than that, all patches are small bug fixes, mainly for Samsung
    build fixes, a few HD-audio enhancements, and other misc ASoC fixes.
    (And this time ASoC merge is less than Octopus, lucky seven :)"

    * tag 'sound-fix-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (42 commits)
    ALSA: hda/hdmi - allow PIN_OUT to be dynamically enabled
    ALSA: hda - add headset mic detect quirks for another Dell laptop
    ALSA: oxygen: Xonar DG(X): cleanup and minor changes
    ALSA: oxygen: Xonar DG(X): modify high-pass filter control
    ALSA: oxygen: Xonar DG(X): modify input select functions
    ALSA: oxygen: Xonar DG(X): modify capture volume functions
    ALSA: oxygen: Xonar DG(X): use headphone volume control
    ALSA: oxygen: Xonar DG(X): modify playback output select
    ALSA: oxygen: Xonar DG(X): capture from I2S channel 1, not 2
    ALSA: oxygen: Xonar DG(X): move the mixer code into another file
    ALSA: oxygen: modify CS4245 register dumping function
    ALSA: oxygen: modify adjust_dg_dac_routing function
    ALSA: oxygen: Xonar DG(X): modify DAC/ADC parameters function
    ALSA: oxygen: Xonar DG(X): modify initialization functions
    ALSA: oxygen: Xonar DG(X): add new CS4245 SPI functions
    ALSA: oxygen: additional definitions for the Xonar DG/DGX card
    ALSA: oxygen: change description of the xonar_dg.c file
    ALSA: oxygen: export oxygen_update_dac_routing symbol
    ALSA: oxygen: add mute mask for the OXYGEN_PLAY_ROUTING register
    ALSA: oxygen: modify the SPI writing function
    ...

    Linus Torvalds
     
  • Commit 384a48d71520 "ALSA: hda: HDMI: Support codecs with fewer cvts
    than pins" dynamically enabled each pin widget's PIN_OUT only when the
    pin was actively in use. This was required on certain NVIDIA CODECs for
    correct operation. Specifically, if multiple pin widgets each had their
    mux input select the same audio converter widget and each pin widget had
    PIN_OUT enabled, then only one of the pin widgets would actually receive
    the audio, and often not the one the user wanted!

    However, this apparently broke some Intel systems, and commit
    6169b673618b "ALSA: hda - Always turn on pins for HDMI/DP" reverted the
    dynamic setting of PIN_OUT. This in turn broke the afore-mentioned NVIDIA
    CODECs.

    This change supports either dynamic or static handling of PIN_OUT,
    selected by a flag set up during CODEC initialization. This flag is
    enabled for all recent NVIDIA GPUs.

    Reported-by: Uosis
    Cc: # v3.13
    Signed-off-by: Stephen Warren
    Signed-off-by: Takashi Iwai

    Stephen Warren
     

30 Jan, 2014

22 commits

  • When we plug a 3-ring headset on the Dell machine (Vendor ID:
    0x10ec0255, Subsystem ID: 0x1028064d), 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
    Tested-by: Doro Wu
    Cc: stable@vger.kernel.org
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • This completes the hardware support for the Asus Xonar DG/DGX cards,
    and makes them actually usable.

    This is v4 of Roman's patch set with some small formatting changes.

    Takashi Iwai
     
  • Pull slave-dma updates from Vinod Koul:
    - new driver for BCM2835 used in R-pi
    - new driver for MOXA ART
    - dma_get_any_slave_channel API for DT based systems
    - minor fixes and updates spread acrooss driver

    [ The fsl-ssi dual fifo mode support addition clashed badly with the
    other changes to fsl-ssi that came in through the sound merge. I did
    a very rough cut at fixing up the conflict, but Nicolin Chen (author
    of both sides) will need to verify and check things ]

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (36 commits)
    dmaengine: mmp_pdma: fix mismerge
    dma: pl08x: Export pl08x_filter_id
    acpi-dma: align documentation with kernel-doc format
    dma: fix vchan_cookie_complete() debug print
    DMA: dmatest: extend the "device" module parameter to 32 characters
    drivers/dma: fix error return code
    dma: omap: Set debug level to debugging messages
    dmaengine: fix kernel-doc style typos for few comments
    dma: tegra: add support for Tegra148/124
    dma: dw: use %pad instead of casting dma_addr_t
    dma: dw: join split up messages
    dma: dw: fix style of multiline comment
    dmaengine: k3dma: fix sparse warnings
    dma: pl330: Use dma_get_slave_channel() in the of xlate callback
    dma: pl330: Differentiate between submitted and issued descriptors
    dmaengine: sirf: Add device_slave_caps interface
    DMA: Freescale: change BWC from 256 bytes to 1024 bytes
    dmaengine: Add MOXA ART DMA engine driver
    dmaengine: Add DMA_PRIVATE to BCM2835 driver
    dma: imx-sdma: Assign a default script number for ROM firmware cases
    ...

    Linus Torvalds
     
  • Remove old SPI control functions, change anti-pop init
    sequence, remove some garbage from structures. The 'Apply' functions
    must be called at the mixer initialization, otherwise
    mixer settings sometimes will not be applied at startup.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Change the 'put' function of the high-pass filter control to use the new
    SPI functions.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • First of all, we should not touch the GPIOs. They are not
    for selecting the capture source, but they seems just enable
    the whole audio input curcuit. The 'put' function calls the
    'apply' functions to change register values. Change the order
    of capture sources.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Modify the input_vol_* functions to use the new SPI routines,
    There is a new applying function that will be called when
    the capture source changed.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • I tried both variants: volume control and impedance selector.
    In the first case one minus is that we can't change the
    volume of multichannel output without additional software
    volume control. However, I am using this variant for the
    last three months and this seems good. All multichannel
    speaker systems have internal amplifier with the
    volume control included, but not all headphones have
    this regulator. In the second case, my software volume
    control does not save the value after reboot.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Change the order of elements in the output select control. This will
    reduce the number of relay switches. Change 'put' function to call the
    oxygen_update_dac_routing() function. Otherwise multichannel playback
    does not work. Also there is a new function to apply settings, this
    prevents from duplicating the code.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Actually CS4245 connected to the I2S channel 1 for
    capture, not channel 2. Otherwise capturing and
    playback does not work for CS4245.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Moving the mixer code away makes things easier. The mixer
    will control the driver, so the functions of the
    driver need to be non-static.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Change the function to read the data from the new shadow buffer.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • When selecting the audio output destinations (headphones,
    FP headphones, multichannel output), the channel routing
    should be changed depending on what destination selected.
    Also unnecessary I2S channels are digitally muted. This
    function called when the user selects the destination
    in the ALSA mixer.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • When selecting the audio sample rate for CS4245,
    the MCLK divider should also be changed.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Change CS4245 initialization: different sequence and GPIO values,
    according to datasheets and reverse-engineering information.
    Change cleanup/resume/suspend functions, since they use
    initialization.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Add the new SPI write and read functions. The SPI read function
    is used for creating initial registers dump and may be used for
    debugging purposes. SPI operations are cached, so there is a new
    function to manage the cache (shadow). I have to remove
    the shift from the CS4245_SPI_* constants, since when
    we are performing the reading, we need to shift by 8 instead
    of 16.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Add additional constants to the xonar_dg.h file:
    capture and playback sources. Move GPIO_* constants and the
    dg struct to the header file from the xonar_dg.c file.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Add some additional information in comments and my copyright.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • When the user switches the output from stereo to multichannel
    or vice versa, the driver needs to update the channel routing.
    Instead of creating additional subroutines, I better export existing
    oxygen_update_dac_routing symbol from the oxygen mixer
    and call this function. It calls model.adjust_dac_routing()
    and my function does the work.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • The Xonar DG/DGX driver needs this mask to mute unnecessary
    channels.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • Modify the oxygen_write_spi() function to use the newly
    introduced oxygen_wait_spi() function. Change return value
    from void to int, so it can return error codes. Older
    drivers just ignore that return value, new drivers can
    check this value. We need to wait AFTER
    initiating the SPI transaction, otherwise read
    operation will not work.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     
  • The oxygen_wait_spi() function now performs waiting when the
    SPI bus completes a transaction. Introduce the timeout error
    checking and increase timeout to 200 from 40.

    Signed-off-by: Roman Volkov
    Signed-off-by: Clemens Ladisch

    Roman Volkov
     

29 Jan, 2014

2 commits


28 Jan, 2014

3 commits


25 Jan, 2014

1 commit

  • Similarly to other Apple products, MBA 1,1 needs a specific quirk.
    Pin 0x18 must be set to VREF_50 to have sound output. This was no
    longer done since commit 1a97b7f, resulting in a mute built-in speaker.

    This patch corrects the regression by creating a fixup for the MBA 1,1.

    Fixes: 1a97b7f22774 ("ALSA: hda/realtek - Remove the last static quirks for ALC882")
    Cc: [v3.4+]
    Tested-by: Adrien Vergé
    Signed-off-by: Adrien Vergé
    Signed-off-by: Takashi Iwai

    Adrien Vergé
     

24 Jan, 2014

4 commits

  • mach/dma.h is not referenced by this file. Remove it.

    Signed-off-by: Sachin Kamat
    Signed-off-by: Mark Brown

    Sachin Kamat
     
  • 'res' could be NULL from one of the operations above (line 1243). Thus
    check 'res' for NULL before releasing the region to avoid null pointer
    dereference.

    Signed-off-by: Sachin Kamat
    Signed-off-by: Mark Brown

    Sachin Kamat
     
  • Depend on MFD_ARIZONA to avoid the following build errors:

    sound/soc/codecs/arizona.c:218: undefined reference to `arizona_request_irq'
    sound/soc/codecs/arizona.c:226: undefined reference to `arizona_request_irq'
    sound/soc/codecs/arizona.c:1719: undefined reference to `arizona_request_irq'

    Signed-off-by: Sachin Kamat
    Signed-off-by: Mark Brown

    Sachin Kamat
     
  • Pull ARM SoC cleanups from Olof Johansson:
    "This is the branch where we usually queue up cleanup efforts, moving
    drivers out of the architecture directory, header file restructuring,
    etc. Sometimes they tangle with new development so it's hard to keep
    it strictly to cleanups.

    Some of the things included in this branch are:

    * Atmel SAMA5 conversion to common clock
    * Reset framework conversion for tegra platforms
    - Some of this depends on tegra clock driver reworks that are shared
    with Mike Turquette's clk tree.
    * Tegra DMA refactoring, which are shared branches with the DMA tree.
    * Removal of some header files on exynos to prepare for
    multiplatform"

    * tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits)
    ARM: mvebu: move Armada 370/XP specific definitions to armada-370-xp.h
    ARM: mvebu: remove prototypes of non-existing functions from common.h
    ARM: mvebu: move ARMADA_XP_MAX_CPUS to armada-370-xp.h
    serial: sh-sci: Rework baud rate calculation
    serial: sh-sci: Compute overrun_bit without using baud rate algo
    serial: sh-sci: Remove unused GPIO request code
    serial: sh-sci: Move overrun_bit and error_mask fields out of pdata
    serial: sh-sci: Support resources passed through platform resources
    serial: sh-sci: Don't check IRQ in verify port operation
    serial: sh-sci: Set the UPF_FIXED_PORT flag
    serial: sh-sci: Remove duplicate interrupt check in verify port op
    serial: sh-sci: Simplify baud rate calculation algorithms
    serial: sh-sci: Remove baud rate calculation algorithm 5
    serial: sh-sci: Sort headers alphabetically
    ARM: EXYNOS: Kill exynos_pm_late_initcall()
    ARM: EXYNOS: Consolidate selection of PM_GENERIC_DOMAINS for Exynos4
    ARM: at91: switch Calao QIL-A9260 board to DT
    clk: at91: fix pmc_clk_ids data type attriubte
    PM / devfreq: use inclusion instead of
    ARM: EXYNOS: remove for exynos
    ...

    Linus Torvalds
     

23 Jan, 2014

5 commits

  • Select S3C24XX_DMA instead of S3C2410_DMA to avoid following dependency issues
    and build errors:

    warning: (CPU_S3C2410 && CPU_S3C2442 && SND_SOC_SAMSUNG && SND_S3C24XX_I2S && SND_S3C2412_SOC_I2S && SND_SOC_SAMSUNG_SMDK2443_WM9710 && SND_SOC_SAMSUNG_LN2440SBC_ALC650) selects S3C2410_DMA which has unmet direct dependencies (ARCH_S3C24XX && S3C24XX_DMA && (CPU_S3C2410 || CPU_S3C2442))
    warning: (CPU_S3C2410 && CPU_S3C2442 && SND_SOC_SAMSUNG && SND_S3C24XX_I2S && SND_S3C2412_SOC_I2S && SND_SOC_SAMSUNG_SMDK2443_WM9710 && SND_SOC_SAMSUNG_LN2440SBC_ALC650) selects S3C2410_DMA which has unmet direct dependencies (ARCH_S3C24XX && S3C24XX_DMA && (CPU_S3C2410 || CPU_S3C2442))

    arch/arm/mach-s3c24xx/built-in.o: In function `s3c2410_dma_add':
    arch/arm/mach-s3c24xx/dma-s3c2410.c:134: undefined reference to `s3c2410_dma_init'
    arch/arm/mach-s3c24xx/dma-s3c2410.c:135: undefined reference to `s3c24xx_dma_order_set'
    arch/arm/mach-s3c24xx/dma-s3c2410.c:136: undefined reference to `s3c24xx_dma_init_map'
    arch/arm/plat-samsung/include/plat/dma-ops.h:60: undefined reference to `s3c_dma_get_ops'
    sound/soc/samsung/s3c24xx-i2s.c:293: undefined reference to `s3c2410_dma_ctrl'
    arch/arm/plat-samsung/include/plat/dma-ops.h:60: undefined reference to `s3c_dma_get_ops'
    arch/arm/plat-samsung/include/plat/dma-ops.h:60: undefined reference to `s3c_dma_get_ops'
    sound/built-in.o: In function `s3c2412_i2s_trigger':
    sound/soc/samsung/s3c-i2s-v2.c:432: undefined reference to `s3c2410_dma_ctrl'

    Signed-off-by: Sachin Kamat
    Signed-off-by: Mark Brown

    Sachin Kamat
     
  • Export the symbol so that it is accessible to modules. Fixes the
    following error:

    ERROR: "wm5100_detect" [sound/soc/samsung/snd-soc-lowland.ko] undefined!

    Signed-off-by: Sachin Kamat
    Acked-by: Charles Keepax
    Signed-off-by: Mark Brown

    Sachin Kamat
     
  • There are two loops that are almost identical but only with different
    checks. Refactor them with a simple helper, and give a bit more
    comments what's doing there.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The test here is intended intended to prevent shift wrapping bugs when
    we do "1U << idx2". We should consider the number of bits in a u32
    instead of the number of bytes.

    [fix another chunk similarly by tiwai]

    Fixes: 7bb2491b35a2 ('ALSA: Add kconfig to specify the max card numbers')
    Signed-off-by: Dan Carpenter
    Cc:
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     
  • Fixes the following build error and warning when OF is not defined:
    sound/soc/samsung/smdk_wm8994.c:191:23: error: ‘samsung_wm8994_of_match’ undeclared (first use in this function)
    sound/soc/samsung/smdk_wm8994.c:47:32: warning: ‘smdk_board_data’ defined but not used [-Wunused-variable]

    of_match_ptr() is used so that samsung_wm8994_of_match gets dropped (as unused)
    by the compiler when OF is not defined.

    Signed-off-by: Sachin Kamat
    Signed-off-by: Mark Brown

    Sachin Kamat