07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

04 Nov, 2011

1 commit


01 Nov, 2011

1 commit


13 Sep, 2011

1 commit

  • The bank_lock can be taken in atomic context (irq handling)
    and therefore cannot be preempted on -rt - annotate it.

    In mainline this change documents the low level nature of
    the lock - otherwise there's no functional difference. Lockdep
    and Sparse checking will work as usual.

    Signed-off-by: Uwe Kleine-König
    Cc: kernel@pengutronix.de
    Cc: Guennadi Liakhovetski
    Cc: Dan Williams
    Link: http://lkml.kernel.org/r/1311949627-13260-1-git-send-email-u.kleine-koenig@pengutronix.de
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Uwe Kleine-König
     

02 Aug, 2011

1 commit

  • * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (37 commits)
    Improve slave/cyclic DMA engine documentation
    dmaengine: pl08x: handle the rest of enums in pl08x_width
    DMA: PL08x: cleanup selection of burst size
    DMA: PL08x: avoid recalculating cctl at each prepare
    DMA: PL08x: cleanup selection of buswidth
    DMA: PL08x: constify plchan->cd and plat->slave_channels
    DMA: PL08x: separately store source/destination cctl
    DMA: PL08x: separately store source/destination slave address
    DMA: PL08x: clean up LLI debugging
    DMA: PL08x: select LLI bus only once per LLI setup
    DMA: PL08x: remove unused constants
    ARM: mxs-dma: reset after disable channel
    dma: intel_mid_dma: remove redundant pci_set_drvdata calls
    dma: mxs-dma: fix unterminated platform_device_id table
    dmaengine: pl330: make platform data optional
    dmaengine: imx-sdma: return proper error if kzalloc fails
    pch_dma: Fix CTL register access issue
    dmaengine: mxs-dma: skip request_irq for NO_IRQ
    dmaengine/coh901318: fix slave submission semantics
    dmaengine/ste_dma40: allow memory buswidth/burst to be configured
    ...

    Fix trivial whitespace conflict in drivers/dma/mv_xor.c

    Linus Torvalds
     

22 Jun, 2011

1 commit

  • Remove linux/mm.h inclusion from netdevice.h -- it's unused (I've checked manually).

    To prevent mm.h inclusion via other channels also extract "enum dma_data_direction"
    definition into separate header. This tiny piece is what gluing netdevice.h with mm.h
    via "netdevice.h => dmaengine.h => dma-mapping.h => scatterlist.h => mm.h".
    Removal of mm.h from scatterlist.h was tried and was found not feasible
    on most archs, so the link was cutoff earlier.

    Hope people are OK with tiny include file.

    Note, that mm_types.h is still dragged in, but it is a separate story.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     

06 Jun, 2011

1 commit


26 Mar, 2011

1 commit

  • Convert to the new irq chip functions and cleanup the name space.

    [ Guennadi reported: irq_data_get_chip_data is undefined. Yes, I screwed up.
    it needs to be irq_data_get_irq_chip_data ]

    Signed-off-by: Thomas Gleixner
    Tested-by: Guennadi Liakhovetski
    Cc: Dan Williams
    LKML-Reference:

    Thomas Gleixner
     

14 Feb, 2011

1 commit

  • Currently when two or more buffers are queued by the camera driver
    and so the double buffering is enabled in the idmac, we lose one
    frame comming from CSI since the reporting of arrival of the first
    frame is deferred by the DMAIC_7_EOF interrupt handler and reporting
    of the arrival of the last frame is not done at all. So when requesting
    N frames from the image sensor we actually receive N - 1 frames in
    user space.

    The reason for this behaviour is that the DMAIC_7_EOF interrupt
    handler misleadingly assumes that the CUR_BUF flag is pointing to the
    buffer used by the IDMAC. Actually it is not the case since the
    CUR_BUF flag will be flipped by the FSU when the FSU is sending the
    _NEW_FRM_RDY signal when new frame data is delivered by the CSI.
    When sending this singal, FSU updates the DMA_CUR_BUF and the
    DMA_BUFx_RDY flags: the DMA_CUR_BUF is flipped, the DMA_BUFx_RDY
    is cleared, indicating that the frame data is beeing written by
    the IDMAC to the pointed buffer. DMA_BUFx_RDY is supposed to be
    set to the ready state again by the MCU, when it has handled the
    received data. DMAIC_7_CUR_BUF flag won't be flipped here by the
    IPU, so waiting for this event in the EOF interrupt handler is wrong.
    Actually there is no spurious interrupt as described in the comments,
    this is the valid DMAIC_7_EOF interrupt indicating reception of the
    frame from CSI.

    The patch removes code that waits for flipping of the DMAIC_7_CUR_BUF
    flag in the DMAIC_7_EOF interrupt handler. As the comment in the
    current code denotes, this waiting doesn't help anyway. As a result
    of this removal the reporting of the first arrived frame is not
    deferred to the time of arrival of the next frame and the drivers
    software flag 'ichan->active_buffer' is in sync with DMAIC_7_CUR_BUF
    flag, so the reception of all requested frames works.

    This has been verified on the hardware which is triggering the
    image sensor by the programmable state machine, allowing to
    obtain exact number of frames. On this hardware we do not tolerate
    losing frames.

    This patch also removes resetting the DMA_BUFx_RDY flags of
    all channels in ipu_disable_channel() since transfers on other
    DMA channels might be triggered by other running tasks and the
    buffers should always be ready for data sending or reception.

    Signed-off-by: Anatolij Gustschin
    Reviewed-by: Guennadi Liakhovetski
    Tested-by: Guennadi Liakhovetski
    Signed-off-by: Dan Williams

    Anatolij Gustschin
     

