23 Dec, 2011

1 commit


02 Dec, 2011

2 commits

  • Instead of using the 'cell-index' property in the I2C adapter node to
    determine the adapter number, just query the i2c_adapter object directly.

    Previously, the I2C nodes always appeared in cell-index order, so the
    dynamic numbering coincided with the cell-index property. With commit
    ab827d97 ("powerpc/85xx: Rework P1022DS device tree"), the I2C nodes are
    unintentionally reversed in the device tree, and so the machine driver
    guesses the wrong I2C adapter number.

    Signed-off-by: Timur Tabi
    Signed-off-by: Mark Brown

    Timur Tabi
     
  • Commit ab827d97 ("powerpc/85xx: Rework P1022DS device tree") renamed the
    the /model property of the P1022DS device tree from "fsl,P1022" to
    "fsl,P1022DS". To support both old and new device trees, the ASoC
    machine driver for the P1022DS needs to query the /model property and
    update the platform driver object dynamically.

    Signed-off-by: Timur Tabi
    Signed-off-by: Mark Brown

    Timur Tabi
     

29 Nov, 2011

1 commit


23 Nov, 2011

2 commits

  • Commit 1ee46ebd("ASoC: Make the DAI ops constant in the DAI structure")
    introduced the possibility to have constant DAI ops structures, yet this is
    barley used in both existing drivers and also new drivers being submitted,
    although none of them modifies its DAI ops structure. The later is not
    surprising since existing drivers are often used as templates for new drivers.
    So this patch just constifies all existing snd_soc_dai_ops structs to eliminate
    the issue altogether.

    The patch was generated with the following coccinelle semantic patch:
    //
    @@
    identifier ops;
    @@
    -struct snd_soc_dai_ops ops =
    +const struct snd_soc_dai_ops ops =
    { ... };
    //

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown

    Lars-Peter Clausen
     
  • Commit ac601555 ("ASoC: Return early with -EINVAL if invalid dai format is
    detected") requires the machine driver to tell the CS4270 codec driver
    whether the CS4270 should be configured for master or slave operation.

    Signed-off-by: Timur Tabi
    Signed-off-by: Mark Brown

    Timur Tabi
     

15 Nov, 2011

1 commit


20 Sep, 2011

1 commit


16 Sep, 2011

1 commit

  • The Freescale SSI audio controller supports "synchronous" and "asynchronous"
    modes. In synchronous mode, playback and capture use the same input clock,
    so sample rates must be the same during simultaneous playback and capture.
    Unfortunately, the code which supports asynchronous mode is just broken in
    various ways. In particular, it was constraining sample sizes as well as
    the sample rate.

    The fix also allows us to simplify the code by eliminating the 'asynchronous',
    'playback', and 'capture' variables that were used to keep track of playback
    and capture streams.

    Unfortunately, it turns out that simulataneous playback and record does not
    actually work on the only platform that supports asynchronous mode: the
    Freescale P1022DS reference board. If a second stream is started, the SSI
    grinds to halt for both streams. This is true even if the P1022 is configured
    for synchronous mode, so it's likely a hardware problem that needs to be
    worked around.

    Signed-off-by: Timur Tabi
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Timur Tabi
     

31 Aug, 2011

1 commit


25 Aug, 2011

2 commits


23 Aug, 2011

4 commits

  • Mark Brown
     
  • The first change is to add an of_node_put, since codec_np has previously
    been allocated. The rest of the patch reorganizes the error handling code
    so the only code executed is that which is needed.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    identifier x;
    expression E1!=0,E2,E3,E4;
    statement S;
    iterator I;
    @@

    (
    if (...) { ... when != of_node_put(x)
    when != x = E3
    when != E3 = x
    * return ...;
    }
    ... when != x = E2
    when != I(...,x,...) S
    if (...) { ... when != x = E4
    of_node_put(x); ... return ...; }
    )
    //

    Signed-off-by: Julia Lawall
    Acked-by: Timur Tabi
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Julia Lawall
     
  • dma_channel_np has been accessed at this point, so decrease its reference
    count before leaving the function.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    identifier x;
    expression E1!=0,E2,E3,E4;
    statement S;
    iterator I;
    @@

    (
    if (...) { ... when != of_node_put(x)
    when != x = E3
    when != E3 = x
    * return ...;
    }
    ... when != x = E2
    when != I(...,x,...) S
    if (...) { ... when != x = E4
    of_node_put(x); ... return ...; }
    )
    //

    Signed-off-by: Julia Lawall
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Julia Lawall
     
  • of_parse_phandle increments the reference count of np, so this should be
    decremented before trying the next possibility.

    Since we don't actually use np, we can decrement the reference count
    immediately.

    Reported-by: Julia Lawall
    Signed-off-by: Timur Tabi
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Timur Tabi
     

17 Aug, 2011

2 commits

  • The previous patch to fsl_dma.c ("fix initialization of DMA buffers")
    left behind an unused local variable that causes a build warning.

    Signed-off-by: Timur Tabi
    Signed-off-by: Mark Brown

    Timur Tabi
     
  • The PowerPC Freescale SSI driver is claiming the IRQ when the IRQ when
    the device is opened, which means that the /proc/interrupts entry for
    the SSI exists only during playback or capture. This also meant that
    the user won't know that the IRQ number is wrong until he tries to use
    the device. Instead, we should claim the IRQ when the device is probed.

    Signed-off-by: Timur Tabi
    Signed-off-by: Mark Brown

    Timur Tabi
     

26 Jul, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    fs: Merge split strings
    treewide: fix potentially dangerous trailing ';' in #defined values/expressions
    uwb: Fix misspelling of neighbourhood in comment
    net, netfilter: Remove redundant goto in ebt_ulog_packet
    trivial: don't touch files that are removed in the staging tree
    lib/vsprintf: replace link to Draft by final RFC number
    doc: Kconfig: `to be' -> `be'
    doc: Kconfig: Typo: square -> squared
    doc: Konfig: Documentation/power/{pm => apm-acpi}.txt
    drivers/net: static should be at beginning of declaration
    drivers/media: static should be at beginning of declaration
    drivers/i2c: static should be at beginning of declaration
    XTENSA: static should be at beginning of declaration
    SH: static should be at beginning of declaration
    MIPS: static should be at beginning of declaration
    ARM: static should be at beginning of declaration
    rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check
    Update my e-mail address
    PCIe ASPM: forcedly -> forcibly
    gma500: push through device driver tree
    ...

    Fix up trivial conflicts:
    - arch/arm/mach-ep93xx/dma-m2p.c (deleted)
    - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)
    - drivers/net/r8169.c (just context changes)

    Linus Torvalds
     

