17 Mar, 2014

1 commit

  • As discussed in [1] the tasklet_disable is not a proper function for teardown.
    We need to ensure irq is disabled, followed by ensuring that don't schedule any
    more tasklets and then its safe to use tasklet_kill().

    Here in at_hdmac driver we use free_irq() before tasklet_kill(). The free_irq()
    will ensure that the irq is disabled and also wait till all scheduled interrupts
    are executed by invoking synchronize_irq(). So we need to only do tasklet_kill()
    after invoking free_irq()

    [1]: http://lwn.net/Articles/588457/

    Reported-by: Thomas Gleixner
    Acked-by: Nicolas Ferre
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Vinod Koul

    Vinod Koul
     

16 Nov, 2013

1 commit

  • Pull dmaengine changes from Dan

    1/ Bartlomiej and Dan finalized a rework of the dma address unmap
    implementation.

    2/ In the course of testing 1/ a collection of enhancements to dmatest
    fell out. Notably basic performance statistics, and fixed / enhanced
    test control through new module parameters 'run', 'wait', 'noverify',
    and 'verbose'. Thanks to Andriy and Linus for their review.

    3/ Testing the raid related corner cases of 1/ triggered bugs in the
    recently added 16-source operation support in the ioatdma driver.

    4/ Some minor fixes / cleanups to mv_xor and ioatdma.

    Conflicts:
    drivers/dma/dmatest.c

    Signed-off-by: Vinod Koul

    Vinod Koul
     

15 Nov, 2013

1 commit

  • Remove support for DMA unmapping from drivers as it is no longer
    needed (DMA core code is now handling it).

    Cc: Vinod Koul
    Cc: Tomasz Figa
    Cc: Dave Jiang
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Kyungmin Park
    [djbw: fix up chan2parent() unused warning in drivers/dma/dw/core.c]
    Signed-off-by: Dan Williams

    Bartlomiej Zolnierkiewicz
     

14 Nov, 2013

1 commit

  • Add a hook for a common dma unmap implementation to enable removal of
    the per driver custom unmap code. (A reworked version of Bartlomiej
    Zolnierkiewicz's patches to remove the custom callbacks and the size
    increase of dma_async_tx_descriptor for drivers that don't care about
    raid).

    Cc: Vinod Koul
    Cc: Tomasz Figa
    Cc: Dave Jiang
    [bzolnier: prepare pl330 driver for adding missing unmap while at it]
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Kyungmin Park
    Signed-off-by: Dan Williams

    Dan Williams
     

25 Oct, 2013

1 commit


05 Jul, 2013

10 commits


10 May, 2013

1 commit

  • Pull slave-dmaengine updates from Vinod Koul:
    "This time we have dmatest improvements from Andy along with dw_dmac
    fixes. He has also done support for acpi for dmanegine.

    Also we have bunch of fixes going in DT support for dmanegine for
    various folks. Then Haswell and other ioat changes from Dave and
    SUDMAC support from Shimoda."

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (53 commits)
    dma: tegra: implement suspend/resume callbacks
    dma:of: Use a mutex to protect the of_dma_list
    dma: of: Fix of_node reference leak
    dmaengine: sirf: move driver init from module_init to subsys_initcall
    sudmac: add support for SUDMAC
    dma: sh: add Kconfig
    at_hdmac: move to generic DMA binding
    ioatdma: ioat3_alloc_sed can be static
    ioatdma: Adding write back descriptor error status support for ioatdma 3.3
    ioatdma: S1200 platforms ioatdma channel 2 and 3 falsely advertise RAID cap
    ioatdma: Adding support for 16 src PQ ops and super extended descriptors
    ioatdma: Removing hw bug workaround for CB3.x .2 and earlier
    dw_dmac: add ACPI support
    dmaengine: call acpi_dma_request_slave_channel as well
    dma: acpi-dma: introduce ACPI DMA helpers
    dma: of: Remove unnecessary list_empty check
    DMA: OF: Check properties value before running be32_to_cpup() on it
    DMA: of: Constant names
    ioatdma: skip silicon bug workaround for pq_align for cb3.3
    ioatdma: Removing PQ val disable for cb3.3
    ...

    Linus Torvalds
     

30 Apr, 2013

1 commit

  • Update at_hdmac driver to support generic DMA device tree binding. Devices
    can still request channel with dma_request_channel() then it doesn't break
    DMA for non DT boards.

    Signed-off-by: Ludovic Desroches
    Acked-by: Nicolas Ferre
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD
    Acked-by: Arnd Bergmann
    Signed-off-by: Vinod Koul

    Ludovic Desroches
     

18 Apr, 2013