18 May, 2010

1 commit

  • This adds an argument to the DMAengine control function, so that
    we can later provide control commands that need some external data
    passed in through an argument akin to the ioctl() operation
    prototype.

    [dan.j.williams@intel.com: fix up some missed conversions]
    Signed-off-by: Linus Walleij
    Signed-off-by: Dan Williams

    Linus Walleij
     

27 Mar, 2010

3 commits

  • Simple conditional struct filler to cut out some duplicated code.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • Convert the device_is_tx_complete() operation on the
    DMA engine to a generic device_tx_status()operation which
    can return three states, DMA_TX_RUNNING, DMA_TX_COMPLETE,
    DMA_TX_PAUSED.

    [dan.j.williams@intel.com: update for timberdale]
    Signed-off-by: Linus Walleij
    Acked-by: Mark Brown
    Cc: Maciej Sosnowski
    Cc: Nicolas Ferre
    Cc: Pavel Machek
    Cc: Li Yang
    Cc: Guennadi Liakhovetski
    Cc: Paul Mundt
    Cc: Ralf Baechle
    Cc: Haavard Skinnemoen
    Cc: Magnus Damm
    Cc: Liam Girdwood
    Cc: Joe Perches
    Cc: Roland Dreier
    Signed-off-by: Dan Williams

    Linus Walleij
     
  • Convert the device_terminate_all() operation on the
    DMA engine to a generic device_control() operation
    which can now optionally support also pausing and
    resuming DMA on a certain channel. Implemented for the
    COH 901 318 DMAC as an example.

    [dan.j.williams@intel.com: update for timberdale]
    Signed-off-by: Linus Walleij
    Acked-by: Mark Brown
    Cc: Maciej Sosnowski
    Cc: Nicolas Ferre
    Cc: Pavel Machek
    Cc: Li Yang
    Cc: Guennadi Liakhovetski
    Cc: Paul Mundt
    Cc: Ralf Baechle
    Cc: Haavard Skinnemoen
    Cc: Magnus Damm
    Cc: Liam Girdwood
    Cc: Joe Perches
    Cc: Roland Dreier
    Signed-off-by: Dan Williams

    Linus Walleij
     

04 Mar, 2010

1 commit


11 Feb, 2010

1 commit


03 Feb, 2010

1 commit


13 May, 2009

1 commit


06 May, 2009

1 commit

  • disable_irq() should wait for all running handlers to complete
    before returning. As such, if it's used to disable an interrupt
    from that interrupt's handler it will deadlock. This replaces
    the dangerous instances with the _nosync() variant which doesn't
    have this problem.

    Note the 2 handlers in question are only used #ifdef DEBUG so
    I imagine these code paths don't get hit often.

    Signed-off-by: Ben Nizette
    Acked-by: Guennadi Liakhovetski
    Signed-off-by: Dan Williams

    Ben Nizette
     

04 Apr, 2009

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:
    dma: Add SoF and EoF debugging to ipu_idmac.c, minor cleanup
    dw_dmac: add cyclic API to DW DMA driver
    dmaengine: Add privatecnt to revert DMA_PRIVATE property
    dmatest: add dma interrupts and callbacks
    dmatest: add xor test
    dmaengine: allow dma support for async_tx to be toggled
    async_tx: provide __async_inline for HAS_DMA=n archs
    dmaengine: kill some unused headers
    dmaengine: initialize tx_list in dma_async_tx_descriptor_init
    dma: i.MX31 IPU DMA robustness improvements
    dma: improve section assignment in i.MX31 IPU DMA driver
    dma: ipu_idmac driver cosmetic clean-up
    dmaengine: fail device registration if channel registration fails

    Linus Torvalds
     

03 Apr, 2009

1 commit

  • Add Start-of-Frame and End-of-Frame debugging to ipu_idmac.c, in the
    future it might also be needed for the actual video processing in
    mx3-camera, at which point, the ISRs will have to be transferred to
    mx3_camera.c, for which ipu_irq_map() and ipu_irq_unmap() functions will
    have to be exported.

    Also simplify a couple of pointer-dereferences.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Dan Williams

    Guennadi Liakhovetski
     

26 Mar, 2009

4 commits


13 Mar, 2009

1 commit


05 Mar, 2009

1 commit

  • fix a probably accidently dropped reference operator while calling
    spin_unlock_restore to an ipu lock.

    Signed-off-by: Luotao Fu
    Cc: Guennadi Liakhovetski
    Signed-off-by: Andrew Morton
    Signed-off-by: Dan Williams

    Luotao Fu
     

20 Jan, 2009

1 commit

  • i.MX3x SoCs contain an Image Processing Unit, consisting of a Control
    Module (CM), Display Interface (DI), Synchronous Display Controller (SDC),
    Asynchronous Display Controller (ADC), Image Converter (IC), Post-Filter
    (PF), Camera Sensor Interface (CSI), and an Image DMA Controller (IDMAC).
    CM contains, among other blocks, an Interrupt Generator (IG) and a Clock
    and Reset Control Unit (CRCU). This driver serves IDMAC and IG. They are
    supported over dmaengine and irq-chip APIs respectively.

    IDMAC is a specialised DMA controller, its DMA channels cannot be used for
    general-purpose operations, even though it might be possible to configure
    a memory-to-memory channel for memcpy operation. This driver will not work
    with generic dmaengine clients, clients, wishing to use it must use
    respective wrapper structures, they also must specify which channels they
    require, as channels are hard-wired to specific IPU functions.

    Acked-by: Sascha Hauer
    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Dan Williams

    Guennadi Liakhovetski