14 Jul, 2011

5 commits

  • Missing documentation creates kernel-doc warnings, so add
    the documenation.

    Signed-off-by: Om Prakash
    Reviewed-by: Rabin Vincent
    Reviewed-by: Jonas Aberg
    Reviewed-by: Srinidhi Kasagar
    Signed-off-by: Linus Walleij
    Signed-off-by: Vinod Koul

    om prakash
     
  • ste_dma40 now implements issue_pending according to documentation.
    Submit adds descriptos to a pending queue with are flushed down to the DMAC
    at issue_pending.

    Signed-off-by: Per Forlin
    Signed-off-by: Vinod Koul

    Per Forlin
     
  • tx_submit will add descriptors to the pending queue. Issue pending
    will then move the pending descriptors to the transfer queue.

    Signed-off-by: Per Forlin
    Signed-off-by: Vinod Koul

    Per Forlin
     
  • Fix for the following INFO message

    =================================
    [ INFO: inconsistent lock state ]
    2.6.39+ #89
    ---------------------------------
    inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
    rs232/822 [HC1[1]:SC0[0]:HE0:SE1] takes:
    (&(&pd_chan->lock)->rlock){?.....}, at: [] pdc_desc_get+0x16/0xab
    {HARDIRQ-ON-W} state was registered at:
    [] mark_irqflags+0xbd/0x11a
    [] __lock_acquire+0x501/0x6bb
    [] lock_acquire+0x63/0x7b
    [] _raw_spin_lock_bh+0x43/0x51
    [] pd_alloc_chan_resources+0x92/0x11e
    [] dma_chan_get+0x9b/0x107
    [] __dma_request_channel+0x61/0xdc
    [] pch_request_dma+0x61/0x19e
    [] pch_uart_startup+0x16a/0x1a2
    [] uart_startup+0x87/0x147
    [] uart_open+0x117/0x13e
    [] tty_open+0x23c/0x34c
    [] chrdev_open+0x140/0x15f
    [] __dentry_open.clone.14+0x14a/0x22b
    [] nameidata_to_filp+0x36/0x40
    [] do_last+0x513/0x635
    [] path_openat+0x9c/0x2aa
    [] do_filp_open+0x27/0x69
    [] do_sys_open+0xfd/0x184
    [] sys_open+0x24/0x2a
    [] sysenter_do_call+0x12/0x32
    irq event stamp: 2522
    hardirqs last enabled at (2521): [] _raw_spin_unlock_irqrestore+0x36/0x52
    hardirqs last disabled at (2522): [] common_interrupt+0x27/0x34
    softirqs last enabled at (2354): [] __do_softirq+0x10a/0x11a
    softirqs last disabled at (2299): [] do_softirq+0x57/0xa4

    other info that might help us debug this:
    2 locks held by rs232/822:
    #0: (&tty->atomic_write_lock){+.+.+.}, at: [] tty_write_lock+0x14/0x3c
    #1: (&port_lock_key){-.....}, at: [] pch_uart_interrupt+0x17/0x1e9

    stack backtrace:
    Pid: 822, comm: rs232 Not tainted 2.6.39+ #89
    Call Trace:
    [] ? printk+0x19/0x1b
    [] print_usage_bug+0x184/0x18f
    [] ? print_irq_inversion_bug+0x10e/0x10e
    [] mark_lock_irq+0xa5/0x1f6
    [] mark_lock+0x208/0x2d7
    [] mark_irqflags+0x55/0x11a
    [] __lock_acquire+0x501/0x6bb
    [] ? dump_trace+0x92/0xb6
    [] lock_acquire+0x63/0x7b
    [] ? pdc_desc_get+0x16/0xab
    [] _raw_spin_lock+0x3e/0x4c
    [] ? pdc_desc_get+0x16/0xab
    [] pdc_desc_get+0x16/0xab
    [] ? __lock_acquire+0x653/0x6bb
    [] pd_prep_slave_sg+0x7c/0x1cb
    [] ? nommu_map_sg+0x6e/0x81
    [] dma_handle_tx+0x2cf/0x344
    [] ? pch_uart_interrupt+0x17/0x1e9
    [] pch_uart_interrupt+0x160/0x1e9
    [] handle_irq_event_percpu+0x25/0x127
    [] handle_irq_event+0x2c/0x43
    [] ? handle_fasteoi_irq+0x84/0x84
    [] handle_edge_irq+0xac/0xce
    [] ? do_IRQ+0x38/0x9d
    [] ? common_interrupt+0x2e/0x34
    [] ? __lock_acquire+0x1f6/0x6bb
    [] ? _raw_spin_unlock_irqrestore+0x38/0x52
    [] ? uart_start+0x2d/0x32
    [] ? uart_flush_chars+0x8/0xa
    [] ? n_tty_write+0x12c/0x1c6
    [] ? try_to_wake_up+0x251/0x251
    [] ? tty_write+0x169/0x1dc
    [] ? n_tty_ioctl+0xb7/0xb7
    [] ? vfs_write+0x91/0x10d
    [] ? tty_write_lock+0x3c/0x3c
    [] ? sys_write+0x3e/0x63
    [] ? sysenter_do_call+0x12/0x32

    Signed-off-by: Alexander Stein
    Tested-by: Tomoya MORINAGA
    Signed-off-by: Vinod Koul

    Alexander Stein
     
  • Signed-off-by: H Hartley Sweeten
    Cc: Dan Williams (supporter:ASYNCHRONOUS TRAN...)
    Cc: Vinod Koul (supporter:DMA GENERIC OFFLO...)
    Signed-off-by: Vinod Koul

    H Hartley Sweeten
     

