05 Jul, 2011

3 commits

  • Add twl6040_vibra as a child of MFD device twl6040_codec. This
    implementation covers the PCM-to-PWM mode of TWL6040 vibrator
    module.

    Signed-off-by: Misael Lopez Cruz
    Signed-off-by: Peter Ujfalusi
    CC: Tejun Heo
    Acked-by: Dmitry Torokhov

    Misael Lopez Cruz
     
  • Pass twl4030_codec_data instead of the twl4030_audio_data
    for the ASoC codec driver.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Samuel Ortiz

    Peter Ujfalusi
     
  • TWL6040 IC provides analog high-end audio codec functions for
    handset applications. It contains several audio analog inputs
    and outputs as well as vibrator support. It's connected to the
    host processor via PDM interface for audio data communication.
    The audio modules are controlled by internal registers that
    can be accessed by I2C and PDM interface.

    TWL6040 MFD will be registered as a child of TWL-CORE, and will
    have two children of its own: twl6040-codec and twl6040-vibra.

    This driver is based on TWL4030 and WM8350 MFD drivers.

    Signed-off-by: Misael Lopez Cruz
    Signed-off-by: Peter Ujfalusi
    Acked-by: Samuel Ortiz

    Misael Lopez Cruz
     

04 Jul, 2011

3 commits


14 Jun, 2011

3 commits


13 Jun, 2011

4 commits

  • Return error on out of range cpsdvsr value.

    Acked-by: Linus Walleij
    Signed-off-by: Virupax Sadashivpetimath
    Signed-off-by: Grant Likely

    Virupax Sadashivpetimath
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:
    ide-cd: signedness warning fix again

    Linus Torvalds
     
  • * 'gpio/merge' of git://git.secretlab.ca/git/linux-2.6:
    gpio/basic_mmio: add missing include of spinlock_types.h
    gpio/nomadik: fix sleepmode for elder Nomadik

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (55 commits)
    ISDN, hfcsusb: Don't leak in hfcsusb_ph_info()
    netpoll: call dev_put() on error in netpoll_setup()
    net: ep93xx_eth: fix DMA API violations
    net: ep93xx_eth: drop GFP_DMA from call to dma_alloc_coherent()
    net: ep93xx_eth: allocate buffers using kmalloc()
    net: ep93xx_eth: pass struct device to DMA API functions
    ep93xx: set DMA masks for the ep93xx_eth
    vlan: Fix the ingress VLAN_FLAG_REORDER_HDR check
    dl2k: EEPROM CRC calculation wrong endianess on bigendian machine
    NET: am79c961: fix assembler warnings
    NET: am79c961: ensure multicast filter is correctly set at open
    NET: am79c961: ensure asm() statements are marked volatile
    ethtool.h: fix typos
    ep93xx_eth: Update MAINTAINERS
    ipv4: Fix packet size calculation for raw IPsec packets in __ip_append_data
    netpoll: prevent netpoll setup on slave devices
    net: pmtu_expires fixes
    gianfar:localized filer table
    iwlegacy: fix channel switch locking
    mac80211: fix IBSS teardown race
    ...

    Linus Torvalds
     

12 Jun, 2011

