28 Feb, 2011

1 commit


14 Feb, 2011

2 commits

  • Dan Williams
     
  • 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
     

31 Jan, 2011

18 commits


30 Jan, 2011

3 commits


18 Jan, 2011

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (63 commits)
    ARM: PL08x: cleanup comments
    Update CONFIG_MD_RAID6_PQ to CONFIG_RAID6_PQ in drivers/dma/iop-adma.c
    ARM: PL08x: fix a warning
    Fix dmaengine_submit() return type
    dmaengine: at_hdmac: fix race while monitoring channel status
    dmaengine: at_hdmac: flags located in first descriptor
    dmaengine: at_hdmac: use subsys_initcall instead of module_init
    dmaengine: at_hdmac: no need set ACK in new descriptor
    dmaengine: at_hdmac: trivial add precision to unmapping comment
    dmaengine: at_hdmac: use dma_address to program DMA hardware
    pch_dma: support new device ML7213 IOH
    ARM: PL08x: prevent dma_set_runtime_config() reconfiguring memcpy channels
    ARM: PL08x: allow dma_set_runtime_config() to return errors
    ARM: PL08x: fix locking between prepare function and submit function
    ARM: PL08x: introduce 'phychan_hold' to hold on to physical channels
    ARM: PL08x: put txd's on the pending list in pl08x_tx_submit()
    ARM: PL08x: rename 'desc_list' as 'pend_list'
    ARM: PL08x: implement unmapping of memcpy buffers
    ARM: PL08x: store prep_* flags in async_tx structure
    ARM: PL08x: shrink srcbus/dstbus in txd structure
    ...

    Linus Torvalds
     

17 Jan, 2011

1 commit


15 Jan, 2011

8 commits


14 Jan, 2011

1 commit

  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    Documentation/trace/events.txt: Remove obsolete sched_signal_send.
    writeback: fix global_dirty_limits comment runtime -> real-time
    ppc: fix comment typo singal -> signal
    drivers: fix comment typo diable -> disable.
    m68k: fix comment typo diable -> disable.
    wireless: comment typo fix diable -> disable.
    media: comment typo fix diable -> disable.
    remove doc for obsolete dynamic-printk kernel-parameter
    remove extraneous 'is' from Documentation/iostats.txt
    Fix spelling milisec -> ms in snd_ps3 module parameter description
    Fix spelling mistakes in comments
    Revert conflicting V4L changes
    i7core_edac: fix typos in comments
    mm/rmap.c: fix comment
    sound, ca0106: Fix assignment to 'channel'.
    hrtimer: fix a typo in comment
    init/Kconfig: fix typo
    anon_inodes: fix wrong function name in comment
    fix comment typos concerning "consistent"
    poll: fix a typo in comment
    ...

    Fix up trivial conflicts in:
    - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)
    - fs/ext4/ext4.h

    Also fix missed 'diabled' typo in drivers/net/bnx2x/bnx2x.h while at it.

    Linus Torvalds
     

12 Jan, 2011

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (72 commits)
    powerpc/pseries: Fix build of topology stuff without CONFIG_NUMA
    powerpc/pseries: Fix VPHN build errors on non-SMP systems
    powerpc/83xx: add mpc8308_p1m DMA controller device-tree node
    powerpc/83xx: add DMA controller to mpc8308 device-tree node
    powerpc/512x: try to free dma descriptors in case of allocation failure
    powerpc/512x: add MPC8308 dma support
    powerpc/512x: fix the hanged dma transfer issue
    powerpc/512x: scatter/gather dma fix
    powerpc/powermac: Make auto-loading of therm_pm72 possible
    of/address: Use propper endianess in get_flags
    powerpc/pci: Use printf extension %pR for struct resource
    powerpc: Remove unnecessary casts of void ptr
    powerpc: Disable VPHN polling during a suspend operation
    powerpc/pseries: Poll VPA for topology changes and update NUMA maps
    powerpc: iommu: Add device name to iommu error printks
    powerpc: Record vma->phys_addr in ioremap()
    powerpc: Update compat_arch_ptrace
    powerpc: Fix PPC_PTRACE_SETHWDEBUG on PPC_BOOK3S
    powerpc/time: printk time stamp init not correct
    powerpc: Minor cleanups for machdep.h
    ...

    Linus Torvalds
     

08 Jan, 2011

1 commit


07 Jan, 2011

3 commits

  • A recent patch has added a die notifier to the shdma driver, however,
    it registers a static die-notifier object in the probe routine, i.e.,
    for each device instance. This is wrong and leads to a system lockup.
    This patch moves the die notifier registration to module init and
    exit routines respectively.

    Reported-by: Magnus Damm
    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Paul Mundt

    Guennadi Liakhovetski
     
  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (416 commits)
    ARM: DMA: add support for DMA debugging
    ARM: PL011: add DMA burst threshold support for ST variants
    ARM: PL011: Add support for transmit DMA
    ARM: PL011: Ensure IRQs are disabled in UART interrupt handler
    ARM: PL011: Separate hardware FIFO size from TTY FIFO size
    ARM: PL011: Allow better handling of vendor data
    ARM: PL011: Ensure error flags are clear at startup
    ARM: PL011: include revision number in boot-time port printk
    ARM: vexpress: add sched_clock() for Versatile Express
    ARM i.MX53: Make MX53 EVK bootable
    ARM i.MX53: Some bug fix about MX53 MSL code
    ARM: 6607/1: sa1100: Update platform device registration
    ARM: 6606/1: sa1100: Fix platform device registration
    ARM i.MX51: rename IPU irqs
    ARM i.MX51: Add ipu clock support
    ARM: imx/mx27_3ds: Add PMIC support
    ARM: DMA: Replace page_to_dma()/dma_to_page() with pfn_to_dma()/dma_to_pfn()
    mx51: fix usb clock support
    MX51: Add support for usb host 2
    arch/arm/plat-mxc/ehci.c: fix errors/typos
    ...

    Linus Torvalds
     
  • Conflicts:
    arch/arm/mach-pxa/clock.c
    arch/arm/mach-pxa/clock.h

    Russell King