24 Jun, 2011

1 commit

  • There exist systems with multiple DMA controllers with different
    capabilities. For example, on some sh-mobile / rmobile systems there are
    DMA controllers, whose channels can be configured to be used with
    SD- and MMC-host controllers, serial ports etc. Besides there are also
    DMA controllers, that can only be used for one special function, e.g.,
    for USB. In such cases the DMA client filter function can just choose
    to specify to the DMA driver, which channel it needs. Then the
    .device_alloc_chan_resources() method of the DMA driver will check,
    whether it can provide that dunction. If not, it will fail and the loop
    in __dma_request_channel() will continue to the next DMA device, until
    it finds a suitable one. This works fine with just one minor glitch:
    the kernel logs error messages like

    dmaengine: failed to get : (-)

    after each such non-critical failure. This patch lowers priority of
    this message to the debug level.

    Reported-by: Kuninori Morimoto
    Signed-off-by: Guennadi Liakhovetski
    Tested-by: Kuninori Morimoto
    Tested-by: Magnus Damm
    Signed-off-by: Vinod Koul

    Guennadi Liakhovetski
     

16 Jun, 2011

1 commit


10 Jun, 2011

1 commit


09 Jun, 2011

7 commits

  • This patch adds DMA support for the EP93xx SPI driver. By default the DMA is
    not enabled but it can be enabled by setting ep93xx_spi_info.use_dma to true
    in board configuration file.

    Note that the SPI driver still uses PIO for small transfers (
    Acked-by: H Hartley Sweeten
    Acked-by: Vinod Koul
    Signed-off-by: Grant Likely

    Mika Westerberg
     
  • Since we have converted all existing users of the old DMA API to use the DMA
    engine API the old code can be dropped.

    Signed-off-by: Mika Westerberg
    Acked-by: Ryan Mallon
    Acked-by: H Hartley Sweeten
    Acked-by: Vinod Koul
    Signed-off-by: Grant Likely

    Mika Westerberg
     
  • Now that we have the EP93xx DMA engine driver in place, we convert the ASoC
    drivers (I2S, AC97 and PCM) to take advantage of this new API. There are no
    functional changes.

    Signed-off-by: Mika Westerberg
    Acked-by: H Hartley Sweeten
    Acked-by: Liam Girdwood
    Acked-by: Mark Brown
    Acked-by: Vinod Koul
    Signed-off-by: Grant Likely

    Mika Westerberg
     
  • Add platform support code for the new EP93xx dmaengine driver.

    Signed-off-by: Mika Westerberg
    Signed-off-by: Ryan Mallon
    Acked-by: H Hartley Sweeten
    Acked-by: Vinod Koul
    Signed-off-by: Grant Likely

    Mika Westerberg
     
  • The ep93xx DMA controller has 10 independent memory to peripheral (M2P)
    channels, and 2 dedicated memory to memory (M2M) channels. M2M channels can
    also be used by SPI and IDE to perform DMA transfers to/from their memory
    mapped FIFOs.

    This driver supports both M2P and M2M channels with DMA_SLAVE, DMA_CYCLIC and
    DMA_MEMCPY (M2M only) capabilities.

    Signed-off-by: Mika Westerberg
    Signed-off-by: Ryan Mallon
    Acked-by: H Hartley Sweeten
    Acked-by: Vinod Koul
    Signed-off-by: Grant Likely

    Mika Westerberg
     
  • Grant Likely
     
  • One new offender detected by the recently increased type checking in
    platform_get_drvdata():

    drivers/rtc/rtc-m41t93.c: In function ‘m41t93_remove’:
    drivers/rtc/rtc-m41t93.c:192: warning: passing argument 1 of ‘platform_get_drvdata’ from incompatible pointer type

    Use spi_get_drvdata() instead of platform_get_drvdata(), cfr. commit
    42fea15d6dc410e62dac6a764142045280624a5b ("spi/rtc-{ds1390,ds3234,m41t94}:
    Use spi_get_drvdata() for SPI devices")

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Grant Likely

    Geert Uytterhoeven
     

06 Jun, 2011

12 commits


05 Jun, 2011

4 commits

  • * 'for-linus' of git://android.git.kernel.org/kernel/tegra:
    ARM: Tegra: Harmony: Fix conflicting GPIO numbering

    Linus Torvalds
     
  • Currently, both the WM8903 and TPS6586x chips attempt to register with
    gpiolib using the same GPIO numbers. This causes the audio driver to
    fail to initialize.

    To solve this, add a define to board-harmony.h for the TPS6586x, and make
    board-harmony-power.c use this define, instead of directly referencing
    TEGRA_NR_GPIOS.

    This fixes a regression introduced by commit
    6f168f2fa60f87e85e0df25e87e2372f22f5eb7c.
    ARM: tegra: harmony: initialize the TPS65862 PMIC

    Signed-off-by: Stephen Warren
    Signed-off-by: Colin Cross

    Stephen Warren
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (25 commits)
    btrfs: fix uninitialized variable warning
    btrfs: add helper for fs_info->closing
    Btrfs: add mount -o inode_cache
    btrfs: scrub: add explicit plugging
    btrfs: use btrfs_ino to access inode number
    Btrfs: don't save the inode cache if we are deleting this root
    btrfs: false BUG_ON when degraded
    Btrfs: don't save the inode cache in non-FS roots
    Btrfs: make sure we don't overflow the free space cache crc page
    Btrfs: fix uninit variable in the delayed inode code
    btrfs: scrub: don't reuse bios and pages
    Btrfs: leave spinning on lookup and map the leaf
    Btrfs: check for duplicate entries in the free space cache
    Btrfs: don't try to allocate from a block group that doesn't have enough space
    Btrfs: don't always do readahead
    Btrfs: try not to sleep as much when doing slow caching
    Btrfs: kill BTRFS_I(inode)->block_group
    Btrfs: don't look at the extent buffer level 3 times in a row
    Btrfs: map the node block when looking for readahead targets
    Btrfs: set range_start to the right start in count_range_bits
    ...

    Linus Torvalds
     
  • Improve detection of MAX6642 by reading non existing registers (0x04, 0x06
    and 0xff). Reading those registers returns the previously read value.

    Signed-off-by: Per Dalen
    [guenter.roeck@ericsson.com: added second set of register reads]
    Signed-off-by: Guenter Roeck

    Per Dalén
     

04 Jun, 2011

9 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] Fix oops caused by queue refcounting failure

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (40 commits)
    tg3: Fix tg3_skb_error_unmap()
    net: tracepoint of net_dev_xmit sees freed skb and causes panic
    drivers/net/can/flexcan.c: add missing clk_put
    net: dm9000: Get the chip in a known good state before enabling interrupts
    drivers/net/davinci_emac.c: add missing clk_put
    af-packet: Add flag to distinguish VID 0 from no-vlan.
    caif: Fix race when conditionally taking rtnl lock
    usbnet/cdc_ncm: add missing .reset_resume hook
    vlan: fix typo in vlan_dev_hard_start_xmit()
    net/ipv4: Check for mistakenly passed in non-IPv4 address
    iwl4965: correctly validate temperature value
    bluetooth l2cap: fix locking in l2cap_global_chan_by_psm
    ath9k: fix two more bugs in tx power
    cfg80211: don't drop p2p probe responses
    Revert "net: fix section mismatches"
    drivers/net/usb/catc.c: Fix potential deadlock in catc_ctrl_run()
    sctp: stop pending timers and purge queues when peer restart asoc
    drivers/net: ks8842 Fix crash on received packet when in PIO mode.
    ip_options_compile: properly handle unaligned pointer
    iwlagn: fix incorrect PCI subsystem id for 6150 devices
    ...

    Linus Torvalds
     
  • With Linus' tree, today's linux-next build (powercp ppc64_defconfig)
    produced this warning:

    fs/btrfs/delayed-inode.c: In function 'btrfs_delayed_update_inode':
    fs/btrfs/delayed-inode.c:1598:6: warning: 'ret' may be used
    uninitialized in this function

    Introduced by commit 16cdcec736cd ("btrfs: implement delayed inode items
    operation").

    This fixes a bug in btrfs_update_inode(): if the returned value from
    btrfs_delayed_update_inode is a nonzero garbage, inode stat data are not
    updated and several call paths may hit a BUG_ON or fail with strange
    code.

    Reported-by: Stephen Rothwell
    Signed-off-by: David Sterba

    David Sterba
     
  • wrap checking of filesystem 'closing' flag and fix a few missing memory
    barriers.

    Signed-off-by: David Sterba

    David Sterba
     
  • This makes the inode map cache default to off until we
    fix the overflow problem when the free space crcs don't fit
    inside a single page.

    Signed-off-by: Chris Mason

    Chris Mason
     
  • With the removal of the implicit plugging scrub ends up doing more and
    smaller I/O than necessary. This patch adds explicit plugging per chunk.

    Signed-off-by: Arne Jansen
    Signed-off-by: Chris Mason

    Arne Jansen
     
  • commit 4cb5300bc ("Btrfs: add mount -o auto_defrag") accesses inode
    number directly while it should use the helper with the new inode
    number allocator.

    Signed-off-by: David Sterba
    Signed-off-by: Chris Mason

    David Sterba
     
  • With xfstest 254 I can panic the box every time with the inode number caching
    stuff on. This is because we clean the inodes out when we delete the subvolume,
    but then we write out the inode cache which adds an inode to the subvolume inode
    tree, and then when it gets evicted again the root gets added back on the dead
    roots list and is deleted again, so we have a double free. To stop this from
    happening just return 0 if refs is 0 (and we're not the tree root since tree
    root always has refs of 0). With this fix 254 no longer panics. Thanks,

    Signed-off-by: Josef Bacik
    Tested-by: David Sterba
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • In degraded mode the struct btrfs_device of missing devs don't have
    device->name set. A kstrdup of NULL correctly returns NULL. Don't
    BUG in this case.

    Signed-off-by: Arne Jansen
    Signed-off-by: Chris Mason

    Arne Jansen