11 Jul, 2011

1 commit


14 Jun, 2011

1 commit


10 Jun, 2011

1 commit


09 Jun, 2011

3 commits

  • Mark Brown
     
  • Device tree integer properties are encoded in big-endian format, but some of
    the Freescale ASoC drivers were assuming that the host is in big-endian format
    as well. Although this is true, it's better to use endian-safe accessors.

    Also add a check for a failed ioremap() call in the SSI driver.

    Signed-off-by: Timur Tabi
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Timur Tabi
     
  • The DMA (PCM) driver used by some Freescale PowerPC supports separate DAIs
    for playback and capture, so DMA buffers should be allocated only for the
    initialized streams. Instead of checking for the number of active channels,
    which apparently is not reliable, check to see if the actual stream object
    exists.

    Also provide a better name for the DMA interrupt.

    Signed-off-by: Timur Tabi
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Timur Tabi
     

08 Jun, 2011

1 commit


19 Mar, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (308 commits)
    ALSA: sound/pci/asihpi: check adapter index in hpi_ioctl
    ALSA: aloop - Fix possible IRQ lock inversion
    ALSA: sound/core: merge list_del()/list_add_tail() to list_move_tail()
    ALSA: ctxfi - use list_move() instead of list_del()/list_add() combination
    ALSA: firewire - msleep needs delay.h
    ALSA: firewire-lib, firewire-speakers: handle packet queueing errors
    ALSA: firewire-lib: allocate DMA buffer separately
    ALSA: firewire-lib: use no-info SYT for packets without SYT sample
    ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver
    ALSA: hda - Remove an unused variable in patch_realtek.c
    ALSA: hda - pin-adc-mux-dmic auto-configuration of 92HD8X codecs
    ALSA: hda - fix digital mic selection in mixer on 92HD8X codecs
    ALSA: hda - Move default input-src selection to init part
    ALSA: hda - Initialize special cases for input src in init phase
    ALSA: ctxfi - Clear input settings before initialization
    ALSA: ctxfi - Fix SPDIF status retrieval
    ALSA: ctxfi - Fix incorrect SPDIF status bit mask
    ALSA: ctxfi - Fix microphone boost codes/comments
    ALSA: atiixp - Fix wrong time-out checks during ac-link reset
    ALSA: intel8x0m: append 'm' to "r_intel8x0"
    ...

    Linus Torvalds
     

01 Mar, 2011

1 commit


27 Jan, 2011

1 commit


30 Nov, 2010

2 commits


25 Nov, 2010

2 commits


23 Nov, 2010

1 commit


09 Nov, 2010

1 commit


27 Oct, 2010

1 commit


02 Sep, 2010

1 commit

  • Add a call to of_node_put in the error handling code following a call to
    of_parse_phandle.

    This patch also moves the existing call to of_node_put tothe end of the
    error handling code, to make it possible to jump to of_node_put without
    doing the other cleanup operations. These appear to be disjoint
    operations, so the ordering doesn't matter.

    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @r exists@
    local idexpression x;
    expression E,E1,E2;
    statement S;
    @@

    *x =
    (of_find_node_by_path
    |of_find_node_by_name
    |of_find_node_by_phandle
    |of_get_parent
    |of_get_next_parent
    |of_get_next_child
    |of_find_compatible_node
    |of_match_node
    |of_find_node_by_type
    |of_find_node_with_property
    |of_find_matching_node
    |of_parse_phandle
    )(...);
    ...
    if (x == NULL) S
    ;
    |
    * return ...;
    )
    }
    ...>
    (
    E2 = x;
    |
    of_node_put(x);
    )
    //

    Signed-off-by: Julia Lawall
    Acked-by: Timur Tabi
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Julia Lawall
     

21 Aug, 2010

2 commits


20 Aug, 2010

1 commit