1 commit

  • The BUG_ON() directive is triggered probably due to a latency
    modification following inclusion of commit c10d73671ad3 ("softirq:
    reduce latencies"). This condition has not been met before 3.9-rc1 and
    doesn't trigger without this patch.

    We now make sure that DMA channel is idle before calling
    atc_complete_all() which makes the BUG_ON() "protection" useless.

    Signed-off-by: Ludovic Desroches
    Signed-off-by: Nicolas Ferre
    Acked-by: Vinod Koul
    Signed-off-by: Linus Torvalds

    Ludovic Desroches
     

15 Apr, 2013

1 commit


12 Jan, 2013

1 commit


09 Oct, 2012

1 commit

  • Pull sound updates from Takashi Iwai:
    "This contains pretty many small commits covering fairly large range of
    files in sound/ directory. Partly because of additional API support
    and partly because of constantly developed ASoC and ARM stuff.

    Some highlights:

    - Introduced the helper function and documentation for exposing the
    channel map via control API, as discussed in Plumbers; most of PCI
    drivers are covered, will follow more drivers later

    - Most of drivers have been replaced with the new PM callbacks (if
    the bus is supported)

    - HD-audio controller got the support of runtime PM and the support
    of D3 clock-stop. Also changing the power_save option in sysfs
    kicks off immediately to enable / disable the power-save mode.

    - Another significant code change in HD-audio is the rewrite of
    firmware loading code. Other than that, most of changes in
    HD-audio are continued cleanups and standardization for the generic
    auto parser and bug fixes (HBR, device-specific fixups), in
    addition to the support of channel-map API.

    - Addition of ASoC bindings for the compressed API, used by the
    mid-x86 drivers.

    - Lots of cleanups and API refreshes for ASoC codec drivers and
    DaVinci.

    - Conversion of OMAP to dmaengine.

    - New machine driver for Wolfson Microelectronics Bells.

    - New CODEC driver for Wolfson Microelectronics WM0010.

    - Enhancements to the ux500 and wm2000 drivers

    - A new driver for DA9055 and the support for regulator bypass mode."

    Fix up various arm soc header file reorg conflicts.

    * tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (339 commits)
    ALSA: hda - Add new codec ALC283 ALC290 support
    ALSA: hda - avoid unneccesary indices on "Headphone Jack" controls
    ALSA: hda - fix indices on boost volume on Conexant
    ALSA: aloop - add locking to timer access
    ALSA: hda - Fix hang caused by race during suspend.
    sound: Remove unnecessary semicolon
    ALSA: hda/realtek - Fix detection of ALC271X codec
    ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310
    ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol event
    ALSA: hda - make a generic unsol event handler
    ASoC: codecs: Add DA9055 codec driver
    ASoC: eukrea-tlv320: Convert it to platform driver
    ALSA: ASoC: add DT bindings for CS4271
    ASoC: wm_hubs: Ensure volume updates are handled during class W startup
    ASoC: wm5110: Adding missing volume update bits
    ASoC: wm5110: Add OUT3R support
    ASoC: wm5110: Add AEC loopback support
    ASoC: wm5110: Rename EPOUT to HPOUT3
    ASoC: arizona: Add more clock rates
    ASoC: arizona: Add more DSP options for mixer input muxes
    ...

    Linus Torvalds
     

02 Oct, 2012

1 commit

  • Pull the trivial tree from Jiri Kosina:
    "Tiny usual fixes all over the place"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
    doc: fix old config name of kprobetrace
    fs/fs-writeback.c: cleanup riteback_sb_inodes kerneldoc
    btrfs: fix the commment for the action flags in delayed-ref.h
    btrfs: fix trivial typo for the comment of BTRFS_FREE_INO_OBJECTID
    vfs: fix kerneldoc for generic_fh_to_parent()
    treewide: fix comment/printk/variable typos
    ipr: fix small coding style issues
    doc: fix broken utf8 encoding
    nfs: comment fix
    platform/x86: fix asus_laptop.wled_type module parameter
    mfd: printk/comment fixes
    doc: getdelays.c: remember to close() socket on error in create_nl_socket()
    doc: aliasing-test: close fd on write error
    mmc: fix comment typos
    dma: fix comments
    spi: fix comment/printk typos in spi
    Coccinelle: fix typo in memdup_user.cocci
    tmiofb: missing NULL pointer checks
    tools: perf: Fix typo in tools/perf
    tools/testing: fix comment / output typos
    ...

    Linus Torvalds
     

22 Sep, 2012

1 commit

  • Change the parameter list of device_prep_dma_cyclic() so the DMA drivers
    can receive the flags coming from clients.
    This feature can be used during audio operation to disable all audio
    related interrupts when the DMA_PREP_INTERRUPT is cleared from the flags.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Nicolas Ferre
    Acked-by: Shawn Guo
    Acked-by: Vinod Koul
    Signed-off-by: Mark Brown

    Peter Ujfalusi
     

14 Sep, 2012

2 commits


01 Sep, 2012

1 commit


16 Jul, 2012

1 commit

  • This prepares of_device_id.data becoming const. Without this change
    the following warning would occur:

    drivers/dma/at_hdmac.c: In function 'at_dma_get_driver_data':
    drivers/dma/at_hdmac.c:1228: warning: return discards qualifiers from pointer target type

    Signed-off-by: Uwe Kleine-König
    Cc: Nicolas Ferre
    Cc: Dan Williams
    Cc: Vinod Koul
    Acked-by: Nicolas Ferre
    Signed-off-by: Vinod Koul

    Uwe Kleine-König
     

12 Jun, 2012

1 commit


15 May, 2012

3 commits


20 Apr, 2012

1 commit

  • This loop on EBCISR register was designed to clear IRQ sources before enabling
    a DMA channel. This register is clear-on-read so a race condition can appear if
    another channel is already active and has just finished its transfer.
    Removing this read on EBCISR is fixing the issue as there is no case where an IRQ
    could be pending: we already make sure that this register is drained at probe()
    time and during resume.

    Signed-off-by: Nicolas Ferre
    Cc: stable
    Signed-off-by: Vinod Koul

    Nicolas Ferre
     

21 Mar, 2012

2 commits

  • This patch introduces DMA_SLAVE_CONFIG to at_hdmac Atmel DMA driver.

    It is needed to fix a regression in the use of atmel-mci.c driver on Atmel
    AT91 platforms brouth by e2b35f3:
    "dmaengine/dw_dmac: Fix dw_dmac user drivers to adapt to slave_config changes"

    We remove some parts of the private structure "at_dma_slave" and use the
    information provided by "struct dma_slave_config": source/destination
    peripheral registers and access width.

    AT_DMA_SLAVE_WIDTH_* values used previously are not needed anymore as we
    now use the standard ones. Although some conversion functions are needed to
    match register expected values.

    Some AT91 sub-architecture specific files are slightly touched by this patch
    but it cannot be split because it can break compilation.

    Signed-off-by: Nicolas Ferre
    Signed-off-by: Vinod Koul

    Nicolas Ferre
     
  • Add context parameter to device_prep_slave_sg() and device_prep_dma_cyclic()
    interfaces to allow passing client/target specific information associated
    with the data transfer.
    Modify all affected DMA engine drivers.

    Signed-off-by: Alexandre Bounine
    Acked-by: Linus Walleij
    Acked-by: Felipe Balbi
    Signed-off-by: Vinod Koul

    Alexandre Bounine
     

13 Mar, 2012

6 commits

  • Provide a common function to initialize a channels cookie values.

    Signed-off-by: Russell King
    Tested-by: Linus Walleij
    Reviewed-by: Linus Walleij
    Acked-by: Jassi Brar
    [imx-sdma.c & mxs-dma.c]
    Tested-by: Shawn Guo
    Signed-off-by: Vinod Koul

    Russell King - ARM Linux
     
  • Now that we have the completed cookie in the dma_chan structure, we
    can consolidate the tx_status functions by providing a function to set
    the txstate structure and returning the DMA status. We also provide
    a separate helper to set the residue for cookies which are still in
    progress.

    Signed-off-by: Russell King
    Tested-by: Linus Walleij
    Reviewed-by: Linus Walleij
    Acked-by: Jassi Brar
    [imx-sdma.c & mxs-dma.c]
    Tested-by: Shawn Guo
    Signed-off-by: Vinod Koul

    Russell King - ARM Linux
     
  • Provide a common function to do the cookie mechanics for completing
    a DMA descriptor.

    Signed-off-by: Russell King
    Tested-by: Linus Walleij
    Reviewed-by: Linus Walleij
    Acked-by: Jassi Brar
    [imx-sdma.c & mxs-dma.c]
    Tested-by: Shawn Guo
    Signed-off-by: Vinod Koul

    Russell King - ARM Linux
     
  • Everyone deals with assigning DMA cookies in the same way (it's part of
    the API so they should be), so lets consolidate the common code into a
    helper function to avoid this duplication.

    Signed-off-by: Russell King
    Tested-by: Linus Walleij
    Reviewed-by: Linus Walleij
    Acked-by: Jassi Brar
    [imx-sdma.c & mxs-dma.c]
    Tested-by: Shawn Guo
    Signed-off-by: Vinod Koul

    Russell King - ARM Linux
     
  • Add a local private header file to contain definitions and declarations
    which should only be used by DMA engine drivers.

    We also fix linux/dmaengine.h to use LINUX_DMAENGINE_H to guard against
    multiple inclusion.

    Signed-off-by: Russell King
    Tested-by: Linus Walleij
    Reviewed-by: Linus Walleij
    Acked-by: Jassi Brar
    [imx-sdma.c & mxs-dma.c]
    Tested-by: Shawn Guo
    Signed-off-by: Vinod Koul

    Russell King - ARM Linux
     
  • Every DMA engine implementation declares a last completed dma cookie
    in their private dma channel structures. This is pointless, and
    forces driver specific code. Move this out into the common dma_chan
    structure.

    Signed-off-by: Russell King
    Tested-by: Linus Walleij
    Reviewed-by: Linus Walleij
    Acked-by: Jassi Brar
    [imx-sdma.c & mxs-dma.c]
    Tested-by: Shawn Guo
    Signed-off-by: Vinod Koul

    Russell King - ARM Linux