10 commits

  • We leak the memory allocated to 'phi' when the variable goes out of scope
    in hfcsusb_ph_info().

    Signed-off-by: Jesper Juhl
    Signed-off-by: David S. Miller

    Jesper Juhl
     
  • Russell King said:
    >
    > So, to summarize what its doing:
    >
    > 1. It allocates buffers for rx and tx.
    > 2. It maps them with dma_map_single().
    > This transfers ownership of the buffer to the DMA device.
    > 3. In ep93xx_xmit,
    > 3a. It copies the data into the buffer with skb_copy_and_csum_dev()
    > This violates the DMA buffer ownership rules - the CPU should
    > not be writing to this buffer while it is (in principle) owned
    > by the DMA device.
    > 3b. It then calls dma_sync_single_for_cpu() for the buffer.
    > This transfers ownership of the buffer to the CPU, which surely
    > is the wrong direction.
    > 4. In ep93xx_rx,
    > 4a. It calls dma_sync_single_for_cpu() for the buffer.
    > This at least transfers the DMA buffer ownership to the CPU
    > before the CPU reads the buffer
    > 4b. It then uses skb_copy_to_linear_data() to copy the data out.
    > At no point does it transfer ownership back to the DMA device.
    > 5. When the driver is removed, it dma_unmap_single()'s the buffer.
    > This transfers ownership of the buffer to the CPU.
    > 6. It frees the buffer.
    >
    > While it may work on ep93xx, it's not respecting the DMA API rules,
    > and with DMA debugging enabled it will probably encounter quite a few
    > warnings.

    This patch fixes these violations.

    Signed-off-by: Mika Westerberg
    Acked-by: Russell King
    Acked-by: H Hartley Sweeten
    Tested-by: Petr Stetiar
    Signed-off-by: David S. Miller

    Mika Westerberg
     
  • Commit a197b59ae6e8 (mm: fail GFP_DMA allocations when ZONE_DMA is not
    configured) made page allocator to return NULL if GFP_DMA is set but
    CONFIG_ZONE_DMA is disabled.

    This causes ep93xx_eth to fail:

    WARNING: at mm/page_alloc.c:2251 __alloc_pages_nodemask+0x11c/0x638()
    Modules linked in:
    [] (unwind_backtrace+0x0/0xf4) from [] (warn_slowpath_common+0x48/0x60)
    [] (warn_slowpath_common+0x48/0x60) from [] (warn_slowpath_null+0x1c/0x24)
    [] (warn_slowpath_null+0x1c/0x24) from [] (__alloc_pages_nodemask+0x11c/0x638)
    [] (__alloc_pages_nodemask+0x11c/0x638) from [] (__dma_alloc+0x8c/0x3ec)
    [] (__dma_alloc+0x8c/0x3ec) from [] (dma_alloc_coherent+0x54/0x60)
    [] (dma_alloc_coherent+0x54/0x60) from [] (ep93xx_open+0x20/0x864)
    [] (ep93xx_open+0x20/0x864) from [] (__dev_open+0xb8/0x108)
    [] (__dev_open+0xb8/0x108) from [] (__dev_change_flags+0x70/0x128)
    [] (__dev_change_flags+0x70/0x128) from [] (dev_change_flags+0x10/0x48)
    [] (dev_change_flags+0x10/0x48) from [] (ip_auto_config+0x190/0xf68)
    [] (ip_auto_config+0x190/0xf68) from [] (do_one_initcall+0x34/0x18c)
    [] (do_one_initcall+0x34/0x18c) from [] (kernel_init+0x94/0x134)
    [] (kernel_init+0x94/0x134) from [] (kernel_thread_exit+0x0/0x8)

    Since there is no restrictions for DMA on ep93xx, we can fix this by just
    removing the GFP_DMA flag from the call.

    Signed-off-by: Mika Westerberg
    Acked-by: Russell King
    Acked-by: H Hartley Sweeten
    Tested-by: Petr Stetiar
    Signed-off-by: David S. Miller

    Mika Westerberg
     
  • We can use simply kmalloc() to allocate the buffers. This also simplifies the
    code and allows us to perform DMA sync operations more easily.

    Memory is allocated with only GFP_KERNEL since there are no DMA allocation
    restrictions on this platform.

    Signed-off-by: Mika Westerberg
    Acked-by: Russell King
    Acked-by: H Hartley Sweeten
    Tested-by: Petr Stetiar
    Signed-off-by: David S. Miller

    Mika Westerberg
     
  • We shouldn't use NULL for any DMA API functions, unless we are dealing with
    ISA or EISA device. So pass correct struct dev pointer to these functions.

    Signed-off-by: Mika Westerberg
    Signed-off-by: David S. Miller

    Mika Westerberg
     
  • Signed-off-by: Daniel Hellstrom
    Signed-off-by: David S. Miller

    Daniel Hellstrom
     
  • Fix:
    /tmp/ccvoZ6h8.s: Assembler messages:
    /tmp/ccvoZ6h8.s:284: Warning: register range not in ascending order
    /tmp/ccvoZ6h8.s:881: Warning: register range not in ascending order
    /tmp/ccvoZ6h8.s:1087: Warning: register range not in ascending order

    by ensuring that we have temporary variables placed into specific
    registers. Reorder the code a bit to allow the resulting assembly
    to be slightly more optimal.

    Signed-off-by: Russell King
    Signed-off-by: David S. Miller

    Russell King - ARM Linux
     
  • We were clearing out the multicast filter whenever the interface was
    upped, and not setting the mode bits correctly. This can cause
    problems if there are any multicast addresses already set at this
    point, or if ALLMULTI was set.

    Signed-off-by: Russell King
    Signed-off-by: David S. Miller

    Russell King - ARM Linux
     
  • Without this the compiler can (and does) optimize register reads away
    from within loops, and other such optimizations.

    Signed-off-by: Russell King
    Signed-off-by: David S. Miller

    Russell King - ARM Linux
     
  • One of the legit warnings 'make W=3 drivers/ide/ide-cd.c'
    generates is:
    drivers/ide/ide-cd.c: In function ide_cd_do_request
    drivers/ide/ide-cd.c:828:2: warning: conversion to int from \
    unsigned int may change the sign of the result
    drivers/ide/ide-cd.c:833:2: warning: conversion to int from \
    unsigned int may change the sign of the result

    nsectors is declared int, should be unsigned int.

    blk_rq_sectors() returns unsigned int, and ide_complete_rq
    expects unsigned int as well. Fixes both warnings.

    Signed-off-by: Connor Hansen
    Signed-off-by: David S. Miller

    Connor Hansen
     

10 Jun, 2011

9 commits


09 Jun, 2011

8 commits